• 周二. 5月 13th, 2025

dts — rk3399-mid-818-android.dts

3月 7, 2020

关键词:rk3399-mid-818-android.dts , linux-4.4, rockchip, dts

dts — rk3399-mid-818-android.dts

/*
 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

/dts-v1/;

#include "rk3399.dtsi"
#include "rk3399-android.dtsi"
#include "rk3399-opp.dtsi"
#include <dt-bindings/sensor-dev.h>
#include <dt-bindings/pwm/pwm.h>

/ {
	compatible = "rockchip,rk3399-mid", "rockchip,rk3399";

	edp_panel: edp-panel {
		compatible = "lg,lp079qx1-sp0v", "panel-simple";
		bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
		backlight = <&backlight>;
		power-supply = <&vcc3v3_s0>;
		enable-gpios = <&gpio3 8 GPIO_ACTIVE_HIGH>;
		ports {
			panel_in_edp: endpoint {
				remote-endpoint = <&edp_out_panel>;
			};
		};
	};

	hall_sensor: hall-mh248 {
		compatible = "hall-mh248";
		pinctrl-names = "default";
		pinctrl-0 = <&mh248_irq_gpio>;
		irq-gpio = <&gpio1 2 IRQ_TYPE_EDGE_BOTH>;
		hall-active = <1>;
		status = "okay";
	};

	vcc_sys: vcc-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3900000>;
		regulator-max-microvolt = <3900000>;
	};

	vcc3v3_sys: vcc3v3-sys {
		compatible = "regulator-fixed";
		regulator-name = "vcc3v3_sys";
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	vcc5v0_host: vcc5v0-host-regulator {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&gpio4 25 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&host_vbus_drv>;
		regulator-name = "vcc5v0_host";
		regulator-always-on;
	};

	vdd_log: vdd-log {
		compatible = "pwm-regulator";
		pwms = <&pwm2 0 25000 1>;
		rockchip,pwm_id= <2>;
		rockchip,pwm_voltage = <900000>;
		regulator-name = "vdd_log";
		regulator-min-microvolt = <750000>;
		regulator-max-microvolt = <1350000>;
		regulator-always-on;
		regulator-boot-on;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm0 0 25000 0>;
		brightness-levels = <
			255 200 199 198 197 197 196 195 194 193 193 192
			191 190 189 189 188 187 186 185 185 184 183 182
			181 181 180 179 178 177 177 176 175 174 173 173
			172 171 170 169 169 168 167 166 165 165 164 163
			162 161 161 160 159 158 157 157 156 155 154 153
			153 152 151 150 149 149 148 147 146 145 145 144
			143 142 141 141 140 139 138 137 137 136 135 134
			133 133 132 131 130 129 129 128 127 126 125 125
			124 123 122 121 121 120 119 118 117 117 116 115
			114 113 113 112 111 110 109 109 108 107 106 105
			105 104 103 102 101 101 100  99  98  97  97  96
			 95  94  93  93  92  91  90  89  89  88  87  86
			 85  85  84  83  82  81  81  80  79  78  77  77
			 76  75  74  73  73  72  71  70  69  69  68  67
			 66  65  65  64  63  62  61  61  60  59  58  57
			 57  56  55  54  53  53  52  51  50  49  49  48
			 47  46  45  45  44  43  42  41  41  40  39  38
			 37  37  36  35  34  33  33  32  31  30  29  29
			 28  27  26  25  25  24  23  22  21  21  20  19
			 18  17  17  16  15  14  13  13  12  11  10   9
			  9   8   7   6   5   5   4   3   2   1   1   0
			  0   0   0   0>;
		default-brightness-level = <200>;
		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
	};

	vcc_phy: vcc-phy-regulator {
		compatible = "regulator-fixed";
		regulator-name = "vcc_phy";
		regulator-always-on;
		regulator-boot-on;
	};

	es8316-sound {
		compatible = "simple-audio-card";
		simple-audio-card,format = "i2s";
		simple-audio-card,name = "rockchip,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 = <&i2s0>;
		};
		simple-audio-card,codec {
			sound-dai = <&es8316>;
		};
	};

	spdif-sound {
		compatible = "simple-audio-card";
		simple-audio-card,name = "rockchip,spdif";
		simple-audio-card,cpu {
			sound-dai = <&spdif>;
		};
		simple-audio-card,codec {
			sound-dai = <&spdif_out>;
		};
	};

	spdif_out: spdif-out {
		compatible = "linux,spdif-dit";
		#sound-dai-cells = <0>;
	};

	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 = <&gpio0 10 GPIO_ACTIVE_LOW>; /* GPIO0_B2 */
	};

	wireless-wlan {
		compatible = "wlan-platdata";
		rockchip,grf = <&grf>;
		wifi_chip_type = "ap6354";
		sdio_vref = <1800>;
		WIFI,host_wake_irq = <&gpio0 3 GPIO_ACTIVE_HIGH>; /* GPIO0_a3 */
		status = "okay";
	};

	wireless-bluetooth {
		compatible = "bluetooth-platdata";
		clocks = <&rk818 1>;
		clock-names = "ext_clock";
		//wifi-bt-power-toggle;
		uart_rts_gpios = <&gpio2 19 GPIO_ACTIVE_LOW>; /* GPIO2_C3 */
		pinctrl-names = "default", "rts_gpio";
		pinctrl-0 = <&uart0_rts>;
		pinctrl-1 = <&uart0_gpios>;
		//BT,power_gpio  = <&gpio3 19 GPIO_ACTIVE_HIGH>; /* GPIOx_xx */
		BT,reset_gpio    = <&gpio0 9 GPIO_ACTIVE_HIGH>; /* GPIO0_B1 */
		BT,wake_gpio     = <&gpio2 26 GPIO_ACTIVE_HIGH>; /* GPIO2_D2 */
		BT,wake_host_irq = <&gpio0 4 GPIO_ACTIVE_HIGH>; /* GPIO0_A4 */
		status = "okay";
	};

	uboot-charge {
		compatible = "rockchip,uboot-charge";
		rockchip,uboot-charge-on = <0>;
		rockchip,android-charge-on = <1>;
	};

	vibrator {
		compatible = "rk-vibrator-gpio";
		vibrator-gpio = <&gpio4 30 GPIO_ACTIVE_LOW>;
		status = "okay";
	};

	rk_headset {
		compatible = "rockchip_headset";
		headset_gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&hp_det>;
		io-channels = <&saradc 2>;
	};
};

