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 15/ { 16 chosen { 17 stdout-path = &serial_1; 18 }; 19 20 firmware@0204F000 { 21 compatible = "samsung,secure-firmware"; 22 reg = <0x0204F000 0x1000>; 23 }; 24 25 gpio_keys { 26 compatible = "gpio-keys"; 27 pinctrl-names = "default"; 28 pinctrl-0 = <&gpio_power_key>; 29 30 power_key { 31 interrupt-parent = <&gpx1>; 32 interrupts = <3 0>; 33 gpios = <&gpx1 3 1>; 34 linux,code = <KEY_POWER>; 35 label = "power key"; 36 debounce-interval = <10>; 37 gpio-key,wakeup; 38 }; 39 }; 40 41 i2s0: i2s@03830000 { 42 pinctrl-0 = <&i2s0_bus>; 43 pinctrl-names = "default"; 44 status = "okay"; 45 clocks = <&clock_audss EXYNOS_I2S_BUS>, 46 <&clock_audss EXYNOS_DOUT_AUD_BUS>, 47 <&clock_audss EXYNOS_SCLK_I2S>; 48 clock-names = "iis", "i2s_opclk0", "i2s_opclk1"; 49 }; 50 51 sound: sound { 52 compatible = "simple-audio-card"; 53 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>, 54 <&clock_audss EXYNOS_MOUT_I2S>, 55 <&clock_audss EXYNOS_DOUT_SRP>, 56 <&clock_audss EXYNOS_DOUT_AUD_BUS>; 57 assigned-clock-parents = <&clock CLK_FOUT_EPLL>, 58 <&clock_audss EXYNOS_MOUT_AUDSS>; 59 assigned-clock-rates = <0>, 60 <0>, 61 <192000000>, 62 <19200000>; 63 64 simple-audio-card,format = "i2s"; 65 simple-audio-card,bitclock-master = <&link0_codec>; 66 simple-audio-card,frame-master = <&link0_codec>; 67 68 simple-audio-card,cpu { 69 sound-dai = <&i2s0 0>; 70 system-clock-frequency = <19200000>; 71 }; 72 73 link0_codec: simple-audio-card,codec { 74 sound-dai = <&max98090>; 75 clocks = <&i2s0 CLK_I2S_CDCLK>; 76 }; 77 }; 78 79 emmc_pwrseq: pwrseq { 80 pinctrl-0 = <&sd1_cd>; 81 pinctrl-names = "default"; 82 compatible = "mmc-pwrseq-emmc"; 83 reset-gpios = <&gpk1 2 1>; 84 }; 85 86 mmc@12550000 { 87 pinctrl-0 = <&sd4_clk &sd4_cmd &sd4_bus4 &sd4_bus8>; 88 pinctrl-names = "default"; 89 vmmc-supply = <&ldo20_reg &buck8_reg>; 90 mmc-pwrseq = <&emmc_pwrseq>; 91 status = "okay"; 92 93 num-slots = <1>; 94 broken-cd; 95 card-detect-delay = <200>; 96 samsung,dw-mshc-ciu-div = <3>; 97 samsung,dw-mshc-sdr-timing = <2 3>; 98 samsung,dw-mshc-ddr-timing = <1 2>; 99 bus-width = <8>; 100 cap-mmc-highspeed; 101 }; 102 103 watchdog@10060000 { 104 status = "okay"; 105 }; 106 107 rtc@10070000 { 108 status = "okay"; 109 clocks = <&clock CLK_RTC>, <&max77686 MAX77686_CLK_AP>; 110 clock-names = "rtc", "rtc_src"; 111 }; 112 113 g2d@10800000 { 114 status = "okay"; 115 }; 116 117 camera { 118 status = "okay"; 119 pinctrl-names = "default"; 120 pinctrl-0 = <>; 121 122 fimc_0: fimc@11800000 { 123 status = "okay"; 124 assigned-clocks = <&clock CLK_MOUT_FIMC0>, 125 <&clock CLK_SCLK_FIMC0>; 126 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 127 assigned-clock-rates = <0>, <176000000>; 128 }; 129 130 fimc_1: fimc@11810000 { 131 status = "okay"; 132 assigned-clocks = <&clock CLK_MOUT_FIMC1>, 133 <&clock CLK_SCLK_FIMC1>; 134 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 135 assigned-clock-rates = <0>, <176000000>; 136 }; 137 138 fimc_2: fimc@11820000 { 139 status = "okay"; 140 assigned-clocks = <&clock CLK_MOUT_FIMC2>, 141 <&clock CLK_SCLK_FIMC2>; 142 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 143 assigned-clock-rates = <0>, <176000000>; 144 }; 145 146 fimc_3: fimc@11830000 { 147 status = "okay"; 148 assigned-clocks = <&clock CLK_MOUT_FIMC3>, 149 <&clock CLK_SCLK_FIMC3>; 150 assigned-clock-parents = <&clock CLK_MOUT_MPLL_USER_T>; 151 assigned-clock-rates = <0>, <176000000>; 152 }; 153 }; 154 155 sdhci@12530000 { 156 bus-width = <4>; 157 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>; 158 pinctrl-names = "default"; 159 vmmc-supply = <&ldo4_reg &ldo21_reg>; 160 cd-gpios = <&gpk2 2 0>; 161 cd-inverted; 162 status = "okay"; 163 }; 164 165 serial@13800000 { 166 status = "okay"; 167 }; 168 169 serial@13810000 { 170 status = "okay"; 171 }; 172 173 fixed-rate-clocks { 174 xxti { 175 compatible = "samsung,clock-xxti"; 176 clock-frequency = <0>; 177 }; 178 179 xusbxti { 180 compatible = "samsung,clock-xusbxti"; 181 clock-frequency = <24000000>; 182 }; 183 }; 184 185 i2c@13860000 { 186 pinctrl-0 = <&i2c0_bus>; 187 pinctrl-names = "default"; 188 samsung,i2c-sda-delay = <100>; 189 samsung,i2c-max-bus-freq = <400000>; 190 status = "okay"; 191 192 usb3503: usb3503@08 { 193 compatible = "smsc,usb3503"; 194 reg = <0x08>; 195 196 intn-gpios = <&gpx3 0 0>; 197 connect-gpios = <&gpx3 4 0>; 198 reset-gpios = <&gpx3 5 0>; 199 initial-mode = <1>; 200 }; 201 202 max77686: pmic@09 { 203 compatible = "maxim,max77686"; 204 interrupt-parent = <&gpx3>; 205 interrupts = <2 0>; 206 pinctrl-names = "default"; 207 pinctrl-0 = <&max77686_irq>; 208 reg = <0x09>; 209 #clock-cells = <1>; 210 211 voltage-regulators { 212 ldo1_reg: LDO1 { 213 regulator-name = "VDD_ALIVE_1.0V"; 214 regulator-min-microvolt = <1000000>; 215 regulator-max-microvolt = <1000000>; 216 regulator-always-on; 217 }; 218 219 ldo2_reg: LDO2 { 220 regulator-name = "VDDQ_M1_2_1.8V"; 221 regulator-min-microvolt = <1800000>; 222 regulator-max-microvolt = <1800000>; 223 regulator-always-on; 224 }; 225 226 ldo3_reg: LDO3 { 227 regulator-name = "VDDQ_EXT_1.8V"; 228 regulator-min-microvolt = <1800000>; 229 regulator-max-microvolt = <1800000>; 230 regulator-always-on; 231 }; 232 233 ldo4_reg: LDO4 { 234 regulator-name = "VDDQ_MMC2_2.8V"; 235 regulator-min-microvolt = <2800000>; 236 regulator-max-microvolt = <2800000>; 237 regulator-always-on; 238 regulator-boot-on; 239 }; 240 241 ldo5_reg: LDO5 { 242 regulator-name = "VDDQ_MMC1_3_1.8V"; 243 regulator-min-microvolt = <1800000>; 244 regulator-max-microvolt = <1800000>; 245 regulator-always-on; 246 regulator-boot-on; 247 }; 248 249 ldo6_reg: LDO6 { 250 regulator-name = "VDD10_MPLL_1.0V"; 251 regulator-min-microvolt = <1000000>; 252 regulator-max-microvolt = <1000000>; 253 regulator-always-on; 254 }; 255 256 ldo7_reg: LDO7 { 257 regulator-name = "VDD10_XPLL_1.0V"; 258 regulator-min-microvolt = <1000000>; 259 regulator-max-microvolt = <1000000>; 260 regulator-always-on; 261 }; 262 263 ldo8_reg: ldo@8 { 264 regulator-compatible = "LDO8"; 265 regulator-name = "VDD10_HDMI_1.0V"; 266 regulator-min-microvolt = <1000000>; 267 regulator-max-microvolt = <1000000>; 268 }; 269 270 ldo10_reg: ldo@10 { 271 regulator-compatible = "LDO10"; 272 regulator-name = "VDDQ_MIPIHSI_1.8V"; 273 regulator-min-microvolt = <1800000>; 274 regulator-max-microvolt = <1800000>; 275 }; 276 277 ldo11_reg: LDO11 { 278 regulator-name = "VDD18_ABB1_1.8V"; 279 regulator-min-microvolt = <1800000>; 280 regulator-max-microvolt = <1800000>; 281 regulator-always-on; 282 }; 283 284 ldo12_reg: LDO12 { 285 regulator-name = "VDD33_USB_3.3V"; 286 regulator-min-microvolt = <3300000>; 287 regulator-max-microvolt = <3300000>; 288 regulator-always-on; 289 regulator-boot-on; 290 }; 291 292 ldo13_reg: LDO13 { 293 regulator-name = "VDDQ_C2C_W_1.8V"; 294 regulator-min-microvolt = <1800000>; 295 regulator-max-microvolt = <1800000>; 296 regulator-always-on; 297 regulator-boot-on; 298 }; 299 300 ldo14_reg: LDO14 { 301 regulator-name = "VDD18_ABB0_2_1.8V"; 302 regulator-min-microvolt = <1800000>; 303 regulator-max-microvolt = <1800000>; 304 regulator-always-on; 305 regulator-boot-on; 306 }; 307 308 ldo15_reg: LDO15 { 309 regulator-name = "VDD10_HSIC_1.0V"; 310 regulator-min-microvolt = <1000000>; 311 regulator-max-microvolt = <1000000>; 312 regulator-always-on; 313 regulator-boot-on; 314 }; 315 316 ldo16_reg: LDO16 { 317 regulator-name = "VDD18_HSIC_1.8V"; 318 regulator-min-microvolt = <1800000>; 319 regulator-max-microvolt = <1800000>; 320 regulator-always-on; 321 regulator-boot-on; 322 }; 323 324 ldo20_reg: LDO20 { 325 regulator-name = "LDO20_1.8V"; 326 regulator-min-microvolt = <1800000>; 327 regulator-max-microvolt = <1800000>; 328 regulator-boot-on; 329 }; 330 331 ldo21_reg: LDO21 { 332 regulator-name = "LDO21_3.3V"; 333 regulator-min-microvolt = <3300000>; 334 regulator-max-microvolt = <3300000>; 335 regulator-always-on; 336 regulator-boot-on; 337 }; 338 339 ldo25_reg: LDO25 { 340 regulator-name = "VDDQ_LCD_1.8V"; 341 regulator-min-microvolt = <1800000>; 342 regulator-max-microvolt = <1800000>; 343 regulator-always-on; 344 regulator-boot-on; 345 }; 346 347 buck1_reg: BUCK1 { 348 regulator-name = "vdd_mif"; 349 regulator-min-microvolt = <1000000>; 350 regulator-max-microvolt = <1000000>; 351 regulator-always-on; 352 regulator-boot-on; 353 }; 354 355 buck2_reg: BUCK2 { 356 regulator-name = "vdd_arm"; 357 regulator-min-microvolt = <900000>; 358 regulator-max-microvolt = <1350000>; 359 regulator-always-on; 360 regulator-boot-on; 361 }; 362 363 buck3_reg: BUCK3 { 364 regulator-name = "vdd_int"; 365 regulator-min-microvolt = <1000000>; 366 regulator-max-microvolt = <1000000>; 367 regulator-always-on; 368 regulator-boot-on; 369 }; 370 371 buck4_reg: BUCK4 { 372 regulator-name = "vdd_g3d"; 373 regulator-min-microvolt = <900000>; 374 regulator-max-microvolt = <1100000>; 375 regulator-microvolt-offset = <50000>; 376 }; 377 378 buck5_reg: BUCK5 { 379 regulator-name = "VDDQ_CKEM1_2_1.2V"; 380 regulator-min-microvolt = <1200000>; 381 regulator-max-microvolt = <1200000>; 382 regulator-always-on; 383 regulator-boot-on; 384 }; 385 386 buck6_reg: BUCK6 { 387 regulator-name = "BUCK6_1.35V"; 388 regulator-min-microvolt = <1350000>; 389 regulator-max-microvolt = <1350000>; 390 regulator-always-on; 391 regulator-boot-on; 392 }; 393 394 buck7_reg: BUCK7 { 395 regulator-name = "BUCK7_2.0V"; 396 regulator-min-microvolt = <2000000>; 397 regulator-max-microvolt = <2000000>; 398 regulator-always-on; 399 }; 400 401 buck8_reg: BUCK8 { 402 regulator-name = "BUCK8_2.8V"; 403 regulator-min-microvolt = <2800000>; 404 regulator-max-microvolt = <2800000>; 405 }; 406 }; 407 }; 408 }; 409 410 i2c@13870000 { 411 pinctrl-names = "default"; 412 pinctrl-0 = <&i2c1_bus>; 413 status = "okay"; 414 max98090: max98090@10 { 415 compatible = "maxim,max98090"; 416 reg = <0x10>; 417 interrupt-parent = <&gpx0>; 418 interrupts = <0 0>; 419 clocks = <&i2s0 CLK_I2S_CDCLK>; 420 clock-names = "mclk"; 421 #sound-dai-cells = <0>; 422 }; 423 }; 424 425 exynos-usbphy@125B0000 { 426 status = "okay"; 427 }; 428 429 hsotg@12480000 { 430 dr_mode = "peripheral"; 431 status = "okay"; 432 vusb_d-supply = <&ldo15_reg>; 433 vusb_a-supply = <&ldo12_reg>; 434 }; 435 436 ehci: ehci@12580000 { 437 status = "okay"; 438 }; 439 440 tmu@100C0000 { 441 vtmu-supply = <&ldo10_reg>; 442 status = "okay"; 443 }; 444 445 thermal-zones { 446 cpu_thermal: cpu-thermal { 447 cooling-maps { 448 map0 { 449 /* Corresponds to 800MHz at freq_table */ 450 cooling-device = <&cpu0 7 7>; 451 }; 452 map1 { 453 /* Corresponds to 200MHz at freq_table */ 454 cooling-device = <&cpu0 13 13>; 455 }; 456 }; 457 }; 458 }; 459 460 mixer: mixer@12C10000 { 461 status = "okay"; 462 }; 463 464 hdmi@12D00000 { 465 hpd-gpio = <&gpx3 7 0>; 466 pinctrl-names = "default"; 467 pinctrl-0 = <&hdmi_hpd>; 468 vdd-supply = <&ldo8_reg>; 469 vdd_osc-supply = <&ldo10_reg>; 470 vdd_pll-supply = <&ldo8_reg>; 471 ddc = <&hdmi_ddc>; 472 status = "okay"; 473 }; 474 475 hdmi_ddc: i2c@13880000 { 476 status = "okay"; 477 pinctrl-names = "default"; 478 pinctrl-0 = <&i2c2_bus>; 479 }; 480 481 i2c@138E0000 { 482 status = "okay"; 483 }; 484}; 485 486/* RSTN signal for eMMC */ 487&sd1_cd { 488 samsung,pin-pud = <0>; 489 samsung,pin-drv = <0>; 490}; 491 492&pinctrl_1 { 493 gpio_power_key: power_key { 494 samsung,pins = "gpx1-3"; 495 samsung,pin-pud = <0>; 496 }; 497 498 max77686_irq: max77686-irq { 499 samsung,pins = "gpx3-2"; 500 samsung,pin-function = <0>; 501 samsung,pin-pud = <0>; 502 samsung,pin-drv = <0>; 503 }; 504 505 hdmi_hpd: hdmi-hpd { 506 samsung,pins = "gpx3-7"; 507 samsung,pin-pud = <1>; 508 }; 509}; 510