Reinhard Russinger 4 月之前
父節點
當前提交
62595d9b06

+ 1 - 1
board/GfA/Display001/BUILD

@@ -1 +1 @@
-706_rc1
+706_rc2

+ 4 - 4
board/GfA/Display001/DTS_4.4/Display002_7_rs485.dts

@@ -220,13 +220,13 @@
 
 &i2c2 {
         maxtouch: atmel_mxt_ts@4a {
-                        compatible = "atmel,maxtouch";
+                        compatible = "atmel,atmel_mxt_ts";
 			reg = <0x4a>;
+                        reset-gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
+                        interrupt-parent = <&gpio2>;
+                        interrupts = <1 0x2>; /* falling edge*/
                         pinctrl-names = "default";
                         pinctrl-0 = <&edt_ft5x06_pins>;
-                        interrupt-parent = <&gpio2>;
-                        interrupts = <1 2>; /* high to low edge*/
-                        reset-gpios = <&gpio3 21 1>;
                 };
 
 	mcp7940x: rtc@6f {

+ 27 - 0
board/GfA/Display001/linux_4.4.94_rt19/linux-047-atmel-mxt-retry-init.patch

@@ -0,0 +1,27 @@
+diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
+index 2979cf3..b1de293 100644
+--- a/drivers/input/touchscreen/atmel_mxt_ts.c
++++ b/drivers/input/touchscreen/atmel_mxt_ts.c
+@@ -4065,6 +4065,7 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
+ {
+ 	struct mxt_data *data;
+ 	int error;
++	int mxt_initialize_loops = 3; /* loopcount for mxt_initialize */
+ 
+ 	/*
+ 	 * Ignore devices that do not have device properties attached to
+@@ -4147,6 +4148,14 @@ static int mxt_probe(struct i2c_client *client, const struct i2c_device_id *id)
+ 	}
+ 
+ 	error = mxt_initialize(data);
++	while (error && mxt_initialize_loops) {
++		dev_info(&client->dev, "Retry mxt_initialize %d !!!\n", mxt_initialize_loops);
++		msleep(100);
++		error = mxt_initialize(data);
++		--mxt_initialize_loops;
++		}
++
++
+ 	if (error)
+ 		return error;
+