* [PATCH 0/8] MMC pinmux configuration fixes
@ 2026-07-29 19:59 Judith Mendez
2026-07-29 19:59 ` [PATCH 1/8] arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address Judith Mendez
` (7 more replies)
0 siblings, 8 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
This series fixes MMC pin input/output and pullup/pulldown settings
across AM62x, AM62AX, AM62LX and AM64x boards.
All patches have been tested except patch 5/8, so tested-bys
are apreciated.
Judith Mendez (8):
arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address
arm64: dts: ti: k3-am62a: Set MMC clock pins as OUTPUT
arm64: dts: ti: k3-am62: Set MMC clock pins as OUTPUT
arm64: dts: ti: k3-am62l-evm: Remove unnecessary internal pullups for
MMC0
arm64: dts: ti: k3-am64: Enable IO expander interrupt
arm64: dts: ti: k3-am64: Let MMC1 clock loopback use hardware default
arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls
arm64: dts: ti: k3-am642-evm: Remove unnecessary internal pullups for
MMC1
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 2 +-
.../boot/dts/ti/k3-am62-pocketbeagle2.dts | 2 +-
.../arm64/boot/dts/ti/k3-am625-beagleplay.dts | 6 ++--
.../arm64/boot/dts/ti/k3-am625-sk-common.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 5 ++--
arch/arm64/boot/dts/ti/k3-am62l3-evm.dts | 4 +--
.../arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 19 +++++++++---
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 29 +++++++++++++------
9 files changed, 46 insertions(+), 25 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 1/8] arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 19:59 ` [PATCH 2/8] arm64: dts: ti: k3-am62a: Set MMC clock pins as OUTPUT Judith Mendez
` (6 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
MMC0_CLKLB and MMC0_CLK have incorrectly swapped register addresses
as per datasheet [0]. Set the correct MMC0_CLK address and drop the
unneeded MMC0_CLKLB pin configuration.
[0] https://www.ti.com/lit/gpn/am62a7 Rev. E: Table 5-1. Pin Attributes
Fixes: e041ec6e86e7 ("arm64: dts: ti: k3-am62a7-sk: Enable eMMC support")
Cc: <stable@vger.kernel.org>
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index 821a9705bb7d4..826fff38cfb77 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -324,8 +324,7 @@ AM62AX_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
main_mmc0_pins_default: main-mmc0-default-pins {
pinctrl-single,pins = <
AM62AX_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
- AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLKLB */
- AM62AX_IOPAD(0x21c, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
+ AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
AM62AX_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/8] arm64: dts: ti: k3-am62a: Set MMC clock pins as OUTPUT
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
2026-07-29 19:59 ` [PATCH 1/8] arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 19:59 ` [PATCH 3/8] arm64: dts: ti: k3-am62: " Judith Mendez
` (5 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
MMC clock pins must be configured as OUTPUT-only per TRM [0] with
receiver disabled (RXACTIVE bit = 0). Change MMC CLK pins from
PIN_INPUT to PIN_OUTPUT to match documentation.
[0] https://www.ti.com/lit/pdf/spruj16 Rev. C: Table 12-257. MMCSDi I/O Signals
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
index 826fff38cfb77..9b120cd9b0c37 100644
--- a/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts
@@ -324,7 +324,7 @@ AM62AX_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
main_mmc0_pins_default: main-mmc0-default-pins {
pinctrl-single,pins = <
AM62AX_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
- AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
+ AM62AX_IOPAD(0x218, PIN_OUTPUT, 0) /* (AB1) MMC0_CLK */
AM62AX_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
@@ -340,7 +340,7 @@ AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62AX_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
- AM62AX_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
+ AM62AX_IOPAD(0x234, PIN_OUTPUT, 0) /* (B22) MMC1_CLK */
AM62AX_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
AM62AX_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
AM62AX_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 3/8] arm64: dts: ti: k3-am62: Set MMC clock pins as OUTPUT
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
2026-07-29 19:59 ` [PATCH 1/8] arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address Judith Mendez
2026-07-29 19:59 ` [PATCH 2/8] arm64: dts: ti: k3-am62a: Set MMC clock pins as OUTPUT Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 20:08 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 4/8] arm64: dts: ti: k3-am62l-evm: Remove unnecessary internal pullups for MMC0 Judith Mendez
` (4 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
MMC clock pins must be configured as OUTPUT-only per TRM [0] with
receiver disabled (RXACTIVE bit = 0). Change MMC CLK pins from
PIN_INPUT to PIN_OUTPUT to match documentation.
[0] https://www.ti.com/lit/pdf/spruiv7 Rev. C: Table 12-246. MMCSDi I/O Signals
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 2 +-
arch/arm64/boot/dts/ti/k3-am62-pocketbeagle2.dts | 2 +-
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 6 +++---
arch/arm64/boot/dts/ti/k3-am625-sk-common.dtsi | 2 +-
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 2 +-
5 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
index dfd65c00f5b95..7fd508f4eddf1 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
@@ -86,7 +86,7 @@ main_mmc0_pins_default: main-mmc0-default-pins {
bootph-all;
pinctrl-single,pins = <
AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (V3) MMC0_CMD */
- AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (Y1) MMC0_CLK */
+ AM62X_IOPAD(0x218, PIN_OUTPUT, 0) /* (Y1) MMC0_CLK */
AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (V2) MMC0_DAT0 */
AM62X_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (V1) MMC0_DAT1 */
AM62X_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (W2) MMC0_DAT2 */
diff --git a/arch/arm64/boot/dts/ti/k3-am62-pocketbeagle2.dts b/arch/arm64/boot/dts/ti/k3-am62-pocketbeagle2.dts
index 7a4cffc27bda3..1c691629d4ad0 100644
--- a/arch/arm64/boot/dts/ti/k3-am62-pocketbeagle2.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62-pocketbeagle2.dts
@@ -235,7 +235,7 @@ AM62X_IOPAD(0x0020, PIN_OUTPUT, 3) /* (J25) OSPI0_D5.UART6_TXD */
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21/C18) MMC1_CMD */
- AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22/A20) MMC1_CLK */
+ AM62X_IOPAD(0x234, PIN_OUTPUT, 0) /* (B22/A20) MMC1_CLK */
AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22/A19) MMC1_DAT0 */
AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21/B19) MMC1_DAT1 */
AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21/B20) MMC1_DAT2 */
diff --git a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
index c468b9c5fc09a..898e4ca3fd87e 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
+++ b/arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts
@@ -323,7 +323,7 @@ emmc_pins_default: emmc-default-pins {
bootph-all;
pinctrl-single,pins = <
AM62X_IOPAD(0x0220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
- AM62X_IOPAD(0x0218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
+ AM62X_IOPAD(0x0218, PIN_OUTPUT, 0) /* (AB1) MMC0_CLK */
AM62X_IOPAD(0x0214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
AM62X_IOPAD(0x0210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
AM62X_IOPAD(0x020c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
@@ -346,7 +346,7 @@ sd_pins_default: sd-default-pins {
bootph-all;
pinctrl-single,pins = <
AM62X_IOPAD(0x023c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
- AM62X_IOPAD(0x0234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
+ AM62X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (B22) MMC1_CLK */
AM62X_IOPAD(0x0230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
AM62X_IOPAD(0x022c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
AM62X_IOPAD(0x0228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
@@ -358,7 +358,7 @@ AM62X_IOPAD(0x0240, PIN_INPUT, 7) /* (D17) MMC1_SDCD.GPIO1_48 */
wifi_pins_default: wifi-default-pins {
pinctrl-single,pins = <
AM62X_IOPAD(0x0120, PIN_INPUT, 0) /* (C24) MMC2_CMD */
- AM62X_IOPAD(0x0118, PIN_INPUT, 0) /* (D25) MMC2_CLK */
+ AM62X_IOPAD(0x0118, PIN_OUTPUT, 0) /* (D25) MMC2_CLK */
AM62X_IOPAD(0x0114, PIN_INPUT, 0) /* (B24) MMC2_DAT0 */
AM62X_IOPAD(0x0110, PIN_INPUT, 0) /* (C25) MMC2_DAT1 */
AM62X_IOPAD(0x010c, PIN_INPUT, 0) /* (E23) MMC2_DAT2 */
diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am625-sk-common.dtsi
index 9c83626826453..085b067d96fbb 100644
--- a/arch/arm64/boot/dts/ti/k3-am625-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am625-sk-common.dtsi
@@ -98,7 +98,7 @@ main_mmc0_pins_default: main-mmc0-default-pins {
bootph-all;
pinctrl-single,pins = <
AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
- AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
+ AM62X_IOPAD(0x218, PIN_OUTPUT, 0) /* (AB1) MMC0_CLK */
AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
AM62X_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
AM62X_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
index ab9e58c2d225e..d2f41e2ed6239 100644
--- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
@@ -194,7 +194,7 @@ main_mmc1_pins_default: main-mmc1-default-pins {
bootph-all;
pinctrl-single,pins = <
AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21/C18) MMC1_CMD */
- AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22/A20) MMC1_CLK */
+ AM62X_IOPAD(0x234, PIN_OUTPUT, 0) /* (B22/A20) MMC1_CLK */
AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22/A19) MMC1_DAT0 */
AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21/B19) MMC1_DAT1 */
AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21/B20) MMC1_DAT2 */
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/8] arm64: dts: ti: k3-am62l-evm: Remove unnecessary internal pullups for MMC0
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
` (2 preceding siblings ...)
2026-07-29 19:59 ` [PATCH 3/8] arm64: dts: ti: k3-am62: " Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 19:59 ` [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt Judith Mendez
` (3 subsequent siblings)
7 siblings, 0 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
AM62L EVM has external pullups on MMC0 CMD and D0 pins [0]. Remove
internal pullups considering:
- Internal pullups are not required, without internal pullups, RDAT and
RCMD values of 47K are within spec
- having both pullups (stronger pull) results in unnecessary power
consumption
[0] https://www.ti.com/lit/zip/SPRCAL6
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62l3-evm.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
index 84a0cfaaf196a..964387eb51788 100644
--- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
@@ -253,9 +253,9 @@ AM62LX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (D8) I2C2_SDA */
mmc0_pins_default: mmc0-default-pins {
pinctrl-single,pins = <
- AM62LX_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (D2) MMC0_CMD */
+ AM62LX_IOPAD(0x0214, PIN_INPUT, 0) /* (D2) MMC0_CMD */
AM62LX_IOPAD(0x020c, PIN_OUTPUT, 0) /* (B2) MMC0_CLK */
- AM62LX_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (D3) MMC0_DAT0 */
+ AM62LX_IOPAD(0x0208, PIN_INPUT, 0) /* (D3) MMC0_DAT0 */
AM62LX_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (D4) MMC0_DAT1 */
AM62LX_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (C1) MMC0_DAT2 */
AM62LX_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (C2) MMC0_DAT3 */
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
` (3 preceding siblings ...)
2026-07-29 19:59 ` [PATCH 4/8] arm64: dts: ti: k3-am62l-evm: Remove unnecessary internal pullups for MMC0 Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 20:09 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 6/8] arm64: dts: ti: k3-am64: Let MMC1 clock loopback use hardware default Judith Mendez
` (2 subsequent siblings)
7 siblings, 1 reply; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
On AM64 EVM and SK boards, MMC1_SDWP is used for IO expander interrupt,
remove from MMC1 pinmux node and setup as exp1 IO expander interrupt.
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 14 +++++++++++++-
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 14 +++++++++++++-
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index bc4347cf71140..bb756c922252a 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -259,11 +259,17 @@ AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
- AM64X_IOPAD(0x029c, PIN_INPUT, 0) /* (C20) MMC1_SDWP */
AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */
>;
};
+ main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
+ pinctrl-single,pins = <
+ AM64X_IOPAD(0x029c, PIN_INPUT, 7) /* (C20) MMC1_SDWP.GPIO1_78 */
+ >;
+ bootph-all;
+ };
+
main_uart1_pins_default: main-uart1-default-pins {
pinctrl-single,pins = <
AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
@@ -481,6 +487,12 @@ exp1: gpio@22 {
bootph-all;
compatible = "ti,tca6424";
reg = <0x22>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
+ interrupt-parent = <&main_gpio1>;
+ interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL",
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index d28a38c87f32a..3d7160400cef5 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -198,7 +198,6 @@ &main_pmx0 {
main_mmc1_pins_default: main-mmc1-default-pins {
bootph-all;
pinctrl-single,pins = <
- AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
@@ -210,6 +209,13 @@ AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
>;
};
+ main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
+ pinctrl-single,pins = <
+ AM64X_IOPAD(0x029c, PIN_INPUT, 7) /* (C20) MMC1_SDWP.GPIO1_78 */
+ >;
+ bootph-all;
+ };
+
main_uart0_pins_default: main-uart0-default-pins {
bootph-all;
pinctrl-single,pins = <
@@ -383,6 +389,12 @@ exp1: gpio@70 {
bootph-all;
compatible = "nxp,pca9538";
reg = <0x70>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
+ interrupt-parent = <&main_gpio1>;
+ interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 6/8] arm64: dts: ti: k3-am64: Let MMC1 clock loopback use hardware default
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
` (4 preceding siblings ...)
2026-07-29 19:59 ` [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 19:59 ` [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls Judith Mendez
2026-07-29 19:59 ` [PATCH 8/8] arm64: dts: ti: k3-am642-evm: Remove unnecessary internal pullups for MMC1 Judith Mendez
7 siblings, 0 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
Clock loopback (CLKLB) should not be changed from its default state.
Explicit pinmux config is unnecessary and overrides correct default.
Drop CLKLB in pinmux node for MMC1.
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 1 -
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 1 -
2 files changed, 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index bb756c922252a..f57f39f8579d5 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -259,7 +259,6 @@ AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
- AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */
>;
};
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index 3d7160400cef5..7f2483968f4ee 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -200,7 +200,6 @@ main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
- AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */
AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
` (5 preceding siblings ...)
2026-07-29 19:59 ` [PATCH 6/8] arm64: dts: ti: k3-am64: Let MMC1 clock loopback use hardware default Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
2026-07-29 20:13 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 8/8] arm64: dts: ti: k3-am642-evm: Remove unnecessary internal pullups for MMC1 Judith Mendez
7 siblings, 1 reply; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
AM64 SK has external pullups on all MMC pins [0] and thus internal pullups
are not required, drop them since:
Enabled, internal pullups on data pins further reduces the total pull
resistance, violating the minimum RDAT and RCMD recommended spec values
of 10K ohm.
Drop CD pullup since board has 1.1K external pullup resistor and internal
pullup increases power consumption.
[0] https://www.ti.com/lit/zip/SPRR460
Fixes: 744545ffec14f ("arm64: dts: ti: k3-am642-sk: Fix mmc1 pinmux")
Cc: stable@vger.kernel.org
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am642-sk.dts | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
index 7f2483968f4ee..fde4f80524301 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
@@ -198,13 +198,13 @@ &main_pmx0 {
main_mmc1_pins_default: main-mmc1-default-pins {
bootph-all;
pinctrl-single,pins = <
- AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
- AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
- AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
- AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
- AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
- AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
- AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
+ AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
+ AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
+ AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */
+ AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */
+ AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */
+ AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */
+ AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */
>;
};
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 8/8] arm64: dts: ti: k3-am642-evm: Remove unnecessary internal pullups for MMC1
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
` (6 preceding siblings ...)
2026-07-29 19:59 ` [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls Judith Mendez
@ 2026-07-29 19:59 ` Judith Mendez
7 siblings, 0 replies; 12+ messages in thread
From: Judith Mendez @ 2026-07-29 19:59 UTC (permalink / raw)
To: Judith Mendez, Nishanth Menon, Vignesh Raghavendra
Cc: Tero Kristo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-kernel, devicetree, linux-kernel, Moteen Shah
AM64 EVM has external pullups on MMC1 CLK and MMC1 CD pins [0], remove
internal pullups since both enabled results in unnecessary power
consumption.
[0] https://www.ti.com/lit/zip/SPRR462
Signed-off-by: Judith Mendez <jm@ti.com>
---
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
index f57f39f8579d5..37e3dd862a43f 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -253,12 +253,12 @@ &main_pmx0 {
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
- AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
+ AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */
AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
- AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
+ AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
>;
};
--
2.54.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 3/8] arm64: dts: ti: k3-am62: Set MMC clock pins as OUTPUT
2026-07-29 19:59 ` [PATCH 3/8] arm64: dts: ti: k3-am62: " Judith Mendez
@ 2026-07-29 20:08 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 20:08 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:
Pre-existing issues:
- [High] This problem wasn't introduced by this patch, but the commit fails to apply the necessary AM62x SoC hardware constraint to several third-party device trees. While it correctly updates the TI SK and Beagle boards' MMC clock pins to `PIN_OUTPUT` to disable the receiver per the TRM (SPRUIV7), boards like the Toradex Verdin, PHYTEC phyCORE, TQ, and Variscite AM62x SOMs still incorrectly define MMC0/1/2 clock pins as `PIN_INPUT` or `PIN_INPUT_PULLDOWN`. As this is an underlying SoC requirement, all boards integrating the AM62x SoC must implement the correct pad configuration.
--
--- Patch [3]: [PATCH 3/8] arm64: dts: ti: k3-am62: Set MMC clock pins as OUTPUT ---
commit 7601627985b20fa80186e314fd493c2b9a330fe1
Author: Judith Mendez <jm@ti.com>
arm64: dts: ti: k3-am62: Set MMC clock pins as OUTPUT
This commit updates the MMC clock pin configuration on various AM62x boards to
use PIN_OUTPUT. This matches the TRM requirement to disable the receiver for
these pins.
> diff --git a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
> index dfd65c00f5b95..7fd508f4eddf1 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts
> @@ -86,7 +86,7 @@ main_mmc0_pins_default: main-mmc0-default-pins {
> bootph-all;
> pinctrl-single,pins = <
> AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (V3) MMC0_CMD */
> - AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (Y1) MMC0_CLK */
> + AM62X_IOPAD(0x218, PIN_OUTPUT, 0) /* (Y1) MMC0_CLK */
[Severity: High]
This isn't a bug introduced by this patch, but while this updates the TI SK and
Beagle boards to use PIN_OUTPUT for MMC clock pins, it looks like several
third-party AM62x boards still define these pins as PIN_INPUT or
PIN_INPUT_PULLDOWN.
For example:
arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi:pinctrl_sdhci0()
AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
arch/arm64/boot/dts/ti/k3-am62-phycore-som.dtsi:main_mmc0_pins_default()
AM62X_IOPAD(0x218, PIN_INPUT_PULLDOWN, 0) /* (AB1) MMC0_CLK */
arch/arm64/boot/dts/ti/k3-am62x-phyboard-lyra.dtsi:main_mmc1_pins_default()
AM62X_IOPAD(0x234, PIN_INPUT_PULLDOWN, 0) /* (B22) MMC1_CLK */
arch/arm64/boot/dts/ti/k3-am62a-phycore-som.dtsi:main_mmc0_pins_default()
AM62AX_IOPAD(0x218, PIN_INPUT_PULLDOWN, 0) /* (AB7) MMC0_CLK */
arch/arm64/boot/dts/ti/k3-am625-tqma62xx.dtsi:main_mmc0_pins()
AM62X_IOPAD(0x218, PIN_INPUT, 0)
Since this is an underlying AM62x SoC hardware requirement from the TRM, should
these other device trees also be updated to prevent potential signal integrity
issues and intermittent SD/eMMC I/O failures?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729195958.671147-1-jm@ti.com?part=3
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt
2026-07-29 19:59 ` [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt Judith Mendez
@ 2026-07-29 20:09 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 20:09 UTC (permalink / raw)
To: Judith Mendez; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The IO expander interrupt is incorrectly configured with IRQ_TYPE_LEVEL_HIGH polarity for an active-low open-drain output.
- [Medium] The pad configuration for the SK board removes the internal pull-up, potentially leaving the open-drain interrupt line floating.
--
--- Patch [5]: [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt ---
commit 846c9ea4531cda7562459d539ef568783fb1e41c
Author: Judith Mendez <jm@ti.com>
arm64: dts: ti: k3-am64: Enable IO expander interrupt
On AM64 EVM and SK boards, MMC1_SDWP is used for IO expander interrupt,
remove from MMC1 pinmux node and setup as exp1 IO expander interrupt.
> diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
> --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
[ ... ]
> @@ -481,6 +487,12 @@ exp1: gpio@22 {
> bootph-all;
> compatible = "ti,tca6424";
> reg = <0x22>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
> + interrupt-parent = <&main_gpio1>;
> + interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
[Severity: High]
Will setting this interrupt to IRQ_TYPE_LEVEL_HIGH cause an interrupt storm?
Since the TCA6424 IO expander has an active-low open-drain interrupt output,
an active-high configuration might trigger continuously when the line is
idle, eventually causing the kernel to disable the interrupt.
> + interrupt-controller;
> + #interrupt-cells = <2>;
> gpio-controller;
> diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> --- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> @@ -198,7 +198,6 @@ &main_pmx0 {
> main_mmc1_pins_default: main-mmc1-default-pins {
> bootph-all;
> pinctrl-single,pins = <
> - AM64X_IOPAD(0x029c, PIN_INPUT_PULLUP, 0) /* (C20) MMC1_SDWP */
> AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
> AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
[ ... ]
> @@ -210,6 +209,13 @@ AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
> >;
> };
>
> + main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
> + pinctrl-single,pins = <
> + AM64X_IOPAD(0x029c, PIN_INPUT, 7) /* (C20) MMC1_SDWP.GPIO1_78 */
[Severity: Medium]
Does dropping the internal pull-up on this pad risk leaving the interrupt
line floating?
The previous configuration for this pad on the SK board used
PIN_INPUT_PULLUP. If the board lacks a dedicated external pull-up resistor
for this open-drain interrupt, using PIN_INPUT might lead to spurious edge
detections.
> + >;
> + bootph-all;
> + };
[ ... ]
> @@ -383,6 +389,12 @@ exp1: gpio@70 {
> bootph-all;
> compatible = "nxp,pca9538";
> reg = <0x70>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
> + interrupt-parent = <&main_gpio1>;
> + interrupts = <78 IRQ_TYPE_LEVEL_HIGH>;
[Severity: High]
Could this also trigger an interrupt storm on the SK board?
Similar to the EVM board, the PCA9538 IO expander typically has an
active-low open-drain interrupt. An active-high configuration will likely
trigger unconditionally on boot.
> + interrupt-controller;
> + #interrupt-cells = <2>;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729195958.671147-1-jm@ti.com?part=5
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls
2026-07-29 19:59 ` [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls Judith Mendez
@ 2026-07-29 20:13 ` sashiko-bot
0 siblings, 0 replies; 12+ messages in thread
From: sashiko-bot @ 2026-07-29 20:13 UTC (permalink / raw)
To: Judith Mendez; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Unintended removal of pulldown and incorrect receiver state for `MMC1_CLK`.
--
--- Patch [7]: [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls ---
commit 3a83d1bd44a1ef684b5bd29a93a2127e82509201
Author: Judith Mendez <jm@ti.com>
arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls
This commit drops internal pullups on MMC data and CMD pins to prevent violating
minimum pull resistance specifications, as external pullups are already present
on the board. It also removes the CD pullup to reduce power consumption.
> diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> --- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
> @@ -198,13 +198,13 @@ &main_pmx0 {
> main_mmc1_pins_default: main-mmc1-default-pins {
> bootph-all;
> pinctrl-single,pins = <
> - AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
> - AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
> - AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
> + AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */
> + AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */
> + AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */
[Severity: Medium]
The commit message mentions removing internal pullups because of external
pullups on the board, but MMC1_CLK in main_mmc1_pins_default was configured
with PIN_INPUT_PULLDOWN. Does this blanket change unintentionally leave the clock
pin floating when the MMC controller tri-states the clock line (for example,
during idle or suspend)?
Additionally, keeping this as PIN_INPUT leaves the receiver enabled. If the
clock line floats without a pulldown, could the floating voltage cause the input
receiver to rapidly toggle and increase power consumption? Should this pin be
configured as OUTPUT-only instead?
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729195958.671147-1-jm@ti.com?part=7
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2026-07-29 20:13 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-29 19:59 [PATCH 0/8] MMC pinmux configuration fixes Judith Mendez
2026-07-29 19:59 ` [PATCH 1/8] arm64: dts: ti: k3-am62a: Fix MMC0_CLK register address Judith Mendez
2026-07-29 19:59 ` [PATCH 2/8] arm64: dts: ti: k3-am62a: Set MMC clock pins as OUTPUT Judith Mendez
2026-07-29 19:59 ` [PATCH 3/8] arm64: dts: ti: k3-am62: " Judith Mendez
2026-07-29 20:08 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 4/8] arm64: dts: ti: k3-am62l-evm: Remove unnecessary internal pullups for MMC0 Judith Mendez
2026-07-29 19:59 ` [PATCH 5/8] arm64: dts: ti: k3-am64: Enable IO expander interrupt Judith Mendez
2026-07-29 20:09 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 6/8] arm64: dts: ti: k3-am64: Let MMC1 clock loopback use hardware default Judith Mendez
2026-07-29 19:59 ` [PATCH 7/8] arm64: dts: ti: k3-am64-sk: Disable MMC1 internal pulls Judith Mendez
2026-07-29 20:13 ` sashiko-bot
2026-07-29 19:59 ` [PATCH 8/8] arm64: dts: ti: k3-am642-evm: Remove unnecessary internal pullups for MMC1 Judith Mendez
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox