RK3568 11.0 I2C TP添加

发布于:2025-06-08 ⋅ 阅读:(23) ⋅ 点赞:(0)
diff --git a/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi b/arch/arm64/boot/dts/rockchip/rk3568-evb.dtsi
index 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 = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
 		goodix,irq-gpio = <&gpio0 RK_PB5 IRQ_TYPE_LEVEL_LOW>;
 	};
-};
+};*/
 
 &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.dtsi
index 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 = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&touch_vcc>;
+		regulator-name = "vcc_tp";
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+    status = "okay";
+
+        gt9xx: gt9xx@14 {
+				status = "okay";
+                compatible = "goodix,gt9xx";
+                reg = <0x14>;
+                pinctrl-names = "default";
+				pinctrl-0 = <&touch_gpio>;
+                touch-gpio = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
+                reset-gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
+                touchscreen-size-x = <1280>;
+                touchscreen-size-y = <800>;
+                max-x = <1280>;
+                max-y = <800>;
+                tp-size = <9111>;
+                tp-supply = <&vcc_tp>;
+                wakeup-source;
+                touchscreen-key-map = <158>; //KEY_HOMEPAGE=172,KEY_BACK=158,KEY_MENU=139
+                goodix,driver-send-cfg = <0>;
+                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.
  */
-&gt1x {
+/*&gt1x {
 	power-supply = <&vcc3v3_lcd0_n>;
-};
+};*/
 
 &i2c4 {
 	status = "disabled";
@@ -252,6 +298,18 @@
 			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>;
 		};
 	};
+	
+	touch {
+		touch_gpio: touch-gpio {
+			rockchip,pins =
+				<0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,
+				<0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+		touch_vcc: touch-vcc {
+			rockchip,pins = 
+				<0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
 
 };
 
diff --git a/arch/arm64/configs/rockchip_defconfig b/arch/arm64/configs/rockchip_defconfig
index 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=y
diff --git a/drivers/input/touchscreen/gt9xx/gt9xx.c b/drivers/input/touchscreen/gt9xx/gt9xx.c
index 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就添加成功了。


网站公告

今日签到

点亮在社区的每一天
去签到