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