Merge branch 'fix/intel' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie...
[sfrench/cifs-2.6.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 };