]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: renesas: armadillo800eva: Enable SDHI1
authorbui duc phuc <phucduc.bui@gmail.com>
Tue, 24 Feb 2026 07:45:32 +0000 (14:45 +0700)
committerGeert Uytterhoeven <geert+renesas@glider.be>
Fri, 13 Mar 2026 09:57:50 +0000 (10:57 +0100)
The Armadillo-800EVA board provides an SD card slot and an AWL13 SDIO
interface connected to the SDHI1 controller.  Routing between these two
interfaces is controlled by a mechanical DIP switch and a set of
multiplexers.

To support this, add:
  - A fixed 3.3V regulator for SDHI1 power, controlled by PORT16 (G2),
  - SDHI1 pinmux groups for data, control, and card detection,
  - A gpio-hog for PORT6 (J5) to control the SDHI1/AWLAN multiplexer.

PORT176 (N21) is already configured as output-high in this DTS (via
lcd0-mux-hog), routing the SDSLOT2_ENABLE signal to PORT6.  Since the
hardware includes an external 10k pull-up resistor (R94) on this line,
PORT6 is configured as an input to allow the physical DIP switch to
determine the routing without SoC interference.

Both configurations have been verified:
  - SD card (CON8): detected as mmcblk1, high-speed SDHC,
  - SDIO (CON14): detected as mmc1, high-speed SDIO.

Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://patch.msgid.link/20260224074532.60046-1-phucduc.bui@gmail.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
arch/arm/boot/dts/renesas/r8a7740-armadillo800eva.dts

index 04d24b6d8056fff9f52cd6b9840e836409b3009c..e7aae1e32b2e1f059691938e61ad68e1ee2e31e9 100644 (file)
                enable-active-high;
        };
 
+       vcc_sdhi1: regulator-vcc-sdhi1 {
+               compatible = "regulator-fixed";
+
+               regulator-name = "SDHI1 Vcc";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+
+               gpio = <&pfc 16 GPIO_ACTIVE_HIGH>;
+               enable-active-high;
+       };
+
        reg_5p0v: regulator-5p0v {
                compatible = "regulator-fixed";
                regulator-name = "fixed-5.0V";
                function = "sdhi0";
        };
 
+       sdhi1_pins: sd1 {
+               groups = "sdhi1_data4", "sdhi1_ctrl", "sdhi1_cd", "sdhi1_wp";
+               function = "sdhi1";
+       };
+
        fsia_pins: sounda {
                groups = "fsia_sclk_in", "fsia_mclk_out",
                         "fsia_data_in_1", "fsia_data_out_0";
                gpios = <176 0>;
                output-high;
        };
+
+       sdhi1-select-hog {
+               gpio-hog;
+               gpios = <6 0>;
+               input;
+       };
 };
 
 &tpu {
        status = "okay";
 };
 
+&sdhi1 {
+       pinctrl-0 = <&sdhi1_pins>;
+       pinctrl-names = "default";
+
+       vmmc-supply = <&vcc_sdhi1>;
+       bus-width = <4>;
+       status = "okay";
+};
+
 &sh_fsi2 {
        pinctrl-0 = <&fsia_pins>;
        pinctrl-names = "default";