1/* 2 * Hardkernel Odroid XU board device tree source 3 * 4 * Copyright (c) 2013 Samsung Electronics Co., Ltd. 5 * http://www.samsung.com 6 * Copyright (c) 2016 Krzysztof Kozlowski 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License version 2 as 10 * published by the Free Software Foundation. 11 */ 12 13/dts-v1/; 14#include "exynos5410.dtsi" 15#include <dt-bindings/clock/maxim,max77802.h> 16#include <dt-bindings/gpio/gpio.h> 17#include <dt-bindings/interrupt-controller/irq.h> 18#include "exynos54xx-odroidxu-leds.dtsi" 19 20/ { 21 model = "Hardkernel Odroid XU"; 22 compatible = "hardkernel,odroid-xu", "samsung,exynos5410", "samsung,exynos5"; 23 24 memory@40000000 { 25 device_type = "memory"; 26 reg = <0x40000000 0x7ea00000>; 27 }; 28 29 chosen { 30 stdout-path = "serial2:115200n8"; 31 }; 32 33 emmc_pwrseq: pwrseq { 34 pinctrl-0 = <&emmc_nrst_pin>; 35 pinctrl-names = "default"; 36 compatible = "mmc-pwrseq-emmc"; 37 reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>; 38 }; 39 40 fan0: pwm-fan { 41 compatible = "pwm-fan"; 42 pwms = <&pwm 0 20972 0>; 43 cooling-min-state = <0>; 44 cooling-max-state = <3>; 45 #cooling-cells = <2>; 46 cooling-levels = <0 130 170 230>; 47 }; 48 49 fin_pll: xxti { 50 compatible = "fixed-clock"; 51 clock-frequency = <24000000>; 52 clock-output-names = "fin_pll"; 53 #clock-cells = <0>; 54 }; 55 56 firmware@02073000 { 57 compatible = "samsung,secure-firmware"; 58 reg = <0x02073000 0x1000>; 59 }; 60}; 61 62&cpu0_thermal { 63 thermal-sensors = <&tmu_cpu0 0>; 64 polling-delay-passive = <0>; 65 polling-delay = <0>; 66 67 trips { 68 cpu_alert0: cpu-alert-0 { 69 temperature = <50000>; /* millicelsius */ 70 hysteresis = <5000>; /* millicelsius */ 71 type = "active"; 72 }; 73 cpu_alert1: cpu-alert-1 { 74 temperature = <60000>; /* millicelsius */ 75 hysteresis = <5000>; /* millicelsius */ 76 type = "active"; 77 }; 78 cpu_alert2: cpu-alert-2 { 79 temperature = <70000>; /* millicelsius */ 80 hysteresis = <5000>; /* millicelsius */ 81 type = "active"; 82 }; 83 cpu_crit0: cpu-crit-0 { 84 temperature = <120000>; /* millicelsius */ 85 hysteresis = <0>; /* millicelsius */ 86 type = "critical"; 87 }; 88 }; 89 90 cooling-maps { 91 map0 { 92 trip = <&cpu_alert0>; 93 cooling-device = <&fan0 0 1>; 94 }; 95 map1 { 96 trip = <&cpu_alert1>; 97 cooling-device = <&fan0 1 2>; 98 }; 99 map2 { 100 trip = <&cpu_alert2>; 101 cooling-device = <&fan0 2 3>; 102 }; 103 }; 104}; 105 106&hsi2c_4 { 107 samsung,i2c-sda-delay = <100>; 108 samsung,i2c-max-bus-freq = <400000>; 109 status = "okay"; 110 111 usb3503: usb-hub@08 { 112 compatible = "smsc,usb3503"; 113 reg = <0x08>; 114 115 intn-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>; 116 connect-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>; 117 reset-gpios = <&gpx1 4 GPIO_ACTIVE_HIGH>; 118 initial-mode = <1>; 119 120 clock-names = "refclk"; 121 clocks = <&pmu_system_controller 0>; 122 refclk-frequency = <24000000>; 123 }; 124 125 max77802: pmic@09 { 126 compatible = "maxim,max77802"; 127 reg = <0x9>; 128 interrupt-parent = <&gpx0>; 129 interrupts = <4 IRQ_TYPE_NONE>; 130 pinctrl-names = "default"; 131 pinctrl-0 = <&max77802_irq>, <&pmic_dvs_1>, <&pmic_dvs_2>, 132 <&pmic_dvs_3>; 133 #clock-cells = <1>; 134 135 inl1-supply = <&buck5_reg>; 136 inl2-supply = <&buck7_reg>; 137 inl3-supply = <&buck9_reg>; 138 inl4-supply = <&buck9_reg>; 139 inl5-supply = <&buck9_reg>; 140 inl6-supply = <&buck10_reg>; 141 inl7-supply = <&buck9_reg>; 142 /* inl9 supply is BOOST, not configured here */ 143 inl10-supply = <&buck7_reg>; 144 145 regulators { 146 buck1_reg: BUCK1 { 147 regulator-name = "vdd_mif"; 148 regulator-min-microvolt = <800000>; 149 regulator-max-microvolt = <1300000>; 150 regulator-always-on; 151 regulator-boot-on; 152 }; 153 154 buck2_reg: BUCK2 { 155 regulator-name = "vdd_arm"; 156 regulator-min-microvolt = <800000>; 157 regulator-max-microvolt = <1500000>; 158 regulator-always-on; 159 regulator-boot-on; 160 }; 161 162 buck3_reg: BUCK3 { 163 regulator-name = "vdd_int"; 164 regulator-min-microvolt = <800000>; 165 regulator-max-microvolt = <1400000>; 166 regulator-always-on; 167 regulator-boot-on; 168 }; 169 170 buck4_reg: BUCK4 { 171 regulator-name = "vdd_g3d"; 172 regulator-min-microvolt = <800000>; 173 regulator-max-microvolt = <1400000>; 174 regulator-always-on; 175 regulator-boot-on; 176 }; 177 178 buck5_reg: BUCK5 { 179 regulator-name = "vdd_mem"; 180 regulator-min-microvolt = <800000>; 181 regulator-max-microvolt = <1500000>; 182 regulator-always-on; 183 regulator-boot-on; 184 }; 185 186 buck6_reg: BUCK6 { 187 regulator-name = "vdd_kfc"; 188 regulator-min-microvolt = <800000>; 189 regulator-max-microvolt = <1500000>; 190 regulator-always-on; 191 regulator-boot-on; 192 }; 193 194 buck7_reg: BUCK7 { 195 regulator-name = "buck7"; 196 regulator-min-microvolt = <1300000>; 197 regulator-max-microvolt = <1300000>; 198 regulator-always-on; 199 regulator-boot-on; 200 }; 201 202 buck8_reg: BUCK8 { 203 /* vdd_mmc0 */ 204 regulator-name = "vddf_2v85"; 205 regulator-min-microvolt = <2850000>; 206 regulator-max-microvolt = <2850000>; 207 regulator-always-on; 208 regulator-boot-on; 209 }; 210 211 buck9_reg: BUCK9 { 212 regulator-name = "buck9"; 213 regulator-min-microvolt = <3000000>; 214 regulator-max-microvolt = <3000000>; 215 regulator-always-on; 216 regulator-boot-on; 217 }; 218 219 buck10_reg: BUCK10 { 220 regulator-name = "buck10"; 221 regulator-min-microvolt = <2950000>; 222 regulator-max-microvolt = <2950000>; 223 regulator-always-on; 224 regulator-boot-on; 225 }; 226 227 ldo1_reg: LDO1 { 228 regulator-name = "vdd_alive"; 229 regulator-min-microvolt = <1000000>; 230 regulator-max-microvolt = <1000000>; 231 regulator-always-on; 232 }; 233 234 ldo2_reg: LDO2 { 235 regulator-name = "vddq_m1_m2"; 236 regulator-min-microvolt = <1200000>; 237 regulator-max-microvolt = <1200000>; 238 regulator-always-on; 239 }; 240 241 ldo3_reg: LDO3 { 242 regulator-name = "vddq_gpio"; 243 regulator-min-microvolt = <1800000>; 244 regulator-max-microvolt = <1800000>; 245 regulator-always-on; 246 }; 247 248 ldo4_reg: LDO4 { 249 regulator-name = "vddq_mmc2"; 250 regulator-min-microvolt = <1800000>; 251 regulator-max-microvolt = <3000000>; 252 /* Having it off prevents reboot */ 253 regulator-always-on; 254 }; 255 256 ldo5_reg: LDO5 { 257 regulator-name = "vdd18_hsic"; 258 regulator-min-microvolt = <1800000>; 259 regulator-max-microvolt = <1800000>; 260 regulator-always-on; 261 }; 262 263 ldo6_reg: LDO6 { 264 regulator-name = "vdd18_bpll"; 265 regulator-min-microvolt = <1800000>; 266 regulator-max-microvolt = <1800000>; 267 regulator-always-on; 268 }; 269 270 ldo7_reg: LDO7 { 271 regulator-name = "vddq_lcd"; 272 regulator-min-microvolt = <1800000>; 273 regulator-max-microvolt = <1800000>; 274 }; 275 276 ldo8_reg: LDO8 { 277 regulator-name = "vdd10_hdmi"; 278 regulator-min-microvolt = <1000000>; 279 regulator-max-microvolt = <1000000>; 280 regulator-always-on; 281 }; 282 283 ldo9_reg: LDO9 { 284 regulator-name = "ldo9"; 285 }; 286 287 ldo10_reg: LDO10 { 288 regulator-name = "vdd18_mipi"; 289 regulator-min-microvolt = <1800000>; 290 regulator-max-microvolt = <1800000>; 291 regulator-always-on; 292 }; 293 294 ldo11_reg: LDO11 { 295 regulator-name = "vddq_mmc01"; 296 regulator-min-microvolt = <1800000>; 297 regulator-max-microvolt = <1800000>; 298 /* 299 * Having it off prevents accessing MMC after 300 * reboot with error: 301 * MMC Device 1: Clock OFF has been failed. 302 */ 303 regulator-always-on; 304 }; 305 306 ldo12_reg: LDO12 { 307 regulator-name = "vdd33_usb3"; 308 regulator-min-microvolt = <3300000>; 309 regulator-max-microvolt = <3300000>; 310 regulator-always-on; 311 }; 312 313 ldo13_reg: LDO13 { 314 regulator-name = "vddq_abbg0"; 315 regulator-min-microvolt = <1800000>; 316 regulator-max-microvolt = <1800000>; 317 regulator-always-on; 318 }; 319 320 ldo14_reg: LDO14 { 321 regulator-name = "vddq_abbg1"; 322 regulator-min-microvolt = <1800000>; 323 regulator-max-microvolt = <1800000>; 324 regulator-always-on; 325 }; 326 327 ldo15_reg: LDO15 { 328 regulator-name = "vdd10_usb3"; 329 regulator-min-microvolt = <1000000>; 330 regulator-max-microvolt = <1000000>; 331 regulator-always-on; 332 }; 333 334 ldo16_reg: LDO16 { 335 regulator-name = "ldo16"; 336 }; 337 338 ldo17_reg: LDO17 { 339 regulator-name = "cam_sensor_core"; 340 regulator-min-microvolt = <1200000>; 341 regulator-max-microvolt = <1200000>; 342 }; 343 344 ldo18_reg: LDO18 { 345 regulator-name = "ldo18"; 346 regulator-min-microvolt = <1800000>; 347 regulator-max-microvolt = <1800000>; 348 }; 349 350 ldo19_reg: LDO19 { 351 regulator-name = "ldo19"; 352 }; 353 354 ldo20_reg: LDO20 { 355 regulator-name = "vdd_mmc0"; 356 regulator-min-microvolt = <1800000>; 357 regulator-max-microvolt = <1800000>; 358 }; 359 360 ldo21_reg: LDO21 { 361 /* vdd_mmc2 */ 362 regulator-name = "vddf_2v8"; 363 regulator-min-microvolt = <2850000>; 364 regulator-max-microvolt = <2850000>; 365 }; 366 367 ldo22_reg: LDO22 { 368 regulator-name = "ldo22"; 369 }; 370 371 ldo23_reg: LDO23 { 372 regulator-name = "dp_p3v3"; 373 regulator-min-microvolt = <3300000>; 374 regulator-max-microvolt = <3300000>; 375 regulator-always-on; 376 }; 377 378 ldo24_reg: LDO24 { 379 regulator-name = "cam_af"; 380 regulator-min-microvolt = <2800000>; 381 regulator-max-microvolt = <2800000>; 382 }; 383 384 ldo25_reg: LDO25 { 385 regulator-name = "eth_p3v3"; 386 regulator-min-microvolt = <3300000>; 387 regulator-max-microvolt = <3300000>; 388 regulator-always-on; 389 }; 390 391 ldo26_reg: LDO26 { 392 regulator-name = "usb30_extclk"; 393 regulator-min-microvolt = <3300000>; 394 regulator-max-microvolt = <3300000>; 395 regulator-always-on; 396 }; 397 398 ldo27_reg: LDO27 { 399 regulator-name = "ldo27"; 400 }; 401 402 ldo28_reg: LDO28 { 403 regulator-name = "ldo28"; 404 }; 405 406 ldo29_reg: LDO29 { 407 regulator-name = "ldo29"; 408 }; 409 410 ldo30_reg: LDO30 { 411 regulator-name = "vddq_e1_e2"; 412 regulator-min-microvolt = <1200000>; 413 regulator-max-microvolt = <1200000>; 414 regulator-always-on; 415 }; 416 417 ldo31_reg: LDO31 { 418 regulator-name = "ldo31"; 419 }; 420 421 /* On revisions with ti,ina231 this is sensor VS */ 422 ldo32_reg: LDO32 { 423 regulator-name = "vs_power_meter"; 424 regulator-min-microvolt = <3300000>; 425 regulator-max-microvolt = <3300000>; 426 }; 427 428 ldo33_reg: LDO33 { 429 regulator-name = "ldo33"; 430 }; 431 432 ldo34_reg: LDO34 { 433 regulator-name = "ldo34"; 434 }; 435 436 ldo35_reg: LDO35 { 437 regulator-name = "ldo35"; 438 }; 439 }; 440 }; 441}; 442 443&mmc_0 { 444 status = "okay"; 445 mmc-pwrseq = <&emmc_pwrseq>; 446 cd-gpios = <&gpc0 2 GPIO_ACTIVE_LOW>; 447 card-detect-delay = <200>; 448 samsung,dw-mshc-ciu-div = <3>; 449 samsung,dw-mshc-sdr-timing = <0 4>; 450 samsung,dw-mshc-ddr-timing = <0 2>; 451 pinctrl-names = "default"; 452 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd>; 453 bus-width = <8>; 454 cap-mmc-highspeed; 455 mmc-hs200-1_8v; 456 vmmc-supply = <&ldo20_reg>; 457 vqmmc-supply = <&ldo11_reg>; 458}; 459 460&mmc_2 { 461 status = "okay"; 462 card-detect-delay = <200>; 463 samsung,dw-mshc-ciu-div = <3>; 464 samsung,dw-mshc-sdr-timing = <0 4>; 465 samsung,dw-mshc-ddr-timing = <0 2>; 466 pinctrl-names = "default"; 467 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>; 468 bus-width = <4>; 469 cap-sd-highspeed; 470 vmmc-supply = <&ldo21_reg>; 471 vqmmc-supply = <&ldo4_reg>; 472}; 473 474&pinctrl_0 { 475 emmc_nrst_pin: emmc-nrst { 476 samsung,pins = "gpd1-0"; 477 samsung,pin-function = <EXYNOS_PIN_FUNC_2>; 478 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 479 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 480 }; 481 482 pmic_dvs_3: pmic-dvs-3 { 483 samsung,pins = "gpx0-0"; 484 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 485 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 486 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 487 }; 488 489 pmic_dvs_2: pmic-dvs-2 { 490 samsung,pins = "gpx0-1"; 491 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 492 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 493 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 494 }; 495 496 pmic_dvs_1: pmic-dvs-1 { 497 samsung,pins = "gpx0-2"; 498 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 499 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 500 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 501 samsung,pin-val = <1>; 502 }; 503 504 max77802_irq: max77802-irq { 505 samsung,pins = "gpx0-4"; 506 samsung,pin-function = <EXYNOS_PIN_FUNC_F>; 507 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 508 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>; 509 }; 510}; 511 512&pwm { 513 /* 514 * PWM 0 -- fan 515 * PWM 1 -- Green LED 516 * PWM 2 -- Blue LED 517 * PWM 3 -- on MIPI connector for backlight 518 */ 519 pinctrl-0 = <&pwm0_out &pwm1_out &pwm2_out &pwm3_out>; 520 pinctrl-names = "default"; 521 status = "okay"; 522}; 523 524&rtc { 525 status = "okay"; 526 clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>; 527 clock-names = "rtc", "rtc_src"; 528}; 529 530&serial_0 { 531 status = "okay"; 532}; 533 534&serial_1 { 535 status = "okay"; 536}; 537 538&serial_2 { 539 status = "okay"; 540}; 541 542&serial_3 { 543 status = "okay"; 544}; 545 546&tmu_cpu0 { 547 vtmu-supply = <&ldo10_reg>; 548}; 549 550&tmu_cpu1 { 551 vtmu-supply = <&ldo10_reg>; 552}; 553 554&tmu_cpu2 { 555 vtmu-supply = <&ldo10_reg>; 556}; 557 558&tmu_cpu3 { 559 vtmu-supply = <&ldo10_reg>; 560}; 561 562&usbdrd_dwc3_0 { 563 dr_mode = "host"; 564}; 565 566&usbdrd_dwc3_1 { 567 dr_mode = "peripheral"; 568}; 569 570&usbdrd3_0 { 571 vdd33-supply = <&ldo12_reg>; 572 vdd10-supply = <&ldo15_reg>; 573}; 574 575&usbdrd3_1 { 576 vdd33-supply = <&ldo12_reg>; 577 vdd10-supply = <&ldo15_reg>; 578}; 579