[PATCH v10 04/17] riscv: dts: spacemit: k1: add SD card controller and pinctrl support
Eric Chung <[email protected]>
| Newsgroups | org.u-boot-project.lists.u-boot |
|---|---|
| Message-ID | <[email protected]> |
From: Iker Pedrosa <[email protected]> Add SD card controller infrastructure for SpacemiT K1 SoC with complete pinctrl support for both standard and UHS modes. - Add sdhci0 controller definition with clocks, resets and interrupts - Add mmc1_cfg pinctrl for 3.3V standard SD operation - Add mmc1_uhs_cfg pinctrl for 1.8V UHS high-speed operation - Configure appropriate drive strength and power-source properties This provides complete SD card infrastructure that K1-based boards can enable. Tested-by: Anand Moon <[email protected]> Tested-by: Trevor Gamblin <[email protected]> Tested-by: Vincent Legoll <[email protected]> Reviewed-by: Troy Mitchell <[email protected]> Signed-off-by: Iker Pedrosa <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Yixun Lan <[email protected]> [ upstream commit: 2d77e577109967ef65f269c1fc1d6a659d4260fb ] (cherry picked from commit 785af36511c3d3664204be1427c5cade3ce9765d) --- dts/upstream/src/riscv/spacemit/k1-pinctrl.dtsi | 40 +++++++++++++++++++++++++ dts/upstream/src/riscv/spacemit/k1.dtsi | 13 ++++++++ 2 files changed, 53 insertions(+) diff --git a/dts/upstream/src/riscv/spacemit/k1-pinctrl.dtsi b/dts/upstream/src/riscv/spacemit/k1-pinctrl.dtsi index 34d88334e95e..4e9a62d0e85b 100644 --- a/dts/upstream/src/riscv/spacemit/k1-pinctrl.dtsi +++ b/dts/upstream/src/riscv/spacemit/k1-pinctrl.dtsi @@ -590,4 +590,44 @@ power-source = <3300>; }; }; + + mmc1_cfg: mmc1-cfg { + mmc1-data-cmd-pins { + pinmux = <K1_PADCONF(104, 0)>, /* mmc1_d3 */ + <K1_PADCONF(105, 0)>, /* mmc1_d2 */ + <K1_PADCONF(106, 0)>, /* mmc1_d1 */ + <K1_PADCONF(107, 0)>, /* mmc1_d0 */ + <K1_PADCONF(108, 0)>; /* mmc1_cmd */ + bias-pull-up = <1>; + drive-strength = <19>; + power-source = <3300>; + }; + + mmc1-clk-pins { + pinmux = <K1_PADCONF(109, 0)>; /* mmc1_clk */ + bias-pull-down = <1>; + drive-strength = <19>; + power-source = <3300>; + }; + }; + + mmc1_uhs_cfg: mmc1-uhs-cfg { + mmc1-data-cmd-pins { + pinmux = <K1_PADCONF(104, 0)>, /* mmc1_d3 */ + <K1_PADCONF(105, 0)>, /* mmc1_d2 */ + <K1_PADCONF(106, 0)>, /* mmc1_d1 */ + <K1_PADCONF(107, 0)>, /* mmc1_d0 */ + <K1_PADCONF(108, 0)>; /* mmc1_cmd */ + bias-pull-up = <1>; + drive-strength = <42>; + power-source = <1800>; + }; + + mmc1-clk-pins { + pinmux = <K1_PADCONF(109, 0)>; /* mmc1_clk */ + bias-pull-down = <1>; + drive-strength = <42>; + power-source = <1800>; + }; + }; }; diff --git a/dts/upstream/src/riscv/spacemit/k1.dtsi b/dts/upstream/src/riscv/spacemit/k1.dtsi index f8747190d2e1..acb608ee7b53 100644 --- a/dts/upstream/src/riscv/spacemit/k1.dtsi +++ b/dts/upstream/src/riscv/spacemit/k1.dtsi @@ -1214,6 +1214,19 @@ status = "disabled"; }; + sdhci0: mmc@d4280000 { + compatible = "spacemit,k1-sdhci"; + reg = <0x0 0xd4280000 0x0 0x200>; + clocks = <&syscon_apmu CLK_SDH_AXI>, + <&syscon_apmu CLK_SDH0>; + clock-names = "core", "io"; + resets = <&syscon_apmu RESET_SDH_AXI>, + <&syscon_apmu RESET_SDH0>; + reset-names = "axi", "sdh"; + interrupts = <99>; + status = "disabled"; + }; + emmc: mmc@d4281000 { compatible = "spacemit,k1-sdhci"; reg = <0x0 0xd4281000 0x0 0x200>; -- 2.51.0