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