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