1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. 4 * Copyright (c) 2018 Akash Gajjar <Akash_Gajjar@mentor.com> 5 * Copyright (c) 2020 Tobias Schramm <t.schramm@manjaro.org> 6 */ 7 8/dts-v1/; 9#include <dt-bindings/input/gpio-keys.h> 10#include <dt-bindings/input/linux-event-codes.h> 11#include <dt-bindings/pwm/pwm.h> 12#include <dt-bindings/usb/pd.h> 13#include <dt-bindings/leds/common.h> 14#include "rk3399.dtsi" 15#include "rk3399-opp.dtsi" 16 17/ { 18 model = "Pine64 Pinebook Pro"; 19 compatible = "pine64,pinebook-pro", "rockchip,rk3399"; 20 21 chosen { 22 stdout-path = "serial2:1500000n8"; 23 }; 24 25 backlight: edp-backlight { 26 compatible = "pwm-backlight"; 27 power-supply = <&vcc_12v>; 28 pwms = <&pwm0 0 740740 0>; 29 }; 30 31 bat: battery { 32 compatible = "simple-battery"; 33 charge-full-design-microamp-hours = <9800000>; 34 voltage-max-design-microvolt = <4350000>; 35 voltage-min-design-microvolt = <3000000>; 36 }; 37 38 edp_panel: edp-panel { 39 compatible = "boe,nv140fhmn49"; 40 backlight = <&backlight>; 41 enable-gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_HIGH>; 42 pinctrl-names = "default"; 43 pinctrl-0 = <&panel_en_pin>; 44 power-supply = <&vcc3v3_panel>; 45 46 ports { 47 #address-cells = <1>; 48 #size-cells = <0>; 49 50 port@0 { 51 reg = <0>; 52 #address-cells = <1>; 53 #size-cells = <0>; 54 55 panel_in_edp: endpoint@0 { 56 reg = <0>; 57 remote-endpoint = <&edp_out_panel>; 58 }; 59 }; 60 }; 61 }; 62 63 /* 64 * Use separate nodes for gpio-keys to allow for selective deactivation 65 * of wakeup sources via sysfs without disabling the whole key 66 */ 67 gpio-key-lid { 68 compatible = "gpio-keys"; 69 pinctrl-names = "default"; 70 pinctrl-0 = <&lidbtn_pin>; 71 72 lid { 73 debounce-interval = <20>; 74 gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_LOW>; 75 label = "Lid"; 76 linux,code = <SW_LID>; 77 linux,input-type = <EV_SW>; 78 wakeup-event-action = <EV_ACT_DEASSERTED>; 79 wakeup-source; 80 }; 81 }; 82 83 gpio-key-power { 84 compatible = "gpio-keys"; 85 pinctrl-names = "default"; 86 pinctrl-0 = <&pwrbtn_pin>; 87 88 power { 89 debounce-interval = <20>; 90 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 91 label = "Power"; 92 linux,code = <KEY_POWER>; 93 wakeup-source; 94 }; 95 }; 96 97 leds { 98 compatible = "gpio-leds"; 99 pinctrl-names = "default"; 100 pinctrl-0 = <&pwr_led_pin &slp_led_pin>; 101 102 green_led: led-0 { 103 color = <LED_COLOR_ID_GREEN>; 104 default-state = "on"; 105 function = LED_FUNCTION_POWER; 106 gpios = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; 107 label = "green:power"; 108 }; 109 110 red_led: led-1 { 111 color = <LED_COLOR_ID_RED>; 112 default-state = "off"; 113 function = LED_FUNCTION_STANDBY; 114 gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>; 115 label = "red:standby"; 116 panic-indicator; 117 retain-state-suspended; 118 }; 119 }; 120 121 /* Power sequence for SDIO WiFi module */ 122 sdio_pwrseq: sdio-pwrseq { 123 compatible = "mmc-pwrseq-simple"; 124 clocks = <&rk808 1>; 125 clock-names = "ext_clock"; 126 pinctrl-names = "default"; 127 pinctrl-0 = <&wifi_enable_h_pin>; 128 post-power-on-delay-ms = <100>; 129 power-off-delay-us = <500000>; 130 131 /* WL_REG_ON on module */ 132 reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; 133 }; 134 135 /* Audio components */ 136 es8316-sound { 137 compatible = "simple-audio-card"; 138 pinctrl-names = "default"; 139 pinctrl-0 = <&hp_det_pin>; 140 simple-audio-card,name = "rockchip,es8316-codec"; 141 simple-audio-card,format = "i2s"; 142 simple-audio-card,mclk-fs = <256>; 143 144 simple-audio-card,widgets = 145 "Microphone", "Mic Jack", 146 "Headphone", "Headphones", 147 "Speaker", "Speaker"; 148 simple-audio-card,routing = 149 "MIC1", "Mic Jack", 150 "Headphones", "HPOL", 151 "Headphones", "HPOR", 152 "Speaker Amplifier INL", "HPOL", 153 "Speaker Amplifier INR", "HPOR", 154 "Speaker", "Speaker Amplifier OUTL", 155 "Speaker", "Speaker Amplifier OUTR"; 156 157 simple-audio-card,hp-det-gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>; 158 simple-audio-card,aux-devs = <&speaker_amp>; 159 simple-audio-card,pin-switches = "Speaker"; 160 161 simple-audio-card,cpu { 162 sound-dai = <&i2s1>; 163 }; 164 165 simple-audio-card,codec { 166 sound-dai = <&es8316>; 167 }; 168 }; 169 170 speaker_amp: speaker-amplifier { 171 compatible = "simple-audio-amplifier"; 172 enable-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_HIGH>; 173 sound-name-prefix = "Speaker Amplifier"; 174 VCC-supply = <&pa_5v>; 175 }; 176 177 /* Power tree */ 178 /* Root power source */ 179 vcc_sysin: vcc-sysin { 180 compatible = "regulator-fixed"; 181 regulator-name = "vcc_sysin"; 182 regulator-always-on; 183 regulator-boot-on; 184 }; 185 186 /* Regulators supplied by vcc_sysin */ 187 /* LCD backlight supply */ 188 vcc_12v: vcc-12v { 189 compatible = "regulator-fixed"; 190 regulator-name = "vcc_12v"; 191 regulator-always-on; 192 regulator-boot-on; 193 regulator-min-microvolt = <12000000>; 194 regulator-max-microvolt = <12000000>; 195 vin-supply = <&vcc_sysin>; 196 197 regulator-state-mem { 198 regulator-off-in-suspend; 199 }; 200 }; 201 202 /* Main 3.3 V supply */ 203 vcc3v3_sys: wifi_bat: vcc3v3-sys { 204 compatible = "regulator-fixed"; 205 regulator-name = "vcc3v3_sys"; 206 regulator-always-on; 207 regulator-boot-on; 208 regulator-min-microvolt = <3300000>; 209 regulator-max-microvolt = <3300000>; 210 vin-supply = <&vcc_sysin>; 211 212 regulator-state-mem { 213 regulator-on-in-suspend; 214 }; 215 }; 216 217 /* 5 V USB power supply */ 218 vcc5v0_usb: pa_5v: vcc5v0-usb-regulator { 219 compatible = "regulator-fixed"; 220 enable-active-high; 221 gpio = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; 222 pinctrl-names = "default"; 223 pinctrl-0 = <&pwr_5v_pin>; 224 regulator-name = "vcc5v0_usb"; 225 regulator-always-on; 226 regulator-min-microvolt = <5000000>; 227 regulator-max-microvolt = <5000000>; 228 vin-supply = <&vcc_sysin>; 229 230 regulator-state-mem { 231 regulator-off-in-suspend; 232 }; 233 }; 234 235 /* RK3399 logic supply */ 236 vdd_log: vdd-log { 237 compatible = "pwm-regulator"; 238 pwms = <&pwm2 0 25000 1>; 239 regulator-name = "vdd_log"; 240 regulator-always-on; 241 regulator-boot-on; 242 regulator-min-microvolt = <800000>; 243 regulator-max-microvolt = <1400000>; 244 vin-supply = <&vcc_sysin>; 245 246 regulator-state-mem { 247 regulator-on-in-suspend; 248 }; 249 }; 250 251 /* Regulators supplied by vcc3v3_sys */ 252 /* 0.9 V supply, always on */ 253 vcc_0v9: vcc-0v9 { 254 compatible = "regulator-fixed"; 255 regulator-name = "vcc_0v9"; 256 regulator-always-on; 257 regulator-boot-on; 258 regulator-min-microvolt = <900000>; 259 regulator-max-microvolt = <900000>; 260 vin-supply = <&vcc3v3_sys>; 261 }; 262 263 /* S3 1.8 V supply, switched by vcc1v8_s3 */ 264 vcca1v8_s3: vcc1v8-s3 { 265 compatible = "regulator-fixed"; 266 regulator-name = "vcca1v8_s3"; 267 regulator-always-on; 268 regulator-boot-on; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <1800000>; 271 vin-supply = <&vcc3v3_sys>; 272 }; 273 274 /* micro SD card power */ 275 vcc3v0_sd: vcc3v0-sd { 276 compatible = "regulator-fixed"; 277 enable-active-high; 278 gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; 279 pinctrl-names = "default"; 280 pinctrl-0 = <&sdmmc0_pwr_h_pin>; 281 regulator-name = "vcc3v0_sd"; 282 regulator-always-on; 283 regulator-min-microvolt = <3000000>; 284 regulator-max-microvolt = <3000000>; 285 vin-supply = <&vcc3v3_sys>; 286 287 regulator-state-mem { 288 regulator-off-in-suspend; 289 }; 290 }; 291 292 /* LCD panel power, called VCC3V3_S0 in schematic */ 293 vcc3v3_panel: vcc3v3-panel { 294 compatible = "regulator-fixed"; 295 enable-active-high; 296 gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>; 297 pinctrl-names = "default"; 298 pinctrl-0 = <&lcdvcc_en_pin>; 299 regulator-name = "vcc3v3_panel"; 300 regulator-always-on; 301 regulator-min-microvolt = <3300000>; 302 regulator-max-microvolt = <3300000>; 303 regulator-enable-ramp-delay = <100000>; 304 vin-supply = <&vcc3v3_sys>; 305 306 regulator-state-mem { 307 regulator-off-in-suspend; 308 }; 309 }; 310 311 /* M.2 adapter power, switched by vcc1v8_s3 */ 312 vcc3v3_ssd: vcc3v3-ssd { 313 compatible = "regulator-fixed"; 314 regulator-name = "vcc3v3_ssd"; 315 regulator-min-microvolt = <3300000>; 316 regulator-max-microvolt = <3300000>; 317 vin-supply = <&vcc3v3_sys>; 318 }; 319 320 /* Regulators supplied by vcc5v0_usb */ 321 /* USB 3 port power supply regulator */ 322 vcc5v0_otg: vcc5v0-otg { 323 compatible = "regulator-fixed"; 324 enable-active-high; 325 gpio = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; 326 pinctrl-names = "default"; 327 pinctrl-0 = <&vcc5v0_host_en_pin>; 328 regulator-name = "vcc5v0_otg"; 329 regulator-always-on; 330 regulator-min-microvolt = <5000000>; 331 regulator-max-microvolt = <5000000>; 332 vin-supply = <&vcc5v0_usb>; 333 334 regulator-state-mem { 335 regulator-off-in-suspend; 336 }; 337 }; 338 339 /* Regulators supplied by vcc5v0_usb */ 340 /* Type C port power supply regulator */ 341 vbus_5vout: vbus_typec: vbus-5vout { 342 compatible = "regulator-fixed"; 343 enable-active-high; 344 gpio = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; 345 pinctrl-names = "default"; 346 pinctrl-0 = <&vcc5v0_typec0_en_pin>; 347 regulator-name = "vbus_5vout"; 348 regulator-min-microvolt = <5000000>; 349 regulator-max-microvolt = <5000000>; 350 vin-supply = <&vcc5v0_usb>; 351 352 regulator-state-mem { 353 regulator-off-in-suspend; 354 }; 355 }; 356 357 /* Regulators supplied by vcc_1v8 */ 358 /* Primary 0.9 V LDO */ 359 vcca0v9_s3: vcca0v9-s3 { 360 compatible = "regulator-fixed"; 361 regulator-name = "vcc0v9_s3"; 362 regulator-min-microvolt = <5000000>; 363 regulator-max-microvolt = <5000000>; 364 vin-supply = <&vcc_1v8>; 365 366 regulator-state-mem { 367 regulator-on-in-suspend; 368 }; 369 }; 370 371 mains_charger: dc-charger { 372 compatible = "gpio-charger"; 373 charger-type = "mains"; 374 gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_LOW>; 375 376 /* Also triggered by USB charger */ 377 pinctrl-names = "default"; 378 pinctrl-0 = <&dc_det_pin>; 379 }; 380}; 381 382&cdn_dp { 383 status = "okay"; 384}; 385 386&cpu_b0 { 387 cpu-supply = <&vdd_cpu_b>; 388}; 389 390&cpu_b1 { 391 cpu-supply = <&vdd_cpu_b>; 392}; 393 394&cpu_l0 { 395 cpu-supply = <&vdd_cpu_l>; 396}; 397 398&cpu_l1 { 399 cpu-supply = <&vdd_cpu_l>; 400}; 401 402&cpu_l2 { 403 cpu-supply = <&vdd_cpu_l>; 404}; 405 406&cpu_l3 { 407 cpu-supply = <&vdd_cpu_l>; 408}; 409 410&edp { 411 force-hpd; 412 pinctrl-names = "default"; 413 pinctrl-0 = <&edp_hpd>; 414 status = "okay"; 415 416 ports { 417 edp_out: port@1 { 418 reg = <1>; 419 #address-cells = <1>; 420 #size-cells = <0>; 421 422 edp_out_panel: endpoint@0 { 423 reg = <0>; 424 remote-endpoint = <&panel_in_edp>; 425 }; 426 }; 427 }; 428}; 429 430&emmc_phy { 431 status = "okay"; 432}; 433 434&gpu { 435 mali-supply = <&vdd_gpu>; 436 status = "okay"; 437}; 438 439&hdmi_sound { 440 status = "okay"; 441}; 442 443&i2c0 { 444 clock-frequency = <400000>; 445 i2c-scl-falling-time-ns = <4>; 446 i2c-scl-rising-time-ns = <168>; 447 status = "okay"; 448 449 rk808: pmic@1b { 450 compatible = "rockchip,rk808"; 451 reg = <0x1b>; 452 #clock-cells = <1>; 453 clock-output-names = "xin32k", "rk808-clkout2"; 454 interrupt-parent = <&gpio3>; 455 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 456 pinctrl-names = "default"; 457 pinctrl-0 = <&pmic_int_l_pin>; 458 rockchip,system-power-controller; 459 wakeup-source; 460 461 vcc1-supply = <&vcc_sysin>; 462 vcc2-supply = <&vcc_sysin>; 463 vcc3-supply = <&vcc_sysin>; 464 vcc4-supply = <&vcc_sysin>; 465 vcc6-supply = <&vcc_sysin>; 466 vcc7-supply = <&vcc_sysin>; 467 vcc8-supply = <&vcc3v3_sys>; 468 vcc9-supply = <&vcc_sysin>; 469 vcc10-supply = <&vcc_sysin>; 470 vcc11-supply = <&vcc_sysin>; 471 vcc12-supply = <&vcc3v3_sys>; 472 vcc13-supply = <&vcc_sysin>; 473 vcc14-supply = <&vcc_sysin>; 474 475 regulators { 476 /* rk3399 center logic supply */ 477 vdd_center: DCDC_REG1 { 478 regulator-name = "vdd_center"; 479 regulator-always-on; 480 regulator-boot-on; 481 regulator-min-microvolt = <750000>; 482 regulator-max-microvolt = <1350000>; 483 regulator-ramp-delay = <6001>; 484 485 regulator-state-mem { 486 regulator-off-in-suspend; 487 }; 488 }; 489 490 vdd_cpu_l: DCDC_REG2 { 491 regulator-name = "vdd_cpu_l"; 492 regulator-always-on; 493 regulator-boot-on; 494 regulator-min-microvolt = <750000>; 495 regulator-max-microvolt = <1350000>; 496 regulator-ramp-delay = <6001>; 497 498 regulator-state-mem { 499 regulator-off-in-suspend; 500 }; 501 }; 502 503 vcc_ddr: DCDC_REG3 { 504 regulator-name = "vcc_ddr"; 505 regulator-always-on; 506 regulator-boot-on; 507 508 regulator-state-mem { 509 regulator-on-in-suspend; 510 }; 511 }; 512 513 vcc_1v8: vcc_wl: DCDC_REG4 { 514 regulator-name = "vcc_1v8"; 515 regulator-always-on; 516 regulator-boot-on; 517 regulator-min-microvolt = <1800000>; 518 regulator-max-microvolt = <1800000>; 519 520 regulator-state-mem { 521 regulator-on-in-suspend; 522 regulator-suspend-microvolt = <1800000>; 523 }; 524 }; 525 526 /* not used */ 527 LDO_REG1 { 528 }; 529 530 /* not used */ 531 LDO_REG2 { 532 }; 533 534 vcc1v8_pmupll: LDO_REG3 { 535 regulator-name = "vcc1v8_pmupll"; 536 regulator-always-on; 537 regulator-boot-on; 538 regulator-min-microvolt = <1800000>; 539 regulator-max-microvolt = <1800000>; 540 541 regulator-state-mem { 542 regulator-on-in-suspend; 543 regulator-suspend-microvolt = <1800000>; 544 }; 545 }; 546 547 vcc_sdio: LDO_REG4 { 548 regulator-name = "vcc_sdio"; 549 regulator-always-on; 550 regulator-boot-on; 551 regulator-min-microvolt = <1800000>; 552 regulator-max-microvolt = <3000000>; 553 554 regulator-state-mem { 555 regulator-on-in-suspend; 556 regulator-suspend-microvolt = <3000000>; 557 }; 558 }; 559 560 vcca3v0_codec: LDO_REG5 { 561 regulator-name = "vcca3v0_codec"; 562 regulator-always-on; 563 regulator-boot-on; 564 regulator-min-microvolt = <3000000>; 565 regulator-max-microvolt = <3000000>; 566 567 regulator-state-mem { 568 regulator-off-in-suspend; 569 }; 570 }; 571 572 vcc_1v5: LDO_REG6 { 573 regulator-name = "vcc_1v5"; 574 regulator-always-on; 575 regulator-boot-on; 576 regulator-min-microvolt = <1500000>; 577 regulator-max-microvolt = <1500000>; 578 579 regulator-state-mem { 580 regulator-on-in-suspend; 581 regulator-suspend-microvolt = <1500000>; 582 }; 583 }; 584 585 vcca1v8_codec: LDO_REG7 { 586 regulator-name = "vcca1v8_codec"; 587 regulator-always-on; 588 regulator-boot-on; 589 regulator-min-microvolt = <1800000>; 590 regulator-max-microvolt = <1800000>; 591 592 regulator-state-mem { 593 regulator-off-in-suspend; 594 }; 595 }; 596 597 vcc_3v0: LDO_REG8 { 598 regulator-name = "vcc_3v0"; 599 regulator-always-on; 600 regulator-boot-on; 601 regulator-min-microvolt = <3000000>; 602 regulator-max-microvolt = <3000000>; 603 604 regulator-state-mem { 605 regulator-on-in-suspend; 606 regulator-suspend-microvolt = <3000000>; 607 }; 608 }; 609 610 vcc3v3_s3: SWITCH_REG1 { 611 regulator-name = "vcc3v3_s3"; 612 regulator-always-on; 613 regulator-boot-on; 614 615 regulator-state-mem { 616 regulator-off-in-suspend; 617 }; 618 }; 619 620 vcc3v3_s0: SWITCH_REG2 { 621 regulator-name = "vcc3v3_s0"; 622 regulator-always-on; 623 regulator-boot-on; 624 625 regulator-state-mem { 626 regulator-off-in-suspend; 627 }; 628 }; 629 }; 630 }; 631 632 vdd_cpu_b: regulator@40 { 633 compatible = "silergy,syr827"; 634 reg = <0x40>; 635 fcs,suspend-voltage-selector = <1>; 636 pinctrl-names = "default"; 637 pinctrl-0 = <&vsel1_pin>; 638 regulator-name = "vdd_cpu_b"; 639 regulator-always-on; 640 regulator-boot-on; 641 regulator-min-microvolt = <712500>; 642 regulator-max-microvolt = <1500000>; 643 regulator-ramp-delay = <1000>; 644 vin-supply = <&vcc_1v8>; 645 646 regulator-state-mem { 647 regulator-off-in-suspend; 648 }; 649 }; 650 651 vdd_gpu: regulator@41 { 652 compatible = "silergy,syr828"; 653 reg = <0x41>; 654 fcs,suspend-voltage-selector = <1>; 655 pinctrl-names = "default"; 656 pinctrl-0 = <&vsel2_pin>; 657 regulator-name = "vdd_gpu"; 658 regulator-always-on; 659 regulator-boot-on; 660 regulator-min-microvolt = <712500>; 661 regulator-max-microvolt = <1500000>; 662 regulator-ramp-delay = <1000>; 663 vin-supply = <&vcc_1v8>; 664 665 regulator-state-mem { 666 regulator-off-in-suspend; 667 }; 668 }; 669}; 670 671&i2c1 { 672 clock-frequency = <100000>; 673 i2c-scl-falling-time-ns = <4>; 674 i2c-scl-rising-time-ns = <168>; 675 status = "okay"; 676 677 es8316: es8316@11 { 678 compatible = "everest,es8316"; 679 reg = <0x11>; 680 clocks = <&cru SCLK_I2S_8CH_OUT>; 681 clock-names = "mclk"; 682 #sound-dai-cells = <0>; 683 }; 684}; 685 686&i2c3 { 687 i2c-scl-falling-time-ns = <15>; 688 i2c-scl-rising-time-ns = <450>; 689 status = "okay"; 690}; 691 692&i2c4 { 693 i2c-scl-falling-time-ns = <20>; 694 i2c-scl-rising-time-ns = <600>; 695 status = "okay"; 696 697 fusb0: fusb30x@22 { 698 compatible = "fcs,fusb302"; 699 reg = <0x22>; 700 interrupt-parent = <&gpio1>; 701 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 702 pinctrl-names = "default"; 703 pinctrl-0 = <&fusb0_int_pin>; 704 vbus-supply = <&vbus_typec>; 705 706 connector { 707 compatible = "usb-c-connector"; 708 data-role = "host"; 709 label = "USB-C"; 710 op-sink-microwatt = <1000000>; 711 power-role = "dual"; 712 sink-pdos = 713 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>; 714 source-pdos = 715 <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>; 716 try-power-role = "sink"; 717 718 ports { 719 #address-cells = <1>; 720 #size-cells = <0>; 721 722 port@0 { 723 reg = <0>; 724 725 usbc_hs: endpoint { 726 remote-endpoint = 727 <&u2phy0_typec_hs>; 728 }; 729 }; 730 731 port@1 { 732 reg = <1>; 733 734 usbc_ss: endpoint { 735 remote-endpoint = 736 <&tcphy0_typec_ss>; 737 }; 738 }; 739 740 port@2 { 741 reg = <2>; 742 743 usbc_dp: endpoint { 744 remote-endpoint = 745 <&tcphy0_typec_dp>; 746 }; 747 }; 748 }; 749 }; 750 }; 751 752 cw2015@62 { 753 compatible = "cellwise,cw2015"; 754 reg = <0x62>; 755 cellwise,battery-profile = /bits/ 8 < 756 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63 757 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36 758 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69 759 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59 760 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17 761 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D 762 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB 763 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11 764 >; 765 cellwise,monitor-interval-ms = <5000>; 766 monitored-battery = <&bat>; 767 power-supplies = <&mains_charger>, <&fusb0>; 768 }; 769}; 770 771&i2s1 { 772 pinctrl-names = "default"; 773 pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>; 774 rockchip,capture-channels = <8>; 775 rockchip,playback-channels = <8>; 776 status = "okay"; 777}; 778 779&io_domains { 780 audio-supply = <&vcc_3v0>; 781 gpio1830-supply = <&vcc_3v0>; 782 sdmmc-supply = <&vcc_sdio>; 783 status = "okay"; 784}; 785 786&pcie_phy { 787 status = "okay"; 788}; 789 790&pcie0 { 791 bus-scan-delay-ms = <1000>; 792 ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; 793 num-lanes = <4>; 794 pinctrl-names = "default"; 795 pinctrl-0 = <&pcie_clkreqn_cpm>; 796 vpcie0v9-supply = <&vcca0v9_s3>; 797 vpcie1v8-supply = <&vcca1v8_s3>; 798 vpcie3v3-supply = <&vcc3v3_ssd>; 799 status = "okay"; 800}; 801 802&pinctrl { 803 buttons { 804 pwrbtn_pin: pwrbtn-pin { 805 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 806 }; 807 808 lidbtn_pin: lidbtn-pin { 809 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; 810 }; 811 }; 812 813 dc-charger { 814 dc_det_pin: dc-det-pin { 815 rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; 816 }; 817 }; 818 819 es8316 { 820 hp_det_pin: hp-det-pin { 821 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 822 }; 823 }; 824 825 fusb302x { 826 fusb0_int_pin: fusb0-int-pin { 827 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 828 }; 829 }; 830 831 i2s1 { 832 i2s_8ch_mclk_pin: i2s-8ch-mclk-pin { 833 rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>; 834 }; 835 }; 836 837 lcd-panel { 838 lcdvcc_en_pin: lcdvcc-en-pin { 839 rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 840 }; 841 842 panel_en_pin: panel-en-pin { 843 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 844 }; 845 846 lcd_panel_reset_pin: lcd-panel-reset-pin { 847 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; 848 }; 849 }; 850 851 leds { 852 pwr_led_pin: pwr-led-pin { 853 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 854 }; 855 856 slp_led_pin: slp-led-pin { 857 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 858 }; 859 }; 860 861 pmic { 862 pmic_int_l_pin: pmic-int-l-pin { 863 rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 864 }; 865 866 vsel1_pin: vsel1-pin { 867 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 868 }; 869 870 vsel2_pin: vsel2-pin { 871 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 872 }; 873 }; 874 875 sdcard { 876 sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin { 877 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 878 }; 879 880 }; 881 882 sdio-pwrseq { 883 wifi_enable_h_pin: wifi-enable-h-pin { 884 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 885 }; 886 }; 887 888 usb-typec { 889 vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin { 890 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 891 }; 892 }; 893 894 usb2 { 895 pwr_5v_pin: pwr-5v-pin { 896 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 897 }; 898 899 vcc5v0_host_en_pin: vcc5v0-host-en-pin { 900 rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 901 }; 902 }; 903 904 wireless-bluetooth { 905 bt_wake_pin: bt-wake-pin { 906 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 907 }; 908 909 bt_host_wake_pin: bt-host-wake-pin { 910 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 911 }; 912 913 bt_reset_pin: bt-reset-pin { 914 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 915 }; 916 }; 917}; 918 919&pmu_io_domains { 920 pmu1830-supply = <&vcc_3v0>; 921 status = "okay"; 922}; 923 924&pwm0 { 925 status = "okay"; 926}; 927 928&pwm2 { 929 status = "okay"; 930}; 931 932&saradc { 933 vref-supply = <&vcca1v8_s3>; 934 status = "okay"; 935}; 936 937&sdmmc { 938 bus-width = <4>; 939 cap-mmc-highspeed; 940 cap-sd-highspeed; 941 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 942 disable-wp; 943 pinctrl-names = "default"; 944 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; 945 sd-uhs-sdr104; 946 vmmc-supply = <&vcc3v0_sd>; 947 vqmmc-supply = <&vcc_sdio>; 948 status = "okay"; 949}; 950 951&sdio0 { 952 bus-width = <4>; 953 cap-sd-highspeed; 954 cap-sdio-irq; 955 keep-power-in-suspend; 956 mmc-pwrseq = <&sdio_pwrseq>; 957 non-removable; 958 pinctrl-names = "default"; 959 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 960 sd-uhs-sdr104; 961 status = "okay"; 962}; 963 964&sdhci { 965 bus-width = <8>; 966 mmc-hs200-1_8v; 967 non-removable; 968 status = "okay"; 969}; 970 971&spi1 { 972 max-freq = <10000000>; 973 status = "okay"; 974 975 spiflash: flash@0 { 976 compatible = "jedec,spi-nor"; 977 reg = <0>; 978 m25p,fast-read; 979 spi-max-frequency = <10000000>; 980 }; 981}; 982 983&tcphy0 { 984 status = "okay"; 985}; 986 987&tcphy0_dp { 988 port { 989 tcphy0_typec_dp: endpoint { 990 remote-endpoint = <&usbc_dp>; 991 }; 992 }; 993}; 994 995&tcphy0_usb3 { 996 port { 997 tcphy0_typec_ss: endpoint { 998 remote-endpoint = <&usbc_ss>; 999 }; 1000 }; 1001}; 1002 1003&tcphy1 { 1004 status = "okay"; 1005}; 1006 1007&tsadc { 1008 /* tshut mode 0:CRU 1:GPIO */ 1009 rockchip,hw-tshut-mode = <1>; 1010 /* tshut polarity 0:LOW 1:HIGH */ 1011 rockchip,hw-tshut-polarity = <1>; 1012 status = "okay"; 1013}; 1014 1015&u2phy0 { 1016 status = "okay"; 1017 1018 u2phy0_otg: otg-port { 1019 status = "okay"; 1020 }; 1021 1022 u2phy0_host: host-port { 1023 phy-supply = <&vcc5v0_otg>; 1024 status = "okay"; 1025 }; 1026 1027 port { 1028 u2phy0_typec_hs: endpoint { 1029 remote-endpoint = <&usbc_hs>; 1030 }; 1031 }; 1032}; 1033 1034&u2phy1 { 1035 status = "okay"; 1036 1037 u2phy1_otg: otg-port { 1038 status = "okay"; 1039 }; 1040 1041 u2phy1_host: host-port { 1042 phy-supply = <&vcc5v0_otg>; 1043 status = "okay"; 1044 }; 1045}; 1046 1047&uart0 { 1048 pinctrl-names = "default"; 1049 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 1050 uart-has-rtscts; 1051 status = "okay"; 1052 1053 bluetooth { 1054 compatible = "brcm,bcm4345c5"; 1055 clocks = <&rk808 1>; 1056 clock-names = "lpo"; 1057 device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 1058 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 1059 max-speed = <1500000>; 1060 pinctrl-names = "default"; 1061 pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>; 1062 shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 1063 vbat-supply = <&wifi_bat>; 1064 vddio-supply = <&vcc_wl>; 1065 }; 1066}; 1067 1068&uart2 { 1069 status = "okay"; 1070}; 1071 1072&usb_host0_ehci { 1073 status = "okay"; 1074}; 1075 1076&usb_host0_ohci { 1077 status = "okay"; 1078}; 1079 1080&usb_host1_ehci { 1081 status = "okay"; 1082}; 1083 1084&usb_host1_ohci { 1085 status = "okay"; 1086}; 1087 1088&usbdrd3_0 { 1089 status = "okay"; 1090}; 1091 1092&usbdrd_dwc3_0 { 1093 dr_mode = "host"; 1094 status = "okay"; 1095}; 1096 1097&usbdrd3_1 { 1098 status = "okay"; 1099}; 1100 1101&usbdrd_dwc3_1 { 1102 dr_mode = "host"; 1103 status = "okay"; 1104}; 1105 1106&vopb { 1107 status = "okay"; 1108}; 1109 1110&vopb_mmu { 1111 status = "okay"; 1112}; 1113 1114&vopl { 1115 status = "okay"; 1116}; 1117 1118&vopl_mmu { 1119 status = "okay"; 1120}; 1121