// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Google Gru-scarlet board device tree source
 *
 * Copyright 2018 Google, Inc
 */

#include "rk3399-gru.dtsi"

/{
	chassis-type = "tablet";

	/* Power tree */

	/* ppvar_sys children, sorted by name */
	pp1250_s3: pp1250-s3 {
		compatible = "regulator-fixed";
		regulator-name = "pp1250_s3";

		/* EC turns on w/ pp1250_s3_en; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <1250000>;
		regulator-max-microvolt = <1250000>;

		vin-supply = <&ppvar_sys>;
	};

	pp1250_cam: pp1250-dvdd {
		compatible = "regulator-fixed";
		regulator-name = "pp1250_dvdd";
		pinctrl-names = "default";
		pinctrl-0 = <&pp1250_cam_en>;

		enable-active-high;
		gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;

		/* 740us delay from gpio output high to pp1250 stable,
		 * rounding up to 1ms for safety.
		 */
		startup-delay-us = <1000>;
		vin-supply = <&pp1250_s3>;
	};

	pp900_s0: pp900-s0 {
		compatible = "regulator-fixed";
		regulator-name = "pp900_s0";

		/* EC turns on w/ pp900_s0_en; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <900000>;
		regulator-max-microvolt = <900000>;

		vin-supply = <&ppvar_sys>;
	};

	ppvarn_lcd: ppvarn-lcd {
		compatible = "regulator-fixed";
		regulator-name = "ppvarn_lcd";
		pinctrl-names = "default";
		pinctrl-0 = <&ppvarn_lcd_en>;

		enable-active-high;
		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
		vin-supply = <&ppvar_sys>;
	};

	ppvarp_lcd: ppvarp-lcd {
		compatible = "regulator-fixed";
		regulator-name = "ppvarp_lcd";
		pinctrl-names = "default";
		pinctrl-0 = <&ppvarp_lcd_en>;

		enable-active-high;
		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
		vin-supply = <&ppvar_sys>;
	};

	/* pp1800 children, sorted by name */
	pp900_s3: pp900-s3 {
		compatible = "regulator-fixed";
		regulator-name = "pp900_s3";

		/* EC turns on w/ pp900_s3_en; always on for AP */
		regulator-always-on;
		regulator-boot-on;
		regulator-min-microvolt = <900000>;
		regulator-max-microvolt = <900000>;

		vin-supply = <&pp1800>;
	};

	/* EC turns on pp1800_s3_en */
	pp1800_s3: pp1800 {
	};

	/* pp3300 children, sorted by name */
	pp2800_cam: pp2800-avdd {
		compatible = "regulator-fixed";
		regulator-name = "pp2800_avdd";
		pinctrl-names = "default";
		pinctrl-0 = <&pp2800_cam_en>;

		enable-active-high;
		gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
		startup-delay-us = <100>;
		vin-supply = <&pp3300>;
	};

	/* EC turns on pp3300_s0_en */
	pp3300_s0: pp3300 {
	};

	/* EC turns on pp3300_s3_en */
	pp3300_s3: pp3300 {
	};

	/*
	 * See b/66922012
	 *
	 * This is a hack to make sure the Bluetooth part of the QCA6174A
	 * is reset at boot by toggling BT_EN. At boot BT_EN is first set
	 * to low when the bt_3v3 regulator is registered (in disabled
	 * state). The fake regulator is configured as a supply of the
	 * wlan_3v3 regulator below. When wlan_3v3 is enabled early in
	 * the boot process it also enables its supply regulator bt_3v3,
	 * which changes BT_EN to high.
	 */
	bt_3v3: bt-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "bt_3v3";
		pinctrl-names = "default";
		pinctrl-0 = <&bt_en_1v8_l>;

		enable-active-high;
		gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
		vin-supply = <&pp3300_s3>;
	};

	wlan_3v3: wlan-3v3 {
		compatible = "regulator-fixed";
		regulator-name = "wlan_3v3";
		pinctrl-names = "default";
		pinctrl-0 = <&wlan_pd_1v8_l>;

		/*
		 * The WL_EN pin is driven low when the regulator is
		 * registered, and transitions to high when the PCIe bus
		 * is powered up.
		 */
		enable-active-high;
		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;

		/*
		 * Require minimum 10ms from power-on (e.g., PD#) to init PCIe.
		 * TODO (b/64444991): how long to assert PD#?
		 */
		regulator-enable-ramp-delay = <10000>;
		/* See bt_3v3 hack above */
		vin-supply = <&bt_3v3>;
	};

	backlight: backlight {
		compatible = "pwm-backlight";
		enable-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&bl_en>;
		pwms = <&pwm1 0 1000000 0>;
	};

	dmic: dmic {
		compatible = "dmic-codec";
		dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&dmic_en>;
		wakeup-delay-ms = <250>;
	};

	gpio_keys: gpio-keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&pen_eject_odl>;

		switch-pen-insert {
			label = "Pen Insert";
			/* Insert = low, eject = high */
			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
			linux,code = <SW_PEN_INSERTED>;
			linux,input-type = <EV_SW>;
			wakeup-source;
		};
	};
};

