drivers/input: Add driver for Goodix GT9XX Touch Panel

This PR adds the driver for Goodix GT9XX I2C Touch Panel, which will be called by PINE64 PinePhone.

Our driver follows the design of the NuttX Driver for [Cypress MBR3108](https://github.com/apache/nuttx/blob/master/drivers/input/cypress_mbr3108.c).

We have documented our driver here: ["NuttX Touch Panel Driver for PinePhone"](https://lupyuen.github.io/articles/touch2#appendix-nuttx-touch-panel-driver-for-pinephone)

`drivers/input/Kconfig`: Added option `INPUT_GT9XX` to select GT9XX Driver

`drivers/input/Make.defs`: Added GT9XX Driver to Makefile

`drivers/input/gt9xx.c`, `gt9xx.h`: I2C Driver for GT9XX Touch Panel
This commit is contained in:
Lee Lup Yuen
2023-01-11 12:06:44 +08:00
committed by Xiang Xiao
parent 6c5cb98e7d
commit 6de5a862cd
4 changed files with 1067 additions and 0 deletions
+23
View File
@@ -499,6 +499,29 @@ config INPUT_CYPRESS_MBR3108_NPOLLWAITERS
endif # INPUT_CYPRESS_MBR3108
config INPUT_GT9XX
bool "Goodix GT9xx Driver"
default n
select INPUT_TOUCHSCREEN
---help---
Enable support for Goodix GT9xx touch panel.
if INPUT_GT9XX
config INPUT_GT9XX_NPOLLWAITERS
int "Number of waiters to poll"
default 1
---help---
Maximum number of threads that can be waiting on poll()
config INPUT_GT9XX_I2C_FREQUENCY
int "I2C frequency (Hz)"
default 400000
---help---
I2C frequency in Hz
endif # INPUT_GT9XX
config INPUT_BUTTONS
bool "Button Inputs"
default n
+4
View File
@@ -72,6 +72,10 @@ ifeq ($(CONFIG_INPUT_CYPRESS_MBR3108),y)
CSRCS += cypress_mbr3108.c
endif
ifeq ($(CONFIG_INPUT_GT9XX),y)
CSRCS += gt9xx.c
endif
ifeq ($(CONFIG_INPUT_BUTTONS),y)
CSRCS += button_upper.c
ifeq ($(CONFIG_INPUT_BUTTONS_LOWER),y)
File diff suppressed because it is too large Load Diff