1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Samsung's Exynos4210 based Universal C210 board device tree source 4 * 5 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com 7 * 8 * Device tree source file for Samsung's Universal C210 board which is based on 9 * Samsung's Exynos4210 rev0 SoC. 10 */ 11 12/dts-v1/; 13#include "exynos4210.dtsi" 14#include <dt-bindings/gpio/gpio.h> 15 16/ { 17 model = "Samsung Universal C210 based on Exynos4210 rev0"; 18 compatible = "samsung,universal_c210", "samsung,exynos4210", "samsung,exynos4"; 19 chassis-type = "handset"; 20 21 memory@40000000 { 22 device_type = "memory"; 23 reg = <0x40000000 0x10000000 24 0x50000000 0x10000000>; 25 }; 26 27 chosen { 28 bootargs = "root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1"; 29 stdout-path = "serial2:115200n8"; 30 }; 31 32 33 fixed-rate-clocks { 34 xxti { 35 compatible = "samsung,clock-xxti"; 36 clock-frequency = <0>; 37 }; 38 39 xusbxti { 40 compatible = "samsung,clock-xusbxti"; 41 clock-frequency = <24000000>; 42 }; 43 44 pmic_ap_clk: pmic-ap-clk { 45 /* Workaround for missing clock on PMIC */ 46 compatible = "fixed-clock"; 47 #clock-cells = <0>; 48 clock-frequency = <32768>; 49 }; 50 }; 51 52 vemmc_reg: voltage-regulator { 53 compatible = "regulator-fixed"; 54 regulator-name = "VMEM_VDD_2_8V"; 55 regulator-min-microvolt = <2800000>; 56 regulator-max-microvolt = <2800000>; 57 gpio = <&gpe1 3 GPIO_ACTIVE_HIGH>; 58 enable-active-high; 59 }; 60 61 wlan_pwrseq: sdhci3-pwrseq { 62 compatible = "mmc-pwrseq-simple"; 63 reset-gpios = <&gpe3 1 GPIO_ACTIVE_LOW>; 64 }; 65 66 gpio-keys { 67 compatible = "gpio-keys"; 68 69 vol-up-key { 70 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>; 71 linux,code = <115>; 72 label = "volume up"; 73 debounce-interval = <1>; 74 }; 75 76 vol-down-key { 77 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>; 78 linux,code = <114>; 79 label = "volume down"; 80 debounce-interval = <1>; 81 }; 82 83 config-key { 84 gpios = <&gpx2 2 GPIO_ACTIVE_LOW>; 85 linux,code = <171>; 86 label = "config"; 87 debounce-interval = <1>; 88 wakeup-source; 89 }; 90 91 camera-key { 92 gpios = <&gpx2 3 GPIO_ACTIVE_LOW>; 93 linux,code = <212>; 94 label = "camera"; 95 debounce-interval = <1>; 96 }; 97 98 power-key { 99 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>; 100 linux,code = <116>; 101 label = "power"; 102 debounce-interval = <1>; 103 wakeup-source; 104 }; 105 106 ok-key { 107 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>; 108 linux,code = <352>; 109 label = "ok"; 110 debounce-interval = <1>; 111 }; 112 }; 113 114 tsp_reg: voltage-regulator { 115 compatible = "regulator-fixed"; 116 regulator-name = "TSP_2_8V"; 117 regulator-min-microvolt = <2800000>; 118 regulator-max-microvolt = <2800000>; 119 gpio = <&gpe2 3 GPIO_ACTIVE_HIGH>; 120 enable-active-high; 121 }; 122 123 spi-3 { 124 compatible = "spi-gpio"; 125 #address-cells = <1>; 126 #size-cells = <0>; 127 128 sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>; 129 mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>; 130 num-chipselects = <1>; 131 cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>; 132 133 lcd@0 { 134 compatible = "samsung,ld9040"; 135 reg = <0>; 136 vdd3-supply = <&ldo7_reg>; 137 vci-supply = <&ldo17_reg>; 138 reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>; 139 spi-max-frequency = <1200000>; 140 power-on-delay = <10>; 141 reset-delay = <10>; 142 panel-width-mm = <90>; 143 panel-height-mm = <154>; 144 display-timings { 145 timing { 146 clock-frequency = <23492370>; 147 hactive = <480>; 148 vactive = <800>; 149 hback-porch = <16>; 150 hfront-porch = <16>; 151 vback-porch = <2>; 152 vfront-porch = <28>; 153 hsync-len = <2>; 154 vsync-len = <1>; 155 hsync-active = <0>; 156 vsync-active = <0>; 157 de-active = <0>; 158 pixelclk-active = <0>; 159 }; 160 }; 161 port { 162 lcd_ep: endpoint { 163 remote-endpoint = <&fimd_dpi_ep>; 164 }; 165 }; 166 }; 167 }; 168 169 hdmi_en: voltage-regulator-hdmi-5v { 170 compatible = "regulator-fixed"; 171 regulator-name = "HDMI_5V"; 172 regulator-min-microvolt = <5000000>; 173 regulator-max-microvolt = <5000000>; 174 gpio = <&gpe0 1 GPIO_ACTIVE_HIGH>; 175 enable-active-high; 176 }; 177 178 hdmi_ddc: i2c-ddc { 179 compatible = "i2c-gpio"; 180 sda-gpios = <&gpe4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 181 scl-gpios = <&gpe4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; 182 i2c-gpio,delay-us = <100>; 183 #address-cells = <1>; 184 #size-cells = <0>; 185 186 pinctrl-0 = <&i2c_ddc_bus>; 187 pinctrl-names = "default"; 188 status = "okay"; 189 }; 190}; 191 192&camera { 193 status = "okay"; 194 195 pinctrl-names = "default"; 196 pinctrl-0 = <>; 197}; 198 199&cpu0 { 200 cpu0-supply = <&vdd_arm_reg>; 201}; 202 203&cpu_thermal { 204 cooling-maps { 205 map0 { 206 /* Corresponds to 800MHz */ 207 cooling-device = <&cpu0 2 2>; 208 }; 209 map1 { 210 /* Corresponds to 200MHz */ 211 cooling-device = <&cpu0 4 4>; 212 }; 213 }; 214}; 215 216&ehci { 217 status = "okay"; 218 phys = <&exynos_usbphy 1>; 219 phy-names = "host"; 220}; 221 222&exynos_usbphy { 223 status = "okay"; 224 vbus-supply = <&safeout1_reg>; 225}; 226 227&fimc_0 { 228 status = "okay"; 229 assigned-clocks = <&clock CLK_MOUT_FIMC0>, 230 <&clock CLK_SCLK_FIMC0>; 231 assigned-clock-parents = <&clock CLK_SCLK_MPLL>; 232 assigned-clock-rates = <0>, <160000000>; 233}; 234 235&fimc_1 { 236 status = "okay"; 237 assigned-clocks = <&clock CLK_MOUT_FIMC1>, 238 <&clock CLK_SCLK_FIMC1>; 239 assigned-clock-parents = <&clock CLK_SCLK_MPLL>; 240 assigned-clock-rates = <0>, <160000000>; 241}; 242 243&fimc_2 { 244 status = "okay"; 245 assigned-clocks = <&clock CLK_MOUT_FIMC2>, 246 <&clock CLK_SCLK_FIMC2>; 247 assigned-clock-parents = <&clock CLK_SCLK_MPLL>; 248 assigned-clock-rates = <0>, <160000000>; 249}; 250 251&fimc_3 { 252 status = "okay"; 253 assigned-clocks = <&clock CLK_MOUT_FIMC3>, 254 <&clock CLK_SCLK_FIMC3>; 255 assigned-clock-parents = <&clock CLK_SCLK_MPLL>; 256 assigned-clock-rates = <0>, <160000000>; 257}; 258 259&fimd { 260 pinctrl-0 = <&lcd_clk>, <&lcd_data24>; 261 pinctrl-names = "default"; 262 status = "okay"; 263 samsung,invert-vden; 264 samsung,invert-vclk; 265 #address-cells = <1>; 266 #size-cells = <0>; 267 port@3 { 268 reg = <3>; 269 fimd_dpi_ep: endpoint { 270 remote-endpoint = <&lcd_ep>; 271 }; 272 }; 273}; 274 275&gpu { 276 mali-supply = <&buck2_reg>; 277 status = "okay"; 278}; 279 280&hdmi { 281 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>; 282 pinctrl-names = "default"; 283 pinctrl-0 = <&hdmi_hpd>; 284 hdmi-en-supply = <&hdmi_en>; 285 vdd-supply = <&ldo3_reg>; 286 vdd_osc-supply = <&ldo4_reg>; 287 vdd_pll-supply = <&ldo3_reg>; 288 ddc = <&hdmi_ddc>; 289 status = "okay"; 290}; 291 292&hsotg { 293 vusb_d-supply = <&ldo3_reg>; 294 vusb_a-supply = <&ldo8_reg>; 295 dr_mode = "peripheral"; 296 status = "okay"; 297}; 298 299&i2c_3 { 300 samsung,i2c-sda-delay = <100>; 301 samsung,i2c-slave-addr = <0x10>; 302 samsung,i2c-max-bus-freq = <100000>; 303 pinctrl-0 = <&i2c3_bus>; 304 pinctrl-names = "default"; 305 status = "okay"; 306 307 tsp@4a { 308 /* TBD: Atmel maXtouch touchscreen */ 309 reg = <0x4a>; 310 }; 311}; 312 313&i2c_5 { 314 samsung,i2c-sda-delay = <100>; 315 samsung,i2c-slave-addr = <0x10>; 316 samsung,i2c-max-bus-freq = <100000>; 317 pinctrl-0 = <&i2c5_bus>; 318 pinctrl-names = "default"; 319 status = "okay"; 320 321 vdd_arm_reg: pmic@60 { 322 compatible = "maxim,max8952"; 323 reg = <0x60>; 324 325 max8952,vid-gpios = <&gpx0 3 GPIO_ACTIVE_HIGH>, 326 <&gpx0 4 GPIO_ACTIVE_HIGH>; 327 max8952,default-mode = <0>; 328 max8952,dvs-mode-microvolt = <1250000>, <1200000>, 329 <1050000>, <950000>; 330 max8952,sync-freq = <0>; 331 max8952,ramp-speed = <0>; 332 333 regulator-name = "VARM_1.2V_C210"; 334 regulator-min-microvolt = <770000>; 335 regulator-max-microvolt = <1400000>; 336 regulator-always-on; 337 regulator-boot-on; 338 }; 339 340 pmic@66 { 341 compatible = "national,lp3974"; 342 interrupts-extended = <&gpx0 7 0>, <&gpx2 7 0>; 343 pinctrl-names = "default"; 344 pinctrl-0 = <&lp3974_irq>; 345 reg = <0x66>; 346 347 max8998,pmic-buck1-default-dvs-idx = <0>; 348 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>, 349 <&gpx0 6 GPIO_ACTIVE_HIGH>; 350 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>, 351 <1100000>, <1000000>; 352 353 max8998,pmic-buck2-default-dvs-idx = <0>; 354 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>; 355 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>; 356 357 regulators { 358 ldo2_reg: LDO2 { 359 regulator-name = "VALIVE_1.2V"; 360 regulator-min-microvolt = <1200000>; 361 regulator-max-microvolt = <1200000>; 362 regulator-always-on; 363 }; 364 365 ldo3_reg: LDO3 { 366 regulator-name = "VUSB+MIPI_1.1V"; 367 regulator-min-microvolt = <1100000>; 368 regulator-max-microvolt = <1100000>; 369 regulator-always-on; 370 }; 371 372 ldo4_reg: LDO4 { 373 regulator-name = "VADC_3.3V"; 374 regulator-min-microvolt = <3300000>; 375 regulator-max-microvolt = <3300000>; 376 }; 377 378 ldo5_reg: LDO5 { 379 regulator-name = "VTF_2.8V"; 380 regulator-min-microvolt = <2800000>; 381 regulator-max-microvolt = <2800000>; 382 }; 383 384 ldo6_reg: LDO6 { 385 regulator-name = "LDO6"; 386 regulator-min-microvolt = <2000000>; 387 regulator-max-microvolt = <2000000>; 388 }; 389 390 ldo7_reg: LDO7 { 391 regulator-name = "VLCD+VMIPI_1.8V"; 392 regulator-min-microvolt = <1800000>; 393 regulator-max-microvolt = <1800000>; 394 }; 395 396 ldo8_reg: LDO8 { 397 regulator-name = "VUSB+VDAC_3.3V"; 398 regulator-min-microvolt = <3300000>; 399 regulator-max-microvolt = <3300000>; 400 regulator-always-on; 401 }; 402 403 ldo9_reg: LDO9 { 404 regulator-name = "VCC_2.8V"; 405 regulator-min-microvolt = <2800000>; 406 regulator-max-microvolt = <2800000>; 407 regulator-always-on; 408 }; 409 410 ldo10_reg: LDO10 { 411 regulator-name = "VPLL_1.1V"; 412 regulator-min-microvolt = <1100000>; 413 regulator-max-microvolt = <1100000>; 414 regulator-boot-on; 415 regulator-always-on; 416 }; 417 418 ldo11_reg: LDO11 { 419 regulator-name = "CAM_AF_3.3V"; 420 regulator-min-microvolt = <3300000>; 421 regulator-max-microvolt = <3300000>; 422 }; 423 424 ldo12_reg: LDO12 { 425 regulator-name = "PS_2.8V"; 426 regulator-min-microvolt = <2800000>; 427 regulator-max-microvolt = <2800000>; 428 }; 429 430 ldo13_reg: LDO13 { 431 regulator-name = "VHIC_1.2V"; 432 regulator-min-microvolt = <1200000>; 433 regulator-max-microvolt = <1200000>; 434 }; 435 436 ldo14_reg: LDO14 { 437 regulator-name = "CAM_I_HOST_1.8V"; 438 regulator-min-microvolt = <1800000>; 439 regulator-max-microvolt = <1800000>; 440 }; 441 442 ldo15_reg: LDO15 { 443 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V"; 444 regulator-min-microvolt = <1200000>; 445 regulator-max-microvolt = <1200000>; 446 }; 447 448 ldo16_reg: LDO16 { 449 regulator-name = "CAM_S_ANA_2.8V"; 450 regulator-min-microvolt = <2800000>; 451 regulator-max-microvolt = <2800000>; 452 }; 453 454 ldo17_reg: LDO17 { 455 regulator-name = "VCC_3.0V_LCD"; 456 regulator-min-microvolt = <3000000>; 457 regulator-max-microvolt = <3000000>; 458 }; 459 460 buck1_reg: BUCK1 { 461 regulator-name = "VINT_1.1V"; 462 regulator-min-microvolt = <750000>; 463 regulator-max-microvolt = <1500000>; 464 regulator-boot-on; 465 regulator-always-on; 466 }; 467 468 buck2_reg: BUCK2 { 469 regulator-name = "VG3D_1.1V"; 470 regulator-min-microvolt = <750000>; 471 regulator-max-microvolt = <1500000>; 472 regulator-boot-on; 473 }; 474 475 buck3_reg: BUCK3 { 476 regulator-name = "VCC_1.8V"; 477 regulator-min-microvolt = <1800000>; 478 regulator-max-microvolt = <1800000>; 479 regulator-always-on; 480 }; 481 482 buck4_reg: BUCK4 { 483 regulator-name = "VMEM_1.2V"; 484 regulator-min-microvolt = <1200000>; 485 regulator-max-microvolt = <1200000>; 486 regulator-always-on; 487 }; 488 489 ap32khz_reg: EN32KHz-AP { 490 regulator-name = "32KHz AP"; 491 regulator-always-on; 492 }; 493 494 cp32khz_reg: EN32KHz-CP { 495 regulator-name = "32KHz CP"; 496 }; 497 498 vichg_reg: ENVICHG { 499 regulator-name = "VICHG"; 500 }; 501 502 safeout1_reg: ESAFEOUT1 { 503 regulator-name = "SAFEOUT1"; 504 }; 505 506 safeout2_reg: ESAFEOUT2 { 507 regulator-name = "SAFEOUT2"; 508 regulator-boot-on; 509 }; 510 }; 511 }; 512}; 513 514&i2c_8 { 515 status = "okay"; 516}; 517 518&mct { 519 compatible = "none"; 520}; 521 522&mdma1 { 523 /* Use the secure mdma0 */ 524 status = "disabled"; 525}; 526 527&mixer { 528 status = "okay"; 529}; 530 531&ohci { 532 status = "okay"; 533}; 534 535&pinctrl_1 { 536 bt_shutdown: bt-shutdown-pins { 537 samsung,pins = "gpe1-4"; 538 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 539 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 540 }; 541 542 bt_host_wakeup: bt-host-wakeup-pins { 543 samsung,pins = "gpx2-6"; 544 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>; 545 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 546 }; 547 548 bt_device_wakeup: bt-device-wakeup-pins { 549 samsung,pins = "gpx3-1"; 550 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>; 551 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 552 }; 553 554 lp3974_irq: lp3974-irq-pins { 555 samsung,pins = "gpx0-7", "gpx2-7"; 556 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 557 }; 558 559 hdmi_hpd: hdmi-hpd-pins { 560 samsung,pins = "gpx3-7"; 561 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>; 562 }; 563}; 564 565&pinctrl_0 { 566 i2c_ddc_bus: i2c-ddc-bus-pins { 567 samsung,pins = "gpe4-2", "gpe4-3"; 568 samsung,pin-function = <EXYNOS_PIN_FUNC_2>; 569 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>; 570 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>; 571 }; 572}; 573 574&pwm { 575 compatible = "samsung,s5p6440-pwm"; 576 status = "okay"; 577}; 578 579&rtc { 580 status = "okay"; 581 clocks = <&clock CLK_RTC>, <&pmic_ap_clk>; 582 clock-names = "rtc", "rtc_src"; 583}; 584 585&sdhci_0 { 586 bus-width = <8>; 587 non-removable; 588 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>; 589 pinctrl-names = "default"; 590 vmmc-supply = <&vemmc_reg>; 591 status = "okay"; 592}; 593 594&sdhci_2 { 595 bus-width = <4>; 596 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>; 597 pinctrl-names = "default"; 598 vmmc-supply = <&ldo5_reg>; 599 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>; 600 status = "okay"; 601}; 602 603&sdhci_3 { 604 status = "okay"; 605 606 #address-cells = <1>; 607 #size-cells = <0>; 608 609 non-removable; 610 bus-width = <4>; 611 mmc-pwrseq = <&wlan_pwrseq>; 612 vmmc-supply = <&ldo5_reg>; 613 614 pinctrl-names = "default"; 615 pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>; 616 617 brcmf: wifi@1 { 618 compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac"; 619 reg = <1>; 620 interrupt-parent = <&gpx2>; 621 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; 622 interrupt-names = "host-wake"; 623 }; 624}; 625 626&serial_0 { 627 status = "okay"; 628 /delete-property/dmas; 629 /delete-property/dma-names; 630 pinctrl-0 = <&uart0_data &uart0_fctl>; 631 pinctrl-names = "default"; 632 633 bluetooth { 634 compatible = "brcm,bcm4330-bt"; 635 pinctrl-0 = <&bt_shutdown &bt_device_wakeup &bt_host_wakeup>; 636 pinctrl-names = "default"; 637 shutdown-gpios = <&gpe1 4 GPIO_ACTIVE_HIGH>; 638 device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>; 639 host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>; 640 }; 641}; 642 643&serial_1 { 644 status = "okay"; 645 /delete-property/dmas; 646 /delete-property/dma-names; 647}; 648 649&serial_2 { 650 status = "okay"; 651 /delete-property/dmas; 652 /delete-property/dma-names; 653}; 654 655&serial_3 { 656 status = "okay"; 657 /delete-property/dmas; 658 /delete-property/dma-names; 659}; 660 661&soc { 662 mdma0: dma-controller@12840000 { 663 compatible = "arm,pl330", "arm,primecell"; 664 reg = <0x12840000 0x1000>; 665 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 666 clocks = <&clock CLK_MDMA>; 667 clock-names = "apb_pclk"; 668 #dma-cells = <1>; 669 power-domains = <&pd_lcd0>; 670 }; 671}; 672 673&sysram { 674 smp-sram@0 { 675 status = "disabled"; 676 }; 677 678 smp-sram@5000 { 679 compatible = "samsung,exynos4210-sysram"; 680 reg = <0x5000 0x1000>; 681 }; 682 683 smp-sram@1f000 { 684 status = "disabled"; 685 }; 686}; 687