[PATCH v2] arm: dts: renesas: r8a7740-armadillo800eva: Enable SDHI1
From: phucduc . bui
Date: Tue Feb 24 2026 - 02:47:25 EST
From: bui duc phuc <phucduc.bui@xxxxxxxxx>
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.
This patch adds:
- 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@xxxxxxxxx>
---
Changes in v2:
- Added PORT6 (J5) as a gpio-hog in input mode to preserve physical switch
functionality, influenced by the R94 10k pull-up resistor.
- Included hardware verification results for both SD card and SDIO modes.
- Improved commit description with detailed hardware routing logic.
Note: While a specific driver for the AWL13 SDIO module may not be
present in the current mainline kernel, the SDHI1 host successfully
detects it as a high-speed SDIO device, confirming the hardware
description is correct.
.../dts/renesas/r8a7740-armadillo800eva.dts | 31 +++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/arm/boot/dts/renesas/r8a7740-armadillo800eva.dts b/arch/arm/boot/dts/renesas/r8a7740-armadillo800eva.dts
index 04d24b6d8056..e7aae1e32b2e 100644
--- a/arch/arm/boot/dts/renesas/r8a7740-armadillo800eva.dts
+++ b/arch/arm/boot/dts/renesas/r8a7740-armadillo800eva.dts
@@ -65,6 +65,17 @@ vccq_sdhi0: regulator-vccq-sdhi0 {
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";
@@ -285,6 +296,11 @@ sdhi0_pins: sd0 {
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";
@@ -302,6 +318,12 @@ lcd0-mux-hog {
gpios = <176 0>;
output-high;
};
+
+ sdhi1-select-hog {
+ gpio-hog;
+ gpios = <6 0>;
+ input;
+ };
};
&tpu {
@@ -336,6 +358,15 @@ &sdhi0 {
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";
--
2.43.0