Add the necessary device tree node for eMMC controller along with the
required pinmux configuration.
Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
---
arch/arm64/boot/dts/ti/k3-am62d2-evm.dts | 27 ++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
index c98e4c98c956..5ceecdd68b3f 100644
--- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
@@ -20,6 +20,7 @@ aliases {
serial0 = &wkup_uart0;
serial1 = &mcu_uart0;
serial2 = &main_uart0;
+ mmc0 = &sdhci0;
mmc1 = &sdhci1;
rtc0 = &wkup_rtc0;
ethernet0 = &cpsw_port1;
@@ -226,6 +227,22 @@ AM62DX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (M20) GPMC0_CSn3.I2C2_SDA */
>;
};
+ main_mmc0_pins_default: main-mmc0-default-pins {
+ pinctrl-single,pins = <
+ AM62DX_IOPAD(0x0220, PIN_INPUT_PULLUP, 0) /* (Y6) MMC0_CMD */
+ AM62DX_IOPAD(0x0218, PIN_OUTPUT, 0) /* (AB7) MMC0_CLK */
+ AM62DX_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (AA6) MMC0_DAT0 */
+ AM62DX_IOPAD(0x0210, PIN_INPUT_PULLUP, 0) /* (AB6) MMC0_DAT1 */
+ AM62DX_IOPAD(0x020c, PIN_INPUT_PULLUP, 0) /* (Y7) MMC0_DAT2 */
+ AM62DX_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (AA7) MMC0_DAT3 */
+ AM62DX_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (Y8) MMC0_DAT4 */
+ AM62DX_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (W7) MMC0_DAT5 */
+ AM62DX_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (W9) MMC0_DAT6 */
+ AM62DX_IOPAD(0x01f8, PIN_INPUT_PULLUP, 0) /* (AB8) MMC0_DAT7 */
+ >;
+ bootph-all;
+ };
+
main_mmc1_pins_default: main-mmc1-default-pins {
pinctrl-single,pins = <
AM62DX_IOPAD(0x023c, PIN_INPUT, 0) /* (C21) MMC1_CMD */
@@ -397,6 +414,16 @@ &main_i2c2 {
clock-frequency = <400000>;
};
+&sdhci0 {
+ /* eMMC */
+ bootph-all;
+ status = "okay";
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&main_mmc0_pins_default>;
+ disable-wp;
+};
+
&sdhci1 {
/* SD/MMC */
status = "okay";
--
2.34.1
On June 23, 2025 thus sayeth Paresh Bhagat:
> Add the necessary device tree node for eMMC controller along with the
> required pinmux configuration.
>
Could this be squashed in 4/6?
> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
> ---
> arch/arm64/boot/dts/ti/k3-am62d2-evm.dts | 27 ++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> index c98e4c98c956..5ceecdd68b3f 100644
> --- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> +++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
> @@ -20,6 +20,7 @@ aliases {
> serial0 = &wkup_uart0;
> serial1 = &mcu_uart0;
> serial2 = &main_uart0;
> + mmc0 = &sdhci0;
> mmc1 = &sdhci1;
> rtc0 = &wkup_rtc0;
> ethernet0 = &cpsw_port1;
> @@ -226,6 +227,22 @@ AM62DX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (M20) GPMC0_CSn3.I2C2_SDA */
> >;
> };
>
> + main_mmc0_pins_default: main-mmc0-default-pins {
> + pinctrl-single,pins = <
> + AM62DX_IOPAD(0x0220, PIN_INPUT_PULLUP, 0) /* (Y6) MMC0_CMD */
> + AM62DX_IOPAD(0x0218, PIN_OUTPUT, 0) /* (AB7) MMC0_CLK */
> + AM62DX_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (AA6) MMC0_DAT0 */
> + AM62DX_IOPAD(0x0210, PIN_INPUT_PULLUP, 0) /* (AB6) MMC0_DAT1 */
> + AM62DX_IOPAD(0x020c, PIN_INPUT_PULLUP, 0) /* (Y7) MMC0_DAT2 */
> + AM62DX_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (AA7) MMC0_DAT3 */
> + AM62DX_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (Y8) MMC0_DAT4 */
> + AM62DX_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (W7) MMC0_DAT5 */
> + AM62DX_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (W9) MMC0_DAT6 */
> + AM62DX_IOPAD(0x01f8, PIN_INPUT_PULLUP, 0) /* (AB8) MMC0_DAT7 */
> + >;
> + bootph-all;
> + };
> +
> main_mmc1_pins_default: main-mmc1-default-pins {
> pinctrl-single,pins = <
> AM62DX_IOPAD(0x023c, PIN_INPUT, 0) /* (C21) MMC1_CMD */
> @@ -397,6 +414,16 @@ &main_i2c2 {
> clock-frequency = <400000>;
> };
>
> +&sdhci0 {
> + /* eMMC */
> + bootph-all;
> + status = "okay";
> + non-removable;
> + pinctrl-names = "default";
> + pinctrl-0 = <&main_mmc0_pins_default>;
> + disable-wp;
> +};
Make sure we follow the ordering of these properties:
https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html#order-of-properties-in-device-node
> +
> &sdhci1 {
> /* SD/MMC */
> status = "okay";
> --
> 2.34.1
>
Hi Bryan,
On 23/06/25 19:58, Bryan Brattlof wrote:
> On June 23, 2025 thus sayeth Paresh Bhagat:
>> Add the necessary device tree node for eMMC controller along with the
>> required pinmux configuration.
>>
> Could this be squashed in 4/6?
Yep will do
>
>> Signed-off-by: Paresh Bhagat <p-bhagat@ti.com>
>> ---
>> arch/arm64/boot/dts/ti/k3-am62d2-evm.dts | 27 ++++++++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
>> index c98e4c98c956..5ceecdd68b3f 100644
>> --- a/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
>> +++ b/arch/arm64/boot/dts/ti/k3-am62d2-evm.dts
>> @@ -20,6 +20,7 @@ aliases {
>> serial0 = &wkup_uart0;
>> serial1 = &mcu_uart0;
>> serial2 = &main_uart0;
>> + mmc0 = &sdhci0;
>> mmc1 = &sdhci1;
>> rtc0 = &wkup_rtc0;
>> ethernet0 = &cpsw_port1;
>> @@ -226,6 +227,22 @@ AM62DX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (M20) GPMC0_CSn3.I2C2_SDA */
>> >;
>> };
>>
>> + main_mmc0_pins_default: main-mmc0-default-pins {
>> + pinctrl-single,pins = <
>> + AM62DX_IOPAD(0x0220, PIN_INPUT_PULLUP, 0) /* (Y6) MMC0_CMD */
>> + AM62DX_IOPAD(0x0218, PIN_OUTPUT, 0) /* (AB7) MMC0_CLK */
>> + AM62DX_IOPAD(0x0214, PIN_INPUT_PULLUP, 0) /* (AA6) MMC0_DAT0 */
>> + AM62DX_IOPAD(0x0210, PIN_INPUT_PULLUP, 0) /* (AB6) MMC0_DAT1 */
>> + AM62DX_IOPAD(0x020c, PIN_INPUT_PULLUP, 0) /* (Y7) MMC0_DAT2 */
>> + AM62DX_IOPAD(0x0208, PIN_INPUT_PULLUP, 0) /* (AA7) MMC0_DAT3 */
>> + AM62DX_IOPAD(0x0204, PIN_INPUT_PULLUP, 0) /* (Y8) MMC0_DAT4 */
>> + AM62DX_IOPAD(0x0200, PIN_INPUT_PULLUP, 0) /* (W7) MMC0_DAT5 */
>> + AM62DX_IOPAD(0x01fc, PIN_INPUT_PULLUP, 0) /* (W9) MMC0_DAT6 */
>> + AM62DX_IOPAD(0x01f8, PIN_INPUT_PULLUP, 0) /* (AB8) MMC0_DAT7 */
>> + >;
>> + bootph-all;
>> + };
>> +
>> main_mmc1_pins_default: main-mmc1-default-pins {
>> pinctrl-single,pins = <
>> AM62DX_IOPAD(0x023c, PIN_INPUT, 0) /* (C21) MMC1_CMD */
>> @@ -397,6 +414,16 @@ &main_i2c2 {
>> clock-frequency = <400000>;
>> };
>>
>> +&sdhci0 {
>> + /* eMMC */
>> + bootph-all;
>> + status = "okay";
>> + non-removable;
>> + pinctrl-names = "default";
>> + pinctrl-0 = <&main_mmc0_pins_default>;
>> + disable-wp;
>> +};
> Make sure we follow the ordering of these properties:
>
> https://www.kernel.org/doc/html/latest/devicetree/bindings/dts-coding-style.html#order-of-properties-in-device-node
Will fix this. Thanks
>
>> +
>> &sdhci1 {
>> /* SD/MMC */
>> status = "okay";
>> --
>> 2.34.1
>>
© 2016 - 2026 Red Hat, Inc.