162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Google Gru-Chromebook shared properties
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright 2018 Google, Inc
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include "rk3399-gru.dtsi"
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/ {
1162306a36Sopenharmony_ci	pp900_ap: pp900-ap {
1262306a36Sopenharmony_ci		compatible = "regulator-fixed";
1362306a36Sopenharmony_ci		regulator-name = "pp900_ap";
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci		/* EC turns on w/ pp900_ap_en; always on for AP */
1662306a36Sopenharmony_ci		regulator-always-on;
1762306a36Sopenharmony_ci		regulator-boot-on;
1862306a36Sopenharmony_ci		regulator-min-microvolt = <900000>;
1962306a36Sopenharmony_ci		regulator-max-microvolt = <900000>;
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci		vin-supply = <&ppvar_sys>;
2262306a36Sopenharmony_ci	};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	/* EC turns on w/ pp900_usb_en */
2562306a36Sopenharmony_ci	pp900_usb: pp900-ap {
2662306a36Sopenharmony_ci	};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci	/* EC turns on w/ pp900_pcie_en */
2962306a36Sopenharmony_ci	pp900_pcie: pp900-ap {
3062306a36Sopenharmony_ci	};
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci	pp3000: pp3000 {
3362306a36Sopenharmony_ci		compatible = "regulator-fixed";
3462306a36Sopenharmony_ci		regulator-name = "pp3000";
3562306a36Sopenharmony_ci		pinctrl-names = "default";
3662306a36Sopenharmony_ci		pinctrl-0 = <&pp3000_en>;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci		enable-active-high;
3962306a36Sopenharmony_ci		gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci		regulator-always-on;
4262306a36Sopenharmony_ci		regulator-boot-on;
4362306a36Sopenharmony_ci		regulator-min-microvolt = <3000000>;
4462306a36Sopenharmony_ci		regulator-max-microvolt = <3000000>;
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci		vin-supply = <&ppvar_sys>;
4762306a36Sopenharmony_ci	};
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
5062306a36Sopenharmony_ci		compatible = "pwm-regulator";
5162306a36Sopenharmony_ci		regulator-name = "ppvar_centerlogic_pwm";
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci		pwms = <&pwm3 0 3337 0>;
5462306a36Sopenharmony_ci		pwm-supply = <&ppvar_sys>;
5562306a36Sopenharmony_ci		pwm-dutycycle-range = <100 0>;
5662306a36Sopenharmony_ci		pwm-dutycycle-unit = <100>;
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		/* EC turns on w/ ppvar_centerlogic_en; always on for AP */
5962306a36Sopenharmony_ci		regulator-always-on;
6062306a36Sopenharmony_ci		regulator-boot-on;
6162306a36Sopenharmony_ci		regulator-min-microvolt = <799434>;
6262306a36Sopenharmony_ci		regulator-max-microvolt = <1049925>;
6362306a36Sopenharmony_ci	};
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	ppvar_centerlogic: ppvar-centerlogic {
6662306a36Sopenharmony_ci		compatible = "vctrl-regulator";
6762306a36Sopenharmony_ci		regulator-name = "ppvar_centerlogic";
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci		regulator-min-microvolt = <799434>;
7062306a36Sopenharmony_ci		regulator-max-microvolt = <1049925>;
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		ctrl-supply = <&ppvar_centerlogic_pwm>;
7362306a36Sopenharmony_ci		ctrl-voltage-range = <799434 1049925>;
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci		regulator-settling-time-up-us = <378>;
7662306a36Sopenharmony_ci		min-slew-down-rate = <225>;
7762306a36Sopenharmony_ci		ovp-threshold-percent = <16>;
7862306a36Sopenharmony_ci	};
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci	/* Schematics call this PPVAR even though it's fixed */
8162306a36Sopenharmony_ci	ppvar_logic: ppvar-logic {
8262306a36Sopenharmony_ci		compatible = "regulator-fixed";
8362306a36Sopenharmony_ci		regulator-name = "ppvar_logic";
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci		/* EC turns on w/ ppvar_logic_en; always on for AP */
8662306a36Sopenharmony_ci		regulator-always-on;
8762306a36Sopenharmony_ci		regulator-boot-on;
8862306a36Sopenharmony_ci		regulator-min-microvolt = <900000>;
8962306a36Sopenharmony_ci		regulator-max-microvolt = <900000>;
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		vin-supply = <&ppvar_sys>;
9262306a36Sopenharmony_ci	};
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci	pp1800_audio: pp1800-audio {
9562306a36Sopenharmony_ci		compatible = "regulator-fixed";
9662306a36Sopenharmony_ci		regulator-name = "pp1800_audio";
9762306a36Sopenharmony_ci		pinctrl-names = "default";
9862306a36Sopenharmony_ci		pinctrl-0 = <&pp1800_audio_en>;
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci		enable-active-high;
10162306a36Sopenharmony_ci		gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci		regulator-always-on;
10462306a36Sopenharmony_ci		regulator-boot-on;
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci		vin-supply = <&pp1800>;
10762306a36Sopenharmony_ci	};
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	/* gpio is shared with pp3300_wifi_bt */
11062306a36Sopenharmony_ci	pp1800_pcie: pp1800-pcie {
11162306a36Sopenharmony_ci		compatible = "regulator-fixed";
11262306a36Sopenharmony_ci		regulator-name = "pp1800_pcie";
11362306a36Sopenharmony_ci		pinctrl-names = "default";
11462306a36Sopenharmony_ci		pinctrl-0 = <&wlan_module_pd_l>;
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci		enable-active-high;
11762306a36Sopenharmony_ci		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci		/*
12062306a36Sopenharmony_ci		 * Need to wait 1ms + ramp-up time before we can power on WiFi.
12162306a36Sopenharmony_ci		 * This has been approximated as 8ms total.
12262306a36Sopenharmony_ci		 */
12362306a36Sopenharmony_ci		regulator-enable-ramp-delay = <8000>;
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci		vin-supply = <&pp1800>;
12662306a36Sopenharmony_ci	};
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci	/* Always on; plain and simple */
12962306a36Sopenharmony_ci	pp3000_ap: pp3000_emmc: pp3000 {
13062306a36Sopenharmony_ci	};
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_ci	pp1500_ap_io: pp1500-ap-io {
13362306a36Sopenharmony_ci		compatible = "regulator-fixed";
13462306a36Sopenharmony_ci		regulator-name = "pp1500_ap_io";
13562306a36Sopenharmony_ci		pinctrl-names = "default";
13662306a36Sopenharmony_ci		pinctrl-0 = <&pp1500_en>;
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci		enable-active-high;
13962306a36Sopenharmony_ci		gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci		regulator-always-on;
14262306a36Sopenharmony_ci		regulator-boot-on;
14362306a36Sopenharmony_ci		regulator-min-microvolt = <1500000>;
14462306a36Sopenharmony_ci		regulator-max-microvolt = <1500000>;
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci		vin-supply = <&pp1800>;
14762306a36Sopenharmony_ci	};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	pp3300_disp: pp3300-disp {
15062306a36Sopenharmony_ci		compatible = "regulator-fixed";
15162306a36Sopenharmony_ci		regulator-name = "pp3300_disp";
15262306a36Sopenharmony_ci		pinctrl-names = "default";
15362306a36Sopenharmony_ci		pinctrl-0 = <&pp3300_disp_en>;
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci		enable-active-high;
15662306a36Sopenharmony_ci		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci		startup-delay-us = <2000>;
15962306a36Sopenharmony_ci		vin-supply = <&pp3300>;
16062306a36Sopenharmony_ci	};
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci	/* EC turns on w/ pp3300_usb_en_l */
16362306a36Sopenharmony_ci	pp3300_usb: pp3300 {
16462306a36Sopenharmony_ci	};
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci	/* gpio is shared with pp1800_pcie and pinctrl is set there */
16762306a36Sopenharmony_ci	pp3300_wifi_bt: pp3300-wifi-bt {
16862306a36Sopenharmony_ci		compatible = "regulator-fixed";
16962306a36Sopenharmony_ci		regulator-name = "pp3300_wifi_bt";
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci		enable-active-high;
17262306a36Sopenharmony_ci		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci		vin-supply = <&pp3300>;
17562306a36Sopenharmony_ci	};
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ci	/*
17862306a36Sopenharmony_ci	 * This is a bit of a hack. The WiFi module should be reset at least
17962306a36Sopenharmony_ci	 * 1ms after its regulators have ramped up (max rampup time is ~7ms).
18062306a36Sopenharmony_ci	 * With some stretching of the imagination, we can call the 1.8V
18162306a36Sopenharmony_ci	 * regulator a supply.
18262306a36Sopenharmony_ci	 */
18362306a36Sopenharmony_ci	wlan_pd_n: wlan-pd-n {
18462306a36Sopenharmony_ci		compatible = "regulator-fixed";
18562306a36Sopenharmony_ci		regulator-name = "wlan_pd_n";
18662306a36Sopenharmony_ci		pinctrl-names = "default";
18762306a36Sopenharmony_ci		pinctrl-0 = <&wlan_module_reset_l>;
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci		enable-active-high;
19062306a36Sopenharmony_ci		gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
19162306a36Sopenharmony_ci
19262306a36Sopenharmony_ci		vin-supply = <&pp1800_pcie>;
19362306a36Sopenharmony_ci	};
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci	backlight: backlight {
19662306a36Sopenharmony_ci		compatible = "pwm-backlight";
19762306a36Sopenharmony_ci		enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
19862306a36Sopenharmony_ci		power-supply = <&pp3300_disp>;
19962306a36Sopenharmony_ci		pinctrl-names = "default";
20062306a36Sopenharmony_ci		pinctrl-0 = <&bl_en>;
20162306a36Sopenharmony_ci	};
20262306a36Sopenharmony_ci
20362306a36Sopenharmony_ci	gpio_keys: gpio-keys {
20462306a36Sopenharmony_ci		compatible = "gpio-keys";
20562306a36Sopenharmony_ci		pinctrl-names = "default";
20662306a36Sopenharmony_ci		pinctrl-0 = <&bt_host_wake_l>;
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ci		wake_on_bt: key-wake-on-bt {
20962306a36Sopenharmony_ci			label = "Wake-on-Bluetooth";
21062306a36Sopenharmony_ci			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
21162306a36Sopenharmony_ci			linux,code = <KEY_WAKEUP>;
21262306a36Sopenharmony_ci			wakeup-source;
21362306a36Sopenharmony_ci		};
21462306a36Sopenharmony_ci	};
21562306a36Sopenharmony_ci};
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ci&ppvar_bigcpu {
21862306a36Sopenharmony_ci	min-slew-down-rate = <225>;
21962306a36Sopenharmony_ci	ovp-threshold-percent = <16>;
22062306a36Sopenharmony_ci};
22162306a36Sopenharmony_ci
22262306a36Sopenharmony_ci&ppvar_litcpu {
22362306a36Sopenharmony_ci	min-slew-down-rate = <225>;
22462306a36Sopenharmony_ci	ovp-threshold-percent = <16>;
22562306a36Sopenharmony_ci};
22662306a36Sopenharmony_ci
22762306a36Sopenharmony_ci&ppvar_gpu {
22862306a36Sopenharmony_ci	min-slew-down-rate = <225>;
22962306a36Sopenharmony_ci	ovp-threshold-percent = <16>;
23062306a36Sopenharmony_ci};
23162306a36Sopenharmony_ci
23262306a36Sopenharmony_ci&cdn_dp {
23362306a36Sopenharmony_ci	extcon = <&usbc_extcon0>, <&usbc_extcon1>;
23462306a36Sopenharmony_ci};
23562306a36Sopenharmony_ci
23662306a36Sopenharmony_ci&dmc {
23762306a36Sopenharmony_ci	center-supply = <&ppvar_centerlogic>;
23862306a36Sopenharmony_ci	rockchip,pd-idle-dis-freq-hz = <800000000>;
23962306a36Sopenharmony_ci	rockchip,sr-idle-dis-freq-hz = <800000000>;
24062306a36Sopenharmony_ci	rockchip,sr-mc-gate-idle-dis-freq-hz = <800000000>;
24162306a36Sopenharmony_ci};
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci&edp {
24462306a36Sopenharmony_ci	status = "okay";
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci	/*
24762306a36Sopenharmony_ci	 * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only
24862306a36Sopenharmony_ci	 * set this here, because rk3399-gru.dtsi ensures we can generate this
24962306a36Sopenharmony_ci	 * off GPLL=600MHz, whereas some other RK3399 boards may not.
25062306a36Sopenharmony_ci	 */
25162306a36Sopenharmony_ci	assigned-clocks = <&cru PCLK_EDP>;
25262306a36Sopenharmony_ci	assigned-clock-rates = <24000000>;
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci	ports {
25562306a36Sopenharmony_ci		edp_out: port@1 {
25662306a36Sopenharmony_ci			reg = <1>;
25762306a36Sopenharmony_ci			#address-cells = <1>;
25862306a36Sopenharmony_ci			#size-cells = <0>;
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci			edp_out_panel: endpoint@0 {
26162306a36Sopenharmony_ci				reg = <0>;
26262306a36Sopenharmony_ci				remote-endpoint = <&panel_in_edp>;
26362306a36Sopenharmony_ci			};
26462306a36Sopenharmony_ci		};
26562306a36Sopenharmony_ci	};
26662306a36Sopenharmony_ci};
26762306a36Sopenharmony_ci
26862306a36Sopenharmony_ci&gpio0 {
26962306a36Sopenharmony_ci	gpio-line-names = /* GPIO0 A 0-7 */
27062306a36Sopenharmony_ci			  "AP_RTC_CLK_IN",
27162306a36Sopenharmony_ci			  "EC_AP_INT_L",
27262306a36Sopenharmony_ci			  "PP1800_AUDIO_EN",
27362306a36Sopenharmony_ci			  "BT_HOST_WAKE_L",
27462306a36Sopenharmony_ci			  "WLAN_MODULE_PD_L",
27562306a36Sopenharmony_ci			  "H1_INT_OD_L",
27662306a36Sopenharmony_ci			  "CENTERLOGIC_DVS_PWM",
27762306a36Sopenharmony_ci			  "",
27862306a36Sopenharmony_ci
27962306a36Sopenharmony_ci			  /* GPIO0 B 0-4 */
28062306a36Sopenharmony_ci			  "WIFI_HOST_WAKE_L",
28162306a36Sopenharmony_ci			  "PMUIO2_33_18_L",
28262306a36Sopenharmony_ci			  "PP1500_EN",
28362306a36Sopenharmony_ci			  "AP_EC_WARM_RESET_REQ",
28462306a36Sopenharmony_ci			  "PP3000_EN";
28562306a36Sopenharmony_ci};
28662306a36Sopenharmony_ci
28762306a36Sopenharmony_ci&gpio1 {
28862306a36Sopenharmony_ci	gpio-line-names = /* GPIO1 A 0-7 */
28962306a36Sopenharmony_ci			  "",
29062306a36Sopenharmony_ci			  "",
29162306a36Sopenharmony_ci			  "SPK_PA_EN",
29262306a36Sopenharmony_ci			  "",
29362306a36Sopenharmony_ci			  "TRACKPAD_INT_L",
29462306a36Sopenharmony_ci			  "AP_EC_S3_S0_L",
29562306a36Sopenharmony_ci			  "AP_EC_OVERTEMP",
29662306a36Sopenharmony_ci			  "AP_SPI_FLASH_MISO",
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci			  /* GPIO1 B 0-7 */
29962306a36Sopenharmony_ci			  "AP_SPI_FLASH_MOSI_R",
30062306a36Sopenharmony_ci			  "AP_SPI_FLASH_CLK_R",
30162306a36Sopenharmony_ci			  "AP_SPI_FLASH_CS_L_R",
30262306a36Sopenharmony_ci			  "WLAN_MODULE_RESET_L",
30362306a36Sopenharmony_ci			  "WIFI_DISABLE_L",
30462306a36Sopenharmony_ci			  "MIC_INT",
30562306a36Sopenharmony_ci			  "",
30662306a36Sopenharmony_ci			  "AP_I2C_DVS_SDA",
30762306a36Sopenharmony_ci
30862306a36Sopenharmony_ci			  /* GPIO1 C 0-7 */
30962306a36Sopenharmony_ci			  "AP_I2C_DVS_SCL",
31062306a36Sopenharmony_ci			  "AP_BL_EN",
31162306a36Sopenharmony_ci			  /*
31262306a36Sopenharmony_ci			   * AP_FLASH_WP is crossystem ABI. Schematics call it
31362306a36Sopenharmony_ci			   * AP_FW_WP or CPU1_FW_WP, depending on the variant.
31462306a36Sopenharmony_ci			   */
31562306a36Sopenharmony_ci			  "AP_FLASH_WP",
31662306a36Sopenharmony_ci			  "LITCPU_DVS_PWM",
31762306a36Sopenharmony_ci			  "AP_I2C_AUDIO_SDA",
31862306a36Sopenharmony_ci			  "AP_I2C_AUDIO_SCL",
31962306a36Sopenharmony_ci			  "",
32062306a36Sopenharmony_ci			  "HEADSET_INT_L";
32162306a36Sopenharmony_ci};
32262306a36Sopenharmony_ci
32362306a36Sopenharmony_ci&gpio2 {
32462306a36Sopenharmony_ci	gpio-line-names = /* GPIO2 A 0-7 */
32562306a36Sopenharmony_ci			  "",
32662306a36Sopenharmony_ci			  "",
32762306a36Sopenharmony_ci			  "SD_IO_PWR_EN",
32862306a36Sopenharmony_ci			  "",
32962306a36Sopenharmony_ci			  "",
33062306a36Sopenharmony_ci			  "",
33162306a36Sopenharmony_ci			  "",
33262306a36Sopenharmony_ci			  "",
33362306a36Sopenharmony_ci
33462306a36Sopenharmony_ci			  /* GPIO2 B 0-7 */
33562306a36Sopenharmony_ci			  "",
33662306a36Sopenharmony_ci			  "",
33762306a36Sopenharmony_ci			  "",
33862306a36Sopenharmony_ci			  "",
33962306a36Sopenharmony_ci			  "",
34062306a36Sopenharmony_ci			  "",
34162306a36Sopenharmony_ci			  "",
34262306a36Sopenharmony_ci			  "",
34362306a36Sopenharmony_ci
34462306a36Sopenharmony_ci			  /* GPIO2 C 0-7 */
34562306a36Sopenharmony_ci			  "",
34662306a36Sopenharmony_ci			  "",
34762306a36Sopenharmony_ci			  "",
34862306a36Sopenharmony_ci			  "",
34962306a36Sopenharmony_ci			  "AP_SPI_EC_MISO",
35062306a36Sopenharmony_ci			  "AP_SPI_EC_MOSI",
35162306a36Sopenharmony_ci			  "AP_SPI_EC_CLK",
35262306a36Sopenharmony_ci			  "AP_SPI_EC_CS_L",
35362306a36Sopenharmony_ci
35462306a36Sopenharmony_ci			  /* GPIO2 D 0-4 */
35562306a36Sopenharmony_ci			  "BT_DEV_WAKE_L",
35662306a36Sopenharmony_ci			  "",
35762306a36Sopenharmony_ci			  "WIFI_PCIE_CLKREQ_L",
35862306a36Sopenharmony_ci			  "WIFI_PERST_L",
35962306a36Sopenharmony_ci			  "SD_PWR_3000_1800_L";
36062306a36Sopenharmony_ci};
36162306a36Sopenharmony_ci
36262306a36Sopenharmony_ci&gpio3 {
36362306a36Sopenharmony_ci	gpio-line-names = /* GPIO3 A 0-7 */
36462306a36Sopenharmony_ci			  "",
36562306a36Sopenharmony_ci			  "",
36662306a36Sopenharmony_ci			  "",
36762306a36Sopenharmony_ci			  "",
36862306a36Sopenharmony_ci			  "AP_SPI_TPM_MISO",
36962306a36Sopenharmony_ci			  "AP_SPI_TPM_MOSI_R",
37062306a36Sopenharmony_ci			  "AP_SPI_TPM_CLK_R",
37162306a36Sopenharmony_ci			  "AP_SPI_TPM_CS_L_R",
37262306a36Sopenharmony_ci
37362306a36Sopenharmony_ci			  /* GPIO3 B 0-7 */
37462306a36Sopenharmony_ci			  "EC_IN_RW",
37562306a36Sopenharmony_ci			  "",
37662306a36Sopenharmony_ci			  "AP_I2C_TP_SDA",
37762306a36Sopenharmony_ci			  "AP_I2C_TP_SCL",
37862306a36Sopenharmony_ci			  "AP_I2C_TP_PU_EN",
37962306a36Sopenharmony_ci			  "TOUCH_INT_L",
38062306a36Sopenharmony_ci			  "",
38162306a36Sopenharmony_ci			  "",
38262306a36Sopenharmony_ci
38362306a36Sopenharmony_ci			  /* GPIO3 C 0-7 */
38462306a36Sopenharmony_ci			  "",
38562306a36Sopenharmony_ci			  "",
38662306a36Sopenharmony_ci			  "",
38762306a36Sopenharmony_ci			  "",
38862306a36Sopenharmony_ci			  "",
38962306a36Sopenharmony_ci			  "",
39062306a36Sopenharmony_ci			  "",
39162306a36Sopenharmony_ci			  "",
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci			  /* GPIO3 D 0-7 */
39462306a36Sopenharmony_ci			  "I2S0_SCLK",
39562306a36Sopenharmony_ci			  "I2S0_LRCK_RX",
39662306a36Sopenharmony_ci			  "I2S0_LRCK_TX",
39762306a36Sopenharmony_ci			  "I2S0_SDI_0",
39862306a36Sopenharmony_ci			  "I2S0_SDI_1",
39962306a36Sopenharmony_ci			  "",
40062306a36Sopenharmony_ci			  "I2S0_SDO_1",
40162306a36Sopenharmony_ci			  "I2S0_SDO_0";
40262306a36Sopenharmony_ci};
40362306a36Sopenharmony_ci
40462306a36Sopenharmony_ci&gpio4 {
40562306a36Sopenharmony_ci	gpio-line-names = /* GPIO4 A 0-7 */
40662306a36Sopenharmony_ci			  "I2S_MCLK",
40762306a36Sopenharmony_ci			  "AP_I2C_MIC_SDA",
40862306a36Sopenharmony_ci			  "AP_I2C_MIC_SCL",
40962306a36Sopenharmony_ci			  "",
41062306a36Sopenharmony_ci			  "",
41162306a36Sopenharmony_ci			  "",
41262306a36Sopenharmony_ci			  "",
41362306a36Sopenharmony_ci			  "",
41462306a36Sopenharmony_ci
41562306a36Sopenharmony_ci			  /* GPIO4 B 0-7 */
41662306a36Sopenharmony_ci			  "",
41762306a36Sopenharmony_ci			  "",
41862306a36Sopenharmony_ci			  "",
41962306a36Sopenharmony_ci			  "",
42062306a36Sopenharmony_ci			  "",
42162306a36Sopenharmony_ci			  "",
42262306a36Sopenharmony_ci			  "",
42362306a36Sopenharmony_ci			  "",
42462306a36Sopenharmony_ci
42562306a36Sopenharmony_ci			  /* GPIO4 C 0-7 */
42662306a36Sopenharmony_ci			  "AP_I2C_TS_SDA",
42762306a36Sopenharmony_ci			  "AP_I2C_TS_SCL",
42862306a36Sopenharmony_ci			  "GPU_DVS_PWM",
42962306a36Sopenharmony_ci			  "UART_DBG_TX_AP_RX",
43062306a36Sopenharmony_ci			  "UART_AP_TX_DBG_RX",
43162306a36Sopenharmony_ci			  "",
43262306a36Sopenharmony_ci			  "BIGCPU_DVS_PWM",
43362306a36Sopenharmony_ci			  "EDP_HPD_3V0",
43462306a36Sopenharmony_ci
43562306a36Sopenharmony_ci			  /* GPIO4 D 0-5 */
43662306a36Sopenharmony_ci			  "SD_CARD_DET_L",
43762306a36Sopenharmony_ci			  "USB_DP_HPD",
43862306a36Sopenharmony_ci			  "TOUCH_RESET_L",
43962306a36Sopenharmony_ci			  "PP3300_DISP_EN",
44062306a36Sopenharmony_ci			  "",
44162306a36Sopenharmony_ci			  "SD_SLOT_PWR_EN";
44262306a36Sopenharmony_ci};
44362306a36Sopenharmony_ci
44462306a36Sopenharmony_ciap_i2c_mic: &i2c1 {
44562306a36Sopenharmony_ci	status = "okay";
44662306a36Sopenharmony_ci
44762306a36Sopenharmony_ci	clock-frequency = <400000>;
44862306a36Sopenharmony_ci
44962306a36Sopenharmony_ci	/* These are relatively safe rise/fall times */
45062306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
45162306a36Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ci	headsetcodec: rt5514@57 {
45462306a36Sopenharmony_ci		compatible = "realtek,rt5514";
45562306a36Sopenharmony_ci		reg = <0x57>;
45662306a36Sopenharmony_ci		realtek,dmic-init-delay-ms = <20>;
45762306a36Sopenharmony_ci	};
45862306a36Sopenharmony_ci};
45962306a36Sopenharmony_ci
46062306a36Sopenharmony_ciap_i2c_tp: &i2c5 {
46162306a36Sopenharmony_ci	status = "okay";
46262306a36Sopenharmony_ci
46362306a36Sopenharmony_ci	clock-frequency = <400000>;
46462306a36Sopenharmony_ci
46562306a36Sopenharmony_ci	/* These are relatively safe rise/fall times */
46662306a36Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
46762306a36Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
46862306a36Sopenharmony_ci
46962306a36Sopenharmony_ci	/*
47062306a36Sopenharmony_ci	 * Note strange pullup enable.  Apparently this avoids leakage but
47162306a36Sopenharmony_ci	 * still allows us to get nice 4.7K pullups for high speed i2c
47262306a36Sopenharmony_ci	 * transfers.  Basically we want the pullup on whenever the ap is
47362306a36Sopenharmony_ci	 * alive, so the "en" pin just gets set to output high.
47462306a36Sopenharmony_ci	 */
47562306a36Sopenharmony_ci	pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
47662306a36Sopenharmony_ci};
47762306a36Sopenharmony_ci
47862306a36Sopenharmony_ci&cros_ec {
47962306a36Sopenharmony_ci	cros_ec_pwm: pwm {
48062306a36Sopenharmony_ci		compatible = "google,cros-ec-pwm";
48162306a36Sopenharmony_ci		#pwm-cells = <1>;
48262306a36Sopenharmony_ci	};
48362306a36Sopenharmony_ci
48462306a36Sopenharmony_ci	usbc_extcon1: extcon1 {
48562306a36Sopenharmony_ci		compatible = "google,extcon-usbc-cros-ec";
48662306a36Sopenharmony_ci		google,usb-port-id = <1>;
48762306a36Sopenharmony_ci	};
48862306a36Sopenharmony_ci};
48962306a36Sopenharmony_ci
49062306a36Sopenharmony_ci&sound {
49162306a36Sopenharmony_ci	rockchip,codec = <&max98357a &headsetcodec
49262306a36Sopenharmony_ci			  &codec &wacky_spi_audio &cdn_dp>;
49362306a36Sopenharmony_ci};
49462306a36Sopenharmony_ci
49562306a36Sopenharmony_ci&spi2 {
49662306a36Sopenharmony_ci	wacky_spi_audio: spi2@0 {
49762306a36Sopenharmony_ci		compatible = "realtek,rt5514";
49862306a36Sopenharmony_ci		reg = <0>;
49962306a36Sopenharmony_ci		interrupt-parent = <&gpio1>;
50062306a36Sopenharmony_ci		interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
50162306a36Sopenharmony_ci		pinctrl-names = "default";
50262306a36Sopenharmony_ci		pinctrl-0 = <&mic_int>;
50362306a36Sopenharmony_ci		/* May run faster once verified. */
50462306a36Sopenharmony_ci		spi-max-frequency = <10000000>;
50562306a36Sopenharmony_ci		wakeup-source;
50662306a36Sopenharmony_ci	};
50762306a36Sopenharmony_ci};
50862306a36Sopenharmony_ci
50962306a36Sopenharmony_ci&pci_rootport {
51062306a36Sopenharmony_ci	mvl_wifi: wifi@0,0 {
51162306a36Sopenharmony_ci		compatible = "pci1b4b,2b42";
51262306a36Sopenharmony_ci		reg = <0x0000 0x0 0x0 0x0 0x0>;
51362306a36Sopenharmony_ci		interrupt-parent = <&gpio0>;
51462306a36Sopenharmony_ci		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
51562306a36Sopenharmony_ci		pinctrl-names = "default";
51662306a36Sopenharmony_ci		pinctrl-0 = <&wlan_host_wake_l>;
51762306a36Sopenharmony_ci		wakeup-source;
51862306a36Sopenharmony_ci	};
51962306a36Sopenharmony_ci};
52062306a36Sopenharmony_ci
52162306a36Sopenharmony_ci&tcphy1 {
52262306a36Sopenharmony_ci	status = "okay";
52362306a36Sopenharmony_ci	extcon = <&usbc_extcon1>;
52462306a36Sopenharmony_ci};
52562306a36Sopenharmony_ci
52662306a36Sopenharmony_ci&u2phy1 {
52762306a36Sopenharmony_ci	status = "okay";
52862306a36Sopenharmony_ci};
52962306a36Sopenharmony_ci
53062306a36Sopenharmony_ci&usb_host0_ehci {
53162306a36Sopenharmony_ci	status = "okay";
53262306a36Sopenharmony_ci};
53362306a36Sopenharmony_ci
53462306a36Sopenharmony_ci&usb_host1_ehci {
53562306a36Sopenharmony_ci	status = "okay";
53662306a36Sopenharmony_ci};
53762306a36Sopenharmony_ci
53862306a36Sopenharmony_ci&usb_host1_ohci {
53962306a36Sopenharmony_ci	status = "okay";
54062306a36Sopenharmony_ci};
54162306a36Sopenharmony_ci
54262306a36Sopenharmony_ci&usbdrd3_1 {
54362306a36Sopenharmony_ci	status = "okay";
54462306a36Sopenharmony_ci	extcon = <&usbc_extcon1>;
54562306a36Sopenharmony_ci};
54662306a36Sopenharmony_ci
54762306a36Sopenharmony_ci&usbdrd_dwc3_1 {
54862306a36Sopenharmony_ci	status = "okay";
54962306a36Sopenharmony_ci	dr_mode = "host";
55062306a36Sopenharmony_ci};
55162306a36Sopenharmony_ci
55262306a36Sopenharmony_ci&pinctrl {
55362306a36Sopenharmony_ci	discrete-regulators {
55462306a36Sopenharmony_ci		pp1500_en: pp1500-en {
55562306a36Sopenharmony_ci			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO
55662306a36Sopenharmony_ci					 &pcfg_pull_none>;
55762306a36Sopenharmony_ci		};
55862306a36Sopenharmony_ci
55962306a36Sopenharmony_ci		pp1800_audio_en: pp1800-audio-en {
56062306a36Sopenharmony_ci			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO
56162306a36Sopenharmony_ci					 &pcfg_pull_down>;
56262306a36Sopenharmony_ci		};
56362306a36Sopenharmony_ci
56462306a36Sopenharmony_ci		pp3000_en: pp3000-en {
56562306a36Sopenharmony_ci			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO
56662306a36Sopenharmony_ci					 &pcfg_pull_none>;
56762306a36Sopenharmony_ci		};
56862306a36Sopenharmony_ci
56962306a36Sopenharmony_ci		pp3300_disp_en: pp3300-disp-en {
57062306a36Sopenharmony_ci			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO
57162306a36Sopenharmony_ci					 &pcfg_pull_none>;
57262306a36Sopenharmony_ci		};
57362306a36Sopenharmony_ci
57462306a36Sopenharmony_ci		wlan_module_pd_l: wlan-module-pd-l {
57562306a36Sopenharmony_ci			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO
57662306a36Sopenharmony_ci					 &pcfg_pull_down>;
57762306a36Sopenharmony_ci		};
57862306a36Sopenharmony_ci	};
57962306a36Sopenharmony_ci};
58062306a36Sopenharmony_ci
58162306a36Sopenharmony_ci&wifi {
58262306a36Sopenharmony_ci	wifi_perst_l: wifi-perst-l {
58362306a36Sopenharmony_ci		rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
58462306a36Sopenharmony_ci	};
58562306a36Sopenharmony_ci
58662306a36Sopenharmony_ci	wlan_host_wake_l: wlan-host-wake-l {
58762306a36Sopenharmony_ci		/* Kevin has an external pull up, but Bob does not */
58862306a36Sopenharmony_ci		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
58962306a36Sopenharmony_ci	};
59062306a36Sopenharmony_ci};
591