From: Trevor Gamblin <[email protected]>

Update the Muse Pi Pro devicetree with SD card support to match what
was done for the OrangePi RV2 in [1]. More precisely:

- Enable sdhci0 controller with 4-bit bus width
- Configure card detect GPIO with internal pull-up support
- 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
- Add stable MMC device aliases (mmc0 = eMMC, mmc1 = SD card)

[1] 
https://lore.kernel.org/linux-riscv/[email protected]/T/#

Tested-by: Andre Heider <[email protected]>
Signed-off-by: Trevor Gamblin <[email protected]>
Signed-off-by: Iker Pedrosa <[email protected]>
Signed-off-by: Andre Heider <[email protected]>
Link: 
https://lore.kernel.org/linux-riscv/[email protected]/T/#
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Yixun Lan <[email protected]>

[ upstream commit: 85e4c5733cd7efa39f10d7200095c016ce4a2815 ]

(cherry picked from commit 9f9e7116bf6057433905f05a6ea06dd17a4b41c4)
---
 dts/upstream/src/riscv/spacemit/k1-musepi-pro.dts | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/dts/upstream/src/riscv/spacemit/k1-musepi-pro.dts 
b/dts/upstream/src/riscv/spacemit/k1-musepi-pro.dts
index 4aef287353ca..0d809e4ad3b1 100644
--- a/dts/upstream/src/riscv/spacemit/k1-musepi-pro.dts
+++ b/dts/upstream/src/riscv/spacemit/k1-musepi-pro.dts
@@ -19,6 +19,8 @@
                serial0 = &uart0;
                i2c2 = &i2c2;
                i2c8 = &i2c8;
+               mmc0 = &emmc;
+               mmc1 = &sdhci0;
        };
 
        chosen {
@@ -218,7 +220,7 @@
                                regulator-always-on;
                        };
 
-                       aldo1 {
+                       aldo1: aldo1 {
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <3400000>;
                                regulator-boot-on;
@@ -384,3 +386,21 @@
                reset-gpios = <&gpio K1_GPIO(123) GPIO_ACTIVE_LOW>; /* HUB_RST 
*/
        };
 };
+
+&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_HIGH | 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";
+};

-- 
2.51.0

Reply via email to