0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Samsung's Exynos5250 based Arndale board device tree source
0004 *
0005 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
0006 * http://www.samsung.com
0007 */
0008
0009 /dts-v1/;
0010 #include <dt-bindings/gpio/gpio.h>
0011 #include <dt-bindings/interrupt-controller/irq.h>
0012 #include <dt-bindings/input/input.h>
0013 #include <dt-bindings/clock/samsung,s2mps11.h>
0014 #include <dt-bindings/sound/samsung-i2s.h>
0015 #include "exynos5250.dtsi"
0016
0017 / {
0018 model = "Insignal Arndale evaluation board based on Exynos5250";
0019 compatible = "insignal,arndale", "samsung,exynos5250", "samsung,exynos5";
0020
0021 memory@40000000 {
0022 device_type = "memory";
0023 reg = <0x40000000 0x80000000>;
0024 };
0025
0026 chosen {
0027 stdout-path = "serial2:115200n8";
0028 };
0029
0030 gpio-keys {
0031 compatible = "gpio-keys";
0032
0033 key-menu {
0034 label = "SW-TACT2";
0035 gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
0036 linux,code = <KEY_MENU>;
0037 wakeup-source;
0038 };
0039
0040 key-home {
0041 label = "SW-TACT3";
0042 gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
0043 linux,code = <KEY_HOME>;
0044 wakeup-source;
0045 };
0046
0047 key-up {
0048 label = "SW-TACT4";
0049 gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
0050 linux,code = <KEY_UP>;
0051 wakeup-source;
0052 };
0053
0054 key-down {
0055 label = "SW-TACT5";
0056 gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
0057 linux,code = <KEY_DOWN>;
0058 wakeup-source;
0059 };
0060
0061 key-back {
0062 label = "SW-TACT6";
0063 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
0064 linux,code = <KEY_BACK>;
0065 wakeup-source;
0066 };
0067
0068 key-wakeup {
0069 label = "SW-TACT7";
0070 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
0071 linux,code = <KEY_WAKEUP>;
0072 wakeup-source;
0073 };
0074 };
0075
0076 panel: panel {
0077 compatible = "boe,hv070wsa-100";
0078 power-supply = <&vcc_3v3_reg>;
0079 enable-gpios = <&gpd1 3 GPIO_ACTIVE_HIGH>;
0080 port {
0081 panel_ep: endpoint {
0082 remote-endpoint = <&bridge_out_ep>;
0083 };
0084 };
0085 };
0086
0087 main_dc_reg: regulator-0 {
0088 compatible = "regulator-fixed";
0089 regulator-name = "MAIN_DC";
0090 regulator-always-on;
0091 };
0092
0093 mmc_reg: regulator-1 {
0094 compatible = "regulator-fixed";
0095 regulator-name = "VDD_MMC";
0096 regulator-min-microvolt = <2800000>;
0097 regulator-max-microvolt = <2800000>;
0098 regulator-always-on;
0099 };
0100
0101 reg_hdmi_en: regulator-2 {
0102 compatible = "regulator-fixed";
0103 regulator-name = "hdmi-en";
0104 regulator-always-on;
0105 };
0106
0107 vcc_1v2_reg: regulator-3 {
0108 compatible = "regulator-fixed";
0109 regulator-name = "VCC_1V2";
0110 regulator-min-microvolt = <1200000>;
0111 regulator-max-microvolt = <1200000>;
0112 regulator-always-on;
0113 };
0114
0115 vcc_1v8_reg: regulator-4 {
0116 compatible = "regulator-fixed";
0117 regulator-name = "VCC_1V8";
0118 regulator-min-microvolt = <1800000>;
0119 regulator-max-microvolt = <1800000>;
0120 regulator-always-on;
0121 };
0122
0123 vcc_3v3_reg: regulator-5 {
0124 compatible = "regulator-fixed";
0125 regulator-name = "VCC_3V3";
0126 regulator-min-microvolt = <3300000>;
0127 regulator-max-microvolt = <3300000>;
0128 regulator-always-on;
0129 };
0130
0131 sound {
0132 compatible = "samsung,arndale-wm1811";
0133 samsung,audio-cpu = <&i2s0>;
0134 samsung,audio-codec = <&wm1811>;
0135 };
0136
0137 fixed-rate-clocks {
0138 xxti {
0139 compatible = "samsung,clock-xxti";
0140 clock-frequency = <24000000>;
0141 };
0142 };
0143
0144 // SMSC USB3503 connected in hardware only mode as a PHY
0145 usb_hub: usb-hub {
0146 compatible = "smsc,usb3503a";
0147
0148 reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
0149 connect-gpios = <&gpd1 7 GPIO_ACTIVE_HIGH>;
0150 };
0151 };
0152
0153 &clock {
0154 assigned-clocks = <&clock CLK_FOUT_EPLL>;
0155 assigned-clock-rates = <49152000>;
0156 };
0157
0158 &clock_audss {
0159 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
0160 assigned-clock-parents = <&clock CLK_FOUT_EPLL>;
0161 };
0162
0163 &cpu0 {
0164 cpu0-supply = <&buck2_reg>;
0165 };
0166
0167 &dsi_0 {
0168 vddcore-supply = <&ldo8_reg>;
0169 vddio-supply = <&ldo10_reg>;
0170 samsung,pll-clock-frequency = <24000000>;
0171 samsung,burst-clock-frequency = <320000000>;
0172 samsung,esc-clock-frequency = <10000000>;
0173 status = "okay";
0174
0175 bridge@0 {
0176 reg = <0>;
0177 compatible = "toshiba,tc358764";
0178 vddc-supply = <&vcc_1v2_reg>;
0179 vddio-supply = <&vcc_1v8_reg>;
0180 vddlvds-supply = <&vcc_3v3_reg>;
0181 reset-gpios = <&gpd1 6 GPIO_ACTIVE_LOW>;
0182 #address-cells = <1>;
0183 #size-cells = <0>;
0184 port@1 {
0185 reg = <1>;
0186 bridge_out_ep: endpoint {
0187 remote-endpoint = <&panel_ep>;
0188 };
0189 };
0190 };
0191 };
0192
0193 &fimd {
0194 status = "okay";
0195 };
0196
0197 &hdmi {
0198 pinctrl-names = "default";
0199 pinctrl-0 = <&hdmi_hpd>;
0200 status = "okay";
0201 ddc = <&i2c_ddc>;
0202 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
0203 vdd_osc-supply = <&ldo10_reg>;
0204 vdd_pll-supply = <&ldo8_reg>;
0205 vdd-supply = <&ldo8_reg>;
0206 };
0207
0208 &i2c_0 {
0209 status = "okay";
0210 samsung,i2c-sda-delay = <100>;
0211 samsung,i2c-max-bus-freq = <20000>;
0212 samsung,i2c-slave-addr = <0x66>;
0213
0214 pmic@66 {
0215 compatible = "samsung,s5m8767-pmic";
0216 reg = <0x66>;
0217 interrupt-parent = <&gpx3>;
0218 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
0219 pinctrl-names = "default";
0220 pinctrl-0 = <&s5m8767_irq>;
0221 wakeup-source;
0222
0223 vinb1-supply = <&main_dc_reg>;
0224 vinb2-supply = <&main_dc_reg>;
0225 vinb3-supply = <&main_dc_reg>;
0226 vinb4-supply = <&main_dc_reg>;
0227 vinb5-supply = <&main_dc_reg>;
0228 vinb6-supply = <&main_dc_reg>;
0229 vinb7-supply = <&main_dc_reg>;
0230 vinb8-supply = <&main_dc_reg>;
0231 vinb9-supply = <&main_dc_reg>;
0232
0233 vinl1-supply = <&buck7_reg>;
0234 vinl2-supply = <&buck7_reg>;
0235 vinl3-supply = <&buck7_reg>;
0236 vinl4-supply = <&main_dc_reg>;
0237 vinl5-supply = <&main_dc_reg>;
0238 vinl6-supply = <&main_dc_reg>;
0239 vinl7-supply = <&main_dc_reg>;
0240 vinl8-supply = <&buck8_reg>;
0241 vinl9-supply = <&buck8_reg>;
0242
0243 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
0244 <&gpd1 1 GPIO_ACTIVE_HIGH>,
0245 <&gpd1 2 GPIO_ACTIVE_HIGH>;
0246 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
0247 <&gpx2 4 GPIO_ACTIVE_HIGH>,
0248 <&gpx2 5 GPIO_ACTIVE_HIGH>;
0249
0250 s5m8767_osc: clocks {
0251 compatible = "samsung,s5m8767-clk";
0252 #clock-cells = <1>;
0253 clock-output-names = "s5m8767_ap", "unused1", "unused2";
0254 };
0255
0256 regulators {
0257 ldo1_reg: LDO1 {
0258 regulator-name = "VDD_ALIVE_1.0V";
0259 regulator-min-microvolt = <1100000>;
0260 regulator-max-microvolt = <1100000>;
0261 regulator-always-on;
0262 regulator-boot-on;
0263 op_mode = <1>;
0264 };
0265
0266 ldo2_reg: LDO2 {
0267 regulator-name = "VDD_28IO_DP_1.35V";
0268 regulator-min-microvolt = <1200000>;
0269 regulator-max-microvolt = <1200000>;
0270 regulator-always-on;
0271 regulator-boot-on;
0272 op_mode = <1>;
0273 };
0274
0275 ldo3_reg: LDO3 {
0276 regulator-name = "VDD_COMMON1_1.8V";
0277 regulator-min-microvolt = <1800000>;
0278 regulator-max-microvolt = <1800000>;
0279 regulator-always-on;
0280 regulator-boot-on;
0281 op_mode = <1>;
0282 };
0283
0284 ldo4_reg: LDO4 {
0285 regulator-name = "VDD_IOPERI_1.8V";
0286 regulator-min-microvolt = <1800000>;
0287 regulator-max-microvolt = <1800000>;
0288 regulator-always-on;
0289 op_mode = <1>;
0290 };
0291
0292 ldo5_reg: LDO5 {
0293 regulator-name = "VDD_EXT_1.8V";
0294 regulator-min-microvolt = <1800000>;
0295 regulator-max-microvolt = <1800000>;
0296 regulator-always-on;
0297 regulator-boot-on;
0298 op_mode = <1>;
0299 };
0300
0301 ldo6_reg: LDO6 {
0302 regulator-name = "VDD_MPLL_1.1V";
0303 regulator-min-microvolt = <1100000>;
0304 regulator-max-microvolt = <1100000>;
0305 regulator-always-on;
0306 regulator-boot-on;
0307 op_mode = <1>;
0308 };
0309
0310 ldo7_reg: LDO7 {
0311 regulator-name = "VDD_XPLL_1.1V";
0312 regulator-min-microvolt = <1100000>;
0313 regulator-max-microvolt = <1100000>;
0314 regulator-always-on;
0315 regulator-boot-on;
0316 op_mode = <1>;
0317 };
0318
0319 ldo8_reg: LDO8 {
0320 regulator-name = "VDD_COMMON2_1.0V";
0321 regulator-min-microvolt = <1000000>;
0322 regulator-max-microvolt = <1000000>;
0323 regulator-always-on;
0324 regulator-boot-on;
0325 op_mode = <1>;
0326 };
0327
0328 ldo9_reg: LDO9 {
0329 regulator-name = "VDD_33ON_3.0V";
0330 regulator-min-microvolt = <3000000>;
0331 regulator-max-microvolt = <3000000>;
0332 op_mode = <1>;
0333 };
0334
0335 ldo10_reg: LDO10 {
0336 regulator-name = "VDD_COMMON3_1.8V";
0337 regulator-min-microvolt = <1800000>;
0338 regulator-max-microvolt = <1800000>;
0339 regulator-always-on;
0340 regulator-boot-on;
0341 op_mode = <1>;
0342 };
0343
0344 ldo11_reg: LDO11 {
0345 regulator-name = "VDD_ABB2_1.8V";
0346 regulator-min-microvolt = <1800000>;
0347 regulator-max-microvolt = <1800000>;
0348 regulator-always-on;
0349 regulator-boot-on;
0350 op_mode = <1>;
0351 };
0352
0353 ldo12_reg: LDO12 {
0354 regulator-name = "VDD_USB_3.0V";
0355 regulator-min-microvolt = <3000000>;
0356 regulator-max-microvolt = <3000000>;
0357 regulator-always-on;
0358 regulator-boot-on;
0359 op_mode = <1>;
0360 };
0361
0362 ldo13_reg: LDO13 {
0363 regulator-name = "VDDQ_C2C_W_1.8V";
0364 regulator-min-microvolt = <1800000>;
0365 regulator-max-microvolt = <1800000>;
0366 regulator-always-on;
0367 regulator-boot-on;
0368 op_mode = <1>;
0369 };
0370
0371 ldo14_reg: LDO14 {
0372 regulator-name = "VDD18_ABB0_3_1.8V";
0373 regulator-min-microvolt = <1800000>;
0374 regulator-max-microvolt = <1800000>;
0375 regulator-always-on;
0376 regulator-boot-on;
0377 op_mode = <1>;
0378 };
0379
0380 ldo15_reg: LDO15 {
0381 regulator-name = "VDD10_COMMON4_1.0V";
0382 regulator-min-microvolt = <1000000>;
0383 regulator-max-microvolt = <1000000>;
0384 regulator-always-on;
0385 regulator-boot-on;
0386 op_mode = <1>;
0387 };
0388
0389 ldo16_reg: LDO16 {
0390 regulator-name = "VDD18_HSIC_1.8V";
0391 regulator-min-microvolt = <1800000>;
0392 regulator-max-microvolt = <1800000>;
0393 regulator-always-on;
0394 regulator-boot-on;
0395 op_mode = <1>;
0396 };
0397
0398 ldo17_reg: LDO17 {
0399 regulator-name = "VDDQ_MMC2_3_2.8V";
0400 regulator-min-microvolt = <2800000>;
0401 regulator-max-microvolt = <2800000>;
0402 regulator-always-on;
0403 regulator-boot-on;
0404 op_mode = <1>;
0405 };
0406
0407 ldo18_reg: LDO18 {
0408 regulator-name = "VDD_33ON_2.8V";
0409 regulator-min-microvolt = <2800000>;
0410 regulator-max-microvolt = <2800000>;
0411 op_mode = <1>;
0412 };
0413
0414 ldo22_reg: LDO22 {
0415 regulator-name = "EXT_33_OFF";
0416 regulator-min-microvolt = <3300000>;
0417 regulator-max-microvolt = <3300000>;
0418 op_mode = <1>;
0419 };
0420
0421 ldo23_reg: LDO23 {
0422 regulator-name = "EXT_28_OFF";
0423 regulator-min-microvolt = <2800000>;
0424 regulator-max-microvolt = <2800000>;
0425 op_mode = <1>;
0426 };
0427
0428 ldo25_reg: LDO25 {
0429 regulator-name = "PVDD_LDO25";
0430 regulator-min-microvolt = <1200000>;
0431 regulator-max-microvolt = <1200000>;
0432 op_mode = <1>;
0433 };
0434
0435 ldo26_reg: LDO26 {
0436 regulator-name = "EXT_18_OFF";
0437 regulator-min-microvolt = <1800000>;
0438 regulator-max-microvolt = <1800000>;
0439 op_mode = <1>;
0440 };
0441
0442 buck1_reg: BUCK1 {
0443 regulator-name = "VDD_MIF";
0444 regulator-min-microvolt = <950000>;
0445 regulator-max-microvolt = <1200000>;
0446 regulator-always-on;
0447 regulator-boot-on;
0448 op_mode = <1>;
0449 };
0450
0451 buck2_reg: BUCK2 {
0452 regulator-name = "VDD_ARM";
0453 regulator-min-microvolt = <912500>;
0454 regulator-max-microvolt = <1300000>;
0455 regulator-always-on;
0456 regulator-boot-on;
0457 op_mode = <1>;
0458 };
0459
0460 buck3_reg: BUCK3 {
0461 regulator-name = "VDD_INT";
0462 regulator-min-microvolt = <900000>;
0463 regulator-max-microvolt = <1200000>;
0464 regulator-always-on;
0465 regulator-boot-on;
0466 op_mode = <1>;
0467 };
0468
0469 buck4_reg: BUCK4 {
0470 regulator-name = "VDD_G3D";
0471 regulator-min-microvolt = <850000>;
0472 regulator-max-microvolt = <1300000>;
0473 regulator-always-on;
0474 regulator-boot-on;
0475 op_mode = <1>;
0476 };
0477
0478 buck5_reg: BUCK5 {
0479 regulator-name = "VDD_MEM_1.35V";
0480 regulator-min-microvolt = <750000>;
0481 regulator-max-microvolt = <1355000>;
0482 regulator-always-on;
0483 regulator-boot-on;
0484 op_mode = <1>;
0485 };
0486
0487 buck7_reg: BUCK7 {
0488 regulator-name = "PVDD_BUCK7";
0489 regulator-always-on;
0490 op_mode = <1>;
0491 };
0492
0493 buck8_reg: BUCK8 {
0494 regulator-name = "PVDD_BUCK8";
0495 regulator-always-on;
0496 op_mode = <1>;
0497 };
0498
0499 buck9_reg: BUCK9 {
0500 regulator-name = "VDD_33_OFF_EXT1";
0501 regulator-min-microvolt = <750000>;
0502 regulator-max-microvolt = <3000000>;
0503 op_mode = <1>;
0504 };
0505 };
0506 };
0507 };
0508
0509 &i2c_3 {
0510 status = "okay";
0511
0512 wm1811: audio-codec@1a {
0513 compatible = "wlf,wm1811";
0514 reg = <0x1a>;
0515 clocks = <&i2s0 CLK_I2S_CDCLK>;
0516 clock-names = "MCLK1";
0517
0518 AVDD2-supply = <&main_dc_reg>;
0519 CPVDD-supply = <&main_dc_reg>;
0520 DBVDD1-supply = <&main_dc_reg>;
0521 DBVDD2-supply = <&main_dc_reg>;
0522 DBVDD3-supply = <&main_dc_reg>;
0523 LDO1VDD-supply = <&main_dc_reg>;
0524 SPKVDD1-supply = <&main_dc_reg>;
0525 SPKVDD2-supply = <&main_dc_reg>;
0526
0527 wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
0528 wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
0529 };
0530 };
0531
0532 &i2c_8 {
0533 status = "okay";
0534 /* used by HDMI PHY */
0535 samsung,i2c-sda-delay = <100>;
0536 samsung,i2c-max-bus-freq = <66000>;
0537 };
0538
0539 &i2c_9 {
0540 status = "okay";
0541 samsung,i2c-sda-delay = <100>;
0542 samsung,i2c-max-bus-freq = <40000>;
0543 };
0544
0545 &i2s0 {
0546 assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
0547 assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
0548 status = "okay";
0549 };
0550
0551 &i2s0_bus {
0552 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>;
0553 };
0554
0555 &mali {
0556 mali-supply = <&buck4_reg>;
0557 status = "okay";
0558 };
0559
0560 &mixer {
0561 status = "okay";
0562 };
0563
0564 &mmc_0 {
0565 status = "okay";
0566 broken-cd;
0567 card-detect-delay = <200>;
0568 samsung,dw-mshc-ciu-div = <3>;
0569 samsung,dw-mshc-sdr-timing = <2 3>;
0570 samsung,dw-mshc-ddr-timing = <1 2>;
0571 vmmc-supply = <&mmc_reg>;
0572 pinctrl-names = "default";
0573 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
0574 bus-width = <8>;
0575 cap-mmc-highspeed;
0576 };
0577
0578 &mmc_2 {
0579 status = "okay";
0580 card-detect-delay = <200>;
0581 samsung,dw-mshc-ciu-div = <3>;
0582 samsung,dw-mshc-sdr-timing = <2 3>;
0583 samsung,dw-mshc-ddr-timing = <1 2>;
0584 vmmc-supply = <&mmc_reg>;
0585 pinctrl-names = "default";
0586 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
0587 bus-width = <4>;
0588 disable-wp;
0589 cap-sd-highspeed;
0590 };
0591
0592 &pinctrl_0 {
0593 s5m8767_irq: s5m8767-irq-pins {
0594 samsung,pins = "gpx3-2";
0595 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0596 };
0597 };
0598
0599 &rtc {
0600 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>;
0601 clock-names = "rtc", "rtc_src";
0602 status = "okay";
0603 };
0604
0605 &sata {
0606 status = "okay";
0607 };
0608
0609 &sata_phy {
0610 status = "okay";
0611 samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
0612 };
0613
0614 &sata_phy_i2c {
0615 status = "okay";
0616 };
0617
0618 &soc {
0619 /*
0620 * For unknown reasons HDMI-DDC does not work with Exynos I2C
0621 * controllers. Lets use software I2C over GPIO pins as a workaround.
0622 */
0623 i2c_ddc: i2c-10 {
0624 pinctrl-names = "default";
0625 pinctrl-0 = <&i2c2_gpio_bus>;
0626 status = "okay";
0627 compatible = "i2c-gpio";
0628 sda-gpios = <&gpa0 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0629 scl-gpios = <&gpa0 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0630 i2c-gpio,delay-us = <2>;
0631 #address-cells = <1>;
0632 #size-cells = <0>;
0633 };
0634 };
0635
0636 &usbdrd {
0637 vdd10-supply = <&ldo15_reg>;
0638 vdd33-supply = <&ldo12_reg>;
0639 };