blob: 79d983036560d7ee52d865bd5580acb59c85b5d3 [file] [log] [blame]
Tomasz Figad105f0b2012-09-21 10:50:16 +09001/*
2 * Samsung's Exynos4210 based Trats board device tree source
3 *
4 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
5 * http://www.samsung.com
6 *
7 * Device tree source file for Samsung's Trats board which is based on
8 * Samsung's Exynos4210 SoC.
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/dts-v1/;
Padmavathi Venna37992792013-06-18 00:02:08 +090016#include "exynos4210.dtsi"
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090017#include <dt-bindings/gpio/gpio.h>
Tomasz Figad105f0b2012-09-21 10:50:16 +090018
19/ {
20 model = "Samsung Trats based on Exynos4210";
Sachin Kamat8bdb31b2014-03-21 02:17:22 +090021 compatible = "samsung,trats", "samsung,exynos4210", "samsung,exynos4";
Tomasz Figad105f0b2012-09-21 10:50:16 +090022
23 memory {
Tomasz Figa59cf19a2012-10-17 18:10:34 +090024 reg = <0x40000000 0x10000000
25 0x50000000 0x10000000
26 0x60000000 0x10000000
27 0x70000000 0x10000000>;
Tomasz Figad105f0b2012-09-21 10:50:16 +090028 };
29
30 chosen {
31 bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
Tomasz Figa62d38092015-01-23 14:47:42 +010032 stdout-path = &serial_2;
Tomasz Figad105f0b2012-09-21 10:50:16 +090033 };
34
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090035 regulators {
36 compatible = "simple-bus";
37
38 vemmc_reg: regulator-0 {
39 compatible = "regulator-fixed";
40 regulator-name = "VMEM_VDD_2.8V";
41 regulator-min-microvolt = <2800000>;
42 regulator-max-microvolt = <2800000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090043 gpio = <&gpk0 2 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090044 enable-active-high;
45 };
46
47 tsp_reg: regulator-1 {
48 compatible = "regulator-fixed";
49 regulator-name = "TSP_FIXED_VOLTAGES";
50 regulator-min-microvolt = <2800000>;
51 regulator-max-microvolt = <2800000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090052 gpio = <&gpl0 3 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090053 enable-active-high;
54 };
55
56 cam_af_28v_reg: regulator-2 {
57 compatible = "regulator-fixed";
58 regulator-name = "8M_AF_2.8V_EN";
59 regulator-min-microvolt = <2800000>;
60 regulator-max-microvolt = <2800000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090061 gpio = <&gpk1 1 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090062 enable-active-high;
63 };
64
65 cam_io_en_reg: regulator-3 {
66 compatible = "regulator-fixed";
67 regulator-name = "CAM_IO_EN";
68 regulator-min-microvolt = <2800000>;
69 regulator-max-microvolt = <2800000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090070 gpio = <&gpe2 1 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090071 enable-active-high;
72 };
73
74 cam_io_12v_reg: regulator-4 {
75 compatible = "regulator-fixed";
76 regulator-name = "8M_1.2V_EN";
77 regulator-min-microvolt = <1200000>;
78 regulator-max-microvolt = <1200000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090079 gpio = <&gpe2 5 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090080 enable-active-high;
81 };
82
83 vt_core_15v_reg: regulator-5 {
84 compatible = "regulator-fixed";
85 regulator-name = "VT_CORE_1.5V";
86 regulator-min-microvolt = <1500000>;
87 regulator-max-microvolt = <1500000>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090088 gpio = <&gpe2 2 GPIO_ACTIVE_HIGH>;
Andrzej Hajdab75e2e32013-08-06 02:49:45 +090089 enable-active-high;
90 };
Tomasz Figad105f0b2012-09-21 10:50:16 +090091 };
92
Tomasz Figa9eb61022012-11-20 16:26:17 +090093 gpio-keys {
94 compatible = "gpio-keys";
95
96 vol-down-key {
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +090097 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
Tomasz Figa9eb61022012-11-20 16:26:17 +090098 linux,code = <114>;
99 label = "volume down";
100 debounce-interval = <10>;
101 };
102
103 vol-up-key {
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +0900104 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
Tomasz Figa9eb61022012-11-20 16:26:17 +0900105 linux,code = <115>;
106 label = "volume up";
107 debounce-interval = <10>;
108 };
109
110 power-key {
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +0900111 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
Tomasz Figa9eb61022012-11-20 16:26:17 +0900112 linux,code = <116>;
113 label = "power";
114 debounce-interval = <10>;
Sudeep Holla36a02822016-01-28 15:59:58 +0000115 wakeup-source;
Tomasz Figa9eb61022012-11-20 16:26:17 +0900116 };
117
118 ok-key {
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +0900119 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
Tomasz Figa9eb61022012-11-20 16:26:17 +0900120 linux,code = <352>;
121 label = "ok";
122 debounce-interval = <10>;
123 };
124 };
125
Thomas Abraham8b6076d2013-03-09 17:19:22 +0900126 fixed-rate-clocks {
127 xxti {
128 compatible = "samsung,clock-xxti";
129 clock-frequency = <0>;
130 };
131
132 xusbxti {
133 compatible = "samsung,clock-xusbxti";
134 clock-frequency = <24000000>;
135 };
136 };
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900137
Lukasz Majewskibf4a0be2015-01-30 08:26:02 +0900138 thermal-zones {
139 cpu_thermal: cpu-thermal {
140 cooling-maps {
141 map0 {
142 /* Corresponds to 800MHz at freq_table */
143 cooling-device = <&cpu0 2 2>;
144 };
145 map1 {
146 /* Corresponds to 200MHz at freq_table */
147 cooling-device = <&cpu0 4 4>;
148 };
149 };
150 };
151 };
152
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900153 camera {
154 pinctrl-names = "default";
155 pinctrl-0 = <>;
156 status = "okay";
157
158 fimc_0: fimc@11800000 {
159 status = "okay";
Sylwester Nawrocki0357a442014-11-22 23:13:03 +0900160 assigned-clocks = <&clock CLK_MOUT_FIMC0>,
161 <&clock CLK_SCLK_FIMC0>;
162 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
163 assigned-clock-rates = <0>, <160000000>;
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900164 };
165
166 fimc_1: fimc@11810000 {
167 status = "okay";
Sylwester Nawrocki0357a442014-11-22 23:13:03 +0900168 assigned-clocks = <&clock CLK_MOUT_FIMC1>,
169 <&clock CLK_SCLK_FIMC1>;
170 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
171 assigned-clock-rates = <0>, <160000000>;
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900172 };
173
174 fimc_2: fimc@11820000 {
175 status = "okay";
Sylwester Nawrocki0357a442014-11-22 23:13:03 +0900176 assigned-clocks = <&clock CLK_MOUT_FIMC2>,
177 <&clock CLK_SCLK_FIMC2>;
178 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
179 assigned-clock-rates = <0>, <160000000>;
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900180 };
181
182 fimc_3: fimc@11830000 {
183 status = "okay";
Sylwester Nawrocki0357a442014-11-22 23:13:03 +0900184 assigned-clocks = <&clock CLK_MOUT_FIMC3>,
185 <&clock CLK_SCLK_FIMC3>;
186 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
187 assigned-clock-rates = <0>, <160000000>;
Sylwester Nawrocki39a11312013-08-06 02:49:45 +0900188 };
189 };
Tomasz Figad105f0b2012-09-21 10:50:16 +0900190};
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200191
Thomas Abraham300bde72015-04-03 18:43:47 +0200192&cpu0 {
193 cpu0-supply = <&varm_breg>;
194};
195
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200196&dsi_0 {
197 vddcore-supply = <&vusb_reg>;
198 vddio-supply = <&vmipi_reg>;
199 samsung,pll-clock-frequency = <24000000>;
200 status = "okay";
201
202 ports {
203 #address-cells = <1>;
204 #size-cells = <0>;
205
206 port@1 {
207 reg = <1>;
208
209 dsi_out: endpoint {
210 remote-endpoint = <&dsi_in>;
211 samsung,burst-clock-frequency = <500000000>;
212 samsung,esc-clock-frequency = <20000000>;
213 };
214 };
215 };
216
217 panel@0 {
218 reg = <0>;
219 compatible = "samsung,s6e8aa0";
220 vdd3-supply = <&vcclcd_reg>;
221 vci-supply = <&vlcd_reg>;
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +0900222 reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200223 power-on-delay= <50>;
224 reset-delay = <100>;
225 init-delay = <100>;
226 flip-horizontal;
227 flip-vertical;
228 panel-width-mm = <58>;
229 panel-height-mm = <103>;
230
231 display-timings {
232 timing-0 {
233 clock-frequency = <57153600>;
234 hactive = <720>;
235 vactive = <1280>;
236 hfront-porch = <5>;
237 hback-porch = <5>;
238 hsync-len = <5>;
239 vfront-porch = <13>;
240 vback-porch = <1>;
241 vsync-len = <2>;
242 };
243 };
244
245 port {
246 dsi_in: endpoint {
247 remote-endpoint = <&dsi_out>;
248 };
249 };
250 };
251};
252
253&exynos_usbphy {
254 status = "okay";
Marek Szyprowski4ae9a4c2015-08-21 14:38:38 +0200255 vbus-supply = <&safe1_sreg>;
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200256};
257
258&fimd {
259 status = "okay";
260};
261
262&hsotg {
263 vusb_d-supply = <&vusb_reg>;
264 vusb_a-supply = <&vusbdac_reg>;
265 dr_mode = "peripheral";
266 status = "okay";
267};
268
269&i2c_3 {
270 samsung,i2c-sda-delay = <100>;
271 samsung,i2c-slave-addr = <0x10>;
272 samsung,i2c-max-bus-freq = <400000>;
273 pinctrl-0 = <&i2c3_bus>;
274 pinctrl-names = "default";
275 status = "okay";
276
277 mms114-touchscreen@48 {
278 compatible = "melfas,mms114";
279 reg = <0x48>;
280 interrupt-parent = <&gpx0>;
281 interrupts = <4 2>;
282 x-size = <720>;
283 y-size = <1280>;
284 avdd-supply = <&tsp_reg>;
285 vdd-supply = <&tsp_reg>;
286 };
287};
288
289&i2c_5 {
290 samsung,i2c-sda-delay = <100>;
291 samsung,i2c-slave-addr = <0x10>;
292 samsung,i2c-max-bus-freq = <100000>;
293 pinctrl-0 = <&i2c5_bus>;
294 pinctrl-names = "default";
295 status = "okay";
296
297 max8997_pmic@66 {
298 compatible = "maxim,max8997-pmic";
299
300 reg = <0x66>;
Marek Szyprowski330d1272016-05-06 09:27:16 +0200301 interrupt-parent = <&gpx0>;
302 interrupts = <7 0>;
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200303
304 max8997,pmic-buck1-uses-gpio-dvs;
305 max8997,pmic-buck2-uses-gpio-dvs;
306 max8997,pmic-buck5-uses-gpio-dvs;
307
308 max8997,pmic-ignore-gpiodvs-side-effect;
309 max8997,pmic-buck125-default-dvs-idx = <0>;
310
Javier Martinez Canillas39c1c412015-10-08 07:39:58 +0900311 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
312 <&gpx0 6 GPIO_ACTIVE_HIGH>,
313 <&gpl0 0 GPIO_ACTIVE_HIGH>;
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200314
315 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
316 <1250000>, <1200000>,
317 <1150000>, <1100000>,
318 <1000000>, <950000>;
319
320 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
321 <950000>, <900000>,
322 <1100000>, <1000000>,
323 <950000>, <900000>;
324
325 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
326 <1200000>, <1200000>,
327 <1200000>, <1200000>,
328 <1200000>, <1200000>;
329
330 regulators {
331 valive_reg: LDO2 {
332 regulator-name = "VALIVE_1.1V_C210";
333 regulator-min-microvolt = <1100000>;
334 regulator-max-microvolt = <1100000>;
335 regulator-always-on;
336 };
337
338 vusb_reg: LDO3 {
339 regulator-name = "VUSB_1.1V_C210";
340 regulator-min-microvolt = <1100000>;
341 regulator-max-microvolt = <1100000>;
342 };
343
344 vmipi_reg: LDO4 {
345 regulator-name = "VMIPI_1.8V";
346 regulator-min-microvolt = <1800000>;
347 regulator-max-microvolt = <1800000>;
348 };
349
350 vpda_reg: LDO6 {
351 regulator-name = "VCC_1.8V_PDA";
352 regulator-min-microvolt = <1800000>;
353 regulator-max-microvolt = <1800000>;
354 regulator-always-on;
355 };
356
357 vcam_reg: LDO7 {
358 regulator-name = "CAM_ISP_1.8V";
359 regulator-min-microvolt = <1800000>;
360 regulator-max-microvolt = <1800000>;
361 };
362
363 vusbdac_reg: LDO8 {
Marek Szyprowski44ad5e12016-05-06 09:27:15 +0200364 regulator-name = "VUSB+VDAC_3.3V_C210";
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200365 regulator-min-microvolt = <3300000>;
366 regulator-max-microvolt = <3300000>;
367 };
368
369 vccpda_reg: LDO9 {
370 regulator-name = "VCC_2.8V_PDA";
371 regulator-min-microvolt = <2800000>;
372 regulator-max-microvolt = <2800000>;
373 regulator-always-on;
374 };
375
376 vpll_reg: LDO10 {
377 regulator-name = "VPLL_1.1V_C210";
378 regulator-min-microvolt = <1100000>;
379 regulator-max-microvolt = <1100000>;
380 regulator-always-on;
381 };
382
383 vtcam_reg: LDO12 {
384 regulator-name = "VT_CAM_1.8V";
385 regulator-min-microvolt = <1800000>;
386 regulator-max-microvolt = <1800000>;
387 };
388
389 vcclcd_reg: LDO13 {
390 regulator-name = "VCC_3.3V_LCD";
391 regulator-min-microvolt = <3300000>;
392 regulator-max-microvolt = <3300000>;
393 };
394
395 vlcd_reg: LDO15 {
396 regulator-name = "VLCD_2.2V";
397 regulator-min-microvolt = <2200000>;
398 regulator-max-microvolt = <2200000>;
399 };
400
401 camsensor_reg: LDO16 {
402 regulator-name = "CAM_SENSOR_IO_1.8V";
403 regulator-min-microvolt = <1800000>;
404 regulator-max-microvolt = <1800000>;
405 };
406
407 vddq_reg: LDO21 {
408 regulator-name = "VDDQ_M1M2_1.2V";
409 regulator-min-microvolt = <1200000>;
410 regulator-max-microvolt = <1200000>;
411 regulator-always-on;
412 };
413
414 varm_breg: BUCK1 {
415 /*
416 * HACK: The real name is VARM_1.2V_C210,
417 * but exynos-cpufreq does not support
418 * DT-based regulator lookup yet.
419 */
420 regulator-name = "vdd_arm";
421 regulator-min-microvolt = <900000>;
422 regulator-max-microvolt = <1350000>;
423 regulator-always-on;
424 };
425
426 vint_breg: BUCK2 {
427 regulator-name = "VINT_1.1V_C210";
428 regulator-min-microvolt = <900000>;
429 regulator-max-microvolt = <1100000>;
430 regulator-always-on;
431 };
432
433 camisp_breg: BUCK4 {
434 regulator-name = "CAM_ISP_CORE_1.2V";
435 regulator-min-microvolt = <1200000>;
436 regulator-max-microvolt = <1200000>;
437 };
438
439 vmem_breg: BUCK5 {
440 regulator-name = "VMEM_1.2V_C210";
441 regulator-min-microvolt = <1200000>;
442 regulator-max-microvolt = <1200000>;
443 regulator-always-on;
444 };
445
446 vccsub_breg: BUCK7 {
447 regulator-name = "VCC_SUB_2.0V";
448 regulator-min-microvolt = <2000000>;
449 regulator-max-microvolt = <2000000>;
450 regulator-always-on;
451 };
452
453 safe1_sreg: ESAFEOUT1 {
454 regulator-name = "SAFEOUT1";
Krzysztof Kozlowski9b70afd2015-04-06 21:01:17 +0200455 };
456
457 safe2_sreg: ESAFEOUT2 {
458 regulator-name = "SAFEOUT2";
459 regulator-boot-on;
460 };
461 };
462 };
463};
464
465&sdhci_0 {
466 bus-width = <8>;
467 non-removable;
468 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
469 pinctrl-names = "default";
470 vmmc-supply = <&vemmc_reg>;
471 status = "okay";
472};
473
474&serial_0 {
475 status = "okay";
476};
477
478&serial_1 {
479 status = "okay";
480};
481
482&serial_2 {
483 status = "okay";
484};
485
486&serial_3 {
487 status = "okay";
488};
489
490&tmu {
491 status = "okay";
492};