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