xref: /openbmc/u-boot/arch/arm/dts/rk3368-geekbox.dts (revision 156d64fa55e9914b144c5e83f2a9e13d1223a4d3)
1*54c57ae0SAndreas Färber/*
2*54c57ae0SAndreas Färber * Copyright (c) 2016 Andreas Färber
3*54c57ae0SAndreas Färber *
4*54c57ae0SAndreas Färber * This file is dual-licensed: you can use it either under the terms
5*54c57ae0SAndreas Färber * of the GPL or the X11 license, at your option. Note that this dual
6*54c57ae0SAndreas Färber * licensing only applies to this file, and not this project as a
7*54c57ae0SAndreas Färber * whole.
8*54c57ae0SAndreas Färber *
9*54c57ae0SAndreas Färber *  a) This file is free software; you can redistribute it and/or
10*54c57ae0SAndreas Färber *     modify it under the terms of the GNU General Public License as
11*54c57ae0SAndreas Färber *     published by the Free Software Foundation; either version 2 of the
12*54c57ae0SAndreas Färber *     License, or (at your option) any later version.
13*54c57ae0SAndreas Färber *
14*54c57ae0SAndreas Färber *     This file is distributed in the hope that it will be useful,
15*54c57ae0SAndreas Färber *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16*54c57ae0SAndreas Färber *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17*54c57ae0SAndreas Färber *     GNU General Public License for more details.
18*54c57ae0SAndreas Färber *
19*54c57ae0SAndreas Färber * Or, alternatively,
20*54c57ae0SAndreas Färber *
21*54c57ae0SAndreas Färber *  b) Permission is hereby granted, free of charge, to any person
22*54c57ae0SAndreas Färber *     obtaining a copy of this software and associated documentation
23*54c57ae0SAndreas Färber *     files (the "Software"), to deal in the Software without
24*54c57ae0SAndreas Färber *     restriction, including without limitation the rights to use,
25*54c57ae0SAndreas Färber *     copy, modify, merge, publish, distribute, sublicense, and/or
26*54c57ae0SAndreas Färber *     sell copies of the Software, and to permit persons to whom the
27*54c57ae0SAndreas Färber *     Software is furnished to do so, subject to the following
28*54c57ae0SAndreas Färber *     conditions:
29*54c57ae0SAndreas Färber *
30*54c57ae0SAndreas Färber *     The above copyright notice and this permission notice shall be
31*54c57ae0SAndreas Färber *     included in all copies or substantial portions of the Software.
32*54c57ae0SAndreas Färber *
33*54c57ae0SAndreas Färber *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34*54c57ae0SAndreas Färber *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35*54c57ae0SAndreas Färber *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36*54c57ae0SAndreas Färber *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37*54c57ae0SAndreas Färber *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38*54c57ae0SAndreas Färber *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39*54c57ae0SAndreas Färber *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40*54c57ae0SAndreas Färber *     OTHER DEALINGS IN THE SOFTWARE.
41*54c57ae0SAndreas Färber */
42*54c57ae0SAndreas Färber
43*54c57ae0SAndreas Färber/dts-v1/;
44*54c57ae0SAndreas Färber#include "rk3368.dtsi"
45*54c57ae0SAndreas Färber#include <dt-bindings/input/input.h>
46*54c57ae0SAndreas Färber
47*54c57ae0SAndreas Färber/ {
48*54c57ae0SAndreas Färber	model = "GeekBox";
49*54c57ae0SAndreas Färber	compatible = "geekbuying,geekbox", "rockchip,rk3368";
50*54c57ae0SAndreas Färber
51*54c57ae0SAndreas Färber	chosen {
52*54c57ae0SAndreas Färber		stdout-path = "serial2:115200n8";
53*54c57ae0SAndreas Färber	};
54*54c57ae0SAndreas Färber
55*54c57ae0SAndreas Färber	memory@0 {
56*54c57ae0SAndreas Färber		device_type = "memory";
57*54c57ae0SAndreas Färber		reg = <0x0 0x0 0x0 0x80000000>;
58*54c57ae0SAndreas Färber	};
59*54c57ae0SAndreas Färber
60*54c57ae0SAndreas Färber	ext_gmac: gmac-clk {
61*54c57ae0SAndreas Färber		compatible = "fixed-clock";
62*54c57ae0SAndreas Färber		clock-frequency = <125000000>;
63*54c57ae0SAndreas Färber		clock-output-names = "ext_gmac";
64*54c57ae0SAndreas Färber		#clock-cells = <0>;
65*54c57ae0SAndreas Färber	};
66*54c57ae0SAndreas Färber
67*54c57ae0SAndreas Färber	ir: ir-receiver {
68*54c57ae0SAndreas Färber		compatible = "gpio-ir-receiver";
69*54c57ae0SAndreas Färber		gpios = <&gpio3 30 GPIO_ACTIVE_LOW>;
70*54c57ae0SAndreas Färber		pinctrl-names = "default";
71*54c57ae0SAndreas Färber		pinctrl-0 = <&ir_int>;
72*54c57ae0SAndreas Färber	};
73*54c57ae0SAndreas Färber
74*54c57ae0SAndreas Färber	keys: gpio-keys {
75*54c57ae0SAndreas Färber		compatible = "gpio-keys";
76*54c57ae0SAndreas Färber		pinctrl-names = "default";
77*54c57ae0SAndreas Färber		pinctrl-0 = <&pwr_key>;
78*54c57ae0SAndreas Färber
79*54c57ae0SAndreas Färber		power {
80*54c57ae0SAndreas Färber			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
81*54c57ae0SAndreas Färber			label = "GPIO Power";
82*54c57ae0SAndreas Färber			linux,code = <KEY_POWER>;
83*54c57ae0SAndreas Färber			wakeup-source;
84*54c57ae0SAndreas Färber		};
85*54c57ae0SAndreas Färber	};
86*54c57ae0SAndreas Färber
87*54c57ae0SAndreas Färber	leds: gpio-leds {
88*54c57ae0SAndreas Färber		compatible = "gpio-leds";
89*54c57ae0SAndreas Färber
90*54c57ae0SAndreas Färber		blue {
91*54c57ae0SAndreas Färber			gpios = <&gpio2 2 GPIO_ACTIVE_HIGH>;
92*54c57ae0SAndreas Färber			label = "geekbox:blue:led";
93*54c57ae0SAndreas Färber			default-state = "on";
94*54c57ae0SAndreas Färber		};
95*54c57ae0SAndreas Färber
96*54c57ae0SAndreas Färber		red {
97*54c57ae0SAndreas Färber			gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
98*54c57ae0SAndreas Färber			label = "geekbox:red:led";
99*54c57ae0SAndreas Färber			default-state = "off";
100*54c57ae0SAndreas Färber		};
101*54c57ae0SAndreas Färber	};
102*54c57ae0SAndreas Färber
103*54c57ae0SAndreas Färber	vcc_sys: vcc-sys-regulator {
104*54c57ae0SAndreas Färber		compatible = "regulator-fixed";
105*54c57ae0SAndreas Färber		regulator-name = "vcc_sys";
106*54c57ae0SAndreas Färber		regulator-min-microvolt = <5000000>;
107*54c57ae0SAndreas Färber		regulator-max-microvolt = <5000000>;
108*54c57ae0SAndreas Färber		regulator-always-on;
109*54c57ae0SAndreas Färber		regulator-boot-on;
110*54c57ae0SAndreas Färber	};
111*54c57ae0SAndreas Färber};
112*54c57ae0SAndreas Färber
113*54c57ae0SAndreas Färber&emmc {
114*54c57ae0SAndreas Färber	status = "okay";
115*54c57ae0SAndreas Färber	bus-width = <8>;
116*54c57ae0SAndreas Färber	cap-mmc-highspeed;
117*54c57ae0SAndreas Färber	clock-frequency = <150000000>;
118*54c57ae0SAndreas Färber	disable-wp;
119*54c57ae0SAndreas Färber	keep-power-in-suspend;
120*54c57ae0SAndreas Färber	non-removable;
121*54c57ae0SAndreas Färber	num-slots = <1>;
122*54c57ae0SAndreas Färber	vmmc-supply = <&vcc_io>;
123*54c57ae0SAndreas Färber	vqmmc-supply = <&vcc18_flash>;
124*54c57ae0SAndreas Färber	pinctrl-names = "default";
125*54c57ae0SAndreas Färber	pinctrl-0 = <&emmc_clk>, <&emmc_cmd>, <&emmc_bus8>;
126*54c57ae0SAndreas Färber};
127*54c57ae0SAndreas Färber
128*54c57ae0SAndreas Färber&gmac {
129*54c57ae0SAndreas Färber	status = "okay";
130*54c57ae0SAndreas Färber	phy-supply = <&vcc_lan>;
131*54c57ae0SAndreas Färber	phy-mode = "rgmii";
132*54c57ae0SAndreas Färber	clock_in_out = "input";
133*54c57ae0SAndreas Färber	assigned-clocks = <&cru SCLK_MAC>;
134*54c57ae0SAndreas Färber	assigned-clock-parents = <&ext_gmac>;
135*54c57ae0SAndreas Färber	pinctrl-names = "default";
136*54c57ae0SAndreas Färber	pinctrl-0 = <&rgmii_pins>;
137*54c57ae0SAndreas Färber	tx_delay = <0x30>;
138*54c57ae0SAndreas Färber	rx_delay = <0x10>;
139*54c57ae0SAndreas Färber};
140*54c57ae0SAndreas Färber
141*54c57ae0SAndreas Färber&i2c0 {
142*54c57ae0SAndreas Färber	status = "okay";
143*54c57ae0SAndreas Färber
144*54c57ae0SAndreas Färber	rk808: pmic@1b {
145*54c57ae0SAndreas Färber		compatible = "rockchip,rk808";
146*54c57ae0SAndreas Färber		reg = <0x1b>;
147*54c57ae0SAndreas Färber		pinctrl-names = "default";
148*54c57ae0SAndreas Färber		pinctrl-0 = <&pmic_int>, <&pmic_sleep>;
149*54c57ae0SAndreas Färber		interrupt-parent = <&gpio0>;
150*54c57ae0SAndreas Färber		interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
151*54c57ae0SAndreas Färber		rockchip,system-power-controller;
152*54c57ae0SAndreas Färber		vcc1-supply = <&vcc_sys>;
153*54c57ae0SAndreas Färber		vcc2-supply = <&vcc_sys>;
154*54c57ae0SAndreas Färber		vcc3-supply = <&vcc_sys>;
155*54c57ae0SAndreas Färber		vcc4-supply = <&vcc_sys>;
156*54c57ae0SAndreas Färber		vcc6-supply = <&vcc_sys>;
157*54c57ae0SAndreas Färber		vcc7-supply = <&vcc_sys>;
158*54c57ae0SAndreas Färber		vcc8-supply = <&vcc_io>;
159*54c57ae0SAndreas Färber		vcc9-supply = <&vcc_sys>;
160*54c57ae0SAndreas Färber		vcc10-supply = <&vcc_sys>;
161*54c57ae0SAndreas Färber		vcc11-supply = <&vcc_sys>;
162*54c57ae0SAndreas Färber		vcc12-supply = <&vcc_io>;
163*54c57ae0SAndreas Färber		clock-output-names = "xin32k", "rk808-clkout2";
164*54c57ae0SAndreas Färber		#clock-cells = <1>;
165*54c57ae0SAndreas Färber
166*54c57ae0SAndreas Färber		regulators {
167*54c57ae0SAndreas Färber			vdd_cpu: DCDC_REG1 {
168*54c57ae0SAndreas Färber				regulator-always-on;
169*54c57ae0SAndreas Färber				regulator-boot-on;
170*54c57ae0SAndreas Färber				regulator-min-microvolt = <700000>;
171*54c57ae0SAndreas Färber				regulator-max-microvolt = <1500000>;
172*54c57ae0SAndreas Färber				regulator-name = "vdd_cpu";
173*54c57ae0SAndreas Färber			};
174*54c57ae0SAndreas Färber
175*54c57ae0SAndreas Färber			vdd_log: DCDC_REG2 {
176*54c57ae0SAndreas Färber				regulator-always-on;
177*54c57ae0SAndreas Färber				regulator-boot-on;
178*54c57ae0SAndreas Färber				regulator-min-microvolt = <700000>;
179*54c57ae0SAndreas Färber				regulator-max-microvolt = <1500000>;
180*54c57ae0SAndreas Färber				regulator-name = "vdd_log";
181*54c57ae0SAndreas Färber			};
182*54c57ae0SAndreas Färber
183*54c57ae0SAndreas Färber			vcc_ddr: DCDC_REG3 {
184*54c57ae0SAndreas Färber				regulator-always-on;
185*54c57ae0SAndreas Färber				regulator-boot-on;
186*54c57ae0SAndreas Färber				regulator-name = "vcc_ddr";
187*54c57ae0SAndreas Färber			};
188*54c57ae0SAndreas Färber
189*54c57ae0SAndreas Färber			vcc_io: DCDC_REG4 {
190*54c57ae0SAndreas Färber				regulator-always-on;
191*54c57ae0SAndreas Färber				regulator-boot-on;
192*54c57ae0SAndreas Färber				regulator-min-microvolt = <3300000>;
193*54c57ae0SAndreas Färber				regulator-max-microvolt = <3300000>;
194*54c57ae0SAndreas Färber				regulator-name = "vcc_io";
195*54c57ae0SAndreas Färber			};
196*54c57ae0SAndreas Färber
197*54c57ae0SAndreas Färber			vcc18_flash: LDO_REG1 {
198*54c57ae0SAndreas Färber				regulator-always-on;
199*54c57ae0SAndreas Färber				regulator-boot-on;
200*54c57ae0SAndreas Färber				regulator-min-microvolt = <1800000>;
201*54c57ae0SAndreas Färber				regulator-max-microvolt = <1800000>;
202*54c57ae0SAndreas Färber				regulator-name = "vcc18_flash";
203*54c57ae0SAndreas Färber			};
204*54c57ae0SAndreas Färber
205*54c57ae0SAndreas Färber			vcc33_lcd: LDO_REG2 {
206*54c57ae0SAndreas Färber				regulator-always-on;
207*54c57ae0SAndreas Färber				regulator-boot-on;
208*54c57ae0SAndreas Färber				regulator-min-microvolt = <3300000>;
209*54c57ae0SAndreas Färber				regulator-max-microvolt = <3300000>;
210*54c57ae0SAndreas Färber				regulator-name = "vcc33_lcd";
211*54c57ae0SAndreas Färber			};
212*54c57ae0SAndreas Färber
213*54c57ae0SAndreas Färber			vdd_10: LDO_REG3 {
214*54c57ae0SAndreas Färber				regulator-always-on;
215*54c57ae0SAndreas Färber				regulator-boot-on;
216*54c57ae0SAndreas Färber				regulator-min-microvolt = <1000000>;
217*54c57ae0SAndreas Färber				regulator-max-microvolt = <1000000>;
218*54c57ae0SAndreas Färber				regulator-name = "vdd_10";
219*54c57ae0SAndreas Färber			};
220*54c57ae0SAndreas Färber
221*54c57ae0SAndreas Färber			vcca_18: LDO_REG4 {
222*54c57ae0SAndreas Färber				regulator-boot-on;
223*54c57ae0SAndreas Färber				regulator-min-microvolt = <1800000>;
224*54c57ae0SAndreas Färber				regulator-max-microvolt = <1800000>;
225*54c57ae0SAndreas Färber				regulator-name = "vcca_18";
226*54c57ae0SAndreas Färber			};
227*54c57ae0SAndreas Färber
228*54c57ae0SAndreas Färber			vccio_sd: LDO_REG5 {
229*54c57ae0SAndreas Färber				regulator-always-on;
230*54c57ae0SAndreas Färber				regulator-boot-on;
231*54c57ae0SAndreas Färber				regulator-min-microvolt = <1800000>;
232*54c57ae0SAndreas Färber				regulator-max-microvolt = <3300000>;
233*54c57ae0SAndreas Färber				regulator-name = "vccio_sd";
234*54c57ae0SAndreas Färber			};
235*54c57ae0SAndreas Färber
236*54c57ae0SAndreas Färber			vdd10_lcd: LDO_REG6 {
237*54c57ae0SAndreas Färber				regulator-always-on;
238*54c57ae0SAndreas Färber				regulator-boot-on;
239*54c57ae0SAndreas Färber				regulator-min-microvolt = <1000000>;
240*54c57ae0SAndreas Färber				regulator-max-microvolt = <1000000>;
241*54c57ae0SAndreas Färber				regulator-name = "vdd10_lcd";
242*54c57ae0SAndreas Färber			};
243*54c57ae0SAndreas Färber
244*54c57ae0SAndreas Färber			vcc_18: LDO_REG7 {
245*54c57ae0SAndreas Färber				regulator-always-on;
246*54c57ae0SAndreas Färber				regulator-boot-on;
247*54c57ae0SAndreas Färber				regulator-min-microvolt = <1800000>;
248*54c57ae0SAndreas Färber				regulator-max-microvolt = <1800000>;
249*54c57ae0SAndreas Färber				regulator-name = "vcc_18";
250*54c57ae0SAndreas Färber			};
251*54c57ae0SAndreas Färber
252*54c57ae0SAndreas Färber			vcc18_lcd: LDO_REG8 {
253*54c57ae0SAndreas Färber				regulator-always-on;
254*54c57ae0SAndreas Färber				regulator-boot-on;
255*54c57ae0SAndreas Färber				regulator-min-microvolt = <1800000>;
256*54c57ae0SAndreas Färber				regulator-max-microvolt = <1800000>;
257*54c57ae0SAndreas Färber				regulator-name = "vcc18_lcd";
258*54c57ae0SAndreas Färber			};
259*54c57ae0SAndreas Färber
260*54c57ae0SAndreas Färber			vcc_sd: SWITCH_REG1 {
261*54c57ae0SAndreas Färber				regulator-always-on;
262*54c57ae0SAndreas Färber				regulator-boot-on;
263*54c57ae0SAndreas Färber				regulator-name = "vcc_sd";
264*54c57ae0SAndreas Färber			};
265*54c57ae0SAndreas Färber
266*54c57ae0SAndreas Färber			vcc_lan: SWITCH_REG2 {
267*54c57ae0SAndreas Färber				regulator-always-on;
268*54c57ae0SAndreas Färber				regulator-boot-on;
269*54c57ae0SAndreas Färber				regulator-name = "vcc_lan";
270*54c57ae0SAndreas Färber			};
271*54c57ae0SAndreas Färber		};
272*54c57ae0SAndreas Färber	};
273*54c57ae0SAndreas Färber};
274*54c57ae0SAndreas Färber
275*54c57ae0SAndreas Färber&pinctrl {
276*54c57ae0SAndreas Färber	ir {
277*54c57ae0SAndreas Färber		ir_int: ir-int {
278*54c57ae0SAndreas Färber			rockchip,pins = <3 30 RK_FUNC_GPIO &pcfg_pull_none>;
279*54c57ae0SAndreas Färber		};
280*54c57ae0SAndreas Färber	};
281*54c57ae0SAndreas Färber
282*54c57ae0SAndreas Färber	keys {
283*54c57ae0SAndreas Färber		pwr_key: pwr-key {
284*54c57ae0SAndreas Färber			rockchip,pins = <0 2 RK_FUNC_GPIO &pcfg_pull_none>;
285*54c57ae0SAndreas Färber		};
286*54c57ae0SAndreas Färber	};
287*54c57ae0SAndreas Färber
288*54c57ae0SAndreas Färber	pmic {
289*54c57ae0SAndreas Färber		pmic_sleep: pmic-sleep {
290*54c57ae0SAndreas Färber			rockchip,pins = <0 0 RK_FUNC_2 &pcfg_pull_none>;
291*54c57ae0SAndreas Färber		};
292*54c57ae0SAndreas Färber
293*54c57ae0SAndreas Färber		pmic_int: pmic-int {
294*54c57ae0SAndreas Färber			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
295*54c57ae0SAndreas Färber		};
296*54c57ae0SAndreas Färber	};
297*54c57ae0SAndreas Färber};
298*54c57ae0SAndreas Färber
299*54c57ae0SAndreas Färber&tsadc {
300*54c57ae0SAndreas Färber	status = "okay";
301*54c57ae0SAndreas Färber	rockchip,hw-tshut-mode = <0>; /* CRU */
302*54c57ae0SAndreas Färber	rockchip,hw-tshut-polarity = <1>; /* high */
303*54c57ae0SAndreas Färber};
304*54c57ae0SAndreas Färber
305*54c57ae0SAndreas Färber&uart2 {
306*54c57ae0SAndreas Färber	status = "okay";
307*54c57ae0SAndreas Färber};
308*54c57ae0SAndreas Färber
309*54c57ae0SAndreas Färber&usb_host0_ehci {
310*54c57ae0SAndreas Färber	status = "okay";
311*54c57ae0SAndreas Färber};
312*54c57ae0SAndreas Färber
313*54c57ae0SAndreas Färber&usb_otg {
314*54c57ae0SAndreas Färber	status = "okay";
315*54c57ae0SAndreas Färber};
316*54c57ae0SAndreas Färber
317*54c57ae0SAndreas Färber&wdt {
318*54c57ae0SAndreas Färber	status = "okay";
319*54c57ae0SAndreas Färber};
320