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