From: David Bauer Date: Tue, 6 May 2025 16:23:50 +0000 (+0200) Subject: ramips: use i2c-gpio driver for EX400 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f828be4d10d795e2bd74ea77ea12dec285107974;p=thirdparty%2Fopenwrt.git 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 --- diff --git a/target/linux/ramips/dts/mt7621_genexis_pulse-ex400-common.dtsi b/target/linux/ramips/dts/mt7621_genexis_pulse-ex400-common.dtsi index a3bc70e8cef..ebcf558359b 100644 --- a/target/linux/ramips/dts/mt7621_genexis_pulse-ex400-common.dtsi +++ b/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"; }; ðphy0 { @@ -101,7 +114,7 @@ &state_default { gpio { - groups = "uart2", "uart3"; + groups = "i2c", "uart2", "uart3"; function = "gpio"; }; }; diff --git a/target/linux/ramips/dts/mt7621_genexis_pulse-ex400.dts b/target/linux/ramips/dts/mt7621_genexis_pulse-ex400.dts index 61b3e869d7e..ad8a22ad79d 100644 --- a/target/linux/ramips/dts/mt7621_genexis_pulse-ex400.dts +++ b/target/linux/ramips/dts/mt7621_genexis_pulse-ex400.dts @@ -22,9 +22,7 @@ }; }; -&i2c { - clock-frequency = <1000>; - +&i2c_gpio { touch@2b { compatible = "semtech,sx9512";