]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
ARM: dts: exynos: Add support for Hardkernel's Odroid HC1 board
[mirror_ubuntu-bionic-kernel.git] / arch / arm / boot / dts / exynos5422-odroidxu3-common.dtsi
1 /*
2 * Hardkernel Odroid XU3 board device tree source
3 *
4 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 * Copyright (c) 2014 Collabora Ltd.
7 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
8 * Anand Moon <linux.amoon@gmail.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15 #include <dt-bindings/input/input.h>
16 #include "exynos5422-odroid-core.dtsi"
17
18 / {
19 gpio_keys {
20 compatible = "gpio-keys";
21 pinctrl-names = "default";
22 pinctrl-0 = <&power_key>;
23
24 power_key {
25 /*
26 * The power button (SW2) is connected to the PWRON
27 * pin (active high) of the S2MPS11 PMIC, which acts
28 * as a 16ms debouce filter and signal inverter with
29 * output on ONOB pin (active low). ONOB PMIC pin is
30 * then connected to XEINT3 SoC pin.
31 */
32 gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
33 linux,code = <KEY_POWER>;
34 label = "power key";
35 debounce-interval = <0>;
36 wakeup-source;
37 };
38 };
39
40 emmc_pwrseq: pwrseq {
41 pinctrl-0 = <&emmc_nrst_pin>;
42 pinctrl-names = "default";
43 compatible = "mmc-pwrseq-emmc";
44 reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
45 };
46
47 fan0: pwm-fan {
48 compatible = "pwm-fan";
49 pwms = <&pwm 0 20972 0>;
50 cooling-min-state = <0>;
51 cooling-max-state = <3>;
52 #cooling-cells = <2>;
53 cooling-levels = <0 130 170 230>;
54 };
55
56 thermal-zones {
57 cpu0_thermal: cpu0-thermal {
58 thermal-sensors = <&tmu_cpu0 0>;
59 polling-delay-passive = <250>;
60 polling-delay = <0>;
61 trips {
62 cpu0_alert0: cpu-alert-0 {
63 temperature = <50000>; /* millicelsius */
64 hysteresis = <5000>; /* millicelsius */
65 type = "active";
66 };
67 cpu0_alert1: cpu-alert-1 {
68 temperature = <60000>; /* millicelsius */
69 hysteresis = <5000>; /* millicelsius */
70 type = "active";
71 };
72 cpu0_alert2: cpu-alert-2 {
73 temperature = <70000>; /* millicelsius */
74 hysteresis = <5000>; /* millicelsius */
75 type = "active";
76 };
77 cpu0_crit0: cpu-crit-0 {
78 temperature = <120000>; /* millicelsius */
79 hysteresis = <0>; /* millicelsius */
80 type = "critical";
81 };
82 /*
83 * Exynos542x supports only 4 trip-points
84 * so for these polling mode is required.
85 * Start polling at temperature level of last
86 * interrupt-driven trip: cpu0_alert2
87 */
88 cpu0_alert3: cpu-alert-3 {
89 temperature = <70000>; /* millicelsius */
90 hysteresis = <10000>; /* millicelsius */
91 type = "passive";
92 };
93 cpu0_alert4: cpu-alert-4 {
94 temperature = <85000>; /* millicelsius */
95 hysteresis = <10000>; /* millicelsius */
96 type = "passive";
97 };
98 };
99 cooling-maps {
100 map0 {
101 trip = <&cpu0_alert0>;
102 cooling-device = <&fan0 0 1>;
103 };
104 map1 {
105 trip = <&cpu0_alert1>;
106 cooling-device = <&fan0 1 2>;
107 };
108 map2 {
109 trip = <&cpu0_alert2>;
110 cooling-device = <&fan0 2 3>;
111 };
112 /*
113 * When reaching cpu0_alert3, reduce CPU
114 * by 2 steps. On Exynos5422/5800 that would
115 * be: 1600 MHz and 1100 MHz.
116 */
117 map3 {
118 trip = <&cpu0_alert3>;
119 cooling-device = <&cpu0 0 2>;
120 };
121 map4 {
122 trip = <&cpu0_alert3>;
123 cooling-device = <&cpu4 0 2>;
124 };
125 /*
126 * When reaching cpu0_alert4, reduce CPU
127 * further, down to 600 MHz (12 steps for big,
128 * 7 steps for LITTLE).
129 */
130 map5 {
131 trip = <&cpu0_alert4>;
132 cooling-device = <&cpu0 3 7>;
133 };
134 map6 {
135 trip = <&cpu0_alert4>;
136 cooling-device = <&cpu4 3 12>;
137 };
138 };
139 };
140 cpu1_thermal: cpu1-thermal {
141 thermal-sensors = <&tmu_cpu1 0>;
142 polling-delay-passive = <250>;
143 polling-delay = <0>;
144 trips {
145 cpu1_alert0: cpu-alert-0 {
146 temperature = <50000>;
147 hysteresis = <5000>;
148 type = "active";
149 };
150 cpu1_alert1: cpu-alert-1 {
151 temperature = <60000>;
152 hysteresis = <5000>;
153 type = "active";
154 };
155 cpu1_alert2: cpu-alert-2 {
156 temperature = <70000>;
157 hysteresis = <5000>;
158 type = "active";
159 };
160 cpu1_crit0: cpu-crit-0 {
161 temperature = <120000>;
162 hysteresis = <0>;
163 type = "critical";
164 };
165 cpu1_alert3: cpu-alert-3 {
166 temperature = <70000>;
167 hysteresis = <10000>;
168 type = "passive";
169 };
170 cpu1_alert4: cpu-alert-4 {
171 temperature = <85000>;
172 hysteresis = <10000>;
173 type = "passive";
174 };
175 };
176 cooling-maps {
177 map0 {
178 trip = <&cpu1_alert0>;
179 cooling-device = <&fan0 0 1>;
180 };
181 map1 {
182 trip = <&cpu1_alert1>;
183 cooling-device = <&fan0 1 2>;
184 };
185 map2 {
186 trip = <&cpu1_alert2>;
187 cooling-device = <&fan0 2 3>;
188 };
189 map3 {
190 trip = <&cpu1_alert3>;
191 cooling-device = <&cpu0 0 2>;
192 };
193 map4 {
194 trip = <&cpu1_alert3>;
195 cooling-device = <&cpu4 0 2>;
196 };
197 map5 {
198 trip = <&cpu1_alert4>;
199 cooling-device = <&cpu0 3 7>;
200 };
201 map6 {
202 trip = <&cpu1_alert4>;
203 cooling-device = <&cpu4 3 12>;
204 };
205 };
206 };
207 cpu2_thermal: cpu2-thermal {
208 thermal-sensors = <&tmu_cpu2 0>;
209 polling-delay-passive = <250>;
210 polling-delay = <0>;
211 trips {
212 cpu2_alert0: cpu-alert-0 {
213 temperature = <50000>;
214 hysteresis = <5000>;
215 type = "active";
216 };
217 cpu2_alert1: cpu-alert-1 {
218 temperature = <60000>;
219 hysteresis = <5000>;
220 type = "active";
221 };
222 cpu2_alert2: cpu-alert-2 {
223 temperature = <70000>;
224 hysteresis = <5000>;
225 type = "active";
226 };
227 cpu2_crit0: cpu-crit-0 {
228 temperature = <120000>;
229 hysteresis = <0>;
230 type = "critical";
231 };
232 cpu2_alert3: cpu-alert-3 {
233 temperature = <70000>;
234 hysteresis = <10000>;
235 type = "passive";
236 };
237 cpu2_alert4: cpu-alert-4 {
238 temperature = <85000>;
239 hysteresis = <10000>;
240 type = "passive";
241 };
242 };
243 cooling-maps {
244 map0 {
245 trip = <&cpu2_alert0>;
246 cooling-device = <&fan0 0 1>;
247 };
248 map1 {
249 trip = <&cpu2_alert1>;
250 cooling-device = <&fan0 1 2>;
251 };
252 map2 {
253 trip = <&cpu2_alert2>;
254 cooling-device = <&fan0 2 3>;
255 };
256 map3 {
257 trip = <&cpu2_alert3>;
258 cooling-device = <&cpu0 0 2>;
259 };
260 map4 {
261 trip = <&cpu2_alert3>;
262 cooling-device = <&cpu4 0 2>;
263 };
264 map5 {
265 trip = <&cpu2_alert4>;
266 cooling-device = <&cpu0 3 7>;
267 };
268 map6 {
269 trip = <&cpu2_alert4>;
270 cooling-device = <&cpu4 3 12>;
271 };
272 };
273 };
274 cpu3_thermal: cpu3-thermal {
275 thermal-sensors = <&tmu_cpu3 0>;
276 polling-delay-passive = <250>;
277 polling-delay = <0>;
278 trips {
279 cpu3_alert0: cpu-alert-0 {
280 temperature = <50000>;
281 hysteresis = <5000>;
282 type = "active";
283 };
284 cpu3_alert1: cpu-alert-1 {
285 temperature = <60000>;
286 hysteresis = <5000>;
287 type = "active";
288 };
289 cpu3_alert2: cpu-alert-2 {
290 temperature = <70000>;
291 hysteresis = <5000>;
292 type = "active";
293 };
294 cpu3_crit0: cpu-crit-0 {
295 temperature = <120000>;
296 hysteresis = <0>;
297 type = "critical";
298 };
299 cpu3_alert3: cpu-alert-3 {
300 temperature = <70000>;
301 hysteresis = <10000>;
302 type = "passive";
303 };
304 cpu3_alert4: cpu-alert-4 {
305 temperature = <85000>;
306 hysteresis = <10000>;
307 type = "passive";
308 };
309 };
310 cooling-maps {
311 map0 {
312 trip = <&cpu3_alert0>;
313 cooling-device = <&fan0 0 1>;
314 };
315 map1 {
316 trip = <&cpu3_alert1>;
317 cooling-device = <&fan0 1 2>;
318 };
319 map2 {
320 trip = <&cpu3_alert2>;
321 cooling-device = <&fan0 2 3>;
322 };
323 map3 {
324 trip = <&cpu3_alert3>;
325 cooling-device = <&cpu0 0 2>;
326 };
327 map4 {
328 trip = <&cpu3_alert3>;
329 cooling-device = <&cpu4 0 2>;
330 };
331 map5 {
332 trip = <&cpu3_alert4>;
333 cooling-device = <&cpu0 3 7>;
334 };
335 map6 {
336 trip = <&cpu3_alert4>;
337 cooling-device = <&cpu4 3 12>;
338 };
339 };
340 };
341 };
342 };
343
344 &adc {
345 vdd-supply = <&ldo4_reg>;
346 status = "okay";
347 };
348
349 &hdmi {
350 status = "okay";
351 ddc = <&i2c_2>;
352 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
353 pinctrl-names = "default";
354 pinctrl-0 = <&hdmi_hpd_irq>;
355
356 vdd_osc-supply = <&ldo7_reg>;
357 vdd_pll-supply = <&ldo6_reg>;
358 vdd-supply = <&ldo6_reg>;
359 };
360
361 &hdmicec {
362 status = "okay";
363 needs-hpd;
364 };
365
366 &i2c_2 {
367 samsung,i2c-sda-delay = <100>;
368 samsung,i2c-max-bus-freq = <66000>;
369 /* used by HDMI DDC */
370 status = "okay";
371 };
372
373 &mixer {
374 status = "okay";
375 };
376
377 &mmc_0 {
378 status = "okay";
379 mmc-pwrseq = <&emmc_pwrseq>;
380 card-detect-delay = <200>;
381 samsung,dw-mshc-ciu-div = <3>;
382 samsung,dw-mshc-sdr-timing = <0 4>;
383 samsung,dw-mshc-ddr-timing = <0 2>;
384 samsung,dw-mshc-hs400-timing = <0 2>;
385 samsung,read-strobe-delay = <90>;
386 pinctrl-names = "default";
387 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
388 bus-width = <8>;
389 cap-mmc-highspeed;
390 mmc-hs200-1_8v;
391 mmc-hs400-1_8v;
392 vmmc-supply = <&ldo18_reg>;
393 vqmmc-supply = <&ldo3_reg>;
394 };
395
396 &pinctrl_0 {
397 power_key: power-key {
398 samsung,pins = "gpx0-3";
399 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
400 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
401 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
402 };
403
404 hdmi_hpd_irq: hdmi-hpd-irq {
405 samsung,pins = "gpx3-7";
406 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
407 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
408 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
409 };
410 };
411
412 &pinctrl_1 {
413 emmc_nrst_pin: emmc-nrst {
414 samsung,pins = "gpd1-0";
415 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
416 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
417 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
418 };
419 };