&rk_key {
	compatible = "rockchip,key";
	status = "okay";

	io-channels = <&saradc 1>;

	vol-up-key {
		linux,code = <114>;
		label = "volume up";
		rockchip,adc_value = <1>;
	};

	vol-down-key {
		linux,code = <115>;
		label = "volume down";
		rockchip,adc_value = <170>;
	};

	power-key {
		gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
		linux,code = <116>;
		label = "power";
		gpio-key,wakeup;
	};

	menu-key {
		linux,code = <59>;
		label = "menu";
		rockchip,adc_value = <746>;
	};

	home-key {
		linux,code = <102>;
		label = "home";
		rockchip,adc_value = <355>;
	};

	back-key {
		linux,code = <158>;
		label = "back";
		rockchip,adc_value = <560>;
	};

	camera-key {
		linux,code = <212>;
		label = "camera";
		rockchip,adc_value = <450>;
	};
};

&sdmmc {
	clock-frequency = <50000000>;
	clock-freq-min-max = <400000 150000000>;
	supports-sd;
	bus-width = <4>;
	cap-mmc-highspeed;
	cap-sd-highspeed;
	disable-wp;
	num-slots = <1>;
	//sd-uhs-sdr104;
	vqmmc-supply = <&vcc_sd>;
	pinctrl-names = "default";
	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
	status = "okay";
};

&sdio0 {
	clock-frequency = <150000000>;
	clock-freq-min-max = <200000 150000000>;
	supports-sdio;
	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";
};

&emmc_phy {
	status = "okay";
};

&sdhci {
	bus-width = <8>;
	mmc-hs400-1_8v;
	supports-emmc;
	non-removable;
	keep-power-in-suspend;
	mmc-hs400-enhanced-strobe;
	status = "okay";
};

&i2s0 {
	status = "okay";
	rockchip,i2s-broken-burst-len;
	rockchip,playback-channels = <8>;
	rockchip,capture-channels = <8>;
	#sound-dai-cells = <0>;
};

&i2s2 {
	#sound-dai-cells = <0>;
};

&spdif {
	status = "okay";
	#sound-dai-cells = <0>;
};

