Enable and configure the three MMC controllers for the Khadas VIM4 board: - sd_emmc_a: SDIO interface for the BCM43752 Wi-Fi module - sd_emmc_b: SD card slot - sd_emmc_c: eMMC storage Signed-off-by: Ronald Claveau --- .../dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts | 90 +++++++++++++++++++++- 1 file changed, 89 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts index 770f06b0b16c7..5a73ae081036c 100644 --- a/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts +++ b/arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts @@ -14,7 +14,10 @@ / { compatible = "khadas,vim4", "amlogic,a311d2", "amlogic,t7"; aliases { - serial0 = &uart_a; + serial0 = &uart_a; + mmc0 = &sd_emmc_c; + mmc1 = &sd_emmc_b; + mmc2 = &sd_emmc_a; }; memory@0 { @@ -159,6 +162,91 @@ &pwm_ab { pinctrl-names = "default"; }; +/* SDIO */ +&sd_emmc_a { + status = "okay"; + pinctrl-0 = <&sdio_pins>; + pinctrl-1 = <&sdio_clk_gate_pins>; + pinctrl-names = "default", "clk-gate"; + #address-cells = <1>; + #size-cells = <0>; + + bus-width = <4>; + cap-sd-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + cap-sdio-irq; + max-frequency = <200000000>; + non-removable; + disable-wp; + no-mmc; + no-sd; + + power-domains = <&pwrc PWRC_T7_SDIO_A_ID>; + + keep-power-in-suspend; + + mmc-pwrseq = <&sdio_pwrseq>; + + vmmc-supply = <&vddao_3v3>; + vqmmc-supply = <&vddao_1v8>; + + brcmf: wifi@1 { + reg = <1>; + compatible = "brcm,bcm43752-fmac", "brcm,bcm4329-fmac"; + }; +}; + +/* SD card */ +&sd_emmc_b { + status = "okay"; + pinctrl-0 = <&sdcard_pins>; + pinctrl-1 = <&sdcard_clk_gate_pins>; + pinctrl-names = "default", "clk-gate"; + + bus-width = <4>; + cap-sd-highspeed; + sd-uhs-sdr12; + sd-uhs-sdr25; + sd-uhs-sdr50; + sd-uhs-sdr104; + max-frequency = <200000000>; + disable-wp; + no-sdio; + no-mmc; + + power-domains = <&pwrc PWRC_T7_SDIO_B_ID>; + + cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>; + vmmc-supply = <&sd_3v3>; + vqmmc-supply = <&vddio_c>; +}; + +/* eMMC */ +&sd_emmc_c { + status = "okay"; + pinctrl-0 = <&emmc_ctrl_pins>, <&emmc_data_8b_pins>, <&emmc_ds_pins>; + pinctrl-1 = <&emmc_clk_gate_pins>; + pinctrl-names = "default", "clk-gate"; + + bus-width = <8>; + cap-mmc-highspeed; + mmc-ddr-1_8v; + mmc-hs200-1_8v; + max-frequency = <200000000>; + disable-wp; + non-removable; + no-sdio; + no-sd; + + power-domains = <&pwrc PWRC_T7_EMMC_ID>; + + vmmc-supply = <&vddio_3v3>; + vqmmc-supply = <&vddio_1v8>; +}; + &uart_a { status = "okay"; clocks = <&xtal>, <&xtal>, <&xtal>; -- 2.49.0