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