&i2c0 {
	status = "okay";
	i2c-scl-rising-time-ns = <180>;
	i2c-scl-falling-time-ns = <30>;
	clock-frequency = <400000>;

	vdd_cpu_b: syr837@40 {
		compatible = "silergy,syr827";
		reg = <0x40>;
		vin-supply = <&vcc_sys>;
		regulator-compatible = "fan53555-reg";
		pinctrl-0 = <&vsel1_gpio>;
		vsel-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
		regulator-name = "vdd_cpu_b";
		regulator-min-microvolt = <712500>;
		regulator-max-microvolt = <1500000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-always-on;
		regulator-initial-state = <3>;
		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	vdd_gpu: syr828@41 {
		compatible = "silergy,syr828";
		status = "okay";
		reg = <0x41>;
		vin-supply = <&vcc_sys>;
		regulator-compatible = "fan53555-reg";
		pinctrl-0 = <&vsel2_gpio>;
		vsel-gpios = <&gpio1 14 GPIO_ACTIVE_HIGH>;
		regulator-name = "vdd_gpu";
		regulator-min-microvolt = <735000>;
		regulator-max-microvolt = <1400000>;
		regulator-ramp-delay = <1000>;
		fcs,suspend-voltage-selector = <1>;
		regulator-boot-on;
		regulator-state-mem {
			regulator-off-in-suspend;
		};
	};

	rk818: pmic@1c {
		compatible = "rockchip,rk818";
		status = "okay";
		reg = <0x1c>;
		clock-output-names = "xin32k", "wifibt_32kin";
		interrupt-parent = <&gpio1>;
		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&pmic_int_l>;
		rockchip,system-power-controller;
		rk818,support_dc_chg = <1>;/*1: dc chg; 0:usb chg*/
		wakeup-source;
		extcon = <&fusb0>;
		#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 = <&vcc3v3_sys>;
		vcc8-supply = <&vcc_sys>;
		vcc9-supply = <&vcc3v3_sys>;

		regulators {
			vdd_cpu_l: DCDC_REG1 {
				regulator-name = "vdd_cpu_l";
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <750000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vdd_center: DCDC_REG2 {
				regulator-name = "vdd_center";
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <1350000>;
				regulator-ramp-delay = <6001>;
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_ddr: DCDC_REG3 {
				regulator-name = "vcc_ddr";
				regulator-always-on;
				regulator-boot-on;
				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			vcc_1v8: DCDC_REG4 {
				regulator-name = "vcc_1v8";
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1800000>;
				};
			};

			vcca3v0_codec: LDO_REG1 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcca3v0_codec";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc3v0_tp: LDO_REG2 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc3v0_tp";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcca1v8_codec: LDO_REG3 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcca1v8_codec";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_power_on: LDO_REG4 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc_power_on";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3300000>;
				};
			};

			vcc_3v0: LDO_REG5 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc_3v0";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc_1v5: LDO_REG6 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1500000>;
				regulator-max-microvolt = <1500000>;
				regulator-name = "vcc_1v5";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <1500000>;
				};
			};

			vcc1v8_dvp: LDO_REG7 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-name = "vcc1v8_dvp";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc3v3_s3: LDO_REG8 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-name = "vcc3v3_s3";
				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			vcc_sd: LDO_REG9 {
				regulator-always-on;
				regulator-boot-on;
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <3000000>;
				regulator-name = "vcc_sd";
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-suspend-microvolt = <3000000>;
				};
			};

			vcc3v3_s0: SWITCH_REG {
				regulator-always-on;
				regulator-boot-on;
				regulator-name = "vcc3v3_s0";
				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";
			};
		};

		battery {
			compatible = "rk818-battery";
			ocv_table = <3400 3675 3689 3716 3740 3756 3768 3780
				3793 3807 3827 3853 3896 3937 3974 4007 4066
				4110 4161 4217 4308>;
			design_capacity = <7916>;
			design_qmax = <8708>;
			bat_res = <65>;
			max_input_current = <3000>;
			max_chrg_current = <3000>;
			max_chrg_voltage = <4350>;
			sleep_enter_current = <300>;
			sleep_exit_current = <300>;
			power_off_thresd = <3400>;
			zero_algorithm_vol = <3950>;
			fb_temperature = <105>;
			sample_res = <20>;
			max_soc_offset = <60>;
			energy_mode = <0>;
			monitor_sec = <5>;
			virtual_power = <0>;
			power_dc2otg = <0>;
		};
	};
};

&i2c1 {
	status = "okay";
	i2c-scl-rising-time-ns = <140>;
	i2c-scl-falling-time-ns = <30>;

	es8316: es8316@10 {
		#sound-dai-cells = <0>;
		compatible = "everest,es8316";
		reg = <0x11>;
		clocks = <&cru SCLK_I2S_8CH_OUT>;
		clock-names = "mclk";
		pinctrl-names = "default";
		pinctrl-0 = <&i2s_8ch_mclk>;
		spk-con-gpio = <&gpio0 11 GPIO_ACTIVE_HIGH>;
	};
};