/* pp900_s0 aliases */
pp900_ddrpll_ap: &pp900_s0 {
};
pp900_pcie: &pp900_s0 {
};
pp900_usb: &pp900_s0 {
};

/* pp900_s3 aliases */
pp900_emmcpll: &pp900_s3 {
};

/* EC turns on; alias for pp1800_s0 */
pp1800_pcie: &pp1800_s0 {
};

/* On scarlet PPVAR(big_cpu, lit_cpu, gpu) need to adjust voltage ranges */
&ppvar_bigcpu {
	ctrl-voltage-range = <800074 1299226>;
	regulator-min-microvolt = <800074>;
	regulator-max-microvolt = <1299226>;
};

&ppvar_bigcpu_pwm {
	/* On scarlet ppvar big cpu use pwm3 */
	pwms = <&pwm3 0 3337 0>;
	regulator-min-microvolt = <800074>;
	regulator-max-microvolt = <1299226>;
};

&ppvar_litcpu {
	ctrl-voltage-range = <802122 1199620>;
	regulator-min-microvolt = <802122>;
	regulator-max-microvolt = <1199620>;
};

&ppvar_litcpu_pwm {
	regulator-min-microvolt = <802122>;
	regulator-max-microvolt = <1199620>;
};

&ppvar_gpu {
	ctrl-voltage-range = <799600 1099600>;
	regulator-min-microvolt = <799600>;
	regulator-max-microvolt = <1099600>;
};

&ppvar_gpu_pwm {
	regulator-min-microvolt = <799600>;
	regulator-max-microvolt = <1099600>;
};

&ppvar_sd_card_io {
	states = <1800000 0x0>, <3300000 0x1>;
	regulator-max-microvolt = <3300000>;
};

&pp3000_sd_slot {
	vin-supply = <&pp3300>;
};

ap_i2c_dig: &i2c2 {
	status = "okay";

	clock-frequency = <400000>;

	/* These are relatively safe rise/fall times. */
	i2c-scl-falling-time-ns = <50>;
	i2c-scl-rising-time-ns = <300>;

	digitizer: digitizer@9 {
		compatible = "hid-over-i2c";
		reg = <0x9>;
		interrupt-parent = <&gpio1>;
		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
		hid-descr-addr = <0x1>;
		pinctrl-names = "default";
		pinctrl-0 = <&pen_int_odl &pen_reset_l>;
	};
};

&ap_i2c_ts {
	touchscreen: touchscreen@10 {
		compatible = "elan,ekth3500";
		reg = <0x10>;
		interrupt-parent = <&gpio1>;
		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
		pinctrl-names = "default";
		pinctrl-0 = <&touch_int_l &touch_reset_l>;
		reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
	};
};

camera: &i2c7 {
	status = "okay";

	clock-frequency = <400000>;

	/* These are relatively safe rise/fall times; TODO: measure */
	i2c-scl-falling-time-ns = <50>;
	i2c-scl-rising-time-ns = <300>;

	/* 24M mclk is shared between world and user cameras */
	pinctrl-0 = <&i2c7_xfer &test_clkout1>;

	/* Rear-facing camera */
	wcam: camera@36 {
		compatible = "ovti,ov5695";
		reg = <0x36>;
		pinctrl-names = "default";
		pinctrl-0 = <&wcam_rst>;

		clocks = <&cru SCLK_TESTCLKOUT1>;
		clock-names = "xvclk";

		avdd-supply = <&pp2800_cam>;
		dvdd-supply = <&pp1250_cam>;
		dovdd-supply = <&pp1800_s0>;
		reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;

		port {
			wcam_out: endpoint {
				remote-endpoint = <&mipi_in_wcam>;
				data-lanes = <1 2>;
			};
		};
	};

	/* Front-facing camera */
	ucam: camera@3c {
		compatible = "ovti,ov2685";
		reg = <0x3c>;
		pinctrl-names = "default";
		pinctrl-0 = <&ucam_rst>;

		clocks = <&cru SCLK_TESTCLKOUT1>;
		clock-names = "xvclk";

		avdd-supply = <&pp2800_cam>;
		dovdd-supply = <&pp1800_s0>;
		dvdd-supply = <&pp1800_s0>;
		reset-gpios = <&gpio2 3 GPIO_ACTIVE_LOW>;

		port {
			ucam_out: endpoint {
				remote-endpoint = <&mipi_in_ucam>;
				data-lanes = <1>;
			};
		};
	};
};

