xref: /openbmc/linux/arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1964ed080SJohan Jonker// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2964ed080SJohan Jonker
3964ed080SJohan Jonker/dts-v1/;
4964ed080SJohan Jonker#include <dt-bindings/input/input.h>
5964ed080SJohan Jonker#include "rk3328.dtsi"
6964ed080SJohan Jonker
7964ed080SJohan Jonker/ {
8964ed080SJohan Jonker	model = "A95X Z2";
9964ed080SJohan Jonker	compatible = "zkmagic,a95x-z2", "rockchip,rk3318";
10964ed080SJohan Jonker
1128869aa5SHeiko Stuebner	aliases {
1228869aa5SHeiko Stuebner		mmc0 = &sdmmc;
1328869aa5SHeiko Stuebner		mmc1 = &sdio;
1428869aa5SHeiko Stuebner		mmc2 = &emmc;
1528869aa5SHeiko Stuebner	};
1628869aa5SHeiko Stuebner
17964ed080SJohan Jonker	chosen {
18964ed080SJohan Jonker		stdout-path = "serial2:1500000n8";
19964ed080SJohan Jonker	};
20964ed080SJohan Jonker
21964ed080SJohan Jonker	adc-keys {
22964ed080SJohan Jonker		compatible = "adc-keys";
23964ed080SJohan Jonker		io-channels = <&saradc 0>;
24964ed080SJohan Jonker		io-channel-names = "buttons";
25964ed080SJohan Jonker		keyup-threshold-microvolt = <1800000>;
26964ed080SJohan Jonker		poll-interval = <100>;
27964ed080SJohan Jonker
28*f2bd2e76SJohan Jonker		button-recovery {
29964ed080SJohan Jonker			label = "recovery";
30964ed080SJohan Jonker			linux,code = <KEY_VENDOR>;
31964ed080SJohan Jonker			press-threshold-microvolt = <17000>;
32964ed080SJohan Jonker		};
33964ed080SJohan Jonker	};
34964ed080SJohan Jonker
35964ed080SJohan Jonker	ir-receiver {
36964ed080SJohan Jonker		compatible = "gpio-ir-receiver";
37964ed080SJohan Jonker		gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
38964ed080SJohan Jonker		pinctrl-0 = <&ir_int>;
39964ed080SJohan Jonker		pinctrl-names = "default";
40964ed080SJohan Jonker	};
41964ed080SJohan Jonker
42964ed080SJohan Jonker	leds {
43964ed080SJohan Jonker		compatible = "gpio-leds";
44964ed080SJohan Jonker		pinctrl-0 = <&cyx_led_pin>;
45964ed080SJohan Jonker		pinctrl-names = "default";
46964ed080SJohan Jonker
47964ed080SJohan Jonker		cyx_led: led-0 {
48964ed080SJohan Jonker			default-state = "on";
49964ed080SJohan Jonker			gpios = <&gpio2 RK_PC7 GPIO_ACTIVE_LOW>;
50964ed080SJohan Jonker			label = "CYX_LED";
51964ed080SJohan Jonker		};
52964ed080SJohan Jonker	};
53964ed080SJohan Jonker
54964ed080SJohan Jonker	sdio_pwrseq: sdio-pwrseq {
55964ed080SJohan Jonker		compatible = "mmc-pwrseq-simple";
56964ed080SJohan Jonker		pinctrl-0 = <&wifi_enable_h>;
57964ed080SJohan Jonker		pinctrl-names = "default";
58964ed080SJohan Jonker		reset-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
59964ed080SJohan Jonker	};
60964ed080SJohan Jonker
61964ed080SJohan Jonker	spdif-sound {
62964ed080SJohan Jonker		compatible = "simple-audio-card";
63964ed080SJohan Jonker		simple-audio-card,name = "SPDIF";
64964ed080SJohan Jonker
65964ed080SJohan Jonker		simple-audio-card,cpu {
66964ed080SJohan Jonker			sound-dai = <&spdif>;
67964ed080SJohan Jonker		};
68964ed080SJohan Jonker
69964ed080SJohan Jonker		simple-audio-card,codec {
70964ed080SJohan Jonker			sound-dai = <&spdif_out>;
71964ed080SJohan Jonker		};
72964ed080SJohan Jonker	};
73964ed080SJohan Jonker
74964ed080SJohan Jonker	spdif_out: spdif-out {
75964ed080SJohan Jonker		compatible = "linux,spdif-dit";
76964ed080SJohan Jonker		#sound-dai-cells = <0>;
77964ed080SJohan Jonker	};
78964ed080SJohan Jonker
79964ed080SJohan Jonker	/* Power tree */
80964ed080SJohan Jonker	vccio_1v8: vccio-1v8-regulator {
81964ed080SJohan Jonker		compatible = "regulator-fixed";
82964ed080SJohan Jonker		regulator-name = "vccio_1v8";
83964ed080SJohan Jonker		regulator-min-microvolt = <1800000>;
84964ed080SJohan Jonker		regulator-max-microvolt = <1800000>;
85964ed080SJohan Jonker		regulator-always-on;
86964ed080SJohan Jonker	};
87964ed080SJohan Jonker
88964ed080SJohan Jonker	vccio_3v3: vccio-3v3-regulator {
89964ed080SJohan Jonker		compatible = "regulator-fixed";
90964ed080SJohan Jonker		regulator-name = "vccio_3v3";
91964ed080SJohan Jonker		regulator-min-microvolt = <3300000>;
92964ed080SJohan Jonker		regulator-max-microvolt = <3300000>;
93964ed080SJohan Jonker		regulator-always-on;
94964ed080SJohan Jonker	};
95964ed080SJohan Jonker
96964ed080SJohan Jonker	vcc_otg_vbus: otg-vbus-regulator {
97964ed080SJohan Jonker		compatible = "regulator-fixed";
98964ed080SJohan Jonker		gpio = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
99964ed080SJohan Jonker		pinctrl-0 = <&otg_vbus_drv>;
100964ed080SJohan Jonker		pinctrl-names = "default";
101964ed080SJohan Jonker		regulator-name = "vcc_otg_vbus";
102964ed080SJohan Jonker		regulator-min-microvolt = <5000000>;
103964ed080SJohan Jonker		regulator-max-microvolt = <5000000>;
104964ed080SJohan Jonker		enable-active-high;
105964ed080SJohan Jonker	};
106964ed080SJohan Jonker
107964ed080SJohan Jonker	vcc_sd: sdmmc-regulator {
108964ed080SJohan Jonker		compatible = "regulator-fixed";
109964ed080SJohan Jonker		gpio = <&gpio0 RK_PD6 GPIO_ACTIVE_LOW>;
110964ed080SJohan Jonker		pinctrl-0 = <&sdmmc0m1_pin>;
111964ed080SJohan Jonker		pinctrl-names = "default";
112964ed080SJohan Jonker		regulator-name = "vcc_sd";
113964ed080SJohan Jonker		regulator-min-microvolt = <3300000>;
114964ed080SJohan Jonker		regulator-max-microvolt = <3300000>;
115964ed080SJohan Jonker		vin-supply = <&vccio_3v3>;
116964ed080SJohan Jonker	};
117964ed080SJohan Jonker
118964ed080SJohan Jonker	vdd_arm: vdd-arm {
119964ed080SJohan Jonker		compatible = "pwm-regulator";
120964ed080SJohan Jonker		pwms = <&pwm0 0 5000 1>;
121964ed080SJohan Jonker		regulator-name = "vdd_arm";
122964ed080SJohan Jonker		regulator-min-microvolt = <950000>;
123964ed080SJohan Jonker		regulator-max-microvolt = <1400000>;
124964ed080SJohan Jonker		regulator-settling-time-up-us = <250>;
125964ed080SJohan Jonker		regulator-always-on;
126964ed080SJohan Jonker		regulator-boot-on;
127964ed080SJohan Jonker	};
128964ed080SJohan Jonker
129964ed080SJohan Jonker	vdd_log: vdd-log {
130964ed080SJohan Jonker		compatible = "pwm-regulator";
131964ed080SJohan Jonker		pwms = <&pwm1 0 5000 1>;
132964ed080SJohan Jonker		regulator-name = "vdd_log";
133964ed080SJohan Jonker		regulator-min-microvolt = <900000>;
134964ed080SJohan Jonker		regulator-max-microvolt = <1300000>;
135964ed080SJohan Jonker		regulator-settling-time-up-us = <250>;
136964ed080SJohan Jonker		regulator-always-on;
137964ed080SJohan Jonker		regulator-boot-on;
138964ed080SJohan Jonker	};
139964ed080SJohan Jonker};
140964ed080SJohan Jonker
141964ed080SJohan Jonker&analog_sound {
142964ed080SJohan Jonker	status = "okay";
143964ed080SJohan Jonker};
144964ed080SJohan Jonker
145964ed080SJohan Jonker&codec {
146964ed080SJohan Jonker	status = "okay";
147964ed080SJohan Jonker};
148964ed080SJohan Jonker
149964ed080SJohan Jonker&cpu0 {
150964ed080SJohan Jonker	cpu-supply = <&vdd_arm>;
151964ed080SJohan Jonker};
152964ed080SJohan Jonker
153964ed080SJohan Jonker&cpu1 {
154964ed080SJohan Jonker	cpu-supply = <&vdd_arm>;
155964ed080SJohan Jonker};
156964ed080SJohan Jonker
157964ed080SJohan Jonker&cpu2 {
158964ed080SJohan Jonker	cpu-supply = <&vdd_arm>;
159964ed080SJohan Jonker};
160964ed080SJohan Jonker
161964ed080SJohan Jonker&cpu3 {
162964ed080SJohan Jonker	cpu-supply = <&vdd_arm>;
163964ed080SJohan Jonker};
164964ed080SJohan Jonker
165964ed080SJohan Jonker&cpu0_opp_table {
166964ed080SJohan Jonker	opp-1200000000 {
167964ed080SJohan Jonker		status = "disabled";
168964ed080SJohan Jonker	};
169964ed080SJohan Jonker
170964ed080SJohan Jonker	opp-1296000000 {
171964ed080SJohan Jonker		status = "disabled";
172964ed080SJohan Jonker	};
173964ed080SJohan Jonker};
174964ed080SJohan Jonker
175964ed080SJohan Jonker&emmc {
176964ed080SJohan Jonker	bus-width = <8>;
177964ed080SJohan Jonker	cap-mmc-highspeed;
178964ed080SJohan Jonker	non-removable;
179964ed080SJohan Jonker	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
180964ed080SJohan Jonker	pinctrl-names = "default";
181964ed080SJohan Jonker	status = "okay";
182964ed080SJohan Jonker};
183964ed080SJohan Jonker
184964ed080SJohan Jonker&gmac2phy {
185964ed080SJohan Jonker	assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
186964ed080SJohan Jonker	assigned-clock-rate = <50000000>;
187964ed080SJohan Jonker	assigned-clocks = <&cru SCLK_MAC2PHY>;
188964ed080SJohan Jonker	status = "okay";
189964ed080SJohan Jonker};
190964ed080SJohan Jonker
191964ed080SJohan Jonker&gpu {
192964ed080SJohan Jonker	mali-supply = <&vdd_log>;
193964ed080SJohan Jonker};
194964ed080SJohan Jonker
195964ed080SJohan Jonker&hdmi {
196964ed080SJohan Jonker	status = "okay";
197964ed080SJohan Jonker};
198964ed080SJohan Jonker
199964ed080SJohan Jonker&hdmiphy {
200964ed080SJohan Jonker	status = "okay";
201964ed080SJohan Jonker};
202964ed080SJohan Jonker
203964ed080SJohan Jonker&hdmi_sound {
204964ed080SJohan Jonker	status = "okay";
205964ed080SJohan Jonker};
206964ed080SJohan Jonker
207964ed080SJohan Jonker&i2s0 {
208964ed080SJohan Jonker	status = "okay";
209964ed080SJohan Jonker};
210964ed080SJohan Jonker
211964ed080SJohan Jonker&i2s1 {
212964ed080SJohan Jonker	status = "okay";
213964ed080SJohan Jonker};
214964ed080SJohan Jonker
215964ed080SJohan Jonker&io_domains {
216964ed080SJohan Jonker	pmuio-supply = <&vccio_3v3>;
217964ed080SJohan Jonker	vccio1-supply = <&vccio_3v3>;
218964ed080SJohan Jonker	vccio2-supply = <&vccio_1v8>;
219964ed080SJohan Jonker	vccio3-supply = <&vccio_3v3>;
220964ed080SJohan Jonker	vccio4-supply = <&vccio_1v8>;
221964ed080SJohan Jonker	vccio5-supply = <&vccio_3v3>;
222964ed080SJohan Jonker	vccio6-supply = <&vccio_3v3>;
223964ed080SJohan Jonker	status = "okay";
224964ed080SJohan Jonker};
225964ed080SJohan Jonker
226964ed080SJohan Jonker&pinctrl {
227964ed080SJohan Jonker	ir {
228964ed080SJohan Jonker		ir_int: ir-int {
229964ed080SJohan Jonker			rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
230964ed080SJohan Jonker		};
231964ed080SJohan Jonker	};
232964ed080SJohan Jonker
233964ed080SJohan Jonker	leds {
234964ed080SJohan Jonker		cyx_led_pin: cyx-led-pin {
235964ed080SJohan Jonker			rockchip,pins = <2 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
236964ed080SJohan Jonker		};
237964ed080SJohan Jonker	};
238964ed080SJohan Jonker
239964ed080SJohan Jonker	pwm0 {
240964ed080SJohan Jonker		pwm0_pin_pull_up: pwm0-pin-pull-up {
241964ed080SJohan Jonker			rockchip,pins = <2 RK_PA4 1 &pcfg_pull_up>;
242964ed080SJohan Jonker		};
243964ed080SJohan Jonker	};
244964ed080SJohan Jonker
245964ed080SJohan Jonker	pwm1 {
246964ed080SJohan Jonker		pwm1_pin_pull_up: pwm1-pin-pull-up {
247964ed080SJohan Jonker			rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up>;
248964ed080SJohan Jonker		};
249964ed080SJohan Jonker	};
250964ed080SJohan Jonker
251964ed080SJohan Jonker	sdio-pwrseq {
252964ed080SJohan Jonker		wifi_enable_h: wifi-enable-h {
253964ed080SJohan Jonker			rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
254964ed080SJohan Jonker		};
255964ed080SJohan Jonker	};
256964ed080SJohan Jonker
257964ed080SJohan Jonker	sdmmc1 {
258964ed080SJohan Jonker		clk_32k_out: clk-32k-out {
259964ed080SJohan Jonker			rockchip,pins = <1 RK_PD4 1 &pcfg_pull_none>;
260964ed080SJohan Jonker		};
261964ed080SJohan Jonker	};
262964ed080SJohan Jonker
263964ed080SJohan Jonker	usb {
264964ed080SJohan Jonker		host_vbus_drv: host-vbus-drv {
265964ed080SJohan Jonker			rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>;
266964ed080SJohan Jonker		};
267964ed080SJohan Jonker
268964ed080SJohan Jonker		otg_vbus_drv: otg-vbus-drv {
269964ed080SJohan Jonker			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
270964ed080SJohan Jonker		};
271964ed080SJohan Jonker	};
272964ed080SJohan Jonker};
273964ed080SJohan Jonker
274964ed080SJohan Jonker&pwm0 {
275964ed080SJohan Jonker	pinctrl-0 = <&pwm0_pin_pull_up>;
276964ed080SJohan Jonker	pinctrl-names = "active";
277964ed080SJohan Jonker	status = "okay";
278964ed080SJohan Jonker};
279964ed080SJohan Jonker
280964ed080SJohan Jonker&pwm1 {
281964ed080SJohan Jonker	pinctrl-0 = <&pwm1_pin_pull_up>;
282964ed080SJohan Jonker	pinctrl-names = "active";
283964ed080SJohan Jonker	status = "okay";
284964ed080SJohan Jonker};
285964ed080SJohan Jonker
286964ed080SJohan Jonker&saradc {
287964ed080SJohan Jonker	vref-supply = <&vccio_1v8>;
288964ed080SJohan Jonker	status = "okay";
289964ed080SJohan Jonker};
290964ed080SJohan Jonker
291964ed080SJohan Jonker&sdio {
292964ed080SJohan Jonker	bus-width = <4>;
293964ed080SJohan Jonker	cap-sd-highspeed;
294964ed080SJohan Jonker	cap-sdio-irq;
295964ed080SJohan Jonker	keep-power-in-suspend;
296964ed080SJohan Jonker	max-frequency = <125000000>;
297964ed080SJohan Jonker	mmc-pwrseq = <&sdio_pwrseq>;
298964ed080SJohan Jonker	non-removable;
299964ed080SJohan Jonker	pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk &clk_32k_out>;
300964ed080SJohan Jonker	pinctrl-names = "default";
301964ed080SJohan Jonker	sd-uhs-sdr104;
302964ed080SJohan Jonker	status = "okay";
303964ed080SJohan Jonker};
304964ed080SJohan Jonker
305964ed080SJohan Jonker&sdmmc {
306964ed080SJohan Jonker	bus-width = <4>;
307964ed080SJohan Jonker	cap-sd-highspeed;
308964ed080SJohan Jonker	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
309964ed080SJohan Jonker	pinctrl-names = "default";
310964ed080SJohan Jonker	vmmc-supply = <&vcc_sd>;
311964ed080SJohan Jonker	status = "okay";
312964ed080SJohan Jonker};
313964ed080SJohan Jonker
314964ed080SJohan Jonker&spdif {
315964ed080SJohan Jonker	pinctrl-0 = <&spdifm0_tx>;
316964ed080SJohan Jonker	status = "okay";
317964ed080SJohan Jonker};
318964ed080SJohan Jonker
319964ed080SJohan Jonker&soc_crit {
320964ed080SJohan Jonker	temperature = <115000>; /* millicelsius */
321964ed080SJohan Jonker};
322964ed080SJohan Jonker
323964ed080SJohan Jonker&target {
324964ed080SJohan Jonker	temperature = <105000>; /* millicelsius */
325964ed080SJohan Jonker};
326964ed080SJohan Jonker
327964ed080SJohan Jonker&threshold {
328964ed080SJohan Jonker	temperature = <90000>; /* millicelsius */
329964ed080SJohan Jonker};
330964ed080SJohan Jonker
331964ed080SJohan Jonker&tsadc {
332964ed080SJohan Jonker	rockchip,hw-tshut-temp = <120000>;
333964ed080SJohan Jonker	status = "okay";
334964ed080SJohan Jonker};
335964ed080SJohan Jonker
336964ed080SJohan Jonker&u2phy {
337964ed080SJohan Jonker	status = "okay";
338964ed080SJohan Jonker};
339964ed080SJohan Jonker
340964ed080SJohan Jonker&u2phy_host {
341964ed080SJohan Jonker	status = "okay";
342964ed080SJohan Jonker};
343964ed080SJohan Jonker
344964ed080SJohan Jonker&u2phy_otg {
345964ed080SJohan Jonker	phy-supply = <&vcc_otg_vbus>;
346964ed080SJohan Jonker	status = "okay";
347964ed080SJohan Jonker};
348964ed080SJohan Jonker
349964ed080SJohan Jonker&uart0 {
350964ed080SJohan Jonker	pinctrl-0 = <&uart0_xfer &uart0_cts>;
351964ed080SJohan Jonker	status = "okay";
352964ed080SJohan Jonker};
353964ed080SJohan Jonker
354964ed080SJohan Jonker&uart2 {
355964ed080SJohan Jonker	status = "okay";
356964ed080SJohan Jonker};
357964ed080SJohan Jonker
358964ed080SJohan Jonker&usb20_otg {
359964ed080SJohan Jonker	dr_mode = "host";
360964ed080SJohan Jonker	status = "okay";
361964ed080SJohan Jonker};
362964ed080SJohan Jonker
363f227197bSJohan Jonker&usbdrd3 {
364f227197bSJohan Jonker	dr_mode = "host";
365f227197bSJohan Jonker	status = "okay";
366f227197bSJohan Jonker};
367f227197bSJohan Jonker
368964ed080SJohan Jonker&usb_host0_ehci {
369964ed080SJohan Jonker	status = "okay";
370964ed080SJohan Jonker};
371964ed080SJohan Jonker
372964ed080SJohan Jonker&usb_host0_ohci {
373964ed080SJohan Jonker	status = "okay";
374964ed080SJohan Jonker};
375964ed080SJohan Jonker
376964ed080SJohan Jonker&vop {
377964ed080SJohan Jonker	status = "okay";
378964ed080SJohan Jonker};
379964ed080SJohan Jonker
380964ed080SJohan Jonker&vop_mmu {
381964ed080SJohan Jonker	status = "okay";
382964ed080SJohan Jonker};
383