* [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
@ 2026-09-08 17:06 Judith Mendez
2026-09-08 17:15 ` sashiko-bot
2026-09-08 17:16 ` Nishanth Menon
0 siblings, 2 replies; 8+ messages in thread
From: Judith Mendez @ 2026-09-08 17:06 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra, Tero Kristo,
Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-kernel, devicetree, linux-kernel
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
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 17:06 [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle Judith Mendez
@ 2026-09-08 17:15 ` sashiko-bot
2026-09-08 17:16 ` Nishanth Menon
1 sibling, 0 replies; 8+ messages in thread
From: sashiko-bot @ 2026-09-08 17:15 UTC (permalink / raw)
To: Judith Mendez; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] The `power-off-delay-us` property is added directly to the MMC host controller node, where it is completely ignored, rendering the boot failure fix entirely ineffective.
--
commit 02105a5fc6c6d24da9df99e671b001a1f3cd6d1c
Author: Judith Mendez <jm@ti.com>
mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
This commit attempts to fix a boot failure caused by incomplete VDD
discharge during MMC power cycles. It adds a power-off-delay-us property
to the sdhci1 node to provide time for the RC circuit to discharge.
> diff --git a/arch/arm64/boot/dts/ti/k3-am654-base-board.dts b/arch/arm64/boot/dts/ti/k3-am654-base-board.dts
> --- 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>;
[Severity: Medium]
Will this property actually be parsed by the MMC core here?
When placed directly in the MMC host controller node, the power-off-delay-us
property is completely ignored. It is only parsed when placed inside an
mmc-pwrseq-simple node, rendering this proposed fix ineffective.
Furthermore, even if it were parsed via a pwrseq node, the
mmc_pwrseq_power_off() delay executes before the VDD regulator is disabled by
mmc_set_ios(). This means the delay would occur while VDD is still actively
driven, failing to provide the required time for the RC circuit to discharge.
Should this instead be implemented by adding an off-on-delay-us property
directly to the vdd_mmc1_sd regulator node?
> pinctrl-names = "default";
> pinctrl-0 = <&main_mmc1_pins_default>;
> ti,driver-strength-ohm = <50>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260908170635.238775-1-jm@ti.com?part=1
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 17:06 [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle Judith Mendez
2026-09-08 17:15 ` sashiko-bot
@ 2026-09-08 17:16 ` Nishanth Menon
2026-09-08 17:29 ` Judith Mendez
1 sibling, 1 reply; 8+ messages in thread
From: Nishanth Menon @ 2026-09-08 17:16 UTC (permalink / raw)
To: Judith Mendez
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
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
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 17:16 ` Nishanth Menon
@ 2026-09-08 17:29 ` Judith Mendez
2026-09-08 17:49 ` Nishanth Menon
0 siblings, 1 reply; 8+ messages in thread
From: Judith Mendez @ 2026-09-08 17:29 UTC (permalink / raw)
To: Nishanth Menon
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
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
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 17:29 ` Judith Mendez
@ 2026-09-08 17:49 ` Nishanth Menon
2026-09-08 18:13 ` Judith Mendez
0 siblings, 1 reply; 8+ messages in thread
From: Nishanth Menon @ 2026-09-08 17:49 UTC (permalink / raw)
To: Judith Mendez
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
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
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 17:49 ` Nishanth Menon
@ 2026-09-08 18:13 ` Judith Mendez
2026-09-09 10:36 ` Nishanth Menon
0 siblings, 1 reply; 8+ messages in thread
From: Judith Mendez @ 2026-09-08 18:13 UTC (permalink / raw)
To: Nishanth Menon
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
Hi Nishanth,
On 9/8/26 12:49, Nishanth Menon wrote:
> 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?
>
Not exactly. The failure is only seen at u-boot specifically with
SD card boot. Very specifically due to the MMC driver in u-boot and
commit [0] which is not reverted since it is technically correct.
The commit just happened to expose our EVM's issue first. According to
the discussion, mirror Linux patch may be coming soon, which we are
now prepared for with this patch and [1].
[0]
https://lore.kernel.org/u-boot/d17a810c-e2db-4a24-a37d-2d7e02466ce9@ti.com/
[1] https://lore.kernel.org/linux-mmc/20260806162202.657512-1-jm@ti.com/
~ Judith
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-08 18:13 ` Judith Mendez
@ 2026-09-09 10:36 ` Nishanth Menon
2026-09-09 15:36 ` Judith Mendez
0 siblings, 1 reply; 8+ messages in thread
From: Nishanth Menon @ 2026-09-09 10:36 UTC (permalink / raw)
To: Judith Mendez
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
On 13:13-20260908, Judith Mendez wrote:
> Hi Nishanth,
>
> On 9/8/26 12:49, Nishanth Menon wrote:
> > 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?
> >
>
> Not exactly. The failure is only seen at u-boot specifically with
> SD card boot. Very specifically due to the MMC driver in u-boot and
> commit [0] which is not reverted since it is technically correct.
> The commit just happened to expose our EVM's issue first. According to
> the discussion, mirror Linux patch may be coming soon, which we are
> now prepared for with this patch and [1].
>
> [0]
> https://lore.kernel.org/u-boot/d17a810c-e2db-4a24-a37d-2d7e02466ce9@ti.com/
> [1] https://lore.kernel.org/linux-mmc/20260806162202.657512-1-jm@ti.com/
This context is useful in diffstat. I see the driver fix in kernel which
can use this property not present in previous kernels, hence no fixes.
That said, please fix $subject for v2 and repost. I suggest:
arm64: dts: ti: k3-am654-base-board: Add power off delay for proper MMC power cycle
--
Regards,
Nishanth Menon
Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3 1A34 DDB5 849D 1736 249D
https://ti.com/opensource
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle
2026-09-09 10:36 ` Nishanth Menon
@ 2026-09-09 15:36 ` Judith Mendez
0 siblings, 0 replies; 8+ messages in thread
From: Judith Mendez @ 2026-09-09 15:36 UTC (permalink / raw)
To: Nishanth Menon
Cc: Vignesh Raghavendra, Tero Kristo, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, linux-arm-kernel, devicetree,
linux-kernel
Hi Nishanth,
On 9/9/26 05:36, Nishanth Menon wrote:
> On 13:13-20260908, Judith Mendez wrote:
>> Hi Nishanth,
>>
>> On 9/8/26 12:49, Nishanth Menon wrote:
>>> 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?
>>>
>>
>> Not exactly. The failure is only seen at u-boot specifically with
>> SD card boot. Very specifically due to the MMC driver in u-boot and
>> commit [0] which is not reverted since it is technically correct.
>> The commit just happened to expose our EVM's issue first. According to
>> the discussion, mirror Linux patch may be coming soon, which we are
>> now prepared for with this patch and [1].
>>
>> [0]
>> https://lore.kernel.org/u-boot/d17a810c-e2db-4a24-a37d-2d7e02466ce9@ti.com/
>> [1] https://lore.kernel.org/linux-mmc/20260806162202.657512-1-jm@ti.com/
>
> This context is useful in diffstat. I see the driver fix in kernel which
> can use this property not present in previous kernels, hence no fixes.
>
> That said, please fix $subject for v2 and repost. I suggest:
> arm64: dts: ti: k3-am654-base-board: Add power off delay for proper MMC power cycle
>
Ok, will fixup coverletter and subject for v2.
Thanks.
~ Judith
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-09-09 15:37 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-08 17:06 [PATCH] mmc: dts: am654: Add 650ms power off delay for proper MMC power cycle Judith Mendez
2026-09-08 17:15 ` sashiko-bot
2026-09-08 17:16 ` Nishanth Menon
2026-09-08 17:29 ` Judith Mendez
2026-09-08 17:49 ` Nishanth Menon
2026-09-08 18:13 ` Judith Mendez
2026-09-09 10:36 ` Nishanth Menon
2026-09-09 15:36 ` Judith Mendez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox