]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: meson-s4-s905y4-khadas-vim1s: add initial device tree
authorNick Xie <nick@khadas.com>
Thu, 15 Jan 2026 03:00:15 +0000 (11:00 +0800)
committerNeil Armstrong <neil.armstrong@linaro.org>
Thu, 15 Jan 2026 13:00:43 +0000 (14:00 +0100)
The Khadas VIM1S uses the Amlogic S905Y4 SoC, based on the
Amlogic S4 SoC family, on a board with the same form factor as the
VIM/VIM2/VIM3/VIM4 models. Serial debug console, ethernet, SD card
work with this initial device tree.

It features:
 - 2GB LPDDR4 RAM
 - 16GB eMMC 5.1 storage
 - 32MB SPI flash
 - 100M Ethernet
 - AP6256 Wireless (802.11 a/b/g/n/ac, BT5.0)
 - HDMI 2.1 video
 - 2x USB 2.0 ports
 - 1x USB-C (power) with USB 2.0 OTG
 - 2x LED's (1x red, 1x white)
 - 3x buttons (power, function, reset)
 - IR receiver
 - 40pin GPIO Header
 - 1x micro SD card slot

Signed-off-by: Nick Xie <nick@khadas.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://patch.msgid.link/20260115030015.1334517-4-nick@khadas.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
arch/arm64/boot/dts/amlogic/Makefile
arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts [new file with mode: 0644]

index 219fb088c704d056da55ed9e9fcbe2f092a04f28..15f9c817e502356cc15761e5f0cd8dc35898d7a9 100644 (file)
@@ -85,6 +85,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-ugoos-am3.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
+dtb-$(CONFIG_ARCH_MESON) += meson-s4-s905y4-khadas-vim1s.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
 dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m2-pro.dtb
diff --git a/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts b/arch/arm64/boot/dts/amlogic/meson-s4-s905y4-khadas-vim1s.dts
new file mode 100644 (file)
index 0000000..79ffc70
--- /dev/null
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2026 Khadas Technology Co., Ltd.
+ */
+
+/dts-v1/;
+
+#include "meson-s4.dtsi"
+
+/ {
+       model = "Khadas VIM1S";
+       compatible = "khadas,vim1s", "amlogic,s905y4", "amlogic,s4";
+       interrupt-parent = <&gic>;
+       #address-cells = <2>;
+       #size-cells = <2>;
+
+       aliases {
+               mmc0 = &emmc; /* eMMC */
+               mmc1 = &sd; /* SD card */
+               mmc2 = &sdio; /* SDIO */
+               serial0 = &uart_b;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x0 0x0 0x80000000>;
+       };
+
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               /* 52 MiB reserved for ARM Trusted Firmware */
+               secmon_reserved: secmon@5000000 {
+                       reg = <0x0 0x05000000 0x0 0x3400000>;
+                       no-map;
+               };
+       };
+
+       sdio_32k: sdio-32k {
+               compatible = "pwm-clock";
+               #clock-cells = <0>;
+               clock-frequency = <32768>;
+               pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
+               clocks = <&sdio_32k>;
+               clock-names = "ext_clock";
+       };
+
+       main_5v: regulator-main-5v {
+               compatible = "regulator-fixed";
+               regulator-name = "5V";
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               regulator-always-on;
+       };
+
+       sd_3v3: regulator-sd-3v3 {
+               compatible = "regulator-fixed";
+               regulator-name = "SD_3V3";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+               gpio = <&gpio GPIOD_4 GPIO_ACTIVE_LOW>;
+               regulator-always-on;
+       };
+
+       vddio_sd: regulator-vddio-sd {
+               compatible = "regulator-gpio";
+               regulator-name = "VDDIO_SD";
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <3300000>;
+               gpios = <&gpio GPIOD_9 GPIO_ACTIVE_HIGH>;
+               gpios-states = <1>;
+               states = <1800000 1
+                               3300000 0>;
+       };
+
+       /* SY8120B1ABC DC/DC Regulator. */
+       vddcpu: regulator-vddcpu {
+               compatible = "pwm-regulator";
+
+               regulator-name = "VDDCPU";
+               regulator-min-microvolt = <689000>;
+               regulator-max-microvolt = <1049000>;
+
+               vin-supply = <&main_5v>;
+
+               pwms = <&pwm_ij 1 1500 0>;
+               pwm-dutycycle-range = <100 0>;
+
+               regulator-boot-on;
+               regulator-always-on;
+               /* Voltage Duty-Cycle */
+               voltage-table = <1049000 0>,
+                               <1039000 3>,
+                               <1029000 6>,
+                               <1019000 9>,
+                               <1009000 12>,
+                               <999000 14>,
+                               <989000 17>,
+                               <979000 20>,
+                               <969000 23>,
+                               <959000 26>,
+                               <949000 29>,
+                               <939000 31>,
+                               <929000 34>,
+                               <919000 37>,
+                               <909000 40>,
+                               <899000 43>,
+                               <889000 45>,
+                               <879000 48>,
+                               <869000 51>,
+                               <859000 54>,
+                               <849000 56>,
+                               <839000 59>,
+                               <829000 62>,
+                               <819000 65>,
+                               <809000 68>,
+                               <799000 70>,
+                               <789000 73>,
+                               <779000 76>,
+                               <769000 79>,
+                               <759000 81>,
+                               <749000 84>,
+                               <739000 87>,
+                               <729000 89>,
+                               <719000 92>,
+                               <709000 95>,
+                               <699000 98>,
+                               <689000 100>;
+       };
+};
+
+&ethmac {
+       status = "okay";
+       phy-handle = <&internal_ephy>;
+       phy-mode = "rmii";
+};
+
+&ir {
+       status = "okay";
+       pinctrl-0 = <&remote_pins>;
+       pinctrl-names = "default";
+};
+
+&pwm_ef {
+       status = "okay";
+       pinctrl-0 = <&pwm_e_pins1>;
+       pinctrl-names = "default";
+};
+
+&pwm_ij {
+       status = "okay";
+};
+
+&sd {
+       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;
+
+       cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
+
+       vmmc-supply = <&sd_3v3>;
+       vqmmc-supply = <&vddio_sd>;
+};
+
+&spicc0 {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spicc0_pins_x>;
+       cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
+};
+
+&uart_b {
+       status = "okay";
+};