18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Google Gru-Kevin Rev 6+ board device tree source
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright 2016-2017 Google, Inc
68c2ecf20Sopenharmony_ci */
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci/dts-v1/;
98c2ecf20Sopenharmony_ci#include "rk3399-gru-chromebook.dtsi"
108c2ecf20Sopenharmony_ci#include <dt-bindings/input/linux-event-codes.h>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/*
138c2ecf20Sopenharmony_ci * Kevin-specific things
148c2ecf20Sopenharmony_ci *
158c2ecf20Sopenharmony_ci * Things in this section should use names from Kevin schematic since no
168c2ecf20Sopenharmony_ci * equivalent exists in Gru schematic.  If referring to signals that exist
178c2ecf20Sopenharmony_ci * in Gru we use the Gru names, though.  Confusing enough for you?
188c2ecf20Sopenharmony_ci */
198c2ecf20Sopenharmony_ci/ {
208c2ecf20Sopenharmony_ci	model = "Google Kevin";
218c2ecf20Sopenharmony_ci	compatible = "google,kevin-rev15", "google,kevin-rev14",
228c2ecf20Sopenharmony_ci		     "google,kevin-rev13", "google,kevin-rev12",
238c2ecf20Sopenharmony_ci		     "google,kevin-rev11", "google,kevin-rev10",
248c2ecf20Sopenharmony_ci		     "google,kevin-rev9", "google,kevin-rev8",
258c2ecf20Sopenharmony_ci		     "google,kevin-rev7", "google,kevin-rev6",
268c2ecf20Sopenharmony_ci		     "google,kevin", "google,gru", "rockchip,rk3399";
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ci	/* Power tree */
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci	p3_3v_dig: p3-3v-dig {
318c2ecf20Sopenharmony_ci		compatible = "regulator-fixed";
328c2ecf20Sopenharmony_ci		regulator-name = "p3.3v_dig";
338c2ecf20Sopenharmony_ci		pinctrl-names = "default";
348c2ecf20Sopenharmony_ci		pinctrl-0 = <&cpu3_pen_pwr_en>;
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci		enable-active-high;
378c2ecf20Sopenharmony_ci		gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
388c2ecf20Sopenharmony_ci		vin-supply = <&pp3300>;
398c2ecf20Sopenharmony_ci	};
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	edp_panel: edp-panel {
428c2ecf20Sopenharmony_ci		compatible = "sharp,lq123p1jx31";
438c2ecf20Sopenharmony_ci		backlight = <&backlight>;
448c2ecf20Sopenharmony_ci		power-supply = <&pp3300_disp>;
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci		panel-timing {
478c2ecf20Sopenharmony_ci			clock-frequency = <266666667>;
488c2ecf20Sopenharmony_ci			hactive = <2400>;
498c2ecf20Sopenharmony_ci			hfront-porch = <48>;
508c2ecf20Sopenharmony_ci			hback-porch = <84>;
518c2ecf20Sopenharmony_ci			hsync-len = <32>;
528c2ecf20Sopenharmony_ci			hsync-active = <0>;
538c2ecf20Sopenharmony_ci			vactive = <1600>;
548c2ecf20Sopenharmony_ci			vfront-porch = <3>;
558c2ecf20Sopenharmony_ci			vback-porch = <120>;
568c2ecf20Sopenharmony_ci			vsync-len = <10>;
578c2ecf20Sopenharmony_ci			vsync-active = <0>;
588c2ecf20Sopenharmony_ci		};
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci		port {
618c2ecf20Sopenharmony_ci			panel_in_edp: endpoint {
628c2ecf20Sopenharmony_ci				remote-endpoint = <&edp_out_panel>;
638c2ecf20Sopenharmony_ci			};
648c2ecf20Sopenharmony_ci		};
658c2ecf20Sopenharmony_ci	};
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci	thermistor_ppvar_bigcpu: thermistor-ppvar-bigcpu {
688c2ecf20Sopenharmony_ci		compatible = "murata,ncp15wb473";
698c2ecf20Sopenharmony_ci		pullup-uv = <1800000>;
708c2ecf20Sopenharmony_ci		pullup-ohm = <25500>;
718c2ecf20Sopenharmony_ci		pulldown-ohm = <0>;
728c2ecf20Sopenharmony_ci		io-channels = <&saradc 2>;
738c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
748c2ecf20Sopenharmony_ci	};
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ci	thermistor_ppvar_litcpu: thermistor-ppvar-litcpu {
778c2ecf20Sopenharmony_ci		compatible = "murata,ncp15wb473";
788c2ecf20Sopenharmony_ci		pullup-uv = <1800000>;
798c2ecf20Sopenharmony_ci		pullup-ohm = <25500>;
808c2ecf20Sopenharmony_ci		pulldown-ohm = <0>;
818c2ecf20Sopenharmony_ci		io-channels = <&saradc 3>;
828c2ecf20Sopenharmony_ci		#thermal-sensor-cells = <0>;
838c2ecf20Sopenharmony_ci	};
848c2ecf20Sopenharmony_ci};
858c2ecf20Sopenharmony_ci
868c2ecf20Sopenharmony_ci&backlight {
878c2ecf20Sopenharmony_ci	pwms = <&cros_ec_pwm 1>;
888c2ecf20Sopenharmony_ci};
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci&gpio_keys {
918c2ecf20Sopenharmony_ci	pinctrl-names = "default";
928c2ecf20Sopenharmony_ci	pinctrl-0 = <&bt_host_wake_l>, <&cpu1_pen_eject>;
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci	pen-insert {
958c2ecf20Sopenharmony_ci		label = "Pen Insert";
968c2ecf20Sopenharmony_ci		/* Insert = low, eject = high */
978c2ecf20Sopenharmony_ci		gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
988c2ecf20Sopenharmony_ci		linux,code = <SW_PEN_INSERTED>;
998c2ecf20Sopenharmony_ci		linux,input-type = <EV_SW>;
1008c2ecf20Sopenharmony_ci		wakeup-source;
1018c2ecf20Sopenharmony_ci	};
1028c2ecf20Sopenharmony_ci};
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci&thermal_zones {
1058c2ecf20Sopenharmony_ci	bigcpu_reg_thermal: bigcpu-reg-thermal {
1068c2ecf20Sopenharmony_ci		polling-delay-passive = <100>; /* milliseconds */
1078c2ecf20Sopenharmony_ci		polling-delay = <1000>; /* milliseconds */
1088c2ecf20Sopenharmony_ci		thermal-sensors = <&thermistor_ppvar_bigcpu 0>;
1098c2ecf20Sopenharmony_ci		sustainable-power = <4000>;
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci		ppvar_bigcpu_trips: trips {
1128c2ecf20Sopenharmony_ci			ppvar_bigcpu_on: ppvar-bigcpu-on {
1138c2ecf20Sopenharmony_ci				temperature = <40000>;	/* millicelsius */
1148c2ecf20Sopenharmony_ci				hysteresis = <2000>;	/* millicelsius */
1158c2ecf20Sopenharmony_ci				type = "passive";
1168c2ecf20Sopenharmony_ci			};
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci			ppvar_bigcpu_alert: ppvar-bigcpu-alert {
1198c2ecf20Sopenharmony_ci				temperature = <50000>;	/* millicelsius */
1208c2ecf20Sopenharmony_ci				hysteresis = <2000>;	/* millicelsius */
1218c2ecf20Sopenharmony_ci				type = "passive";
1228c2ecf20Sopenharmony_ci			};
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci			ppvar_bigcpu_crit: ppvar-bigcpu-crit {
1258c2ecf20Sopenharmony_ci				temperature = <90000>;	/* millicelsius */
1268c2ecf20Sopenharmony_ci				hysteresis = <0>;	/* millicelsius */
1278c2ecf20Sopenharmony_ci				type = "critical";
1288c2ecf20Sopenharmony_ci			};
1298c2ecf20Sopenharmony_ci		};
1308c2ecf20Sopenharmony_ci
1318c2ecf20Sopenharmony_ci		cooling-maps {
1328c2ecf20Sopenharmony_ci			map0 {
1338c2ecf20Sopenharmony_ci				trip = <&ppvar_bigcpu_alert>;
1348c2ecf20Sopenharmony_ci				cooling-device =
1358c2ecf20Sopenharmony_ci					<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1368c2ecf20Sopenharmony_ci					<&cpu_l1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1378c2ecf20Sopenharmony_ci					<&cpu_l2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1388c2ecf20Sopenharmony_ci					<&cpu_l3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1398c2ecf20Sopenharmony_ci				contribution = <4096>;
1408c2ecf20Sopenharmony_ci			};
1418c2ecf20Sopenharmony_ci			map1 {
1428c2ecf20Sopenharmony_ci				trip = <&ppvar_bigcpu_alert>;
1438c2ecf20Sopenharmony_ci				cooling-device =
1448c2ecf20Sopenharmony_ci					<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1458c2ecf20Sopenharmony_ci					<&cpu_b1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1468c2ecf20Sopenharmony_ci				contribution = <1024>;
1478c2ecf20Sopenharmony_ci			};
1488c2ecf20Sopenharmony_ci		};
1498c2ecf20Sopenharmony_ci	};
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci	litcpu_reg_thermal: litcpu-reg-thermal {
1528c2ecf20Sopenharmony_ci		polling-delay-passive = <100>; /* milliseconds */
1538c2ecf20Sopenharmony_ci		polling-delay = <1000>; /* milliseconds */
1548c2ecf20Sopenharmony_ci		thermal-sensors = <&thermistor_ppvar_litcpu 0>;
1558c2ecf20Sopenharmony_ci		sustainable-power = <4000>;
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ci		ppvar_litcpu_trips: trips {
1588c2ecf20Sopenharmony_ci			ppvar_litcpu_on: ppvar-litcpu-on {
1598c2ecf20Sopenharmony_ci				temperature = <40000>;	/* millicelsius */
1608c2ecf20Sopenharmony_ci				hysteresis = <2000>;	/* millicelsius */
1618c2ecf20Sopenharmony_ci				type = "passive";
1628c2ecf20Sopenharmony_ci			};
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci			ppvar_litcpu_alert: ppvar-litcpu-alert {
1658c2ecf20Sopenharmony_ci				temperature = <50000>;	/* millicelsius */
1668c2ecf20Sopenharmony_ci				hysteresis = <2000>;	/* millicelsius */
1678c2ecf20Sopenharmony_ci				type = "passive";
1688c2ecf20Sopenharmony_ci			};
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci			ppvar_litcpu_crit: ppvar-litcpu-crit {
1718c2ecf20Sopenharmony_ci				temperature = <90000>;	/* millicelsius */
1728c2ecf20Sopenharmony_ci				hysteresis = <0>;	/* millicelsius */
1738c2ecf20Sopenharmony_ci				type = "critical";
1748c2ecf20Sopenharmony_ci			};
1758c2ecf20Sopenharmony_ci		};
1768c2ecf20Sopenharmony_ci	};
1778c2ecf20Sopenharmony_ci};
1788c2ecf20Sopenharmony_ci
1798c2ecf20Sopenharmony_ciap_i2c_tpm: &i2c0 {
1808c2ecf20Sopenharmony_ci	status = "okay";
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci	clock-frequency = <400000>;
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	/* These are relatively safe rise/fall times. */
1858c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
1868c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci	tpm: tpm@20 {
1898c2ecf20Sopenharmony_ci		compatible = "infineon,slb9645tt";
1908c2ecf20Sopenharmony_ci		reg = <0x20>;
1918c2ecf20Sopenharmony_ci		powered-while-suspended;
1928c2ecf20Sopenharmony_ci	};
1938c2ecf20Sopenharmony_ci};
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciap_i2c_dig: &i2c2 {
1968c2ecf20Sopenharmony_ci	status = "okay";
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci	clock-frequency = <400000>;
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci	/* These are relatively safe rise/fall times. */
2018c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <50>;
2028c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <300>;
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ci	digitizer: digitizer@9 {
2058c2ecf20Sopenharmony_ci		/* wacom,w9013 */
2068c2ecf20Sopenharmony_ci		compatible = "hid-over-i2c";
2078c2ecf20Sopenharmony_ci		reg = <0x9>;
2088c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2098c2ecf20Sopenharmony_ci		pinctrl-0 = <&cpu1_dig_irq_l &cpu1_dig_pdct_l>;
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci		vdd-supply = <&p3_3v_dig>;
2128c2ecf20Sopenharmony_ci		post-power-on-delay-ms = <100>;
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio2>;
2158c2ecf20Sopenharmony_ci		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
2168c2ecf20Sopenharmony_ci
2178c2ecf20Sopenharmony_ci		hid-descr-addr = <0x1>;
2188c2ecf20Sopenharmony_ci	};
2198c2ecf20Sopenharmony_ci};
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci/* Adjustments to things in the gru baseboard */
2228c2ecf20Sopenharmony_ci
2238c2ecf20Sopenharmony_ci&ap_i2c_tp {
2248c2ecf20Sopenharmony_ci	trackpad@4a {
2258c2ecf20Sopenharmony_ci		compatible = "atmel,maxtouch";
2268c2ecf20Sopenharmony_ci		reg = <0x4a>;
2278c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2288c2ecf20Sopenharmony_ci		pinctrl-0 = <&trackpad_int_l>;
2298c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio1>;
2308c2ecf20Sopenharmony_ci		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
2318c2ecf20Sopenharmony_ci		linux,gpio-keymap = <KEY_RESERVED
2328c2ecf20Sopenharmony_ci				     KEY_RESERVED
2338c2ecf20Sopenharmony_ci				     KEY_RESERVED
2348c2ecf20Sopenharmony_ci				     BTN_LEFT>;
2358c2ecf20Sopenharmony_ci		wakeup-source;
2368c2ecf20Sopenharmony_ci	};
2378c2ecf20Sopenharmony_ci};
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci&ap_i2c_ts {
2408c2ecf20Sopenharmony_ci	touchscreen@4b {
2418c2ecf20Sopenharmony_ci		compatible = "atmel,maxtouch";
2428c2ecf20Sopenharmony_ci		reg = <0x4b>;
2438c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2448c2ecf20Sopenharmony_ci		pinctrl-0 = <&touch_int_l>;
2458c2ecf20Sopenharmony_ci		interrupt-parent = <&gpio3>;
2468c2ecf20Sopenharmony_ci		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
2478c2ecf20Sopenharmony_ci	};
2488c2ecf20Sopenharmony_ci};
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ci&ppvar_bigcpu_pwm {
2518c2ecf20Sopenharmony_ci	regulator-min-microvolt = <798674>;
2528c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1302172>;
2538c2ecf20Sopenharmony_ci};
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ci&ppvar_bigcpu {
2568c2ecf20Sopenharmony_ci	regulator-min-microvolt = <798674>;
2578c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1302172>;
2588c2ecf20Sopenharmony_ci	ctrl-voltage-range = <798674 1302172>;
2598c2ecf20Sopenharmony_ci};
2608c2ecf20Sopenharmony_ci
2618c2ecf20Sopenharmony_ci&ppvar_litcpu_pwm {
2628c2ecf20Sopenharmony_ci	regulator-min-microvolt = <799065>;
2638c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1303738>;
2648c2ecf20Sopenharmony_ci};
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ci&ppvar_litcpu {
2678c2ecf20Sopenharmony_ci	regulator-min-microvolt = <799065>;
2688c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1303738>;
2698c2ecf20Sopenharmony_ci	ctrl-voltage-range = <799065 1303738>;
2708c2ecf20Sopenharmony_ci};
2718c2ecf20Sopenharmony_ci
2728c2ecf20Sopenharmony_ci&ppvar_gpu_pwm {
2738c2ecf20Sopenharmony_ci	regulator-min-microvolt = <785782>;
2748c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1217729>;
2758c2ecf20Sopenharmony_ci};
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci&ppvar_gpu {
2788c2ecf20Sopenharmony_ci	regulator-min-microvolt = <785782>;
2798c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1217729>;
2808c2ecf20Sopenharmony_ci	ctrl-voltage-range = <785782 1217729>;
2818c2ecf20Sopenharmony_ci};
2828c2ecf20Sopenharmony_ci
2838c2ecf20Sopenharmony_ci&ppvar_centerlogic_pwm {
2848c2ecf20Sopenharmony_ci	regulator-min-microvolt = <800069>;
2858c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1049692>;
2868c2ecf20Sopenharmony_ci};
2878c2ecf20Sopenharmony_ci
2888c2ecf20Sopenharmony_ci&ppvar_centerlogic {
2898c2ecf20Sopenharmony_ci	regulator-min-microvolt = <800069>;
2908c2ecf20Sopenharmony_ci	regulator-max-microvolt = <1049692>;
2918c2ecf20Sopenharmony_ci	ctrl-voltage-range = <800069 1049692>;
2928c2ecf20Sopenharmony_ci};
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ci&saradc {
2958c2ecf20Sopenharmony_ci	status = "okay";
2968c2ecf20Sopenharmony_ci	vref-supply = <&pp1800_ap_io>;
2978c2ecf20Sopenharmony_ci};
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci&mvl_wifi {
3008c2ecf20Sopenharmony_ci	marvell,wakeup-pin = <14>; /* GPIO_14 on Marvell */
3018c2ecf20Sopenharmony_ci};
3028c2ecf20Sopenharmony_ci
3038c2ecf20Sopenharmony_ci&pinctrl {
3048c2ecf20Sopenharmony_ci	digitizer {
3058c2ecf20Sopenharmony_ci		/* Has external pullup */
3068c2ecf20Sopenharmony_ci		cpu1_dig_irq_l: cpu1-dig-irq-l {
3078c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
3088c2ecf20Sopenharmony_ci		};
3098c2ecf20Sopenharmony_ci
3108c2ecf20Sopenharmony_ci		/* Has external pullup */
3118c2ecf20Sopenharmony_ci		cpu1_dig_pdct_l: cpu1-dig-pdct-l {
3128c2ecf20Sopenharmony_ci			rockchip,pins = <2 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
3138c2ecf20Sopenharmony_ci		};
3148c2ecf20Sopenharmony_ci	};
3158c2ecf20Sopenharmony_ci
3168c2ecf20Sopenharmony_ci	discrete-regulators {
3178c2ecf20Sopenharmony_ci		cpu3_pen_pwr_en: cpu3-pen-pwr-en {
3188c2ecf20Sopenharmony_ci			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
3198c2ecf20Sopenharmony_ci		};
3208c2ecf20Sopenharmony_ci	};
3218c2ecf20Sopenharmony_ci
3228c2ecf20Sopenharmony_ci	pen {
3238c2ecf20Sopenharmony_ci		cpu1_pen_eject: cpu1-pen-eject {
3248c2ecf20Sopenharmony_ci			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
3258c2ecf20Sopenharmony_ci		};
3268c2ecf20Sopenharmony_ci	};
3278c2ecf20Sopenharmony_ci};
328