1215 lines
24 KiB
Plaintext

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2024 Rockchip Electronics Co., Ltd.
*
*/
/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/pinctrl/rockchip.h>
#include <dt-bindings/input/rk-input.h>
#include <dt-bindings/display/drm_mipi_dsi.h>
#include <dt-bindings/display/rockchip_vop.h>
#include <dt-bindings/sensor-dev.h>
#include <dt-bindings/usb/pd.h>
#include "rk3576.dtsi"
#include "rk3576-android.dtsi"
#include "rk3576-eink.dtsi"
/ {
model = "Rockchip RK3576 EBOOK V10 Board";
compatible = "rockchip,rk3576-ebook-v10", "rockchip,rk3576";
bat: battery {
compatible = "simple-battery";
charge-full-design-microamp-hours = <8000000>;
precharge-current-microamp = <180000>;
precharge-upper-limit-microvolt = <3600000>;
charge-term-current-microamp = <300000>;
constant-charge-current-max-microamp = <10000000>;
constant-charge-voltage-max-microvolt = <4350000>;
factory-internal-resistance-micro-ohms = <80>;
voltage-max-design-microvolt = <4350000>;
voltage-min-design-microvolt = <3000000>;
};
bt_sco: bt-sco {
status = "okay";
compatible = "delta,dfbmcs320";
#sound-dai-cells = <1>;
};
bt_sound: bt-sound {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,format = "dsp_a";
simple-audio-card,bitclock-inversion;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,bt";
simple-audio-card,cpu {
sound-dai = <&sai2>;
};
simple-audio-card,codec {
sound-dai = <&bt_sco 1>;
};
};
charge-animation {
compatible = "rockchip,uboot-charge";
rockchip,uboot-charge-on = <1>;
rockchip,android-charge-on = <0>;
rockchip,uboot-low-power-voltage = <3450>;
rockchip,screen-on-voltage = <3500>;
rockchip,uboot-exit-charge-level = <2>;
rockchip,uboot-exit-charge-voltage = <3500>;
rockchip,uboot-exit-charge-auto = <1>;
status = "okay";
};
charger-manager {
compatible = "rockchip-charger-manager";
cm-name = "battery";
cm-poll-mode = <2>;
cm-poll-interval = <1000>;
cm-chargers = "sgm4154x-charger";
cm-chargers-phandle = <&usbc0>;
cm-fuel-gauge = "cw221X-bat";
monitored-battery = <&bat>;
extcon = <&u2phy0>;
cm-jeita-temp-charge-table = <0 15 2400000 4400000>, <15 45 10000000 4400000>, <45 60 6000000 4200000>;
};
es8388_sound: es8388-sound {
status = "okay";
compatible = "rockchip,multicodecs-card";
rockchip,card-name = "rockchip-es8388";
rockchip,codec-hp-det;
spk-con-gpio = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>;
rockchip,format = "i2s";
rockchip,mclk-fs = <256>;
rockchip,cpu = <&sai1>;
rockchip,codec = <&es8388>;
rockchip,audio-routing =
"Speaker", "LOUT2",
"Speaker", "Speaker Power",
"Speaker", "Speaker Power",
"LINPUT1", "Main Mic",
"LINPUT2", "Main Mic",
"RINPUT1", "Headset Mic",
"RINPUT2", "Headset Mic";
};
hall_sensor: hall-mh248 {
compatible = "hall-mh248";
pinctrl-names = "default";
pinctrl-0 = <&mh248_irq_gpio>;
irq-gpio = <&gpio0 RK_PB5 IRQ_TYPE_EDGE_BOTH>;
hall-active = <1>;
status = "okay";
//for ebook ultra sleep config
pmu-gpio-regs-base = <0x27320000>; //gpio0 base
pmu-gpio-regs-size = <0x200>; //gpio0 register size
pmu-gpio-int-reg = <0x50>; //gpio int status register
pmu-gpio-rtc-int-mask = <0x01>; //GPIO0_A0, rtc int
pmu-gpio-pmic-int-mask = <0x40>; //GPIO0_A6, pmic int
};
leds: gpio-leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 =<&leds_gpio>;
led@1 {
gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cw221X-bat-full";
label = "battery_full";
retain-state-suspended;
default-state = "on";
};
led@2 {
gpios = <&gpio2 RK_PC2 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cw221X-bat-charging";
label = "battery_charging";
retain-state-suspended;
default-state = "off";
};
};
vcc_sys: vcc-sys {
compatible = "regulator-fixed";
regulator-name = "vcc_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <3800000>;
regulator-max-microvolt = <3800000>;
};
vcc_2v0_pldo_s3: vcc-2v0-pldo-s3 {
compatible = "regulator-fixed";
regulator-name = "vcc_2v0_pldo_s3";
regulator-boot-on;
regulator-always-on;
regulator-min-microvolt = <2000000>;
regulator-max-microvolt = <2000000>;
vin-supply = <&vcc_sys>;
};
vcc_1v1_nldo_s3: vcc-1v1-nldo-s3 {
compatible = "regulator-fixed";
regulator-name = "vcc_1v1_nldo_s3";
regulator-boot-on;
regulator-always-on;
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
vin-supply = <&vcc_sys>;
};
vcc_cam: vcc-cam {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc_cam_en>;
regulator-name = "vcc_cam";
regulator-boot-on;
};
vcc_emr: vcc-emr {
compatible = "regulator-fixed";
enable-active-high;
gpio = <&gpio0 RK_PC2 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&vcc_emr_en>;
regulator-name = "vcc_emr";
regulator-boot-on;
startup-delay-us = <10000>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
wireless_bluetooth: wireless-bluetooth {
compatible = "bluetooth-platdata";
clocks = <&hym8563>;
clock-names = "ext_clock";
uart_rts_gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
pinctrl-names = "default", "rts_gpio";
pinctrl-0 = <&uart4m1_rtsn>;
pinctrl-1 = <&uart4_gpios>;
BT,reset_gpio = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
BT,wake_gpio = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
BT,wake_host_irq = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
status = "okay";
};
wireless_wlan: wireless-wlan {
compatible = "wlan-platdata";
wifi_chip_type = "ap6275p";
pinctrl-names = "default";
pinctrl-0 = <&wifi_host_wake_irq>;
WIFI,host_wake_irq = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
WIFI,poweren_gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
status = "okay";
};
};
&bus_a72 {
bus-supply = <&vdd_logic_s0>;
pvtm-supply = <&vdd_logic_s0>;
status = "okay";
};
&combphy0_ps {
status = "okay";
};
&cpu_l0 {
cpu-supply = <&vdd_cpu_lit_s0>;
};
&cpu_b0 {
cpu-supply = <&vdd_cpu_big_s0>;
};
&dp {
status = "disabled";
};
&dp0_in_vp1 {
status = "disabled";
};
&ebc_dev {
pmic = <&sy7636a>;
status = "okay";
panel,width = <1872>;
panel,height = <1404>;
panel,vir_width = <1872>;
panel,vir_height = <1404>;
panel,sdck = <34000000>;
panel,lsl = <18>;
panel,lbl = <17>;
panel,ldl = <234>;
panel,lel = <7>;
panel,gdck-sta = <34>;
panel,lgonl = <192>;
panel,fsl = <1>;
panel,fbl = <4>;
panel,fdl = <1404>;
panel,fel = <12>;
panel,mirror = <1>;
panel,panel_16bit = <1>;
panel,panel_color = <0>;
panel,width-mm = <157>;
panel,height-mm = <210>;
};
&gpu {
mali-supply = <&vdd_gpu_s0>;
status = "okay";
};
&i2c3 {
status = "okay";
pinctrl-names = "default";
es8388: es8388@10 {
status = "okay";
#sound-dai-cells = <0>;
compatible = "everest,es8388", "everest,es8323";
reg = <0x10>;
clocks = <&mclkout_sai1>;
clock-names = "mclk";
assigned-clocks = <&mclkout_sai1>;
assigned-clock-rates = <12288000>;
pinctrl-names = "default";
pinctrl-0 = <&sai1m0_mclk>;
};
aw882xx_smartpa_0: aw882xx@34 {
compatible = "awinic,aw882xx_smartpa";
#sound-dai-cells = <0>;
reg = <0x34>;
/* reset-gpio = <&pio 89 0x0>; */
/* irq-gpio = <&pio 37 0x0>; */
sound-channel = <0>; /*0:pri_l 1:pri_r 2:sec_l 3:sec_r*/
monitor-mode = "hal_momitor";
aw-re-min = <4000>;
aw-re-max= <30000>;
/*aw-cali-mode = "none";*/
status = "disabled";
};
aw882xx_smartpa_1: aw882xx@35 {
compatible = "awinic,aw882xx_smartpa";
#sound-dai-cells = <0>;
reg = <0x35>;
/* reset-gpio = <&pio 17 0x0>; */
/* irq-gpio = <&pio 19 0x0>; */
sound-channel = <1>; /*0:pri_l 1:pri_r 2:sec_l 3:sec_r*/
monitor-mode = "hal_momitor";
aw-re-min = <4000>;
aw-re-max= <30000>;
/*aw-cali-mode = "none";*/
status = "disabled";
};
};
&i2c5 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c5m2_xfer>;
led-controller@36 {
compatible = "ti,lm3630a";
reg = <0x36>;
enable-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&backlight_hwen_h>;
pinctrl-names = "default";
/*pwm-names = "lm3630a-pwm";*/
/*pwms = <&pwm0_2ch_1 0 25000 0>;*/
#address-cells = <1>;
#size-cells = <0>;
led@0 {
reg = <0>;
label = "backlight";
default-brightness = <150>;
};
};
led-controller-warn@38 {
compatible = "ti,lm3630a";
reg = <0x38>;
/*enable-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;*/
/*pinctrl-0 = <&backlight_hwen_h>;*/
/*pinctrl-names = "default";*/
/*pwm-names = "lm3630a-pwm";*/
/*pwms = <&pwm0_2ch_1 0 25000 0>;*/
#address-cells = <1>;
#size-cells = <0>;
led@0 {
reg = <0>;
label = "backlight_warm";
default-brightness = <150>;
};
};
wacom: wacom@9 {
compatible = "wacom,w9013";
reg = <0x09>;
pwr-supply = <&vcc_emr>;
pinctrl-names = "default";
pinctrl-0 = <&wacom_gpio>;
gpio_detect = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
gpio_intr = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
gpio_rst = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
revert_x = <1>;
revert_y = <1>;
xy_exchange = <0>;
};
};
&i2c6 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c6m3_xfer>;
sgm41542: sgm41542@3b {
compatible = "sgm,sgm41542";
reg = <0x3b>;
pinctrl-names = "default";
pinctrl-0 = <&charger_ok>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PD2 IRQ_TYPE_EDGE_FALLING>;
otg-mode-en-gpios = <&gpio2 RK_PD0 GPIO_ACTIVE_HIGH>;
input-voltage-limit-microvolt = <4500000>;
input-current-limit-microamp = <3000000>;
monitored-battery = <&bat>;
regulators {
vbus5v0_typec: vbus5v0-typec {
regulator-compatible = "otg-vbus";
regulator-name = "vbus5v0_typec";
};
};
};
cw221X@64 {
compatible = "cellwise,cw221X";
reg = <0x64>;
status = "okay";
cw,user_rsense = <2000>;
};
hym8563: hym8563@51 {
compatible = "haoyu,hym8563";
reg = <0x51>;
#clock-cells = <0>;
clock-frequency = <32768>;
clock-output-names = "hym8563";
pinctrl-names = "default";
pinctrl-0 = <&rtc_int>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>;
wakeup-source;
status = "okay";
};
usbc0: husb311@4e {
compatible = "hynetek,husb311";
reg = <0x4e>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PD1 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&usbc0_int>;
vbus-supply = <&vbus5v0_typec>;
status = "okay";
port {
usbc0_role_sw: endpoint {
remote-endpoint = <&usb_drd0_role_switch>;
};
};
usb_con: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
sink-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_FIXED(9000, 3000, PDO_FIXED_USB_COMM)
PDO_FIXED(12000, 3000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
altmodes {
#address-cells = <1>;
#size-cells = <0>;
altmode@0 {
reg = <0>;
svid = <0xff01>;
vdo = <0xffffffff>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
usbc0_orien_sw: endpoint {
remote-endpoint = <&usbdp_phy_orientation_switch>;
};
};
port@1 {
reg = <1>;
dp_altmode_mux: endpoint {
remote-endpoint = <&usbdp_phy_dp_altmode_mux>;
};
};
};
};
};
};
&i2c7 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c7m2_xfer>;
fp9931: fp9931@18 {
compatible = "fitipower,fp9931-pmic";
reg = <0x18>;
status = "disabled";
pinctrl-names = "default";
pinctrl-0 = <&fp9931_default>;
/* fp9931 EN_TS(pin15) and external power control pin */
power-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>, <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>;
/* fp9931 EN(pin16) */
enable-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>;
thermal-zone = "fp9931-pmic-thermal";
#thermal-sensor-cells = <0>;
regulators {
compatible = "fp9931-regulator";
fp9931_vcom: vcom {
regulator-name = "vcom";
regulator-min-microvolt = <0>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
fp9931_vpos_vneg: vpos_vneg {
regulator-name = "vpos_vneg";
regulator-init-microvolt = <15060000>;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
fp9931_thermal: fp9931-thermal {
compatible = "fp9931-thermal";
};
};
sy7636a: sy7636a@62 {
compatible = "silergy,sy7636a-pmic";
reg = <0x62>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&sy7636a_default>;
enable-gpios = <&gpio3 RK_PA4 GPIO_ACTIVE_HIGH>, <&gpio2 RK_PD1 GPIO_ACTIVE_HIGH>;
pgood-gpio = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
thermal-zone = "ebcpmic-thermal";
#thermal-sensor-cells = <0>;
regulators {
compatible = "sy7636a-regulator";
reg_ebcpmic: vcom {
regulator-name = "vcom";
regulator-min-microvolt = <0>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
};
sy7636a_thermal: sy7636a_thermal {
compatible = "sy7636a-thermal";
};
};
};
&i2c8 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c8m2_xfer>;
icm42607_acc: icm_acc@68 {
status = "okay";
compatible = "icm42607_acc";
reg = <0x68>;
irq-gpio = <&gpio0 RK_PC1 IRQ_TYPE_EDGE_RISING>;
irq_enable = <0>;
poll_delay_ms = <30>;
type = <SENSOR_TYPE_ACCEL>;
layout = <6>;
};
icm42607_gyro: icm_gyro@68 {
status = "okay";
compatible = "icm42607_gyro";
reg = <0x68>;
poll_delay_ms = <30>;
type = <SENSOR_TYPE_GYROSCOPE>;
layout = <6>;
};
};
&i2c9 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c9m2_xfer>;
focaltech: focaltech@38 {
status = "okay";
compatible = "rockchip,fts_ts";
reg = <0x38>;
power-supply = <&vcc_emr>;
pinctrl-names = "default";
pinctrl-0 = <&touch_gpio>;
t_irq_gpio = <&gpio0 RK_PC5 IRQ_TYPE_LEVEL_LOW>;
t_rst_gpio = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>;
focaltech,display-coords = <0 0 1404 1872>;
focaltech,have-key;
focaltech,key-number = <1>;
focaltech,keys = <158>;
focaltech,key-x-coords = <2000>;
focaltech,key-y-coords = <2000>;
};
tsc@24 {
status = "disabled";
compatible = "parade,pt_i2c_adapter";
reg = <0x24>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PC5 IRQ_TYPE_LEVEL_LOW>;
parade,adapter_id = "pt_i2c_adapter";
pinctrl-names = "default";
pinctrl-0 = <&touch_gpio>;
parade,core {
parade,name = "pt_core";
parade,irq_gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
parade,rst_gpio = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>;
/*parade,runfw_gpio = <64>;*/
parade,hid_desc_register = <1>;
/*
* PT_CORE_FLAG_NONE = 0x00
* PT_CORE_FLAG_POWEROFF_ON_SLEEP = 0x02
* PT_CORE_FLAG_RESTORE_PARAMETERS = 0x04
* PT_CORE_FLAG_DEEP_STANDBY = 0x08
* PT_CORE_FLAG_SKIP_SYS_SLEEP = 0x10
* PT_CORE_FLAG_SKIP_RUNTIME = 0x20
* PT_CORE_FLAG_SKIP_RESUME = 0x40
*/
parade,flags = <4>;
/* PT_CORE_EWG_NONE */
parade,easy_wakeup_gesture = <0>;
/* 0:AUTO 1:PIP1_ONLY 2:PIP2_CAPABLE*/
parade,config_dut_generation = <2>;
/* 0:False 1:True*/
parade,watchdog_force_stop = <0>;
/*
* PT_PANEL_ID_DISABLE = 0x00
* PT_PANEL_ID_BY_BL = 0x01
* PT_PANEL_ID_BY_SYS_INFO = 0x02
* PT_PANEL_ID_BY_MFG_DATA = 0x04
*/
parade,panel_id_support = <0>;
parade,btn_keys = <172 /* KEY_HOMEPAGE */
/* previously was KEY_HOME, new Android versions use KEY_HOMEPAGE */
139 /* KEY_MENU */
158 /* KEY_BACK */
217 /* KEY_SEARCH */
114 /* KEY_VOLUMEDOWN */
115 /* KEY_VOLUMEUP */
212 /* KEY_CAMERA */
116>; /* KEY_POWER */
parade,btn_keys-tag = <0>;
parade,mt {
parade,name = "pt_mt";
parade,inp_dev_name = "pt_mt";
/*
* PT_MT_FLAG_NONE = 0x00
* PT_MT_FLAG_FLIP = 0x08
* PT_MT_FLAG_INV_X = 0x10
* PT_MT_FLAG_INV_Y = 0x20
* PT_MT_FLAG_VKEYS = 0x40
*/
parade,flags = <0x20>;
parade,abs =
/* ABS_MT_POSITION_X, PT_ABS_MIN_X, PT_ABS_MAX_X, 0, 0 */
<0x35 0 880 0 0
/* ABS_MT_POSITION_Y, PT_ABS_MIN_Y, PT_ABS_MAX_Y, 0, 0 */
0x36 0 1280 0 0
/* ABS_MT_PRESSURE, PT_ABS_MIN_P, PT_ABS_MAX_P, 0, 0 */
0x3a 0 255 0 0
/* PT_IGNORE_VALUE, PT_ABS_MIN_W, PT_ABS_MAX_W, 0, 0 */
0xffff 0 255 0 0
/* ABS_MT_TRACKING_ID, PT_ABS_MIN_T, PT_ABS_MAX_T, 0, 0 */
0x39 0 15 0 0
/* ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0 */
0x30 0 255 0 0
/* ABS_MT_TOUCH_MINOR, 0, 255, 0, 0 */
0x31 0 255 0 0
/* ABS_MT_ORIENTATION, -127, 127, 0, 0 */
0x34 0xffffff81 127 0 0
/* ABS_MT_TOOL_TYPE, 0, MT_TOOL_MAX, 0, 0 */
0x37 0 1 0 0
/* ABS_DISTANCE, 0, 255, 0, 0 */
0x19 0 255 0 0>;
parade,vkeys_x = <720>;
parade,vkeys_y = <1280>;
parade,virtual_keys = /* KeyCode CenterX CenterY Width Height */
/* KEY_BACK */
<158 90 1360 160 180
/* KEY_MENU */
139 270 1360 160 180
/* KEY_HOMEPAGE */
172 450 1360 160 180
/* KEY SEARCH */
217 630 1360 160 180>;
};
};
};
};
&iep {
status = "okay";
};
&iep_mmu {
status = "okay";
};
&jpegd {
status = "okay";
};
&jpege {
status = "okay";
};
&jpeg_mmu {
status = "okay";
};
&mipidcphy0 {
status = "okay";
};
&mpp_srv {
status = "okay";
};
&pcie0 {
reset-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
rockchip,skip-scan-in-resume;
rockchip,s2r-perst-inactive-ms = <1>;
pinctrl-names = "default";
pinctrl-0 = <&wifi_poweren_gpio>;
status = "okay";
};
&pinctrl {
backlight {
backlight_hwen_h: backlight-hwen-h {
rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
camera {
vcc_cam_en: vcc-cam-en {
rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
charger {
charger_ok: charger_ok {
rockchip,pins =
<0 RK_PD2 RK_FUNC_GPIO &pcfg_pull_up>,
<2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
fp9931 {
fp9931_default: fp9931-default {
rockchip,pins =
<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>,
<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>,
<3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
hall {
mh248_irq_gpio: mh248-irq-gpio {
rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
led {
leds_gpio: leds-gpio {
rockchip,pins =
<2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>,
<2 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
rtc {
rtc_int: rtc-int {
rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
sy7636a {
sy7636a_default: sy7636a_default {
rockchip,pins =
<3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>,
<2 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>,
<3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
touch {
touch_gpio: touch-gpio {
rockchip,pins =
<0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>,
<0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
touch-pen {
wacom_gpio: wacom-gpio {
rockchip,pins =
<0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>,
<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>,
<0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
};
vcc_emr_en: vcc-emr-en {
rockchip,pins = <0 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
usb {
usbc0_int: usbc0-int {
rockchip,pins = <0 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
wireless-bluetooth {
uart4_gpios: uart4-gpios {
rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
wireless-wlan {
wifi_host_wake_irq: wifi-host-wake-irq {
rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
};
wifi_poweren_gpio: wifi-poweren-gpio {
rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
&rga2_core0 {
status = "okay";
};
&rga2_core0_mmu {
status = "okay";
};
&rga2_core1 {
status = "okay";
};
&rga2_core1_mmu {
status = "okay";
};
&rknpu {
rknpu-supply = <&vdd_npu_s0>;
status = "okay";
};
&rknpu_mmu {
status = "okay";
};
&rkvenc_ccu {
status = "okay";
};
&rkvenc0 {
status = "okay";
};
&rkvenc0_mmu {
status = "okay";
};
&rkvenc1 {
status = "okay";
};
&rkvenc1_mmu {
status = "okay";
};
&rkvdec {
status = "okay";
};
&rkvdec_mmu {
status = "okay";
};
&sai1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&sai1m0_lrck
&sai1m0_sclk
&sai1m0_sdi0
&sai1m0_sdo0>;
};
&sai2 {
status = "okay";
};
&sdhci {
bus-width = <8>;
no-sdio;
no-sd;
non-removable;
max-frequency = <200000000>;
mmc-hs400-1_8v;
mmc-hs400-enhanced-strobe;
full-pwr-cycle-in-suspend;
status = "okay";
};
&sdmmc {
max-frequency = <200000000>;
no-sdio;
no-mmc;
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
sd-uhs-sdr104;
vqmmc-supply = <&vccio_sd_s0>;
status = "okay";
};
&thermal_zones {
ebcpmic_thermal: ebcpmic-thermal {
polling-delay = <0>;
polling-delay-passive = <0>;
thermal-sensors = <&sy7636a>;
trips {
sy7636a_dummy_trip: sy7636a-dummy-trip {
temperature = <100000>;
hysteresis = <0>;
type = "hot";
};
};
};
fp9931_pmic_thermal: fp9931-pmic-thermal {
polling-delay = <0>;
polling-delay-passive = <0>;
thermal-sensors = <&fp9931>;
trips {
fp9931_dummy_trip: fp9931-dummy-trip {
temperature = <100000>;
hysteresis = <0>;
type = "hot";
};
};
};
};
&tsadc {
status = "okay";
};
&uart4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&uart4m1_xfer &uart4m1_ctsn>;
};
&ufs {
reset-gpios = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&u2phy0 {
status = "okay";
};
&u2phy0_otg {
status = "okay";
rockchip,typec-vbus-det;
};
&u2phy1 {
status = "disabled";
};
&u2phy1_otg {
status = "disabled";
};
&usbdp_phy {
status = "okay";
orientation-switch;
svid = <0xff01>;
sbu1-dc-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
sbu2-dc-gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
port {
#address-cells = <1>;
#size-cells = <0>;
usbdp_phy_orientation_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_orien_sw>;
};
usbdp_phy_dp_altmode_mux: endpoint@1 {
reg = <1>;
remote-endpoint = <&dp_altmode_mux>;
};
};
};
&usbdp_phy_dp {
status = "okay";
};
&usbdp_phy_u3 {
status = "okay";
};
&usb_drd0_dwc3 {
status = "okay";
dr_mode = "otg";
usb-role-switch;
port {
usb_drd0_role_switch: endpoint {
remote-endpoint = <&usbc0_role_sw>;
};
};
};
&usb_drd1_dwc3 {
status = "disabled";
};
&vdpp {
status = "okay";
};
&csi2_dphy3 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ov8865: endpoint@1 {
reg = <1>;
remote-endpoint = <&ov8865_out0>;
data-lanes = <1 2 3 4>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
csidphy3_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi3_csi2_input>;
};
};
};
};
&csi2_dphy0_hw {
status = "okay";
};
&csi2_dphy1_hw {
status = "okay";
};
&i2c4 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c4m2_xfer>;
ov8865: ov8865@36 {
compatible = "ovti,ov8865";
reg = <0x36>;
status = "okay";
clocks = <&cru CLK_MIPI_CAMERAOUT_M1>;
clock-names = "xvclk";
pinctrl-names = "default";
pinctrl-0 = <&cam_clk1m1_clk1>;
power-domains = <&power RK3576_PD_VI>;
avdd-supply = <&vcc_cam>;
dovdd-supply = <&vcc_1v8_cam>;
//dvdd-supply = <&vcc1v2_dvp>;
pwdn-gpios = <&gpio3 RK_PA3 GPIO_ACTIVE_HIGH>;
reset-gpios = <&gpio3 RK_PA1 GPIO_ACTIVE_HIGH>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
ov8865_out0: endpoint {
remote-endpoint = <&mipi_in_ov8865>;
data-lanes = <1 2 3 4>;
};
};
};
};
&mipi3_csi2 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi3_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&csidphy3_out>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi3_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi3_in0>;
};
};
};
};
&rkcif {
status = "okay";
};
&rkcif_mipi_lvds3 {
status = "okay";
port {
cif_mipi3_in0: endpoint {
remote-endpoint = <&mipi3_csi2_output>;
};
};
};
&rkcif_mipi_lvds3_sditf {
status = "okay";
port {
mipi_lvds3_sditf: endpoint {
remote-endpoint = <&isp_vir0_in0>;
};
};
};
&rkcif_mmu {
status = "okay";
};
&rkisp {
status = "okay";
};
&rkisp_mmu {
status = "okay";
};
&rkisp_vir0 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp_vir0_in0: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_lvds3_sditf>;
};
};
};