1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4#include <dt-bindings/input/input.h>
5#include "rk3328.dtsi"
6
7/ {
8	model = "A95X Z2";
9	compatible = "zkmagic,a95x-z2", "rockchip,rk3318";
10
11	aliases {
12		mmc0 = &sdmmc;
13		mmc1 = &sdio;
14		mmc2 = &emmc;
15	};
16
17	chosen {
18		stdout-path = "serial2:1500000n8";
19	};
20
21	adc-keys {
22		compatible = "adc-keys";
23		io-channels = <&saradc 0>;
24		io-channel-names = "buttons";
25		keyup-threshold-microvolt = <1800000>;
26		poll-interval = <100>;
27
28		button-recovery {
29			label = "recovery";
30			linux,code = <KEY_VENDOR>;
31			press-threshold-microvolt = <17000>;
32		};
33	};
34
35	ir-receiver {
36		compatible = "gpio-ir-receiver";
37		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
38		pinctrl-0 = <&ir_int>;
39		pinctrl-names = "default";
40	};
41
42	leds {
43		compatible = "gpio-leds";
44		pinctrl-0 = <&cyx_led_pin>;
45		pinctrl-names = "default";
46
47		cyx_led: led-0 {
48			default-state = "on";
49			gpios = <&gpio2 RK_PC7 GPIO_ACTIVE_LOW>;
50			label = "CYX_LED";
51		};
52	};
53
54	sdio_pwrseq: sdio-pwrseq {
55		compatible = "mmc-pwrseq-simple";
56		pinctrl-0 = <&wifi_enable_h>;
57		pinctrl-names = "default";
58		reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
59	};
60
61	spdif-sound {
62		compatible = "simple-audio-card";
63		simple-audio-card,name = "SPDIF";
64
65		simple-audio-card,cpu {
66			sound-dai = <&spdif>;
67		};
68
69		simple-audio-card,codec {
70			sound-dai = <&spdif_out>;
71		};
72	};
73
74	spdif_out: spdif-out {
75		compatible = "linux,spdif-dit";
76		#sound-dai-cells = <0>;
77	};
78
79	/* Power tree */
80	vccio_1v8: vccio-1v8-regulator {
81		compatible = "regulator-fixed";
82		regulator-name = "vccio_1v8";
83		regulator-min-microvolt = <1800000>;
84		regulator-max-microvolt = <1800000>;
85		regulator-always-on;
86	};
87
88	vccio_3v3: vccio-3v3-regulator {
89		compatible = "regulator-fixed";
90		regulator-name = "vccio_3v3";
91		regulator-min-microvolt = <3300000>;
92		regulator-max-microvolt = <3300000>;
93		regulator-always-on;
94	};
95
96	vcc_otg_vbus: otg-vbus-regulator {
97		compatible = "regulator-fixed";
98		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
99		pinctrl-0 = <&otg_vbus_drv>;
100		pinctrl-names = "default";
101		regulator-name = "vcc_otg_vbus";
102		regulator-min-microvolt = <5000000>;
103		regulator-max-microvolt = <5000000>;
104		enable-active-high;
105	};
106
107	vcc_sd: sdmmc-regulator {
108		compatible = "regulator-fixed";
109		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
110		pinctrl-0 = <&sdmmc0m1_pin>;
111		pinctrl-names = "default";
112		regulator-name = "vcc_sd";
113		regulator-min-microvolt = <3300000>;
114		regulator-max-microvolt = <3300000>;
115		vin-supply = <&vccio_3v3>;
116	};
117
118	vdd_arm: vdd-arm {
119		compatible = "pwm-regulator";
120		pwms = <&pwm0 0 5000 1>;
121		regulator-name = "vdd_arm";
122		regulator-min-microvolt = <950000>;
123		regulator-max-microvolt = <1400000>;
124		regulator-settling-time-up-us = <250>;
125		regulator-always-on;
126		regulator-boot-on;
127	};
128
129	vdd_log: vdd-log {
130		compatible = "pwm-regulator";
131		pwms = <&pwm1 0 5000 1>;
132		regulator-name = "vdd_log";
133		regulator-min-microvolt = <900000>;
134		regulator-max-microvolt = <1300000>;
135		regulator-settling-time-up-us = <250>;
136		regulator-always-on;
137		regulator-boot-on;
138	};
139};
140
141&analog_sound {
142	status = "okay";
143};
144
145&codec {
146	status = "okay";
147};
148
149&cpu0 {
150	cpu-supply = <&vdd_arm>;
151};
152
153&cpu1 {
154	cpu-supply = <&vdd_arm>;
155};
156
157&cpu2 {
158	cpu-supply = <&vdd_arm>;
159};
160
161&cpu3 {
162	cpu-supply = <&vdd_arm>;
163};
164
165&cpu0_opp_table {
166	opp-1200000000 {
167		status = "disabled";
168	};
169
170	opp-1296000000 {
171		status = "disabled";
172	};
173};
174
175&emmc {
176	bus-width = <8>;
177	cap-mmc-highspeed;
178	non-removable;
179	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
180	pinctrl-names = "default";
181	status = "okay";
182};
183
184&gmac2phy {
185	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
186	assigned-clock-rate = <50000000>;
187	assigned-clocks = <&cru SCLK_MAC2PHY>;
188	status = "okay";
189};
190
191&gpu {
192	mali-supply = <&vdd_log>;
193};
194
195&hdmi {
196	status = "okay";
197};
198
199&hdmiphy {
200	status = "okay";
201};
202
203&hdmi_sound {
204	status = "okay";
205};
206
207&i2s0 {
208	status = "okay";
209};
210
211&i2s1 {
212	status = "okay";
213};
214
215&io_domains {
216	pmuio-supply = <&vccio_3v3>;
217	vccio1-supply = <&vccio_3v3>;
218	vccio2-supply = <&vccio_1v8>;
219	vccio3-supply = <&vccio_3v3>;
220	vccio4-supply = <&vccio_1v8>;
221	vccio5-supply = <&vccio_3v3>;
222	vccio6-supply = <&vccio_3v3>;
223	status = "okay";
224};
225
226&pinctrl {
227	ir {
228		ir_int: ir-int {
229			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
230		};
231	};
232
233	leds {
234		cyx_led_pin: cyx-led-pin {
235			rockchip,pins = <2 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
236		};
237	};
238
239	pwm0 {
240		pwm0_pin_pull_up: pwm0-pin-pull-up {
241			rockchip,pins = <2 RK_PA4 1 &pcfg_pull_up>;
242		};
243	};
244
245	pwm1 {
246		pwm1_pin_pull_up: pwm1-pin-pull-up {
247			rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>;
248		};
249	};
250
251	sdio-pwrseq {
252		wifi_enable_h: wifi-enable-h {
253			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
254		};
255	};
256
257	sdmmc1 {
258		clk_32k_out: clk-32k-out {
259			rockchip,pins = <1 RK_PD4 1 &pcfg_pull_none>;
260		};
261	};
262
263	usb {
264		host_vbus_drv: host-vbus-drv {
265			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
266		};
267
268		otg_vbus_drv: otg-vbus-drv {
269			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
270		};
271	};
272};
273
274&pwm0 {
275	pinctrl-0 = <&pwm0_pin_pull_up>;
276	pinctrl-names = "active";
277	status = "okay";
278};
279
280&pwm1 {
281	pinctrl-0 = <&pwm1_pin_pull_up>;
282	pinctrl-names = "active";
283	status = "okay";
284};
285
286&saradc {
287	vref-supply = <&vccio_1v8>;
288	status = "okay";
289};
290
291&sdio {
292	bus-width = <4>;
293	cap-sd-highspeed;
294	cap-sdio-irq;
295	keep-power-in-suspend;
296	max-frequency = <125000000>;
297	mmc-pwrseq = <&sdio_pwrseq>;
298	non-removable;
299	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &clk_32k_out>;
300	pinctrl-names = "default";
301	sd-uhs-sdr104;
302	status = "okay";
303};
304
305&sdmmc {
306	bus-width = <4>;
307	cap-sd-highspeed;
308	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
309	pinctrl-names = "default";
310	vmmc-supply = <&vcc_sd>;
311	status = "okay";
312};
313
314&spdif {
315	pinctrl-0 = <&spdifm0_tx>;
316	status = "okay";
317};
318
319&soc_crit {
320	temperature = <115000>; /* millicelsius */
321};
322
323&target {
324	temperature = <105000>; /* millicelsius */
325};
326
327&threshold {
328	temperature = <90000>; /* millicelsius */
329};
330
331&tsadc {
332	rockchip,hw-tshut-temp = <120000>;
333	status = "okay";
334};
335
336&u2phy {
337	status = "okay";
338};
339
340&u2phy_host {
341	status = "okay";
342};
343
344&u2phy_otg {
345	phy-supply = <&vcc_otg_vbus>;
346	status = "okay";
347};
348
349&uart0 {
350	pinctrl-0 = <&uart0_xfer &uart0_cts>;
351	status = "okay";
352};
353
354&uart2 {
355	status = "okay";
356};
357
358&usb20_otg {
359	dr_mode = "host";
360	status = "okay";
361};
362
363&usbdrd3 {
364	dr_mode = "host";
365	status = "okay";
366};
367
368&usb_host0_ehci {
369	status = "okay";
370};
371
372&usb_host0_ohci {
373	status = "okay";
374};
375
376&vop {
377	status = "okay";
378};
379
380&vop_mmu {
381	status = "okay";
382};
383