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