&cdn_dp {
	extcon = <&usbc_extcon0>;
	phys = <&tcphy0_dp>;
};

&cpu_alert0 {
	temperature = <66000>;
};

&cpu_alert1 {
	temperature = <71000>;
};

&cros_ec {
	interrupt-parent = <&gpio1>;
	interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
};

&cru {
	assigned-clocks =
		<&cru PLL_GPLL>, <&cru PLL_CPLL>,
		<&cru PLL_NPLL>,
		<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
		<&cru PCLK_PERIHP>,
		<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
		<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
		<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
		<&cru ACLK_VIO>,
		<&cru ACLK_GIC_PRE>,
		<&cru PCLK_DDR>,
		<&cru ACLK_HDCP>,
		<&cru ACLK_VDU>;
	assigned-clock-rates =
		<600000000>, <1600000000>,
		<1000000000>,
		<150000000>, <75000000>,
		<37500000>,
		<100000000>, <100000000>,
		<50000000>, <800000000>,
		<100000000>, <50000000>,
		<400000000>,
		<200000000>,
		<200000000>,
		<400000000>,
		<400000000>;
};

/* The center supply is fixed to .9V on scarlet */
&dmc {
	center-supply = <&pp900_s0>;
};

/* We don't need .925 V for 928 MHz on scarlet */
&dmc_opp_table {
	opp03 {
		opp-microvolt = <900000>;
	};
};

&gpio0 {
	gpio-line-names = /* GPIO0 A 0-7 */
			  "CLK_32K_AP",
			  "EC_IN_RW_OD",
			  "SPK_PA_EN",
			  "WLAN_PERST_1V8_L",
			  "WLAN_PD_1V8_L",
			  "WLAN_RF_KILL_1V8_L",
			  "BIGCPU_DVS_PWM",
			  "SD_CD_L_JTAG_EN",

			  /* GPIO0 B 0-5 */
			  "BT_EN_BT_RF_KILL_1V8_L",
			  "PMUIO2_33_18_L_PP3300_S0_EN",
			  "TOUCH_RESET_L",
			  "AP_EC_WARM_RESET_REQ",
			  "PEN_RESET_L",
			  /*
			   * AP_FLASH_WP_L is crossystem ABI. Schematics call
			   * it AP_FLASH_WP_R_ODL.
			   */
			  "AP_FLASH_WP_L";
};

&gpio1 {
	gpio-line-names = /* GPIO1 A 0-7 */
			  "PEN_INT_ODL",
			  "PEN_EJECT_ODL",
			  "BT_HOST_WAKE_1V8_L",
			  "WLAN_HOST_WAKE_1V8_L",
			  "TOUCH_INT_ODL",
			  "AP_EC_S3_S0_L",
			  "AP_EC_OVERTEMP",
			  "AP_SPI_FLASH_MISO",

			  /* GPIO1 B 0-7 */
			  "AP_SPI_FLASH_MOSI_R",
			  "AP_SPI_FLASH_CLK_R",
			  "AP_SPI_FLASH_CS_L_R",
			  "SD_CARD_DET_ODL",
			  "",
			  "AP_EXPANSION_IO1",
			  "AP_EXPANSION_IO2",
			  "AP_I2C_DISP_SDA",

			  /* GPIO1 C 0-7 */
			  "AP_I2C_DISP_SCL",
			  "H1_INT_ODL",
			  "EC_AP_INT_ODL",
			  "LITCPU_DVS_PWM",
			  "AP_I2C_AUDIO_SDA",
			  "AP_I2C_AUDIO_SCL",
			  "AP_EXPANSION_IO3",
			  "HEADSET_INT_ODL",

			  /* GPIO1 D0 */
			  "AP_EXPANSION_IO4";
};

