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

