1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Gru-Kevin Rev 6+ board device tree source
4 *
5 * Copyright 2016-2017 Google, Inc
6 */
7
8/dts-v1/;
9#include "rk3399-gru-chromebook.dtsi"
10#include <dt-bindings/input/linux-event-codes.h>
11
12/*
13 * Kevin-specific things
14 *
15 * Things in this section should use names from Kevin schematic since no
16 * equivalent exists in Gru schematic.  If referring to signals that exist
17 * in Gru we use the Gru names, though.  Confusing enough for you?
18 */
19/ {
20	model = "Google Kevin";
21	compatible = "google,kevin-rev15", "google,kevin-rev14",
22		     "google,kevin-rev13", "google,kevin-rev12",
23		     "google,kevin-rev11", "google,kevin-rev10",
24		     "google,kevin-rev9", "google,kevin-rev8",
25		     "google,kevin-rev7", "google,kevin-rev6",
26		     "google,kevin", "google,gru", "rockchip,rk3399";
27
28	/* Power tree */
29
30	p3_3v_dig: p3-3v-dig {
31		compatible = "regulator-fixed";
32		regulator-name = "p3.3v_dig";
33		pinctrl-names = "default";
34		pinctrl-0 = <&cpu3_pen_pwr_en>;
35
36		enable-active-high;
37		gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
38		vin-supply = <&pp3300>;
39	};
40
41	edp_panel: edp-panel {
42		compatible = "sharp,lq123p1jx31", "simple-panel";
43		backlight = <&backlight>;
44		power-supply = <&pp3300_disp>;
45
46		ports {
47			panel_in_edp: endpoint {
48				remote-endpoint = <&edp_out_panel>;
49			};
50		};
51	};
52
53	thermistor_ppvar_bigcpu: thermistor-ppvar-bigcpu {
54		compatible = "murata,ncp15wb473";
55		pullup-uv = <1800000>;
56		pullup-ohm = <25500>;
57		pulldown-ohm = <0>;
58		io-channels = <&saradc 2>;
59		#thermal-sensor-cells = <0>;
60	};
61
62	thermistor_ppvar_litcpu: thermistor-ppvar-litcpu {
63		compatible = "murata,ncp15wb473";
64		pullup-uv = <1800000>;
65		pullup-ohm = <25500>;
66		pulldown-ohm = <0>;
67		io-channels = <&saradc 3>;
68		#thermal-sensor-cells = <0>;
69	};
70};
71
72&backlight {
73	pwms = <&cros_ec_pwm 1>;
74};
75
76&gpio_keys {
77	pinctrl-names = "default";
78	pinctrl-0 = <&bt_host_wake_l>, <&cpu1_pen_eject>;
79
80	pen-insert {
81		label = "Pen Insert";
82		/* Insert = low, eject = high */
83		gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
84		linux,code = <SW_PEN_INSERTED>;
85		linux,input-type = <EV_SW>;
86		wakeup-source;
87	};
88};
89
90&thermal_zones {
91	bigcpu_reg_thermal: bigcpu-reg-thermal {
92		polling-delay-passive = <100>; /* milliseconds */
93		polling-delay = <1000>; /* milliseconds */
94		thermal-sensors = <&thermistor_ppvar_bigcpu 0>;
95		sustainable-power = <4000>;
96
97		ppvar_bigcpu_trips: trips {
98			ppvar_bigcpu_on: ppvar-bigcpu-on {
99				temperature = <40000>;	/* millicelsius */
100				hysteresis = <2000>;	/* millicelsius */
101				type = "passive";
102			};
103
104			ppvar_bigcpu_alert: ppvar-bigcpu-alert {
105				temperature = <50000>;	/* millicelsius */
106				hysteresis = <2000>;	/* millicelsius */
107				type = "passive";
108			};
109
110			ppvar_bigcpu_crit: ppvar-bigcpu-crit {
111				temperature = <90000>;	/* millicelsius */
112				hysteresis = <0>;	/* millicelsius */
113				type = "critical";
114			};
115		};
116
117		cooling-maps {
118			map0 {
119				trip = <&ppvar_bigcpu_alert>;
120				cooling-device =
121					<&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
122				contribution = <4096>;
123			};
124			map1 {
125				trip = <&ppvar_bigcpu_alert>;
126				cooling-device =
127					<&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
128				contribution = <1024>;
129			};
130		};
131	};
132
133	litcpu_reg_thermal: litcpu-reg-thermal {
134		polling-delay-passive = <100>; /* milliseconds */
135		polling-delay = <1000>; /* milliseconds */
136		thermal-sensors = <&thermistor_ppvar_litcpu 0>;
137		sustainable-power = <4000>;
138
139		ppvar_litcpu_trips: trips {
140			ppvar_litcpu_on: ppvar-litcpu-on {
141				temperature = <40000>;	/* millicelsius */
142				hysteresis = <2000>;	/* millicelsius */
143				type = "passive";
144			};
145
146			ppvar_litcpu_alert: ppvar-litcpu-alert {
147				temperature = <50000>;	/* millicelsius */
148				hysteresis = <2000>;	/* millicelsius */
149				type = "passive";
150			};
151
152			ppvar_litcpu_crit: ppvar-litcpu-crit {
153				temperature = <90000>;	/* millicelsius */
154				hysteresis = <0>;	/* millicelsius */
155				type = "critical";
156			};
157		};
158	};
159};
160
161ap_i2c_tpm: &i2c0 {
162	status = "okay";
163
164	clock-frequency = <400000>;
165
166	/* These are relatively safe rise/fall times. */
167	i2c-scl-falling-time-ns = <50>;
168	i2c-scl-rising-time-ns = <300>;
169
170	tpm: tpm@20 {
171		compatible = "infineon,slb9645tt";
172		reg = <0x20>;
173		powered-while-suspended;
174	};
175};
176
177ap_i2c_dig: &i2c2 {
178	status = "okay";
179
180	clock-frequency = <400000>;
181
182	/* These are relatively safe rise/fall times. */
183	i2c-scl-falling-time-ns = <50>;
184	i2c-scl-rising-time-ns = <300>;
185
186	digitizer: digitizer@9 {
187		/* wacom,w9013 */
188		compatible = "hid-over-i2c";
189		reg = <0x9>;
190		pinctrl-names = "default";
191		pinctrl-0 = <&cpu1_dig_irq_l &cpu1_dig_pdct_l>;
192
193		vdd-supply = <&p3_3v_dig>;
194		post-power-on-delay-ms = <100>;
195
196		interrupt-parent = <&gpio2>;
197		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
198
199		hid-descr-addr = <0x1>;
200	};
201};
202
203/* Adjustments to things in the gru baseboard */
204
205&ap_i2c_tp {
206	trackpad@4a {
207		compatible = "atmel,maxtouch";
208		reg = <0x4a>;
209		pinctrl-names = "default";
210		pinctrl-0 = <&trackpad_int_l>;
211		interrupt-parent = <&gpio1>;
212		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
213		linux,gpio-keymap = <KEY_RESERVED
214				     KEY_RESERVED
215				     KEY_RESERVED
216				     BTN_LEFT>;
217		wakeup-source;
218	};
219};
220
221&ap_i2c_ts {
222	touchscreen@4b {
223		compatible = "atmel,maxtouch";
224		reg = <0x4b>;
225		pinctrl-names = "default";
226		pinctrl-0 = <&touch_int_l>;
227		interrupt-parent = <&gpio3>;
228		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
229	};
230};
231
232&ppvar_bigcpu_pwm {
233	regulator-min-microvolt = <798674>;
234	regulator-max-microvolt = <1302172>;
235};
236
237&ppvar_bigcpu {
238	regulator-min-microvolt = <798674>;
239	regulator-max-microvolt = <1302172>;
240	ctrl-voltage-range = <798674 1302172>;
241};
242
243&ppvar_litcpu_pwm {
244	regulator-min-microvolt = <799065>;
245	regulator-max-microvolt = <1303738>;
246};
247
248&ppvar_litcpu {
249	regulator-min-microvolt = <799065>;
250	regulator-max-microvolt = <1303738>;
251	ctrl-voltage-range = <799065 1303738>;
252};
253
254&ppvar_gpu_pwm {
255	regulator-min-microvolt = <785782>;
256	regulator-max-microvolt = <1217729>;
257};
258
259&ppvar_gpu {
260	regulator-min-microvolt = <785782>;
261	regulator-max-microvolt = <1217729>;
262	ctrl-voltage-range = <785782 1217729>;
263};
264
265&ppvar_centerlogic_pwm {
266	regulator-min-microvolt = <800069>;
267	regulator-max-microvolt = <1049692>;
268};
269
270&ppvar_centerlogic {
271	regulator-min-microvolt = <800069>;
272	regulator-max-microvolt = <1049692>;
273	ctrl-voltage-range = <800069 1049692>;
274};
275
276&saradc {
277	status = "okay";
278	vref-supply = <&pp1800_ap_io>;
279};
280
281&mvl_wifi {
282	marvell,wakeup-pin = <14>; /* GPIO_14 on Marvell */
283};
284
285&pinctrl {
286	digitizer {
287		/* Has external pullup */
288		cpu1_dig_irq_l: cpu1-dig-irq-l {
289			rockchip,pins = <2 4 RK_FUNC_GPIO &pcfg_pull_none>;
290		};
291
292		/* Has external pullup */
293		cpu1_dig_pdct_l: cpu1-dig-pdct-l {
294			rockchip,pins = <2 5 RK_FUNC_GPIO &pcfg_pull_none>;
295		};
296	};
297
298	discrete-regulators {
299		cpu3_pen_pwr_en: cpu3-pen-pwr-en {
300			rockchip,pins = <4 30 RK_FUNC_GPIO &pcfg_pull_none>;
301		};
302	};
303
304	pen {
305		cpu1_pen_eject: cpu1-pen-eject {
306			rockchip,pins = <0 13 RK_FUNC_GPIO &pcfg_pull_up>;
307		};
308	};
309};
310