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}; 640