// 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>;
		pwm-delay-us = <10000>;
	};

	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";

	cr50@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 */
&ec_ap_int_l {
	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
};

&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>;
};

/* 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>;
	};
};
