arm64: dts: imx8mp-var-som: Fix LDO5 shutdown causing SD card timeout
authorHimanshu Bhavani <himanshu.bhavani@siliconsignals.io>
Mon, 5 May 2025 05:58:27 +0000 (11:28 +0530)
committerShawn Guo <shawnguo@kernel.org>
Fri, 9 May 2025 14:48:35 +0000 (22:48 +0800)
Fix SD card timeout issue caused by LDO5 regulator getting disabled
after boot.

The kernel log shows LDO5 being disabled, which leads to a timeout
on USDHC2:
[   33.760561] LDO5: disabling
[   81.119861] mmc1: Timeout waiting for hardware interrupt.

To prevent this, set regulator-boot-on and regulator-always-on for
LDO5. Also add the vqmmc regulator to properly support 1.8V/3.3V
signaling for USDHC2 using a GPIO-controlled regulator.

Fixes: 6c2a1f4f71258 ("arm64: dts: imx8mp-var-som-symphony: Add Variscite Symphony board and VAR-SOM-MX8MP SoM")
Signed-off-by: Himanshu Bhavani <himanshu.bhavani@siliconsignals.io>
Acked-by: Tarang Raval <tarang.raval@siliconsignals.io>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm64/boot/dts/freescale/imx8mp-var-som.dtsi

index b2ac2583a59292077d63c67c894f3a9f60bb47f6..b59da91fdd041f0630e54e7487b67388746fee72 100644 (file)
@@ -35,7 +35,6 @@
                      <0x1 0x00000000 0 0xc0000000>;
        };
 
-
        reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
                compatible = "regulator-fixed";
                regulator-name = "VSD_3V3";
                startup-delay-us = <100>;
                off-on-delay-us = <12000>;
        };
+
+       reg_usdhc2_vqmmc: regulator-usdhc2-vqmmc {
+               compatible = "regulator-gpio";
+               regulator-name = "VSD_VSEL";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio2 12 GPIO_ACTIVE_HIGH>;
+               states = <3300000 0x0 1800000 0x1>;
+               vin-supply = <&ldo5>;
+       };
 };
 
 &A53_0 {
         pinctrl-2 = <&pinctrl_usdhc2_200mhz>, <&pinctrl_usdhc2_gpio>;
         cd-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
         vmmc-supply = <&reg_usdhc2_vmmc>;
+       vqmmc-supply = <&reg_usdhc2_vqmmc>;
         bus-width = <4>;
         status = "okay";
 };