// SPDX-License-Identifier: (GPL-2.0+ OR MIT) /* * Copyright (c) 2022 Rockchip Electronics Co., Ltd. * */ /dts-v1/; #include #include #include "rk3368.dtsi" #include "rk3368-android.dtsi" / { es8316-sound { compatible = "simple-audio-card"; simple-audio-card,format = "i2s"; simple-audio-card,name = "rockchip,rk-es8316-codec"; simple-audio-card,mclk-fs = <256>; simple-audio-card,widgets = "Microphone", "Mic Jack", "Headphone", "Headphone Jack"; simple-audio-card,routing = "Mic Jack", "MICBIAS1", "IN1P", "Mic Jack", "Headphone Jack", "HPOL", "Headphone Jack", "HPOR"; simple-audio-card,cpu { sound-dai = <&i2s_8ch>; }; simple-audio-card,codec { sound-dai = <&es8316>; }; }; sdio_pwrseq: sdio-pwrseq { compatible = "mmc-pwrseq-simple"; clocks = <&rk818 1>; clock-names = "ext_clock"; pinctrl-names = "default"; pinctrl-0 = <&wifi_enable_h>; /* * On the module itself this is one of these (depending * on the actual card populated): * - SDIO_RESET_L_WL_REG_ON * - PDN (power down when low) */ reset-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* GPIO3_A4 */ }; backlight: backlight { compatible = "pwm-backlight"; pwms = <&pwm0 0 25000 0>; brightness-levels = < 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255>; default-brightness-level = <200>; enable-gpios = <&gpio0 20 GPIO_ACTIVE_HIGH>; }; charge-animation { compatible = "rockchip,uboot-charge"; rockchip,uboot-charge-on = <1>; rockchip,android-charge-on = <0>; rockchip,uboot-low-power-voltage = <3500>; rockchip,screen-on-voltage = <3600>; status = "okay"; }; rk_key: rockchip-key { compatible = "rockchip,key"; status = "okay"; io-channels = <&saradc 1>; vol-up-key { linux,code = <115>; label = "volume up"; rockchip,adc_value = <1>; }; vol-down-key { linux,code = <114>; label = "volume down"; rockchip,adc_value = <170>; }; power-key { gpios = <&gpio0 2 GPIO_ACTIVE_LOW>; linux,code = <116>; label = "power"; gpio-key,wakeup; }; }; wireless-wlan { compatible = "wlan-platdata"; rockchip,grf = <&grf>; /* wifi_chip_type - wifi chip define * ap6210, ap6330, ap6335 * rtl8188eu, rtl8723bs, rtl8723bu * esp8089 */ wifi_chip_type = "ap6210"; sdio_vref = <1800>; //1800mv or 3300mv WIFI,host_wake_irq = <&gpio3 6 GPIO_ACTIVE_HIGH>; status = "okay"; }; wireless-bluetooth { compatible = "bluetooth-platdata"; clocks = <&rk818 1>; clock-names = "ext_clock"; uart_rts_gpios = <&gpio2 27 GPIO_ACTIVE_LOW>; pinctrl-names = "default","rts_gpio"; pinctrl-0 = <&uart0_rts>; pinctrl-1 = <&uart0_rts_gpio>; //BT,power_gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>; BT,reset_gpio = <&gpio3 5 GPIO_ACTIVE_HIGH>; BT,wake_gpio = <&gpio3 2 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio3 7 GPIO_ACTIVE_HIGH>; status = "okay"; }; 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_host: vcc-host { compatible = "regulator-fixed"; enable-active-high; gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&host_vbus_drv>; regulator-name = "vcc_host"; regulator-always-on; }; xin32k: xin32k { compatible = "fixed-clock"; clock-frequency = <32768>; clock-output-names = "xin32k"; #clock-cells = <0>; }; }; &cpu_l0 { cpu-supply = <&syr827>; }; &cpu_l1 { cpu-supply = <&syr827>; }; &cpu_l2 { cpu-supply = <&syr827>; }; &cpu_l3 { cpu-supply = <&syr827>; }; &cpu_b0 { cpu-supply = <&syr827>; }; &cpu_b1 { cpu-supply = <&syr827>; }; &cpu_b2 { cpu-supply = <&syr827>; }; &cpu_b3 { cpu-supply = <&syr827>; }; &gpu { logic-supply = <&vdd_logic>; }; &rockchip_suspend { status = "okay"; rockchip,sleep-mode-config = < (0 | RKPM_SLP_ARMOFF | RKPM_SLP_PMU_PLLS_PWRDN | RKPM_SLP_PMU_PMUALIVE_32K | RKPM_SLP_SFT_PLLS_DEEP | RKPM_SLP_PMU_DIS_OSC | RKPM_SLP_SFT_PD_NBSCUS ) >; rockchip,wakeup-config = < (0 | RKPM_GPIO_WKUP_EN | RKPM_USB_WKUP_EN | RKPM_CLUSTER_L_WKUP_EN ) >; }; &emmc { bus-width = <8>; cap-mmc-highspeed; mmc-hs200-1_8v; no-sdio; no-sd; disable-wp; non-removable; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>; status = "okay"; }; &nandc0 { status = "disabled"; }; &sdmmc { clock-frequency = <37500000>; clock-freq-min-max = <400000 37500000>; no-sdio; no-mmc; cap-mmc-highspeed; cap-sd-highspeed; card-detect-delay = <200>; disable-wp; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; status = "disabled"; }; &sdio0 { clock-frequency = <50000000>; clock-freq-min-max = <200000 50000000>; no-sd; no-mmc; bus-width = <4>; disable-wp; cap-sd-highspeed; cap-sdio-irq; keep-power-in-suspend; mmc-pwrseq = <&sdio_pwrseq>; non-removable; num-slots = <1>; pinctrl-names = "default"; pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>; sd-uhs-sdr104; status = "okay"; }; &i2c0 { status = "okay"; syr827: syr827@40 { compatible = "silergy,syr827"; status = "okay"; reg = <0x40>; regulator-compatible = "fan53555-reg"; regulator-name = "vdd_arm"; regulator-min-microvolt = <712500>; regulator-max-microvolt = <1500000>; regulator-ramp-delay = <1000>; fcs,suspend-voltage-selector = <1>; pinctrl-0 = <&vsel_gpio>; vsel-gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>; regulator-always-on; regulator-boot-on; regulator-initial-state = <3>; regulator-state-mem { regulator-off-in-suspend; regulator-suspend-microvolt = <900000>; }; }; rk818: pmic@1c { compatible = "rockchip,rk818"; status = "okay"; reg = <0x1c>; clock-output-names = "rk818-clkout1", "wifibt_32kin"; interrupt-parent = <&gpio0>; interrupts = <1 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pmic_int_l>; rockchip,system-power-controller; wakeup-source; #clock-cells = <1>; vcc1-supply = <&vcc_sys>; vcc2-supply = <&vcc_sys>; vcc3-supply = <&vcc_sys>; vcc4-supply = <&vcc_sys>; vcc6-supply = <&vcc_sys>; vcc7-supply = <&vcc_sys>; vcc8-supply = <&vcc_sys>; vcc9-supply = <&vcc_io>; regulators { vdd_logic: DCDC_REG1 { regulator-name = "vdd_logic"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1450000>; regulator-ramp-delay = <6001>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vdd_gpu: DCDC_REG2 { regulator-name = "vdd_gpu"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <800000>; regulator-max-microvolt = <1250000>; regulator-ramp-delay = <6001>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc_ddr: DCDC_REG3 { regulator-always-on; regulator-boot-on; regulator-name = "vcc_ddr"; regulator-state-mem { regulator-on-in-suspend; }; }; vcc_io: DCDC_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc_io"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vcca_codec: LDO_REG1 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcca_codec"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vcc_tp: LDO_REG2 { regulator-boot-on; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; regulator-name = "vcc_tp"; regulator-state-mem { regulator-off-in-suspend; }; }; vdd_10: LDO_REG3 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-name = "vdd_10"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc18_lcd: LDO_REG4 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc18_lcd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vccio_pmu: LDO_REG5 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vccio_pmu"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vdd10_lcd: LDO_REG6 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; regulator-name = "vdd10_lcd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1000000>; }; }; vcc_18: LDO_REG7 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vcc_18"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vccio_wl: LDO_REG8 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-name = "vccio_wl"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <1800000>; }; }; vccio_sd: LDO_REG9 { regulator-always-on; regulator-boot-on; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <3300000>; regulator-name = "vccio_sd"; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <3300000>; }; }; vcc_sd: SWITCH_REG { regulator-always-on; regulator-boot-on; regulator-name = "vcc_sd"; regulator-state-mem { regulator-on-in-suspend; }; }; boost_otg: DCDC_BOOST { regulator-name = "boost_otg"; regulator-always-on; regulator-boot-on; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-state-mem { regulator-on-in-suspend; regulator-suspend-microvolt = <5000000>; }; }; otg_switch: OTG_SWITCH { regulator-name = "otg_switch"; }; hdmi_switch: HDMI_SWITCH { regulator-always-on; regulator-boot-on; regulator-name = "hdmi_switch"; regulator-state-mem { regulator-off-in-suspend; }; }; }; battery { compatible = "rk818-battery"; pinctrl-names = "default"; pinctrl-0 = <&dc_irq_gpio>; ocv_table = < 3400 3650 3693 3707 3731 3749 3760 3770 3782 3796 3812 3829 3852 3882 3915 3951 3981 4047 4086 4132 4182>; design_capacity = <8650>; design_qmax = <8800>; bat_res = <85>; max_input_current = <2000>; max_chrg_current = <1800>; max_chrg_voltage = <4200>; sleep_enter_current = <600>; sleep_exit_current = <600>; power_off_thresd = <3400>; zero_algorithm_vol = <3850>; fb_temperature = <115>; sample_res = <20>; max_soc_offset = <60>; energy_mode = <0>; monitor_sec = <5>; virtual_power = <0>; power_dc2otg = <1>; support_usb_adp = <1>; support_dc_adp = <1>; dc_det_gpio = <&gpio0 17 GPIO_ACTIVE_LOW>; }; }; }; &i2c1 { status = "okay"; es8316: es8316@10 { status = "okay"; #sound-dai-cells = <0>; compatible = "everest,es8316"; reg = <0x10>; clocks = <&cru SCLK_I2S_8CH_OUT>; clock-names = "mclk"; spk-con-gpio = <&gpio0 27 GPIO_ACTIVE_HIGH>; hp-det-gpio = <&gpio0 23 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&i2s_8ch_mclk>; }; }; &i2c2 { status = "okay"; gt9xx: gt9xx@14 { compatible = "goodix,gt9xx"; reg = <0x14>; touch-gpio = <&gpio0 12 IRQ_TYPE_LEVEL_LOW>; reset-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>; max-x = <1920>; max-y = <1200>; tp-size = <89>; status = "okay"; tp-supply = <&vcc_tp>; }; }; &i2c3 { status = "okay"; }; &i2c4 { status = "okay"; mpu6500_acc: mpu_acc@68 { compatible = "mpu6500_acc"; reg = <0x68>; irq-gpio = <&gpio3 14 IRQ_TYPE_LEVEL_LOW>; irq_enable = <0>; poll_delay_ms = <30>; type = ; layout = <7>; }; mpu6500_gyro: mpu_gyro@68 { compatible = "mpu6500_gyro"; reg = <0x68>; irq_enable = <0>; poll_delay_ms = <30>; type = ; layout = <7>; }; mpu6500@68 { status = "disabled"; compatible = "invensense,mpu6500"; pinctrl-names = "default"; pinctrl-0 = <&mpu6500_irq_gpio>; reg = <0x68>; irq-gpio = <&gpio3 14 IRQ_TYPE_EDGE_RISING>; mpu-int_config = <0x10>; mpu-level_shifter = <0>; mpu-orientation = <1 0 0 0 1 0 0 0 1>; orientation-x= <1>; orientation-y= <0>; orientation-z= <1>; support-hw-poweroff = <1>; mpu-debug = <1>; }; }; &i2s_8ch { status = "okay"; rockchip,i2s-broken-burst-len; rockchip,playback-channels = <8>; rockchip,capture-channels = <2>; #sound-dai-cells = <0>; }; &io_domains { status = "okay"; dvp-supply = <&vcc_18>; audio-supply = <&vcc_io>; gpio30-supply = <&vcc_io>; gpio1830-supply = <&vcc_io>; sdcard-supply = <&vccio_sd>; wifi-supply = <&vccio_wl>; }; &pmu_io_domains { status = "okay"; pmu-supply = <&vccio_pmu>; vop-supply = <&vccio_pmu>; }; &pwm0 { status = "okay"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer &uart0_cts>; status = "okay"; }; &saradc { status = "okay"; }; &u2phy { status = "okay"; u2phy_host: host-port { phy-supply = <&vcc_host>; status = "okay"; }; }; &usb_host0_ehci { status = "okay"; }; &usb_host0_ohci { status = "okay"; }; &dsi { status = "okay"; panel@0 { compatible = "simple-panel-dsi"; reg = <0>; backlight = <&backlight>; enable-gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; prepare-delay-ms = <120>; enable-delay-ms = <200>; dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET)>; dsi,format = ; dsi,lanes = <4>; display-timings { native-mode = <&timing0>; timing0: timing0 { clock-frequency = <145000000>; hactive = <1920>; vactive = <1200>; hback-porch = <16>; hfront-porch = <24>; vback-porch = <10>; vfront-porch = <16>; hsync-len = <10>; vsync-len = <3>; hsync-active = <0>; vsync-active = <0>; de-active = <0>; pixelclk-active = <0>; }; }; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; panel_in_dsi: endpoint { remote-endpoint = <&dsi_out_panel>; }; }; }; }; ports { #address-cells = <1>; #size-cells = <0>; port@1 { reg = <1>; dsi_out_panel: endpoint { remote-endpoint = <&panel_in_dsi>; }; }; }; }; &route_dsi { status = "okay"; }; &tsadc { tsadc-supply = <&syr827>; status = "okay"; }; &pinctrl { pmic { pmic_int_l: pmic-int-l { rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>; }; vsel_gpio: vsel-gpio { rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>; }; }; mpu6500 { mpu6500_irq_gpio: mpu6500-irq-gpio { rockchip,pins = <3 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; }; }; dc_det { dc_irq_gpio: dc-irq-gpio { rockchip,pins = <0 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; }; }; sdio-pwrseq { wifi_enable_h: wifi-enable-h { rockchip,pins = <3 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; }; }; usb2 { host_vbus_drv: host-vbus-drv { rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; }; }; wireless-bluetooth { uart0_rts_gpio: uart0-rts-gpio { rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>; }; }; };