• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2014, 2015 FUKAUMI Naoki <naobsd@gmail.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 *  a) This file is free software; you can redistribute it and/or
10 *     modify it under the terms of the GNU General Public License as
11 *     published by the Free Software Foundation; either version 2 of the
12 *     License, or (at your option) any later version.
13 *
14 *     This file is distributed in the hope that it will be useful,
15 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *     GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 *  b) Permission is hereby granted, free of charge, to any person
22 *     obtaining a copy of this software and associated documentation
23 *     files (the "Software"), to deal in the Software without
24 *     restriction, including without limitation the rights to use,
25 *     copy, modify, merge, publish, distribute, sublicense, and/or
26 *     sell copies of the Software, and to permit persons to whom the
27 *     Software is furnished to do so, subject to the following
28 *     conditions:
29 *
30 *     The above copyright notice and this permission notice shall be
31 *     included in all copies or substantial portions of the Software.
32 *
33 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 *     OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43/dts-v1/;
44#include "rk3066a.dtsi"
45
46/ {
47	model = "Rayeager PX2";
48	compatible = "chipspark,rayeager-px2", "rockchip,rk3066a";
49
50	memory {
51		device_type = "memory";
52		reg = <0x60000000 0x40000000>;
53	};
54
55	ir: ir-receiver {
56		compatible = "gpio-ir-receiver";
57		gpios = <&gpio6 1 GPIO_ACTIVE_LOW>;
58		pinctrl-names = "default";
59		pinctrl-0 = <&ir_int>;
60	};
61
62	keys: gpio-keys {
63		compatible = "gpio-keys";
64		#address-cells = <1>;
65		#size-cells = <0>;
66
67		button@0 {
68			gpio-key,wakeup = <1>;
69			gpios = <&gpio6 2 GPIO_ACTIVE_LOW>;
70			label = "GPIO Power";
71			linux,code = <116>;
72			pinctrl-names = "default";
73			pinctrl-0 = <&pwr_key>;
74		};
75	};
76
77	vsys: vsys-regulator {
78		compatible = "regulator-fixed";
79		regulator-name = "vsys";
80		regulator-min-microvolt = <5000000>;
81		regulator-max-microvolt = <5000000>;
82		regulator-always-on;
83		regulator-boot-on;
84	};
85
86	/* input for 5V_STDBY is VSYS or DC5V, selectable by jumper J4 */
87	vcc_stdby: 5v-stdby-regulator {
88		compatible = "regulator-fixed";
89		regulator-name = "5v_stdby";
90		regulator-min-microvolt = <5000000>;
91		regulator-max-microvolt = <5000000>;
92		regulator-always-on;
93		regulator-boot-on;
94	};
95
96	vcc_emmc: emmc-regulator {
97		compatible = "regulator-fixed";
98		regulator-name = "emmc_vccq";
99		regulator-min-microvolt = <3000000>;
100		regulator-max-microvolt = <3000000>;
101		vin-supply = <&vsys>;
102	};
103
104	vcc_sata: sata-regulator {
105		compatible = "regulator-fixed";
106		enable-active-high;
107		gpio = <&gpio4 22 GPIO_ACTIVE_HIGH>;
108		pinctrl-names = "default";
109		pinctrl-0 = <&sata_pwr>;
110		regulator-name = "usb_5v";
111		regulator-min-microvolt = <5000000>;
112		regulator-max-microvolt = <5000000>;
113		regulator-always-on;
114		vin-supply = <&vcc_stdby>;
115	};
116
117	vcc_sd: sdmmc-regulator {
118		compatible = "regulator-fixed";
119		gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
120		pinctrl-names = "default";
121		pinctrl-0 = <&sdmmc_pwr>;
122		regulator-name = "vcc_sd";
123		regulator-min-microvolt = <3300000>;
124		regulator-max-microvolt = <3300000>;
125		startup-delay-us = <100000>;
126		vin-supply = <&vcc_io>;
127	};
128
129	vcc_host: usb-host-regulator {
130		compatible = "regulator-fixed";
131		enable-active-high;
132		gpio = <&gpio0 6 GPIO_ACTIVE_HIGH>;
133		pinctrl-names = "default";
134		pinctrl-0 = <&host_drv>;
135		regulator-name = "host-pwr";
136		regulator-min-microvolt = <5000000>;
137		regulator-max-microvolt = <5000000>;
138		regulator-always-on;
139		vin-supply = <&vcc_stdby>;
140	};
141
142	vcc_otg: usb-otg-regulator {
143		compatible = "regulator-fixed";
144		enable-active-high;
145		gpio = <&gpio0 5 GPIO_ACTIVE_HIGH>;
146		pinctrl-names = "default";
147		pinctrl-0 = <&otg_drv>;
148		regulator-name = "vcc_otg";
149		regulator-min-microvolt = <5000000>;
150		regulator-max-microvolt = <5000000>;
151		regulator-always-on;
152		vin-supply = <&vcc_stdby>;
153	};
154};
155
156&cpu0 {
157	cpu0-supply = <&vdd_arm>;
158};
159
160&emac {
161	pinctrl-names = "default";
162	pinctrl-0 = <&emac_xfer>, <&emac_mdio>, <&rmii_rst>;
163	phy = <&phy0>;
164	phy-supply = <&vcc_rmii>;
165	status = "okay";
166
167	phy0: ethernet-phy@0 {
168		reg = <0>;
169	};
170};
171
172&emmc {
173	broken-cd;
174	bus-width = <8>;
175	cap-mmc-highspeed;
176	disable-wp;
177	non-removable;
178	num-slots = <1>;
179	pinctrl-names = "default";
180	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_rst>;
181	vmmc-supply = <&vcc_emmc>;
182	vqmmc-supply = <&vcc_emmc>;
183	status = "okay";
184};
185
186&i2c0 {
187	clock-frequency = <400000>;
188	status = "okay";
189
190	ak8963: ak8963@0d {
191		compatible = "asahi-kasei,ak8975";
192		reg = <0x0d>;
193		interrupt-parent = <&gpio4>;
194		interrupts = <17 IRQ_TYPE_EDGE_RISING>;
195		pinctrl-names = "default";
196		pinctrl-0 = <&comp_int>;
197	};
198
199	mma8452: mma8452@1d {
200		compatible = "fsl,mma8452";
201		reg = <0x1d>;
202		interrupt-parent = <&gpio4>;
203		interrupts = <16 IRQ_TYPE_EDGE_RISING>;
204		pinctrl-names = "default";
205		pinctrl-0 = <&gsensor_int>;
206	};
207};
208
209&i2c1 {
210	clock-frequency = <400000>;
211	status = "okay";
212
213	tps: tps@2d {
214		reg = <0x2d>;
215		interrupt-parent = <&gpio6>;
216		interrupts = <4 IRQ_TYPE_EDGE_RISING>;
217		pinctrl-names = "default";
218		pinctrl-0 = <&pmic_int>, <&pwr_hold>;
219
220		vcc1-supply = <&vsys>;
221		vcc2-supply = <&vsys>;
222		vcc3-supply = <&vsys>;
223		vcc4-supply = <&vsys>;
224		vcc5-supply = <&vcc_io>;
225		vcc6-supply = <&vcc_io>;
226		vcc7-supply = <&vsys>;
227		vccio-supply = <&vsys>;
228
229		regulators {
230			vcc_rtc: regulator@0 {
231				regulator-name = "vcc_rtc";
232				regulator-always-on;
233			};
234
235			vcc_io: regulator@1 {
236				regulator-name = "vcc_io";
237				regulator-min-microvolt = <3300000>;
238				regulator-max-microvolt = <3300000>;
239				regulator-always-on;
240			};
241
242			vdd_arm: regulator@2 {
243				regulator-name = "vdd_arm";
244				regulator-min-microvolt = <600000>;
245				regulator-max-microvolt = <1500000>;
246				regulator-always-on;
247				regulator-boot-on;
248			};
249
250			vcc_ddr: regulator@3 {
251				regulator-name = "vcc_ddr";
252				regulator-min-microvolt = <600000>;
253				regulator-max-microvolt = <1500000>;
254				regulator-always-on;
255				regulator-boot-on;
256			};
257
258			vcc18: regulator@5 {
259				regulator-name = "vcc18";
260				regulator-min-microvolt = <1800000>;
261				regulator-max-microvolt = <1800000>;
262				regulator-always-on;
263			};
264
265			vdd_11: regulator@6 {
266				regulator-name = "vdd_11";
267				regulator-min-microvolt = <1100000>;
268				regulator-max-microvolt = <1100000>;
269				regulator-always-on;
270			};
271
272			vcc_25: regulator@7 {
273				regulator-name = "vcc_25";
274				regulator-min-microvolt = <2500000>;
275				regulator-max-microvolt = <2500000>;
276				regulator-always-on;
277			};
278
279			vccio_wl: regulator@8 {
280				regulator-name = "vccio_wl";
281				regulator-min-microvolt = <1800000>;
282				regulator-max-microvolt = <1800000>;
283			};
284
285			vcc25_hdmi: regulator@9 {
286				regulator-name = "vcc25_hdmi";
287				regulator-min-microvolt = <2500000>;
288				regulator-max-microvolt = <2500000>;
289			};
290
291			vcca_33: regulator@10 {
292				regulator-name = "vcca_33";
293				regulator-min-microvolt = <3300000>;
294				regulator-max-microvolt = <3300000>;
295			};
296
297			vcc_rmii: regulator@11 {
298				regulator-name = "vcc_rmii";
299				regulator-min-microvolt = <3300000>;
300				regulator-max-microvolt = <3300000>;
301			};
302
303			vcc28_cif: regulator@12 {
304				regulator-name = "vcc28_cif";
305				regulator-min-microvolt = <2800000>;
306				regulator-max-microvolt = <2800000>;
307			};
308		};
309	};
310};
311
312#include "tps65910.dtsi"
313
314&i2c2 {
315	status = "okay";
316};
317
318&i2c3 {
319	status = "okay";
320};
321
322&i2c4 {
323	status = "okay";
324};
325
326&mmc0 {
327	bus-width = <4>;
328	disable-wp;
329	num-slots = <1>;
330	pinctrl-names = "default";
331	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
332	vmmc-supply = <&vcc_sd>;
333	cap-mmc-highspeed;
334	cap-sd-highspeed;
335	status = "okay";
336};
337
338&mmc1 {
339	broken-cd;
340	bus-width = <4>;
341	disable-wp;
342	non-removable;
343	num-slots = <1>;
344	pinctrl-names = "default";
345	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
346	vmmc-supply = <&vccio_wl>;
347	status = "okay";
348};
349
350&pinctrl {
351	pcfg_output_high: pcfg-output-high {
352		output-high;
353	};
354
355	ak8963 {
356		comp_int: comp-int {
357			rockchip,pins = <4 17 RK_FUNC_GPIO &pcfg_pull_default>;
358		};
359	};
360
361	emac {
362		rmii_rst: rmii-rst {
363			rockchip,pins = <1 30 RK_FUNC_GPIO &pcfg_output_high>;
364		};
365	};
366
367	ir {
368		ir_int: ir-int {
369			rockchip,pins = <6 1 RK_FUNC_GPIO &pcfg_pull_default>;
370		};
371	};
372
373	keys {
374		pwr_key: pwr-key {
375			rockchip,pins = <6 2 RK_FUNC_GPIO &pcfg_pull_default>;
376		};
377	};
378
379	mma8452 {
380		gsensor_int: gsensor-int {
381			rockchip,pins = <4 16 RK_FUNC_GPIO &pcfg_pull_default>;
382		};
383	};
384
385	mmc {
386		sdmmc_pwr: sdmmc-pwr {
387			rockchip,pins = <3 7 RK_FUNC_GPIO &pcfg_pull_default>;
388		};
389	};
390
391	usb_host {
392		host_drv: host-drv {
393			rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_default>;
394		};
395
396		hub_rst: hub-rst {
397			rockchip,pins = <1 31 RK_FUNC_GPIO &pcfg_output_high>;
398		};
399
400		sata_pwr: sata-pwr {
401			rockchip,pins = <4 22 RK_FUNC_GPIO &pcfg_pull_default>;
402		};
403
404		sata_reset: sata-reset {
405			rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_output_high>;
406		};
407	};
408
409	usb_otg {
410		otg_drv: otg-drv {
411			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_default>;
412		};
413	};
414
415	tps {
416		pmic_int: pmic-int {
417			rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_default>;
418		};
419
420		pwr_hold: pwr-hold {
421			rockchip,pins = <6 8 RK_FUNC_GPIO &pcfg_output_high>;
422		};
423	};
424};
425
426&pwm1 {
427	status = "okay";
428};
429
430&pwm2 {
431	status = "okay";
432};
433
434&saradc {
435	vref-supply = <&vcc_25>;
436	status = "okay";
437};
438
439&spi0 {
440	status = "okay";
441};
442
443&uart0 {
444	pinctrl-names = "default";
445	pinctrl-0 = <&uart0_xfer>, <&uart0_cts>, <&uart0_rts>;
446	status = "okay";
447};
448
449&uart2 {
450	status = "okay";
451};
452
453&uart3 {
454	pinctrl-names = "default";
455	pinctrl-0 = <&uart3_xfer>, <&uart3_cts>, <&uart3_rts>;
456	status = "okay";
457};
458
459&usb_host {
460	pinctrl-names = "default";
461	pinctrl-0 = <&hub_rst>, <&sata_reset>;
462	status = "okay";
463};
464
465&usbphy {
466	status = "okay";
467};
468
469&usb_otg {
470	status = "okay";
471};
472
473&wdt {
474	status = "okay";
475};
476