| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) |
| |
| /dts-v1/; |
| |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/linux-event-codes.h> |
| #include <dt-bindings/leds/common.h> |
| #include <dt-bindings/pinctrl/rockchip.h> |
| #include <dt-bindings/pwm/pwm.h> |
| #include <dt-bindings/thermal/thermal.h> |
| #include <dt-bindings/usb/pd.h> |
| #include "rk3588s.dtsi" |
| |
| / { |
| model = "Gameforce Ace"; |
| chassis-type = "handset"; |
| compatible = "gameforce,ace", "rockchip,rk3588s"; |
| |
| aliases { |
| mmc0 = &sdhci; |
| mmc1 = &sdmmc; |
| mmc2 = &sdio; |
| }; |
| |
| chosen { |
| stdout-path = "serial2:1500000n8"; |
| }; |
| |
| adc_keys: adc-keys { |
| compatible = "adc-keys"; |
| io-channels = <&saradc 1>; |
| io-channel-names = "buttons"; |
| keyup-threshold-microvolt = <1800000>; |
| poll-interval = <60>; |
| |
| button-vol-up { |
| label = "VOLUMEUP"; |
| linux,code = <KEY_VOLUMEUP>; |
| press-threshold-microvolt = <17000>; |
| }; |
| |
| button-vol-down { |
| label = "VOLUMEDOWN"; |
| linux,code = <KEY_VOLUMEDOWN>; |
| press-threshold-microvolt = <417000>; |
| }; |
| }; |
| |
| /* Joystick range values based on hardware observation. */ |
| adc_joystick: adc-joystick { |
| compatible = "adc-joystick"; |
| io-channels = <&saradc 2>, <&saradc 3>, |
| <&saradc 4>, <&saradc 5>; |
| poll-interval = <60>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| axis@0 { |
| reg = <0>; |
| abs-flat = <40>; |
| abs-fuzz = <30>; |
| abs-range = <0 4095>; |
| linux,code = <ABS_RX>; |
| }; |
| |
| axis@1 { |
| reg = <1>; |
| abs-flat = <40>; |
| abs-fuzz = <30>; |
| abs-range = <0 4095>; |
| linux,code = <ABS_RY>; |
| }; |
| |
| axis@2 { |
| reg = <2>; |
| abs-flat = <40>; |
| abs-fuzz = <30>; |
| abs-range = <0 4095>; |
| linux,code = <ABS_Y>; |
| }; |
| |
| axis@3 { |
| reg = <3>; |
| abs-flat = <40>; |
| abs-fuzz = <30>; |
| abs-range = <0 4095>; |
| linux,code = <ABS_X>; |
| }; |
| }; |
| |
| /* Trigger range values based on hardware observation. */ |
| adc_triggers: adc-trigger { |
| compatible = "adc-joystick"; |
| io-channels = <&ti_adc 6>, |
| <&ti_adc 7>; |
| poll-interval = <60>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| axis@0 { |
| reg = <0>; |
| abs-flat = <15>; |
| abs-fuzz = <15>; |
| abs-range = <890 1530>; |
| linux,code = <ABS_HAT2X>; |
| }; |
| |
| axis@1 { |
| reg = <1>; |
| abs-flat = <15>; |
| abs-fuzz = <15>; |
| abs-range = <1010 1550>; |
| linux,code = <ABS_HAT2Y>; |
| }; |
| }; |
| |
| analog-sound { |
| compatible = "simple-audio-card"; |
| pinctrl-0 = <&hp_detect>; |
| pinctrl-names = "default"; |
| simple-audio-card,aux-devs = <&_headphone>, <&_speaker>; |
| simple-audio-card,bitclock-master = <&masterdai>; |
| simple-audio-card,format = "i2s"; |
| simple-audio-card,frame-master = <&masterdai>; |
| simple-audio-card,hp-det-gpio = <&gpio3 RK_PA6 GPIO_ACTIVE_LOW>; |
| simple-audio-card,mclk-fs = <256>; |
| simple-audio-card,name = "rockchip,es8388-codec"; |
| simple-audio-card,pin-switches = "Headphones", "Speaker"; |
| simple-audio-card,routing = |
| "Speaker Amplifier INL", "LOUT2", |
| "Speaker Amplifier INR", "ROUT2", |
| "Speaker", "Speaker Amplifier OUTL", |
| "Speaker", "Speaker Amplifier OUTR", |
| "Headphones Amplifier INL", "LOUT1", |
| "Headphones Amplifier INR", "ROUT1", |
| "Headphones", "Headphones Amplifier OUTL", |
| "Headphones", "Headphones Amplifier OUTR", |
| "LINPUT1", "Microphone Jack", |
| "RINPUT1", "Microphone Jack", |
| "LINPUT2", "Onboard Microphone", |
| "RINPUT2", "Onboard Microphone"; |
| simple-audio-card,widgets = |
| "Microphone", "Microphone Jack", |
| "Microphone", "Onboard Microphone", |
| "Headphone", "Headphones", |
| "Speaker", "Speaker"; |
| |
| masterdai: simple-audio-card,codec { |
| sound-dai = <&es8388>; |
| system-clock-frequency = <12288000>; |
| }; |
| |
| simple-audio-card,cpu { |
| sound-dai = <&i2s0_8ch>; |
| }; |
| }; |
| |
| backlight: backlight { |
| compatible = "pwm-backlight"; |
| enable-gpios = <&gpio3 RK_PC0 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&lcd_bl_en>; |
| pinctrl-names = "default"; |
| pwms = <&pwm13 0 25000 PWM_POLARITY_INVERTED>; |
| }; |
| |
| battery: battery { |
| compatible = "simple-battery"; |
| charge-full-design-microamp-hours = <3700000>; |
| constant-charge-current-max-microamp = <2500000>; |
| constant-charge-voltage-max-microvolt = <8750000>; |
| voltage-min-design-microvolt = <7400000>; |
| }; |
| |
| gpio_keys: gpio-keys { |
| compatible = "gpio-keys"; |
| pinctrl-0 = <&btn_pins_ctrl>; |
| pinctrl-names = "default"; |
| |
| button-a { |
| gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>; |
| label = "EAST"; |
| linux,code = <BTN_EAST>; |
| }; |
| |
| button-b { |
| gpios = <&gpio1 RK_PA5 GPIO_ACTIVE_LOW>; |
| label = "SOUTH"; |
| linux,code = <BTN_SOUTH>; |
| }; |
| |
| button-down { |
| gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>; |
| label = "DPAD-DOWN"; |
| linux,code = <BTN_DPAD_DOWN>; |
| }; |
| |
| button-home { |
| gpios = <&gpio1 RK_PA0 GPIO_ACTIVE_LOW>; |
| label = "FUNCTION"; |
| linux,code = <BTN_MODE>; |
| }; |
| |
| button-l1 { |
| gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_LOW>; |
| label = "L1"; |
| linux,code = <BTN_TL>; |
| }; |
| |
| button-left { |
| gpios = <&gpio1 RK_PD7 GPIO_ACTIVE_LOW>; |
| label = "DPAD-LEFT"; |
| linux,code = <BTN_DPAD_LEFT>; |
| }; |
| |
| button-menu { |
| gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; |
| label = "HOME"; |
| linux,code = <KEY_HOME>; |
| }; |
| |
| button-r1 { |
| gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>; |
| label = "R1"; |
| linux,code = <BTN_TR>; |
| }; |
| |
| button-right { |
| gpios = <&gpio1 RK_PB7 GPIO_ACTIVE_LOW>; |
| label = "DPAD-RIGHT"; |
| linux,code = <BTN_DPAD_RIGHT>; |
| }; |
| |
| button-select { |
| gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_LOW>; |
| label = "SELECT"; |
| linux,code = <BTN_SELECT>; |
| }; |
| |
| button-start { |
| gpios = <&gpio1 RK_PB6 GPIO_ACTIVE_LOW>; |
| label = "START"; |
| linux,code = <BTN_START>; |
| }; |
| |
| button-thumbl { |
| gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>; |
| label = "THUMBL"; |
| linux,code = <BTN_THUMBL>; |
| }; |
| |
| button-thumbr { |
| gpios = <&gpio1 RK_PD6 GPIO_ACTIVE_LOW>; |
| label = "THUMBR"; |
| linux,code = <BTN_THUMBR>; |
| }; |
| |
| button-up { |
| gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_LOW>; |
| label = "DPAD-UP"; |
| linux,code = <BTN_DPAD_UP>; |
| }; |
| |
| button-x { |
| gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_LOW>; |
| label = "NORTH"; |
| linux,code = <BTN_NORTH>; |
| }; |
| |
| button-y { |
| gpios = <&gpio1 RK_PB3 GPIO_ACTIVE_LOW>; |
| label = "WEST"; |
| linux,code = <BTN_WEST>; |
| }; |
| }; |
| |
| gpio_leds: gpio-leds { |
| compatible = "gpio-leds"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&led_pins>; |
| |
| green_led: led-0 { |
| color = <LED_COLOR_ID_GREEN>; |
| gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>; |
| function = LED_FUNCTION_STATUS; |
| }; |
| |
| red_led: led-1 { |
| color = <LED_COLOR_ID_RED>; |
| gpios = <&gpio3 RK_PC2 GPIO_ACTIVE_HIGH>; |
| function = LED_FUNCTION_CHARGING; |
| }; |
| }; |
| |
| amp_headphone: headphone-amplifier { |
| compatible = "simple-audio-amplifier"; |
| enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&headphone_amplifier_en>; |
| pinctrl-names = "default"; |
| sound-name-prefix = "Headphones Amplifier"; |
| }; |
| |
| pwm_fan: pwm-fan { |
| compatible = "pwm-fan"; |
| #cooling-cells = <2>; |
| cooling-levels = <0 120 150 180 210 240 255>; |
| fan-supply = <&vcc5v0_sys>; |
| interrupt-parent = <&gpio4>; |
| interrupts = <RK_PB2 IRQ_TYPE_EDGE_RISING>; |
| pulses-per-revolution = <4>; |
| pwms = <&pwm12 0 50000 PWM_POLARITY_INVERTED>; |
| }; |
| |
| pwm_gpio33: pwm-33 { |
| compatible = "pwm-gpio"; |
| gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&vib_right_h>; |
| pinctrl-names = "default"; |
| #pwm-cells = <3>; |
| }; |
| |
| pwm_gpio132: pwm-132 { |
| compatible = "pwm-gpio"; |
| gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&vib_left_h>; |
| pinctrl-names = "default"; |
| #pwm-cells = <3>; |
| }; |
| |
| sdio_pwrseq: sdio-pwrseq { |
| compatible = "mmc-pwrseq-simple"; |
| clock-names = "ext_clock"; |
| clocks = <&rtc_hym8563>; |
| pinctrl-0 = <&wifi_enable_h>; |
| pinctrl-names = "default"; |
| post-power-on-delay-ms = <200>; |
| power-off-delay-us = <5000000>; |
| reset-gpios = <&gpio3 RK_PB4 GPIO_ACTIVE_LOW>; |
| }; |
| |
| amp_speaker: speaker-amplifier { |
| compatible = "simple-audio-amplifier"; |
| enable-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&speaker_amplifier_en>; |
| pinctrl-names = "default"; |
| sound-name-prefix = "Speaker Amplifier"; |
| VCC-supply = <&vcc5v0_spk>; |
| }; |
| |
| vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator { |
| compatible = "regulator-fixed"; |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1100000>; |
| regulator-min-microvolt = <1100000>; |
| regulator-name = "vcc_1v1_nldo_s3"; |
| vin-supply = <&vcc5v0_sys>; |
| }; |
| |
| vcc3v3_lcd0_n: vcc3v3-lcd0-n-regulator { |
| compatible = "regulator-fixed"; |
| enable-active-high; |
| gpio = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&vcc_lcd_h>; |
| pinctrl-names = "default"; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <3300000>; |
| regulator-name = "vcc3v3_lcd0_n"; |
| vin-supply = <&vcc_3v3_s3>; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc_3v3_sd_s0: vcc-3v3-sd-s0-regulator { |
| compatible = "regulator-fixed"; |
| enable-active-high; |
| gpio = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&sd_s0_pwr>; |
| pinctrl-names = "default"; |
| regulator-max-microvolt = <3000000>; |
| regulator-min-microvolt = <3000000>; |
| regulator-name = "vcc_3v3_sd_s0"; |
| vin-supply = <&vcc_3v3_s3>; |
| }; |
| |
| vcc5v0_spk: vcc5v0-spk-regulator { |
| compatible = "regulator-fixed"; |
| enable-active-high; |
| gpio = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&vcc5v0_spk_pwr>; |
| pinctrl-names = "default"; |
| regulator-max-microvolt = <5000000>; |
| regulator-min-microvolt = <5000000>; |
| regulator-name = "vcc5v0_spk"; |
| vin-supply = <&vcc5v0_sys>; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc5v0_sys: vcc5v0-sys-regulator { |
| compatible = "regulator-fixed"; |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <5000000>; |
| regulator-min-microvolt = <5000000>; |
| regulator-name = "vcc5v0_sys"; |
| }; |
| |
| vibrator_l: vibrator-l { |
| compatible = "pwm-vibrator"; |
| pwm-names = "enable"; |
| pwms = <&pwm_gpio132 0 20000000 0>; |
| }; |
| |
| vibrator_r: vibrator-r { |
| compatible = "pwm-vibrator"; |
| pwm-names = "enable"; |
| pwms = <&pwm_gpio33 0 20000000 0>; |
| }; |
| }; |
| |
| &combphy2_psu { |
| status = "okay"; |
| }; |
| |
| &cpu_l0 { |
| cpu-supply = <&vdd_cpu_lit_s0>; |
| }; |
| |
| &cpu_l1 { |
| cpu-supply = <&vdd_cpu_lit_s0>; |
| }; |
| |
| &cpu_l2 { |
| cpu-supply = <&vdd_cpu_lit_s0>; |
| }; |
| |
| &cpu_l3 { |
| cpu-supply = <&vdd_cpu_lit_s0>; |
| }; |
| |
| &cpu_b0 { |
| cpu-supply = <&vdd_cpu_big0_s0>; |
| }; |
| |
| &cpu_b1 { |
| cpu-supply = <&vdd_cpu_big0_s0>; |
| }; |
| |
| &cpu_b2 { |
| cpu-supply = <&vdd_cpu_big1_s0>; |
| }; |
| |
| &cpu_b3 { |
| cpu-supply = <&vdd_cpu_big1_s0>; |
| }; |
| |
| &gpu { |
| mali-supply = <&vdd_gpu_s0>; |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| pinctrl-0 = <&i2c0m2_xfer>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| |
| vdd_cpu_big0_s0: regulator@42 { |
| compatible = "rockchip,rk8602"; |
| reg = <0x42>; |
| fcs,suspend-voltage-selector = <1>; |
| regulator-max-microvolt = <1050000>; |
| regulator-min-microvolt = <550000>; |
| regulator-name = "vdd_cpu_big0_s0"; |
| regulator-ramp-delay = <2300>; |
| vin-supply = <&vcc5v0_sys>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_cpu_big1_s0: regulator@43 { |
| compatible = "rockchip,rk8603", "rockchip,rk8602"; |
| reg = <0x43>; |
| fcs,suspend-voltage-selector = <1>; |
| regulator-max-microvolt = <1050000>; |
| regulator-min-microvolt = <550000>; |
| regulator-name = "vdd_cpu_big1_s0"; |
| regulator-ramp-delay = <2300>; |
| vin-supply = <&vcc5v0_sys>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| }; |
| |
| &i2c2 { |
| status = "okay"; |
| |
| vdd_npu_s0: regulator@42 { |
| compatible = "rockchip,rk8602"; |
| reg = <0x42>; |
| fcs,suspend-voltage-selector = <1>; |
| regulator-max-microvolt = <950000>; |
| regulator-min-microvolt = <550000>; |
| regulator-name = "vdd_npu_s0"; |
| regulator-ramp-delay = <2300>; |
| vin-supply = <&vcc5v0_sys>; |
| |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| }; |
| |
| &i2c3 { |
| status = "okay"; |
| |
| touchscreen@14 { |
| compatible = "goodix,gt911"; |
| reg = <0x14>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>; |
| irq-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; |
| pinctrl-0 = <&touch_int>, <&touch_rst>; |
| pinctrl-names = "default"; |
| reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>; |
| touchscreen-inverted-x; |
| touchscreen-size-x = <1080>; |
| touchscreen-size-y = <1920>; |
| touchscreen-swapped-x-y; |
| }; |
| }; |
| |
| &i2c4 { |
| pinctrl-0 = <&i2c4m2_xfer>; |
| status = "okay"; |
| |
| ti_adc: adc@48 { |
| compatible = "ti,ads1015"; |
| reg = <0x48>; |
| #address-cells = <1>; |
| #io-channel-cells = <1>; |
| #size-cells = <0>; |
| |
| channel@4 { |
| reg = <4>; |
| }; |
| |
| channel@5 { |
| reg = <5>; |
| }; |
| |
| channel@6 { |
| reg = <6>; |
| }; |
| |
| channel@7 { |
| reg = <7>; |
| }; |
| }; |
| |
| imu@68 { |
| compatible = "invensense,mpu6880"; |
| reg = <0x68>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <RK_PD3 IRQ_TYPE_EDGE_RISING>; |
| }; |
| }; |
| |
| &i2c6 { |
| pinctrl-0 = <&i2c6m3_xfer>; |
| status = "okay"; |
| |
| rtc_hym8563: rtc@51 { |
| compatible = "haoyu,hym8563"; |
| reg = <0x51>; |
| #clock-cells = <0>; |
| clock-output-names = "hym8563"; |
| interrupt-parent = <&gpio0>; |
| interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-0 = <&hym8563_int>, <&clk32k_in>; |
| pinctrl-names = "default"; |
| wakeup-source; |
| }; |
| |
| /* Battery profile from BSP device tree. */ |
| battery@62 { |
| compatible = "cellwise,cw2015"; |
| reg = <0x62>; |
| |
| cellwise,battery-profile = /bits/ 8 |
| <0x18 0x0A 0x76 0x6A 0x6A 0x6A 0x68 0x66 |
| 0x62 0x5E 0x5A 0x58 0x5F 0x59 0x46 0x3D |
| 0x35 0x2D 0x28 0x21 0x29 0x38 0x44 0x50 |
| 0x1A 0x85 0x07 0xAE 0x14 0x28 0x48 0x56 |
| 0x66 0x66 0x66 0x6A 0x3E 0x1A 0x6C 0x3D |
| 0x09 0x38 0x1A 0x49 0x7B 0x96 0xA2 0x15 |
| 0x3B 0x77 0x9A 0xB1 0x80 0x87 0xB0 0xCB |
| 0x2F 0x00 0x64 0xA5 0xB5 0x1C 0xF0 0x49>; |
| cellwise,monitor-interval-ms = <5000>; |
| monitored-battery = <&battery>; |
| status = "okay"; |
| }; |
| }; |
| |
| &i2c7 { |
| status = "okay"; |
| |
| es8388: audio-codec@11 { |
| compatible = "everest,es8388"; |
| reg = <0x11>; |
| assigned-clock-rates = <12288000>; |
| assigned-clocks = <&cru I2S0_8CH_MCLKOUT>; |
| AVDD-supply = <&vcc_3v3_s3>; |
| clocks = <&cru I2S0_8CH_MCLKOUT>; |
| DVDD-supply = <&vcc_1v8_s3>; |
| HPVDD-supply = <&vcc_3v3_s3>; |
| PVDD-supply = <&vcc_1v8_s3>; |
| #sound-dai-cells = <0>; |
| }; |
| }; |
| |
| &i2s0_8ch { |
| pinctrl-0 = <&i2s0_lrck |
| &i2s0_mclk |
| &i2s0_sclk |
| &i2s0_sdi0 |
| &i2s0_sdo0>; |
| status = "okay"; |
| }; |
| |
| &package_thermal { |
| polling-delay = <1000>; |
| |
| trips { |
| package_fan0: package-fan0 { |
| temperature = <55000>; |
| hysteresis = <2000>; |
| type = "active"; |
| }; |
| |
| package_fan1: package-fan1 { |
| temperature = <65000>; |
| hysteresis = <2000>; |
| type = "active"; |
| }; |
| }; |
| |
| cooling-maps { |
| map1 { |
| trip = <&package_fan0>; |
| cooling-device = <&pwm_fan THERMAL_NO_LIMIT 1>; |
| }; |
| |
| map2 { |
| trip = <&package_fan1>; |
| cooling-device = <&pwm_fan 2 THERMAL_NO_LIMIT>; |
| }; |
| }; |
| }; |
| |
| /* |
| * Attempts to use an M.2 SATA in this slot worked intermittently |
| * with the correct nodes enabled in device-tree, but eventually |
| * resulted in a destroyed board. Advise caution. |
| */ |
| &pcie2x1l1 { |
| pinctrl-0 = <&pcie_rst>; |
| pinctrl-names = "default"; |
| reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>; |
| status = "okay"; |
| }; |
| |
| &pinctrl { |
| audio-amplifier { |
| headphone_amplifier_en: headphone-amplifier-en { |
| rockchip,pins = |
| <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| hp_detect: headphone-detect { |
| rockchip,pins = |
| <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| speaker_amplifier_en: speaker-amplifier-en { |
| rockchip,pins = |
| <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| bt { |
| bt_enable_h: bt-enable-h { |
| rockchip,pins = |
| <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| |
| bt_host_wake_l: bt-host-wake-l { |
| rockchip,pins = |
| <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| bt_wake_l: bt-wake-l { |
| rockchip,pins = |
| <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| charger { |
| boost_enable_h: boost-enable-h { |
| rockchip,pins = |
| <4 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| charger_int_h: charger-int-h { |
| rockchip,pins = |
| <0 RK_PD5 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| hym8563 { |
| hym8563_int: hym8563-int { |
| rockchip,pins = |
| <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| gpio-btns { |
| btn_pins_ctrl: btn-pins-ctrl { |
| rockchip,pins = |
| <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PB7 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>, |
| <1 RK_PD7 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| gpio-leds { |
| led_pins: led-pins { |
| rockchip,pins = |
| <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>, |
| <3 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| lcd_bl_en { |
| lcd_bl_en: lcd-bl-en { |
| rockchip,pins = |
| <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; |
| }; |
| }; |
| |
| pcie-pins { |
| pcie_rst: pcie-rst { |
| rockchip,pins = |
| <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| sd-pwr { |
| sd_s0_pwr: sd-s0-pwr { |
| rockchip,pins = |
| <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| spk-pwr { |
| vcc5v0_spk_pwr: vcc5v0-spk-pwr { |
| rockchip,pins = |
| <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| touch { |
| touch_int: touch-int { |
| rockchip,pins = |
| <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| touch_rst: touch-rst { |
| rockchip,pins = |
| <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| usb-typec { |
| usbc0_int: usbc0-int { |
| rockchip,pins = |
| <0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| vcc3v3-lcd { |
| vcc_lcd_h: vcc-lcd-h { |
| rockchip,pins = |
| <4 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| }; |
| |
| vibrator { |
| vib_left_h: vib-left-h { |
| rockchip,pins = |
| <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| |
| vib_right_h: vib-right-h { |
| rockchip,pins = |
| <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| }; |
| |
| wifi { |
| wifi_enable_h: wifi-enable-h { |
| rockchip,pins = |
| <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>; |
| }; |
| |
| wifi_host_wake_irq: wifi-host-wake-irq { |
| rockchip,pins = |
| <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; |
| }; |
| }; |
| }; |
| |
| &pwm12 { |
| pinctrl-0 = <&pwm12m1_pins>; |
| status = "okay"; |
| }; |
| |
| &pwm13 { |
| pinctrl-0 = <&pwm13m1_pins>; |
| status = "okay"; |
| }; |
| |
| &saradc { |
| vref-supply = <&vcc_1v8_s0>; |
| status = "okay"; |
| }; |
| |
| &sdhci { |
| bus-width = <8>; |
| mmc-hs400-1_8v; |
| mmc-hs400-enhanced-strobe; |
| no-sd; |
| no-sdio; |
| non-removable; |
| status = "okay"; |
| }; |
| |
| &sdio { |
| #address-cells = <1>; |
| bus-width = <4>; |
| cap-sd-highspeed; |
| cap-sdio-irq; |
| disable-wp; |
| keep-power-in-suspend; |
| max-frequency = <150000000>; |
| mmc-pwrseq = <&sdio_pwrseq>; |
| no-mmc; |
| no-sd; |
| sd-uhs-sdr104; |
| #size-cells = <0>; |
| status = "okay"; |
| |
| brcmf: wifi@1 { |
| compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac"; |
| reg = <1>; |
| interrupt-parent = <&gpio0>; |
| interrupts = <RK_PA0 IRQ_TYPE_LEVEL_HIGH>; |
| interrupt-names = "host-wake"; |
| pinctrl-0 = <&wifi_host_wake_irq>; |
| pinctrl-names = "default"; |
| }; |
| }; |
| |
| &sdmmc { |
| bus-width = <4>; |
| cap-mmc-highspeed; |
| cap-sd-highspeed; |
| disable-wp; |
| max-frequency = <150000000>; |
| no-sdio; |
| no-mmc; |
| sd-uhs-sdr104; |
| vmmc-supply = <&vcc_3v3_sd_s0>; |
| vqmmc-supply = <&vccio_sd_s0>; |
| status = "okay"; |
| }; |
| |
| &spi2 { |
| #address-cells = <1>; |
| assigned-clocks = <&cru CLK_SPI2>; |
| assigned-clock-rates = <200000000>; |
| num-cs = <1>; |
| pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>; |
| pinctrl-names = "default"; |
| #size-cells = <0>; |
| status = "okay"; |
| |
| pmic@0 { |
| compatible = "rockchip,rk806"; |
| reg = <0x0>; |
| #gpio-cells = <2>; |
| gpio-controller; |
| interrupt-parent = <&gpio0>; |
| interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, |
| <&rk806_dvs2_null>, <&rk806_dvs3_null>; |
| pinctrl-names = "default"; |
| spi-max-frequency = <1000000>; |
| system-power-controller; |
| |
| vcc1-supply = <&vcc5v0_sys>; |
| vcc2-supply = <&vcc5v0_sys>; |
| vcc3-supply = <&vcc5v0_sys>; |
| vcc4-supply = <&vcc5v0_sys>; |
| vcc5-supply = <&vcc5v0_sys>; |
| vcc6-supply = <&vcc5v0_sys>; |
| vcc7-supply = <&vcc5v0_sys>; |
| vcc8-supply = <&vcc5v0_sys>; |
| vcc9-supply = <&vcc5v0_sys>; |
| vcc10-supply = <&vcc5v0_sys>; |
| vcc11-supply = <&vcc_2v0_pldo_s3>; |
| vcc12-supply = <&vcc5v0_sys>; |
| vcc13-supply = <&vcc_1v1_nldo_s3>; |
| vcc14-supply = <&vcc_1v1_nldo_s3>; |
| vcca-supply = <&vcc5v0_sys>; |
| |
| rk806_dvs1_null: dvs1-null-pins { |
| pins = "gpio_pwrctrl1"; |
| function = "pin_fun0"; |
| }; |
| |
| rk806_dvs2_null: dvs2-null-pins { |
| pins = "gpio_pwrctrl2"; |
| function = "pin_fun0"; |
| }; |
| |
| rk806_dvs3_null: dvs3-null-pins { |
| pins = "gpio_pwrctrl3"; |
| function = "pin_fun0"; |
| }; |
| |
| regulators { |
| vdd_gpu_s0: dcdc-reg1 { |
| regulator-boot-on; |
| regulator-enable-ramp-delay = <400>; |
| regulator-max-microvolt = <950000>; |
| regulator-min-microvolt = <550000>; |
| regulator-name = "vdd_gpu_s0"; |
| regulator-ramp-delay = <12500>; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_cpu_lit_s0: dcdc-reg2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <950000>; |
| regulator-min-microvolt = <550000>; |
| regulator-ramp-delay = <12500>; |
| regulator-name = "vdd_cpu_lit_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_logic_s0: dcdc-reg3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <750000>; |
| regulator-min-microvolt = <675000>; |
| regulator-name = "vdd_logic_s0"; |
| regulator-ramp-delay = <12500>; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <750000>; |
| }; |
| }; |
| |
| vdd_vdenc_s0: dcdc-reg4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <950000>; |
| regulator-min-microvolt = <550000>; |
| regulator-name = "vdd_vdenc_s0"; |
| regulator-ramp-delay = <12500>; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_ddr_s0: dcdc-reg5 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <675000>; |
| regulator-max-microvolt = <900000>; |
| regulator-ramp-delay = <12500>; |
| regulator-name = "vdd_ddr_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <850000>; |
| }; |
| }; |
| |
| vdd2_ddr_s3: dcdc-reg6 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-name = "vdd2_ddr_s3"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| }; |
| }; |
| |
| vcc_2v0_pldo_s3: dcdc-reg7 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <2000000>; |
| regulator-min-microvolt = <2000000>; |
| regulator-name = "vdd_2v0_pldo_s3"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <2000000>; |
| }; |
| }; |
| |
| vcc_3v3_s3: dcdc-reg8 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <3300000>; |
| regulator-name = "vcc_3v3_s3"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <3300000>; |
| }; |
| }; |
| |
| vddq_ddr_s0: dcdc-reg9 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-name = "vddq_ddr_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc_1v8_s3: dcdc-reg10 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "vcc_1v8_s3"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <1800000>; |
| }; |
| }; |
| |
| avcc_1v8_s0: pldo-reg1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "avcc_1v8_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc_1v8_s0: pldo-reg2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "vcc_1v8_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <1800000>; |
| }; |
| }; |
| |
| avdd_1v2_s0: pldo-reg3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1200000>; |
| regulator-min-microvolt = <1200000>; |
| regulator-name = "avdd_1v2_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc_3v3_s0: pldo-reg4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <3300000>; |
| regulator-name = "vcc_3v3_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vccio_sd_s0: pldo-reg5 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <3300000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "vccio_sd_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vcc_1v8_s3_pldo6: pldo-reg6 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <1800000>; |
| regulator-min-microvolt = <1800000>; |
| regulator-name = "vcc_1v8_s3_pldo6"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <1800000>; |
| }; |
| }; |
| |
| vdd_0v75_s3: nldo-reg1 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <750000>; |
| regulator-min-microvolt = <750000>; |
| regulator-name = "vdd_0v75_s3"; |
| regulator-state-mem { |
| regulator-on-in-suspend; |
| regulator-suspend-microvolt = <750000>; |
| }; |
| }; |
| |
| vdd_ddr_pll_s0: nldo-reg2 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <850000>; |
| regulator-min-microvolt = <850000>; |
| regulator-name = "vdd_ddr_pll_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| regulator-suspend-microvolt = <850000>; |
| }; |
| }; |
| |
| avdd_0v75_s0: nldo-reg3 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-max-microvolt = <837500>; |
| regulator-min-microvolt = <837500>; |
| regulator-name = "avdd_0v75_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_0v85_s0: nldo-reg4 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <850000>; |
| regulator-max-microvolt = <850000>; |
| regulator-name = "vdd_0v85_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| |
| vdd_0v75_s0: nldo-reg5 { |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-min-microvolt = <750000>; |
| regulator-max-microvolt = <750000>; |
| regulator-name = "vdd_0v75_s0"; |
| regulator-state-mem { |
| regulator-off-in-suspend; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &tsadc { |
| status = "okay"; |
| }; |
| |
| &u2phy0 { |
| status = "okay"; |
| }; |
| |
| &u2phy0_otg { |
| status = "okay"; |
| }; |
| |
| &uart2 { |
| pinctrl-0 = <&uart2m0_xfer>; |
| status = "okay"; |
| }; |
| |
| &uart9 { |
| pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>; |
| uart-has-rtscts; |
| status = "okay"; |
| |
| bluetooth { |
| compatible = "brcm,bcm4345c5"; |
| clocks = <&rtc_hym8563>; |
| clock-names = "lpo"; |
| device-wakeup-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>; |
| interrupt-parent = <&gpio3>; |
| interrupts = <RK_PB0 IRQ_TYPE_EDGE_FALLING>; |
| pinctrl-0 = <&bt_enable_h>, <&bt_host_wake_l>, <&bt_wake_l>; |
| pinctrl-names = "default"; |
| shutdown-gpios = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |