]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
arm64: dts: amlogic: t7: khadas-vim4: Add MMC nodes
authorRonald Claveau <linux-kernel-dev@aliel.fr>
Thu, 26 Mar 2026 09:59:20 +0000 (10:59 +0100)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 2 Jun 2026 07:49:46 +0000 (09:49 +0200)
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

Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Ronald Claveau <linux-kernel-dev@aliel.fr>
Link: https://patch.msgid.link/20260326-add-emmc-t7-vim4-v5-9-d3f182b48e9d@aliel.fr
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/amlogic-t7-a311d2-khadas-vim4.dts

index 994d04f3f5f0affd85a2014bce9149685f03074a..69d6118ba57e711a5fff82653ef4b48543a05f30 100644 (file)
@@ -15,6 +15,9 @@
 
        aliases {
                serial0 = &uart_a;
+               mmc0 = &sd_emmc_c;
+               mmc1 = &sd_emmc_b;
+               mmc2 = &sd_emmc_a;
        };
 
        memory@0 {
        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>;