[PATCH 3/3] riscv: dts: canaan: Add mmc nodes for K230
From: Jiayu Du <hidden>
Date: 2026-02-04 08:29:37
Also in:
linux-mmc, linux-riscv, lkml
Subsystem:
risc-v architecture, risc-v misc soc support, the rest · Maintainers:
Paul Walmsley, Palmer Dabbelt, Albert Ou, Conor Dooley, Linus Torvalds
Add MMC nodes to K230, including eMMC and SDIO. Enable HS200 eMMC on the SoM and SDIO high-speed on the board. Signed-off-by: Jiayu Du <redacted> --- .../boot/dts/canaan/k230-canmv-dshanpi.dts | 17 ++++++++++++ .../dts/canaan/k230-canmv-module-dshanpi.dtsi | 7 +++++ arch/riscv/boot/dts/canaan/k230.dtsi | 26 +++++++++++++++++++ 3 files changed, 50 insertions(+)
diff --git a/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts b/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts
index 55197cfc25b4..fdf6524db09b 100644
--- a/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts
+++ b/arch/riscv/boot/dts/canaan/k230-canmv-dshanpi.dts@@ -15,6 +15,8 @@ / { aliases { serial0 = &uart0; + mmc0 = &emmc; + mmc1 = &sdio; }; chosen {
@@ -75,6 +77,21 @@ uart0-rxd-cfg { }; }; +&emmc { + vmmc-supply = <&vdd_3v3>; + vqmmc-supply = <&vdd_1v8>; +}; + +&sdio { + bus-width = <4>; + max-frequency = <50000000>; + vmmc-supply = <&vdd_3v3>; + vqmmc-supply = <&vdd_3v3>; + cap-sd-highspeed; + no-1-8-v; + status = "okay"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>;
diff --git a/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi b/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi
index 566665d39239..1db7569253fe 100644
--- a/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi
+++ b/arch/riscv/boot/dts/canaan/k230-canmv-module-dshanpi.dtsi@@ -24,3 +24,10 @@ &sysclk { clocks = <&osc24m>, <&timerx_pulse_in>; clock-names = "osc24m", "timer-pulse-in"; }; + +&emmc { + bus-width = <8>; + max-frequency = <200000000>; + mmc-hs200-1_8v; + status = "okay"; +};
diff --git a/arch/riscv/boot/dts/canaan/k230.dtsi b/arch/riscv/boot/dts/canaan/k230.dtsi
index b369b7d8dc83..296bf448403d 100644
--- a/arch/riscv/boot/dts/canaan/k230.dtsi
+++ b/arch/riscv/boot/dts/canaan/k230.dtsi@@ -177,6 +177,32 @@ usb1: usb@91540000 { status = "disabled"; }; + emmc: mmc@91580000 { + compatible = "canaan,k230-emmc"; + reg = <0x0 0x91580000 0x0 0x1000>; + clocks = <&sysclk K230_HS_SD0_AXI_GATE>, + <&sysclk K230_HS_SD0_CARD_GATE>, + <&sysclk K230_HS_SD0_BASE_GATE>, + <&sysclk K230_HS_SD0_TIMER_GATE>, + <&sysclk K230_HS_SD0_AHB_GATE>; + clock-names = "bus", "core", "base", "timer", "ahb"; + interrupts = <142 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + + sdio: mmc@91581000 { + compatible = "canaan,k230-sdio"; + reg = <0x0 0x91581000 0x0 0x1000>; + clocks = <&sysclk K230_HS_SD1_AXI_GATE>, + <&sysclk K230_HS_SD1_CARD_GATE>, + <&sysclk K230_HS_SD1_BASE_GATE>, + <&sysclk K230_HS_SD1_TIMER_GATE>, + <&sysclk K230_HS_SD1_AHB_GATE>; + clock-names = "bus", "core", "base", "timer", "ahb"; + interrupts = <144 IRQ_TYPE_LEVEL_HIGH>; + status = "disabled"; + }; + usbphy: usb-phy@91585000 { compatible = "canaan,k230-usb-phy"; reg = <0x0 0x91585000 0x0 0x400>;
--
2.52.0