1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/dts-v1/; 4 5#include <dt-bindings/gpio/gpio.h> 6#include <dt-bindings/input/linux-event-codes.h> 7#include <dt-bindings/leds/common.h> 8#include <dt-bindings/pinctrl/rockchip.h> 9#include <dt-bindings/pwm/pwm.h> 10#include <dt-bindings/thermal/thermal.h> 11#include <dt-bindings/usb/pd.h> 12#include "rk3588s.dtsi" 13 14/ { 15 model = "Gameforce Ace"; 16 chassis-type = "handset"; 17 compatible = "gameforce,ace", "rockchip,rk3588s"; 18 19 aliases { 20 mmc0 = &sdhci; 21 mmc1 = &sdmmc; 22 mmc2 = &sdio; 23 }; 24 25 chosen { 26 stdout-path = "serial2:1500000n8"; 27 }; 28 29 adc_keys: adc-keys { 30 compatible = "adc-keys"; 31 io-channels = <&saradc 1>; 32 io-channel-names = "buttons"; 33 keyup-threshold-microvolt = <1800000>; 34 poll-interval = <60>; 35 36 button-vol-up { 37 label = "VOLUMEUP"; 38 linux,code = <KEY_VOLUMEUP>; 39 press-threshold-microvolt = <17000>; 40 }; 41 42 button-vol-down { 43 label = "VOLUMEDOWN"; 44 linux,code = <KEY_VOLUMEDOWN>; 45 press-threshold-microvolt = <417000>; 46 }; 47 }; 48 49 /* Joystick range values based on hardware observation. */ 50 adc_joystick: adc-joystick { 51 compatible = "adc-joystick"; 52 io-channels = <&saradc 2>, <&saradc 3>, 53 <&saradc 4>, <&saradc 5>; 54 poll-interval = <60>; 55 #address-cells = <1>; 56 #size-cells = <0>; 57 58 axis@0 { 59 reg = <0>; 60 abs-flat = <40>; 61 abs-fuzz = <30>; 62 abs-range = <0 4095>; 63 linux,code = <ABS_RX>; 64 }; 65 66 axis@1 { 67 reg = <1>; 68 abs-flat = <40>; 69 abs-fuzz = <30>; 70 abs-range = <0 4095>; 71 linux,code = <ABS_RY>; 72 }; 73 74 axis@2 { 75 reg = <2>; 76 abs-flat = <40>; 77 abs-fuzz = <30>; 78 abs-range = <0 4095>; 79 linux,code = <ABS_Y>; 80 }; 81 82 axis@3 { 83 reg = <3>; 84 abs-flat = <40>; 85 abs-fuzz = <30>; 86 abs-range = <0 4095>; 87 linux,code = <ABS_X>; 88 }; 89 }; 90 91 /* Trigger range values based on hardware observation. */ 92 adc_triggers: adc-trigger { 93 compatible = "adc-joystick"; 94 io-channels = <&ti_adc 6>, 95 <&ti_adc 7>; 96 poll-interval = <60>; 97 #address-cells = <1>; 98 #size-cells = <0>; 99 100 axis@0 { 101 reg = <0>; 102 abs-flat = <15>; 103 abs-fuzz = <15>; 104 abs-range = <890 1530>; 105 linux,code = <ABS_HAT2X>; 106 }; 107 108 axis@1 { 109 reg = <1>; 110 abs-flat = <15>; 111 abs-fuzz = <15>; 112 abs-range = <1010 1550>; 113 linux,code = <ABS_HAT2Y>; 114 }; 115 }; 116 117 analog-sound { 118 compatible = "simple-audio-card"; 119 pinctrl-0 = <&hp_detect>; 120 pinctrl-names = "default"; 121 simple-audio-card,aux-devs = <&_headphone>, <&_speaker>; 122 simple-audio-card,bitclock-master = <&masterdai>; 123 simple-audio-card,format = "i2s"; 124 simple-audio-card,frame-master = <&masterdai>; 125 simple-audio-card,hp-det-gpios = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>; 126 simple-audio-card,mclk-fs = <256>; 127 simple-audio-card,name = "rockchip,es8388-codec"; 128 simple-audio-card,pin-switches = "Headphones", "Speaker"; 129 simple-audio-card,routing = 130 "Speaker Amplifier INL", "LOUT2", 131 "Speaker Amplifier INR", "ROUT2", 132 "Speaker", "Speaker Amplifier OUTL", 133 "Speaker", "Speaker Amplifier OUTR", 134 "Headphones Amplifier INL", "LOUT1", 135 "Headphones Amplifier INR", "ROUT1", 136 "Headphones", "Headphones Amplifier OUTL", 137 "Headphones", "Headphones Amplifier OUTR", 138 "LINPUT1", "Microphone Jack", 139 "RINPUT1", "Microphone Jack", 140 "LINPUT2", "Onboard Microphone", 141 "RINPUT2", "Onboard Microphone"; 142 simple-audio-card,widgets = 143 "Microphone", "Microphone Jack", 144 "Microphone", "Onboard Microphone", 145 "Headphone", "Headphones", 146 "Speaker", "Speaker"; 147 148 masterdai: simple-audio-card,codec { 149 sound-dai = <&es8388>; 150 system-clock-frequency = <12288000>; 151 }; 152 153 simple-audio-card,cpu { 154 sound-dai = <&i2s0_8ch>; 155 }; 156 }; 157 158 backlight: backlight { 159 compatible = "pwm-backlight"; 160 enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>; 161 pinctrl-0 = <&lcd_bl_en>; 162 pinctrl-names = "default"; 163 pwms = <&pwm13 0 25000 PWM_POLARITY_INVERTED>; 164 }; 165 166 battery: battery { 167 compatible = "simple-battery"; 168 charge-full-design-microamp-hours = <3700000>; 169 constant-charge-current-max-microamp = <2500000>; 170 constant-charge-voltage-max-microvolt = <8750000>; 171 voltage-min-design-microvolt = <7400000>; 172 }; 173 174 gpio_keys: gpio-keys { 175 compatible = "gpio-keys"; 176 pinctrl-0 = <&btn_pins_ctrl>; 177 pinctrl-names = "default"; 178 179 button-a { 180 gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; 181 label = "EAST"; 182 linux,code = <BTN_EAST>; 183 }; 184 185 button-b { 186 gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>; 187 label = "SOUTH"; 188 linux,code = <BTN_SOUTH>; 189 }; 190 191 button-down { 192 gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>; 193 label = "DPAD-DOWN"; 194 linux,code = <BTN_DPAD_DOWN>; 195 }; 196 197 button-home { 198 gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_LOW>; 199 label = "FUNCTION"; 200 linux,code = <BTN_MODE>; 201 }; 202 203 button-l1 { 204 gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>; 205 label = "L1"; 206 linux,code = <BTN_TL>; 207 }; 208 209 button-left { 210 gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>; 211 label = "DPAD-LEFT"; 212 linux,code = <BTN_DPAD_LEFT>; 213 }; 214 215 button-menu { 216 gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; 217 label = "HOME"; 218 linux,code = <KEY_HOME>; 219 }; 220 221 button-r1 { 222 gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>; 223 label = "R1"; 224 linux,code = <BTN_TR>; 225 }; 226 227 button-right { 228 gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>; 229 label = "DPAD-RIGHT"; 230 linux,code = <BTN_DPAD_RIGHT>; 231 }; 232 233 button-select { 234 gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>; 235 label = "SELECT"; 236 linux,code = <BTN_SELECT>; 237 }; 238 239 button-start { 240 gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; 241 label = "START"; 242 linux,code = <BTN_START>; 243 }; 244 245 button-thumbl { 246 gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>; 247 label = "THUMBL"; 248 linux,code = <BTN_THUMBL>; 249 }; 250 251 button-thumbr { 252 gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>; 253 label = "THUMBR"; 254 linux,code = <BTN_THUMBR>; 255 }; 256 257 button-up { 258 gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>; 259 label = "DPAD-UP"; 260 linux,code = <BTN_DPAD_UP>; 261 }; 262 263 button-x { 264 gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>; 265 label = "NORTH"; 266 linux,code = <BTN_NORTH>; 267 }; 268 269 button-y { 270 gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_LOW>; 271 label = "WEST"; 272 linux,code = <BTN_WEST>; 273 }; 274 }; 275 276 gpio_leds: gpio-leds { 277 compatible = "gpio-leds"; 278 pinctrl-names = "default"; 279 pinctrl-0 = <&led_pins>; 280 281 green_led: led-0 { 282 color = <LED_COLOR_ID_GREEN>; 283 gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; 284 function = LED_FUNCTION_STATUS; 285 }; 286 287 red_led: led-1 { 288 color = <LED_COLOR_ID_RED>; 289 gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>; 290 function = LED_FUNCTION_CHARGING; 291 }; 292 }; 293 294 amp_headphone: headphone-amplifier { 295 compatible = "simple-audio-amplifier"; 296 enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; 297 pinctrl-0 = <&headphone_amplifier_en>; 298 pinctrl-names = "default"; 299 sound-name-prefix = "Headphones Amplifier"; 300 }; 301 302 pwm_fan: pwm-fan { 303 compatible = "pwm-fan"; 304 #cooling-cells = <2>; 305 cooling-levels = <0 120 150 180 210 240 255>; 306 fan-supply = <&vcc5v0_sys>; 307 interrupt-parent = <&gpio4>; 308 interrupts = <RK_PB2 IRQ_TYPE_EDGE_RISING>; 309 pulses-per-revolution = <4>; 310 pwms = <&pwm12 0 50000 PWM_POLARITY_INVERTED>; 311 }; 312 313 pwm_gpio33: pwm-33 { 314 compatible = "pwm-gpio"; 315 gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; 316 pinctrl-0 = <&vib_right_h>; 317 pinctrl-names = "default"; 318 #pwm-cells = <3>; 319 }; 320 321 pwm_gpio132: pwm-132 { 322 compatible = "pwm-gpio"; 323 gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; 324 pinctrl-0 = <&vib_left_h>; 325 pinctrl-names = "default"; 326 #pwm-cells = <3>; 327 }; 328 329 sdio_pwrseq: sdio-pwrseq { 330 compatible = "mmc-pwrseq-simple"; 331 clock-names = "ext_clock"; 332 clocks = <&rtc_hym8563>; 333 pinctrl-0 = <&wifi_enable_h>; 334 pinctrl-names = "default"; 335 post-power-on-delay-ms = <200>; 336 power-off-delay-us = <5000000>; 337 reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; 338 }; 339 340 amp_speaker: speaker-amplifier { 341 compatible = "simple-audio-amplifier"; 342 enable-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; 343 pinctrl-0 = <&speaker_amplifier_en>; 344 pinctrl-names = "default"; 345 sound-name-prefix = "Speaker Amplifier"; 346 VCC-supply = <&vcc5v0_spk>; 347 }; 348 349 vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 { 350 compatible = "regulator-fixed"; 351 regulator-always-on; 352 regulator-boot-on; 353 regulator-max-microvolt = <1100000>; 354 regulator-min-microvolt = <1100000>; 355 regulator-name = "vcc_1v1_nldo_s3"; 356 vin-supply = <&vcc5v0_sys>; 357 }; 358 359 vcc3v3_lcd0_n: regulator-vcc3v3-lcd0-n { 360 compatible = "regulator-fixed"; 361 enable-active-high; 362 gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; 363 pinctrl-0 = <&vcc_lcd_h>; 364 pinctrl-names = "default"; 365 regulator-max-microvolt = <3300000>; 366 regulator-min-microvolt = <3300000>; 367 regulator-name = "vcc3v3_lcd0_n"; 368 vin-supply = <&vcc_3v3_s3>; 369 regulator-state-mem { 370 regulator-off-in-suspend; 371 }; 372 }; 373 374 vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 { 375 compatible = "regulator-fixed"; 376 enable-active-high; 377 gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; 378 pinctrl-0 = <&sd_s0_pwr>; 379 pinctrl-names = "default"; 380 regulator-max-microvolt = <3000000>; 381 regulator-min-microvolt = <3000000>; 382 regulator-name = "vcc_3v3_sd_s0"; 383 vin-supply = <&vcc_3v3_s3>; 384 }; 385 386 vcc5v0_spk: regulator-vcc5v0-spk { 387 compatible = "regulator-fixed"; 388 enable-active-high; 389 gpio = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; 390 pinctrl-0 = <&vcc5v0_spk_pwr>; 391 pinctrl-names = "default"; 392 regulator-max-microvolt = <5000000>; 393 regulator-min-microvolt = <5000000>; 394 regulator-name = "vcc5v0_spk"; 395 vin-supply = <&vcc5v0_sys>; 396 regulator-state-mem { 397 regulator-off-in-suspend; 398 }; 399 }; 400 401 vcc5v0_sys: regulator-vcc5v0-sys { 402 compatible = "regulator-fixed"; 403 regulator-always-on; 404 regulator-boot-on; 405 regulator-max-microvolt = <5000000>; 406 regulator-min-microvolt = <5000000>; 407 regulator-name = "vcc5v0_sys"; 408 }; 409 410 vibrator_l: vibrator-l { 411 compatible = "pwm-vibrator"; 412 pwm-names = "enable"; 413 pwms = <&pwm_gpio132 0 20000000 0>; 414 }; 415 416 vibrator_r: vibrator-r { 417 compatible = "pwm-vibrator"; 418 pwm-names = "enable"; 419 pwms = <&pwm_gpio33 0 20000000 0>; 420 }; 421}; 422 423&combphy2_psu { 424 status = "okay"; 425}; 426 427&cpu_l0 { 428 cpu-supply = <&vdd_cpu_lit_s0>; 429}; 430 431&cpu_l1 { 432 cpu-supply = <&vdd_cpu_lit_s0>; 433}; 434 435&cpu_l2 { 436 cpu-supply = <&vdd_cpu_lit_s0>; 437}; 438 439&cpu_l3 { 440 cpu-supply = <&vdd_cpu_lit_s0>; 441}; 442 443&cpu_b0 { 444 cpu-supply = <&vdd_cpu_big0_s0>; 445}; 446 447&cpu_b1 { 448 cpu-supply = <&vdd_cpu_big0_s0>; 449}; 450 451&cpu_b2 { 452 cpu-supply = <&vdd_cpu_big1_s0>; 453}; 454 455&cpu_b3 { 456 cpu-supply = <&vdd_cpu_big1_s0>; 457}; 458 459&gpu { 460 mali-supply = <&vdd_gpu_s0>; 461 status = "okay"; 462}; 463 464&i2c0 { 465 pinctrl-0 = <&i2c0m2_xfer>; 466 pinctrl-names = "default"; 467 status = "okay"; 468 469 vdd_cpu_big0_s0: regulator@42 { 470 compatible = "rockchip,rk8602"; 471 reg = <0x42>; 472 fcs,suspend-voltage-selector = <1>; 473 regulator-max-microvolt = <1050000>; 474 regulator-min-microvolt = <550000>; 475 regulator-name = "vdd_cpu_big0_s0"; 476 regulator-ramp-delay = <2300>; 477 vin-supply = <&vcc5v0_sys>; 478 479 regulator-state-mem { 480 regulator-off-in-suspend; 481 }; 482 }; 483 484 vdd_cpu_big1_s0: regulator@43 { 485 compatible = "rockchip,rk8603", "rockchip,rk8602"; 486 reg = <0x43>; 487 fcs,suspend-voltage-selector = <1>; 488 regulator-max-microvolt = <1050000>; 489 regulator-min-microvolt = <550000>; 490 regulator-name = "vdd_cpu_big1_s0"; 491 regulator-ramp-delay = <2300>; 492 vin-supply = <&vcc5v0_sys>; 493 494 regulator-state-mem { 495 regulator-off-in-suspend; 496 }; 497 }; 498}; 499 500&i2c2 { 501 status = "okay"; 502 503 vdd_npu_s0: regulator@42 { 504 compatible = "rockchip,rk8602"; 505 reg = <0x42>; 506 fcs,suspend-voltage-selector = <1>; 507 regulator-max-microvolt = <950000>; 508 regulator-min-microvolt = <550000>; 509 regulator-name = "vdd_npu_s0"; 510 regulator-ramp-delay = <2300>; 511 vin-supply = <&vcc5v0_sys>; 512 513 regulator-state-mem { 514 regulator-off-in-suspend; 515 }; 516 }; 517}; 518 519&i2c3 { 520 status = "okay"; 521 522 touchscreen@14 { 523 compatible = "goodix,gt911"; 524 reg = <0x14>; 525 interrupt-parent = <&gpio1>; 526 interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>; 527 irq-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; 528 pinctrl-0 = <&touch_int>, <&touch_rst>; 529 pinctrl-names = "default"; 530 reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; 531 touchscreen-inverted-x; 532 touchscreen-size-x = <1080>; 533 touchscreen-size-y = <1920>; 534 touchscreen-swapped-x-y; 535 }; 536}; 537 538&i2c4 { 539 pinctrl-0 = <&i2c4m2_xfer>; 540 status = "okay"; 541 542 ti_adc: adc@48 { 543 compatible = "ti,ads1015"; 544 reg = <0x48>; 545 #address-cells = <1>; 546 #io-channel-cells = <1>; 547 #size-cells = <0>; 548 549 channel@4 { 550 reg = <4>; 551 }; 552 553 channel@5 { 554 reg = <5>; 555 }; 556 557 channel@6 { 558 reg = <6>; 559 }; 560 561 channel@7 { 562 reg = <7>; 563 }; 564 }; 565 566 imu@68 { 567 compatible = "invensense,mpu6880"; 568 reg = <0x68>; 569 interrupt-parent = <&gpio0>; 570 interrupts = <RK_PD3 IRQ_TYPE_EDGE_RISING>; 571 }; 572}; 573 574&i2c6 { 575 pinctrl-0 = <&i2c6m3_xfer>; 576 status = "okay"; 577 578 rtc_hym8563: rtc@51 { 579 compatible = "haoyu,hym8563"; 580 reg = <0x51>; 581 #clock-cells = <0>; 582 clock-output-names = "hym8563"; 583 interrupt-parent = <&gpio0>; 584 interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; 585 pinctrl-0 = <&hym8563_int>, <&clk32k_in>; 586 pinctrl-names = "default"; 587 wakeup-source; 588 }; 589 590 /* Battery profile from BSP device tree. */ 591 battery@62 { 592 compatible = "cellwise,cw2015"; 593 reg = <0x62>; 594 595 cellwise,battery-profile = /bits/ 8 596 <0x18 0x0A 0x76 0x6A 0x6A 0x6A 0x68 0x66 597 0x62 0x5E 0x5A 0x58 0x5F 0x59 0x46 0x3D 598 0x35 0x2D 0x28 0x21 0x29 0x38 0x44 0x50 599 0x1A 0x85 0x07 0xAE 0x14 0x28 0x48 0x56 600 0x66 0x66 0x66 0x6A 0x3E 0x1A 0x6C 0x3D 601 0x09 0x38 0x1A 0x49 0x7B 0x96 0xA2 0x15 602 0x3B 0x77 0x9A 0xB1 0x80 0x87 0xB0 0xCB 603 0x2F 0x00 0x64 0xA5 0xB5 0x1C 0xF0 0x49>; 604 cellwise,monitor-interval-ms = <5000>; 605 monitored-battery = <&battery>; 606 status = "okay"; 607 }; 608}; 609 610&i2c7 { 611 status = "okay"; 612 613 es8388: audio-codec@11 { 614 compatible = "everest,es8388"; 615 reg = <0x11>; 616 assigned-clock-rates = <12288000>; 617 assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; 618 AVDD-supply = <&vcc_3v3_s3>; 619 clocks = <&cru I2S0_8CH_MCLKOUT>; 620 DVDD-supply = <&vcc_1v8_s3>; 621 HPVDD-supply = <&vcc_3v3_s3>; 622 PVDD-supply = <&vcc_1v8_s3>; 623 #sound-dai-cells = <0>; 624 }; 625}; 626 627&i2s0_8ch { 628 pinctrl-0 = <&i2s0_lrck 629 &i2s0_mclk 630 &i2s0_sclk 631 &i2s0_sdi0 632 &i2s0_sdo0>; 633 status = "okay"; 634}; 635 636&package_thermal { 637 polling-delay = <1000>; 638 639 trips { 640 package_fan0: package-fan0 { 641 temperature = <55000>; 642 hysteresis = <2000>; 643 type = "active"; 644 }; 645 646 package_fan1: package-fan1 { 647 temperature = <65000>; 648 hysteresis = <2000>; 649 type = "active"; 650 }; 651 }; 652 653 cooling-maps { 654 map1 { 655 trip = <&package_fan0>; 656 cooling-device = <&pwm_fan THERMAL_NO_LIMIT 1>; 657 }; 658 659 map2 { 660 trip = <&package_fan1>; 661 cooling-device = <&pwm_fan 2 THERMAL_NO_LIMIT>; 662 }; 663 }; 664}; 665 666/* 667 * Attempts to use an M.2 SATA in this slot worked intermittently 668 * with the correct nodes enabled in device-tree, but eventually 669 * resulted in a destroyed board. Advise caution. 670 */ 671&pcie2x1l1 { 672 pinctrl-0 = <&pcie_rst>; 673 pinctrl-names = "default"; 674 reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; 675 status = "okay"; 676}; 677 678&pinctrl { 679 audio-amplifier { 680 headphone_amplifier_en: headphone-amplifier-en { 681 rockchip,pins = 682 <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 683 }; 684 685 hp_detect: headphone-detect { 686 rockchip,pins = 687 <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 688 }; 689 690 speaker_amplifier_en: speaker-amplifier-en { 691 rockchip,pins = 692 <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; 693 }; 694 }; 695 696 bt { 697 bt_enable_h: bt-enable-h { 698 rockchip,pins = 699 <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 700 }; 701 702 bt_host_wake_l: bt-host-wake-l { 703 rockchip,pins = 704 <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; 705 }; 706 707 bt_wake_l: bt-wake-l { 708 rockchip,pins = 709 <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; 710 }; 711 }; 712 713 charger { 714 boost_enable_h: boost-enable-h { 715 rockchip,pins = 716 <4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 717 }; 718 charger_int_h: charger-int-h { 719 rockchip,pins = 720 <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; 721 }; 722 }; 723 724 hym8563 { 725 hym8563_int: hym8563-int { 726 rockchip,pins = 727 <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; 728 }; 729 }; 730 731 gpio-btns { 732 btn_pins_ctrl: btn-pins-ctrl { 733 rockchip,pins = 734 <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>, 735 <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>, 736 <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, 737 <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, 738 <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, 739 <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>, 740 <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, 741 <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, 742 <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, 743 <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>, 744 <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, 745 <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, 746 <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>, 747 <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>, 748 <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>, 749 <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>; 750 }; 751 }; 752 753 gpio-leds { 754 led_pins: led-pins { 755 rockchip,pins = 756 <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>, 757 <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; 758 }; 759 }; 760 761 lcd_bl_en { 762 lcd_bl_en: lcd-bl-en { 763 rockchip,pins = 764 <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; 765 }; 766 }; 767 768 pcie-pins { 769 pcie_rst: pcie-rst { 770 rockchip,pins = 771 <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>; 772 }; 773 }; 774 775 sd-pwr { 776 sd_s0_pwr: sd-s0-pwr { 777 rockchip,pins = 778 <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; 779 }; 780 }; 781 782 spk-pwr { 783 vcc5v0_spk_pwr: vcc5v0-spk-pwr { 784 rockchip,pins = 785 <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; 786 }; 787 }; 788 789 touch { 790 touch_int: touch-int { 791 rockchip,pins = 792 <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; 793 }; 794 795 touch_rst: touch-rst { 796 rockchip,pins = 797 <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 798 }; 799 }; 800 801 usb-typec { 802 usbc0_int: usbc0-int { 803 rockchip,pins = 804 <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>; 805 }; 806 }; 807 808 vcc3v3-lcd { 809 vcc_lcd_h: vcc-lcd-h { 810 rockchip,pins = 811 <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; 812 }; 813 }; 814 815 vibrator { 816 vib_left_h: vib-left-h { 817 rockchip,pins = 818 <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; 819 }; 820 821 vib_right_h: vib-right-h { 822 rockchip,pins = 823 <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>; 824 }; 825 }; 826 827 wifi { 828 wifi_enable_h: wifi-enable-h { 829 rockchip,pins = 830 <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; 831 }; 832 833 wifi_host_wake_irq: wifi-host-wake-irq { 834 rockchip,pins = 835 <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; 836 }; 837 }; 838}; 839 840&pwm12 { 841 pinctrl-0 = <&pwm12m1_pins>; 842 status = "okay"; 843}; 844 845&pwm13 { 846 pinctrl-0 = <&pwm13m1_pins>; 847 status = "okay"; 848}; 849 850&saradc { 851 vref-supply = <&vcc_1v8_s0>; 852 status = "okay"; 853}; 854 855&sdhci { 856 bus-width = <8>; 857 mmc-hs400-1_8v; 858 mmc-hs400-enhanced-strobe; 859 no-sd; 860 no-sdio; 861 non-removable; 862 status = "okay"; 863}; 864 865&sdio { 866 #address-cells = <1>; 867 bus-width = <4>; 868 cap-sd-highspeed; 869 cap-sdio-irq; 870 disable-wp; 871 keep-power-in-suspend; 872 max-frequency = <150000000>; 873 mmc-pwrseq = <&sdio_pwrseq>; 874 no-mmc; 875 no-sd; 876 sd-uhs-sdr104; 877 #size-cells = <0>; 878 status = "okay"; 879 880 brcmf: wifi@1 { 881 compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; 882 reg = <1>; 883 interrupt-parent = <&gpio0>; 884 interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; 885 interrupt-names = "host-wake"; 886 pinctrl-0 = <&wifi_host_wake_irq>; 887 pinctrl-names = "default"; 888 }; 889}; 890 891&sdmmc { 892 bus-width = <4>; 893 cap-mmc-highspeed; 894 cap-sd-highspeed; 895 disable-wp; 896 max-frequency = <150000000>; 897 no-sdio; 898 no-mmc; 899 sd-uhs-sdr104; 900 vmmc-supply = <&vcc_3v3_sd_s0>; 901 vqmmc-supply = <&vccio_sd_s0>; 902 status = "okay"; 903}; 904 905&spi2 { 906 #address-cells = <1>; 907 assigned-clocks = <&cru CLK_SPI2>; 908 assigned-clock-rates = <200000000>; 909 num-cs = <1>; 910 pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>; 911 pinctrl-names = "default"; 912 #size-cells = <0>; 913 status = "okay"; 914 915 pmic@0 { 916 compatible = "rockchip,rk806"; 917 reg = <0x0>; 918 #gpio-cells = <2>; 919 gpio-controller; 920 interrupt-parent = <&gpio0>; 921 interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; 922 pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, 923 <&rk806_dvs2_null>, <&rk806_dvs3_null>; 924 pinctrl-names = "default"; 925 spi-max-frequency = <1000000>; 926 system-power-controller; 927 928 vcc1-supply = <&vcc5v0_sys>; 929 vcc2-supply = <&vcc5v0_sys>; 930 vcc3-supply = <&vcc5v0_sys>; 931 vcc4-supply = <&vcc5v0_sys>; 932 vcc5-supply = <&vcc5v0_sys>; 933 vcc6-supply = <&vcc5v0_sys>; 934 vcc7-supply = <&vcc5v0_sys>; 935 vcc8-supply = <&vcc5v0_sys>; 936 vcc9-supply = <&vcc5v0_sys>; 937 vcc10-supply = <&vcc5v0_sys>; 938 vcc11-supply = <&vcc_2v0_pldo_s3>; 939 vcc12-supply = <&vcc5v0_sys>; 940 vcc13-supply = <&vcc_1v1_nldo_s3>; 941 vcc14-supply = <&vcc_1v1_nldo_s3>; 942 vcca-supply = <&vcc5v0_sys>; 943 944 rk806_dvs1_null: dvs1-null-pins { 945 pins = "gpio_pwrctrl1"; 946 function = "pin_fun0"; 947 }; 948 949 rk806_dvs2_null: dvs2-null-pins { 950 pins = "gpio_pwrctrl2"; 951 function = "pin_fun0"; 952 }; 953 954 rk806_dvs3_null: dvs3-null-pins { 955 pins = "gpio_pwrctrl3"; 956 function = "pin_fun0"; 957 }; 958 959 regulators { 960 vdd_gpu_s0: dcdc-reg1 { 961 regulator-boot-on; 962 regulator-enable-ramp-delay = <400>; 963 regulator-max-microvolt = <950000>; 964 regulator-min-microvolt = <550000>; 965 regulator-name = "vdd_gpu_s0"; 966 regulator-ramp-delay = <12500>; 967 regulator-state-mem { 968 regulator-off-in-suspend; 969 }; 970 }; 971 972 vdd_cpu_lit_s0: dcdc-reg2 { 973 regulator-always-on; 974 regulator-boot-on; 975 regulator-max-microvolt = <950000>; 976 regulator-min-microvolt = <550000>; 977 regulator-ramp-delay = <12500>; 978 regulator-name = "vdd_cpu_lit_s0"; 979 regulator-state-mem { 980 regulator-off-in-suspend; 981 }; 982 }; 983 984 vdd_logic_s0: dcdc-reg3 { 985 regulator-always-on; 986 regulator-boot-on; 987 regulator-max-microvolt = <750000>; 988 regulator-min-microvolt = <675000>; 989 regulator-name = "vdd_logic_s0"; 990 regulator-ramp-delay = <12500>; 991 regulator-state-mem { 992 regulator-on-in-suspend; 993 regulator-suspend-microvolt = <750000>; 994 }; 995 }; 996 997 vdd_vdenc_s0: dcdc-reg4 { 998 regulator-always-on; 999 regulator-boot-on; 1000 regulator-max-microvolt = <950000>; 1001 regulator-min-microvolt = <550000>; 1002 regulator-name = "vdd_vdenc_s0"; 1003 regulator-ramp-delay = <12500>; 1004 regulator-state-mem { 1005 regulator-off-in-suspend; 1006 }; 1007 }; 1008 1009 vdd_ddr_s0: dcdc-reg5 { 1010 regulator-always-on; 1011 regulator-boot-on; 1012 regulator-min-microvolt = <675000>; 1013 regulator-max-microvolt = <900000>; 1014 regulator-ramp-delay = <12500>; 1015 regulator-name = "vdd_ddr_s0"; 1016 regulator-state-mem { 1017 regulator-off-in-suspend; 1018 regulator-suspend-microvolt = <850000>; 1019 }; 1020 }; 1021 1022 vdd2_ddr_s3: dcdc-reg6 { 1023 regulator-always-on; 1024 regulator-boot-on; 1025 regulator-name = "vdd2_ddr_s3"; 1026 regulator-state-mem { 1027 regulator-on-in-suspend; 1028 }; 1029 }; 1030 1031 vcc_2v0_pldo_s3: dcdc-reg7 { 1032 regulator-always-on; 1033 regulator-boot-on; 1034 regulator-max-microvolt = <2000000>; 1035 regulator-min-microvolt = <2000000>; 1036 regulator-name = "vdd_2v0_pldo_s3"; 1037 regulator-state-mem { 1038 regulator-on-in-suspend; 1039 regulator-suspend-microvolt = <2000000>; 1040 }; 1041 }; 1042 1043 vcc_3v3_s3: dcdc-reg8 { 1044 regulator-always-on; 1045 regulator-boot-on; 1046 regulator-max-microvolt = <3300000>; 1047 regulator-min-microvolt = <3300000>; 1048 regulator-name = "vcc_3v3_s3"; 1049 regulator-state-mem { 1050 regulator-on-in-suspend; 1051 regulator-suspend-microvolt = <3300000>; 1052 }; 1053 }; 1054 1055 vddq_ddr_s0: dcdc-reg9 { 1056 regulator-always-on; 1057 regulator-boot-on; 1058 regulator-name = "vddq_ddr_s0"; 1059 regulator-state-mem { 1060 regulator-off-in-suspend; 1061 }; 1062 }; 1063 1064 vcc_1v8_s3: dcdc-reg10 { 1065 regulator-always-on; 1066 regulator-boot-on; 1067 regulator-max-microvolt = <1800000>; 1068 regulator-min-microvolt = <1800000>; 1069 regulator-name = "vcc_1v8_s3"; 1070 regulator-state-mem { 1071 regulator-on-in-suspend; 1072 regulator-suspend-microvolt = <1800000>; 1073 }; 1074 }; 1075 1076 avcc_1v8_s0: pldo-reg1 { 1077 regulator-always-on; 1078 regulator-boot-on; 1079 regulator-max-microvolt = <1800000>; 1080 regulator-min-microvolt = <1800000>; 1081 regulator-name = "avcc_1v8_s0"; 1082 regulator-state-mem { 1083 regulator-off-in-suspend; 1084 }; 1085 }; 1086 1087 vcc_1v8_s0: pldo-reg2 { 1088 regulator-always-on; 1089 regulator-boot-on; 1090 regulator-max-microvolt = <1800000>; 1091 regulator-min-microvolt = <1800000>; 1092 regulator-name = "vcc_1v8_s0"; 1093 regulator-state-mem { 1094 regulator-off-in-suspend; 1095 regulator-suspend-microvolt = <1800000>; 1096 }; 1097 }; 1098 1099 avdd_1v2_s0: pldo-reg3 { 1100 regulator-always-on; 1101 regulator-boot-on; 1102 regulator-max-microvolt = <1200000>; 1103 regulator-min-microvolt = <1200000>; 1104 regulator-name = "avdd_1v2_s0"; 1105 regulator-state-mem { 1106 regulator-off-in-suspend; 1107 }; 1108 }; 1109 1110 vcc_3v3_s0: pldo-reg4 { 1111 regulator-always-on; 1112 regulator-boot-on; 1113 regulator-max-microvolt = <3300000>; 1114 regulator-min-microvolt = <3300000>; 1115 regulator-name = "vcc_3v3_s0"; 1116 regulator-state-mem { 1117 regulator-off-in-suspend; 1118 }; 1119 }; 1120 1121 vccio_sd_s0: pldo-reg5 { 1122 regulator-always-on; 1123 regulator-boot-on; 1124 regulator-max-microvolt = <3300000>; 1125 regulator-min-microvolt = <1800000>; 1126 regulator-name = "vccio_sd_s0"; 1127 regulator-state-mem { 1128 regulator-off-in-suspend; 1129 }; 1130 }; 1131 1132 vcc_1v8_s3_pldo6: pldo-reg6 { 1133 regulator-always-on; 1134 regulator-boot-on; 1135 regulator-max-microvolt = <1800000>; 1136 regulator-min-microvolt = <1800000>; 1137 regulator-name = "vcc_1v8_s3_pldo6"; 1138 regulator-state-mem { 1139 regulator-on-in-suspend; 1140 regulator-suspend-microvolt = <1800000>; 1141 }; 1142 }; 1143 1144 vdd_0v75_s3: nldo-reg1 { 1145 regulator-always-on; 1146 regulator-boot-on; 1147 regulator-max-microvolt = <750000>; 1148 regulator-min-microvolt = <750000>; 1149 regulator-name = "vdd_0v75_s3"; 1150 regulator-state-mem { 1151 regulator-on-in-suspend; 1152 regulator-suspend-microvolt = <750000>; 1153 }; 1154 }; 1155 1156 vdd_ddr_pll_s0: nldo-reg2 { 1157 regulator-always-on; 1158 regulator-boot-on; 1159 regulator-max-microvolt = <850000>; 1160 regulator-min-microvolt = <850000>; 1161 regulator-name = "vdd_ddr_pll_s0"; 1162 regulator-state-mem { 1163 regulator-off-in-suspend; 1164 regulator-suspend-microvolt = <850000>; 1165 }; 1166 }; 1167 1168 avdd_0v75_s0: nldo-reg3 { 1169 regulator-always-on; 1170 regulator-boot-on; 1171 regulator-max-microvolt = <837500>; 1172 regulator-min-microvolt = <837500>; 1173 regulator-name = "avdd_0v75_s0"; 1174 regulator-state-mem { 1175 regulator-off-in-suspend; 1176 }; 1177 }; 1178 1179 vdd_0v85_s0: nldo-reg4 { 1180 regulator-always-on; 1181 regulator-boot-on; 1182 regulator-min-microvolt = <850000>; 1183 regulator-max-microvolt = <850000>; 1184 regulator-name = "vdd_0v85_s0"; 1185 regulator-state-mem { 1186 regulator-off-in-suspend; 1187 }; 1188 }; 1189 1190 vdd_0v75_s0: nldo-reg5 { 1191 regulator-always-on; 1192 regulator-boot-on; 1193 regulator-min-microvolt = <750000>; 1194 regulator-max-microvolt = <750000>; 1195 regulator-name = "vdd_0v75_s0"; 1196 regulator-state-mem { 1197 regulator-off-in-suspend; 1198 }; 1199 }; 1200 }; 1201 }; 1202}; 1203 1204&tsadc { 1205 status = "okay"; 1206}; 1207 1208&u2phy0 { 1209 status = "okay"; 1210}; 1211 1212&u2phy0_otg { 1213 status = "okay"; 1214}; 1215 1216&uart2 { 1217 pinctrl-0 = <&uart2m0_xfer>; 1218 status = "okay"; 1219}; 1220 1221&uart9 { 1222 pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>; 1223 uart-has-rtscts; 1224 status = "okay"; 1225 1226 bluetooth { 1227 compatible = "brcm,bcm4345c5"; 1228 clocks = <&rtc_hym8563>; 1229 clock-names = "lpo"; 1230 device-wakeup-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; 1231 interrupt-parent = <&gpio3>; 1232 interrupts = <RK_PB0 IRQ_TYPE_EDGE_FALLING>; 1233 pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_l>; 1234 pinctrl-names = "default"; 1235 shutdown-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; 1236 }; 1237}; 1238