1/*
2 * This program is free software; you can redistribute it and/or modify
3 * it under the terms of the GNU General Public License as published by
4 * the Free Software Foundation; either version 2 of the License, or
5 * (at your option) any later version.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10 * GNU General Public License for more details.
11 */
12
13/dts-v1/;
14#include "rk3288-evb.dtsi"
15
16/ {
17	compatible = "rockchip,rk3288-evb-rk808", "rockchip,rk3288";
18
19	ext_gmac: external-gmac-clock {
20		compatible = "fixed-clock";
21		clock-frequency = <125000000>;
22		clock-output-names = "ext_gmac";
23		#clock-cells = <0>;
24	};
25};
26
27&cpu0 {
28	cpu0-supply = <&vdd_cpu>;
29};
30
31&i2c0 {
32	clock-frequency = <400000>;
33
34	rk808: pmic@1b {
35		compatible = "rockchip,rk808";
36		reg = <0x1b>;
37		interrupt-parent = <&gpio0>;
38		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
39		pinctrl-names = "default";
40		pinctrl-0 = <&pmic_int &global_pwroff>;
41		rockchip,system-power-controller;
42		wakeup-source;
43		#clock-cells = <1>;
44		clock-output-names = "xin32k", "rk808-clkout2";
45
46		vcc1-supply = <&vcc_sys>;
47		vcc2-supply = <&vcc_sys>;
48		vcc3-supply = <&vcc_sys>;
49		vcc4-supply = <&vcc_sys>;
50		vcc6-supply = <&vcc_sys>;
51		vcc7-supply = <&vcc_sys>;
52		vcc8-supply = <&vcc_18>;
53		vcc9-supply = <&vcc_io>;
54		vcc10-supply = <&vcc_io>;
55		vcc11-supply = <&vcc_sys>;
56		vcc12-supply = <&vcc_io>;
57		vddio-supply = <&vccio_pmu>;
58
59		regulators {
60			vdd_cpu: DCDC_REG1 {
61				regulator-always-on;
62				regulator-boot-on;
63				regulator-min-microvolt = <750000>;
64				regulator-max-microvolt = <1350000>;
65				regulator-name = "vdd_arm";
66				regulator-state-mem {
67					regulator-off-in-suspend;
68				};
69			};
70
71			vdd_gpu: DCDC_REG2 {
72				regulator-always-on;
73				regulator-boot-on;
74				regulator-min-microvolt = <850000>;
75				regulator-max-microvolt = <1250000>;
76				regulator-name = "vdd_gpu";
77				regulator-state-mem {
78					regulator-on-in-suspend;
79					regulator-suspend-microvolt = <1000000>;
80				};
81			};
82
83			vcc_ddr: DCDC_REG3 {
84				regulator-always-on;
85				regulator-boot-on;
86				regulator-name = "vcc_ddr";
87				regulator-state-mem {
88					regulator-on-in-suspend;
89				};
90			};
91
92			vcc_io: DCDC_REG4 {
93				regulator-always-on;
94				regulator-boot-on;
95				regulator-min-microvolt = <3300000>;
96				regulator-max-microvolt = <3300000>;
97				regulator-name = "vcc_io";
98				regulator-state-mem {
99					regulator-on-in-suspend;
100					regulator-suspend-microvolt = <3300000>;
101				};
102			};
103
104			vccio_pmu: LDO_REG1 {
105				regulator-always-on;
106				regulator-boot-on;
107				regulator-min-microvolt = <3300000>;
108				regulator-max-microvolt = <3300000>;
109				regulator-name = "vccio_pmu";
110				regulator-state-mem {
111					regulator-on-in-suspend;
112					regulator-suspend-microvolt = <3300000>;
113				};
114			};
115
116			vcc_tp: LDO_REG2 {
117				regulator-always-on;
118				regulator-boot-on;
119				regulator-min-microvolt = <3300000>;
120				regulator-max-microvolt = <3300000>;
121				regulator-name = "vcc_tp";
122				regulator-state-mem {
123					regulator-off-in-suspend;
124				};
125			};
126
127			vdd_10: LDO_REG3 {
128				regulator-always-on;
129				regulator-boot-on;
130				regulator-min-microvolt = <1000000>;
131				regulator-max-microvolt = <1000000>;
132				regulator-name = "vdd_10";
133				regulator-state-mem {
134					regulator-on-in-suspend;
135					regulator-suspend-microvolt = <1000000>;
136				};
137			};
138
139			vcc18_lcd: LDO_REG4 {
140				regulator-always-on;
141				regulator-boot-on;
142				regulator-min-microvolt = <1800000>;
143				regulator-max-microvolt = <1800000>;
144				regulator-name = "vcc18_lcd";
145				regulator-state-mem {
146					regulator-on-in-suspend;
147					regulator-suspend-microvolt = <1800000>;
148				};
149			};
150
151			vccio_sd: LDO_REG5 {
152				regulator-always-on;
153				regulator-boot-on;
154				regulator-min-microvolt = <1800000>;
155				regulator-max-microvolt = <3300000>;
156				regulator-name = "vccio_sd";
157				regulator-state-mem {
158					regulator-on-in-suspend;
159					regulator-suspend-microvolt = <3300000>;
160				};
161			};
162
163			vdd10_lcd: LDO_REG6 {
164				regulator-always-on;
165				regulator-boot-on;
166				regulator-min-microvolt = <1000000>;
167				regulator-max-microvolt = <1000000>;
168				regulator-name = "vdd10_lcd";
169				regulator-state-mem {
170					regulator-on-in-suspend;
171					regulator-suspend-microvolt = <1000000>;
172				};
173			};
174
175			vcc_18: LDO_REG7 {
176				regulator-always-on;
177				regulator-boot-on;
178				regulator-min-microvolt = <1800000>;
179				regulator-max-microvolt = <1800000>;
180				regulator-name = "vcc_18";
181				regulator-state-mem {
182					regulator-on-in-suspend;
183					regulator-suspend-microvolt = <1800000>;
184				};
185			};
186
187			vcca_codec: LDO_REG8 {
188				regulator-always-on;
189				regulator-boot-on;
190				regulator-min-microvolt = <3300000>;
191				regulator-max-microvolt = <3300000>;
192				regulator-name = "vcca_codec";
193				regulator-state-mem {
194					regulator-on-in-suspend;
195					regulator-suspend-microvolt = <3300000>;
196				};
197			};
198
199			vcc_wl: SWITCH_REG1 {
200				regulator-always-on;
201				regulator-boot-on;
202				regulator-name = "vcc_wl";
203				regulator-state-mem {
204					regulator-on-in-suspend;
205				};
206			};
207
208			vcc_lcd: SWITCH_REG2 {
209				regulator-always-on;
210				regulator-boot-on;
211				regulator-name = "vcc_lcd";
212				regulator-state-mem {
213					regulator-on-in-suspend;
214				};
215			};
216		};
217	};
218};
219
220&gmac {
221	phy-supply = <&vcc_phy>;
222	phy-mode = "rgmii";
223	clock_in_out = "input";
224	snps,reset-gpio = <&gpio4 7 0>;
225	snps,reset-active-low;
226	snps,reset-delays-us = <0 10000 1000000>;
227	assigned-clocks = <&cru SCLK_MAC>;
228	assigned-clock-parents = <&ext_gmac>;
229	pinctrl-names = "default";
230	pinctrl-0 = <&rgmii_pins>;
231	tx_delay = <0x30>;
232	rx_delay = <0x10>;
233	status = "ok";
234};
235