bd3cba00dc
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 18eeef46d3
("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>
72 lines
2.1 KiB
Plaintext
72 lines
2.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
menu "I2C HID support"
|
|
depends on I2C
|
|
|
|
config I2C_HID_ACPI
|
|
tristate "HID over I2C transport layer ACPI driver"
|
|
default n
|
|
depends on I2C && INPUT && ACPI
|
|
help
|
|
Say Y here if you use a keyboard, a touchpad, a touchscreen, or any
|
|
other HID based devices which is connected to your computer via I2C.
|
|
This driver supports ACPI-based systems.
|
|
|
|
If unsure, say N.
|
|
|
|
This support is also available as a module. If so, the module
|
|
will be called i2c-hid-acpi. It will also build/depend on the
|
|
module i2c-hid.
|
|
|
|
config I2C_HID_OF
|
|
tristate "HID over I2C transport layer Open Firmware driver"
|
|
default n
|
|
depends on I2C && INPUT && OF
|
|
help
|
|
Say Y here if you use a keyboard, a touchpad, a touchscreen, or any
|
|
other HID based devices which is connected to your computer via I2C.
|
|
This driver supports Open Firmware (Device Tree)-based systems.
|
|
|
|
If unsure, say N.
|
|
|
|
This support is also available as a module. If so, the module
|
|
will be called i2c-hid-of. It will also build/depend on the
|
|
module i2c-hid.
|
|
|
|
config I2C_HID_OF_ELAN
|
|
tristate "Driver for Elan hid-i2c based devices on OF systems"
|
|
default n
|
|
depends on I2C && INPUT && OF
|
|
help
|
|
Say Y here if you want support for Elan i2c devices that use
|
|
the i2c-hid protocol on Open Firmware (Device Tree)-based
|
|
systems.
|
|
|
|
If unsure, say N.
|
|
|
|
This support is also available as a module. If so, the module
|
|
will be called i2c-hid-of-elan. It will also build/depend on
|
|
the module i2c-hid.
|
|
|
|
config I2C_HID_OF_GOODIX
|
|
tristate "Driver for Goodix hid-i2c based devices on OF systems"
|
|
default n
|
|
depends on I2C && INPUT && OF
|
|
help
|
|
Say Y here if you want support for Goodix i2c devices that use
|
|
the i2c-hid protocol on Open Firmware (Device Tree)-based
|
|
systems.
|
|
|
|
If unsure, say N.
|
|
|
|
This support is also available as a module. If so, the module
|
|
will be called i2c-hid-of-goodix. It will also build/depend on
|
|
the module i2c-hid.
|
|
|
|
endmenu
|
|
|
|
config I2C_HID_CORE
|
|
tristate
|
|
default y if I2C_HID_ACPI=y || I2C_HID_OF=y || I2C_HID_OF_GOODIX=y
|
|
default m if I2C_HID_ACPI=m || I2C_HID_OF=m || I2C_HID_OF_GOODIX=m
|
|
select HID
|