blob: 467f69594089bf1ff96e411d32629fb337220ed4 [file] [log] [blame]
// 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 = <&amp_headphone>, <&amp_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>;
};
};