18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Google Gru-scarlet board device tree source
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright 2018 Google, Inc
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include "rk3399-gru.dtsi"
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci/{
118c2ecf20Sopenharmony_ci	/* Power tree */
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci	/* ppvar_sys children, sorted by name */
148c2ecf20Sopenharmony_ci	pp1250_s3: pp1250-s3 {
158c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
168c2ecf20Sopenharmony_ci		regulator-name = "pp1250_s3";
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci		/* EC turns on w/ pp1250_s3_en; always on for AP */
198c2ecf20Sopenharmony_ci		regulator-always-on;
208c2ecf20Sopenharmony_ci		regulator-boot-on;
218c2ecf20Sopenharmony_ci		regulator-min-microvolt = <1250000>;
228c2ecf20Sopenharmony_ci		regulator-max-microvolt = <1250000>;
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci		vin-supply = <&ppvar_sys>;
258c2ecf20Sopenharmony_ci	};
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	pp1250_cam: pp1250-dvdd {
288c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
298c2ecf20Sopenharmony_ci		regulator-name = "pp1250_dvdd";
308c2ecf20Sopenharmony_ci		pinctrl-names = "default";
318c2ecf20Sopenharmony_ci		pinctrl-0 = <&pp1250_cam_en>;
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci		enable-active-high;
348c2ecf20Sopenharmony_ci		gpio = <&gpio2 4 GPIO_ACTIVE_HIGH>;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci		/* 740us delay from gpio output high to pp1250 stable,
378c2ecf20Sopenharmony_ci		 * rounding up to 1ms for safety.
388c2ecf20Sopenharmony_ci		 */
398c2ecf20Sopenharmony_ci		startup-delay-us = <1000>;
408c2ecf20Sopenharmony_ci		vin-supply = <&pp1250_s3>;
418c2ecf20Sopenharmony_ci	};
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci	pp900_s0: pp900-s0 {
448c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
458c2ecf20Sopenharmony_ci		regulator-name = "pp900_s0";
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci		/* EC turns on w/ pp900_s0_en; always on for AP */
488c2ecf20Sopenharmony_ci		regulator-always-on;
498c2ecf20Sopenharmony_ci		regulator-boot-on;
508c2ecf20Sopenharmony_ci		regulator-min-microvolt = <900000>;
518c2ecf20Sopenharmony_ci		regulator-max-microvolt = <900000>;
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci		vin-supply = <&ppvar_sys>;
548c2ecf20Sopenharmony_ci	};
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	ppvarn_lcd: ppvarn-lcd {
578c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
588c2ecf20Sopenharmony_ci		regulator-name = "ppvarn_lcd";
598c2ecf20Sopenharmony_ci		pinctrl-names = "default";
608c2ecf20Sopenharmony_ci		pinctrl-0 = <&ppvarn_lcd_en>;
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci		enable-active-high;
638c2ecf20Sopenharmony_ci		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
648c2ecf20Sopenharmony_ci		vin-supply = <&ppvar_sys>;
658c2ecf20Sopenharmony_ci	};
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	ppvarp_lcd: ppvarp-lcd {
688c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
698c2ecf20Sopenharmony_ci		regulator-name = "ppvarp_lcd";
708c2ecf20Sopenharmony_ci		pinctrl-names = "default";
718c2ecf20Sopenharmony_ci		pinctrl-0 = <&ppvarp_lcd_en>;
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci		enable-active-high;
748c2ecf20Sopenharmony_ci		gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
758c2ecf20Sopenharmony_ci		vin-supply = <&ppvar_sys>;
768c2ecf20Sopenharmony_ci	};
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci	/* pp1800 children, sorted by name */
798c2ecf20Sopenharmony_ci	pp900_s3: pp900-s3 {
808c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
818c2ecf20Sopenharmony_ci		regulator-name = "pp900_s3";
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci		/* EC turns on w/ pp900_s3_en; always on for AP */
848c2ecf20Sopenharmony_ci		regulator-always-on;
858c2ecf20Sopenharmony_ci		regulator-boot-on;
868c2ecf20Sopenharmony_ci		regulator-min-microvolt = <900000>;
878c2ecf20Sopenharmony_ci		regulator-max-microvolt = <900000>;
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci		vin-supply = <&pp1800>;
908c2ecf20Sopenharmony_ci	};
918c2ecf20Sopenharmony_ci
928c2ecf20Sopenharmony_ci	/* EC turns on pp1800_s3_en */
938c2ecf20Sopenharmony_ci	pp1800_s3: pp1800 {
948c2ecf20Sopenharmony_ci	};
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci	/* pp3300 children, sorted by name */
978c2ecf20Sopenharmony_ci	pp2800_cam: pp2800-avdd {
988c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
998c2ecf20Sopenharmony_ci		regulator-name = "pp2800_avdd";
1008c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1018c2ecf20Sopenharmony_ci		pinctrl-0 = <&pp2800_cam_en>;
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci		enable-active-high;
1048c2ecf20Sopenharmony_ci		gpio = <&gpio2 24 GPIO_ACTIVE_HIGH>;
1058c2ecf20Sopenharmony_ci		startup-delay-us = <100>;
1068c2ecf20Sopenharmony_ci		vin-supply = <&pp3300>;
1078c2ecf20Sopenharmony_ci	};
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	/* EC turns on pp3300_s0_en */
1108c2ecf20Sopenharmony_ci	pp3300_s0: pp3300 {
1118c2ecf20Sopenharmony_ci	};
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci	/* EC turns on pp3300_s3_en */
1148c2ecf20Sopenharmony_ci	pp3300_s3: pp3300 {
1158c2ecf20Sopenharmony_ci	};
1168c2ecf20Sopenharmony_ci
1178c2ecf20Sopenharmony_ci	/*
1188c2ecf20Sopenharmony_ci	 * See b/66922012
1198c2ecf20Sopenharmony_ci	 *
1208c2ecf20Sopenharmony_ci	 * This is a hack to make sure the Bluetooth part of the QCA6174A
1218c2ecf20Sopenharmony_ci	 * is reset at boot by toggling BT_EN. At boot BT_EN is first set
1228c2ecf20Sopenharmony_ci	 * to low when the bt_3v3 regulator is registered (in disabled
1238c2ecf20Sopenharmony_ci	 * state). The fake regulator is configured as a supply of the
1248c2ecf20Sopenharmony_ci	 * wlan_3v3 regulator below. When wlan_3v3 is enabled early in
1258c2ecf20Sopenharmony_ci	 * the boot process it also enables its supply regulator bt_3v3,
1268c2ecf20Sopenharmony_ci	 * which changes BT_EN to high.
1278c2ecf20Sopenharmony_ci	 */
1288c2ecf20Sopenharmony_ci	bt_3v3: bt-3v3 {
1298c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
1308c2ecf20Sopenharmony_ci		regulator-name = "bt_3v3";
1318c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1328c2ecf20Sopenharmony_ci		pinctrl-0 = <&bt_en_1v8_l>;
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci		enable-active-high;
1358c2ecf20Sopenharmony_ci		gpio = <&gpio0 8 GPIO_ACTIVE_HIGH>;
1368c2ecf20Sopenharmony_ci		vin-supply = <&pp3300_s3>;
1378c2ecf20Sopenharmony_ci	};
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci	wlan_3v3: wlan-3v3 {
1408c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
1418c2ecf20Sopenharmony_ci		regulator-name = "wlan_3v3";
1428c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1438c2ecf20Sopenharmony_ci		pinctrl-0 = <&wlan_pd_1v8_l>;
1448c2ecf20Sopenharmony_ci
1458c2ecf20Sopenharmony_ci		/*
1468c2ecf20Sopenharmony_ci		 * The WL_EN pin is driven low when the regulator is
1478c2ecf20Sopenharmony_ci		 * registered, and transitions to high when the PCIe bus
1488c2ecf20Sopenharmony_ci		 * is powered up.
1498c2ecf20Sopenharmony_ci		 */
1508c2ecf20Sopenharmony_ci		enable-active-high;
1518c2ecf20Sopenharmony_ci		gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci		/*
1548c2ecf20Sopenharmony_ci		 * Require minimum 10ms from power-on (e.g., PD#) to init PCIe.
1558c2ecf20Sopenharmony_ci		 * TODO (b/64444991): how long to assert PD#?
1568c2ecf20Sopenharmony_ci		 */
1578c2ecf20Sopenharmony_ci		regulator-enable-ramp-delay = <10000>;
1588c2ecf20Sopenharmony_ci		/* See bt_3v3 hack above */
1598c2ecf20Sopenharmony_ci		vin-supply = <&bt_3v3>;
1608c2ecf20Sopenharmony_ci	};
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci	backlight: backlight {
1638c2ecf20Sopenharmony_ci		compatible = "pwm-backlight";
1648c2ecf20Sopenharmony_ci		enable-gpios = <&gpio4 21 GPIO_ACTIVE_HIGH>;
1658c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1668c2ecf20Sopenharmony_ci		pinctrl-0 = <&bl_en>;
1678c2ecf20Sopenharmony_ci		pwms = <&pwm1 0 1000000 0>;
1688c2ecf20Sopenharmony_ci		pwm-delay-us = <10000>;
1698c2ecf20Sopenharmony_ci	};
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci	dmic: dmic {
1728c2ecf20Sopenharmony_ci		compatible = "dmic-codec";
1738c2ecf20Sopenharmony_ci		dmicen-gpios = <&gpio4 3 GPIO_ACTIVE_HIGH>;
1748c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1758c2ecf20Sopenharmony_ci		pinctrl-0 = <&dmic_en>;
1768c2ecf20Sopenharmony_ci		wakeup-delay-ms = <250>;
1778c2ecf20Sopenharmony_ci	};
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ci	gpio_keys: gpio-keys {
1808c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
1818c2ecf20Sopenharmony_ci		pinctrl-names = "default";
1828c2ecf20Sopenharmony_ci		pinctrl-0 = <&pen_eject_odl>;
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci		pen-insert {
1858c2ecf20Sopenharmony_ci			label = "Pen Insert";
1868c2ecf20Sopenharmony_ci			/* Insert = low, eject = high */
1878c2ecf20Sopenharmony_ci			gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
1888c2ecf20Sopenharmony_ci			linux,code = <SW_PEN_INSERTED>;
1898c2ecf20Sopenharmony_ci			linux,input-type = <EV_SW>;
1908c2ecf20Sopenharmony_ci			wakeup-source;
1918c2ecf20Sopenharmony_ci		};
1928c2ecf20Sopenharmony_ci	};
1938c2ecf20Sopenharmony_ci};
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci/* pp900_s0 aliases */
1968c2ecf20Sopenharmony_cipp900_ddrpll_ap: &pp900_s0 {
1978c2ecf20Sopenharmony_ci};
1988c2ecf20Sopenharmony_cipp900_pcie: &pp900_s0 {
1998c2ecf20Sopenharmony_ci};
2008c2ecf20Sopenharmony_cipp900_usb: &pp900_s0 {
2018c2ecf20Sopenharmony_ci};
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci/* pp900_s3 aliases */
2048c2ecf20Sopenharmony_cipp900_emmcpll: &pp900_s3 {
2058c2ecf20Sopenharmony_ci};
2068c2ecf20Sopenharmony_ci
2078c2ecf20Sopenharmony_ci/* EC turns on; alias for pp1800_s0 */
2088c2ecf20Sopenharmony_cipp1800_pcie: &pp1800_s0 {
2098c2ecf20Sopenharmony_ci};
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci/* On scarlet PPVAR(big_cpu, lit_cpu, gpu) need to adjust voltage ranges */
2128c2ecf20Sopenharmony_ci&ppvar_bigcpu {
2138c2ecf20Sopenharmony_ci	ctrl-voltage-range = <800074 1299226>;
2148c2ecf20Sopenharmony_ci	regulator-min-microvolt = <800074>;
2158c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1299226>;
2168c2ecf20Sopenharmony_ci};
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci&ppvar_bigcpu_pwm {
2198c2ecf20Sopenharmony_ci	/* On scarlet ppvar big cpu use pwm3 */
2208c2ecf20Sopenharmony_ci	pwms = <&pwm3 0 3337 0>;
2218c2ecf20Sopenharmony_ci	regulator-min-microvolt = <800074>;
2228c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1299226>;
2238c2ecf20Sopenharmony_ci};
2248c2ecf20Sopenharmony_ci
2258c2ecf20Sopenharmony_ci&ppvar_litcpu {
2268c2ecf20Sopenharmony_ci	ctrl-voltage-range = <802122 1199620>;
2278c2ecf20Sopenharmony_ci	regulator-min-microvolt = <802122>;
2288c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1199620>;
2298c2ecf20Sopenharmony_ci};
2308c2ecf20Sopenharmony_ci
2318c2ecf20Sopenharmony_ci&ppvar_litcpu_pwm {
2328c2ecf20Sopenharmony_ci	regulator-min-microvolt = <802122>;
2338c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1199620>;
2348c2ecf20Sopenharmony_ci};
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ci&ppvar_gpu {
2378c2ecf20Sopenharmony_ci	ctrl-voltage-range = <799600 1099600>;
2388c2ecf20Sopenharmony_ci	regulator-min-microvolt = <799600>;
2398c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1099600>;
2408c2ecf20Sopenharmony_ci};
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci&ppvar_gpu_pwm {
2438c2ecf20Sopenharmony_ci	regulator-min-microvolt = <799600>;
2448c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1099600>;
2458c2ecf20Sopenharmony_ci};
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ci&ppvar_sd_card_io {
2488c2ecf20Sopenharmony_ci	states = <1800000 0x0>, <3300000 0x1>;
2498c2ecf20Sopenharmony_ci	regulator-max-microvolt = <3300000>;
2508c2ecf20Sopenharmony_ci};
2518c2ecf20Sopenharmony_ci
2528c2ecf20Sopenharmony_ci&pp3000_sd_slot {
2538c2ecf20Sopenharmony_ci	vin-supply = <&pp3300>;
2548c2ecf20Sopenharmony_ci};
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ciap_i2c_dig: &i2c2 {
2578c2ecf20Sopenharmony_ci	status = "okay";
2588c2ecf20Sopenharmony_ci
2598c2ecf20Sopenharmony_ci	clock-frequency = <400000>;
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci	/* These are relatively safe rise/fall times. */
2628c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
2638c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
2648c2ecf20Sopenharmony_ci
2658c2ecf20Sopenharmony_ci	digitizer: digitizer@9 {
2668c2ecf20Sopenharmony_ci		compatible = "hid-over-i2c";
2678c2ecf20Sopenharmony_ci		reg = <0x9>;
2688c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
2698c2ecf20Sopenharmony_ci		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
2708c2ecf20Sopenharmony_ci		hid-descr-addr = <0x1>;
2718c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2728c2ecf20Sopenharmony_ci		pinctrl-0 = <&pen_int_odl &pen_reset_l>;
2738c2ecf20Sopenharmony_ci	};
2748c2ecf20Sopenharmony_ci};
2758c2ecf20Sopenharmony_ci
2768c2ecf20Sopenharmony_ci&ap_i2c_ts {
2778c2ecf20Sopenharmony_ci	touchscreen: touchscreen@10 {
2788c2ecf20Sopenharmony_ci		compatible = "elan,ekth3500";
2798c2ecf20Sopenharmony_ci		reg = <0x10>;
2808c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
2818c2ecf20Sopenharmony_ci		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
2828c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2838c2ecf20Sopenharmony_ci		pinctrl-0 = <&touch_int_l &touch_reset_l>;
2848c2ecf20Sopenharmony_ci		reset-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
2858c2ecf20Sopenharmony_ci	};
2868c2ecf20Sopenharmony_ci};
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_cicamera: &i2c7 {
2898c2ecf20Sopenharmony_ci	status = "okay";
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci	clock-frequency = <400000>;
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci	/* These are relatively safe rise/fall times; TODO: measure */
2948c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
2958c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
2968c2ecf20Sopenharmony_ci
2978c2ecf20Sopenharmony_ci	/* 24M mclk is shared between world and user cameras */
2988c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c7_xfer &test_clkout1>;
2998c2ecf20Sopenharmony_ci};
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ci&cdn_dp {
3028c2ecf20Sopenharmony_ci	extcon = <&usbc_extcon0>;
3038c2ecf20Sopenharmony_ci	phys = <&tcphy0_dp>;
3048c2ecf20Sopenharmony_ci};
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci&cpu_alert0 {
3078c2ecf20Sopenharmony_ci	temperature = <66000>;
3088c2ecf20Sopenharmony_ci};
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci&cpu_alert1 {
3118c2ecf20Sopenharmony_ci	temperature = <71000>;
3128c2ecf20Sopenharmony_ci};
3138c2ecf20Sopenharmony_ci
3148c2ecf20Sopenharmony_ci&cros_ec {
3158c2ecf20Sopenharmony_ci	interrupt-parent = <&gpio1>;
3168c2ecf20Sopenharmony_ci	interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
3178c2ecf20Sopenharmony_ci};
3188c2ecf20Sopenharmony_ci
3198c2ecf20Sopenharmony_ci&cru {
3208c2ecf20Sopenharmony_ci	assigned-clocks =
3218c2ecf20Sopenharmony_ci		<&cru PLL_GPLL>, <&cru PLL_CPLL>,
3228c2ecf20Sopenharmony_ci		<&cru PLL_NPLL>,
3238c2ecf20Sopenharmony_ci		<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
3248c2ecf20Sopenharmony_ci		<&cru PCLK_PERIHP>,
3258c2ecf20Sopenharmony_ci		<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
3268c2ecf20Sopenharmony_ci		<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
3278c2ecf20Sopenharmony_ci		<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
3288c2ecf20Sopenharmony_ci		<&cru ACLK_VIO>,
3298c2ecf20Sopenharmony_ci		<&cru ACLK_GIC_PRE>,
3308c2ecf20Sopenharmony_ci		<&cru PCLK_DDR>,
3318c2ecf20Sopenharmony_ci		<&cru ACLK_HDCP>;
3328c2ecf20Sopenharmony_ci	assigned-clock-rates =
3338c2ecf20Sopenharmony_ci		<600000000>, <1600000000>,
3348c2ecf20Sopenharmony_ci		<1000000000>,
3358c2ecf20Sopenharmony_ci		<150000000>, <75000000>,
3368c2ecf20Sopenharmony_ci		<37500000>,
3378c2ecf20Sopenharmony_ci		<100000000>, <100000000>,
3388c2ecf20Sopenharmony_ci		<50000000>, <800000000>,
3398c2ecf20Sopenharmony_ci		<100000000>, <50000000>,
3408c2ecf20Sopenharmony_ci		<400000000>,
3418c2ecf20Sopenharmony_ci		<200000000>,
3428c2ecf20Sopenharmony_ci		<200000000>,
3438c2ecf20Sopenharmony_ci		<400000000>;
3448c2ecf20Sopenharmony_ci};
3458c2ecf20Sopenharmony_ci
3468c2ecf20Sopenharmony_ci&i2c_tunnel {
3478c2ecf20Sopenharmony_ci	google,remote-bus = <0>;
3488c2ecf20Sopenharmony_ci};
3498c2ecf20Sopenharmony_ci
3508c2ecf20Sopenharmony_ci&io_domains {
3518c2ecf20Sopenharmony_ci	bt656-supply = <&pp1800_s0>;		/* APIO2_VDD;  2a 2b */
3528c2ecf20Sopenharmony_ci	audio-supply = <&pp1800_s0>;		/* APIO5_VDD;  3d 4a */
3538c2ecf20Sopenharmony_ci	gpio1830-supply = <&pp1800_s0>;		/* APIO4_VDD;  4c 4d */
3548c2ecf20Sopenharmony_ci};
3558c2ecf20Sopenharmony_ci
3568c2ecf20Sopenharmony_ci&max98357a {
3578c2ecf20Sopenharmony_ci	sdmode-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
3588c2ecf20Sopenharmony_ci};
3598c2ecf20Sopenharmony_ci
3608c2ecf20Sopenharmony_ci&mipi_dsi {
3618c2ecf20Sopenharmony_ci	status = "okay";
3628c2ecf20Sopenharmony_ci	clock-master;
3638c2ecf20Sopenharmony_ci
3648c2ecf20Sopenharmony_ci	ports {
3658c2ecf20Sopenharmony_ci		mipi_out: port@1 {
3668c2ecf20Sopenharmony_ci			reg = <1>;
3678c2ecf20Sopenharmony_ci
3688c2ecf20Sopenharmony_ci			mipi_out_panel: endpoint {
3698c2ecf20Sopenharmony_ci				remote-endpoint = <&mipi_in_panel>;
3708c2ecf20Sopenharmony_ci			};
3718c2ecf20Sopenharmony_ci		};
3728c2ecf20Sopenharmony_ci	};
3738c2ecf20Sopenharmony_ci
3748c2ecf20Sopenharmony_ci	mipi_panel: panel@0 {
3758c2ecf20Sopenharmony_ci		/* 2 different panels are used, compatibles are in dts files */
3768c2ecf20Sopenharmony_ci		reg = <0>;
3778c2ecf20Sopenharmony_ci		backlight = <&backlight>;
3788c2ecf20Sopenharmony_ci		enable-gpios = <&gpio4 25 GPIO_ACTIVE_HIGH>;
3798c2ecf20Sopenharmony_ci		pinctrl-names = "default";
3808c2ecf20Sopenharmony_ci		pinctrl-0 = <&display_rst_l>;
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ci		ports {
3838c2ecf20Sopenharmony_ci			#address-cells = <1>;
3848c2ecf20Sopenharmony_ci			#size-cells = <0>;
3858c2ecf20Sopenharmony_ci
3868c2ecf20Sopenharmony_ci			port@0 {
3878c2ecf20Sopenharmony_ci				reg = <0>;
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_ci				mipi_in_panel: endpoint {
3908c2ecf20Sopenharmony_ci					remote-endpoint = <&mipi_out_panel>;
3918c2ecf20Sopenharmony_ci				};
3928c2ecf20Sopenharmony_ci			};
3938c2ecf20Sopenharmony_ci
3948c2ecf20Sopenharmony_ci			port@1 {
3958c2ecf20Sopenharmony_ci				reg = <1>;
3968c2ecf20Sopenharmony_ci
3978c2ecf20Sopenharmony_ci				mipi1_in_panel: endpoint@1 {
3988c2ecf20Sopenharmony_ci					remote-endpoint = <&mipi1_out_panel>;
3998c2ecf20Sopenharmony_ci				};
4008c2ecf20Sopenharmony_ci			};
4018c2ecf20Sopenharmony_ci		};
4028c2ecf20Sopenharmony_ci	};
4038c2ecf20Sopenharmony_ci};
4048c2ecf20Sopenharmony_ci
4058c2ecf20Sopenharmony_ci&mipi_dsi1 {
4068c2ecf20Sopenharmony_ci	status = "okay";
4078c2ecf20Sopenharmony_ci
4088c2ecf20Sopenharmony_ci	ports {
4098c2ecf20Sopenharmony_ci		mipi1_out: port@1 {
4108c2ecf20Sopenharmony_ci			reg = <1>;
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ci			mipi1_out_panel: endpoint {
4138c2ecf20Sopenharmony_ci				remote-endpoint = <&mipi1_in_panel>;
4148c2ecf20Sopenharmony_ci			};
4158c2ecf20Sopenharmony_ci		};
4168c2ecf20Sopenharmony_ci	};
4178c2ecf20Sopenharmony_ci};
4188c2ecf20Sopenharmony_ci
4198c2ecf20Sopenharmony_ci&pcie0 {
4208c2ecf20Sopenharmony_ci	ep-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ci	/* PERST# asserted in S3 */
4238c2ecf20Sopenharmony_ci	pcie-reset-suspend = <1>;
4248c2ecf20Sopenharmony_ci
4258c2ecf20Sopenharmony_ci	vpcie3v3-supply = <&wlan_3v3>;
4268c2ecf20Sopenharmony_ci	vpcie1v8-supply = <&pp1800_pcie>;
4278c2ecf20Sopenharmony_ci};
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci&sdmmc {
4308c2ecf20Sopenharmony_ci	cd-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
4318c2ecf20Sopenharmony_ci};
4328c2ecf20Sopenharmony_ci
4338c2ecf20Sopenharmony_ci&sound {
4348c2ecf20Sopenharmony_ci	rockchip,codec = <&max98357a &dmic &codec &cdn_dp>;
4358c2ecf20Sopenharmony_ci};
4368c2ecf20Sopenharmony_ci
4378c2ecf20Sopenharmony_ci&spi2 {
4388c2ecf20Sopenharmony_ci	status = "okay";
4398c2ecf20Sopenharmony_ci
4408c2ecf20Sopenharmony_ci	cr50@0 {
4418c2ecf20Sopenharmony_ci		compatible = "google,cr50";
4428c2ecf20Sopenharmony_ci		reg = <0>;
4438c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
4448c2ecf20Sopenharmony_ci		interrupts = <17 IRQ_TYPE_EDGE_RISING>;
4458c2ecf20Sopenharmony_ci		pinctrl-names = "default";
4468c2ecf20Sopenharmony_ci		pinctrl-0 = <&h1_int_od_l>;
4478c2ecf20Sopenharmony_ci		spi-max-frequency = <800000>;
4488c2ecf20Sopenharmony_ci	};
4498c2ecf20Sopenharmony_ci};
4508c2ecf20Sopenharmony_ci
4518c2ecf20Sopenharmony_ci&usb_host0_ohci {
4528c2ecf20Sopenharmony_ci	#address-cells = <1>;
4538c2ecf20Sopenharmony_ci	#size-cells = <0>;
4548c2ecf20Sopenharmony_ci
4558c2ecf20Sopenharmony_ci	qca_bt: bluetooth@1 {
4568c2ecf20Sopenharmony_ci		compatible = "usbcf3,e300", "usb4ca,301a";
4578c2ecf20Sopenharmony_ci		reg = <1>;
4588c2ecf20Sopenharmony_ci		pinctrl-names = "default";
4598c2ecf20Sopenharmony_ci		pinctrl-0 = <&bt_host_wake_l>;
4608c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
4618c2ecf20Sopenharmony_ci		interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
4628c2ecf20Sopenharmony_ci		interrupt-names = "wakeup";
4638c2ecf20Sopenharmony_ci	};
4648c2ecf20Sopenharmony_ci};
4658c2ecf20Sopenharmony_ci
4668c2ecf20Sopenharmony_ci/* PINCTRL OVERRIDES */
4678c2ecf20Sopenharmony_ci&ec_ap_int_l {
4688c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
4698c2ecf20Sopenharmony_ci};
4708c2ecf20Sopenharmony_ci
4718c2ecf20Sopenharmony_ci&ap_fw_wp {
4728c2ecf20Sopenharmony_ci	rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
4738c2ecf20Sopenharmony_ci};
4748c2ecf20Sopenharmony_ci
4758c2ecf20Sopenharmony_ci&bl_en {
4768c2ecf20Sopenharmony_ci	rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
4778c2ecf20Sopenharmony_ci};
4788c2ecf20Sopenharmony_ci
4798c2ecf20Sopenharmony_ci&bt_host_wake_l {
4808c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
4818c2ecf20Sopenharmony_ci};
4828c2ecf20Sopenharmony_ci
4838c2ecf20Sopenharmony_ci&ec_ap_int_l {
4848c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_up>;
4858c2ecf20Sopenharmony_ci};
4868c2ecf20Sopenharmony_ci
4878c2ecf20Sopenharmony_ci&headset_int_l {
4888c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_up>;
4898c2ecf20Sopenharmony_ci};
4908c2ecf20Sopenharmony_ci
4918c2ecf20Sopenharmony_ci&i2s0_8ch_bus {
4928c2ecf20Sopenharmony_ci	rockchip,pins =
4938c2ecf20Sopenharmony_ci		<3 RK_PD0 1 &pcfg_pull_none_6ma>,
4948c2ecf20Sopenharmony_ci		<3 RK_PD1 1 &pcfg_pull_none_6ma>,
4958c2ecf20Sopenharmony_ci		<3 RK_PD2 1 &pcfg_pull_none_6ma>,
4968c2ecf20Sopenharmony_ci		<3 RK_PD3 1 &pcfg_pull_none_6ma>,
4978c2ecf20Sopenharmony_ci		<3 RK_PD7 1 &pcfg_pull_none_6ma>,
4988c2ecf20Sopenharmony_ci		<4 RK_PA0 1 &pcfg_pull_none_6ma>;
4998c2ecf20Sopenharmony_ci};
5008c2ecf20Sopenharmony_ci
5018c2ecf20Sopenharmony_ci/* there is no external pull up, so need to set this pin pull up */
5028c2ecf20Sopenharmony_ci&sdmmc_cd_pin {
5038c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PB3 RK_FUNC_GPIO &pcfg_pull_up>;
5048c2ecf20Sopenharmony_ci};
5058c2ecf20Sopenharmony_ci
5068c2ecf20Sopenharmony_ci&sd_pwr_1800_sel {
5078c2ecf20Sopenharmony_ci	rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
5088c2ecf20Sopenharmony_ci};
5098c2ecf20Sopenharmony_ci
5108c2ecf20Sopenharmony_ci&sdmode_en {
5118c2ecf20Sopenharmony_ci	rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_down>;
5128c2ecf20Sopenharmony_ci};
5138c2ecf20Sopenharmony_ci
5148c2ecf20Sopenharmony_ci&touch_reset_l {
5158c2ecf20Sopenharmony_ci	rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
5168c2ecf20Sopenharmony_ci};
5178c2ecf20Sopenharmony_ci
5188c2ecf20Sopenharmony_ci&touch_int_l {
5198c2ecf20Sopenharmony_ci	rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
5208c2ecf20Sopenharmony_ci};
5218c2ecf20Sopenharmony_ci
5228c2ecf20Sopenharmony_ci&pinctrl {
5238c2ecf20Sopenharmony_ci	pinctrl-0 = <
5248c2ecf20Sopenharmony_ci		&ap_pwroff	/* AP will auto-assert this when in S3 */
5258c2ecf20Sopenharmony_ci		&clk_32k	/* This pin is always 32k on gru boards */
5268c2ecf20Sopenharmony_ci		&wlan_rf_kill_1v8_l
5278c2ecf20Sopenharmony_ci	>;
5288c2ecf20Sopenharmony_ci
5298c2ecf20Sopenharmony_ci	pcfg_pull_none_6ma: pcfg-pull-none-6ma {
5308c2ecf20Sopenharmony_ci		bias-disable;
5318c2ecf20Sopenharmony_ci		drive-strength = <6>;
5328c2ecf20Sopenharmony_ci	};
5338c2ecf20Sopenharmony_ci
5348c2ecf20Sopenharmony_ci	camera {
5358c2ecf20Sopenharmony_ci		pp1250_cam_en: pp1250-dvdd {
5368c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
5378c2ecf20Sopenharmony_ci		};
5388c2ecf20Sopenharmony_ci
5398c2ecf20Sopenharmony_ci		pp2800_cam_en: pp2800-avdd {
5408c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
5418c2ecf20Sopenharmony_ci		};
5428c2ecf20Sopenharmony_ci
5438c2ecf20Sopenharmony_ci		ucam_rst: ucam_rst {
5448c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
5458c2ecf20Sopenharmony_ci		};
5468c2ecf20Sopenharmony_ci
5478c2ecf20Sopenharmony_ci		wcam_rst: wcam_rst {
5488c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
5498c2ecf20Sopenharmony_ci		};
5508c2ecf20Sopenharmony_ci	};
5518c2ecf20Sopenharmony_ci
5528c2ecf20Sopenharmony_ci	digitizer {
5538c2ecf20Sopenharmony_ci		pen_int_odl: pen-int-odl {
5548c2ecf20Sopenharmony_ci			rockchip,pins = <1 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>;
5558c2ecf20Sopenharmony_ci		};
5568c2ecf20Sopenharmony_ci
5578c2ecf20Sopenharmony_ci		pen_reset_l: pen-reset-l {
5588c2ecf20Sopenharmony_ci			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
5598c2ecf20Sopenharmony_ci		};
5608c2ecf20Sopenharmony_ci	};
5618c2ecf20Sopenharmony_ci
5628c2ecf20Sopenharmony_ci	discrete-regulators {
5638c2ecf20Sopenharmony_ci		display_rst_l: display-rst-l {
5648c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PD1 RK_FUNC_GPIO &pcfg_pull_down>;
5658c2ecf20Sopenharmony_ci		};
5668c2ecf20Sopenharmony_ci
5678c2ecf20Sopenharmony_ci		ppvarp_lcd_en: ppvarp-lcd-en {
5688c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
5698c2ecf20Sopenharmony_ci		};
5708c2ecf20Sopenharmony_ci
5718c2ecf20Sopenharmony_ci		ppvarn_lcd_en: ppvarn-lcd-en {
5728c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
5738c2ecf20Sopenharmony_ci		};
5748c2ecf20Sopenharmony_ci	};
5758c2ecf20Sopenharmony_ci
5768c2ecf20Sopenharmony_ci	dmic {
5778c2ecf20Sopenharmony_ci		dmic_en: dmic-en {
5788c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
5798c2ecf20Sopenharmony_ci		};
5808c2ecf20Sopenharmony_ci	};
5818c2ecf20Sopenharmony_ci
5828c2ecf20Sopenharmony_ci	pen {
5838c2ecf20Sopenharmony_ci		pen_eject_odl: pen-eject-odl {
5848c2ecf20Sopenharmony_ci			rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_up>;
5858c2ecf20Sopenharmony_ci		};
5868c2ecf20Sopenharmony_ci	};
5878c2ecf20Sopenharmony_ci
5888c2ecf20Sopenharmony_ci	tpm {
5898c2ecf20Sopenharmony_ci		h1_int_od_l: h1-int-od-l {
5908c2ecf20Sopenharmony_ci			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
5918c2ecf20Sopenharmony_ci		};
5928c2ecf20Sopenharmony_ci	};
5938c2ecf20Sopenharmony_ci};
5948c2ecf20Sopenharmony_ci
5958c2ecf20Sopenharmony_ci&wifi {
5968c2ecf20Sopenharmony_ci	bt_en_1v8_l: bt-en-1v8-l {
5978c2ecf20Sopenharmony_ci		rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
5988c2ecf20Sopenharmony_ci	};
5998c2ecf20Sopenharmony_ci
6008c2ecf20Sopenharmony_ci	wlan_pd_1v8_l: wlan-pd-1v8-l {
6018c2ecf20Sopenharmony_ci		rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
6028c2ecf20Sopenharmony_ci	};
6038c2ecf20Sopenharmony_ci
6048c2ecf20Sopenharmony_ci	/* Default pull-up, but just to be clear */
6058c2ecf20Sopenharmony_ci	wlan_rf_kill_1v8_l: wlan-rf-kill-1v8-l {
6068c2ecf20Sopenharmony_ci		rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
6078c2ecf20Sopenharmony_ci	};
6088c2ecf20Sopenharmony_ci
6098c2ecf20Sopenharmony_ci	wifi_perst_l: wifi-perst-l {
6108c2ecf20Sopenharmony_ci		rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
6118c2ecf20Sopenharmony_ci	};
6128c2ecf20Sopenharmony_ci
6138c2ecf20Sopenharmony_ci	wlan_host_wake_l: wlan-host-wake-l {
6148c2ecf20Sopenharmony_ci		rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
6158c2ecf20Sopenharmony_ci	};
6168c2ecf20Sopenharmony_ci};
617