After some googling around and good comments from friend of mine i was able to get some good key words to look for when trying to get the touchscreen running.
The first is silead. Silead Inc. is the manufacturer of the touchscreen and silead is also the Linux kernel module providing the driver.
lsmod | grep silead
silead 16384 0
dmesg | grep silead
[ 3.089142] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.089179] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.089698] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 3.234661] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
[ 3.234671] silead_ts i2c-MSSL1680:00: Firmware request error -2
[ 3.235217] silead_ts: probe of i2c-MSSL1680:00 failed with error -2
Here we get the chip ID 0x50910000 and also the path where it assumes a firmware silead/mssl1680.fw (this path is relative to /lib/firmware/ so the full path ist /lib/firmware/silead/mssl1680.fw)
On GitHub there is a repository containing these firmware files for multiple tablets, but mine. But there is a firmware for the PiPO W2S. So I tried it out.
git clone https://github.com/onitake/gsl-firmware
sudo mkdir -p /lib/firmware/silead/
sudo cp gsl-firmware/firmware/linux/silead/gsl1680-pipo-w2s.fw /lib/firmware/silead/mssl1680.fw
sudo rmmod silead; sudo modprobe silead
dmesg | grep silead
[ 3.089142] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.089179] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.089698] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 3.234661] silead_ts i2c-MSSL1680:00: Direct firmware load for silead/mssl1680.fw failed with error -2
[ 3.234671] silead_ts i2c-MSSL1680:00: Firmware request error -2
[ 3.235217] silead_ts: probe of i2c-MSSL1680:00 failed with error -2
[ 3.156110] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply vddio not found, using dummy regulator
[ 3.156145] silead_ts i2c-MSSL1680:00: i2c-MSSL1680:00 supply avdd not found, using dummy regulator
[ 3.158094] silead_ts i2c-MSSL1680:00: Silead chip ID: 0x50910000
[ 6.133417] input: silead_ts as /devices/platform/80860F41:01/i2c-1/i2c-MSSL1680:00/input/input7
sudo cat /dev/input/mouse0
When running the last command and touch around on the display, I get gibberish, which means, it works in gerenal. When running the X server, the curser wasn't below my finger and also the axis seemes swapped. So apparently some configuration and calibration is needed.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
You can extract the firmware from the driver of your device using that repository don't convert it. Then place it in /lib/firmware/silead/ with the name that you had referred in the /driver/platform/x86/silead_dmi.c of the custom kernel. Also made a copy with the mssl1680.fw name (backup firmware) in that folder. Then using onboard or a screen-keyboard (with some settings) you have the touchscreen!
Are you sure? yes | no
Thanks for the pointer! :-)
I did that and updated the file in the uploads section.
Are you sure? yes | no