]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
riscv: dts: spacemit: enable SD card support on Milk-V Jupiter
authorAurelien Jarno <aurelien@aurel32.net>
Tue, 19 May 2026 04:12:38 +0000 (06:12 +0200)
committerYixun Lan <dlan@kernel.org>
Wed, 20 May 2026 08:30:47 +0000 (08:30 +0000)
Add complete SD card controller support with UHS high-speed modes.

- Enable sdhci0 controller with 4-bit bus width
- Configure card detect GPIO with pull-up
- Connect vmmc-supply to buck4 for 3.3V card power
- Connect vqmmc-supply to aldo1 for 1.8V/3.3V I/O switching
- Add dual pinctrl states for voltage-dependent pin configuration
- Support UHS-I SDR25, SDR50, and SDR104 modes
- Alias it as mmc1

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yixun Lan <dlan@kernel.org>
Link: https://patch.msgid.link/20260519041458.3287843-5-aurelien@aurel32.net
Signed-off-by: Yixun Lan <dlan@kernel.org>
arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts

index 1a833e716cb68ea5f130257d350f602bcb942b6e..beebf804197e2b6e74643bff67def9eda6647f19 100644 (file)
@@ -17,6 +17,7 @@
                i2c2 = &i2c2;
                i2c8 = &i2c8;
                mmc0 = &emmc;
+               mmc1 = &sdhci0;
                serial0 = &uart0;
        };
 
                                regulator-always-on;
                        };
 
-                       aldo1 {
+                       aldo1: aldo1 {
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <3400000>;
                                regulator-boot-on;
        };
 };
 
+&sdhci0 {
+       pinctrl-names = "default", "uhs";
+       pinctrl-0 = <&mmc1_cfg>;
+       pinctrl-1 = <&mmc1_uhs_cfg>;
+       bus-width = <4>;
+       cd-gpios = <&gpio K1_GPIO(80) (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+       no-mmc;
+       no-sdio;
+       disable-wp;
+       cap-sd-highspeed;
+       vmmc-supply = <&buck4_3v3>;
+       vqmmc-supply = <&aldo1>;
+       sd-uhs-sdr25;
+       sd-uhs-sdr50;
+       sd-uhs-sdr104;
+       status = "okay";
+};
+
 &uart0 {
        pinctrl-names = "default";
        pinctrl-0 = <&uart0_2_cfg>;