]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: amlogic: meson-s4-s905y4-khadas-vim1s: enable eMMC storage
authorNick Xie <nick@khadas.com>
Fri, 16 Jan 2026 02:36:11 +0000 (10:36 +0800)
committerNeil Armstrong <neil.armstrong@linaro.org>
Tue, 20 Jan 2026 08:28:26 +0000 (09:28 +0100)
Enable the on-board eMMC storage for Khadas VIM1S.

The VIM1S features a 16GB eMMC 5.1 module. This patch adds the
necessary regulators and the eMMC controller node.

Signed-off-by: Nick Xie <nick@khadas.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Link: https://patch.msgid.link/20260116023611.2033078-1-nick@khadas.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts

index 79ffc703a2e9945b49fe74279c59629fe011b567..4a66c1bec965ef2da56e2944ff8e40ae6bcc87ca 100644 (file)
                };
        };
 
+       emmc_pwrseq: emmc-pwrseq {
+               compatible = "mmc-pwrseq-emmc";
+               reset-gpios = <&gpio GPIOB_9 GPIO_ACTIVE_LOW>;
+       };
+
        sdio_32k: sdio-32k {
                compatible = "pwm-clock";
                #clock-cells = <0>;
                                3300000 0>;
        };
 
+       vddao_3v3: regulator-vddao-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDAO_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               vin-supply = <&main_5v>;
+               regulator-always-on;
+       };
+
+       vddio_ao1v8: regulator-vddio-ao1v8 {
+               compatible = "regulator-fixed";
+               regulator-name = "VDDIO_AO1V8";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vddao_3v3>;
+               regulator-always-on;
+       };
+
        /* SY8120B1ABC DC/DC Regulator. */
        vddcpu: regulator-vddcpu {
                compatible = "pwm-regulator";
        };
 };
 
+&emmc {
+       status = "okay";
+       pinctrl-0 = <&emmc_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>;
+       non-removable;
+       disable-wp;
+
+       mmc-pwrseq = <&emmc_pwrseq>;
+       vmmc-supply = <&vddao_3v3>;
+       vqmmc-supply = <&vddio_ao1v8>;
+};
+
 &ethmac {
        status = "okay";
        phy-handle = <&internal_ephy>;