xref: /linux/scripts/dtc/include-prefixes/arm64/amlogic/meson-s4-s905y4-khadas-vim1s.dts (revision 6589b3d76db2d6adbf8f2084c303fb24252a0dc6)
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	emmc_pwrseq: emmc-pwrseq {
42		compatible = "mmc-pwrseq-emmc";
43		reset-gpios = <&gpio GPIOB_9 GPIO_ACTIVE_LOW>;
44	};
45
46	sdio_32k: sdio-32k {
47		compatible = "pwm-clock";
48		#clock-cells = <0>;
49		clock-frequency = <32768>;
50		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
51	};
52
53	sdio_pwrseq: sdio-pwrseq {
54		compatible = "mmc-pwrseq-simple";
55		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
56		clocks = <&sdio_32k>;
57		clock-names = "ext_clock";
58	};
59
60	main_5v: regulator-main-5v {
61		compatible = "regulator-fixed";
62		regulator-name = "5V";
63		regulator-min-microvolt = <5000000>;
64		regulator-max-microvolt = <5000000>;
65		regulator-always-on;
66	};
67
68	sd_3v3: regulator-sd-3v3 {
69		compatible = "regulator-fixed";
70		regulator-name = "SD_3V3";
71		regulator-min-microvolt = <3300000>;
72		regulator-max-microvolt = <3300000>;
73		gpio = <&gpio GPIOD_4 GPIO_ACTIVE_LOW>;
74		regulator-always-on;
75	};
76
77	vddio_sd: regulator-vddio-sd {
78		compatible = "regulator-gpio";
79		regulator-name = "VDDIO_SD";
80		regulator-min-microvolt = <1800000>;
81		regulator-max-microvolt = <3300000>;
82		gpios = <&gpio GPIOD_9 GPIO_ACTIVE_HIGH>;
83		gpios-states = <1>;
84		states = <1800000 1
85				3300000 0>;
86	};
87
88	vddao_3v3: regulator-vddao-3v3 {
89		compatible = "regulator-fixed";
90		regulator-name = "VDDAO_3V3";
91		regulator-min-microvolt = <3300000>;
92		regulator-max-microvolt = <3300000>;
93		vin-supply = <&main_5v>;
94		regulator-always-on;
95	};
96
97	vddio_ao1v8: regulator-vddio-ao1v8 {
98		compatible = "regulator-fixed";
99		regulator-name = "VDDIO_AO1V8";
100		regulator-min-microvolt = <1800000>;
101		regulator-max-microvolt = <1800000>;
102		vin-supply = <&vddao_3v3>;
103		regulator-always-on;
104	};
105
106	/* SY8120B1ABC DC/DC Regulator. */
107	vddcpu: regulator-vddcpu {
108		compatible = "pwm-regulator";
109
110		regulator-name = "VDDCPU";
111		regulator-min-microvolt = <689000>;
112		regulator-max-microvolt = <1049000>;
113
114		vin-supply = <&main_5v>;
115
116		pwms = <&pwm_ij 1 1500 0>;
117		pwm-dutycycle-range = <100 0>;
118
119		regulator-boot-on;
120		regulator-always-on;
121		/* Voltage Duty-Cycle */
122		voltage-table = <1049000 0>,
123				<1039000 3>,
124				<1029000 6>,
125				<1019000 9>,
126				<1009000 12>,
127				<999000 14>,
128				<989000 17>,
129				<979000 20>,
130				<969000 23>,
131				<959000 26>,
132				<949000 29>,
133				<939000 31>,
134				<929000 34>,
135				<919000 37>,
136				<909000 40>,
137				<899000 43>,
138				<889000 45>,
139				<879000 48>,
140				<869000 51>,
141				<859000 54>,
142				<849000 56>,
143				<839000 59>,
144				<829000 62>,
145				<819000 65>,
146				<809000 68>,
147				<799000 70>,
148				<789000 73>,
149				<779000 76>,
150				<769000 79>,
151				<759000 81>,
152				<749000 84>,
153				<739000 87>,
154				<729000 89>,
155				<719000 92>,
156				<709000 95>,
157				<699000 98>,
158				<689000 100>;
159	};
160};
161
162&emmc {
163	status = "okay";
164	pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
165	pinctrl-1 = <&emmc_clk_gate_pins>;
166	pinctrl-names = "default", "clk-gate";
167
168	bus-width = <8>;
169	cap-mmc-highspeed;
170	mmc-ddr-1_8v;
171	mmc-hs200-1_8v;
172	max-frequency = <200000000>;
173	non-removable;
174	disable-wp;
175
176	mmc-pwrseq = <&emmc_pwrseq>;
177	vmmc-supply = <&vddao_3v3>;
178	vqmmc-supply = <&vddio_ao1v8>;
179};
180
181&ethmac {
182	status = "okay";
183	phy-handle = <&internal_ephy>;
184	phy-mode = "rmii";
185};
186
187&ir {
188	status = "okay";
189	pinctrl-0 = <&remote_pins>;
190	pinctrl-names = "default";
191};
192
193&pwm_ef {
194	status = "okay";
195	pinctrl-0 = <&pwm_e_pins1>;
196	pinctrl-names = "default";
197};
198
199&pwm_ij {
200	status = "okay";
201};
202
203&sd {
204	status = "okay";
205	pinctrl-0 = <&sdcard_pins>;
206	pinctrl-1 = <&sdcard_clk_gate_pins>;
207	pinctrl-names = "default", "clk-gate";
208	bus-width = <4>;
209	cap-sd-highspeed;
210	sd-uhs-sdr12;
211	sd-uhs-sdr25;
212	sd-uhs-sdr50;
213	sd-uhs-sdr104;
214	max-frequency = <200000000>;
215	disable-wp;
216
217	cd-gpios = <&gpio GPIOC_6 GPIO_ACTIVE_LOW>;
218
219	vmmc-supply = <&sd_3v3>;
220	vqmmc-supply = <&vddio_sd>;
221};
222
223&sdio {
224	status = "okay";
225	pinctrl-0 = <&sdio_pins>;
226	pinctrl-1 = <&sdio_clk_gate_pins>;
227	pinctrl-names = "default", "clk-gate";
228	#address-cells = <1>;
229	#size-cells = <0>;
230	bus-width = <4>;
231	cap-sd-highspeed;
232	sd-uhs-sdr50;
233	sd-uhs-sdr104;
234	max-frequency = <50000000>;
235	non-removable;
236	disable-wp;
237
238	no-sd;
239	no-mmc;
240	mmc-pwrseq = <&sdio_pwrseq>;
241	vmmc-supply = <&vddao_3v3>;
242	vqmmc-supply = <&vddio_ao1v8>;
243
244	brcmf: wifi@1 {
245		reg = <1>;
246		compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
247	};
248};
249
250&spicc0 {
251	status = "okay";
252	pinctrl-names = "default";
253	pinctrl-0 = <&spicc0_pins_x>;
254	cs-gpios = <&gpio GPIOX_10 GPIO_ACTIVE_LOW>;
255};
256
257&uart_b {
258	status = "okay";
259};
260