GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / exynos5250-arndale.dts
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Samsung's Exynos5250 based Arndale board device tree source
4  *
5  * Copyright (c) 2013 Samsung Electronics Co., Ltd.
6  *              http://www.samsung.com
7  */
8
9 /dts-v1/;
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/interrupt-controller/irq.h>
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/clock/samsung,s2mps11.h>
14 #include <dt-bindings/sound/samsung-i2s.h>
15 #include "exynos5250.dtsi"
16
17 / {
18         model = "Insignal Arndale evaluation board based on Exynos5250";
19         compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
20
21         memory@40000000 {
22                 device_type = "memory";
23                 reg = <0x40000000 0x80000000>;
24         };
25
26         chosen {
27                 stdout-path = "serial2:115200n8";
28         };
29
30         gpio-keys {
31                 compatible = "gpio-keys";
32
33                 key-menu {
34                         label = "SW-TACT2";
35                         gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
36                         linux,code = <KEY_MENU>;
37                         wakeup-source;
38                 };
39
40                 key-home {
41                         label = "SW-TACT3";
42                         gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
43                         linux,code = <KEY_HOME>;
44                         wakeup-source;
45                 };
46
47                 key-up {
48                         label = "SW-TACT4";
49                         gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
50                         linux,code = <KEY_UP>;
51                         wakeup-source;
52                 };
53
54                 key-down {
55                         label = "SW-TACT5";
56                         gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
57                         linux,code = <KEY_DOWN>;
58                         wakeup-source;
59                 };
60
61                 key-back {
62                         label = "SW-TACT6";
63                         gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
64                         linux,code = <KEY_BACK>;
65                         wakeup-source;
66                 };
67
68                 key-wakeup {
69                         label = "SW-TACT7";
70                         gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
71                         linux,code = <KEY_WAKEUP>;
72                         wakeup-source;
73                 };
74         };
75
76         panel: panel {
77                 compatible = "boe,hv070wsa-100";
78                 power-supply = <&vcc_3v3_reg>;
79                 enable-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
80                 port {
81                         panel_ep: endpoint {
82                                 remote-endpoint = <&bridge_out_ep>;
83                         };
84                 };
85         };
86
87         main_dc_reg: regulator-0 {
88                 compatible = "regulator-fixed";
89                 regulator-name = "MAIN_DC";
90                 regulator-always-on;
91         };
92
93         mmc_reg: regulator-1 {
94                 compatible = "regulator-fixed";
95                 regulator-name = "VDD_MMC";
96                 regulator-min-microvolt = <2800000>;
97                 regulator-max-microvolt = <2800000>;
98                 regulator-always-on;
99         };
100
101         reg_hdmi_en: regulator-2 {
102                 compatible = "regulator-fixed";
103                 regulator-name = "hdmi-en";
104                 regulator-always-on;
105         };
106
107         vcc_1v2_reg: regulator-3 {
108                 compatible = "regulator-fixed";
109                 regulator-name = "VCC_1V2";
110                 regulator-min-microvolt = <1200000>;
111                 regulator-max-microvolt = <1200000>;
112                 regulator-always-on;
113         };
114
115         vcc_1v8_reg: regulator-4 {
116                 compatible = "regulator-fixed";
117                 regulator-name = "VCC_1V8";
118                 regulator-min-microvolt = <1800000>;
119                 regulator-max-microvolt = <1800000>;
120                 regulator-always-on;
121         };
122
123         vcc_3v3_reg: regulator-5 {
124                 compatible = "regulator-fixed";
125                 regulator-name = "VCC_3V3";
126                 regulator-min-microvolt = <3300000>;
127                 regulator-max-microvolt = <3300000>;
128                 regulator-always-on;
129         };
130
131         sound {
132                 compatible = "samsung,arndale-wm1811";
133                 samsung,audio-cpu = <&i2s0>;
134                 samsung,audio-codec = <&wm1811>;
135         };
136
137         fixed-rate-clocks {
138                 xxti {
139                         compatible = "samsung,clock-xxti";
140                         clock-frequency = <24000000>;
141                 };
142         };
143
144         // SMSC USB3503 connected in hardware only mode as a PHY
145         usb_hub: usb-hub {
146                 compatible = "smsc,usb3503a";
147
148                 reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
149                 connect-gpios = <&gpd1 7 GPIO_ACTIVE_HIGH>;
150         };
151 };
152
153 &clock {
154         assigned-clocks = <&clock CLK_FOUT_EPLL>;
155         assigned-clock-rates = <49152000>;
156 };
157
158 &clock_audss {
159         assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
160         assigned-clock-parents = <&clock CLK_FOUT_EPLL>;
161 };
162
163 &cpu0 {
164         cpu0-supply = <&buck2_reg>;
165 };
166
167 &dsi_0 {
168         vddcore-supply = <&ldo8_reg>;
169         vddio-supply = <&ldo10_reg>;
170         samsung,pll-clock-frequency = <24000000>;
171         samsung,burst-clock-frequency = <320000000>;
172         samsung,esc-clock-frequency = <10000000>;
173         status = "okay";
174
175         bridge@0 {
176                 reg = <0>;
177                 compatible = "toshiba,tc358764";
178                 vddc-supply = <&vcc_1v2_reg>;
179                 vddio-supply = <&vcc_1v8_reg>;
180                 vddlvds-supply = <&vcc_3v3_reg>;
181                 reset-gpios = <&gpd1 6 GPIO_ACTIVE_LOW>;
182                 #address-cells = <1>;
183                 #size-cells = <0>;
184                 port@1 {
185                         reg = <1>;
186                         bridge_out_ep: endpoint {
187                                 remote-endpoint = <&panel_ep>;
188                         };
189                 };
190         };
191 };
192
193 &fimd {
194         status = "okay";
195 };
196
197 &hdmi {
198         pinctrl-names = "default";
199         pinctrl-0 = <&hdmi_hpd>;
200         status = "okay";
201         ddc = <&i2c_ddc>;
202         hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
203         vdd_osc-supply = <&ldo10_reg>;
204         vdd_pll-supply = <&ldo8_reg>;
205         vdd-supply = <&ldo8_reg>;
206 };
207
208 &i2c_0 {
209         status = "okay";
210         samsung,i2c-sda-delay = <100>;
211         samsung,i2c-max-bus-freq = <20000>;
212         samsung,i2c-slave-addr = <0x66>;
213
214         pmic@66 {
215                 compatible = "samsung,s5m8767-pmic";
216                 reg = <0x66>;
217                 interrupt-parent = <&gpx3>;
218                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
219                 pinctrl-names = "default";
220                 pinctrl-0 = <&s5m8767_irq>;
221                 wakeup-source;
222
223                 vinb1-supply = <&main_dc_reg>;
224                 vinb2-supply = <&main_dc_reg>;
225                 vinb3-supply = <&main_dc_reg>;
226                 vinb4-supply = <&main_dc_reg>;
227                 vinb5-supply = <&main_dc_reg>;
228                 vinb6-supply = <&main_dc_reg>;
229                 vinb7-supply = <&main_dc_reg>;
230                 vinb8-supply = <&main_dc_reg>;
231                 vinb9-supply = <&main_dc_reg>;
232
233                 vinl1-supply = <&buck7_reg>;
234                 vinl2-supply = <&buck7_reg>;
235                 vinl3-supply = <&buck7_reg>;
236                 vinl4-supply = <&main_dc_reg>;
237                 vinl5-supply = <&main_dc_reg>;
238                 vinl6-supply = <&main_dc_reg>;
239                 vinl7-supply = <&main_dc_reg>;
240                 vinl8-supply = <&buck8_reg>;
241                 vinl9-supply = <&buck8_reg>;
242
243                 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
244                                               <&gpd1 1 GPIO_ACTIVE_HIGH>,
245                                               <&gpd1 2 GPIO_ACTIVE_HIGH>;
246                 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
247                                              <&gpx2 4 GPIO_ACTIVE_HIGH>,
248                                              <&gpx2 5 GPIO_ACTIVE_HIGH>;
249
250                 s5m8767_osc: clocks {
251                         compatible = "samsung,s5m8767-clk";
252                         #clock-cells = <1>;
253                         clock-output-names = "s5m8767_ap", "unused1", "unused2";
254                 };
255
256                 regulators {
257                         ldo1_reg: LDO1 {
258                                 regulator-name = "VDD_ALIVE_1.0V";
259                                 regulator-min-microvolt = <1100000>;
260                                 regulator-max-microvolt = <1100000>;
261                                 regulator-always-on;
262                                 regulator-boot-on;
263                                 op_mode = <1>;
264                         };
265
266                         ldo2_reg: LDO2 {
267                                 regulator-name = "VDD_28IO_DP_1.35V";
268                                 regulator-min-microvolt = <1200000>;
269                                 regulator-max-microvolt = <1200000>;
270                                 regulator-always-on;
271                                 regulator-boot-on;
272                                 op_mode = <1>;
273                         };
274
275                         ldo3_reg: LDO3 {
276                                 regulator-name = "VDD_COMMON1_1.8V";
277                                 regulator-min-microvolt = <1800000>;
278                                 regulator-max-microvolt = <1800000>;
279                                 regulator-always-on;
280                                 regulator-boot-on;
281                                 op_mode = <1>;
282                         };
283
284                         ldo4_reg: LDO4 {
285                                 regulator-name = "VDD_IOPERI_1.8V";
286                                 regulator-min-microvolt = <1800000>;
287                                 regulator-max-microvolt = <1800000>;
288                                 regulator-always-on;
289                                 op_mode = <1>;
290                         };
291
292                         ldo5_reg: LDO5 {
293                                 regulator-name = "VDD_EXT_1.8V";
294                                 regulator-min-microvolt = <1800000>;
295                                 regulator-max-microvolt = <1800000>;
296                                 regulator-always-on;
297                                 regulator-boot-on;
298                                 op_mode = <1>;
299                         };
300
301                         ldo6_reg: LDO6 {
302                                 regulator-name = "VDD_MPLL_1.1V";
303                                 regulator-min-microvolt = <1100000>;
304                                 regulator-max-microvolt = <1100000>;
305                                 regulator-always-on;
306                                 regulator-boot-on;
307                                 op_mode = <1>;
308                         };
309
310                         ldo7_reg: LDO7 {
311                                 regulator-name = "VDD_XPLL_1.1V";
312                                 regulator-min-microvolt = <1100000>;
313                                 regulator-max-microvolt = <1100000>;
314                                 regulator-always-on;
315                                 regulator-boot-on;
316                                 op_mode = <1>;
317                         };
318
319                         ldo8_reg: LDO8 {
320                                 regulator-name = "VDD_COMMON2_1.0V";
321                                 regulator-min-microvolt = <1000000>;
322                                 regulator-max-microvolt = <1000000>;
323                                 regulator-always-on;
324                                 regulator-boot-on;
325                                 op_mode = <1>;
326                         };
327
328                         ldo9_reg: LDO9 {
329                                 regulator-name = "VDD_33ON_3.0V";
330                                 regulator-min-microvolt = <3000000>;
331                                 regulator-max-microvolt = <3000000>;
332                                 op_mode = <1>;
333                         };
334
335                         ldo10_reg: LDO10 {
336                                 regulator-name = "VDD_COMMON3_1.8V";
337                                 regulator-min-microvolt = <1800000>;
338                                 regulator-max-microvolt = <1800000>;
339                                 regulator-always-on;
340                                 regulator-boot-on;
341                                 op_mode = <1>;
342                         };
343
344                         ldo11_reg: LDO11 {
345                                 regulator-name = "VDD_ABB2_1.8V";
346                                 regulator-min-microvolt = <1800000>;
347                                 regulator-max-microvolt = <1800000>;
348                                 regulator-always-on;
349                                 regulator-boot-on;
350                                 op_mode = <1>;
351                         };
352
353                         ldo12_reg: LDO12 {
354                                 regulator-name = "VDD_USB_3.0V";
355                                 regulator-min-microvolt = <3000000>;
356                                 regulator-max-microvolt = <3000000>;
357                                 regulator-always-on;
358                                 regulator-boot-on;
359                                 op_mode = <1>;
360                         };
361
362                         ldo13_reg: LDO13 {
363                                 regulator-name = "VDDQ_C2C_W_1.8V";
364                                 regulator-min-microvolt = <1800000>;
365                                 regulator-max-microvolt = <1800000>;
366                                 regulator-always-on;
367                                 regulator-boot-on;
368                                 op_mode = <1>;
369                         };
370
371                         ldo14_reg: LDO14 {
372                                 regulator-name = "VDD18_ABB0_3_1.8V";
373                                 regulator-min-microvolt = <1800000>;
374                                 regulator-max-microvolt = <1800000>;
375                                 regulator-always-on;
376                                 regulator-boot-on;
377                                 op_mode = <1>;
378                         };
379
380                         ldo15_reg: LDO15 {
381                                 regulator-name = "VDD10_COMMON4_1.0V";
382                                 regulator-min-microvolt = <1000000>;
383                                 regulator-max-microvolt = <1000000>;
384                                 regulator-always-on;
385                                 regulator-boot-on;
386                                 op_mode = <1>;
387                         };
388
389                         ldo16_reg: LDO16 {
390                                 regulator-name = "VDD18_HSIC_1.8V";
391                                 regulator-min-microvolt = <1800000>;
392                                 regulator-max-microvolt = <1800000>;
393                                 regulator-always-on;
394                                 regulator-boot-on;
395                                 op_mode = <1>;
396                         };
397
398                         ldo17_reg: LDO17 {
399                                 regulator-name = "VDDQ_MMC2_3_2.8V";
400                                 regulator-min-microvolt = <2800000>;
401                                 regulator-max-microvolt = <2800000>;
402                                 regulator-always-on;
403                                 regulator-boot-on;
404                                 op_mode = <1>;
405                         };
406
407                         ldo18_reg: LDO18 {
408                                 regulator-name = "VDD_33ON_2.8V";
409                                 regulator-min-microvolt = <2800000>;
410                                 regulator-max-microvolt = <2800000>;
411                                 op_mode = <1>;
412                         };
413
414                         ldo22_reg: LDO22 {
415                                 regulator-name = "EXT_33_OFF";
416                                 regulator-min-microvolt = <3300000>;
417                                 regulator-max-microvolt = <3300000>;
418                                 op_mode = <1>;
419                         };
420
421                         ldo23_reg: LDO23 {
422                                 regulator-name = "EXT_28_OFF";
423                                 regulator-min-microvolt = <2800000>;
424                                 regulator-max-microvolt = <2800000>;
425                                 op_mode = <1>;
426                         };
427
428                         ldo25_reg: LDO25 {
429                                 regulator-name = "PVDD_LDO25";
430                                 regulator-min-microvolt = <1200000>;
431                                 regulator-max-microvolt = <1200000>;
432                                 op_mode = <1>;
433                         };
434
435                         ldo26_reg: LDO26 {
436                                 regulator-name = "EXT_18_OFF";
437                                 regulator-min-microvolt = <1800000>;
438                                 regulator-max-microvolt = <1800000>;
439                                 op_mode = <1>;
440                         };
441
442                         buck1_reg: BUCK1 {
443                                 regulator-name = "VDD_MIF";
444                                 regulator-min-microvolt = <950000>;
445                                 regulator-max-microvolt = <1200000>;
446                                 regulator-always-on;
447                                 regulator-boot-on;
448                                 op_mode = <1>;
449                         };
450
451                         buck2_reg: BUCK2 {
452                                 regulator-name = "VDD_ARM";
453                                 regulator-min-microvolt = <912500>;
454                                 regulator-max-microvolt = <1300000>;
455                                 regulator-always-on;
456                                 regulator-boot-on;
457                                 op_mode = <1>;
458                         };
459
460                         buck3_reg: BUCK3 {
461                                 regulator-name = "VDD_INT";
462                                 regulator-min-microvolt = <900000>;
463                                 regulator-max-microvolt = <1200000>;
464                                 regulator-always-on;
465                                 regulator-boot-on;
466                                 op_mode = <1>;
467                         };
468
469                         buck4_reg: BUCK4 {
470                                 regulator-name = "VDD_G3D";
471                                 regulator-min-microvolt = <850000>;
472                                 regulator-max-microvolt = <1300000>;
473                                 regulator-always-on;
474                                 regulator-boot-on;
475                                 op_mode = <1>;
476                         };
477
478                         buck5_reg: BUCK5 {
479                                 regulator-name = "VDD_MEM_1.35V";
480                                 regulator-min-microvolt = <750000>;
481                                 regulator-max-microvolt = <1355000>;
482                                 regulator-always-on;
483                                 regulator-boot-on;
484                                 op_mode = <1>;
485                         };
486
487                         buck7_reg: BUCK7 {
488                                 regulator-name = "PVDD_BUCK7";
489                                 regulator-always-on;
490                                 op_mode = <1>;
491                         };
492
493                         buck8_reg: BUCK8 {
494                                 regulator-name = "PVDD_BUCK8";
495                                 regulator-always-on;
496                                 op_mode = <1>;
497                         };
498
499                         buck9_reg: BUCK9 {
500                                 regulator-name = "VDD_33_OFF_EXT1";
501                                 regulator-min-microvolt = <750000>;
502                                 regulator-max-microvolt = <3000000>;
503                                 op_mode = <1>;
504                         };
505                 };
506         };
507 };
508
509 &i2c_3 {
510         status = "okay";
511
512         wm1811: audio-codec@1a {
513                 compatible = "wlf,wm1811";
514                 reg = <0x1a>;
515                 clocks = <&i2s0 CLK_I2S_CDCLK>;
516                 clock-names = "MCLK1";
517
518                 AVDD2-supply = <&main_dc_reg>;
519                 CPVDD-supply = <&main_dc_reg>;
520                 DBVDD1-supply = <&main_dc_reg>;
521                 DBVDD2-supply = <&main_dc_reg>;
522                 DBVDD3-supply = <&main_dc_reg>;
523                 LDO1VDD-supply = <&main_dc_reg>;
524                 SPKVDD1-supply = <&main_dc_reg>;
525                 SPKVDD2-supply = <&main_dc_reg>;
526
527                 wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
528                 wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
529         };
530 };
531
532 &i2c_8 {
533         status = "okay";
534         /* used by HDMI PHY */
535         samsung,i2c-sda-delay = <100>;
536         samsung,i2c-max-bus-freq = <66000>;
537 };
538
539 &i2c_9 {
540         status = "okay";
541         samsung,i2c-sda-delay = <100>;
542         samsung,i2c-max-bus-freq = <40000>;
543 };
544
545 &i2s0 {
546         assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
547         assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
548         status = "okay";
549 };
550
551 &i2s0_bus {
552         samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>;
553 };
554
555 &mali {
556         mali-supply = <&buck4_reg>;
557         status = "okay";
558 };
559
560 &mixer {
561         status = "okay";
562 };
563
564 &mmc_0 {
565         status = "okay";
566         broken-cd;
567         card-detect-delay = <200>;
568         samsung,dw-mshc-ciu-div = <3>;
569         samsung,dw-mshc-sdr-timing = <2 3>;
570         samsung,dw-mshc-ddr-timing = <1 2>;
571         vmmc-supply = <&mmc_reg>;
572         pinctrl-names = "default";
573         pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
574         bus-width = <8>;
575         cap-mmc-highspeed;
576 };
577
578 &mmc_2 {
579         status = "okay";
580         card-detect-delay = <200>;
581         samsung,dw-mshc-ciu-div = <3>;
582         samsung,dw-mshc-sdr-timing = <2 3>;
583         samsung,dw-mshc-ddr-timing = <1 2>;
584         vmmc-supply = <&mmc_reg>;
585         pinctrl-names = "default";
586         pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
587         bus-width = <4>;
588         disable-wp;
589         cap-sd-highspeed;
590 };
591
592 &pinctrl_0 {
593         s5m8767_irq: s5m8767-irq-pins {
594                 samsung,pins = "gpx3-2";
595                 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
596         };
597 };
598
599 &rtc {
600         clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
601         clock-names = "rtc", "rtc_src";
602         status = "okay";
603 };
604
605 &sata {
606         status = "okay";
607 };
608
609 &sata_phy {
610         status = "okay";
611         samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
612 };
613
614 &sata_phy_i2c {
615         status = "okay";
616 };
617
618 &soc {
619         /*
620          * For unknown reasons HDMI-DDC does not work with Exynos I2C
621          * controllers. Lets use software I2C over GPIO pins as a workaround.
622          */
623         i2c_ddc: i2c-10 {
624                 pinctrl-names = "default";
625                 pinctrl-0 = <&i2c2_gpio_bus>;
626                 status = "okay";
627                 compatible = "i2c-gpio";
628                 sda-gpios = <&gpa0 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
629                 scl-gpios = <&gpa0 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
630                 i2c-gpio,delay-us = <2>;
631                 #address-cells = <1>;
632                 #size-cells = <0>;
633         };
634 };
635
636 &usbdrd {
637         vdd10-supply = <&ldo15_reg>;
638         vdd33-supply = <&ldo12_reg>;
639 };