arm64: dts: rockchip: add Gru Scarlet devicetrees
[muen/linux.git] / arch / arm64 / boot / dts / rockchip / rk3399-gru-kevin.dts
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
161 ap_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
177 ap_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 };