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