1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
4 */
5
6/dts-v1/;
7#include <dt-bindings/input/input.h>
8#include "rk3066a.dtsi"
9
10/ {
11	model = "Rayeager PX2";
12	compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
13
14	aliases {
15		mmc0 = &mmc0;
16		mmc1 = &mmc1;
17		mmc2 = &emmc;
18	};
19
20	memory@60000000 {
21		device_type = "memory";
22		reg = <0x60000000 0x40000000>;
23	};
24
25	ir: ir-receiver {
26		compatible = "gpio-ir-receiver";
27		gpios = <&gpio6 RK_PA1 GPIO_ACTIVE_LOW>;
28		pinctrl-names = "default";
29		pinctrl-0 = <&ir_int>;
30	};
31
32	keys: gpio-keys {
33		compatible = "gpio-keys";
34
35		key-power {
36			wakeup-source;
37			gpios = <&gpio6 RK_PA2 GPIO_ACTIVE_LOW>;
38			label = "GPIO Power";
39			linux,code = <KEY_POWER>;
40			pinctrl-names = "default";
41			pinctrl-0 = <&pwr_key>;
42		};
43	};
44
45	vdd_log: vdd-log {
46		compatible = "pwm-regulator";
47		pwms = <&pwm3 0 1000>;
48		regulator-name = "vdd_log";
49		regulator-min-microvolt = <1200000>;
50		regulator-max-microvolt = <1200000>;
51		regulator-always-on;
52		voltage-table = <1000000 100>,
53				<1200000 42>;
54		status = "okay";
55	};
56
57	vsys: vsys-regulator {
58		compatible = "regulator-fixed";
59		regulator-name = "vsys";
60		regulator-min-microvolt = <5000000>;
61		regulator-max-microvolt = <5000000>;
62		regulator-always-on;
63		regulator-boot-on;
64	};
65
66	/* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */
67	vcc_stdby: stdby-regulator {
68		compatible = "regulator-fixed";
69		regulator-name = "5v_stdby";
70		regulator-min-microvolt = <5000000>;
71		regulator-max-microvolt = <5000000>;
72		regulator-always-on;
73		regulator-boot-on;
74	};
75
76	vcc_emmc: emmc-regulator {
77		compatible = "regulator-fixed";
78		regulator-name = "emmc_vccq";
79		regulator-min-microvolt = <3000000>;
80		regulator-max-microvolt = <3000000>;
81		vin-supply = <&vsys>;
82	};
83
84	vcc_sata: sata-regulator {
85		compatible = "regulator-fixed";
86		enable-active-high;
87		gpio = <&gpio4 RK_PC6 GPIO_ACTIVE_HIGH>;
88		pinctrl-names = "default";
89		pinctrl-0 = <&sata_pwr>;
90		regulator-name = "usb_5v";
91		regulator-min-microvolt = <5000000>;
92		regulator-max-microvolt = <5000000>;
93		regulator-always-on;
94		vin-supply = <&vcc_stdby>;
95	};
96
97	vcc_sd: sdmmc-regulator {
98		compatible = "regulator-fixed";
99		gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
100		pinctrl-names = "default";
101		pinctrl-0 = <&sdmmc_pwr>;
102		regulator-name = "vcc_sd";
103		regulator-min-microvolt = <3300000>;
104		regulator-max-microvolt = <3300000>;
105		startup-delay-us = <100000>;
106		vin-supply = <&vcc_io>;
107	};
108
109	vcc_host: usb-host-regulator {
110		compatible = "regulator-fixed";
111		enable-active-high;
112		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
113		pinctrl-names = "default";
114		pinctrl-0 = <&host_drv>;
115		regulator-name = "host-pwr";
116		regulator-min-microvolt = <5000000>;
117		regulator-max-microvolt = <5000000>;
118		regulator-always-on;
119		vin-supply = <&vcc_stdby>;
120	};
121
122	vcc_otg: usb-otg-regulator {
123		compatible = "regulator-fixed";
124		enable-active-high;
125		gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
126		pinctrl-names = "default";
127		pinctrl-0 = <&otg_drv>;
128		regulator-name = "vcc_otg";
129		regulator-min-microvolt = <5000000>;
130		regulator-max-microvolt = <5000000>;
131		regulator-always-on;
132		vin-supply = <&vcc_stdby>;
133	};
134};
135
136&cpu0 {
137	cpu-supply = <&vdd_arm>;
138};
139
140&cpu1 {
141	cpu-supply = <&vdd_arm>;
142};
143
144&emac {
145	phy = <&phy0>;
146	phy-supply = <&vcc_rmii>;
147	pinctrl-names = "default";
148	pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>;
149	status = "okay";
150
151	mdio {
152		#address-cells = <1>;
153		#size-cells = <0>;
154
155		phy0: ethernet-phy@0 {
156			reg = <0>;
157			reset-gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>;
158		};
159	};
160};
161
162&emmc {
163	bus-width = <8>;
164	cap-mmc-highspeed;
165	non-removable;
166	pinctrl-names = "default";
167	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
168	vmmc-supply = <&vcc_emmc>;
169	vqmmc-supply = <&vcc_emmc>;
170	status = "okay";
171};
172
173&i2c0 {
174	clock-frequency = <400000>;
175	status = "okay";
176
177	ak8963: ak8963@d {
178		compatible = "asahi-kasei,ak8975";
179		reg = <0x0d>;
180		interrupt-parent = <&gpio4>;
181		interrupts = <RK_PC1 IRQ_TYPE_EDGE_RISING>;
182		pinctrl-names = "default";
183		pinctrl-0 = <&comp_int>;
184	};
185
186	mma8452: mma8452@1d {
187		compatible = "fsl,mma8452";
188		reg = <0x1d>;
189		interrupt-parent = <&gpio4>;
190		interrupts = <RK_PC0 IRQ_TYPE_EDGE_RISING>;
191		pinctrl-names = "default";
192		pinctrl-0 = <&gsensor_int>;
193	};
194};
195
196&i2c1 {
197	clock-frequency = <400000>;
198	status = "okay";
199
200	tps: tps@2d {
201		reg = <0x2d>;
202		interrupt-parent = <&gpio6>;
203		interrupts = <RK_PA4 IRQ_TYPE_EDGE_RISING>;
204		pinctrl-names = "default";
205		pinctrl-0 = <&pmic_int>, <&pwr_hold>;
206
207		vcc1-supply = <&vsys>;
208		vcc2-supply = <&vsys>;
209		vcc3-supply = <&vsys>;
210		vcc4-supply = <&vsys>;
211		vcc5-supply = <&vcc_io>;
212		vcc6-supply = <&vcc_io>;
213		vcc7-supply = <&vsys>;
214		vccio-supply = <&vsys>;
215
216		regulators {
217			vcc_rtc: regulator@0 {
218				regulator-name = "vcc_rtc";
219				regulator-always-on;
220			};
221
222			vcc_io: regulator@1 {
223				regulator-name = "vcc_io";
224				regulator-min-microvolt = <3300000>;
225				regulator-max-microvolt = <3300000>;
226				regulator-always-on;
227			};
228
229			vdd_arm: regulator@2 {
230				regulator-name = "vdd_arm";
231				regulator-min-microvolt = <600000>;
232				regulator-max-microvolt = <1500000>;
233				regulator-always-on;
234				regulator-boot-on;
235			};
236
237			vcc_ddr: regulator@3 {
238				regulator-name = "vcc_ddr";
239				regulator-min-microvolt = <600000>;
240				regulator-max-microvolt = <1500000>;
241				regulator-always-on;
242				regulator-boot-on;
243			};
244
245			vcc18: regulator@5 {
246				regulator-name = "vcc18";
247				regulator-min-microvolt = <1800000>;
248				regulator-max-microvolt = <1800000>;
249				regulator-always-on;
250			};
251
252			vdd_11: regulator@6 {
253				regulator-name = "vdd_11";
254				regulator-min-microvolt = <1100000>;
255				regulator-max-microvolt = <1100000>;
256				regulator-always-on;
257			};
258
259			vcc_25: regulator@7 {
260				regulator-name = "vcc_25";
261				regulator-min-microvolt = <2500000>;
262				regulator-max-microvolt = <2500000>;
263				regulator-always-on;
264			};
265
266			vccio_wl: regulator@8 {
267				regulator-name = "vccio_wl";
268				regulator-min-microvolt = <1800000>;
269				regulator-max-microvolt = <1800000>;
270			};
271
272			vcc25_hdmi: regulator@9 {
273				regulator-name = "vcc25_hdmi";
274				regulator-min-microvolt = <2500000>;
275				regulator-max-microvolt = <2500000>;
276			};
277
278			vcca_33: regulator@10 {
279				regulator-name = "vcca_33";
280				regulator-min-microvolt = <3300000>;
281				regulator-max-microvolt = <3300000>;
282			};
283
284			vcc_rmii: regulator@11 {
285				regulator-name = "vcc_rmii";
286				regulator-min-microvolt = <3300000>;
287				regulator-max-microvolt = <3300000>;
288			};
289
290			vcc28_cif: regulator@12 {
291				regulator-name = "vcc28_cif";
292				regulator-min-microvolt = <2800000>;
293				regulator-max-microvolt = <2800000>;
294			};
295		};
296	};
297};
298
299#include "../tps65910.dtsi"
300
301&i2c2 {
302	status = "okay";
303};
304
305&i2c3 {
306	status = "okay";
307};
308
309&i2c4 {
310	status = "okay";
311};
312
313&mmc0 {
314	bus-width = <4>;
315	disable-wp;
316	pinctrl-names = "default";
317	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
318	vmmc-supply = <&vcc_sd>;
319	cap-mmc-highspeed;
320	cap-sd-highspeed;
321	status = "okay";
322};
323
324&mmc1 {
325	bus-width = <4>;
326	non-removable;
327	pinctrl-names = "default";
328	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
329	vmmc-supply = <&vccio_wl>;
330	status = "okay";
331};
332
333&pinctrl {
334	pcfg_output_high: pcfg-output-high {
335		output-high;
336	};
337
338	ak8963 {
339		comp_int: comp-int {
340			rockchip,pins = <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_default>;
341		};
342	};
343
344	emac {
345		rmii_rst: rmii-rst {
346			rockchip,pins = <1 RK_PD6 RK_FUNC_GPIO &pcfg_output_high>;
347		};
348	};
349
350	ir {
351		ir_int: ir-int {
352			rockchip,pins = <6 RK_PA1 RK_FUNC_GPIO &pcfg_pull_default>;
353		};
354	};
355
356	keys {
357		pwr_key: pwr-key {
358			rockchip,pins = <6 RK_PA2 RK_FUNC_GPIO &pcfg_pull_default>;
359		};
360	};
361
362	mma8452 {
363		gsensor_int: gsensor-int {
364			rockchip,pins = <4 RK_PC0 RK_FUNC_GPIO &pcfg_pull_default>;
365		};
366	};
367
368	mmc {
369		sdmmc_pwr: sdmmc-pwr {
370			rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_default>;
371		};
372	};
373
374	usb_host {
375		host_drv: host-drv {
376			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_default>;
377		};
378
379		hub_rst: hub-rst {
380			rockchip,pins = <1 RK_PD7 RK_FUNC_GPIO &pcfg_output_high>;
381		};
382
383		sata_pwr: sata-pwr {
384			rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_default>;
385		};
386
387		sata_reset: sata-reset {
388			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_output_high>;
389		};
390	};
391
392	usb_otg {
393		otg_drv: otg-drv {
394			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_default>;
395		};
396	};
397
398	tps {
399		pmic_int: pmic-int {
400			rockchip,pins = <6 RK_PA4 RK_FUNC_GPIO &pcfg_pull_default>;
401		};
402
403		pwr_hold: pwr-hold {
404			rockchip,pins = <6 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>;
405		};
406	};
407};
408
409&pwm1 {
410	status = "okay";
411};
412
413&pwm2 {
414	status = "okay";
415};
416
417&pwm3 {
418	status = "okay";
419};
420
421&saradc {
422	vref-supply = <&vcc_25>;
423	status = "okay";
424};
425
426&spi0 {
427	status = "okay";
428};
429
430&uart0 {
431	pinctrl-names = "default";
432	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
433	status = "okay";
434};
435
436&uart2 {
437	status = "okay";
438};
439
440&uart3 {
441	pinctrl-names = "default";
442	pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>;
443	status = "okay";
444};
445
446&usb_host {
447	pinctrl-names = "default";
448	pinctrl-0 = <&hub_rst>, <&sata_reset>;
449	status = "okay";
450};
451
452&usbphy {
453	status = "okay";
454};
455
456&usb_otg {
457	status = "okay";
458};
459
460&wdt {
461	status = "okay";
462};
463