Merge tag 'pwm/for-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / exynos4210-universal_c210.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Samsung's Exynos4210 based Universal C210 board device tree source
4  *
5  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
6  *              http://www.samsung.com
7  *
8  * Device tree source file for Samsung's Universal C210 board which is based on
9  * Samsung's Exynos4210 rev0 SoC.
10  */
11
12 /dts-v1/;
13 #include "exynos4210.dtsi"
14 #include <dt-bindings/gpio/gpio.h>
15
16 / {
17         model = "Samsung Universal C210 based on Exynos4210 rev0";
18         compatible = "samsung,universal_c210", "samsung,exynos4210", "samsung,exynos4";
19
20         memory@40000000 {
21                 device_type = "memory";
22                 reg =  <0x40000000 0x10000000
23                         0x50000000 0x10000000>;
24         };
25
26         chosen {
27                 bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1";
28                 stdout-path = &serial_2;
29         };
30
31
32         fixed-rate-clocks {
33                 xxti {
34                         compatible = "samsung,clock-xxti";
35                         clock-frequency = <0>;
36                 };
37
38                 xusbxti {
39                         compatible = "samsung,clock-xusbxti";
40                         clock-frequency = <24000000>;
41                 };
42         };
43
44         vemmc_reg: voltage-regulator {
45                 compatible = "regulator-fixed";
46                 regulator-name = "VMEM_VDD_2_8V";
47                 regulator-min-microvolt = <2800000>;
48                 regulator-max-microvolt = <2800000>;
49                 gpio = <&gpe1 3 GPIO_ACTIVE_HIGH>;
50                 enable-active-high;
51         };
52
53         gpio-keys {
54                 compatible = "gpio-keys";
55
56                 vol-up-key {
57                         gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
58                         linux,code = <115>;
59                         label = "volume up";
60                         debounce-interval = <1>;
61                 };
62
63                 vol-down-key {
64                         gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
65                         linux,code = <114>;
66                         label = "volume down";
67                         debounce-interval = <1>;
68                 };
69
70                 config-key {
71                         gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
72                         linux,code = <171>;
73                         label = "config";
74                         debounce-interval = <1>;
75                         wakeup-source;
76                 };
77
78                 camera-key {
79                         gpios = <&gpx2 3 GPIO_ACTIVE_LOW>;
80                         linux,code = <212>;
81                         label = "camera";
82                         debounce-interval = <1>;
83                 };
84
85                 power-key {
86                         gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
87                         linux,code = <116>;
88                         label = "power";
89                         debounce-interval = <1>;
90                         wakeup-source;
91                 };
92
93                 ok-key {
94                         gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
95                         linux,code = <352>;
96                         label = "ok";
97                         debounce-interval = <1>;
98                 };
99         };
100
101         tsp_reg: voltage-regulator {
102                 compatible = "regulator-fixed";
103                 regulator-name = "TSP_2_8V";
104                 regulator-min-microvolt = <2800000>;
105                 regulator-max-microvolt = <2800000>;
106                 gpio = <&gpe2 3 GPIO_ACTIVE_HIGH>;
107                 enable-active-high;
108         };
109
110         spi-lcd {
111                 compatible = "spi-gpio";
112                 #address-cells = <1>;
113                 #size-cells = <0>;
114
115                 gpio-sck = <&gpy3 1 GPIO_ACTIVE_HIGH>;
116                 gpio-mosi = <&gpy3 3 GPIO_ACTIVE_HIGH>;
117                 num-chipselects = <1>;
118                 cs-gpios = <&gpy4 3 GPIO_ACTIVE_HIGH>;
119
120                 lcd@0 {
121                         compatible = "samsung,ld9040";
122                         reg = <0>;
123                         vdd3-supply = <&ldo7_reg>;
124                         vci-supply = <&ldo17_reg>;
125                         reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
126                         spi-max-frequency = <1200000>;
127                         spi-cpol;
128                         spi-cpha;
129                         power-on-delay = <10>;
130                         reset-delay = <10>;
131                         panel-width-mm = <90>;
132                         panel-height-mm = <154>;
133                         display-timings {
134                                 timing {
135                                         clock-frequency = <23492370>;
136                                         hactive = <480>;
137                                         vactive = <800>;
138                                         hback-porch = <16>;
139                                         hfront-porch = <16>;
140                                         vback-porch = <2>;
141                                         vfront-porch = <28>;
142                                         hsync-len = <2>;
143                                         vsync-len = <1>;
144                                         hsync-active = <0>;
145                                         vsync-active = <0>;
146                                         de-active = <0>;
147                                         pixelclk-active = <0>;
148                                 };
149                         };
150                         port {
151                                 lcd_ep: endpoint {
152                                         remote-endpoint = <&fimd_dpi_ep>;
153                                 };
154                         };
155                 };
156         };
157
158         hdmi_en: voltage-regulator-hdmi-5v {
159                 compatible = "regulator-fixed";
160                 regulator-name = "HDMI_5V";
161                 regulator-min-microvolt = <5000000>;
162                 regulator-max-microvolt = <5000000>;
163                 gpio = <&gpe0 1 GPIO_ACTIVE_HIGH>;
164                 enable-active-high;
165         };
166
167         hdmi_ddc: i2c-ddc {
168                 compatible = "i2c-gpio";
169                 gpios = <&gpe4 2 GPIO_ACTIVE_HIGH &gpe4 3 GPIO_ACTIVE_HIGH>;
170                 i2c-gpio,delay-us = <100>;
171                 #address-cells = <1>;
172                 #size-cells = <0>;
173
174                 pinctrl-0 = <&i2c_ddc_bus>;
175                 pinctrl-names = "default";
176                 status = "okay";
177         };
178 };
179
180 &camera {
181         status = "okay";
182
183         pinctrl-names = "default";
184         pinctrl-0 = <>;
185 };
186
187 &cpu0 {
188         cpu0-supply = <&vdd_arm_reg>;
189 };
190
191 &ehci {
192         status = "okay";
193         port@0 {
194                 status = "okay";
195         };
196 };
197
198 &exynos_usbphy {
199         status = "okay";
200         vbus-supply = <&safeout1_reg>;
201 };
202
203 &fimc_0 {
204         status = "okay";
205         assigned-clocks = <&clock CLK_MOUT_FIMC0>,
206                           <&clock CLK_SCLK_FIMC0>;
207         assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
208         assigned-clock-rates = <0>, <160000000>;
209 };
210
211 &fimc_1 {
212         status = "okay";
213         assigned-clocks = <&clock CLK_MOUT_FIMC1>,
214                           <&clock CLK_SCLK_FIMC1>;
215         assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
216         assigned-clock-rates = <0>, <160000000>;
217 };
218
219 &fimc_2 {
220         status = "okay";
221         assigned-clocks = <&clock CLK_MOUT_FIMC2>,
222                           <&clock CLK_SCLK_FIMC2>;
223         assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
224         assigned-clock-rates = <0>, <160000000>;
225 };
226
227 &fimc_3 {
228         status = "okay";
229         assigned-clocks = <&clock CLK_MOUT_FIMC3>,
230                           <&clock CLK_SCLK_FIMC3>;
231         assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
232         assigned-clock-rates = <0>, <160000000>;
233 };
234
235 &fimd {
236         pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
237         pinctrl-names = "default";
238         status = "okay";
239         samsung,invert-vden;
240         samsung,invert-vclk;
241         #address-cells = <1>;
242         #size-cells = <0>;
243         port@3 {
244                 reg = <3>;
245                 fimd_dpi_ep: endpoint {
246                         remote-endpoint = <&lcd_ep>;
247                 };
248         };
249 };
250
251 &hdmi {
252         hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
253         pinctrl-names = "default";
254         pinctrl-0 = <&hdmi_hpd>;
255         hdmi-en-supply = <&hdmi_en>;
256         vdd-supply = <&ldo3_reg>;
257         vdd_osc-supply = <&ldo4_reg>;
258         vdd_pll-supply = <&ldo3_reg>;
259         ddc = <&hdmi_ddc>;
260         status = "okay";
261 };
262
263 &hsotg {
264         vusb_d-supply = <&ldo3_reg>;
265         vusb_a-supply = <&ldo8_reg>;
266         dr_mode = "peripheral";
267         status = "okay";
268 };
269
270 &i2c_3 {
271         samsung,i2c-sda-delay = <100>;
272         samsung,i2c-slave-addr = <0x10>;
273         samsung,i2c-max-bus-freq = <100000>;
274         pinctrl-0 = <&i2c3_bus>;
275         pinctrl-names = "default";
276         status = "okay";
277
278         tsp@4a {
279                 /* TBD: Atmel maXtouch touchscreen */
280                 reg = <0x4a>;
281         };
282 };
283
284 &i2c_5 {
285         samsung,i2c-sda-delay = <100>;
286         samsung,i2c-slave-addr = <0x10>;
287         samsung,i2c-max-bus-freq = <100000>;
288         pinctrl-0 = <&i2c5_bus>;
289         pinctrl-names = "default";
290         status = "okay";
291
292         vdd_arm_reg: pmic@60 {
293                 compatible = "maxim,max8952";
294                 reg = <0x60>;
295
296                 max8952,vid-gpios = <&gpx0 3 GPIO_ACTIVE_HIGH>,
297                                     <&gpx0 4 GPIO_ACTIVE_HIGH>;
298                 max8952,default-mode = <0>;
299                 max8952,dvs-mode-microvolt = <1250000>, <1200000>,
300                                                 <1050000>, <950000>;
301                 max8952,sync-freq = <0>;
302                 max8952,ramp-speed = <0>;
303
304                 regulator-name = "vdd_arm";
305                 regulator-min-microvolt = <770000>;
306                 regulator-max-microvolt = <1400000>;
307                 regulator-always-on;
308                 regulator-boot-on;
309         };
310
311         pmic@66 {
312                 compatible = "national,lp3974";
313                 interrupts-extended = <&gpx0 7 0>, <&gpx2 7 0>;
314                 pinctrl-names = "default";
315                 pinctrl-0 = <&lp3974_irq>;
316                 reg = <0x66>;
317
318                 max8998,pmic-buck1-default-dvs-idx = <0>;
319                 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
320                                                 <&gpx0 6 GPIO_ACTIVE_HIGH>;
321                 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
322                                                 <1100000>, <1000000>;
323
324                 max8998,pmic-buck2-default-dvs-idx = <0>;
325                 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
326                 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
327
328                 regulators {
329                         ldo2_reg: LDO2 {
330                                 regulator-name = "VALIVE_1.2V";
331                                 regulator-min-microvolt = <1200000>;
332                                 regulator-max-microvolt = <1200000>;
333                                 regulator-always-on;
334                         };
335
336                         ldo3_reg: LDO3 {
337                                 regulator-name = "VUSB+MIPI_1.1V";
338                                 regulator-min-microvolt = <1100000>;
339                                 regulator-max-microvolt = <1100000>;
340                                 regulator-always-on;
341                         };
342
343                         ldo4_reg: LDO4 {
344                                 regulator-name = "VADC_3.3V";
345                                 regulator-min-microvolt = <3300000>;
346                                 regulator-max-microvolt = <3300000>;
347                         };
348
349                         ldo5_reg: LDO5 {
350                                 regulator-name = "VTF_2.8V";
351                                 regulator-min-microvolt = <2800000>;
352                                 regulator-max-microvolt = <2800000>;
353                         };
354
355                         ldo6_reg: LDO6 {
356                                 regulator-name = "LDO6";
357                                 regulator-min-microvolt = <2000000>;
358                                 regulator-max-microvolt = <2000000>;
359                         };
360
361                         ldo7_reg: LDO7 {
362                                 regulator-name = "VLCD+VMIPI_1.8V";
363                                 regulator-min-microvolt = <1800000>;
364                                 regulator-max-microvolt = <1800000>;
365                         };
366
367                         ldo8_reg: LDO8 {
368                                 regulator-name = "VUSB+VDAC_3.3V";
369                                 regulator-min-microvolt = <3300000>;
370                                 regulator-max-microvolt = <3300000>;
371                                 regulator-always-on;
372                         };
373
374                         ldo9_reg: LDO9 {
375                                 regulator-name = "VCC_2.8V";
376                                 regulator-min-microvolt = <2800000>;
377                                 regulator-max-microvolt = <2800000>;
378                                 regulator-always-on;
379                         };
380
381                         ldo10_reg: LDO10 {
382                                 regulator-name = "VPLL_1.1V";
383                                 regulator-min-microvolt = <1100000>;
384                                 regulator-max-microvolt = <1100000>;
385                                 regulator-boot-on;
386                                 regulator-always-on;
387                         };
388
389                         ldo11_reg: LDO11 {
390                                 regulator-name = "CAM_AF_3.3V";
391                                 regulator-min-microvolt = <3300000>;
392                                 regulator-max-microvolt = <3300000>;
393                         };
394
395                         ldo12_reg: LDO12 {
396                                 regulator-name = "PS_2.8V";
397                                 regulator-min-microvolt = <2800000>;
398                                 regulator-max-microvolt = <2800000>;
399                         };
400
401                         ldo13_reg: LDO13 {
402                                 regulator-name = "VHIC_1.2V";
403                                 regulator-min-microvolt = <1200000>;
404                                 regulator-max-microvolt = <1200000>;
405                         };
406
407                         ldo14_reg: LDO14 {
408                                 regulator-name = "CAM_I_HOST_1.8V";
409                                 regulator-min-microvolt = <1800000>;
410                                 regulator-max-microvolt = <1800000>;
411                         };
412
413                         ldo15_reg: LDO15 {
414                                 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
415                                 regulator-min-microvolt = <1200000>;
416                                 regulator-max-microvolt = <1200000>;
417                         };
418
419                         ldo16_reg: LDO16 {
420                                 regulator-name = "CAM_S_ANA_2.8V";
421                                 regulator-min-microvolt = <2800000>;
422                                 regulator-max-microvolt = <2800000>;
423                         };
424
425                         ldo17_reg: LDO17 {
426                                 regulator-name = "VCC_3.0V_LCD";
427                                 regulator-min-microvolt = <3000000>;
428                                 regulator-max-microvolt = <3000000>;
429                         };
430
431                         buck1_reg: BUCK1 {
432                                 regulator-name = "VINT_1.1V";
433                                 regulator-min-microvolt = <750000>;
434                                 regulator-max-microvolt = <1500000>;
435                                 regulator-boot-on;
436                                 regulator-always-on;
437                         };
438
439                         buck2_reg: BUCK2 {
440                                 regulator-name = "VG3D_1.1V";
441                                 regulator-min-microvolt = <750000>;
442                                 regulator-max-microvolt = <1500000>;
443                                 regulator-boot-on;
444                         };
445
446                         buck3_reg: BUCK3 {
447                                 regulator-name = "VCC_1.8V";
448                                 regulator-min-microvolt = <1800000>;
449                                 regulator-max-microvolt = <1800000>;
450                                 regulator-always-on;
451                         };
452
453                         buck4_reg: BUCK4 {
454                                 regulator-name = "VMEM_1.2V";
455                                 regulator-min-microvolt = <1200000>;
456                                 regulator-max-microvolt = <1200000>;
457                                 regulator-always-on;
458                         };
459
460                         ap32khz_reg: EN32KHz-AP {
461                                 regulator-name = "32KHz AP";
462                                 regulator-always-on;
463                         };
464
465                         cp32khz_reg: EN32KHz-CP {
466                                 regulator-name = "32KHz CP";
467                         };
468
469                         vichg_reg: ENVICHG {
470                                 regulator-name = "VICHG";
471                         };
472
473                         safeout1_reg: ESAFEOUT1 {
474                                 regulator-name = "SAFEOUT1";
475                         };
476
477                         safeout2_reg: ESAFEOUT2 {
478                                 regulator-name = "SAFEOUT2";
479                                 regulator-boot-on;
480                         };
481                 };
482         };
483 };
484
485 &i2c_8 {
486         status = "okay";
487 };
488
489 &mct {
490         compatible = "none";
491 };
492
493 &mdma1 {
494         reg = <0x12840000 0x1000>;
495 };
496
497 &mixer {
498         status = "okay";
499 };
500
501 &ohci {
502         status = "okay";
503         port@0 {
504                 status = "okay";
505         };
506 };
507
508 &pinctrl_1 {
509         lp3974_irq: lp3974-irq {
510                 samsung,pins = "gpx0-7", "gpx2-7";
511                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
512         };
513
514         hdmi_hpd: hdmi-hpd {
515                 samsung,pins = "gpx3-7";
516                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
517         };
518 };
519
520 &pinctrl_0 {
521         i2c_ddc_bus: i2c-ddc-bus {
522                 samsung,pins = "gpe4-2", "gpe4-3";
523                 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
524                 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
525                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
526         };
527 };
528
529 &pwm {
530         compatible = "samsung,s5p6440-pwm";
531         status = "okay";
532 };
533
534 &sdhci_0 {
535         bus-width = <8>;
536         non-removable;
537         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
538         pinctrl-names = "default";
539         vmmc-supply = <&vemmc_reg>;
540         status = "okay";
541 };
542
543 &sdhci_2 {
544         bus-width = <4>;
545         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
546         pinctrl-names = "default";
547         vmmc-supply = <&ldo5_reg>;
548         cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
549         status = "okay";
550 };
551
552 &serial_0 {
553         status = "okay";
554         /delete-property/dmas;
555         /delete-property/dma-names;
556 };
557
558 &serial_1 {
559         status = "okay";
560         /delete-property/dmas;
561         /delete-property/dma-names;
562 };
563
564 &serial_2 {
565         status = "okay";
566         /delete-property/dmas;
567         /delete-property/dma-names;
568 };
569
570 &serial_3 {
571         status = "okay";
572         /delete-property/dmas;
573         /delete-property/dma-names;
574 };
575
576 &sysram {
577         smp-sysram@0 {
578                 status = "disabled";
579         };
580
581         smp-sysram@5000 {
582                 compatible = "samsung,exynos4210-sysram";
583                 reg = <0x5000 0x1000>;
584         };
585
586         smp-sysram@1f000 {
587                 status = "disabled";
588         };
589 };