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