&i2c4 {
	status = "okay";
	i2c-scl-rising-time-ns = <345>;
	i2c-scl-falling-time-ns = <11>;
	clock-frequency = <400000>;

	lsm330_accel@1e {
		status = "okay";
		compatible = "lsm330_acc";
		pinctrl-names = "default";
		pinctrl-0 = <&lsm330a_irq_gpio>;
		reg = <0x1e>;
		irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
		type = <SENSOR_TYPE_ACCEL>;
		irq_enable = <1>;
		poll_delay_ms = <30>;
		power-off-in-suspend = <1>;
		layout = <4>;
	};

	lsm330_gyro@6a {
		status = "okay";
		compatible = "lsm330_gyro";
		pinctrl-names = "default";
		pinctrl-0 = <&lsm330g_irq_gpio>;
		reg = <0x6a>;
		irq-gpio = <&gpio1 20 IRQ_TYPE_EDGE_RISING>;
		type = <SENSOR_TYPE_GYROSCOPE>;
		irq_enable = <0>;
		power-off-in-suspend = <1>;
		poll_delay_ms = <30>;
	};

	mpu6500@68 {
		status = "disabled";
		compatible = "invensense,mpu6500";
		pinctrl-names = "default";
		pinctrl-0 = <&mpu6500_irq_gpio>;
		reg = <0x68>;
		irq-gpio = <&gpio2 27 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= <1>;
		orientation-z= <0>;
		support-hw-poweroff = <1>;
		mpu-debug = <1>;
	};

	sensor@0d {
		status = "okay";
		compatible = "ak8963";
		pinctrl-names = "default";
		pinctrl-0 = <&ak8963_irq_gpio>;
		reg = <0x0d>;
		type = <SENSOR_TYPE_COMPASS>;
		irq-gpio = <&gpio2 28 IRQ_TYPE_EDGE_RISING>;
		irq_enable = <0>;
		poll_delay_ms = <30>;
		layout = <3>;
	};

	sensor@10 {
		status = "okay";
		compatible = "capella,light_cm3218";
		pinctrl-names = "default";
		pinctrl-0 = <&cm3218_irq_gpio>;
		reg = <0x10>;
		type = <SENSOR_TYPE_LIGHT>;
		irq-gpio = <&gpio4 24 IRQ_TYPE_EDGE_FALLING>;
		irq_enable = <1>;
		poll_delay_ms = <30>;
	};

	fusb0: fusb30x@22 {
		compatible = "fairchild,fusb302";
		reg = <0x22>;
		pinctrl-names = "default";
		pinctrl-0 = <&fusb0_int>;
		int-n-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
		status = "okay";
	};
};

&i2c5 {
	status = "okay";
	i2c-scl-rising-time-ns = <150>;
	i2c-scl-falling-time-ns = <30>;
	clock-frequency = <400000>;

	gt9xx: gt9xx@14 {
		compatible = "goodix,gt9xx";
		reg = <0x14>;
		touch-gpio = <&gpio3 12 IRQ_TYPE_LEVEL_LOW>;
		reset-gpio = <&gpio3 13 GPIO_ACTIVE_HIGH>;
		max-x = <1536>;
		max-y = <2048>;
		tp-size = <970>;
		tp-supply = <&vcc3v0_tp>;
	};
};

&io_domains {
	status = "okay";

	bt656-supply = <&vcc1v8_dvp>;
	audio-supply = <&vcca1v8_codec>;
	sdmmc-supply = <&vcc_sd>;
	gpio1830-supply = <&vcc_3v0>;
};

&isp0 {
	status = "okay";
};

&isp1 {
	status = "okay";
};

&isp0_mmu {
	status = "okay";
};

&isp1_mmu {
	status = "okay";
};

&cpu_l0 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l1 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l2 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_l3 {
	cpu-supply = <&vdd_cpu_l>;
};

&cpu_b0 {
	cpu-supply = <&vdd_cpu_b>;
};

&cpu_b1 {
	cpu-supply = <&vdd_cpu_b>;
};

&gpu {
	status = "okay";
	mali-supply = <&vdd_gpu>;
};

&spi1 {
	status = "disabled";
	max-freq = <50000000>;
	mpu6500@0 {
		status = "disabled";
		compatible = "inv-spi,mpu6500";
		pinctrl-names = "default";
		pinctrl-0 = <&mpu6500_irq_gpio>;
		irq-gpio = <&gpio2 27 IRQ_TYPE_EDGE_RISING>;
		reg = <0>;
		spi-max-frequency = <1000000>;
		spi-cpha;
		spi-cpol;
		mpu-int_config = <0x00>;
		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>;
	};
};

