xref: /openbmc/u-boot/arch/arm/dts/rk3288-fennec.dtsi (revision dd4671cb)
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#include "rk3288.dtsi"
42
43/ {
44	memory {
45		reg = <0x0 0x80000000>;
46		device_type = "memory";
47	};
48
49	ext_gmac: external-gmac-clock {
50		compatible = "fixed-clock";
51		#clock-cells = <0>;
52		clock-frequency = <125000000>;
53		clock-output-names = "ext_gmac";
54	};
55
56	vcc_sys: vsys-regulator {
57		compatible = "regulator-fixed";
58		regulator-name = "vcc_sys";
59		regulator-min-microvolt = <5000000>;
60		regulator-max-microvolt = <5000000>;
61		regulator-always-on;
62		regulator-boot-on;
63	};
64};
65
66&cpu0 {
67	cpu0-supply = <&vdd_cpu>;
68};
69
70&emmc {
71	bus-width = <8>;
72	cap-mmc-highspeed;
73	disable-wp;
74	non-removable;
75	num-slots = <1>;
76	pinctrl-names = "default";
77	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
78	status = "okay";
79};
80
81&sdmmc {
82	bus-width = <4>;
83	cap-mmc-highspeed;
84	cap-sd-highspeed;
85	card-detect-delay = <200>;
86	disable-wp;
87	num-slots = <1>;
88	pinctrl-names = "default";
89	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
90	status = "okay";
91	vmmc-supply = <&vcc_sd>;
92	vqmmc-supply = <&vccio_sd>;
93};
94
95&gmac {
96	assigned-clocks = <&cru SCLK_MAC>;
97	assigned-clock-parents = <&ext_gmac>;
98	clock_in_out = "input";
99	pinctrl-names = "default";
100	pinctrl-0 = <&rgmii_pins>, <&phy_rst>, <&phy_pmeb>, <&phy_int>;
101	phy-supply = <&vcc_lan>;
102	phy-mode = "rgmii";
103	snps,reset-active-low;
104	snps,reset-delays-us = <0 10000 1000000>;
105	snps,reset-gpio = <&gpio4 8 GPIO_ACTIVE_LOW>;
106	tx_delay = <0x30>;
107	rx_delay = <0x10>;
108	status = "okay";
109};
110
111&gpu {
112	mali-supply = <&vdd_gpu>;
113	status = "okay";
114};
115
116&hdmi {
117	status = "okay";
118};
119
120&i2c0 {
121	status = "okay";
122	clock-frequency = <400000>;
123
124	rk808: pmic@1b {
125		compatible = "rockchip,rk808";
126		reg = <0x1b>;
127		interrupt-parent = <&gpio0>;
128		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
129		#clock-cells = <1>;
130		clock-output-names = "xin32k", "rk808-clkout2";
131		pinctrl-names = "default";
132		pinctrl-0 = <&pmic_int &global_pwroff>;
133		rockchip,system-power-controller;
134		wakeup-source;
135
136		vcc1-supply = <&vcc_sys>;
137		vcc2-supply = <&vcc_sys>;
138		vcc3-supply = <&vcc_sys>;
139		vcc4-supply = <&vcc_sys>;
140		vcc6-supply = <&vcc_sys>;
141		vcc7-supply = <&vcc_sys>;
142		vcc8-supply = <&vcc_io>;
143		vcc9-supply = <&vcc_io>;
144		vcc10-supply = <&vcc_io>;
145		vcc11-supply = <&vcc_io>;
146		vcc12-supply = <&vcc_io>;
147		vddio-supply = <&vcc_io>;
148
149		regulators {
150			vdd_cpu: DCDC_REG1 {
151				regulator-always-on;
152				regulator-boot-on;
153				regulator-min-microvolt = <750000>;
154				regulator-max-microvolt = <1350000>;
155				regulator-name = "vdd_arm";
156				regulator-state-mem {
157					regulator-off-in-suspend;
158				};
159			};
160
161			vdd_gpu: DCDC_REG2 {
162				regulator-always-on;
163				regulator-boot-on;
164				regulator-min-microvolt = <850000>;
165				regulator-max-microvolt = <1250000>;
166				regulator-name = "vdd_gpu";
167				regulator-state-mem {
168					regulator-on-in-suspend;
169					regulator-suspend-microvolt = <1000000>;
170				};
171			};
172
173			vcc_ddr: DCDC_REG3 {
174				regulator-always-on;
175				regulator-boot-on;
176				regulator-name = "vcc_ddr";
177				regulator-state-mem {
178					regulator-on-in-suspend;
179				};
180			};
181
182			vcc_io: DCDC_REG4 {
183				regulator-always-on;
184				regulator-boot-on;
185				regulator-min-microvolt = <3300000>;
186				regulator-max-microvolt = <3300000>;
187				regulator-name = "vcc_io";
188				regulator-state-mem {
189					regulator-on-in-suspend;
190					regulator-suspend-microvolt = <3300000>;
191				};
192			};
193
194			vccio_pmu: LDO_REG1 {
195				regulator-always-on;
196				regulator-boot-on;
197				regulator-min-microvolt = <3300000>;
198				regulator-max-microvolt = <3300000>;
199				regulator-name = "vccio_pmu";
200				regulator-state-mem {
201					regulator-on-in-suspend;
202					regulator-suspend-microvolt = <3300000>;
203				};
204			};
205
206			vcca_33: LDO_REG2 {
207				regulator-always-on;
208				regulator-boot-on;
209				regulator-min-microvolt = <3300000>;
210				regulator-max-microvolt = <3300000>;
211				regulator-name = "vcca_33";
212				regulator-state-mem {
213					regulator-off-in-suspend;
214				};
215			};
216
217			vdd_10: LDO_REG3 {
218				regulator-always-on;
219				regulator-boot-on;
220				regulator-min-microvolt = <1000000>;
221				regulator-max-microvolt = <1000000>;
222				regulator-name = "vdd_10";
223				regulator-state-mem {
224					regulator-on-in-suspend;
225					regulator-suspend-microvolt = <1000000>;
226				};
227			};
228
229			vcc_wl: LDO_REG4 {
230				regulator-always-on;
231				regulator-boot-on;
232				regulator-min-microvolt = <1800000>;
233				regulator-max-microvolt = <1800000>;
234				regulator-name = "vcc_wl";
235				regulator-state-mem {
236					regulator-on-in-suspend;
237					regulator-suspend-microvolt = <1800000>;
238				};
239			};
240
241			vccio_sd: LDO_REG5 {
242				regulator-always-on;
243				regulator-boot-on;
244				regulator-min-microvolt = <1800000>;
245				regulator-max-microvolt = <3300000>;
246				regulator-name = "vccio_sd";
247				regulator-state-mem {
248					regulator-on-in-suspend;
249					regulator-suspend-microvolt = <3300000>;
250				};
251			};
252
253			vdd10_lcd: LDO_REG6 {
254				regulator-always-on;
255				regulator-boot-on;
256				regulator-min-microvolt = <1000000>;
257				regulator-max-microvolt = <1000000>;
258				regulator-name = "vdd10_lcd";
259				regulator-state-mem {
260					regulator-on-in-suspend;
261					regulator-suspend-microvolt = <1000000>;
262				};
263			};
264
265			vcc_18: LDO_REG7 {
266				regulator-always-on;
267				regulator-boot-on;
268				regulator-min-microvolt = <1800000>;
269				regulator-max-microvolt = <1800000>;
270				regulator-name = "vcc_18";
271				regulator-state-mem {
272					regulator-on-in-suspend;
273					regulator-suspend-microvolt = <1800000>;
274				};
275			};
276
277			vcc18_lcd: LDO_REG8 {
278				regulator-always-on;
279				regulator-boot-on;
280				regulator-min-microvolt = <1800000>;
281				regulator-max-microvolt = <1800000>;
282				regulator-name = "vcc18_lcd";
283				regulator-state-mem {
284					regulator-on-in-suspend;
285					regulator-suspend-microvolt = <1800000>;
286				};
287			};
288
289			vcc_sd: SWITCH_REG1 {
290				regulator-always-on;
291				regulator-boot-on;
292				regulator-name = "vcc_sd";
293				regulator-state-mem {
294					regulator-on-in-suspend;
295				};
296			};
297
298			vcc_lan: SWITCH_REG2 {
299				regulator-always-on;
300				regulator-boot-on;
301				regulator-name = "vcc_lan";
302				regulator-state-mem {
303					regulator-on-in-suspend;
304				};
305			};
306		};
307	};
308};
309
310&pinctrl {
311	pcfg_output_high: pcfg-output-high {
312		output-high;
313	};
314
315	pcfg_output_low: pcfg-output-low {
316		output-low;
317	};
318
319	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
320		drive-strength = <8>;
321	};
322
323	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
324		bias-pull-up;
325		drive-strength = <8>;
326	};
327
328	gmac {
329		phy_int: phy-int {
330			rockchip,pins = <0 9 RK_FUNC_GPIO &pcfg_pull_up>;
331		};
332
333		phy_pmeb: phy-pmeb {
334			rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_up>;
335		};
336
337		phy_rst: phy-rst {
338			rockchip,pins = <4 8 RK_FUNC_GPIO &pcfg_output_high>;
339		};
340	};
341
342	pmic {
343		pmic_int: pmic-int {
344			rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
345		};
346	};
347
348	sdmmc {
349		sdmmc_bus4: sdmmc-bus4 {
350			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
351					<6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
352					<6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
353					<6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
354		};
355
356		sdmmc_clk: sdmmc-clk {
357			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
358		};
359
360		sdmmc_cmd: sdmmc-cmd {
361			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
362		};
363
364		sdmmc_pwr: sdmmc-pwr {
365			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
366		};
367	};
368
369	usbphy {
370		host_drv: host-drv {
371			rockchip,pins = <0 14 RK_FUNC_GPIO &pcfg_pull_none>;
372		};
373	};
374};
375
376&uart2 {
377	status = "okay";
378};
379
380&usbphy {
381	pinctrl-names = "default";
382	pinctrl-0 = <&host_drv>;
383	vbus_drv-gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
384	status = "okay";
385};
386
387&usb_host0_ehci {
388	status = "okay";
389};
390
391&usb_host1 {
392	status = "okay";
393};
394
395&usb_otg {
396	status = "okay";
397};
398
399&usb_hsic {
400	status = "okay";
401};
402
403&vopb {
404	status = "okay";
405};
406
407&vopb_mmu {
408	status = "okay";
409};
410
411&vopl {
412	status = "okay";
413};
414
415&vopl_mmu {
416	status = "okay";
417};
418
419&vpu {
420	status = "okay";
421};
422