&gpio2 {
	gpio-line-names = /* GPIO2 A 0-7 */
			  "AP_I2C_PEN_SDA",
			  "AP_I2C_PEN_SCL",
			  "SD_IO_PWR_EN",
			  "UCAM_RST_L",
			  "PP1250_CAM_EN",
			  "WCAM_RST_L",
			  "AP_EXPANSION_IO5",
			  "AP_I2C_CAM_SDA",

			  /* GPIO2 B 0-7 */
			  "AP_I2C_CAM_SCL",
			  "AP_H1_SPI_MISO",
			  "AP_H1_SPI_MOSI",
			  "AP_H1_SPI_CLK",
			  "AP_H1_SPI_CS_L",
			  "",
			  "",
			  "",

			  /* GPIO2 C 0-7 */
			  "UART_EXPANSION_TX_AP_RX",
			  "UART_AP_TX_EXPANSION_RX",
			  "UART_EXPANSION_RTS_AP_CTS",
			  "UART_AP_RTS_EXPANSION_CTS",
			  "AP_SPI_EC_MISO",
			  "AP_SPI_EC_MOSI",
			  "AP_SPI_EC_CLK",
			  "AP_SPI_EC_CS_L",

			  /* GPIO2 D 0-4 */
			  "PP2800_CAM_EN",
			  "CLK_24M_CAM",
			  "WLAN_PCIE_CLKREQ_1V8_L",
			  "",
			  "SD_PWR_3000_1800_L";
};

&gpio3 {
	gpio-line-names = /* GPIO3 A 0-7 */
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",

			  /* GPIO3 B 0-7 */
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",

			  /* GPIO3 C 0-7 */
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",

			  /* GPIO3 D 0-7 */
			  "I2S0_SCLK",
			  "I2S0_LRCK_RX",
			  "I2S0_LRCK_TX",
			  "I2S0_SDI_0",
			  "STRAP_LCDBIAS_L",
			  "STRAP_FEATURE_1",
			  "STRAP_FEATURE_2",
			  "I2S0_SDO_0";
};

&gpio4 {
	gpio-line-names = /* GPIO4 A 0-7 */
			  "I2S_MCLK",
			  "AP_I2C_EXPANSION_SDA",
			  "AP_I2C_EXPANSION_SCL",
			  "DMIC_EN",
			  "",
			  "",
			  "",
			  "",

			  /* GPIO4 B 0-7 */
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",
			  "",

			  /* GPIO4 C 0-7 */
			  "AP_I2C_TS_SDA",
			  "AP_I2C_TS_SCL",
			  "GPU_DVS_PWM",
			  "UART_DBG_TX_AP_RX",
			  "UART_AP_TX_DBG_RX",
			  "BL_EN",
			  "BL_PWM",
			  "",

			  /* GPIO4 D 0-5 */
			  "",
			  "DISPLAY_RST_L",
			  "",
			  "PPVARP_LCD_EN",
			  "PPVARN_LCD_EN",
			  "SD_SLOT_PWR_EN";
};

&i2c_tunnel {
	google,remote-bus = <0>;
};

&io_domains {
	bt656-supply = <&pp1800_s0>;		/* APIO2_VDD;  2a 2b */
	audio-supply = <&pp1800_s0>;		/* APIO5_VDD;  3d 4a */
	gpio1830-supply = <&pp1800_s0>;		/* APIO4_VDD;  4c 4d */
};

&isp0 {
	status = "okay";

	ports {
		port@0 {
			mipi_in_wcam: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&wcam_out>;
				data-lanes = <1 2>;
			};

			mipi_in_ucam: endpoint@1 {
				reg = <1>;
				remote-endpoint = <&ucam_out>;
				data-lanes = <1>;
			};
		};
	};
};

&isp0_mmu {
	status = "okay";
};

&max98357a {
	sdmode-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
};

&mipi_dphy_rx0 {
	status = "okay";
};

&mipi_dsi {
	status = "okay";
	clock-master;

	ports {
		mipi_out: port@1 {
			reg = <1>;

			mipi_out_panel: endpoint {
				remote-endpoint = <&mipi_in_panel>;
			};
		};
	};

	mipi_panel: panel@0 {
		/* 2 different panels are used, compatibles are in dts files */
		reg = <0>;
		backlight = <&backlight>;
		enable-gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&display_rst_l>;

		ports {
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				reg = <0>;

				mipi_in_panel: endpoint {
					remote-endpoint = <&mipi_out_panel>;
				};
			};

			port@1 {
				reg = <1>;

				mipi1_in_panel: endpoint@1 {
					remote-endpoint = <&mipi1_out_panel>;
				};
			};
		};
	};
};

