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