&tcphy0 {
	extcon = <&fusb0>;
	status = "okay";
};

&tsadc {
	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
	status = "okay";
};

&u2phy0 {
	status = "okay";
	extcon = <&fusb0>;

	u2phy0_otg: otg-port {
		status = "okay";
	};

	u2phy0_host: host-port {
		phy-supply = <&vcc5v0_host>;
		status = "okay";
	};
};

&uart0 {
	pinctrl-names = "default";
	pinctrl-0 = <&uart0_xfer &uart0_cts>;
	status = "okay";
};

&uart2 {
	status = "okay";
};

&usb_host0_ehci {
	status = "okay";
};

&usb_host0_ohci {
	status = "okay";
};

&usbdrd3_0 {
	extcon = <&fusb0>;
	status = "okay";
};

&usbdrd_dwc3_0 {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&pwm2 {
	status = "okay";
};

&saradc {
	status = "okay";
};

&rockchip_suspend {
	status = "okay";
	rockchip,sleep-debug-en = <1>;
	rockchip,sleep-mode-config = <
		(0
		| RKPM_SLP_ARMPD
		| RKPM_SLP_PERILPPD
		| RKPM_SLP_DDR_RET
		| RKPM_SLP_PLLPD
		| RKPM_SLP_CENTER_PD
		| RKPM_SLP_OSC_DIS
		| RKPM_SLP_AP_PWROFF
		)
	>;
	rockchip,wakeup-config = <
		(0
		| RKPM_GPIO_WKUP_EN
		)
	>;
	rockchip,pwm-regulator-config = <
		(0
		| PWM2_REGULATOR_EN
		)
	>;
	rockchip,power-ctrl =
		<&gpio1 17 GPIO_ACTIVE_HIGH>,
		<&gpio1 14 GPIO_ACTIVE_HIGH>;
};

&pinctrl {
	sdio-pwrseq {
		wifi_enable_h: wifi-enable-h {
			rockchip,pins = <0 10 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	wireless-bluetooth {
		uart0_gpios: uart0-gpios {
			rockchip,pins = <2 19 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pmic {
		pmic_int_l: pmic-int-l {
			rockchip,pins =
				<1 21 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pmic_dvs2: pmic-dvs2 {
			rockchip,pins =
				<1 18 RK_FUNC_GPIO &pcfg_pull_down>;
		};
		vsel1_gpio: vsel1-gpio {
			rockchip,pins =
				<1 17 RK_FUNC_GPIO &pcfg_pull_down>;
		};
		vsel2_gpio: vsel2-gpio {
			rockchip,pins =
				<1 14 RK_FUNC_GPIO &pcfg_pull_down>;
		};
	};

	hallsensor {
		mh248_irq_gpio: mh248-irq-gpio {
			rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	headphone {
		hp_det: hp-det {
			rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	lsm330_a {
		lsm330a_irq_gpio: lsm330a-irq-gpio {
			rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	lsm330_g {
		lsm330g_irq_gpio: lsm330g-irq-gpio {
			rockchip,pins = <1 20 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	mpu6500 {
		mpu6500_irq_gpio: mpu6500-irq-gpio {
			rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	ak8963 {
		ak8963_irq_gpio: ak8963-irq-gpio {
			rockchip,pins = <2 28 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	cm3218 {
		cm3218_irq_gpio: cm3218-irq-gpio {
			rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	usb2 {
		host_vbus_drv: host-vbus-drv {
			rockchip,pins =
				<4 25 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	fusb30x {
		fusb0_int: fusb0-int {
			rockchip,pins =
				<1 1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&edp {
	status = "okay";
	ports {
		edp_out: port@1 {
			reg = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			edp_out_panel: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&panel_in_edp>;
			};
		};
	};
};

&edp_in_vopl {
	status = "disabled";
};

&hdmi {
	status = "okay";
};

&hdmi_in_vopb {
	status = "disabled";
};

&cdn_dp {
	status = "okay";
	extcon = <&fusb0>;
	phys = <&tcphy0_dp>;
};

&dp_in_vopb {
	status = "disabled";
};

&pmu_io_domains {
	status = "okay";
	pmu1830-supply = <&vcc_1v8>;
};

&route_edp {
	status = "okay";
	logo,mode = "center";
};