0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Google Peach Pi Rev 10+ board device tree source
0004 *
0005 * Copyright (c) 2014 Google, Inc
0006 */
0007
0008 /dts-v1/;
0009 #include <dt-bindings/input/input.h>
0010 #include <dt-bindings/gpio/gpio.h>
0011 #include <dt-bindings/interrupt-controller/irq.h>
0012 #include <dt-bindings/clock/maxim,max77802.h>
0013 #include <dt-bindings/regulator/maxim,max77802.h>
0014 #include <dt-bindings/sound/samsung-i2s.h>
0015 #include "exynos5800.dtsi"
0016 #include "exynos5420-cpus.dtsi"
0017
0018 / {
0019 model = "Google Peach Pi Rev 10+";
0020
0021 compatible = "google,pi-rev16",
0022 "google,pi-rev15", "google,pi-rev14",
0023 "google,pi-rev13", "google,pi-rev12",
0024 "google,pi-rev11", "google,pi-rev10",
0025 "google,pi", "google,peach", "samsung,exynos5800",
0026 "samsung,exynos5";
0027 chassis-type = "laptop";
0028
0029 aliases {
0030 /* Assign 20 so we don't get confused w/ builtin ones */
0031 i2c20 = &i2c_tunnel;
0032 };
0033
0034 backlight: backlight {
0035 compatible = "pwm-backlight";
0036 pwms = <&pwm 0 1000000 0>;
0037 brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
0038 default-brightness-level = <7>;
0039 enable-gpios = <&gpx2 2 GPIO_ACTIVE_HIGH>;
0040 power-supply = <&tps65090_fet1>;
0041 pinctrl-0 = <&pwm0_out>;
0042 pinctrl-names = "default";
0043 };
0044
0045 chosen {
0046 stdout-path = "serial3:115200n8";
0047 };
0048
0049 fixed-rate-clocks {
0050 oscclk {
0051 compatible = "samsung,exynos5420-oscclk";
0052 clock-frequency = <24000000>;
0053 };
0054 };
0055
0056 gpio-keys {
0057 compatible = "gpio-keys";
0058
0059 pinctrl-names = "default";
0060 pinctrl-0 = <&power_key_irq &lid_irq>;
0061
0062 power-key {
0063 label = "Power";
0064 gpios = <&gpx1 2 GPIO_ACTIVE_LOW>;
0065 linux,code = <KEY_POWER>;
0066 wakeup-source;
0067 };
0068
0069 lid-switch {
0070 label = "Lid";
0071 gpios = <&gpx3 4 GPIO_ACTIVE_LOW>;
0072 linux,input-type = <5>; /* EV_SW */
0073 linux,code = <0>; /* SW_LID */
0074 debounce-interval = <1>;
0075 wakeup-source;
0076 };
0077
0078 };
0079
0080 memory@20000000 {
0081 device_type = "memory";
0082 reg = <0x20000000 0x80000000>;
0083 };
0084
0085 sound {
0086 compatible = "google,snow-audio-max98091";
0087
0088 samsung,model = "Peach-Pi-I2S-MAX98091";
0089 samsung,i2s-controller = <&i2s0>;
0090 samsung,audio-codec = <&max98091>;
0091
0092 cpu {
0093 sound-dai = <&i2s0 0>;
0094 };
0095
0096 codec {
0097 sound-dai = <&max98091>, <&hdmi>;
0098 };
0099 };
0100
0101 usb300_vbus_reg: regulator-usb300 {
0102 compatible = "regulator-fixed";
0103 regulator-name = "P5.0V_USB3CON0";
0104 regulator-min-microvolt = <5000000>;
0105 regulator-max-microvolt = <5000000>;
0106 gpio = <&gph0 0 GPIO_ACTIVE_HIGH>;
0107 pinctrl-names = "default";
0108 pinctrl-0 = <&usb300_vbus_en>;
0109 enable-active-high;
0110 };
0111
0112 usb301_vbus_reg: regulator-usb301 {
0113 compatible = "regulator-fixed";
0114 regulator-name = "P5.0V_USB3CON1";
0115 regulator-min-microvolt = <5000000>;
0116 regulator-max-microvolt = <5000000>;
0117 gpio = <&gph0 1 GPIO_ACTIVE_HIGH>;
0118 pinctrl-names = "default";
0119 pinctrl-0 = <&usb301_vbus_en>;
0120 enable-active-high;
0121 };
0122
0123 vbat: fixed-regulator {
0124 compatible = "regulator-fixed";
0125 regulator-name = "vbat-supply";
0126 regulator-boot-on;
0127 regulator-always-on;
0128 };
0129
0130 panel: panel {
0131 compatible = "auo,b133htn01";
0132 power-supply = <&tps65090_fet6>;
0133 backlight = <&backlight>;
0134
0135 port {
0136 panel_in: endpoint {
0137 remote-endpoint = <&dp_out>;
0138 };
0139 };
0140 };
0141
0142 mmc1_pwrseq: mmc1-pwrseq {
0143 compatible = "mmc-pwrseq-simple";
0144 reset-gpios = <&gpx0 0 GPIO_ACTIVE_LOW>; /* WIFI_EN */
0145 clocks = <&max77802 MAX77802_CLK_32K_CP>;
0146 clock-names = "ext_clock";
0147 };
0148 };
0149
0150 &adc {
0151 status = "okay";
0152 vdd-supply = <&ldo9_reg>;
0153 };
0154
0155 &clock_audss {
0156 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>;
0157 assigned-clock-parents = <&clock CLK_MAU_EPLL>;
0158 };
0159
0160 /*
0161 * Peach Pi board uses SoC revision with lower maximum frequency for A7 cores
0162 * (1.3 GHz instead of 1.4 GHz) than Odroid XU3/XU4 boards. Thus we need to
0163 * update A7 OPPs table accordingly.
0164 */
0165 &cluster_a7_opp_table {
0166 /delete-node/opp-1400000000;
0167 };
0168
0169 &cpu0 {
0170 cpu-supply = <&buck2_reg>;
0171 };
0172
0173 &cpu4 {
0174 cpu-supply = <&buck6_reg>;
0175 };
0176
0177 &dp {
0178 status = "okay";
0179 pinctrl-names = "default";
0180 pinctrl-0 = <&dp_hpd_gpio>;
0181 samsung,color-space = <0>;
0182 samsung,color-depth = <1>;
0183 samsung,link-rate = <0x0a>;
0184 samsung,lane-count = <2>;
0185 samsung,hpd-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
0186
0187 ports {
0188 port {
0189 dp_out: endpoint {
0190 remote-endpoint = <&panel_in>;
0191 };
0192 };
0193 };
0194 };
0195
0196 &fimd {
0197 status = "okay";
0198 samsung,invert-vclk;
0199 };
0200
0201 &hdmi {
0202 status = "okay";
0203 hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
0204 pinctrl-names = "default";
0205 pinctrl-0 = <&hdmi_hpd_irq>;
0206 ddc = <&i2c_2>;
0207
0208 hdmi-en-supply = <&tps65090_fet7>;
0209 vdd-supply = <&ldo8_reg>;
0210 vdd_osc-supply = <&ldo10_reg>;
0211 vdd_pll-supply = <&ldo8_reg>;
0212 };
0213
0214 &hsi2c_4 {
0215 status = "okay";
0216 clock-frequency = <400000>;
0217
0218 max77802: pmic@9 {
0219 compatible = "maxim,max77802";
0220 interrupt-parent = <&gpx3>;
0221 interrupts = <1 IRQ_TYPE_NONE>;
0222 pinctrl-names = "default";
0223 pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
0224 <&pmic_dvs_1>, <&pmic_dvs_2>;
0225 wakeup-source;
0226 reg = <0x9>;
0227 #clock-cells = <1>;
0228
0229 inb1-supply = <&tps65090_dcdc2>;
0230 inb2-supply = <&tps65090_dcdc1>;
0231 inb3-supply = <&tps65090_dcdc2>;
0232 inb4-supply = <&tps65090_dcdc2>;
0233 inb5-supply = <&tps65090_dcdc1>;
0234 inb6-supply = <&tps65090_dcdc2>;
0235 inb7-supply = <&tps65090_dcdc1>;
0236 inb8-supply = <&tps65090_dcdc1>;
0237 inb9-supply = <&tps65090_dcdc1>;
0238 inb10-supply = <&tps65090_dcdc1>;
0239
0240 inl1-supply = <&buck5_reg>;
0241 inl2-supply = <&buck7_reg>;
0242 inl3-supply = <&buck9_reg>;
0243 inl4-supply = <&buck9_reg>;
0244 inl5-supply = <&buck9_reg>;
0245 inl6-supply = <&tps65090_dcdc2>;
0246 inl7-supply = <&buck9_reg>;
0247 inl9-supply = <&tps65090_dcdc2>;
0248 inl10-supply = <&buck7_reg>;
0249
0250 regulators {
0251 buck1_reg: BUCK1 {
0252 regulator-name = "vdd_mif";
0253 regulator-min-microvolt = <800000>;
0254 regulator-max-microvolt = <1300000>;
0255 regulator-always-on;
0256 regulator-boot-on;
0257 regulator-ramp-delay = <12500>;
0258 regulator-state-mem {
0259 regulator-off-in-suspend;
0260 };
0261 };
0262
0263 buck2_reg: BUCK2 {
0264 regulator-name = "vdd_arm";
0265 regulator-min-microvolt = <800000>;
0266 regulator-max-microvolt = <1500000>;
0267 regulator-always-on;
0268 regulator-boot-on;
0269 regulator-ramp-delay = <12500>;
0270 regulator-coupled-with = <&buck3_reg>;
0271 regulator-coupled-max-spread = <300000>;
0272 regulator-state-mem {
0273 regulator-off-in-suspend;
0274 };
0275 };
0276
0277 buck3_reg: BUCK3 {
0278 regulator-name = "vdd_int";
0279 regulator-min-microvolt = <800000>;
0280 regulator-max-microvolt = <1400000>;
0281 regulator-always-on;
0282 regulator-boot-on;
0283 regulator-ramp-delay = <12500>;
0284 regulator-coupled-with = <&buck2_reg>;
0285 regulator-coupled-max-spread = <300000>;
0286 regulator-state-mem {
0287 regulator-off-in-suspend;
0288 };
0289 };
0290
0291 buck4_reg: BUCK4 {
0292 regulator-name = "vdd_g3d";
0293 regulator-min-microvolt = <700000>;
0294 regulator-max-microvolt = <1400000>;
0295 regulator-always-on;
0296 regulator-boot-on;
0297 regulator-ramp-delay = <12500>;
0298 regulator-state-mem {
0299 regulator-off-in-suspend;
0300 };
0301 };
0302
0303 buck5_reg: BUCK5 {
0304 regulator-name = "vdd_1v2";
0305 regulator-min-microvolt = <1200000>;
0306 regulator-max-microvolt = <1200000>;
0307 regulator-boot-on;
0308 regulator-state-mem {
0309 regulator-off-in-suspend;
0310 };
0311 };
0312
0313 buck6_reg: BUCK6 {
0314 regulator-name = "vdd_kfc";
0315 regulator-min-microvolt = <800000>;
0316 regulator-max-microvolt = <1500000>;
0317 regulator-always-on;
0318 regulator-boot-on;
0319 regulator-ramp-delay = <12500>;
0320 regulator-state-mem {
0321 regulator-off-in-suspend;
0322 };
0323 };
0324
0325 buck7_reg: BUCK7 {
0326 regulator-name = "vdd_1v35";
0327 regulator-min-microvolt = <1350000>;
0328 regulator-max-microvolt = <1350000>;
0329 regulator-always-on;
0330 regulator-boot-on;
0331 regulator-state-mem {
0332 regulator-on-in-suspend;
0333 };
0334 };
0335
0336 buck8_reg: BUCK8 {
0337 regulator-name = "vdd_emmc";
0338 regulator-min-microvolt = <2850000>;
0339 regulator-max-microvolt = <2850000>;
0340 regulator-always-on;
0341 regulator-boot-on;
0342 regulator-state-mem {
0343 regulator-off-in-suspend;
0344 };
0345 };
0346
0347 buck9_reg: BUCK9 {
0348 regulator-name = "vdd_2v";
0349 regulator-min-microvolt = <2000000>;
0350 regulator-max-microvolt = <2000000>;
0351 regulator-always-on;
0352 regulator-boot-on;
0353 regulator-state-mem {
0354 regulator-on-in-suspend;
0355 };
0356 };
0357
0358 buck10_reg: BUCK10 {
0359 regulator-name = "vdd_1v8";
0360 regulator-min-microvolt = <1800000>;
0361 regulator-max-microvolt = <1800000>;
0362 regulator-always-on;
0363 regulator-boot-on;
0364 regulator-state-mem {
0365 regulator-on-in-suspend;
0366 };
0367 };
0368
0369 ldo1_reg: LDO1 {
0370 regulator-name = "vdd_1v0";
0371 regulator-min-microvolt = <1000000>;
0372 regulator-max-microvolt = <1000000>;
0373 regulator-always-on;
0374 regulator-state-mem {
0375 regulator-on-in-suspend;
0376 regulator-mode = <MAX77802_OPMODE_LP>;
0377 };
0378 };
0379
0380 ldo2_reg: LDO2 {
0381 regulator-name = "vdd_1v2_2";
0382 regulator-min-microvolt = <1200000>;
0383 regulator-max-microvolt = <1200000>;
0384 };
0385
0386 ldo3_reg: LDO3 {
0387 regulator-name = "vdd_1v8_3";
0388 regulator-min-microvolt = <1800000>;
0389 regulator-max-microvolt = <1800000>;
0390 regulator-always-on;
0391 regulator-state-mem {
0392 regulator-on-in-suspend;
0393 regulator-mode = <MAX77802_OPMODE_LP>;
0394 };
0395 };
0396
0397 vqmmc_sdcard: ldo4_reg: LDO4 {
0398 regulator-name = "vdd_sd";
0399 regulator-min-microvolt = <1800000>;
0400 regulator-max-microvolt = <2800000>;
0401 regulator-always-on;
0402 regulator-state-mem {
0403 regulator-off-in-suspend;
0404 };
0405 };
0406
0407 ldo5_reg: LDO5 {
0408 regulator-name = "vdd_1v8_5";
0409 regulator-min-microvolt = <1800000>;
0410 regulator-max-microvolt = <1800000>;
0411 regulator-always-on;
0412 regulator-state-mem {
0413 regulator-off-in-suspend;
0414 };
0415 };
0416
0417 ldo6_reg: LDO6 {
0418 regulator-name = "vdd_1v8_6";
0419 regulator-min-microvolt = <1800000>;
0420 regulator-max-microvolt = <1800000>;
0421 regulator-always-on;
0422 regulator-state-mem {
0423 regulator-off-in-suspend;
0424 };
0425 };
0426
0427 ldo7_reg: LDO7 {
0428 regulator-name = "vdd_1v8_7";
0429 regulator-min-microvolt = <1800000>;
0430 regulator-max-microvolt = <1800000>;
0431 };
0432
0433 ldo8_reg: LDO8 {
0434 regulator-name = "vdd_ldo8";
0435 regulator-min-microvolt = <1000000>;
0436 regulator-max-microvolt = <1000000>;
0437 regulator-always-on;
0438 regulator-state-mem {
0439 regulator-off-in-suspend;
0440 };
0441 };
0442
0443 ldo9_reg: LDO9 {
0444 regulator-name = "vdd_ldo9";
0445 regulator-min-microvolt = <1800000>;
0446 regulator-max-microvolt = <1800000>;
0447 regulator-state-mem {
0448 regulator-on-in-suspend;
0449 regulator-mode = <MAX77802_OPMODE_LP>;
0450 };
0451 };
0452
0453 ldo10_reg: LDO10 {
0454 regulator-name = "vdd_ldo10";
0455 regulator-min-microvolt = <1800000>;
0456 regulator-max-microvolt = <1800000>;
0457 regulator-always-on;
0458 regulator-state-mem {
0459 regulator-off-in-suspend;
0460 };
0461 };
0462
0463 ldo11_reg: LDO11 {
0464 regulator-name = "vdd_ldo11";
0465 regulator-min-microvolt = <1800000>;
0466 regulator-max-microvolt = <1800000>;
0467 regulator-always-on;
0468 regulator-state-mem {
0469 regulator-on-in-suspend;
0470 regulator-mode = <MAX77802_OPMODE_LP>;
0471 };
0472 };
0473
0474 ldo12_reg: LDO12 {
0475 regulator-name = "vdd_ldo12";
0476 regulator-min-microvolt = <3000000>;
0477 regulator-max-microvolt = <3000000>;
0478 regulator-always-on;
0479 regulator-state-mem {
0480 regulator-off-in-suspend;
0481 };
0482 };
0483
0484 ldo13_reg: LDO13 {
0485 regulator-name = "vdd_ldo13";
0486 regulator-min-microvolt = <1800000>;
0487 regulator-max-microvolt = <1800000>;
0488 regulator-always-on;
0489 regulator-state-mem {
0490 regulator-on-in-suspend;
0491 regulator-mode = <MAX77802_OPMODE_LP>;
0492 };
0493 };
0494
0495 ldo14_reg: LDO14 {
0496 regulator-name = "vdd_ldo14";
0497 regulator-min-microvolt = <1800000>;
0498 regulator-max-microvolt = <1800000>;
0499 regulator-always-on;
0500 regulator-state-mem {
0501 regulator-off-in-suspend;
0502 };
0503 };
0504
0505 ldo15_reg: LDO15 {
0506 regulator-name = "vdd_ldo15";
0507 regulator-min-microvolt = <1000000>;
0508 regulator-max-microvolt = <1000000>;
0509 regulator-always-on;
0510 regulator-state-mem {
0511 regulator-off-in-suspend;
0512 };
0513 };
0514
0515 ldo17_reg: LDO17 {
0516 regulator-name = "vdd_g3ds";
0517 regulator-min-microvolt = <900000>;
0518 regulator-max-microvolt = <1400000>;
0519 regulator-always-on;
0520 regulator-state-mem {
0521 regulator-off-in-suspend;
0522 };
0523 };
0524
0525 ldo18_reg: LDO18 {
0526 regulator-name = "ldo_18";
0527 regulator-min-microvolt = <1800000>;
0528 regulator-max-microvolt = <1800000>;
0529 };
0530
0531 ldo19_reg: LDO19 {
0532 regulator-name = "ldo_19";
0533 regulator-min-microvolt = <1800000>;
0534 regulator-max-microvolt = <1800000>;
0535 };
0536
0537 ldo20_reg: LDO20 {
0538 regulator-name = "ldo_20";
0539 regulator-min-microvolt = <1800000>;
0540 regulator-max-microvolt = <1800000>;
0541 regulator-always-on;
0542 };
0543
0544 ldo21_reg: LDO21 {
0545 regulator-name = "ldo_21";
0546 regulator-min-microvolt = <2800000>;
0547 regulator-max-microvolt = <2800000>;
0548 };
0549
0550 ldo23_reg: LDO23 {
0551 regulator-name = "ldo_23";
0552 regulator-min-microvolt = <3300000>;
0553 regulator-max-microvolt = <3300000>;
0554 };
0555 ldo24_reg: LDO24 {
0556 regulator-name = "ldo_24";
0557 regulator-min-microvolt = <2800000>;
0558 regulator-max-microvolt = <2800000>;
0559 };
0560
0561 ldo25_reg: LDO25 {
0562 regulator-name = "ldo_25";
0563 regulator-min-microvolt = <3300000>;
0564 regulator-max-microvolt = <3300000>;
0565 };
0566
0567 ldo26_reg: LDO26 {
0568 regulator-name = "ldo_26";
0569 regulator-min-microvolt = <1200000>;
0570 regulator-max-microvolt = <1200000>;
0571 };
0572
0573 ldo27_reg: LDO27 {
0574 regulator-name = "ldo_27";
0575 regulator-min-microvolt = <1200000>;
0576 regulator-max-microvolt = <1200000>;
0577 };
0578
0579 ldo28_reg: LDO28 {
0580 regulator-name = "ldo_28";
0581 regulator-min-microvolt = <1800000>;
0582 regulator-max-microvolt = <1800000>;
0583 };
0584
0585 ldo29_reg: LDO29 {
0586 regulator-name = "ldo_29";
0587 regulator-min-microvolt = <1800000>;
0588 regulator-max-microvolt = <1800000>;
0589 };
0590
0591 ldo30_reg: LDO30 {
0592 regulator-name = "vdd_mifs";
0593 regulator-min-microvolt = <1000000>;
0594 regulator-max-microvolt = <1000000>;
0595 regulator-always-on;
0596 regulator-state-mem {
0597 regulator-off-in-suspend;
0598 };
0599 };
0600
0601 ldo32_reg: LDO32 {
0602 regulator-name = "ldo_32";
0603 regulator-min-microvolt = <3000000>;
0604 regulator-max-microvolt = <3000000>;
0605 };
0606
0607 ldo33_reg: LDO33 {
0608 regulator-name = "ldo_33";
0609 regulator-min-microvolt = <2800000>;
0610 regulator-max-microvolt = <2800000>;
0611 };
0612
0613 ldo34_reg: LDO34 {
0614 regulator-name = "ldo_34";
0615 regulator-min-microvolt = <3000000>;
0616 regulator-max-microvolt = <3000000>;
0617 };
0618
0619 ldo35_reg: LDO35 {
0620 regulator-name = "ldo_35";
0621 regulator-min-microvolt = <1200000>;
0622 regulator-max-microvolt = <1200000>;
0623 };
0624 };
0625 };
0626 };
0627
0628 &hsi2c_7 {
0629 status = "okay";
0630 clock-frequency = <400000>;
0631
0632 max98091: codec@10 {
0633 compatible = "maxim,max98091";
0634 reg = <0x10>;
0635 interrupts = <2 IRQ_TYPE_NONE>;
0636 interrupt-parent = <&gpx0>;
0637 pinctrl-names = "default";
0638 pinctrl-0 = <&max98091_irq>;
0639 clocks = <&pmu_system_controller 0>;
0640 clock-names = "mclk";
0641 #sound-dai-cells = <0>;
0642 };
0643
0644 light-sensor@44 {
0645 compatible = "isil,isl29018";
0646 reg = <0x44>;
0647 vcc-supply = <&tps65090_fet5>;
0648 };
0649 };
0650
0651 &hsi2c_8 {
0652 status = "okay";
0653 clock-frequency = <333000>;
0654 /* Atmel mXT540S */
0655 trackpad@4b {
0656 compatible = "atmel,maxtouch";
0657 reg = <0x4b>;
0658 interrupt-parent = <&gpx1>;
0659 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
0660 wakeup-source;
0661 pinctrl-names = "default";
0662 pinctrl-0 = <&trackpad_irq>;
0663 linux,gpio-keymap = <KEY_RESERVED
0664 KEY_RESERVED
0665 KEY_RESERVED /* GPIO 0 */
0666 KEY_RESERVED /* GPIO 1 */
0667 BTN_LEFT /* GPIO 2 */
0668 KEY_RESERVED>; /* GPIO 3 */
0669 };
0670 };
0671
0672 &hsi2c_9 {
0673 status = "okay";
0674 clock-frequency = <400000>;
0675
0676 tpm@20 {
0677 compatible = "infineon,slb9645tt";
0678 reg = <0x20>;
0679
0680 /* Unused irq; but still need to configure the pins */
0681 pinctrl-names = "default";
0682 pinctrl-0 = <&tpm_irq>;
0683 };
0684 };
0685
0686 &i2c_2 {
0687 status = "okay";
0688 samsung,i2c-sda-delay = <100>;
0689 samsung,i2c-max-bus-freq = <66000>;
0690 samsung,i2c-slave-addr = <0x50>;
0691 };
0692
0693 &i2s0 {
0694 assigned-clocks = <&i2s0 CLK_I2S_RCLK_SRC>;
0695 assigned-clock-parents = <&clock_audss EXYNOS_I2S_BUS>;
0696 status = "okay";
0697 };
0698
0699 &mixer {
0700 status = "okay";
0701 };
0702
0703 /* eMMC flash */
0704 &mmc_0 {
0705 status = "okay";
0706 mmc-hs200-1_8v;
0707 mmc-hs400-1_8v;
0708 cap-mmc-highspeed;
0709 non-removable;
0710 clock-frequency = <800000000>;
0711 samsung,dw-mshc-ciu-div = <3>;
0712 samsung,dw-mshc-sdr-timing = <0 4>;
0713 samsung,dw-mshc-ddr-timing = <0 2>;
0714 samsung,dw-mshc-hs400-timing = <0 2>;
0715 samsung,read-strobe-delay = <90>;
0716 pinctrl-names = "default";
0717 pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_rclk>;
0718 bus-width = <8>;
0719 };
0720
0721 /* WiFi SDIO module */
0722 &mmc_1 {
0723 status = "okay";
0724 non-removable;
0725 cap-sdio-irq;
0726 keep-power-in-suspend;
0727 clock-frequency = <400000000>;
0728 samsung,dw-mshc-ciu-div = <1>;
0729 samsung,dw-mshc-sdr-timing = <0 1>;
0730 samsung,dw-mshc-ddr-timing = <0 2>;
0731 pinctrl-names = "default";
0732 pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_int>, <&sd1_bus1>,
0733 <&sd1_bus4>, <&sd1_bus8>, <&wifi_en>;
0734 bus-width = <4>;
0735 cap-sd-highspeed;
0736 mmc-pwrseq = <&mmc1_pwrseq>;
0737 vqmmc-supply = <&buck10_reg>;
0738 };
0739
0740 /* uSD card */
0741 &mmc_2 {
0742 status = "okay";
0743 cap-sd-highspeed;
0744 card-detect-delay = <200>;
0745 clock-frequency = <400000000>;
0746 samsung,dw-mshc-ciu-div = <3>;
0747 samsung,dw-mshc-sdr-timing = <2 3>;
0748 samsung,dw-mshc-ddr-timing = <1 2>;
0749 pinctrl-names = "default";
0750 pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
0751 bus-width = <4>;
0752 };
0753
0754
0755 &pinctrl_0 {
0756 pinctrl-names = "default";
0757 pinctrl-0 = <&mask_tpm_reset>;
0758
0759 wifi_en: wifi-en-pins {
0760 samsung,pins = "gpx0-0";
0761 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0762 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0763 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0764 };
0765
0766 max98091_irq: max98091-irq-pins {
0767 samsung,pins = "gpx0-2";
0768 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0769 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0770 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0771 };
0772
0773 /* We need GPX0_6 to be low at sleep time; just keep it low always */
0774 mask_tpm_reset: mask-tpm-reset-pins {
0775 samsung,pins = "gpx0-6";
0776 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0777 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0778 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0779 samsung,pin-val = <0>;
0780 };
0781
0782 tpm_irq: tpm-irq-pins {
0783 samsung,pins = "gpx1-0";
0784 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0785 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0786 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0787 };
0788
0789 trackpad_irq: trackpad-irq-pins {
0790 samsung,pins = "gpx1-1";
0791 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
0792 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0793 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0794 };
0795
0796 power_key_irq: power-key-irq-pins {
0797 samsung,pins = "gpx1-2";
0798 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0799 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0800 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0801 };
0802
0803 ec_irq: ec-irq-pins {
0804 samsung,pins = "gpx1-5";
0805 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0806 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0807 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0808 };
0809
0810 tps65090_irq: tps65090-irq-pins {
0811 samsung,pins = "gpx2-5";
0812 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0813 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0814 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0815 };
0816
0817 dp_hpd_gpio: dp-hpd-gpio-pins {
0818 samsung,pins = "gpx2-6";
0819 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0820 samsung,pin-pud = <EXYNOS_PIN_PULL_UP>;
0821 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0822 };
0823
0824 max77802_irq: max77802-irq-pins {
0825 samsung,pins = "gpx3-1";
0826 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0827 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0828 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0829 };
0830
0831 lid_irq: lid-irq-pins {
0832 samsung,pins = "gpx3-4";
0833 samsung,pin-function = <EXYNOS_PIN_FUNC_F>;
0834 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0835 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0836 };
0837
0838 hdmi_hpd_irq: hdmi-hpd-irq-pins {
0839 samsung,pins = "gpx3-7";
0840 samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
0841 samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
0842 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0843 };
0844
0845 pmic_dvs_1: pmic-dvs-1-pins {
0846 samsung,pins = "gpy7-6";
0847 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0848 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0849 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0850 };
0851 };
0852
0853 /* pinctrl_1 */
0854 /* Adjust WiFi drive strengths lower for EMI */
0855 &sd1_bus1 {
0856 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0857 };
0858
0859 &sd1_bus4 {
0860 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0861 };
0862
0863 &sd1_bus8 {
0864 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0865 };
0866
0867 &sd1_clk {
0868 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0869 };
0870
0871 &sd1_cmd {
0872 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0873 };
0874
0875 &pinctrl_2 {
0876 pmic_dvs_2: pmic-dvs-2-pins {
0877 samsung,pins = "gpj4-2", "gpj4-3";
0878 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0879 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0880 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0881 };
0882 };
0883
0884 /* pinctrl_3*/
0885 /* Drive SPI lines at x2 for better integrity */
0886 &spi2_bus {
0887 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0888 };
0889
0890 &pinctrl_3 {
0891 /* Drive SPI chip select at x2 for better integrity */
0892 ec_spi_cs: ec-spi-cs-pins {
0893 samsung,pins = "gpb1-2";
0894 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0895 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0896 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV3>;
0897 };
0898
0899 usb300_vbus_en: usb300-vbus-en-pins {
0900 samsung,pins = "gph0-0";
0901 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0902 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0903 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0904 };
0905
0906 usb301_vbus_en: usb301-vbus-en-pins {
0907 samsung,pins = "gph0-1";
0908 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0909 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0910 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0911 };
0912
0913 pmic_selb: pmic-selb-pins {
0914 samsung,pins = "gph0-2", "gph0-3", "gph0-4", "gph0-5",
0915 "gph0-6";
0916 samsung,pin-function = <EXYNOS_PIN_FUNC_OUTPUT>;
0917 samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
0918 samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
0919 };
0920 };
0921
0922 &pmu_system_controller {
0923 assigned-clocks = <&pmu_system_controller 0>;
0924 assigned-clock-parents = <&clock CLK_FIN_PLL>;
0925 };
0926
0927 &rtc {
0928 status = "okay";
0929 clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
0930 clock-names = "rtc", "rtc_src";
0931 };
0932
0933 &spi_2 {
0934 status = "okay";
0935 num-cs = <1>;
0936 samsung,spi-src-clk = <0>;
0937 cs-gpios = <&gpb1 2 GPIO_ACTIVE_HIGH>;
0938
0939 cros_ec: cros-ec@0 {
0940 compatible = "google,cros-ec-spi";
0941 interrupt-parent = <&gpx1>;
0942 interrupts = <5 IRQ_TYPE_NONE>;
0943 pinctrl-names = "default";
0944 pinctrl-0 = <&ec_spi_cs &ec_irq>;
0945 reg = <0>;
0946 spi-max-frequency = <3125000>;
0947 google,has-vbc-nvram;
0948
0949 controller-data {
0950 samsung,spi-feedback-delay = <1>;
0951 };
0952
0953 i2c_tunnel: i2c-tunnel {
0954 compatible = "google,cros-ec-i2c-tunnel";
0955 #address-cells = <1>;
0956 #size-cells = <0>;
0957 google,remote-bus = <0>;
0958
0959 battery: sbs-battery@b {
0960 compatible = "sbs,sbs-battery";
0961 reg = <0xb>;
0962 sbs,poll-retry-count = <1>;
0963 sbs,i2c-retry-count = <2>;
0964 };
0965
0966 power-regulator@48 {
0967 compatible = "ti,tps65090";
0968 reg = <0x48>;
0969
0970 /*
0971 * Config irq to disable internal pulls
0972 * even though we run in polling mode.
0973 */
0974 pinctrl-names = "default";
0975 pinctrl-0 = <&tps65090_irq>;
0976
0977 vsys1-supply = <&vbat>;
0978 vsys2-supply = <&vbat>;
0979 vsys3-supply = <&vbat>;
0980 infet1-supply = <&vbat>;
0981 infet2-supply = <&tps65090_dcdc1>;
0982 infet3-supply = <&tps65090_dcdc2>;
0983 infet4-supply = <&tps65090_dcdc2>;
0984 infet5-supply = <&tps65090_dcdc2>;
0985 infet6-supply = <&tps65090_dcdc2>;
0986 infet7-supply = <&tps65090_dcdc1>;
0987 vsys-l1-supply = <&vbat>;
0988 vsys-l2-supply = <&vbat>;
0989
0990 regulators {
0991 tps65090_dcdc1: dcdc1 {
0992 ti,enable-ext-control;
0993 };
0994 tps65090_dcdc2: dcdc2 {
0995 ti,enable-ext-control;
0996 };
0997 tps65090_dcdc3: dcdc3 {
0998 ti,enable-ext-control;
0999 };
1000 tps65090_fet1: fet1 {
1001 regulator-name = "vcd_led";
1002 };
1003 tps65090_fet2: fet2 {
1004 regulator-name = "video_mid";
1005 regulator-always-on;
1006 };
1007 tps65090_fet3: fet3 {
1008 regulator-name = "wwan_r";
1009 regulator-always-on;
1010 };
1011 tps65090_fet4: fet4 {
1012 regulator-name = "sdcard";
1013 regulator-always-on;
1014 };
1015 tps65090_fet5: fet5 {
1016 regulator-name = "camout";
1017 regulator-always-on;
1018 };
1019 tps65090_fet6: fet6 {
1020 regulator-name = "lcd_vdd";
1021 };
1022 tps65090_fet7: fet7 {
1023 regulator-name = "video_mid_1a";
1024 regulator-always-on;
1025 };
1026 tps65090_ldo1: ldo1 {
1027 };
1028 tps65090_ldo2: ldo2 {
1029 };
1030 };
1031
1032 charger {
1033 compatible = "ti,tps65090-charger";
1034 };
1035 };
1036 };
1037 };
1038 };
1039
1040 &serial_3 {
1041 status = "okay";
1042 };
1043
1044 &timer {
1045 arm,cpu-registers-not-fw-configured;
1046 };
1047
1048 &tmu_cpu0 {
1049 vtmu-supply = <&ldo10_reg>;
1050 };
1051
1052 &tmu_cpu1 {
1053 vtmu-supply = <&ldo10_reg>;
1054 };
1055
1056 &tmu_cpu2 {
1057 vtmu-supply = <&ldo10_reg>;
1058 };
1059
1060 &tmu_cpu3 {
1061 vtmu-supply = <&ldo10_reg>;
1062 };
1063
1064 &tmu_gpu {
1065 vtmu-supply = <&ldo10_reg>;
1066 };
1067
1068 &usbdrd3_0 {
1069 vdd10-supply = <&ldo15_reg>;
1070 vdd33-supply = <&ldo12_reg>;
1071 };
1072
1073 &usbdrd3_1 {
1074 vdd10-supply = <&ldo15_reg>;
1075 vdd33-supply = <&ldo12_reg>;
1076 };
1077
1078 &usbdrd_dwc3_0 {
1079 dr_mode = "host";
1080 };
1081
1082 &usbdrd_dwc3_1 {
1083 dr_mode = "host";
1084 };
1085
1086 &usbdrd_phy0 {
1087 vbus-supply = <&usb300_vbus_reg>;
1088 };
1089
1090 &usbdrd_phy1 {
1091 vbus-supply = <&usb301_vbus_reg>;
1092 };
1093
1094 /*
1095 * Use longest HW watchdog in SoC (32 seconds) since the hardware
1096 * watchdog provides no debugging information (compared to soft/hard
1097 * lockup detectors) and so should be last resort.
1098 */
1099 &watchdog {
1100 timeout-sec = <32>;
1101 };
1102
1103 #include "cros-ec-keyboard.dtsi"
1104 #include "cros-adc-thermistors.dtsi"