sigboe / gslx68x Goto Github PK
View Code? Open in Web Editor NEWKernel space driver for Silead touch screen digitizers.
License: GNU General Public License v2.0
Kernel space driver for Silead touch screen digitizers.
License: GNU General Public License v2.0
I get this error when inserting the module:
silead_ts i2c-MSSL1680:00: Initialization error, status: 0x0
What am I doing wrong? I copied /lib/firmware/silead_ts.fw (from gslx680) to /lib/firmware/mssl1680.fw. Could there be a problem with the firmware?
I have tried your driver with a surftab wintron 7.0 tablet from TrekStor. I have used the firmware file mentioned in this thread which is directly from TrekStore: http://download.trekstor.de/tl_files/userFiles/products/surftab_wintron_70_v2/PG-HK70DR2503.zip
This is exactly the device I have.
I got the following messages on insmod:
silead_ts i2c-MSSL1680:00: firmware: direct-loading firmware mssl1680.fw
input: silead_ts as /devices/platform/80860F41:03/i2c-3/i2c-MSSL1680:00/input/input4
silead_ts i2c-MSSL1680:00: IRQ request failed -4
silead_ts: probe of i2c-MSSL1680:00 failed with error -4
EDIT: I tried it again and it brought an initialization error because it hung more than 120 seconds.
I'm getting the following message silead_ts i2c-MSSL1680:00 Initialization error, status 0x0
.
I have Viglen Connect 8.9" so I used firmware/viglen/connect10/firmware.fw
from this repo https://github.com/onitake/gsl-firmware.git
sudo cp firmware/viglen/connect10/firmware.fw /usr/lib/firmware/mssl1680.fw
sudo modprobe silead
Dmesg says:
[ 996.989469] silead_ts i2c-MSSL1680:00: firmware: direct-loading firmware mssl1680.fw
[ 999.389516] input: silead_ts as /devices/platform/80860F41:03/i2c-3/i2c-MSSL1680:00/input/input10
And xinput sees that device:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ silead_ts id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ bytcr-rt5640 Headset id=7 [slave keyboard (3)]
↳ axp20x-pek id=9 [slave keyboard (3)]
↳ gpio-keys id=10 [slave keyboard (3)]
↳ gpio-keys id=11 [slave keyboard (3)]
More info:
uname -a
: Linux kali 5.14.0-kali4-amd64 #1 SMP Debian 5.14.16-1kali1 (2021-11-05) x86_64 GNU/Linux
But touch does not work. Is there a problem with firmware for connect10 (not compatible with Connect 8.9)?
The patch from the LKML still has a few bugs.
Here's a fix for the swapped devm_gpiod_get_index parameters:
---------------------- drivers/input/touchscreen/silead.c ----------------------
index 7c97852..fed9cad 100644
@@ -531,7 +531,7 @@ static int silead_ts_probe(struct i2c_client *client,
/* Power GPIO pin */
data->gpio_power = devm_gpiod_get_index(dev, SILEAD_PWR_GPIO_NAME,
- GPIOD_OUT_LOW, 1);
+ 1, GPIOD_OUT_LOW);
if (IS_ERR(data->gpio_power)) {
dev_dbg(dev, "Shutdown GPIO request failed\n");
data->gpio_power = NULL;
what mean ? what hid.fw ? what “ [hid] with the HID ID of your device” ?
Hello,
with silead kernel driver I can choose menu item - for example I press File, File menu opens, but when I try to choose any submenu - New, Open, Quit, nothing happens. In any app.
When I build this driver with kernel version 3.14.19, some errors occured:
[ 179s] drivers/input/touchscreen/silead.c: In function 'silead_ts_read_data':
[ 179s] drivers/input/touchscreen/silead.c:210:3: error: too many arguments to function 'input_mt_assign_slots'
[ 179s] input_mt_assign_slots(data->input, data->slots, data->pos,
[ 179s] ^
[ 179s] In file included from drivers/input/touchscreen/silead.c:27:0:
[ 179s] include/linux/input/mt.h:120:5: note: declared here
[ 179s] int input_mt_assign_slots(struct input_dev dev, int *slots,
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c: In function 'silead_ts_read_props':
[ 179s] drivers/input/touchscreen/silead.c:432:2: error: implicit declaration of function 'device_property_read_u16' [-Werror=implicit-function-declaration]
[ 179s] error = device_property_read_u16(dev, SILEAD_DP_X_MAX, &data->x_max);
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c:444:2: error: implicit declaration of function 'device_property_read_u8' [-Werror=implicit-function-declaration]
[ 179s] error = device_property_read_u8(dev, SILEAD_DP_MAX_FINGERS,
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c:451:2: error: implicit declaration of function 'device_property_read_string' [-Werror=implicit-function-declaration]
[ 179s] error = device_property_read_string(dev, SILEAD_DP_FW_NAME,
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c:456:2: error: implicit declaration of function 'device_property_read_bool' [-Werror=implicit-function-declaration]
[ 179s] data->x_invert = device_property_read_bool(dev, SILEAD_DP_X_INVERT);
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c: In function 'silead_ts_probe':
[ 179s] drivers/input/touchscreen/silead.c:534:7: error: 'GPIOD_OUT_LOW' undeclared (first use in this function)
[ 179s] GPIOD_OUT_LOW, 1);
[ 179s] ^
[ 179s] drivers/input/touchscreen/silead.c:534:7: note: each undeclared identifier is reported only once for each function it appears in
[ 179s] drivers/input/touchscreen/silead.c:533:21: error: too many arguments to function 'devm_gpiod_get_index'
[ 179s] data->gpio_power = devm_gpiod_get_index(dev, SILEAD_PWR_GPIO_NAME,
[ 179s] ^
[ 179s] In file included from drivers/input/touchscreen/silead.c:23:0:
[ 179s] include/linux/gpio/consumer.h:31:32: note: declared here
[ 179s] struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev,
[ 179s] ^
[ 179s] cc1: some warnings being treated as errors
[ 179s] scripts/Makefile.build:308: recipe for target 'drivers/input/touchscreen/silead.o' failed
[ 179s] make[3]: ** [drivers/input/touchscreen/silead.o] Error 1
[ 179s] scripts/Makefile.build:455: recipe for target 'drivers/input/touchscreen' failed
[ 179s] make[2]: *** [drivers/input/touchscreen] Error 2
[ 179s] scripts/Makefile.build:455: recipe for target 'drivers/input' failed
[ 179s] make[1]: *** [drivers/input] Error 2
[ 179s] make[1]: *** Waiting for unfinished jobs....
Is this kernel version to old?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.