mxs: fix user led for OLinuXino boards
authorMichael Heimpold <mhei@heimpold.de>
Mon, 16 Mar 2020 21:47:44 +0000 (22:47 +0100)
committerPetr Štetiar <ynezz@true.cz>
Mon, 16 Mar 2020 23:51:48 +0000 (00:51 +0100)
More testing after kernel upgrade to 5.4 uncovered a regression: the user
led is not present anymore due to a pin mux "collision" in device tree.

A patch sent to upstream kernel was accepted now. Integrate this
pending fix as platform specific patch so that user led is available again.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
target/linux/mxs/patches-5.4/100-ARM-dts-imx23-introduce-mmc0_sck_cfg.patch [new file with mode: 0644]

diff --git a/target/linux/mxs/patches-5.4/100-ARM-dts-imx23-introduce-mmc0_sck_cfg.patch b/target/linux/mxs/patches-5.4/100-ARM-dts-imx23-introduce-mmc0_sck_cfg.patch
new file mode 100644 (file)
index 0000000..029fe6a
--- /dev/null
@@ -0,0 +1,61 @@
+From e4fdac5def509ffb723b49d6a91f9043009119f9 Mon Sep 17 00:00:00 2001
+From: Michael Heimpold <mhei@heimpold.de>
+Date: Sun, 8 Mar 2020 23:21:44 +0100
+Subject: [PATCH] ARM: dts: imx23: introduce mmc0_sck_cfg
+
+The Olimex Olinuxino board has a user led connected to SSP1_DETECT.
+But since this pin is listed in mmc0_pins_fixup, it is already claimed
+by MMC driver and this results in this error during boot:
+
+[    1.390000] imx23-pinctrl 80018000.pinctrl: pin SSP1_DETECT already
+  requested by 80010000.spi; cannot claim for leds
+[    1.400000] imx23-pinctrl 80018000.pinctrl: pin-65 (leds) status -22
+[    1.410000] imx23-pinctrl 80018000.pinctrl: could not request pin 65
+   (SSP1_DETECT) from group led_gpio2_1.0  on device 80018000.pinctrl
+[    1.420000] leds-gpio leds: Error applying setting, reverse things back
+[    1.430000] leds-gpio: probe of leds failed with error -22
+
+This fix it, introduce mmc0_sck_cfg and switch the Olinuxino board to it.
+
+Signed-off-by: Michael Heimpold <mhei@heimpold.de>
+Signed-off-by: Shawn Guo <shawnguo@kernel.org>
+---
+ arch/arm/boot/dts/imx23-olinuxino.dts | 2 +-
+ arch/arm/boot/dts/imx23.dtsi          | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts
+index 4c9aafe00b5d..0729e72f2283 100644
+--- a/arch/arm/boot/dts/imx23-olinuxino.dts
++++ b/arch/arm/boot/dts/imx23-olinuxino.dts
+@@ -23,7 +23,7 @@
+                       ssp0: spi@80010000 {
+                               compatible = "fsl,imx23-mmc";
+                               pinctrl-names = "default";
+-                              pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_pins_fixup>;
++                              pinctrl-0 = <&mmc0_4bit_pins_a &mmc0_sck_cfg>;
+                               bus-width = <4>;
+                               broken-cd;
+                               status = "okay";
+diff --git a/arch/arm/boot/dts/imx23.dtsi b/arch/arm/boot/dts/imx23.dtsi
+index eb0aeda1682c..c5edff381213 100644
+--- a/arch/arm/boot/dts/imx23.dtsi
++++ b/arch/arm/boot/dts/imx23.dtsi
+@@ -267,6 +267,14 @@
+                                       fsl,pull-up = <MXS_PULL_DISABLE>;
+                               };
++                              mmc0_sck_cfg: mmc0-sck-cfg@0 {
++                                      reg = <0>;
++                                      fsl,pinmux-ids = <
++                                              MX23_PAD_SSP1_SCK__SSP1_SCK
++                                      >;
++                                      fsl,pull-up = <MXS_PULL_DISABLE>;
++                              };
++
+                               mmc1_4bit_pins_a: mmc1-4bit@0 {
+                                       reg = <0>;
+                                       fsl,pinmux-ids = <
+-- 
+2.17.1
+