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&hdmi_sound { 425 status = "okay"; 426}; 427 428&i2c0 { 429 clock-frequency = <400000>; 430 i2c-scl-falling-time-ns = <4>; 431 i2c-scl-rising-time-ns = <168>; 432 status = "okay"; 433 434 rk808: pmic@1b { 435 compatible = "rockchip,rk808"; 436 reg = <0x1b>; 437 #clock-cells = <1>; 438 clock-output-names = "xin32k", "rk808-clkout2"; 439 interrupt-parent = <&gpio3>; 440 interrupts = <10 IRQ_TYPE_LEVEL_LOW>; 441 pinctrl-names = "default"; 442 pinctrl-0 = <&pmic_int_l_pin>; 443 system-power-controller; 444 wakeup-source; 445 446 vcc1-supply = <&vcc_sysin>; 447 vcc2-supply = <&vcc_sysin>; 448 vcc3-supply = <&vcc_sysin>; 449 vcc4-supply = <&vcc_sysin>; 450 vcc6-supply = <&vcc_sysin>; 451 vcc7-supply = <&vcc_sysin>; 452 vcc8-supply = <&vcc3v3_sys>; 453 vcc9-supply = <&vcc_sysin>; 454 vcc10-supply = <&vcc_sysin>; 455 vcc11-supply = <&vcc_sysin>; 456 vcc12-supply = <&vcc3v3_sys>; 457 458 regulators { 459 /* rk3399 center logic supply */ 460 vdd_center: DCDC_REG1 { 461 regulator-name = "vdd_center"; 462 regulator-always-on; 463 regulator-boot-on; 464 regulator-min-microvolt = <750000>; 465 regulator-max-microvolt = <1350000>; 466 regulator-ramp-delay = <6001>; 467 468 regulator-state-mem { 469 regulator-off-in-suspend; 470 }; 471 }; 472 473 vdd_cpu_l: DCDC_REG2 { 474 regulator-name = "vdd_cpu_l"; 475 regulator-always-on; 476 regulator-boot-on; 477 regulator-min-microvolt = <750000>; 478 regulator-max-microvolt = <1350000>; 479 regulator-ramp-delay = <6001>; 480 481 regulator-state-mem { 482 regulator-off-in-suspend; 483 }; 484 }; 485 486 vcc_ddr: DCDC_REG3 { 487 regulator-name = "vcc_ddr"; 488 regulator-always-on; 489 regulator-boot-on; 490 491 regulator-state-mem { 492 regulator-on-in-suspend; 493 }; 494 }; 495 496 vcc_1v8: vcc_wl: DCDC_REG4 { 497 regulator-name = "vcc_1v8"; 498 regulator-always-on; 499 regulator-boot-on; 500 regulator-min-microvolt = <1800000>; 501 regulator-max-microvolt = <1800000>; 502 503 regulator-state-mem { 504 regulator-on-in-suspend; 505 regulator-suspend-microvolt = <1800000>; 506 }; 507 }; 508 509 /* not used */ 510 LDO_REG1 { 511 }; 512 513 /* not used */ 514 LDO_REG2 { 515 }; 516 517 vcc1v8_pmupll: LDO_REG3 { 518 regulator-name = "vcc1v8_pmupll"; 519 regulator-always-on; 520 regulator-boot-on; 521 regulator-min-microvolt = <1800000>; 522 regulator-max-microvolt = <1800000>; 523 524 regulator-state-mem { 525 regulator-on-in-suspend; 526 regulator-suspend-microvolt = <1800000>; 527 }; 528 }; 529 530 vcc_sdio: LDO_REG4 { 531 regulator-name = "vcc_sdio"; 532 regulator-always-on; 533 regulator-boot-on; 534 regulator-min-microvolt = <1800000>; 535 regulator-max-microvolt = <3000000>; 536 537 regulator-state-mem { 538 regulator-on-in-suspend; 539 regulator-suspend-microvolt = <3000000>; 540 }; 541 }; 542 543 vcca3v0_codec: LDO_REG5 { 544 regulator-name = "vcca3v0_codec"; 545 regulator-always-on; 546 regulator-boot-on; 547 regulator-min-microvolt = <3000000>; 548 regulator-max-microvolt = <3000000>; 549 550 regulator-state-mem { 551 regulator-off-in-suspend; 552 }; 553 }; 554 555 vcc_1v5: LDO_REG6 { 556 regulator-name = "vcc_1v5"; 557 regulator-always-on; 558 regulator-boot-on; 559 regulator-min-microvolt = <1500000>; 560 regulator-max-microvolt = <1500000>; 561 562 regulator-state-mem { 563 regulator-on-in-suspend; 564 regulator-suspend-microvolt = <1500000>; 565 }; 566 }; 567 568 vcca1v8_codec: LDO_REG7 { 569 regulator-name = "vcca1v8_codec"; 570 regulator-always-on; 571 regulator-boot-on; 572 regulator-min-microvolt = <1800000>; 573 regulator-max-microvolt = <1800000>; 574 575 regulator-state-mem { 576 regulator-off-in-suspend; 577 }; 578 }; 579 580 vcc_3v0: LDO_REG8 { 581 regulator-name = "vcc_3v0"; 582 regulator-always-on; 583 regulator-boot-on; 584 regulator-min-microvolt = <3000000>; 585 regulator-max-microvolt = <3000000>; 586 587 regulator-state-mem { 588 regulator-on-in-suspend; 589 regulator-suspend-microvolt = <3000000>; 590 }; 591 }; 592 593 vcc3v3_s3: SWITCH_REG1 { 594 regulator-name = "vcc3v3_s3"; 595 regulator-always-on; 596 regulator-boot-on; 597 598 regulator-state-mem { 599 regulator-off-in-suspend; 600 }; 601 }; 602 603 vcc3v3_s0: SWITCH_REG2 { 604 regulator-name = "vcc3v3_s0"; 605 regulator-always-on; 606 regulator-boot-on; 607 608 regulator-state-mem { 609 regulator-off-in-suspend; 610 }; 611 }; 612 }; 613 }; 614 615 vdd_cpu_b: regulator@40 { 616 compatible = "silergy,syr827"; 617 reg = <0x40>; 618 fcs,suspend-voltage-selector = <1>; 619 pinctrl-names = "default"; 620 pinctrl-0 = <&vsel1_pin>; 621 regulator-name = "vdd_cpu_b"; 622 regulator-always-on; 623 regulator-boot-on; 624 regulator-min-microvolt = <712500>; 625 regulator-max-microvolt = <1500000>; 626 regulator-ramp-delay = <1000>; 627 vin-supply = <&vcc_1v8>; 628 629 regulator-state-mem { 630 regulator-off-in-suspend; 631 }; 632 }; 633 634 vdd_gpu: regulator@41 { 635 compatible = "silergy,syr828"; 636 reg = <0x41>; 637 fcs,suspend-voltage-selector = <1>; 638 pinctrl-names = "default"; 639 pinctrl-0 = <&vsel2_pin>; 640 regulator-name = "vdd_gpu"; 641 regulator-always-on; 642 regulator-boot-on; 643 regulator-min-microvolt = <712500>; 644 regulator-max-microvolt = <1500000>; 645 regulator-ramp-delay = <1000>; 646 vin-supply = <&vcc_1v8>; 647 648 regulator-state-mem { 649 regulator-off-in-suspend; 650 }; 651 }; 652}; 653 654&i2c1 { 655 clock-frequency = <100000>; 656 i2c-scl-falling-time-ns = <4>; 657 i2c-scl-rising-time-ns = <168>; 658 status = "okay"; 659 660 es8316: audio-codec@11 { 661 compatible = "everest,es8316"; 662 reg = <0x11>; 663 clocks = <&cru SCLK_I2S_8CH_OUT>; 664 clock-names = "mclk"; 665 #sound-dai-cells = <0>; 666 }; 667}; 668 669&i2c3 { 670 i2c-scl-falling-time-ns = <15>; 671 i2c-scl-rising-time-ns = <450>; 672 status = "okay"; 673}; 674 675&i2c4 { 676 i2c-scl-falling-time-ns = <20>; 677 i2c-scl-rising-time-ns = <600>; 678 status = "okay"; 679 680 fusb0: fusb30x@22 { 681 compatible = "fcs,fusb302"; 682 reg = <0x22>; 683 interrupt-parent = <&gpio1>; 684 interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>; 685 pinctrl-names = "default"; 686 pinctrl-0 = <&fusb0_int_pin>; 687 vbus-supply = <&vbus_typec>; 688 689 connector { 690 compatible = "usb-c-connector"; 691 data-role = "dual"; 692 label = "USB-C"; 693 op-sink-microwatt = <1000000>; 694 power-role = "dual"; 695 sink-pdos = 696 <PDO_FIXED(5000, 2500, PDO_FIXED_USB_COMM)>; 697 source-pdos = 698 <PDO_FIXED(5000, 1400, PDO_FIXED_USB_COMM)>; 699 try-power-role = "sink"; 700 701 ports { 702 #address-cells = <1>; 703 #size-cells = <0>; 704 705 port@0 { 706 reg = <0>; 707 708 usbc_hs: endpoint { 709 remote-endpoint = 710 <&u2phy0_typec_hs>; 711 }; 712 }; 713 714 port@1 { 715 reg = <1>; 716 717 usbc_ss: endpoint { 718 remote-endpoint = 719 <&tcphy0_typec_ss>; 720 }; 721 }; 722 723 port@2 { 724 reg = <2>; 725 726 usbc_dp: endpoint { 727 remote-endpoint = 728 <&tcphy0_typec_dp>; 729 }; 730 }; 731 }; 732 }; 733 }; 734 735 cw2015@62 { 736 compatible = "cellwise,cw2015"; 737 reg = <0x62>; 738 cellwise,battery-profile = /bits/ 8 < 739 0x17 0x67 0x80 0x73 0x6E 0x6C 0x6B 0x63 740 0x77 0x51 0x5C 0x58 0x50 0x4C 0x48 0x36 741 0x15 0x0C 0x0C 0x19 0x5B 0x7D 0x6F 0x69 742 0x69 0x5B 0x0C 0x29 0x20 0x40 0x52 0x59 743 0x57 0x56 0x54 0x4F 0x3B 0x1F 0x7F 0x17 744 0x06 0x1A 0x30 0x5A 0x85 0x93 0x96 0x2D 745 0x48 0x77 0x9C 0xB3 0x80 0x52 0x94 0xCB 746 0x2F 0x00 0x64 0xA5 0xB5 0x11 0xF0 0x11 747 >; 748 cellwise,monitor-interval-ms = <5000>; 749 monitored-battery = <&bat>; 750 power-supplies = <&mains_charger>, <&fusb0>; 751 }; 752}; 753 754&i2s1 { 755 pinctrl-names = "default"; 756 pinctrl-0 = <&i2s_8ch_mclk_pin>, <&i2s1_2ch_bus>; 757 rockchip,capture-channels = <8>; 758 rockchip,playback-channels = <8>; 759 status = "okay"; 760}; 761 762&io_domains { 763 audio-supply = <&vcc_3v0>; 764 gpio1830-supply = <&vcc_3v0>; 765 sdmmc-supply = <&vcc_sdio>; 766 status = "okay"; 767}; 768 769&pcie_phy { 770 status = "okay"; 771}; 772 773&pcie0 { 774 ep-gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>; 775 num-lanes = <4>; 776 pinctrl-names = "default"; 777 pinctrl-0 = <&pcie_clkreqn_cpm>; 778 vpcie0v9-supply = <&vcca0v9_s3>; 779 vpcie1v8-supply = <&vcca1v8_s3>; 780 vpcie3v3-supply = <&vcc3v3_ssd>; 781 status = "okay"; 782}; 783 784&pinctrl { 785 buttons { 786 pwrbtn_pin: pwrbtn-pin { 787 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 788 }; 789 790 lidbtn_pin: lidbtn-pin { 791 rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; 792 }; 793 }; 794 795 dc-charger { 796 dc_det_pin: dc-det-pin { 797 rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>; 798 }; 799 }; 800 801 es8316 { 802 hp_det_pin: hp-det-pin { 803 rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 804 }; 805 }; 806 807 fusb302x { 808 fusb0_int_pin: fusb0-int-pin { 809 rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 810 }; 811 }; 812 813 i2s1 { 814 i2s_8ch_mclk_pin: i2s-8ch-mclk-pin { 815 rockchip,pins = <4 RK_PA0 1 &pcfg_pull_none>; 816 }; 817 }; 818 819 lcd-panel { 820 lcdvcc_en_pin: lcdvcc-en-pin { 821 rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 822 }; 823 824 panel_en_pin: panel-en-pin { 825 rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 826 }; 827 828 lcd_panel_reset_pin: lcd-panel-reset-pin { 829 rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>; 830 }; 831 }; 832 833 leds { 834 pwr_led_pin: pwr-led-pin { 835 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 836 }; 837 838 slp_led_pin: slp-led-pin { 839 rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 840 }; 841 }; 842 843 pmic { 844 pmic_int_l_pin: pmic-int-l-pin { 845 rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; 846 }; 847 848 vsel1_pin: vsel1-pin { 849 rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>; 850 }; 851 852 vsel2_pin: vsel2-pin { 853 rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>; 854 }; 855 }; 856 857 sdcard { 858 sdmmc0_pwr_h_pin: sdmmc0-pwr-h-pin { 859 rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; 860 }; 861 862 }; 863 864 sdio-pwrseq { 865 wifi_enable_h_pin: wifi-enable-h-pin { 866 rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 867 }; 868 }; 869 870 usb-typec { 871 vcc5v0_typec0_en_pin: vcc5v0-typec0-en-pin { 872 rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 873 }; 874 }; 875 876 usb2 { 877 pwr_5v_pin: pwr-5v-pin { 878 rockchip,pins = <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; 879 }; 880 881 vcc5v0_host_en_pin: vcc5v0-host-en-pin { 882 rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 883 }; 884 }; 885 886 wireless-bluetooth { 887 bt_wake_pin: bt-wake-pin { 888 rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; 889 }; 890 891 bt_host_wake_pin: bt-host-wake-pin { 892 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; 893 }; 894 895 bt_reset_pin: bt-reset-pin { 896 rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 897 }; 898 }; 899}; 900 901&pmu_io_domains { 902 pmu1830-supply = <&vcc_3v0>; 903 status = "okay"; 904}; 905 906&pwm0 { 907 status = "okay"; 908}; 909 910&pwm2 { 911 status = "okay"; 912}; 913 914&saradc { 915 vref-supply = <&vcca1v8_s3>; 916 status = "okay"; 917}; 918 919&sdmmc { 920 bus-width = <4>; 921 cap-mmc-highspeed; 922 cap-sd-highspeed; 923 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; 924 disable-wp; 925 pinctrl-names = "default"; 926 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>; 927 sd-uhs-sdr50; 928 vmmc-supply = <&vcc3v0_sd>; 929 vqmmc-supply = <&vcc_sdio>; 930 status = "okay"; 931}; 932 933&sdio0 { 934 bus-width = <4>; 935 cap-sd-highspeed; 936 cap-sdio-irq; 937 keep-power-in-suspend; 938 mmc-pwrseq = <&sdio_pwrseq>; 939 non-removable; 940 pinctrl-names = "default"; 941 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; 942 sd-uhs-sdr104; 943 status = "okay"; 944}; 945 946&sdhci { 947 bus-width = <8>; 948 mmc-hs200-1_8v; 949 non-removable; 950 status = "okay"; 951}; 952 953&spi1 { 954 max-freq = <10000000>; 955 status = "okay"; 956 957 spiflash: flash@0 { 958 compatible = "jedec,spi-nor"; 959 reg = <0>; 960 m25p,fast-read; 961 spi-max-frequency = <10000000>; 962 }; 963}; 964 965&tcphy0 { 966 status = "okay"; 967}; 968 969&tcphy0_dp { 970 port { 971 tcphy0_typec_dp: endpoint { 972 remote-endpoint = <&usbc_dp>; 973 }; 974 }; 975}; 976 977&tcphy0_usb3 { 978 port { 979 tcphy0_typec_ss: endpoint { 980 remote-endpoint = <&usbc_ss>; 981 }; 982 }; 983}; 984 985&tcphy1 { 986 status = "okay"; 987}; 988 989&tsadc { 990 /* tshut mode 0:CRU 1:GPIO */ 991 rockchip,hw-tshut-mode = <1>; 992 /* tshut polarity 0:LOW 1:HIGH */ 993 rockchip,hw-tshut-polarity = <1>; 994 status = "okay"; 995}; 996 997&u2phy0 { 998 status = "okay"; 999 1000 u2phy0_otg: otg-port { 1001 status = "okay"; 1002 }; 1003 1004 u2phy0_host: host-port { 1005 phy-supply = <&vcc5v0_otg>; 1006 status = "okay"; 1007 }; 1008 1009 port { 1010 u2phy0_typec_hs: endpoint { 1011 remote-endpoint = <&usbc_hs>; 1012 }; 1013 }; 1014}; 1015 1016&u2phy1 { 1017 status = "okay"; 1018 1019 u2phy1_otg: otg-port { 1020 status = "okay"; 1021 }; 1022 1023 u2phy1_host: host-port { 1024 phy-supply = <&vcc5v0_otg>; 1025 status = "okay"; 1026 }; 1027}; 1028 1029&uart0 { 1030 pinctrl-names = "default"; 1031 pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; 1032 uart-has-rtscts; 1033 status = "okay"; 1034 1035 bluetooth { 1036 compatible = "brcm,bcm4345c5"; 1037 clocks = <&rk808 1>; 1038 clock-names = "lpo"; 1039 device-wakeup-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>; 1040 host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>; 1041 max-speed = <1500000>; 1042 pinctrl-names = "default"; 1043 pinctrl-0 = <&bt_host_wake_pin &bt_wake_pin &bt_reset_pin>; 1044 shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>; 1045 vbat-supply = <&wifi_bat>; 1046 vddio-supply = <&vcc_wl>; 1047 }; 1048}; 1049 1050&uart2 { 1051 status = "okay"; 1052}; 1053 1054&usb_host0_ehci { 1055 status = "okay"; 1056}; 1057 1058&usb_host0_ohci { 1059 status = "okay"; 1060}; 1061 1062&usb_host1_ehci { 1063 status = "okay"; 1064}; 1065 1066&usb_host1_ohci { 1067 status = "okay"; 1068}; 1069 1070&usbdrd3_0 { 1071 status = "okay"; 1072}; 1073 1074&usbdrd_dwc3_0 { 1075 dr_mode = "host"; 1076 status = "okay"; 1077}; 1078 1079&usbdrd3_1 { 1080 status = "okay"; 1081}; 1082 1083&usbdrd_dwc3_1 { 1084 dr_mode = "host"; 1085 status = "okay"; 1086}; 1087 1088&vopb { 1089 status = "okay"; 1090}; 1091 1092&vopb_mmu { 1093 status = "okay"; 1094}; 1095 1096&vopl { 1097 status = "okay"; 1098}; 1099 1100&vopl_mmu { 1101 status = "okay"; 1102}; 1103