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