[PATCH 2/2] riscv: dts: spacemit: Add MMC support on BPI-F3 and OrangePi RV2
Michael Opdenacker
michael.opdenacker at rootcommit.com
Mon Dec 15 02:10:14 PST 2025
This introduces a new sdhci0 node and enables it
for the BananaPI F3 and OrangePi RV2 boards.
Note that card detect is marked as broken in the driver
(SDHCI_QUIRK_BROKEN_CARD_DETECTION quirk), therefore removing the card
while the system is running won't have any effect.
Signed-off-by: Michael Opdenacker <michael.opdenacker at rootcommit.com>
---
arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 12 ++++++++++++
arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts | 10 ++++++++++
arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi | 13 +++++++++++++
arch/riscv/boot/dts/spacemit/k1.dtsi | 10 ++++++++++
4 files changed, 45 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
index 02f218a16318..1ff758115496 100644
--- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts
@@ -16,6 +16,8 @@ aliases {
serial0 = &uart0;
i2c2 = &i2c2;
i2c8 = &i2c8;
+ mmc0 = &emmc;
+ mmc1 = &sdhci0;
};
chosen {
@@ -264,6 +266,16 @@ dldo7 {
};
};
+&sdhci0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_cfg>;
+ bus-width = <4>;
+ cd-gpios = <&gpio K1_GPIO(80) GPIO_ACTIVE_HIGH>;
+ cd-inverted;
+ no-sdio;
+ status = "okay";
+};
+
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_2_cfg>;
diff --git a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
index b9b760d7c398..7204f419c856 100644
--- a/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
+++ b/arch/riscv/boot/dts/spacemit/k1-orangepi-rv2.dts
@@ -247,6 +247,16 @@ dldo7 {
};
};
+&sdhci0 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&mmc1_cfg>;
+ bus-width = <4>;
+ cd-gpios = <&gpio K1_GPIO(80) GPIO_ACTIVE_HIGH>;
+ cd-inverted;
+ no-sdio;
+ status = "okay";
+};
+
&pdma {
status = "okay";
};
diff --git a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
index e922e05ff856..87e84a880fbc 100644
--- a/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi
@@ -537,4 +537,17 @@ pwm14-1-pins {
drive-strength = <32>;
};
};
+
+ mmc1_cfg: mmc1-cfg {
+ mmc1-pins {
+ pinmux = <K1_PADCONF(92, 0)>, /* mmc1_d3 */
+ <K1_PADCONF(91, 0)>, /* mmc1_d2 */
+ <K1_PADCONF(90, 0)>, /* mmc1_d1 */
+ <K1_PADCONF(89, 0)>, /* mmc1_d0 */
+ <K1_PADCONF(113, 0)>, /* mmc1_cmd */
+ <K1_PADCONF(114, 0)>; /* mmc1_clk */
+ bias-pull-up = <1>;
+ drive-strength = <21>;
+ };
+ };
};
diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi
index 7818ca4979b6..a5b7d7c8c066 100644
--- a/arch/riscv/boot/dts/spacemit/k1.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k1.dtsi
@@ -987,6 +987,16 @@ emmc: mmc at d4281000 {
interrupts = <101>;
status = "disabled";
};
+
+ sdhci0: mmc at d4280000 {
+ compatible = "spacemit,k1-sdhci";
+ reg = <0x0 0xd4280000 0x0 0x200>;
+ clocks = <&syscon_apmu CLK_SDH_AXI>,
+ <&syscon_apmu CLK_SDH0>;
+ clock-names = "core", "io";
+ interrupts = <99>;
+ status = "disabled";
+ };
};
};
};
--
2.43.0
More information about the linux-riscv
mailing list