1/* 2 * Common definition for Hardkernel's Exynos4412 based ODROID-X/X2/U2/U3 boards 3 * device tree source 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * published by the Free Software Foundation. 8*/ 9 10#include <dt-bindings/sound/samsung-i2s.h> 11#include <dt-bindings/input/input.h> 12#include <dt-bindings/clock/maxim,max77686.h> 13#include "exynos4412.dtsi" 14#include "exynos4412-ppmu-common.dtsi" 15#include <dt-bindings/gpio/gpio.h> 16#include "exynos-mfc-reserved-memory.dtsi" 17 18/ { 19 chosen { 20 stdout-path = &serial_1; 21 }; 22 23 firmware@0204F000 { 24 compatible = "samsung,secure-firmware"; 25 reg = <0x0204F000 0x1000>; 26 }; 27 28 gpio_keys { 29 compatible = "gpio-keys"; 30 pinctrl-names = "default"; 31 pinctrl-0 = <&gpio_power_key>; 32 33 power_key { 34 interrupt-parent = <&gpx1>; 35 interrupts = <3 IRQ_TYPE_NONE>; 36 gpios = <&gpx1 3 GPIO_ACTIVE_LOW>; 37 linux,code = <KEY_POWER>; 38 label = "power key"; 39 debounce-interval = <10>; 40 wakeup-source; 41 }; 42 }; 43 44 sound: sound { 45 compatible = "simple-audio-card"; 46 47 simple-audio-card,format = "i2s"; 48 simple-audio-card,bitclock-master = <&link0_codec>; 49 simple-audio-card,frame-master = <&link0_codec>; 50 51 simple-audio-card,cpu { 52 sound-dai = <&i2s0 0>; 53 system-clock-frequency = <19200000>; 54 }; 55 56 link0_codec: simple-audio-card,codec { 57 sound-dai = <&max98090>; 58 clocks = <&i2s0 CLK_I2S_CDCLK>; 59 }; 60 }; 61 62 emmc_pwrseq: pwrseq { 63 pinctrl-0 = <&emmc_rstn>; 64 pinctrl-names = "default"; 65 compatible = "mmc-pwrseq-emmc"; 66 reset-gpios = <&gpk1 2 GPIO_ACTIVE_LOW>; 67 }; 68 69 camera { 70 status = "okay"; 71 pinctrl-names = "default"; 72 pinctrl-0 = <>; 73 }; 74 75 fixed-rate-clocks { 76 xxti { 77 compatible = "samsung,clock-xxti"; 78 clock-frequency = <0>; 79 }; 80 81 xusbxti { 82 compatible = "samsung,clock-xusbxti"; 83 clock-frequency = <24000000>; 84 }; 85 }; 86 87 thermal-zones { 88 cpu_thermal: cpu-thermal { 89 cooling-maps { 90 cooling_map0: map0 { 91 /* Corresponds to 800MHz at freq_table */ 92 cooling-device = <&cpu0 7 7>; 93 }; 94 cooling_map1: map1 { 95 /* Corresponds to 200MHz at freq_table */ 96 cooling-device = <&cpu0 13 13>; 97 }; 98 }; 99 }; 100 }; 101}; 102 103&bus_dmc { 104 devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>; 105 vdd-supply = <&buck1_reg>; 106 status = "okay"; 107}; 108 109&bus_acp { 110 devfreq = <&bus_dmc>; 111 status = "okay"; 112}; 113 114&bus_c2c { 115 devfreq = <&bus_dmc>; 116 status = "okay"; 117}; 118 119&bus_leftbus { 120 devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>; 121 vdd-supply = <&buck3_reg>; 122 status = "okay"; 123}; 124 125&bus_rightbus { 126 devfreq = <&bus_leftbus>; 127 status = "okay"; 128}; 129 130&bus_display { 131 devfreq = <&bus_leftbus>; 132 status = "okay"; 133}; 134 135&bus_fsys { 136 devfreq = <&bus_leftbus>; 137 status = "okay"; 138}; 139 140&bus_peri { 141 devfreq = <&bus_leftbus>; 142 status = "okay"; 143}; 144 145&bus_mfc { 146 devfreq = <&bus_leftbus>; 147 status = "okay"; 148}; 149 150&clock_audss { 151 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 152 <&clock_audss EXYNOS_MOUT_I2S>, 153 <&clock_audss EXYNOS_DOUT_SRP>, 154 <&clock_audss EXYNOS_DOUT_AUD_BUS>; 155 assigned-clock-parents = <&clock CLK_FOUT_EPLL>, 156 <&clock_audss EXYNOS_MOUT_AUDSS>; 157 assigned-clock-rates = <0>, <0>, <192000000>, <19200000>; 158}; 159 160&cpu0 { 161 cpu0-supply = <&buck2_reg>; 162}; 163 164&pinctrl_1 { 165 gpio_power_key: power_key { 166 samsung,pins = "gpx1-3"; 167 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 168 }; 169 170 max77686_irq: max77686-irq { 171 samsung,pins = "gpx3-2"; 172 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 173 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 174 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 175 }; 176 177 hdmi_hpd: hdmi-hpd { 178 samsung,pins = "gpx3-7"; 179 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>; 180 }; 181 182 emmc_rstn: emmc-rstn { 183 samsung,pins = "gpk1-2"; 184 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 185 }; 186}; 187 188&ehci { 189 status = "okay"; 190}; 191 192&exynos_usbphy { 193 status = "okay"; 194}; 195 196&fimc_0 { 197 status = "okay"; 198 assigned-clocks = <&clock CLK_MOUT_FIMC0>, 199 <&clock CLK_SCLK_FIMC0>; 200 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 201 assigned-clock-rates = <0>, <176000000>; 202}; 203 204&fimc_1 { 205 status = "okay"; 206 assigned-clocks = <&clock CLK_MOUT_FIMC1>, 207 <&clock CLK_SCLK_FIMC1>; 208 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 209 assigned-clock-rates = <0>, <176000000>; 210}; 211 212&fimc_2 { 213 status = "okay"; 214 assigned-clocks = <&clock CLK_MOUT_FIMC2>, 215 <&clock CLK_SCLK_FIMC2>; 216 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 217 assigned-clock-rates = <0>, <176000000>; 218}; 219 220&fimc_3 { 221 status = "okay"; 222 assigned-clocks = <&clock CLK_MOUT_FIMC3>, 223 <&clock CLK_SCLK_FIMC3>; 224 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 225 assigned-clock-rates = <0>, <176000000>; 226}; 227 228&hdmi { 229 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 230 pinctrl-names = "default"; 231 pinctrl-0 = <&hdmi_hpd>; 232 vdd-supply = <&ldo8_reg>; 233 vdd_osc-supply = <&ldo10_reg>; 234 vdd_pll-supply = <&ldo8_reg>; 235 ddc = <&i2c_2>; 236 status = "okay"; 237}; 238 239&hdmicec { 240 status = "okay"; 241}; 242 243&hsotg { 244 dr_mode = "peripheral"; 245 status = "okay"; 246 vusb_d-supply = <&ldo15_reg>; 247 vusb_a-supply = <&ldo12_reg>; 248}; 249 250&i2c_0 { 251 samsung,i2c-sda-delay = <100>; 252 samsung,i2c-max-bus-freq = <400000>; 253 status = "okay"; 254 255 usb3503: usb3503@08 { 256 compatible = "smsc,usb3503"; 257 reg = <0x08>; 258 259 intn-gpios = <&gpx3 0 GPIO_ACTIVE_HIGH>; 260 connect-gpios = <&gpx3 4 GPIO_ACTIVE_HIGH>; 261 reset-gpios = <&gpx3 5 GPIO_ACTIVE_HIGH>; 262 initial-mode = <1>; 263 }; 264 265 max77686: pmic@09 { 266 compatible = "maxim,max77686"; 267 interrupt-parent = <&gpx3>; 268 interrupts = <2 IRQ_TYPE_NONE>; 269 pinctrl-names = "default"; 270 pinctrl-0 = <&max77686_irq>; 271 reg = <0x09>; 272 #clock-cells = <1>; 273 274 voltage-regulators { 275 ldo1_reg: LDO1 { 276 regulator-name = "VDD_ALIVE_1.0V"; 277 regulator-min-microvolt = <1000000>; 278 regulator-max-microvolt = <1000000>; 279 regulator-always-on; 280 }; 281 282 ldo2_reg: LDO2 { 283 regulator-name = "VDDQ_M1_2_1.8V"; 284 regulator-min-microvolt = <1800000>; 285 regulator-max-microvolt = <1800000>; 286 regulator-always-on; 287 }; 288 289 ldo3_reg: LDO3 { 290 regulator-name = "VDDQ_EXT_1.8V"; 291 regulator-min-microvolt = <1800000>; 292 regulator-max-microvolt = <1800000>; 293 regulator-always-on; 294 }; 295 296 ldo4_reg: LDO4 { 297 regulator-name = "VDDQ_MMC2_2.8V"; 298 regulator-min-microvolt = <2800000>; 299 regulator-max-microvolt = <2800000>; 300 regulator-boot-on; 301 }; 302 303 ldo5_reg: LDO5 { 304 regulator-name = "VDDQ_MMC1_3_1.8V"; 305 regulator-min-microvolt = <1800000>; 306 regulator-max-microvolt = <1800000>; 307 regulator-always-on; 308 regulator-boot-on; 309 }; 310 311 ldo6_reg: LDO6 { 312 regulator-name = "VDD10_MPLL_1.0V"; 313 regulator-min-microvolt = <1000000>; 314 regulator-max-microvolt = <1000000>; 315 regulator-always-on; 316 }; 317 318 ldo7_reg: LDO7 { 319 regulator-name = "VDD10_XPLL_1.0V"; 320 regulator-min-microvolt = <1000000>; 321 regulator-max-microvolt = <1000000>; 322 regulator-always-on; 323 }; 324 325 ldo8_reg: LDO8 { 326 regulator-name = "VDD10_HDMI_1.0V"; 327 regulator-min-microvolt = <1000000>; 328 regulator-max-microvolt = <1000000>; 329 }; 330 331 ldo10_reg: LDO10 { 332 regulator-name = "VDDQ_MIPIHSI_1.8V"; 333 regulator-min-microvolt = <1800000>; 334 regulator-max-microvolt = <1800000>; 335 }; 336 337 ldo11_reg: LDO11 { 338 regulator-name = "VDD18_ABB1_1.8V"; 339 regulator-min-microvolt = <1800000>; 340 regulator-max-microvolt = <1800000>; 341 regulator-always-on; 342 }; 343 344 ldo12_reg: LDO12 { 345 regulator-name = "VDD33_USB_3.3V"; 346 regulator-min-microvolt = <3300000>; 347 regulator-max-microvolt = <3300000>; 348 regulator-always-on; 349 regulator-boot-on; 350 }; 351 352 ldo13_reg: LDO13 { 353 regulator-name = "VDDQ_C2C_W_1.8V"; 354 regulator-min-microvolt = <1800000>; 355 regulator-max-microvolt = <1800000>; 356 regulator-always-on; 357 regulator-boot-on; 358 }; 359 360 ldo14_reg: LDO14 { 361 regulator-name = "VDD18_ABB0_2_1.8V"; 362 regulator-min-microvolt = <1800000>; 363 regulator-max-microvolt = <1800000>; 364 regulator-always-on; 365 regulator-boot-on; 366 }; 367 368 ldo15_reg: LDO15 { 369 regulator-name = "VDD10_HSIC_1.0V"; 370 regulator-min-microvolt = <1000000>; 371 regulator-max-microvolt = <1000000>; 372 regulator-always-on; 373 regulator-boot-on; 374 }; 375 376 ldo16_reg: LDO16 { 377 regulator-name = "VDD18_HSIC_1.8V"; 378 regulator-min-microvolt = <1800000>; 379 regulator-max-microvolt = <1800000>; 380 regulator-always-on; 381 regulator-boot-on; 382 }; 383 384 ldo20_reg: LDO20 { 385 regulator-name = "LDO20_1.8V"; 386 regulator-min-microvolt = <1800000>; 387 regulator-max-microvolt = <1800000>; 388 regulator-boot-on; 389 }; 390 391 ldo21_reg: LDO21 { 392 regulator-name = "TFLASH_2.8V"; 393 regulator-min-microvolt = <2800000>; 394 regulator-max-microvolt = <2800000>; 395 regulator-boot-on; 396 }; 397 398 ldo22_reg: LDO22 { 399 /* 400 * Only U3 uses it, so let it define the 401 * constraints 402 */ 403 regulator-name = "LDO22"; 404 regulator-boot-on; 405 }; 406 407 ldo25_reg: LDO25 { 408 regulator-name = "VDDQ_LCD_1.8V"; 409 regulator-min-microvolt = <1800000>; 410 regulator-max-microvolt = <1800000>; 411 regulator-always-on; 412 regulator-boot-on; 413 }; 414 415 buck1_reg: BUCK1 { 416 regulator-name = "vdd_mif"; 417 regulator-min-microvolt = <900000>; 418 regulator-max-microvolt = <1100000>; 419 regulator-always-on; 420 regulator-boot-on; 421 }; 422 423 buck2_reg: BUCK2 { 424 regulator-name = "vdd_arm"; 425 regulator-min-microvolt = <900000>; 426 regulator-max-microvolt = <1350000>; 427 regulator-always-on; 428 regulator-boot-on; 429 }; 430 431 buck3_reg: BUCK3 { 432 regulator-name = "vdd_int"; 433 regulator-min-microvolt = <900000>; 434 regulator-max-microvolt = <1050000>; 435 regulator-always-on; 436 regulator-boot-on; 437 }; 438 439 buck4_reg: BUCK4 { 440 regulator-name = "vdd_g3d"; 441 regulator-min-microvolt = <900000>; 442 regulator-max-microvolt = <1100000>; 443 regulator-microvolt-offset = <50000>; 444 }; 445 446 buck5_reg: BUCK5 { 447 regulator-name = "VDDQ_CKEM1_2_1.2V"; 448 regulator-min-microvolt = <1200000>; 449 regulator-max-microvolt = <1200000>; 450 regulator-always-on; 451 regulator-boot-on; 452 }; 453 454 buck6_reg: BUCK6 { 455 regulator-name = "BUCK6_1.35V"; 456 regulator-min-microvolt = <1350000>; 457 regulator-max-microvolt = <1350000>; 458 regulator-always-on; 459 regulator-boot-on; 460 }; 461 462 buck7_reg: BUCK7 { 463 regulator-name = "BUCK7_2.0V"; 464 regulator-min-microvolt = <2000000>; 465 regulator-max-microvolt = <2000000>; 466 regulator-always-on; 467 }; 468 469 buck8_reg: BUCK8 { 470 /* 471 * Constraints set by specific board: X, 472 * X2 and U3. 473 */ 474 regulator-name = "BUCK8_2.8V"; 475 }; 476 }; 477 }; 478}; 479 480&i2c_1 { 481 status = "okay"; 482 max98090: max98090@10 { 483 compatible = "maxim,max98090"; 484 reg = <0x10>; 485 interrupt-parent = <&gpx0>; 486 interrupts = <0 IRQ_TYPE_NONE>; 487 clocks = <&i2s0 CLK_I2S_CDCLK>; 488 clock-names = "mclk"; 489 #sound-dai-cells = <0>; 490 }; 491}; 492 493&i2c_2 { 494 status = "okay"; 495}; 496 497&i2c_8 { 498 status = "okay"; 499}; 500 501&i2s0 { 502 pinctrl-0 = <&i2s0_bus>; 503 pinctrl-names = "default"; 504 status = "okay"; 505}; 506 507&mixer { 508 status = "okay"; 509}; 510 511&mshc_0 { 512 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 513 pinctrl-names = "default"; 514 vmmc-supply = <&ldo20_reg>; 515 mmc-pwrseq = <&emmc_pwrseq>; 516 status = "okay"; 517 518 broken-cd; 519 card-detect-delay = <200>; 520 samsung,dw-mshc-ciu-div = <3>; 521 samsung,dw-mshc-sdr-timing = <2 3>; 522 samsung,dw-mshc-ddr-timing = <1 2>; 523 bus-width = <8>; 524 cap-mmc-highspeed; 525}; 526 527&rtc { 528 status = "okay"; 529 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>; 530 clock-names = "rtc", "rtc_src"; 531}; 532 533&sdhci_2 { 534 bus-width = <4>; 535 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 536 pinctrl-names = "default"; 537 vmmc-supply = <&ldo21_reg>; 538 vqmmc-supply = <&ldo4_reg>; 539 cd-gpios = <&gpk2 2 GPIO_ACTIVE_HIGH>; 540 cd-inverted; 541 status = "okay"; 542}; 543 544&serial_0 { 545 status = "okay"; 546}; 547 548&serial_1 { 549 status = "okay"; 550}; 551 552&tmu { 553 vtmu-supply = <&ldo10_reg>; 554 status = "okay"; 555}; 556