GNU Linux-libre 4.19.264-gnu1
[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
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                 reg = <0x66>;
314
315                 max8998,pmic-buck1-default-dvs-idx = <0>;
316                 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
317                                                 <&gpx0 6 GPIO_ACTIVE_HIGH>;
318                 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
319                                                 <1100000>, <1000000>;
320
321                 max8998,pmic-buck2-default-dvs-idx = <0>;
322                 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
323                 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
324
325                 regulators {
326                         ldo2_reg: LDO2 {
327                                 regulator-name = "VALIVE_1.2V";
328                                 regulator-min-microvolt = <1200000>;
329                                 regulator-max-microvolt = <1200000>;
330                                 regulator-always-on;
331                         };
332
333                         ldo3_reg: LDO3 {
334                                 regulator-name = "VUSB+MIPI_1.1V";
335                                 regulator-min-microvolt = <1100000>;
336                                 regulator-max-microvolt = <1100000>;
337                                 regulator-always-on;
338                         };
339
340                         ldo4_reg: LDO4 {
341                                 regulator-name = "VADC_3.3V";
342                                 regulator-min-microvolt = <3300000>;
343                                 regulator-max-microvolt = <3300000>;
344                         };
345
346                         ldo5_reg: LDO5 {
347                                 regulator-name = "VTF_2.8V";
348                                 regulator-min-microvolt = <2800000>;
349                                 regulator-max-microvolt = <2800000>;
350                         };
351
352                         ldo6_reg: LDO6 {
353                                 regulator-name = "LDO6";
354                                 regulator-min-microvolt = <2000000>;
355                                 regulator-max-microvolt = <2000000>;
356                         };
357
358                         ldo7_reg: LDO7 {
359                                 regulator-name = "VLCD+VMIPI_1.8V";
360                                 regulator-min-microvolt = <1800000>;
361                                 regulator-max-microvolt = <1800000>;
362                         };
363
364                         ldo8_reg: LDO8 {
365                                 regulator-name = "VUSB+VDAC_3.3V";
366                                 regulator-min-microvolt = <3300000>;
367                                 regulator-max-microvolt = <3300000>;
368                                 regulator-always-on;
369                         };
370
371                         ldo9_reg: LDO9 {
372                                 regulator-name = "VCC_2.8V";
373                                 regulator-min-microvolt = <2800000>;
374                                 regulator-max-microvolt = <2800000>;
375                                 regulator-always-on;
376                         };
377
378                         ldo10_reg: LDO10 {
379                                 regulator-name = "VPLL_1.1V";
380                                 regulator-min-microvolt = <1100000>;
381                                 regulator-max-microvolt = <1100000>;
382                                 regulator-boot-on;
383                                 regulator-always-on;
384                         };
385
386                         ldo11_reg: LDO11 {
387                                 regulator-name = "CAM_AF_3.3V";
388                                 regulator-min-microvolt = <3300000>;
389                                 regulator-max-microvolt = <3300000>;
390                         };
391
392                         ldo12_reg: LDO12 {
393                                 regulator-name = "PS_2.8V";
394                                 regulator-min-microvolt = <2800000>;
395                                 regulator-max-microvolt = <2800000>;
396                         };
397
398                         ldo13_reg: LDO13 {
399                                 regulator-name = "VHIC_1.2V";
400                                 regulator-min-microvolt = <1200000>;
401                                 regulator-max-microvolt = <1200000>;
402                         };
403
404                         ldo14_reg: LDO14 {
405                                 regulator-name = "CAM_I_HOST_1.8V";
406                                 regulator-min-microvolt = <1800000>;
407                                 regulator-max-microvolt = <1800000>;
408                         };
409
410                         ldo15_reg: LDO15 {
411                                 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
412                                 regulator-min-microvolt = <1200000>;
413                                 regulator-max-microvolt = <1200000>;
414                         };
415
416                         ldo16_reg: LDO16 {
417                                 regulator-name = "CAM_S_ANA_2.8V";
418                                 regulator-min-microvolt = <2800000>;
419                                 regulator-max-microvolt = <2800000>;
420                         };
421
422                         ldo17_reg: LDO17 {
423                                 regulator-name = "VCC_3.0V_LCD";
424                                 regulator-min-microvolt = <3000000>;
425                                 regulator-max-microvolt = <3000000>;
426                         };
427
428                         buck1_reg: BUCK1 {
429                                 regulator-name = "VINT_1.1V";
430                                 regulator-min-microvolt = <750000>;
431                                 regulator-max-microvolt = <1500000>;
432                                 regulator-boot-on;
433                                 regulator-always-on;
434                         };
435
436                         buck2_reg: BUCK2 {
437                                 regulator-name = "VG3D_1.1V";
438                                 regulator-min-microvolt = <750000>;
439                                 regulator-max-microvolt = <1500000>;
440                                 regulator-boot-on;
441                         };
442
443                         buck3_reg: BUCK3 {
444                                 regulator-name = "VCC_1.8V";
445                                 regulator-min-microvolt = <1800000>;
446                                 regulator-max-microvolt = <1800000>;
447                                 regulator-always-on;
448                         };
449
450                         buck4_reg: BUCK4 {
451                                 regulator-name = "VMEM_1.2V";
452                                 regulator-min-microvolt = <1200000>;
453                                 regulator-max-microvolt = <1200000>;
454                                 regulator-always-on;
455                         };
456
457                         ap32khz_reg: EN32KHz-AP {
458                                 regulator-name = "32KHz AP";
459                                 regulator-always-on;
460                         };
461
462                         cp32khz_reg: EN32KHz-CP {
463                                 regulator-name = "32KHz CP";
464                         };
465
466                         vichg_reg: ENVICHG {
467                                 regulator-name = "VICHG";
468                         };
469
470                         safeout1_reg: ESAFEOUT1 {
471                                 regulator-name = "SAFEOUT1";
472                         };
473
474                         safeout2_reg: ESAFEOUT2 {
475                                 regulator-name = "SAFEOUT2";
476                                 regulator-boot-on;
477                         };
478                 };
479         };
480 };
481
482 &i2c_8 {
483         status = "okay";
484 };
485
486 &mct {
487         compatible = "none";
488 };
489
490 &mdma1 {
491         reg = <0x12840000 0x1000>;
492 };
493
494 &mixer {
495         status = "okay";
496 };
497
498 &ohci {
499         status = "okay";
500         port@0 {
501                 status = "okay";
502         };
503 };
504
505 &pinctrl_1 {
506         hdmi_hpd: hdmi-hpd {
507                 samsung,pins = "gpx3-7";
508                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
509         };
510 };
511
512 &pinctrl_0 {
513         i2c_ddc_bus: i2c-ddc-bus {
514                 samsung,pins = "gpe4-2", "gpe4-3";
515                 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
516                 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
517                 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
518         };
519 };
520
521 &pwm {
522         compatible = "samsung,s5p6440-pwm";
523         status = "okay";
524 };
525
526 &sdhci_0 {
527         bus-width = <8>;
528         non-removable;
529         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
530         pinctrl-names = "default";
531         vmmc-supply = <&vemmc_reg>;
532         status = "okay";
533 };
534
535 &sdhci_2 {
536         bus-width = <4>;
537         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
538         pinctrl-names = "default";
539         vmmc-supply = <&ldo5_reg>;
540         cd-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>;
541         cd-inverted;
542         status = "okay";
543 };
544
545 &serial_0 {
546         status = "okay";
547         /delete-property/dmas;
548         /delete-property/dma-names;
549 };
550
551 &serial_1 {
552         status = "okay";
553         /delete-property/dmas;
554         /delete-property/dma-names;
555 };
556
557 &serial_2 {
558         status = "okay";
559         /delete-property/dmas;
560         /delete-property/dma-names;
561 };
562
563 &serial_3 {
564         status = "okay";
565         /delete-property/dmas;
566         /delete-property/dma-names;
567 };
568
569 &sysram {
570         smp-sysram@0 {
571                 status = "disabled";
572         };
573
574         smp-sysram@5000 {
575                 compatible = "samsung,exynos4210-sysram";
576                 reg = <0x5000 0x1000>;
577         };
578
579         smp-sysram@1f000 {
580                 status = "disabled";
581         };
582 };