[PATCH v19 4/4] arm64: dts: renesas: rzg3l-smarc-som: Enable SDHI2
Biju <[email protected]> Thu, 23 Jul 2026 16:41:50 +0100
| Newsgroups | org.kernel.vger.linux-renesas-soc,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
From: Biju Das <[email protected]> Enable SDHI2 on the RZ/G3L SMARC EVK platform using the internal voltage regulator for voltage switching. SDHI2 signals are muxed with I2S0; the selection is controlled by the SW_SD2_EN macro in the board DTS, which must match the position of switch SYS.4 on the SoM. By default, I2S0 is enabled. Signed-off-by: Biju Das <[email protected]> --- v18->v19: * No change. v17->v18: * No change. v1->v17: * No change. --- .../boot/dts/renesas/rzg3l-smarc-som.dtsi | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi b/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi index c365b8087520..1b72c310830e 100644 --- a/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi +++ b/arch/arm64/boot/dts/renesas/rzg3l-smarc-som.dtsi @@ -42,6 +42,7 @@ aliases { ethernet1 = ð1; i2c0 = &i2c0; mmc0 = &sdhi0; + mmc2 = &sdhi2; }; memory@48000000 { @@ -330,6 +331,74 @@ sd0-data { power-source = <1800>; }; }; + + sdhi2_pins: sd2 { + sd2-cd { + pinmux = <RZG3L_PORT_PINMUX(K, 0, 1)>; /* SD2_CD */ + }; + + sd2-clk { + pinmux = <RZG3L_PORT_PINMUX(H, 0, 1)>; /* SD2_CLK */ + power-source = <3300>; + }; + + sd2-cmd { + pinmux = <RZG3L_PORT_PINMUX(H, 1, 1)>; /* SD2_CMD */ + input-enable; + power-source = <3300>; + }; + + sd2-data { + pinmux = <RZG3L_PORT_PINMUX(H, 2, 1)>, /* SD2_DAT0 */ + <RZG3L_PORT_PINMUX(H, 3, 1)>, /* SD2_DAT1 */ + <RZG3L_PORT_PINMUX(H, 4, 1)>, /* SD2_DAT2 */ + <RZG3L_PORT_PINMUX(H, 5, 1)>; /* SD2_DAT3 */ + input-enable; + power-source = <3300>; + }; + + sd2-iovs { + pinmux = <RZG3L_PORT_PINMUX(K, 1, 1)>; /* SD2_IOVS */ + }; + + sd2-pwen { + pinmux = <RZG3L_PORT_PINMUX(K, 2, 1)>; /* SD2_PWEN */ + }; + }; + + sdhi2_pins_uhs: sd2-uhs { + sd2-cd { + pinmux = <RZG3L_PORT_PINMUX(K, 0, 1)>; /* SD2_CD */ + }; + + sd2-clk { + pinmux = <RZG3L_PORT_PINMUX(H, 0, 1)>; /* SD2_CLK */ + power-source = <1800>; + }; + + sd2-cmd { + pinmux = <RZG3L_PORT_PINMUX(H, 1, 1)>; /* SD2_CMD */ + input-enable; + power-source = <1800>; + }; + + sd2-data { + pinmux = <RZG3L_PORT_PINMUX(H, 2, 1)>, /* SD2_DAT0 */ + <RZG3L_PORT_PINMUX(H, 3, 1)>, /* SD2_DAT1 */ + <RZG3L_PORT_PINMUX(H, 4, 1)>, /* SD2_DAT2 */ + <RZG3L_PORT_PINMUX(H, 5, 1)>; /* SD2_DAT3 */ + input-enable; + power-source = <1800>; + }; + + sd2-iovs { + pinmux = <RZG3L_PORT_PINMUX(K, 1, 1)>; /* SD2_IOVS */ + }; + + sd2-pwen { + pinmux = <RZG3L_PORT_PINMUX(K, 2, 1)>; /* SD2_PWEN */ + }; + }; }; #if (SW_SD0_DEV_SEL) @@ -363,6 +432,25 @@ &sdhi0 { }; #endif +#if SW_SD2_EN +&sdhi2 { + pinctrl-0 = <&sdhi2_pins>; + pinctrl-1 = <&sdhi2_pins_uhs>; + pinctrl-names = "default", "state_uhs"; + + vmmc-supply = <®_3p3v>; + vqmmc-supply = <&sdhi2_vqmmc>; + bus-width = <4>; + sd-uhs-sdr50; + sd-uhs-sdr104; + status = "okay"; +}; + +&sdhi2_vqmmc { + status = "okay"; +}; +#endif + &wdt0 { timeout-sec = <60>; status = "okay"; -- 2.43.0