1/*
2 * This file is dual-licensed: you can use it either under the terms
3 * of the GPL or the X11 license, at your option. Note that this dual
4 * licensing only applies to this file, and not this project as a
5 * whole.
6 *
7 *  a) This file is free software; you can redistribute it and/or
8 *     modify it under the terms of the GNU General Public License as
9 *     published by the Free Software Foundation; either version 2 of the
10 *     License, or (at your option) any later version.
11 *
12 *     This file is distributed in the hope that it will be useful,
13 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
14 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 *     GNU General Public License for more details.
16 *
17 * Or, alternatively,
18 *
19 *  b) Permission is hereby granted, free of charge, to any person
20 *     obtaining a copy of this software and associated documentation
21 *     files (the "Software"), to deal in the Software without
22 *     restriction, including without limitation the rights to use,
23 *     copy, modify, merge, publish, distribute, sublicense, and/or
24 *     sell copies of the Software, and to permit persons to whom the
25 *     Software is furnished to do so, subject to the following
26 *     conditions:
27 *
28 *     The above copyright notice and this permission notice shall be
29 *     included in all copies or substantial portions of the Software.
30 *
31 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
32 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
33 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
34 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
35 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
36 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
37 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
38 *     OTHER DEALINGS IN THE SOFTWARE.
39 */
40
41/dts-v1/;
42#include "rk3288-evb.dtsi"
43
44/ {
45	compatible = "rockchip,rk3288-evb-rk808", "rockchip,rk3288";
46
47	ext_gmac: external-gmac-clock {
48		compatible = "fixed-clock";
49		clock-frequency = <125000000>;
50		clock-output-names = "ext_gmac";
51		#clock-cells = <0>;
52	};
53};
54
55&cpu0 {
56	cpu0-supply = <&vdd_cpu>;
57};
58
59&i2c0 {
60	clock-frequency = <400000>;
61
62	rk808: pmic@1b {
63		compatible = "rockchip,rk808";
64		reg = <0x1b>;
65		interrupt-parent = <&gpio0>;
66		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
67		pinctrl-names = "default";
68		pinctrl-0 = <&pmic_int &global_pwroff>;
69		rockchip,system-power-controller;
70		wakeup-source;
71		#clock-cells = <1>;
72		clock-output-names = "xin32k", "rk808-clkout2";
73
74		vcc1-supply = <&vcc_sys>;
75		vcc2-supply = <&vcc_sys>;
76		vcc3-supply = <&vcc_sys>;
77		vcc4-supply = <&vcc_sys>;
78		vcc6-supply = <&vcc_sys>;
79		vcc7-supply = <&vcc_sys>;
80		vcc8-supply = <&vcc_18>;
81		vcc9-supply = <&vcc_io>;
82		vcc10-supply = <&vcc_io>;
83		vcc11-supply = <&vcc_sys>;
84		vcc12-supply = <&vcc_io>;
85		vddio-supply = <&vccio_pmu>;
86
87		regulators {
88			vdd_cpu: DCDC_REG1 {
89				regulator-always-on;
90				regulator-boot-on;
91				regulator-min-microvolt = <750000>;
92				regulator-max-microvolt = <1350000>;
93				regulator-name = "vdd_arm";
94				regulator-state-mem {
95					regulator-off-in-suspend;
96				};
97			};
98
99			vdd_gpu: DCDC_REG2 {
100				regulator-always-on;
101				regulator-boot-on;
102				regulator-min-microvolt = <850000>;
103				regulator-max-microvolt = <1250000>;
104				regulator-name = "vdd_gpu";
105				regulator-state-mem {
106					regulator-on-in-suspend;
107					regulator-suspend-microvolt = <1000000>;
108				};
109			};
110
111			vcc_ddr: DCDC_REG3 {
112				regulator-always-on;
113				regulator-boot-on;
114				regulator-name = "vcc_ddr";
115				regulator-state-mem {
116					regulator-on-in-suspend;
117				};
118			};
119
120			vcc_io: DCDC_REG4 {
121				regulator-always-on;
122				regulator-boot-on;
123				regulator-min-microvolt = <3300000>;
124				regulator-max-microvolt = <3300000>;
125				regulator-name = "vcc_io";
126				regulator-state-mem {
127					regulator-on-in-suspend;
128					regulator-suspend-microvolt = <3300000>;
129				};
130			};
131
132			vccio_pmu: LDO_REG1 {
133				regulator-always-on;
134				regulator-boot-on;
135				regulator-min-microvolt = <3300000>;
136				regulator-max-microvolt = <3300000>;
137				regulator-name = "vccio_pmu";
138				regulator-state-mem {
139					regulator-on-in-suspend;
140					regulator-suspend-microvolt = <3300000>;
141				};
142			};
143
144			vcc_tp: LDO_REG2 {
145				regulator-always-on;
146				regulator-boot-on;
147				regulator-min-microvolt = <3300000>;
148				regulator-max-microvolt = <3300000>;
149				regulator-name = "vcc_tp";
150				regulator-state-mem {
151					regulator-off-in-suspend;
152				};
153			};
154
155			vdd_10: LDO_REG3 {
156				regulator-always-on;
157				regulator-boot-on;
158				regulator-min-microvolt = <1000000>;
159				regulator-max-microvolt = <1000000>;
160				regulator-name = "vdd_10";
161				regulator-state-mem {
162					regulator-on-in-suspend;
163					regulator-suspend-microvolt = <1000000>;
164				};
165			};
166
167			vcc18_lcd: LDO_REG4 {
168				regulator-always-on;
169				regulator-boot-on;
170				regulator-min-microvolt = <1800000>;
171				regulator-max-microvolt = <1800000>;
172				regulator-name = "vcc18_lcd";
173				regulator-state-mem {
174					regulator-on-in-suspend;
175					regulator-suspend-microvolt = <1800000>;
176				};
177			};
178
179			vccio_sd: LDO_REG5 {
180				regulator-always-on;
181				regulator-boot-on;
182				regulator-min-microvolt = <1800000>;
183				regulator-max-microvolt = <3300000>;
184				regulator-name = "vccio_sd";
185				regulator-state-mem {
186					regulator-on-in-suspend;
187					regulator-suspend-microvolt = <3300000>;
188				};
189			};
190
191			vdd10_lcd: LDO_REG6 {
192				regulator-always-on;
193				regulator-boot-on;
194				regulator-min-microvolt = <1000000>;
195				regulator-max-microvolt = <1000000>;
196				regulator-name = "vdd10_lcd";
197				regulator-state-mem {
198					regulator-on-in-suspend;
199					regulator-suspend-microvolt = <1000000>;
200				};
201			};
202
203			vcc_18: LDO_REG7 {
204				regulator-always-on;
205				regulator-boot-on;
206				regulator-min-microvolt = <1800000>;
207				regulator-max-microvolt = <1800000>;
208				regulator-name = "vcc_18";
209				regulator-state-mem {
210					regulator-on-in-suspend;
211					regulator-suspend-microvolt = <1800000>;
212				};
213			};
214
215			vcca_codec: LDO_REG8 {
216				regulator-always-on;
217				regulator-boot-on;
218				regulator-min-microvolt = <3300000>;
219				regulator-max-microvolt = <3300000>;
220				regulator-name = "vcca_codec";
221				regulator-state-mem {
222					regulator-on-in-suspend;
223					regulator-suspend-microvolt = <3300000>;
224				};
225			};
226
227			vcc_wl: SWITCH_REG1 {
228				regulator-always-on;
229				regulator-boot-on;
230				regulator-name = "vcc_wl";
231				regulator-state-mem {
232					regulator-on-in-suspend;
233				};
234			};
235
236			vcc_lcd: SWITCH_REG2 {
237				regulator-always-on;
238				regulator-boot-on;
239				regulator-name = "vcc_lcd";
240				regulator-state-mem {
241					regulator-on-in-suspend;
242				};
243			};
244		};
245	};
246};
247
248&gmac {
249	phy-supply = <&vcc_phy>;
250	phy-mode = "rgmii";
251	clock_in_out = "input";
252	snps,reset-gpio = <&gpio4 7 0>;
253	snps,reset-active-low;
254	snps,reset-delays-us = <0 10000 1000000>;
255	assigned-clocks = <&cru SCLK_MAC>;
256	assigned-clock-parents = <&ext_gmac>;
257	pinctrl-names = "default";
258	pinctrl-0 = <&rgmii_pins>;
259	tx_delay = <0x30>;
260	rx_delay = <0x10>;
261	status = "ok";
262};
263