xref: /openbmc/u-boot/arch/arm/dts/rk3288-veyron-mickey.dts (revision 2d221489df021393654805536be7effcb9d39702)
1*e70408c0SSimon Glass/*
2*e70408c0SSimon Glass * Google Veyron Mickey Rev 0 board device tree source
3*e70408c0SSimon Glass *
4*e70408c0SSimon Glass * Copyright 2015 Google, Inc
5*e70408c0SSimon Glass *
6*e70408c0SSimon Glass * This file is dual-licensed: you can use it either under the terms
7*e70408c0SSimon Glass * of the GPL or the X11 license, at your option. Note that this dual
8*e70408c0SSimon Glass * licensing only applies to this file, and not this project as a
9*e70408c0SSimon Glass * whole.
10*e70408c0SSimon Glass *
11*e70408c0SSimon Glass *  a) This file is free software; you can redistribute it and/or
12*e70408c0SSimon Glass *     modify it under the terms of the GNU General Public License as
13*e70408c0SSimon Glass *     published by the Free Software Foundation; either version 2 of the
14*e70408c0SSimon Glass *     License, or (at your option) any later version.
15*e70408c0SSimon Glass *
16*e70408c0SSimon Glass *     This file is distributed in the hope that it will be useful,
17*e70408c0SSimon Glass *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18*e70408c0SSimon Glass *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19*e70408c0SSimon Glass *     GNU General Public License for more details.
20*e70408c0SSimon Glass *
21*e70408c0SSimon Glass *  Or, alternatively,
22*e70408c0SSimon Glass *
23*e70408c0SSimon Glass *  b) Permission is hereby granted, free of charge, to any person
24*e70408c0SSimon Glass *     obtaining a copy of this software and associated documentation
25*e70408c0SSimon Glass *     files (the "Software"), to deal in the Software without
26*e70408c0SSimon Glass *     restriction, including without limitation the rights to use,
27*e70408c0SSimon Glass *     copy, modify, merge, publish, distribute, sublicense, and/or
28*e70408c0SSimon Glass *     sell copies of the Software, and to permit persons to whom the
29*e70408c0SSimon Glass *     Software is furnished to do so, subject to the following
30*e70408c0SSimon Glass *     conditions:
31*e70408c0SSimon Glass *
32*e70408c0SSimon Glass *     The above copyright notice and this permission notice shall be
33*e70408c0SSimon Glass *     included in all copies or substantial portions of the Software.
34*e70408c0SSimon Glass *
35*e70408c0SSimon Glass *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36*e70408c0SSimon Glass *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37*e70408c0SSimon Glass *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38*e70408c0SSimon Glass *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39*e70408c0SSimon Glass *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40*e70408c0SSimon Glass *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41*e70408c0SSimon Glass *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42*e70408c0SSimon Glass *     OTHER DEALINGS IN THE SOFTWARE.
43*e70408c0SSimon Glass */
44*e70408c0SSimon Glass
45*e70408c0SSimon Glass/dts-v1/;
46*e70408c0SSimon Glass#include "rk3288-veyron-chromebook.dtsi"
47*e70408c0SSimon Glass
48*e70408c0SSimon Glass/ {
49*e70408c0SSimon Glass	model = "Google Mickey";
50*e70408c0SSimon Glass	compatible = "google,veyron-mickey-rev8", "google,veyron-mickey-rev7",
51*e70408c0SSimon Glass		     "google,veyron-mickey-rev6", "google,veyron-mickey-rev5",
52*e70408c0SSimon Glass		     "google,veyron-mickey-rev4", "google,veyron-mickey-rev3",
53*e70408c0SSimon Glass		     "google,veyron-mickey-rev2", "google,veyron-mickey-rev1",
54*e70408c0SSimon Glass		     "google,veyron-mickey-rev0", "google,veyron-mickey",
55*e70408c0SSimon Glass		     "google,veyron", "rockchip,rk3288";
56*e70408c0SSimon Glass
57*e70408c0SSimon Glass	vcc_5v: vcc-5v {
58*e70408c0SSimon Glass		vin-supply = <&vcc33_sys>;
59*e70408c0SSimon Glass	};
60*e70408c0SSimon Glass
61*e70408c0SSimon Glass	vcc33_io: vcc33_io {
62*e70408c0SSimon Glass		compatible = "regulator-fixed";
63*e70408c0SSimon Glass		regulator-name = "vcc33_io";
64*e70408c0SSimon Glass		regulator-always-on;
65*e70408c0SSimon Glass		regulator-boot-on;
66*e70408c0SSimon Glass		vin-supply = <&vcc33_sys>;
67*e70408c0SSimon Glass	};
68*e70408c0SSimon Glass};
69*e70408c0SSimon Glass
70*e70408c0SSimon Glass&cpu_thermal {
71*e70408c0SSimon Glass	/delete-node/ trips;
72*e70408c0SSimon Glass	/delete-node/ cooling-maps;
73*e70408c0SSimon Glass
74*e70408c0SSimon Glass	trips {
75*e70408c0SSimon Glass		cpu_alert_almost_warm: cpu_alert_almost_warm {
76*e70408c0SSimon Glass			temperature = <63000>; /* millicelsius */
77*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
78*e70408c0SSimon Glass			type = "passive";
79*e70408c0SSimon Glass		};
80*e70408c0SSimon Glass		cpu_alert_warm: cpu_alert_warm {
81*e70408c0SSimon Glass			temperature = <65000>; /* millicelsius */
82*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
83*e70408c0SSimon Glass			type = "passive";
84*e70408c0SSimon Glass		};
85*e70408c0SSimon Glass		cpu_alert_almost_hot: cpu_alert_almost_hot {
86*e70408c0SSimon Glass			temperature = <80000>; /* millicelsius */
87*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
88*e70408c0SSimon Glass			type = "passive";
89*e70408c0SSimon Glass		};
90*e70408c0SSimon Glass		cpu_alert_hot: cpu_alert_hot {
91*e70408c0SSimon Glass			temperature = <82000>; /* millicelsius */
92*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
93*e70408c0SSimon Glass			type = "passive";
94*e70408c0SSimon Glass		};
95*e70408c0SSimon Glass		cpu_alert_hotter: cpu_alert_hotter {
96*e70408c0SSimon Glass			temperature = <84000>; /* millicelsius */
97*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
98*e70408c0SSimon Glass			type = "passive";
99*e70408c0SSimon Glass		};
100*e70408c0SSimon Glass		cpu_alert_very_hot: cpu_alert_very_hot {
101*e70408c0SSimon Glass			temperature = <85000>; /* millicelsius */
102*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
103*e70408c0SSimon Glass			type = "passive";
104*e70408c0SSimon Glass		};
105*e70408c0SSimon Glass		cpu_crit: cpu_crit {
106*e70408c0SSimon Glass			temperature = <90000>; /* millicelsius */
107*e70408c0SSimon Glass			hysteresis = <2000>; /* millicelsius */
108*e70408c0SSimon Glass			type = "critical";
109*e70408c0SSimon Glass		};
110*e70408c0SSimon Glass	};
111*e70408c0SSimon Glass
112*e70408c0SSimon Glass	cooling-maps {
113*e70408c0SSimon Glass		/*
114*e70408c0SSimon Glass		 * After 1st level, throttle the CPU down to as low as 1.4 GHz
115*e70408c0SSimon Glass		 * and don't let the GPU go faster than 400 MHz.  Note that we
116*e70408c0SSimon Glass		 * won't throttle the GPU lower than 400 MHz due to CPU
117*e70408c0SSimon Glass		 * heat--we'll let the GPU do the rest itself.
118*e70408c0SSimon Glass		 */
119*e70408c0SSimon Glass		cpu_warm_limit_cpu {
120*e70408c0SSimon Glass			trip = <&cpu_alert_warm>;
121*e70408c0SSimon Glass			cooling-device =
122*e70408c0SSimon Glass				<&cpu0 THERMAL_NO_LIMIT 4>;
123*e70408c0SSimon Glass		};
124*e70408c0SSimon Glass
125*e70408c0SSimon Glass		/*
126*e70408c0SSimon Glass		 * Add some discrete steps to help throttling system deal
127*e70408c0SSimon Glass		 * with the fact that there are two passive cooling devices:
128*e70408c0SSimon Glass		 * the CPU and the GPU.
129*e70408c0SSimon Glass		 *
130*e70408c0SSimon Glass		 * - 1.2 GHz - 1.0 GHz (almost hot)
131*e70408c0SSimon Glass		 * - 800 MHz           (hot)
132*e70408c0SSimon Glass		 * - 800 MHz - 696 MHz (hotter)
133*e70408c0SSimon Glass		 * - 696 MHz - min     (very hot)
134*e70408c0SSimon Glass		 *
135*e70408c0SSimon Glass		 * Note:
136*e70408c0SSimon Glass		 * - 800 MHz appears to be a "sweet spot" for me.  I can run
137*e70408c0SSimon Glass		 *   some pretty serious workload here and be happy.
138*e70408c0SSimon Glass		 * - After 696 MHz we stop lowering voltage, so throttling
139*e70408c0SSimon Glass		 *   past there is less effective.
140*e70408c0SSimon Glass		 */
141*e70408c0SSimon Glass		cpu_almost_hot_limit_cpu {
142*e70408c0SSimon Glass			trip = <&cpu_alert_almost_hot>;
143*e70408c0SSimon Glass			cooling-device =
144*e70408c0SSimon Glass				<&cpu0 5 6>;
145*e70408c0SSimon Glass		};
146*e70408c0SSimon Glass		cpu_hot_limit_cpu {
147*e70408c0SSimon Glass			trip = <&cpu_alert_hot>;
148*e70408c0SSimon Glass			cooling-device =
149*e70408c0SSimon Glass				<&cpu0 7 7>;
150*e70408c0SSimon Glass		};
151*e70408c0SSimon Glass		cpu_hotter_limit_cpu {
152*e70408c0SSimon Glass			trip = <&cpu_alert_hotter>;
153*e70408c0SSimon Glass			cooling-device =
154*e70408c0SSimon Glass				<&cpu0 7 8>;
155*e70408c0SSimon Glass		};
156*e70408c0SSimon Glass		cpu_very_hot_limit_cpu {
157*e70408c0SSimon Glass			trip = <&cpu_alert_very_hot>;
158*e70408c0SSimon Glass			cooling-device =
159*e70408c0SSimon Glass				<&cpu0 8 THERMAL_NO_LIMIT>;
160*e70408c0SSimon Glass		};
161*e70408c0SSimon Glass	};
162*e70408c0SSimon Glass};
163*e70408c0SSimon Glass
164*e70408c0SSimon Glass&dmc {
165*e70408c0SSimon Glass	rockchip,pctl-timing = <0x215 0xc8 0x0 0x35 0x26 0x2 0x70 0x2000d
166*e70408c0SSimon Glass		0x6 0x0 0x8 0x4 0x17 0x24 0xd 0x6
167*e70408c0SSimon Glass		0x4 0x8 0x4 0x76 0x4 0x0 0x30 0x0
168*e70408c0SSimon Glass		0x1 0x2 0x2 0x4 0x0 0x0 0xc0 0x4
169*e70408c0SSimon Glass		0x8 0x1f4>;
170*e70408c0SSimon Glass	rockchip,phy-timing = <0x48d7dd93 0x187008d8 0x121076
171*e70408c0SSimon Glass		0x0 0xc3 0x6 0x2>;
172*e70408c0SSimon Glass	rockchip,sdram-params = <0x20d266a4 0x5b6 2 533000000 6 9 1>;
173*e70408c0SSimon Glass};
174*e70408c0SSimon Glass
175*e70408c0SSimon Glass&emmc {
176*e70408c0SSimon Glass	/delete-property/mmc-hs200-1_8v;
177*e70408c0SSimon Glass};
178*e70408c0SSimon Glass
179*e70408c0SSimon Glass&i2c2 {
180*e70408c0SSimon Glass	status = "disabled";
181*e70408c0SSimon Glass};
182*e70408c0SSimon Glass
183*e70408c0SSimon Glass&i2c4 {
184*e70408c0SSimon Glass	status = "disabled";
185*e70408c0SSimon Glass};
186*e70408c0SSimon Glass
187*e70408c0SSimon Glass&i2s {
188*e70408c0SSimon Glass	status = "okay";
189*e70408c0SSimon Glass	clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
190*e70408c0SSimon Glass	clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
191*e70408c0SSimon Glass};
192*e70408c0SSimon Glass
193*e70408c0SSimon Glass&rk808 {
194*e70408c0SSimon Glass	pinctrl-names = "default";
195*e70408c0SSimon Glass	pinctrl-0 = <&pmic_int_l &dvs_1 &dvs_2>;
196*e70408c0SSimon Glass	dvs-gpios = <&gpio7 12 GPIO_ACTIVE_HIGH>,
197*e70408c0SSimon Glass		    <&gpio7 15 GPIO_ACTIVE_HIGH>;
198*e70408c0SSimon Glass
199*e70408c0SSimon Glass	/delete-property/ vcc6-supply;
200*e70408c0SSimon Glass	/delete-property/ vcc12-supply;
201*e70408c0SSimon Glass
202*e70408c0SSimon Glass	vcc11-supply = <&vcc33_sys>;
203*e70408c0SSimon Glass
204*e70408c0SSimon Glass	regulators {
205*e70408c0SSimon Glass		/* vcc33_io is sourced directly from vcc33_sys */
206*e70408c0SSimon Glass		/delete-node/ LDO_REG1;
207*e70408c0SSimon Glass		/delete-node/ LDO_REG7;
208*e70408c0SSimon Glass
209*e70408c0SSimon Glass		/* This is not a pwren anymore, but the real power supply */
210*e70408c0SSimon Glass		vdd10_lcd: LDO_REG7 {
211*e70408c0SSimon Glass			regulator-always-on;
212*e70408c0SSimon Glass			regulator-boot-on;
213*e70408c0SSimon Glass			regulator-min-microvolt = <1000000>;
214*e70408c0SSimon Glass			regulator-max-microvolt = <1000000>;
215*e70408c0SSimon Glass			regulator-name = "vdd10_lcd";
216*e70408c0SSimon Glass			regulator-suspend-mem-disabled;
217*e70408c0SSimon Glass		};
218*e70408c0SSimon Glass
219*e70408c0SSimon Glass		vcc18_lcd: LDO_REG8 {
220*e70408c0SSimon Glass			regulator-always-on;
221*e70408c0SSimon Glass			regulator-boot-on;
222*e70408c0SSimon Glass			regulator-min-microvolt = <1800000>;
223*e70408c0SSimon Glass			regulator-max-microvolt = <1800000>;
224*e70408c0SSimon Glass			regulator-name = "vcc18_lcd";
225*e70408c0SSimon Glass			regulator-suspend-mem-disabled;
226*e70408c0SSimon Glass		};
227*e70408c0SSimon Glass	};
228*e70408c0SSimon Glass};
229*e70408c0SSimon Glass
230*e70408c0SSimon Glass&pinctrl {
231*e70408c0SSimon Glass	hdmi {
232*e70408c0SSimon Glass		power_hdmi_on: power-hdmi-on {
233*e70408c0SSimon Glass			rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
234*e70408c0SSimon Glass		};
235*e70408c0SSimon Glass	};
236*e70408c0SSimon Glass
237*e70408c0SSimon Glass	pmic {
238*e70408c0SSimon Glass		dvs_1: dvs-1 {
239*e70408c0SSimon Glass			rockchip,pins = <7 12 RK_FUNC_GPIO &pcfg_pull_down>;
240*e70408c0SSimon Glass		};
241*e70408c0SSimon Glass
242*e70408c0SSimon Glass		dvs_2: dvs-2 {
243*e70408c0SSimon Glass			rockchip,pins = <7 15 RK_FUNC_GPIO &pcfg_pull_down>;
244*e70408c0SSimon Glass		};
245*e70408c0SSimon Glass	};
246*e70408c0SSimon Glass};
247*e70408c0SSimon Glass
248*e70408c0SSimon Glass&sdmmc {
249*e70408c0SSimon Glass	status = "disabled";
250*e70408c0SSimon Glass};
251*e70408c0SSimon Glass
252*e70408c0SSimon Glass&sdio0 {
253*e70408c0SSimon Glass	status = "disabled";
254*e70408c0SSimon Glass};
255*e70408c0SSimon Glass
256*e70408c0SSimon Glass&sdmmc {
257*e70408c0SSimon Glass	status = "disabled";
258*e70408c0SSimon Glass};
259*e70408c0SSimon Glass
260*e70408c0SSimon Glass&spi0 {
261*e70408c0SSimon Glass	status = "disabled";
262*e70408c0SSimon Glass};
263*e70408c0SSimon Glass
264*e70408c0SSimon Glass&usb_host0_ehci {
265*e70408c0SSimon Glass	status = "disabled";
266*e70408c0SSimon Glass};
267*e70408c0SSimon Glass
268*e70408c0SSimon Glass&usb_host1 {
269*e70408c0SSimon Glass	status = "disabled";
270*e70408c0SSimon Glass};
271*e70408c0SSimon Glass
272*e70408c0SSimon Glass&vcc50_hdmi {
273*e70408c0SSimon Glass	enable-active-high;
274*e70408c0SSimon Glass	gpio = <&gpio7 11 GPIO_ACTIVE_HIGH>;
275*e70408c0SSimon Glass	pinctrl-names = "default";
276*e70408c0SSimon Glass	pinctrl-0 = <&power_hdmi_on>;
277*e70408c0SSimon Glass};
278