When booting from SPI, the ROM code does not initialize the MMC
controller on AN7581. As a result, the first MMC initialization
is performed by U-Boot.

In this case, the r_smpl bit is left uninitialized, which may
cause incorrect sampling timing during early MMC access.

Set the r_smpl bit explicitly in the U-Boot device tree to ensure
reliable MMC initialization.

This change is limited to the U-Boot-specific device tree.
The Linux MMC driver already performs runtime delay detection
and does not require a fixed r_smpl setting.

Signed-off-by: Ray Liu <[email protected]>
---
 arch/arm/dts/an7581-u-boot.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/dts/an7581-u-boot.dtsi b/arch/arm/dts/an7581-u-boot.dtsi
index a9297ca6503..7fc71d471c4 100644
--- a/arch/arm/dts/an7581-u-boot.dtsi
+++ b/arch/arm/dts/an7581-u-boot.dtsi
@@ -84,6 +84,7 @@
                        reg = <0x0 0x1fa0e000 0x0 0x1000>,
                                <0x0 0x1fa0c000 0x0 0x60>;
                        interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
+                       r_smpl = <1>;
                        clocks = <&scuclk EN7581_CLK_EMMC>, <&clk25m>;
                        clock-names = "source", "hclk";
                        bus-width = <4>;
-- 
2.34.1

Reply via email to