From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> Enable MicroSD card slot which is connected to SDHI1 on the RZ/T2H and RZ/N2H EVKs. Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> --- .../dts/renesas/r9a09g077m44-rzt2h-evk.dts | 9 ++++ .../dts/renesas/r9a09g087m44-rzn2h-evk.dts | 6 +++ .../dts/renesas/rzt2h-n2h-evk-common.dtsi | 50 +++++++++++++++++++ 3 files changed, 65 insertions(+) diff --git a/arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dts b/arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dts index 05945a8a3228..1841700b264f 100644 --- a/arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dts +++ b/arch/arm64/boot/dts/renesas/r9a09g077m44-rzt2h-evk.dts @@ -20,6 +20,13 @@ */ #define SD0_EMMC 1 +/* + * P17_4 = SD1_CD; SW2[3] = ON + * P08_5 = SD1_PWEN; SW2[3] = ON + * P08_6 = IOVS SW2[3] = ON; SW5[3] = OFF; SW5[4] = ON + */ +#define SD1_MICRO_SD 1 + #include "rzt2h-n2h-evk-common.dtsi" / { @@ -43,10 +50,12 @@ led2 { gpios = <&pinctrl RZT2H_GPIO(6, 7) GPIO_ACTIVE_LOW>; }; +#if (!SD1_MICRO_SD) led3 { /* SW2-3: OFF */ gpios = <&pinctrl RZT2H_GPIO(8, 5) GPIO_ACTIVE_LOW>; }; +#endif led4 { /* SW8-3: ON, SW8-4: OFF */ diff --git a/arch/arm64/boot/dts/renesas/r9a09g087m44-rzn2h-evk.dts b/arch/arm64/boot/dts/renesas/r9a09g087m44-rzn2h-evk.dts index 89baa601a179..1b13995e5020 100644 --- a/arch/arm64/boot/dts/renesas/r9a09g087m44-rzn2h-evk.dts +++ b/arch/arm64/boot/dts/renesas/r9a09g087m44-rzn2h-evk.dts @@ -19,6 +19,12 @@ */ #define SD0_EMMC 1 +/* + * P17_4 = SD1_CD; DSW5[3] = ON; DSW19[1] = OFF; DSW19[2] = ON + * P08_6 = IOVSp DSW5[3] = ON + */ +#define SD1_MICRO_SD 1 + #include "rzt2h-n2h-evk-common.dtsi" /* diff --git a/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi b/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi index 7fa49de2a243..304a0c8764ca 100644 --- a/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi +++ b/arch/arm64/boot/dts/renesas/rzt2h-n2h-evk-common.dtsi @@ -36,6 +36,18 @@ reg_3p3v: regulator-3p3v { regulator-boot-on; regulator-always-on; }; + +#if SD1_MICRO_SD + vccq_sdhi1: regulator-vccq-sdhi1 { + compatible = "regulator-gpio"; + regulator-name = "SDHI1 VccQ"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + gpios = <&pinctrl RZT2H_GPIO(8, 6) GPIO_ACTIVE_HIGH>; + gpios-states = <0>; + states = <3300000 0>, <1800000 1>; + }; +#endif }; &extal_clk { @@ -91,6 +103,30 @@ sd0-emmc-ctrl-pins { <RZT2H_PORT_PINMUX(13, 2, 0x29)>; /* SD0_RST# */ }; }; + +#if SD1_MICRO_SD + sdhi1-pwen-hog { + gpio-hog; + gpios = <RZT2H_GPIO(8, 5) GPIO_ACTIVE_HIGH>; + output-high; + line-name = "SD1_PWEN"; + }; +#endif + + sdhi1_pins: sd1-group { + sd1-data-pins { + pinmux = <RZT2H_PORT_PINMUX(16, 7, 0x29)>, /* SD1_DATA0 */ + <RZT2H_PORT_PINMUX(17, 0, 0x29)>, /* SD1_DATA1 */ + <RZT2H_PORT_PINMUX(17, 1, 0x29)>, /* SD1_DATA2 */ + <RZT2H_PORT_PINMUX(17, 2, 0x29)>; /* SD1_DATA3 */ + }; + + sd1-ctrl-pins { + pinmux = <RZT2H_PORT_PINMUX(16, 5, 0x29)>, /* SD1_CLK */ + <RZT2H_PORT_PINMUX(16, 6, 0x29)>, /* SD1_CMD */ + <RZT2H_PORT_PINMUX(17, 4, 0x29)>; /* SD1_CD */ + }; + }; }; &sci0 { @@ -113,3 +149,17 @@ &sdhi0 { status = "okay"; }; #endif + +#if SD1_MICRO_SD +&sdhi1 { + pinctrl-0 = <&sdhi1_pins>; + pinctrl-1 = <&sdhi1_pins>; + pinctrl-names = "default", "state_uhs"; + vmmc-supply = <®_3p3v>; + vqmmc-supply = <&vccq_sdhi1>; + bus-width = <4>; + sd-uhs-sdr50; + sd-uhs-sdr104; + status = "okay"; +}; +#endif -- 2.50.1