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就添加成功了。

posted @ 2025-07-24 16:50  yfceshi  阅读(46)  评论(0)    收藏  举报