0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Samsung's Exynos4210 based Universal C210 board device tree source
0004 *
0005 * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
0006 * http://www.samsung.com
0007 *
0008 * Device tree source file for Samsung's Universal C210 board which is based on
0009 * Samsung's Exynos4210 rev0 SoC.
0010 */
0011
0012 /dts-v1/;
0013 #include "exynos4210.dtsi"
0014 #include <dt-bindings/gpio/gpio.h>
0015
0016 / {
0017 model = "Samsung Universal C210 based on Exynos4210 rev0";
0018 compatible = "samsung,universal_c210", "samsung,exynos4210", "samsung,exynos4";
0019 chassis-type = "handset";
0020
0021 memory@40000000 {
0022 device_type = "memory";
0023 reg = <0x40000000 0x10000000
0024 0x50000000 0x10000000>;
0025 };
0026
0027 chosen {
0028 bootargs = "root=/dev/mmcblk0p5 rw rootwait earlyprintk panic=5 maxcpus=1";
0029 stdout-path = "serial2:115200n8";
0030 };
0031
0032
0033 fixed-rate-clocks {
0034 xxti {
0035 compatible = "samsung,clock-xxti";
0036 clock-frequency = <0>;
0037 };
0038
0039 xusbxti {
0040 compatible = "samsung,clock-xusbxti";
0041 clock-frequency = <24000000>;
0042 };
0043
0044 pmic_ap_clk: pmic-ap-clk {
0045 /* Workaround for missing clock on PMIC */
0046 compatible = "fixed-clock";
0047 #clock-cells = <0>;
0048 clock-frequency = <32768>;
0049 };
0050 };
0051
0052 vemmc_reg: voltage-regulator {
0053 compatible = "regulator-fixed";
0054 regulator-name = "VMEM_VDD_2_8V";
0055 regulator-min-microvolt = <2800000>;
0056 regulator-max-microvolt = <2800000>;
0057 gpio = <&gpe1 3 GPIO_ACTIVE_HIGH>;
0058 enable-active-high;
0059 };
0060
0061 wlan_pwrseq: sdhci3-pwrseq {
0062 compatible = "mmc-pwrseq-simple";
0063 reset-gpios = <&gpe3 1 GPIO_ACTIVE_LOW>;
0064 };
0065
0066 gpio-keys {
0067 compatible = "gpio-keys";
0068
0069 vol-up-key {
0070 gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
0071 linux,code = <115>;
0072 label = "volume up";
0073 debounce-interval = <1>;
0074 };
0075
0076 vol-down-key {
0077 gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
0078 linux,code = <114>;
0079 label = "volume down";
0080 debounce-interval = <1>;
0081 };
0082
0083 config-key {
0084 gpios = <&gpx2 2 GPIO_ACTIVE_LOW>;
0085 linux,code = <171>;
0086 label = "config";
0087 debounce-interval = <1>;
0088 wakeup-source;
0089 };
0090
0091 camera-key {
0092 gpios = <&gpx2 3 GPIO_ACTIVE_LOW>;
0093 linux,code = <212>;
0094 label = "camera";
0095 debounce-interval = <1>;
0096 };
0097
0098 power-key {
0099 gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
0100 linux,code = <116>;
0101 label = "power";
0102 debounce-interval = <1>;
0103 wakeup-source;
0104 };
0105
0106 ok-key {
0107 gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
0108 linux,code = <352>;
0109 label = "ok";
0110 debounce-interval = <1>;
0111 };
0112 };
0113
0114 tsp_reg: voltage-regulator {
0115 compatible = "regulator-fixed";
0116 regulator-name = "TSP_2_8V";
0117 regulator-min-microvolt = <2800000>;
0118 regulator-max-microvolt = <2800000>;
0119 gpio = <&gpe2 3 GPIO_ACTIVE_HIGH>;
0120 enable-active-high;
0121 };
0122
0123 spi-3 {
0124 compatible = "spi-gpio";
0125 #address-cells = <1>;
0126 #size-cells = <0>;
0127
0128 sck-gpios = <&gpy3 1 GPIO_ACTIVE_HIGH>;
0129 mosi-gpios = <&gpy3 3 GPIO_ACTIVE_HIGH>;
0130 num-chipselects = <1>;
0131 cs-gpios = <&gpy4 3 GPIO_ACTIVE_LOW>;
0132
0133 lcd@0 {
0134 compatible = "samsung,ld9040";
0135 reg = <0>;
0136 vdd3-supply = <&ldo7_reg>;
0137 vci-supply = <&ldo17_reg>;
0138 reset-gpios = <&gpy4 5 GPIO_ACTIVE_HIGH>;
0139 spi-max-frequency = <1200000>;
0140 power-on-delay = <10>;
0141 reset-delay = <10>;
0142 panel-width-mm = <90>;
0143 panel-height-mm = <154>;
0144 display-timings {
0145 timing {
0146 clock-frequency = <23492370>;
0147 hactive = <480>;
0148 vactive = <800>;
0149 hback-porch = <16>;
0150 hfront-porch = <16>;
0151 vback-porch = <2>;
0152 vfront-porch = <28>;
0153 hsync-len = <2>;
0154 vsync-len = <1>;
0155 hsync-active = <0>;
0156 vsync-active = <0>;
0157 de-active = <0>;
0158 pixelclk-active = <0>;
0159 };
0160 };
0161 port {
0162 lcd_ep: endpoint {
0163 remote-endpoint = <&fimd_dpi_ep>;
0164 };
0165 };
0166 };
0167 };
0168
0169 hdmi_en: voltage-regulator-hdmi-5v {
0170 compatible = "regulator-fixed";
0171 regulator-name = "HDMI_5V";
0172 regulator-min-microvolt = <5000000>;
0173 regulator-max-microvolt = <5000000>;
0174 gpio = <&gpe0 1 GPIO_ACTIVE_HIGH>;
0175 enable-active-high;
0176 };
0177
0178 hdmi_ddc: i2c-ddc {
0179 compatible = "i2c-gpio";
0180 sda-gpios = <&gpe4 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0181 scl-gpios = <&gpe4 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
0182 i2c-gpio,delay-us = <100>;
0183 #address-cells = <1>;
0184 #size-cells = <0>;
0185
0186 pinctrl-0 = <&i2c_ddc_bus>;
0187 pinctrl-names = "default";
0188 status = "okay";
0189 };
0190 };
0191
0192 &camera {
0193 status = "okay";
0194
0195 pinctrl-names = "default";
0196 pinctrl-0 = <>;
0197 };
0198
0199 &cpu0 {
0200 cpu0-supply = <&vdd_arm_reg>;
0201 };
0202
0203 &cpu_thermal {
0204 cooling-maps {
0205 map0 {
0206 /* Corresponds to 800MHz */
0207 cooling-device = <&cpu0 2 2>;
0208 };
0209 map1 {
0210 /* Corresponds to 200MHz */
0211 cooling-device = <&cpu0 4 4>;
0212 };
0213 };
0214 };
0215
0216 &ehci {
0217 status = "okay";
0218 phys = <&exynos_usbphy 1>;
0219 phy-names = "host";
0220 };
0221
0222 &exynos_usbphy {
0223 status = "okay";
0224 vbus-supply = <&safeout1_reg>;
0225 };
0226
0227 &fimc_0 {
0228 status = "okay";
0229 assigned-clocks = <&clock CLK_MOUT_FIMC0>,
0230 <&clock CLK_SCLK_FIMC0>;
0231 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
0232 assigned-clock-rates = <0>, <160000000>;
0233 };
0234
0235 &fimc_1 {
0236 status = "okay";
0237 assigned-clocks = <&clock CLK_MOUT_FIMC1>,
0238 <&clock CLK_SCLK_FIMC1>;
0239 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
0240 assigned-clock-rates = <0>, <160000000>;
0241 };
0242
0243 &fimc_2 {
0244 status = "okay";
0245 assigned-clocks = <&clock CLK_MOUT_FIMC2>,
0246 <&clock CLK_SCLK_FIMC2>;
0247 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
0248 assigned-clock-rates = <0>, <160000000>;
0249 };
0250
0251 &fimc_3 {
0252 status = "okay";
0253 assigned-clocks = <&clock CLK_MOUT_FIMC3>,
0254 <&clock CLK_SCLK_FIMC3>;
0255 assigned-clock-parents = <&clock CLK_SCLK_MPLL>;
0256 assigned-clock-rates = <0>, <160000000>;
0257 };
0258
0259 &fimd {
0260 pinctrl-0 = <&lcd_clk>, <&lcd_data24>;
0261 pinctrl-names = "default";
0262 status = "okay";
0263 samsung,invert-vden;
0264 samsung,invert-vclk;
0265 #address-cells = <1>;
0266 #size-cells = <0>;
0267 port@3 {
0268 reg = <3>;
0269 fimd_dpi_ep: endpoint {
0270 remote-endpoint = <&lcd_ep>;
0271 };
0272 };
0273 };
0274
0275 &gpu {
0276 mali-supply = <&buck2_reg>;
0277 status = "okay";
0278 };
0279
0280 &hdmi {
0281 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
0282 pinctrl-names = "default";
0283 pinctrl-0 = <&hdmi_hpd>;
0284 hdmi-en-supply = <&hdmi_en>;
0285 vdd-supply = <&ldo3_reg>;
0286 vdd_osc-supply = <&ldo4_reg>;
0287 vdd_pll-supply = <&ldo3_reg>;
0288 ddc = <&hdmi_ddc>;
0289 status = "okay";
0290 };
0291
0292 &hsotg {
0293 vusb_d-supply = <&ldo3_reg>;
0294 vusb_a-supply = <&ldo8_reg>;
0295 dr_mode = "peripheral";
0296 status = "okay";
0297 };
0298
0299 &i2c_3 {
0300 samsung,i2c-sda-delay = <100>;
0301 samsung,i2c-slave-addr = <0x10>;
0302 samsung,i2c-max-bus-freq = <100000>;
0303 pinctrl-0 = <&i2c3_bus>;
0304 pinctrl-names = "default";
0305 status = "okay";
0306
0307 tsp@4a {
0308 /* TBD: Atmel maXtouch touchscreen */
0309 reg = <0x4a>;
0310 };
0311 };
0312
0313 &i2c_5 {
0314 samsung,i2c-sda-delay = <100>;
0315 samsung,i2c-slave-addr = <0x10>;
0316 samsung,i2c-max-bus-freq = <100000>;
0317 pinctrl-0 = <&i2c5_bus>;
0318 pinctrl-names = "default";
0319 status = "okay";
0320
0321 vdd_arm_reg: pmic@60 {
0322 compatible = "maxim,max8952";
0323 reg = <0x60>;
0324
0325 max8952,vid-gpios = <&gpx0 3 GPIO_ACTIVE_HIGH>,
0326 <&gpx0 4 GPIO_ACTIVE_HIGH>;
0327 max8952,default-mode = <0>;
0328 max8952,dvs-mode-microvolt = <1250000>, <1200000>,
0329 <1050000>, <950000>;
0330 max8952,sync-freq = <0>;
0331 max8952,ramp-speed = <0>;
0332
0333 regulator-name = "VARM_1.2V_C210";
0334 regulator-min-microvolt = <770000>;
0335 regulator-max-microvolt = <1400000>;
0336 regulator-always-on;
0337 regulator-boot-on;
0338 };
0339
0340 pmic@66 {
0341 compatible = "national,lp3974";
0342 interrupts-extended = <&gpx0 7 0>, <&gpx2 7 0>;
0343 pinctrl-names = "default";
0344 pinctrl-0 = <&lp3974_irq>;
0345 reg = <0x66>;
0346
0347 max8998,pmic-buck1-default-dvs-idx = <0>;
0348 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
0349 <&gpx0 6 GPIO_ACTIVE_HIGH>;
0350 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
0351 <1100000>, <1000000>;
0352
0353 max8998,pmic-buck2-default-dvs-idx = <0>;
0354 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
0355 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
0356
0357 regulators {
0358 ldo2_reg: LDO2 {
0359 regulator-name = "VALIVE_1.2V";
0360 regulator-min-microvolt = <1200000>;
0361 regulator-max-microvolt = <1200000>;
0362 regulator-always-on;
0363 };
0364
0365 ldo3_reg: LDO3 {
0366 regulator-name = "VUSB+MIPI_1.1V";
0367 regulator-min-microvolt = <1100000>;
0368 regulator-max-microvolt = <1100000>;
0369 regulator-always-on;
0370 };
0371
0372 ldo4_reg: LDO4 {
0373 regulator-name = "VADC_3.3V";
0374 regulator-min-microvolt = <3300000>;
0375 regulator-max-microvolt = <3300000>;
0376 };
0377
0378 ldo5_reg: LDO5 {
0379 regulator-name = "VTF_2.8V";
0380 regulator-min-microvolt = <2800000>;
0381 regulator-max-microvolt = <2800000>;
0382 };
0383
0384 ldo6_reg: LDO6 {
0385 regulator-name = "LDO6";
0386 regulator-min-microvolt = <2000000>;
0387 regulator-max-microvolt = <2000000>;
0388 };
0389
0390 ldo7_reg: LDO7 {
0391 regulator-name = "VLCD+VMIPI_1.8V";
0392 regulator-min-microvolt = <1800000>;
0393 regulator-max-microvolt = <1800000>;
0394 };
0395
0396 ldo8_reg: LDO8 {
0397 regulator-name = "VUSB+VDAC_3.3V";
0398 regulator-min-microvolt = <3300000>;
0399 regulator-max-microvolt = <3300000>;
0400 regulator-always-on;
0401 };
0402
0403 ldo9_reg: LDO9 {
0404 regulator-name = "VCC_2.8V";
0405 regulator-min-microvolt = <2800000>;
0406 regulator-max-microvolt = <2800000>;
0407 regulator-always-on;
0408 };
0409
0410 ldo10_reg: LDO10 {
0411 regulator-name = "VPLL_1.1V";
0412 regulator-min-microvolt = <1100000>;
0413 regulator-max-microvolt = <1100000>;
0414 regulator-boot-on;
0415 regulator-always-on;
0416 };
0417
0418 ldo11_reg: LDO11 {
0419 regulator-name = "CAM_AF_3.3V";
0420 regulator-min-microvolt = <3300000>;
0421 regulator-max-microvolt = <3300000>;
0422 };
0423
0424 ldo12_reg: LDO12 {
0425 regulator-name = "PS_2.8V";
0426 regulator-min-microvolt = <2800000>;
0427 regulator-max-microvolt = <2800000>;
0428 };
0429
0430 ldo13_reg: LDO13 {
0431 regulator-name = "VHIC_1.2V";
0432 regulator-min-microvolt = <1200000>;
0433 regulator-max-microvolt = <1200000>;
0434 };
0435
0436 ldo14_reg: LDO14 {
0437 regulator-name = "CAM_I_HOST_1.8V";
0438 regulator-min-microvolt = <1800000>;
0439 regulator-max-microvolt = <1800000>;
0440 };
0441
0442 ldo15_reg: LDO15 {
0443 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
0444 regulator-min-microvolt = <1200000>;
0445 regulator-max-microvolt = <1200000>;
0446 };
0447
0448 ldo16_reg: LDO16 {
0449 regulator-name = "CAM_S_ANA_2.8V";
0450 regulator-min-microvolt = <2800000>;
0451 regulator-max-microvolt = <2800000>;
0452 };
0453
0454 ldo17_reg: LDO17 {
0455 regulator-name = "VCC_3.0V_LCD";
0456 regulator-min-microvolt = <3000000>;
0457 regulator-max-microvolt = <3000000>;
0458 };
0459
0460 buck1_reg: BUCK1 {
0461 regulator-name = "VINT_1.1V";
0462 regulator-min-microvolt = <750000>;
0463 regulator-max-microvolt = <1500000>;
0464 regulator-boot-on;
0465 regulator-always-on;
0466 };
0467
0468 buck2_reg: BUCK2 {
0469 regulator-name = "VG3D_1.1V";
0470 regulator-min-microvolt = <750000>;
0471 regulator-max-microvolt = <1500000>;
0472 regulator-boot-on;
0473 };
0474
0475 buck3_reg: BUCK3 {
0476 regulator-name = "VCC_1.8V";
0477 regulator-min-microvolt = <1800000>;
0478 regulator-max-microvolt = <1800000>;
0479 regulator-always-on;
0480 };
0481
0482 buck4_reg: BUCK4 {
0483 regulator-name = "VMEM_1.2V";
0484 regulator-min-microvolt = <1200000>;
0485 regulator-max-microvolt = <1200000>;
0486 regulator-always-on;
0487 };
0488
0489 ap32khz_reg: EN32KHz-AP {
0490 regulator-name = "32KHz AP";
0491 regulator-always-on;
0492 };
0493
0494 cp32khz_reg: EN32KHz-CP {
0495 regulator-name = "32KHz CP";
0496 };
0497
0498 vichg_reg: ENVICHG {
0499 regulator-name = "VICHG";
0500 };
0501
0502 safeout1_reg: ESAFEOUT1 {
0503 regulator-name = "SAFEOUT1";
0504 };
0505
0506 safeout2_reg: ESAFEOUT2 {
0507 regulator-name = "SAFEOUT2";
0508 regulator-boot-on;
0509 };
0510 };
0511 };
0512 };
0513
0514 &i2c_8 {
0515 status = "okay";
0516 };
0517
0518 &mct {
0519 compatible = "none";
0520 };
0521
0522 &mdma1 {
0523 /* Use the secure mdma0 */
0524 status = "disabled";
0525 };
0526
0527 &mixer {
0528 status = "okay";
0529 };
0530
0531 &ohci {
0532 status = "okay";
0533 };
0534
0535 &pinctrl_1 {
0536 bt_shutdown: bt-shutdown-pins {
0537 samsung,pins = "gpe1-4";
0538 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0539 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0540 };
0541
0542 bt_host_wakeup: bt-host-wakeup-pins {
0543 samsung,pins = "gpx2-6";
0544 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0545 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0546 };
0547
0548 bt_device_wakeup: bt-device-wakeup-pins {
0549 samsung,pins = "gpx3-1";
0550 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0551 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0552 };
0553
0554 lp3974_irq: lp3974-irq-pins {
0555 samsung,pins = "gpx0-7", "gpx2-7";
0556 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0557 };
0558
0559 hdmi_hpd: hdmi-hpd-pins {
0560 samsung,pins = "gpx3-7";
0561 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0562 };
0563 };
0564
0565 &pinctrl_0 {
0566 i2c_ddc_bus: i2c-ddc-bus-pins {
0567 samsung,pins = "gpe4-2", "gpe4-3";
0568 samsung,pin-function = <EXYNOS_PIN_FUNC_2>;
0569 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
0570 samsung,pin-drv = <EXYNOS4_PIN_DRV_LV1>;
0571 };
0572 };
0573
0574 &pwm {
0575 compatible = "samsung,s5p6440-pwm";
0576 status = "okay";
0577 };
0578
0579 &rtc {
0580 status = "okay";
0581 clocks = <&clock CLK_RTC>, <&pmic_ap_clk>;
0582 clock-names = "rtc", "rtc_src";
0583 };
0584
0585 &sdhci_0 {
0586 bus-width = <8>;
0587 non-removable;
0588 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
0589 pinctrl-names = "default";
0590 vmmc-supply = <&vemmc_reg>;
0591 status = "okay";
0592 };
0593
0594 &sdhci_2 {
0595 bus-width = <4>;
0596 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_bus4>;
0597 pinctrl-names = "default";
0598 vmmc-supply = <&ldo5_reg>;
0599 cd-gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
0600 status = "okay";
0601 };
0602
0603 &sdhci_3 {
0604 status = "okay";
0605
0606 #address-cells = <1>;
0607 #size-cells = <0>;
0608
0609 non-removable;
0610 bus-width = <4>;
0611 mmc-pwrseq = <&wlan_pwrseq>;
0612 vmmc-supply = <&ldo5_reg>;
0613
0614 pinctrl-names = "default";
0615 pinctrl-0 = <&sd3_clk>, <&sd3_cmd>, <&sd3_bus4>;
0616
0617 brcmf: wifi@1 {
0618 compatible = "brcm,bcm4330-fmac", "brcm,bcm4329-fmac";
0619 reg = <1>;
0620 interrupt-parent = <&gpx2>;
0621 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
0622 interrupt-names = "host-wake";
0623 };
0624 };
0625
0626 &serial_0 {
0627 status = "okay";
0628 /delete-property/dmas;
0629 /delete-property/dma-names;
0630 pinctrl-0 = <&uart0_data &uart0_fctl>;
0631 pinctrl-names = "default";
0632
0633 bluetooth {
0634 compatible = "brcm,bcm4330-bt";
0635 pinctrl-0 = <&bt_shutdown &bt_device_wakeup &bt_host_wakeup>;
0636 pinctrl-names = "default";
0637 shutdown-gpios = <&gpe1 4 GPIO_ACTIVE_HIGH>;
0638 device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
0639 host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
0640 };
0641 };
0642
0643 &serial_1 {
0644 status = "okay";
0645 /delete-property/dmas;
0646 /delete-property/dma-names;
0647 };
0648
0649 &serial_2 {
0650 status = "okay";
0651 /delete-property/dmas;
0652 /delete-property/dma-names;
0653 };
0654
0655 &serial_3 {
0656 status = "okay";
0657 /delete-property/dmas;
0658 /delete-property/dma-names;
0659 };
0660
0661 &soc {
0662 mdma0: dma-controller@12840000 {
0663 compatible = "arm,pl330", "arm,primecell";
0664 reg = <0x12840000 0x1000>;
0665 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
0666 clocks = <&clock CLK_MDMA>;
0667 clock-names = "apb_pclk";
0668 #dma-cells = <1>;
0669 power-domains = <&pd_lcd0>;
0670 };
0671 };
0672
0673 &sysram {
0674 smp-sram@0 {
0675 status = "disabled";
0676 };
0677
0678 smp-sram@5000 {
0679 compatible = "samsung,exynos4210-sysram";
0680 reg = <0x5000 0x1000>;
0681 };
0682
0683 smp-sram@1f000 {
0684 status = "disabled";
0685 };
0686 };