]> git.baikalelectronics.ru Git - kernel.git/commit
HID: i2c-hid: elan: Add support for Elan eKTH6915 i2c-hid touchscreens
authorDouglas Anderson <dianders@chromium.org>
Mon, 23 May 2022 21:23:24 +0000 (14:23 -0700)
committerJiri Kosina <jkosina@suse.cz>
Wed, 8 Jun 2022 09:46:23 +0000 (11:46 +0200)
commitae794de58d55ec44c8cbf97eb5a01c6e65b55ae6
tree95e66e4f2c357730498b92397143300a3d0e92d3
parenta62519ebe868a56620f16012c95a1aff80ebe9ab
HID: i2c-hid: elan: Add support for Elan eKTH6915 i2c-hid touchscreens

Like many i2c-hid touchscreen controllers, the Elan eKTH6915 has a
reset GPIO hooked up to it. According to the datasheet, the way we're
supposed to turn the touchscreen on is:

1. Turn on the 3.3V supply.
2. Turn on the IO supply. It's OK if this is hardwired to the 3.3V
   supply, but if it's not then it must be turned on _after_ the 3.3V
   supply.
3. Wait >= 1 ms.
4. Deassert the reset GPIO (reset GPIO is active low, so there would
   be a leakage path if this was deasserted _before_ the IO supply).
5. Wait 300 ms.

Much of the above can be handled by the generic i2c-hid-of driver, but
the "reset" GPIO is not supported by that driver. Thus we'll do the
same as we did for Goodix and add a new tiny driver that uses the
i2c-hid core.

NOTE: support for this new touchscreen could theorically fit into the
Goodix driver. I've made it a separate driver because the Elan driver
supports _two_ regulators and it's unclear exactly how that would fit
in with commit b7cb52f02720 ("HID: i2c-hid: goodix: Tie the reset line
to true state of the regulator").

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/i2c-hid/Kconfig
drivers/hid/i2c-hid/Makefile
drivers/hid/i2c-hid/i2c-hid-of-elan.c [new file with mode: 0644]