&mipi_dsi1 {
	status = "okay";

	ports {
		mipi1_out: port@1 {
			reg = <1>;

			mipi1_out_panel: endpoint {
				remote-endpoint = <&mipi1_in_panel>;
			};
		};
	};
};

&pcie0 {
	ep-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;

	/* PERST# asserted in S3 */
	pcie-reset-suspend = <1>;

	vpcie3v3-supply = <&wlan_3v3>;
	vpcie1v8-supply = <&pp1800_pcie>;
};

&sdmmc {
	cd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
};

&sound {
	rockchip,codec = <&max98357a &dmic &codec &cdn_dp>;
};

&spi2 {
	status = "okay";

	tpm@0 {
		compatible = "google,cr50";
		reg = <0>;
		interrupt-parent = <&gpio1>;
		interrupts = <17 IRQ_TYPE_EDGE_RISING>;
		pinctrl-names = "default";
		pinctrl-0 = <&h1_int_od_l>;
		spi-max-frequency = <800000>;
	};
};

&usb_host0_ohci {
	#address-cells = <1>;
	#size-cells = <0>;

	qca_bt: bluetooth@1 {
		compatible = "usbcf3,e300", "usb4ca,301a";
		reg = <1>;
		pinctrl-names = "default";
		pinctrl-0 = <&bt_host_wake_l>;
		interrupt-parent = <&gpio1>;
		interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "wakeup";
	};
};

/* PINCTRL OVERRIDES */
&ap_fw_wp {
	rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
};

&bl_en {
	rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
};

&bt_host_wake_l {
	rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
};

&ec_ap_int_l {
	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
};

&headset_int_l {
	rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
};

&i2s0_8ch_bus {
	rockchip,pins =
		<3 RK_PD0 1 &pcfg_pull_none_6ma>,
		<3 RK_PD1 1 &pcfg_pull_none_6ma>,
		<3 RK_PD2 1 &pcfg_pull_none_6ma>,
		<3 RK_PD3 1 &pcfg_pull_none_6ma>,
		<3 RK_PD7 1 &pcfg_pull_none_6ma>,
		<4 RK_PA0 1 &pcfg_pull_none_6ma>;
};

&i2s0_8ch_bus_bclk_off {
	rockchip,pins =
		<3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none_6ma>,
		<3 RK_PD1 1 &pcfg_pull_none_6ma>,
		<3 RK_PD2 1 &pcfg_pull_none_6ma>,
		<3 RK_PD3 1 &pcfg_pull_none_6ma>,
		<3 RK_PD7 1 &pcfg_pull_none_6ma>,
		<4 RK_PA0 1 &pcfg_pull_none_6ma>;
};

/* there is no external pull up, so need to set this pin pull up */
&sdmmc_cd_pin {
	rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
};

&sd_pwr_1800_sel {
	rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
};

&sdmode_en {
	rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>;
};

&touch_reset_l {
	rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
};

&touch_int_l {
	rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
};

&pinctrl {
	pinctrl-0 = <
		&ap_pwroff	/* AP will auto-assert this when in S3 */
		&clk_32k	/* This pin is always 32k on gru boards */
		&wlan_rf_kill_1v8_l
	>;

	pcfg_pull_none_6ma: pcfg-pull-none-6ma {
		bias-disable;
		drive-strength = <6>;
	};

	camera {
		pp1250_cam_en: pp1250-dvdd {
			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		pp2800_cam_en: pp2800-avdd {
			rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		ucam_rst: ucam_rst {
			rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		wcam_rst: wcam_rst {
			rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	digitizer {
		pen_int_odl: pen-int-odl {
			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
		};

		pen_reset_l: pen-reset-l {
			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	discrete-regulators {
		display_rst_l: display-rst-l {
			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_down>;
		};

		ppvarp_lcd_en: ppvarp-lcd-en {
			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
		};

		ppvarn_lcd_en: ppvarn-lcd-en {
			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	dmic {
		dmic_en: dmic-en {
			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	pen {
		pen_eject_odl: pen-eject-odl {
			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};

	tpm {
		h1_int_od_l: h1-int-od-l {
			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
		};
	};
};

&wifi {
	bt_en_1v8_l: bt-en-1v8-l {
		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
	};

	wlan_pd_1v8_l: wlan-pd-1v8-l {
		rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
	};

	/* Default pull-up, but just to be clear */
	wlan_rf_kill_1v8_l: wlan-rf-kill-1v8-l {
		rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
	};

	wifi_perst_l: wifi-perst-l {
		rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
	};

	wlan_host_wake_l: wlan-host-wake-l {
		rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
	};
};
