[PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle

Judith Mendez posted 1 patch 2 weeks, 3 days ago
arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 1 +
1 file changed, 1 insertion(+)
[PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
Posted by Judith Mendez 2 weeks, 3 days ago
The AM65x EVM MMC1 VDD rail discharges slowly through RC circuit.
SD spec (section 6.4.1.3) requires VDD < 0.5V for minimum 1ms during
power cycle. Measured discharge time on this board is ~632.97ms to
reach < 0.5V threshold.

During boot, MMC power cycles between boot stages. Without power off
delay, VDD doesn't fully discharge. Card retains 1.8V signaling state
from previous stages. When U-Boot initializes, card no longer asserts
S18A in ACMD41 response (already switched to 1.8V). Host misinterprets
card state and forces 1.8V anyway, falling into a bad state and causing
a boot failure.

Add power-off-delay-us = 650000 (650ms) to ensure proper VDD discharge
during power cycles, allowing card to fully reset state between boot
stages.

Signed-off-by: Judith Mendez <jm@ti.com>
---
 arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
index ca1300e130936..edcf039ccfbd0 100644
--- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
+++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
@@ -460,6 +460,7 @@ &sdhci0 {
 &sdhci1 {
 	status = "okay";
 	vmmc-supply = <&vdd_mmc1_sd>;
+	power-off-delay-us = <650000>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&main_mmc1_pins_default>;
 	ti,driver-strength-ohm = <50>;
-- 
2.34.1
Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
Posted by Nishanth Menon 2 weeks, 3 days ago
On 12:06-20260908, Judith Mendez wrote:
> The AM65x EVM MMC1 VDD rail discharges slowly through RC circuit.
> SD spec (section 6.4.1.3) requires VDD < 0.5V for minimum 1ms during
> power cycle. Measured discharge time on this board is ~632.97ms to
> reach < 0.5V threshold.
> 
> During boot, MMC power cycles between boot stages. Without power off
> delay, VDD doesn't fully discharge. Card retains 1.8V signaling state
> from previous stages. When U-Boot initializes, card no longer asserts
> S18A in ACMD41 response (already switched to 1.8V). Host misinterprets
> card state and forces 1.8V anyway, falling into a bad state and causing
> a boot failure.
> 
> Add power-off-delay-us = 650000 (650ms) to ensure proper VDD discharge
> during power cycles, allowing card to fully reset state between boot
> stages.
> 
> Signed-off-by: Judith Mendez <jm@ti.com>

Fixes ?

> ---
>  arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
> index ca1300e130936..edcf039ccfbd0 100644
> --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
> @@ -460,6 +460,7 @@ &sdhci0 {
>  &sdhci1 {
>  	status = "okay";
>  	vmmc-supply = <&vdd_mmc1_sd>;
> +	power-off-delay-us = <650000>;
>  	pinctrl-names = "default";
>  	pinctrl-0 = <&main_mmc1_pins_default>;
>  	ti,driver-strength-ohm = <50>;
> -- 
> 2.34.1
> 

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
https://ti.com/opensource
Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
Posted by Judith Mendez 2 weeks, 3 days ago
Hi Nishanth,

On 9/8/26 12:16, Nishanth Menon wrote:
> On 12:06-20260908, Judith Mendez wrote:
>> The AM65x EVM MMC1 VDD rail discharges slowly through RC circuit.
>> SD spec (section 6.4.1.3) requires VDD < 0.5V for minimum 1ms during
>> power cycle. Measured discharge time on this board is ~632.97ms to
>> reach < 0.5V threshold.
>>
>> During boot, MMC power cycles between boot stages. Without power off
>> delay, VDD doesn't fully discharge. Card retains 1.8V signaling state
>> from previous stages. When U-Boot initializes, card no longer asserts
>> S18A in ACMD41 response (already switched to 1.8V). Host misinterprets
>> card state and forces 1.8V anyway, falling into a bad state and causing
>> a boot failure.
>>
>> Add power-off-delay-us = 650000 (650ms) to ensure proper VDD discharge
>> during power cycles, allowing card to fully reset state between boot
>> stages.
>>
>> Signed-off-by: Judith Mendez <jm@ti.com>
> 
> Fixes ?

Fix is really for u-boot, don't think I can point to a u-boot
commit here can I?

~ Judith

> 
>> ---
>>   arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 1 +
>>   1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
>> index ca1300e130936..edcf039ccfbd0 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
>> @@ -460,6 +460,7 @@ &sdhci0 {
>>   &sdhci1 {
>>   	status = "okay";
>>   	vmmc-supply = <&vdd_mmc1_sd>;
>> +	power-off-delay-us = <650000>;
>>   	pinctrl-names = "default";
>>   	pinctrl-0 = <&main_mmc1_pins_default>;
>>   	ti,driver-strength-ohm = <50>;
>> -- 
>> 2.34.1
>>
>
Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
Posted by Nishanth Menon 2 weeks, 3 days ago
On 12:29-20260908, Judith Mendez wrote:
> Hi Nishanth,
> 
> On 9/8/26 12:16, Nishanth Menon wrote:
> > On 12:06-20260908, Judith Mendez wrote:
> > > The AM65x EVM MMC1 VDD rail discharges slowly through RC circuit.
> > > SD spec (section 6.4.1.3) requires VDD < 0.5V for minimum 1ms during
> > > power cycle. Measured discharge time on this board is ~632.97ms to
> > > reach < 0.5V threshold.
> > > 
> > > During boot, MMC power cycles between boot stages. Without power off
> > > delay, VDD doesn't fully discharge. Card retains 1.8V signaling state
> > > from previous stages. When U-Boot initializes, card no longer asserts
> > > S18A in ACMD41 response (already switched to 1.8V). Host misinterprets
> > > card state and forces 1.8V anyway, falling into a bad state and causing
> > > a boot failure.
> > > 
> > > Add power-off-delay-us = 650000 (650ms) to ensure proper VDD discharge
> > > during power cycles, allowing card to fully reset state between boot
> > > stages.
> > > 
> > > Signed-off-by: Judith Mendez <jm@ti.com>
> > 
> > Fixes ?
> 
> Fix is really for u-boot, don't think I can point to a u-boot
> commit here can I?

You'd face the same problem if you are starting from a different boot
media and then enable MMC in linux kernel, right? what was described in
the patch sounds like a discharge latency of the evm. This was missed in
the original commit?

-- 
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
https://ti.com/opensource