Skip to content

Commit 44e3f86

Browse files
numbqqsuperna9999
authored andcommitted
arm64: dts: meson-s4-s905y4-khadas-vim1s: add initial device tree
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>
1 parent 31b72cc commit 44e3f86

2 files changed

Lines changed: 191 additions & 0 deletions

File tree

arch/arm64/boot/dts/amlogic/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ dtb-$(CONFIG_ARCH_MESON) += meson-gxm-ugoos-am3.dtb
8585
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-vega-s96.dtb
8686
dtb-$(CONFIG_ARCH_MESON) += meson-gxm-wetek-core2.dtb
8787
dtb-$(CONFIG_ARCH_MESON) += meson-s4-s805x2-aq222.dtb
88+
dtb-$(CONFIG_ARCH_MESON) += meson-s4-s905y4-khadas-vim1s.dtb
8889
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air-gbit.dtb
8990
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-a95xf3-air.dtb
9091
dtb-$(CONFIG_ARCH_MESON) += meson-sm1-bananapi-m2-pro.dtb
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2+
/*
3+
* Copyright (c) 2026 Khadas Technology Co., Ltd.
4+
*/
5+
6+
/dts-v1/;
7+
8+
#include "meson-s4.dtsi"
9+
10+
/ {
11+
model = "Khadas VIM1S";
12+
compatible = "khadas,vim1s", "amlogic,s905y4", "amlogic,s4";
13+
interrupt-parent = <&gic>;
14+
#address-cells = <2>;
15+
#size-cells = <2>;
16+
17+
aliases {
18+
mmc0 = &emmc; /* eMMC */
19+
mmc1 = &sd; /* SD card */
20+
mmc2 = &sdio; /* SDIO */
21+
serial0 = &uart_b;
22+
};
23+
24+
memory@0 {
25+
device_type = "memory";
26+
reg = <0x0 0x0 0x0 0x80000000>;
27+
};
28+
29+
reserved-memory {
30+
#address-cells = <2>;
31+
#size-cells = <2>;
32+
ranges;
33+
34+
/* 52 MiB reserved for ARM Trusted Firmware */
35+
secmon_reserved: secmon@5000000 {
36+
reg = <0x0 0x05000000 0x0 0x3400000>;
37+
no-map;
38+
};
39+
};
40+
41+
sdio_32k: sdio-32k {
42+
compatible = "pwm-clock";
43+
#clock-cells = <0>;
44+
clock-frequency = <32768>;
45+
pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
46+
};
47+
48+
sdio_pwrseq: sdio-pwrseq {
49+
compatible = "mmc-pwrseq-simple";
50+
reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
51+
clocks = <&sdio_32k>;
52+
clock-names = "ext_clock";
53+
};
54+
55+
main_5v: regulator-main-5v {
56+
compatible = "regulator-fixed";
57+
regulator-name = "5V";
58+
regulator-min-microvolt = <5000000>;
59+
regulator-max-microvolt = <5000000>;
60+
regulator-always-on;
61+
};
62+
63+
sd_3v3: regulator-sd-3v3 {
64+
compatible = "regulator-fixed";
65+
regulator-name = "SD_3V3";
66+
regulator-min-microvolt = <3300000>;
67+
regulator-max-microvolt = <3300000>;
68+
gpio = <&gpio GPIOD_4 GPIO_ACTIVE_LOW>;
69+
regulator-always-on;
70+
};
71+
72+
vddio_sd: regulator-vddio-sd {
73+
compatible = "regulator-gpio";
74+
regulator-name = "VDDIO_SD";
75+
regulator-min-microvolt = <1800000>;
76+
regulator-max-microvolt = <3300000>;
77+
gpios = <&gpio GPIOD_9 GPIO_ACTIVE_HIGH>;
78+
gpios-states = <1>;
79+
states = <1800000 1
80+
3300000 0>;
81+
};
82+
83+
/* SY8120B1ABC DC/DC Regulator. */
84+
vddcpu: regulator-vddcpu {
85+
compatible = "pwm-regulator";
86+
87+
regulator-name = "VDDCPU";
88+
regulator-min-microvolt = <689000>;
89+
regulator-max-microvolt = <1049000>;
90+
91+
vin-supply = <&main_5v>;
92+
93+
pwms = <&pwm_ij 1 1500 0>;
94+
pwm-dutycycle-range = <100 0>;
95+
96+
regulator-boot-on;
97+
regulator-always-on;
98+
/* Voltage Duty-Cycle */
99+
voltage-table = <1049000 0>,
100+
<1039000 3>,
101+
<1029000 6>,
102+
<1019000 9>,
103+
<1009000 12>,
104+
<999000 14>,
105+
<989000 17>,
106+
<979000 20>,
107+
<969000 23>,
108+
<959000 26>,
109+
<949000 29>,
110+
<939000 31>,
111+
<929000 34>,
112+
<919000 37>,
113+
<909000 40>,
114+
<899000 43>,
115+
<889000 45>,
116+
<879000 48>,
117+
<869000 51>,
118+
<859000 54>,
119+
<849000 56>,
120+
<839000 59>,
121+
<829000 62>,
122+
<819000 65>,
123+
<809000 68>,
124+
<799000 70>,
125+
<789000 73>,
126+
<779000 76>,
127+
<769000 79>,
128+
<759000 81>,
129+
<749000 84>,
130+
<739000 87>,
131+
<729000 89>,
132+
<719000 92>,
133+
<709000 95>,
134+
<699000 98>,
135+
<689000 100>;
136+
};
137+
};
138+
139+
&ethmac {
140+
status = "okay";
141+
phy-handle = <&internal_ephy>;
142+
phy-mode = "rmii";
143+
};
144+
145+
&ir {
146+
status = "okay";
147+
pinctrl-0 = <&remote_pins>;
148+
pinctrl-names = "default";
149+
};
150+
151+
&pwm_ef {
152+
status = "okay";
153+
pinctrl-0 = <&pwm_e_pins1>;
154+
pinctrl-names = "default";
155+
};
156+
157+
&pwm_ij {
158+
status = "okay";
159+
};
160+
161+
&sd {
162+
status = "okay";
163+
pinctrl-0 = <&sdcard_pins>;
164+
pinctrl-1 = <&sdcard_clk_gate_pins>;
165+
pinctrl-names = "default", "clk-gate";
166+
bus-width = <4>;
167+
cap-sd-highspeed;
168+
sd-uhs-sdr12;
169+
sd-uhs-sdr25;
170+
sd-uhs-sdr50;
171+
sd-uhs-sdr104;
172+
max-frequency = <200000000>;
173+
disable-wp;
174+
175+
cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
176+
177+
vmmc-supply = <&sd_3v3>;
178+
vqmmc-supply = <&vddio_sd>;
179+
};
180+
181+
&spicc0 {
182+
status = "okay";
183+
pinctrl-names = "default";
184+
pinctrl-0 = <&spicc0_pins_x>;
185+
cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
186+
};
187+
188+
&uart_b {
189+
status = "okay";
190+
};

0 commit comments

Comments
 (0)