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