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 menu { 34 label = "SW-TACT2"; 35 gpios = <&gpx1 4 GPIO_ACTIVE_LOW>; 36 linux,code = <KEY_MENU>; 37 wakeup-source; 38 }; 39 40 home { 41 label = "SW-TACT3"; 42 gpios = <&gpx1 5 GPIO_ACTIVE_LOW>; 43 linux,code = <KEY_HOME>; 44 wakeup-source; 45 }; 46 47 up { 48 label = "SW-TACT4"; 49 gpios = <&gpx1 6 GPIO_ACTIVE_LOW>; 50 linux,code = <KEY_UP>; 51 wakeup-source; 52 }; 53 54 down { 55 label = "SW-TACT5"; 56 gpios = <&gpx1 7 GPIO_ACTIVE_LOW>; 57 linux,code = <KEY_DOWN>; 58 wakeup-source; 59 }; 60 61 back { 62 label = "SW-TACT6"; 63 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 64 linux,code = <KEY_BACK>; 65 wakeup-source; 66 }; 67 68 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 s5m8767_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 222 vinb1-supply = <&main_dc_reg>; 223 vinb2-supply = <&main_dc_reg>; 224 vinb3-supply = <&main_dc_reg>; 225 vinb4-supply = <&main_dc_reg>; 226 vinb5-supply = <&main_dc_reg>; 227 vinb6-supply = <&main_dc_reg>; 228 vinb7-supply = <&main_dc_reg>; 229 vinb8-supply = <&main_dc_reg>; 230 vinb9-supply = <&main_dc_reg>; 231 232 vinl1-supply = <&buck7_reg>; 233 vinl2-supply = <&buck7_reg>; 234 vinl3-supply = <&buck7_reg>; 235 vinl4-supply = <&main_dc_reg>; 236 vinl5-supply = <&main_dc_reg>; 237 vinl6-supply = <&main_dc_reg>; 238 vinl7-supply = <&main_dc_reg>; 239 vinl8-supply = <&buck8_reg>; 240 vinl9-supply = <&buck8_reg>; 241 242 s5m8767,pmic-buck2-dvs-voltage = <1300000>; 243 s5m8767,pmic-buck3-dvs-voltage = <1100000>; 244 s5m8767,pmic-buck4-dvs-voltage = <1200000>; 245 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>, 246 <&gpd1 1 GPIO_ACTIVE_HIGH>, 247 <&gpd1 2 GPIO_ACTIVE_HIGH>; 248 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>, 249 <&gpx2 4 GPIO_ACTIVE_HIGH>, 250 <&gpx2 5 GPIO_ACTIVE_HIGH>; 251 252 s5m8767_osc: clocks { 253 compatible = "samsung,s5m8767-clk"; 254 #clock-cells = <1>; 255 clock-output-names = "s5m8767_ap", "unused1", "unused2"; 256 }; 257 258 regulators { 259 ldo1_reg: LDO1 { 260 regulator-name = "VDD_ALIVE_1.0V"; 261 regulator-min-microvolt = <1100000>; 262 regulator-max-microvolt = <1100000>; 263 regulator-always-on; 264 regulator-boot-on; 265 op_mode = <1>; 266 }; 267 268 ldo2_reg: LDO2 { 269 regulator-name = "VDD_28IO_DP_1.35V"; 270 regulator-min-microvolt = <1200000>; 271 regulator-max-microvolt = <1200000>; 272 regulator-always-on; 273 regulator-boot-on; 274 op_mode = <1>; 275 }; 276 277 ldo3_reg: LDO3 { 278 regulator-name = "VDD_COMMON1_1.8V"; 279 regulator-min-microvolt = <1800000>; 280 regulator-max-microvolt = <1800000>; 281 regulator-always-on; 282 regulator-boot-on; 283 op_mode = <1>; 284 }; 285 286 ldo4_reg: LDO4 { 287 regulator-name = "VDD_IOPERI_1.8V"; 288 regulator-min-microvolt = <1800000>; 289 regulator-max-microvolt = <1800000>; 290 regulator-always-on; 291 op_mode = <1>; 292 }; 293 294 ldo5_reg: LDO5 { 295 regulator-name = "VDD_EXT_1.8V"; 296 regulator-min-microvolt = <1800000>; 297 regulator-max-microvolt = <1800000>; 298 regulator-always-on; 299 regulator-boot-on; 300 op_mode = <1>; 301 }; 302 303 ldo6_reg: LDO6 { 304 regulator-name = "VDD_MPLL_1.1V"; 305 regulator-min-microvolt = <1100000>; 306 regulator-max-microvolt = <1100000>; 307 regulator-always-on; 308 regulator-boot-on; 309 op_mode = <1>; 310 }; 311 312 ldo7_reg: LDO7 { 313 regulator-name = "VDD_XPLL_1.1V"; 314 regulator-min-microvolt = <1100000>; 315 regulator-max-microvolt = <1100000>; 316 regulator-always-on; 317 regulator-boot-on; 318 op_mode = <1>; 319 }; 320 321 ldo8_reg: LDO8 { 322 regulator-name = "VDD_COMMON2_1.0V"; 323 regulator-min-microvolt = <1000000>; 324 regulator-max-microvolt = <1000000>; 325 regulator-always-on; 326 regulator-boot-on; 327 op_mode = <1>; 328 }; 329 330 ldo9_reg: LDO9 { 331 regulator-name = "VDD_33ON_3.0V"; 332 regulator-min-microvolt = <3000000>; 333 regulator-max-microvolt = <3000000>; 334 op_mode = <1>; 335 }; 336 337 ldo10_reg: LDO10 { 338 regulator-name = "VDD_COMMON3_1.8V"; 339 regulator-min-microvolt = <1800000>; 340 regulator-max-microvolt = <1800000>; 341 regulator-always-on; 342 regulator-boot-on; 343 op_mode = <1>; 344 }; 345 346 ldo11_reg: LDO11 { 347 regulator-name = "VDD_ABB2_1.8V"; 348 regulator-min-microvolt = <1800000>; 349 regulator-max-microvolt = <1800000>; 350 regulator-always-on; 351 regulator-boot-on; 352 op_mode = <1>; 353 }; 354 355 ldo12_reg: LDO12 { 356 regulator-name = "VDD_USB_3.0V"; 357 regulator-min-microvolt = <3000000>; 358 regulator-max-microvolt = <3000000>; 359 regulator-always-on; 360 regulator-boot-on; 361 op_mode = <1>; 362 }; 363 364 ldo13_reg: LDO13 { 365 regulator-name = "VDDQ_C2C_W_1.8V"; 366 regulator-min-microvolt = <1800000>; 367 regulator-max-microvolt = <1800000>; 368 regulator-always-on; 369 regulator-boot-on; 370 op_mode = <1>; 371 }; 372 373 ldo14_reg: LDO14 { 374 regulator-name = "VDD18_ABB0_3_1.8V"; 375 regulator-min-microvolt = <1800000>; 376 regulator-max-microvolt = <1800000>; 377 regulator-always-on; 378 regulator-boot-on; 379 op_mode = <1>; 380 }; 381 382 ldo15_reg: LDO15 { 383 regulator-name = "VDD10_COMMON4_1.0V"; 384 regulator-min-microvolt = <1000000>; 385 regulator-max-microvolt = <1000000>; 386 regulator-always-on; 387 regulator-boot-on; 388 op_mode = <1>; 389 }; 390 391 ldo16_reg: LDO16 { 392 regulator-name = "VDD18_HSIC_1.8V"; 393 regulator-min-microvolt = <1800000>; 394 regulator-max-microvolt = <1800000>; 395 regulator-always-on; 396 regulator-boot-on; 397 op_mode = <1>; 398 }; 399 400 ldo17_reg: LDO17 { 401 regulator-name = "VDDQ_MMC2_3_2.8V"; 402 regulator-min-microvolt = <2800000>; 403 regulator-max-microvolt = <2800000>; 404 regulator-always-on; 405 regulator-boot-on; 406 op_mode = <1>; 407 }; 408 409 ldo18_reg: LDO18 { 410 regulator-name = "VDD_33ON_2.8V"; 411 regulator-min-microvolt = <2800000>; 412 regulator-max-microvolt = <2800000>; 413 op_mode = <1>; 414 }; 415 416 ldo22_reg: LDO22 { 417 regulator-name = "EXT_33_OFF"; 418 regulator-min-microvolt = <3300000>; 419 regulator-max-microvolt = <3300000>; 420 op_mode = <1>; 421 }; 422 423 ldo23_reg: LDO23 { 424 regulator-name = "EXT_28_OFF"; 425 regulator-min-microvolt = <2800000>; 426 regulator-max-microvolt = <2800000>; 427 op_mode = <1>; 428 }; 429 430 ldo25_reg: LDO25 { 431 regulator-name = "PVDD_LDO25"; 432 regulator-min-microvolt = <1200000>; 433 regulator-max-microvolt = <1200000>; 434 op_mode = <1>; 435 }; 436 437 ldo26_reg: LDO26 { 438 regulator-name = "EXT_18_OFF"; 439 regulator-min-microvolt = <1800000>; 440 regulator-max-microvolt = <1800000>; 441 op_mode = <1>; 442 }; 443 444 buck1_reg: BUCK1 { 445 regulator-name = "VDD_MIF"; 446 regulator-min-microvolt = <950000>; 447 regulator-max-microvolt = <1200000>; 448 regulator-always-on; 449 regulator-boot-on; 450 op_mode = <1>; 451 }; 452 453 buck2_reg: BUCK2 { 454 regulator-name = "VDD_ARM"; 455 regulator-min-microvolt = <912500>; 456 regulator-max-microvolt = <1300000>; 457 regulator-always-on; 458 regulator-boot-on; 459 op_mode = <1>; 460 }; 461 462 buck3_reg: BUCK3 { 463 regulator-name = "VDD_INT"; 464 regulator-min-microvolt = <900000>; 465 regulator-max-microvolt = <1200000>; 466 regulator-always-on; 467 regulator-boot-on; 468 op_mode = <1>; 469 }; 470 471 buck4_reg: BUCK4 { 472 regulator-name = "VDD_G3D"; 473 regulator-min-microvolt = <850000>; 474 regulator-max-microvolt = <1300000>; 475 regulator-always-on; 476 regulator-boot-on; 477 op_mode = <1>; 478 }; 479 480 buck5_reg: BUCK5 { 481 regulator-name = "VDD_MEM_1.35V"; 482 regulator-min-microvolt = <750000>; 483 regulator-max-microvolt = <1355000>; 484 regulator-always-on; 485 regulator-boot-on; 486 op_mode = <1>; 487 }; 488 489 buck7_reg: BUCK7 { 490 regulator-name = "PVDD_BUCK7"; 491 regulator-always-on; 492 op_mode = <1>; 493 }; 494 495 buck8_reg: BUCK8 { 496 regulator-name = "PVDD_BUCK8"; 497 regulator-always-on; 498 op_mode = <1>; 499 }; 500 501 buck9_reg: BUCK9 { 502 regulator-name = "VDD_33_OFF_EXT1"; 503 regulator-min-microvolt = <750000>; 504 regulator-max-microvolt = <3000000>; 505 op_mode = <1>; 506 }; 507 }; 508 }; 509}; 510 511&i2c_3 { 512 status = "okay"; 513 514 wm1811: codec@1a { 515 compatible = "wlf,wm1811"; 516 reg = <0x1a>; 517 clocks = <&i2s0 CLK_I2S_CDCLK>; 518 clock-names = "MCLK1"; 519 520 AVDD2-supply = <&main_dc_reg>; 521 CPVDD-supply = <&main_dc_reg>; 522 DBVDD1-supply = <&main_dc_reg>; 523 DBVDD2-supply = <&main_dc_reg>; 524 DBVDD3-supply = <&main_dc_reg>; 525 LDO1VDD-supply = <&main_dc_reg>; 526 SPKVDD1-supply = <&main_dc_reg>; 527 SPKVDD2-supply = <&main_dc_reg>; 528 529 wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>; 530 wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>; 531 }; 532}; 533 534&i2c_8 { 535 status = "okay"; 536 /* used by HDMI PHY */ 537 samsung,i2c-sda-delay = <100>; 538 samsung,i2c-max-bus-freq = <66000>; 539}; 540 541&i2c_9 { 542 status = "okay"; 543 samsung,i2c-sda-delay = <100>; 544 samsung,i2c-max-bus-freq = <40000>; 545}; 546 547&i2s0 { 548 assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>; 549 assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>; 550 status = "okay"; 551}; 552 553&i2s0_bus { 554 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV2>; 555}; 556 557&mali { 558 mali-supply = <&buck4_reg>; 559 status = "okay"; 560}; 561 562&mixer { 563 status = "okay"; 564}; 565 566&mmc_0 { 567 status = "okay"; 568 broken-cd; 569 card-detect-delay = <200>; 570 samsung,dw-mshc-ciu-div = <3>; 571 samsung,dw-mshc-sdr-timing = <2 3>; 572 samsung,dw-mshc-ddr-timing = <1 2>; 573 vmmc-supply = <&mmc_reg>; 574 pinctrl-names = "default"; 575 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>; 576 bus-width = <8>; 577 cap-mmc-highspeed; 578}; 579 580&mmc_2 { 581 status = "okay"; 582 card-detect-delay = <200>; 583 samsung,dw-mshc-ciu-div = <3>; 584 samsung,dw-mshc-sdr-timing = <2 3>; 585 samsung,dw-mshc-ddr-timing = <1 2>; 586 vmmc-supply = <&mmc_reg>; 587 pinctrl-names = "default"; 588 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 589 bus-width = <4>; 590 disable-wp; 591 cap-sd-highspeed; 592}; 593 594&pinctrl_0 { 595 s5m8767_irq: s5m8767-irq { 596 samsung,pins = "gpx3-2"; 597 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 598 }; 599}; 600 601&rtc { 602 clocks = <&clock CLK_RTC>, <&s5m8767_osc S2MPS11_CLK_AP>; 603 clock-names = "rtc", "rtc_src"; 604 status = "okay"; 605}; 606 607&sata { 608 status = "okay"; 609}; 610 611&sata_phy { 612 status = "okay"; 613 samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>; 614}; 615 616&sata_phy_i2c { 617 status = "okay"; 618}; 619 620&soc { 621 /* 622 * For unknown reasons HDMI-DDC does not work with Exynos I2C 623 * controllers. Lets use software I2C over GPIO pins as a workaround. 624 */ 625 i2c_ddc: i2c-10 { 626 pinctrl-names = "default"; 627 pinctrl-0 = <&i2c2_gpio_bus>; 628 status = "okay"; 629 compatible = "i2c-gpio"; 630 sda-gpios = <&gpa0 6 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 631 scl-gpios = <&gpa0 7 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 632 i2c-gpio,delay-us = <2>; 633 #address-cells = <1>; 634 #size-cells = <0>; 635 }; 636}; 637