From: Chris Morgan <macromorgan@xxxxxxxxxxx> Add support for the second MMC slot on the Anbernic RG35XX series. The second MMC card is connected to MMC2 (WiFi if present is MMC1). The MMC logic is powered by cldo3 via the power domain to which it is connected, and also has an external 3.3v GPIO controlled regulator required for functionality. Signed-off-by: Chris Morgan <macromorgan@xxxxxxxxxxx> --- .../sun50i-h700-anbernic-rg35xx-2024.dts | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts index 80ccab7b5ba7..e2039fd76b3d 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-h700-anbernic-rg35xx-2024.dts @@ -18,6 +18,9 @@ / { compatible = "anbernic,rg35xx-2024", "allwinner,sun50i-h700"; aliases { + mmc0 = &mmc0; + mmc1 = &mmc2; + mmc2 = &mmc1; serial0 = &uart0; }; @@ -175,6 +178,15 @@ reg_vcc5v: regulator-vcc5v { /* USB-C power input */ regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; }; + + reg_vcc3v3_mmc2: regulator-vcc3v3-mmc2 { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&pio 4 4 GPIO_ACTIVE_HIGH>; /* PE4 */ + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-name = "vcc3v3-mmc2"; + }; }; &cpu0 { @@ -186,10 +198,21 @@ &ehci0 { }; &mmc0 { - vmmc-supply = <®_cldo3>; - disable-wp; + bus-width = <4>; cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + disable-wp; + no-1-8-v; + vmmc-supply = <®_cldo3>; + status = "okay"; +}; + +&mmc2 { bus-width = <4>; + cd-gpios = <&pio 4 22 GPIO_ACTIVE_LOW>; /* PE22 */ + disable-wp; + no-1-8-v; + vmmc-supply = <®_vcc3v3_mmc2>; + vqmmc-supply = <®_cldo3>; status = "okay"; }; -- 2.43.0