kernel: enable GPIO-based I2C recovery on i2c0 as well
We have at least one board (on line-M0N) where the I2C-0 bus appears to
be stuck, so let's try to enable the exact same workaround which we
already have on I2C-1.
This kernel version is available on Gerrit as `cesnet/2024-01-03`.
Change-Id: I8e9cc7e4aeefc1e16e4164352b1ee537a8bcec69
diff --git a/board/czechlight/clearfog/linux.fragment b/board/czechlight/clearfog/linux.fragment
index e956912..0b3f385 100644
--- a/board/czechlight/clearfog/linux.fragment
+++ b/board/czechlight/clearfog/linux.fragment
@@ -52,4 +52,4 @@
CONFIG_INPUT_MOUSE=n
CONFIG_BPF_SYSCALL=y
-CONFIG_LOCALVERSION="-8-gc7eadc3bd7fb"
+CONFIG_LOCALVERSION="-9-gc5f9c141ed67"
diff --git a/board/czechlight/clearfog/patches/linux.patch b/board/czechlight/clearfog/patches/linux.patch
index acb3375..bd5ae3b 100644
--- a/board/czechlight/clearfog/patches/linux.patch
+++ b/board/czechlight/clearfog/patches/linux.patch
@@ -42,10 +42,23 @@
+ };
+};
diff --git a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
-index f8a06ae4a3c9..8f32e05b6d87 100644
+index f8a06ae4a3c9..e14020e653a1 100644
--- a/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
+++ b/arch/arm/boot/dts/marvell/armada-388-clearfog.dtsi
-@@ -196,8 +196,12 @@ &i2c1 {
+@@ -111,6 +111,12 @@ ð2 {
+ };
+
+ &i2c0 {
++ pinctrl-0 = <&clearfog_i2c0_pins>;
++ pinctrl-1 = <&clearfog_i2c0_recovery_pins>;
++ pinctrl-names = "default", "gpio";
++ scl-gpios = <&gpio0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
++ sda-gpios = <&gpio0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
++
+ /*
+ * PCA9655 GPIO expander, up to 1MHz clock.
+ * 0-CON3 CLKREQ#
+@@ -196,16 +202,32 @@ &i2c1 {
*/
clock-frequency = <100000>;
pinctrl-0 = <&clearfog_i2c1_pins>;
@@ -59,7 +72,16 @@
};
&pinctrl {
-@@ -206,6 +210,10 @@ clearfog_i2c1_pins: i2c1-pins {
++ clearfog_i2c0_pins: i2c0-pins {
++ marvell,pins = "mpp2", "mpp3";
++ marvell,function = "i2c0";
++ };
++ clearfog_i2c0_recovery_pins: i2c0-recovery-pins {
++ marvell,pins = "mpp2", "mpp3";
++ marvell,function = "gpio";
++ };
+ clearfog_i2c1_pins: i2c1-pins {
+ /* SFP, PCIe, mSATA, mikrobus */
marvell,pins = "mpp26", "mpp27";
marvell,function = "i2c1";
};