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