Просмотр исходного кода

ramips: use i2c-gpio driver for EX400

Configure the i2c pins as GPIO outputs and use the i2c-gpio driver to
control the Semtech SX9512 touch controller.

This fixes spurious errors in i2c transactions even at 1kHz with the
native i2c driver.

leds green:wan: Setting an LED's brightness failed (-6)

Signed-off-by: David Bauer <[email protected]>
David Bauer 7 месяцев назад
Родитель
Сommit
f828be4d10

+ 15 - 2
target/linux/ramips/dts/mt7621_genexis_pulse-ex400-common.dtsi

@@ -41,6 +41,18 @@
 			gpios = <&gpio 11 GPIO_ACTIVE_HIGH>;
 		};
 	};
+
+	i2c_gpio: i2c-gpio {
+		compatible = "i2c-gpio";
+
+		sda-gpios = <&gpio 3 GPIO_ACTIVE_HIGH>;
+		scl-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
+
+		i2c-gpio,delay-us = <50>;
+		i2c-gpio,timeout-ms = <100>;
+
+		/* Semtech SX9512 */
+	};
 };
 
 &pcie {
@@ -92,7 +104,8 @@
 };
 
 &i2c {
-	status = "okay";
+	/* Uses i2c-gpio */
+	status = "disabled";
 };
 
 &ethphy0 {
@@ -101,7 +114,7 @@
 
 &state_default {
 	gpio {
-		groups = "uart2", "uart3";
+		groups = "i2c", "uart2", "uart3";
 		function = "gpio";
 	};
 };

+ 1 - 3
target/linux/ramips/dts/mt7621_genexis_pulse-ex400.dts

@@ -22,9 +22,7 @@
 	};
 };
 
-&i2c {
-	clock-frequency = <1000>;
-
+&i2c_gpio {
 	touch@2b {
 		compatible = "semtech,sx9512";