RK3568 11.0 I2C TP添加 - 教程
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsiindex 43e133eb7c1f..2786445c4226 100644--- a/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi@@ -1406,7 +1406,7 @@ }; }; -&i2c1 {+/*&i2c1 { status = "okay"; gt1x: gt1x@14 {@@ -1417,7 +1417,7 @@ goodix,rst-gpio = ; goodix,irq-gpio = ; };-};+};*/ &i2c5 { status = "okay";diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsiindex cce9a6c4f559..315dc4a2c402 100644--- a/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi+++ b/arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtsi@@ -93,6 +93,52 @@ regulator-always-on; regulator-boot-on; };+ + vcc_tp: vcc-tp-regulator {+ compatible = "regulator-fixed";+ enable-active-high;+ regulator-boot-on;+ gpio = ;+ pinctrl-names = "default";+ pinctrl-0 = ;+ regulator-name = "vcc_tp";+ };+};++&i2c1 {+ clock-frequency = ;+ status = "okay";++ gt9xx: gt9xx@14 {+ status = "okay";+ compatible = "goodix,gt9xx";+ reg = ;+ pinctrl-names = "default";+ pinctrl-0 = ;+ touch-gpio = ;+ reset-gpio = ;+ touchscreen-size-x = ;+ touchscreen-size-y = ;+ max-x = ;+ max-y = ;+ tp-size = ;+ tp-supply = ;+ wakeup-source;+ touchscreen-key-map = ; //KEY_HOMEPAGE=172,KEY_BACK=158,KEY_MENU=139+ goodix,driver-send-cfg = ;+ goodix,cfg-group0 =[+ 42 00 03 00 04 0A 45 03 22 1F 28 0F 64 3C 03 0F 00 00 00 00 11 00+ 08 00 00 00 00 8B 29 0E 71 6F B2 04 00 00 00 39 02 10 00 21 00 00+ 00 03 64 32 00 00 00 3C 78 94 D5 02 07 00 00 04 C8 40 00 B1 4A 00+ 9E 55 00 8E 61 00 7F 70 00 7F 70 00 00 00 F0 90 3C FF FF 07 00 00+ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00+ 00 00 1C 1A 18 16 14 12 10 0E 0C 0A 08 06 04 02 FF FF FF FF FF FF+ FF FF FF FF FF FF FF FF FF FF 00 02 04 06 08 0A 0C 0F 10 12 13 16+ 18 1C 1D 1E 1F 20 21 22 FF FF FF FF FF FF FF FF FF FF FF FF FF FF+ FF FF FF FF FF FF FF FF F6 01+ + ];+ }; }; &combphy0_us {@@ -199,9 +245,9 @@ * power-supply should switche to vcc3v3_lcd1_n * when mipi panel is connected to dsi1. */->1x {+/*>1x { power-supply = ;-};+};*/ &i2c4 { status = "disabled";@@ -252,6 +298,18 @@ rockchip,pins = ; }; };+ + touch {+ touch_gpio: touch-gpio {+ rockchip,pins =+ ,+ ;+ };+ touch_vcc: touch-vcc {+ rockchip,pins = + ;+ };+ }; }; diff --git a/arch/arm64/configs/rockchip_defconfig b/arch/arm64/configs/rockchip_defconfigindex 570e1b2c3683..074fb8c63495 100644--- a/arch/arm64/configs/rockchip_defconfig+++ b/arch/arm64/configs/rockchip_defconfig@@ -448,7 +448,7 @@ CONFIG_TOUCHSCREEN_GSL3676=y CONFIG_TOUCHSCREEN_GT9XX=y CONFIG_TOUCHSCREEN_HYN_CST2XX=y CONFIG_TOUCHSCREEN_WACOM_W9013=y-CONFIG_TOUCHSCREEN_GT1X=y+# CONFIG_TOUCHSCREEN_GT1X is not set CONFIG_TOUCHSCREEN_FTS=y CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5=y CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP5_DEVICETREE_SUPPORT=ydiff --git a/drivers/input/touchscreen/gt9xx/gt9xx.c b/drivers/input/touchscreen/gt9xx/gt9xx.cindex 67b1b3451dab..31995a38268b 100644--- a/drivers/input/touchscreen/gt9xx/gt9xx.c+++ b/drivers/input/touchscreen/gt9xx/gt9xx.c@@ -2677,7 +2677,7 @@ static int goodix_ts_probe(struct i2c_client *client, const struct i2c_device_id m89or101 = FALSE; bgt9111 = TRUE; gtp_change_x2y = TRUE;- gtp_x_reverse = FALSE;+ gtp_x_reverse = TRUE; gtp_y_reverse = FALSE; } else if (val == 970) { m89or101 = FALSE;
由于RK3399使用这个I2C TP是正常的,查看dumpsys input 和 cat /proc/bus/input/devices许可看到goodix设备,看了3399的DTS里面有gt9xx的配置,于是仿照3399添加了dts安装,VCC的gpio对应原理图的EN , touch-gpiod对应原理图的INT中断脚, reset-gpio对应原理图的RST脚。
添加之后,查看dmesg打印,goodix初始化失败,原来是和gt1x的配置有冲突,把DTS里面gt1x的配置去掉,或者在config里面去掉GT1X的驱动配置,这样gt9xx的TP就添加成功了。