blob: ff81dfda3b9524885956a20e7229da1c70ddf9ba [file] [log] [blame]
Simon Glass348626f2019-01-21 14:53:24 -07001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Gru-Chromebook shared properties
4 *
5 * Copyright 2018 Google, Inc
6 */
7
8#include "rk3399-gru.dtsi"
9
10/ {
11 pp900_ap: pp900-ap {
12 compatible = "regulator-fixed";
13 regulator-name = "pp900_ap";
14
15 /* EC turns on w/ pp900_ap_en; always on for AP */
16 regulator-always-on;
17 regulator-boot-on;
18 regulator-min-microvolt = <900000>;
19 regulator-max-microvolt = <900000>;
20
21 vin-supply = <&ppvar_sys>;
22 };
23
24 /* EC turns on w/ pp900_usb_en */
25 pp900_usb: pp900-ap {
26 };
27
28 /* EC turns on w/ pp900_pcie_en */
29 pp900_pcie: pp900-ap {
30 };
31
32 pp3000: pp3000 {
33 compatible = "regulator-fixed";
34 regulator-name = "pp3000";
35 pinctrl-names = "default";
36 pinctrl-0 = <&pp3000_en>;
37
38 enable-active-high;
39 gpio = <&gpio0 12 GPIO_ACTIVE_HIGH>;
40
41 regulator-always-on;
42 regulator-boot-on;
43 regulator-min-microvolt = <3000000>;
44 regulator-max-microvolt = <3000000>;
45
46 vin-supply = <&ppvar_sys>;
47 };
48
49 ppvar_centerlogic_pwm: ppvar-centerlogic-pwm {
50 compatible = "pwm-regulator";
51 regulator-name = "ppvar_centerlogic_pwm";
52
53 pwms = <&pwm3 0 3337 0>;
54 pwm-supply = <&ppvar_sys>;
55 pwm-dutycycle-range = <100 0>;
56 pwm-dutycycle-unit = <100>;
57
58 /* EC turns on w/ ppvar_centerlogic_en; always on for AP */
59 regulator-always-on;
60 regulator-boot-on;
61 regulator-min-microvolt = <799434>;
62 regulator-max-microvolt = <1049925>;
63 };
64
65 ppvar_centerlogic: ppvar-centerlogic {
66 compatible = "vctrl-regulator";
67 regulator-name = "ppvar_centerlogic";
68
69 regulator-min-microvolt = <799434>;
70 regulator-max-microvolt = <1049925>;
71
72 ctrl-supply = <&ppvar_centerlogic_pwm>;
73 ctrl-voltage-range = <799434 1049925>;
74
75 regulator-settling-time-up-us = <378>;
76 min-slew-down-rate = <225>;
77 ovp-threshold-percent = <16>;
78 };
79
80 /* Schematics call this PPVAR even though it's fixed */
81 ppvar_logic: ppvar-logic {
82 compatible = "regulator-fixed";
83 regulator-name = "ppvar_logic";
84
85 /* EC turns on w/ ppvar_logic_en; always on for AP */
86 regulator-always-on;
87 regulator-boot-on;
88 regulator-min-microvolt = <900000>;
89 regulator-max-microvolt = <900000>;
90
91 vin-supply = <&ppvar_sys>;
92 };
93
94 pp1800_audio: pp1800-audio {
95 compatible = "regulator-fixed";
96 regulator-name = "pp1800_audio";
97 pinctrl-names = "default";
98 pinctrl-0 = <&pp1800_audio_en>;
99
100 enable-active-high;
101 gpio = <&gpio0 2 GPIO_ACTIVE_HIGH>;
102
103 regulator-always-on;
104 regulator-boot-on;
105
106 vin-supply = <&pp1800>;
107 };
108
109 /* gpio is shared with pp3300_wifi_bt */
110 pp1800_pcie: pp1800-pcie {
111 compatible = "regulator-fixed";
112 regulator-name = "pp1800_pcie";
113 pinctrl-names = "default";
114 pinctrl-0 = <&wlan_module_pd_l>;
115
116 enable-active-high;
117 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
118
119 /*
120 * Need to wait 1ms + ramp-up time before we can power on WiFi.
121 * This has been approximated as 8ms total.
122 */
123 regulator-enable-ramp-delay = <8000>;
124
125 vin-supply = <&pp1800>;
126 };
127
128 /* Always on; plain and simple */
129 pp3000_ap: pp3000_emmc: pp3000 {
130 };
131
132 pp1500_ap_io: pp1500-ap-io {
133 compatible = "regulator-fixed";
134 regulator-name = "pp1500_ap_io";
135 pinctrl-names = "default";
136 pinctrl-0 = <&pp1500_en>;
137
138 enable-active-high;
139 gpio = <&gpio0 10 GPIO_ACTIVE_HIGH>;
140
141 regulator-always-on;
142 regulator-boot-on;
143 regulator-min-microvolt = <1500000>;
144 regulator-max-microvolt = <1500000>;
145
146 vin-supply = <&pp1800>;
147 };
148
149 pp3300_disp: pp3300-disp {
150 compatible = "regulator-fixed";
151 regulator-name = "pp3300_disp";
152 pinctrl-names = "default";
153 pinctrl-0 = <&pp3300_disp_en>;
154
155 enable-active-high;
156 gpio = <&gpio4 27 GPIO_ACTIVE_HIGH>;
157
158 startup-delay-us = <2000>;
159 vin-supply = <&pp3300>;
160 };
161
162 /* EC turns on w/ pp3300_usb_en_l */
163 pp3300_usb: pp3300 {
164 };
165
166 /* gpio is shared with pp1800_pcie and pinctrl is set there */
167 pp3300_wifi_bt: pp3300-wifi-bt {
168 compatible = "regulator-fixed";
169 regulator-name = "pp3300_wifi_bt";
170
171 enable-active-high;
172 gpio = <&gpio0 4 GPIO_ACTIVE_HIGH>;
173
174 vin-supply = <&pp3300>;
175 };
176
177 /*
178 * This is a bit of a hack. The WiFi module should be reset at least
179 * 1ms after its regulators have ramped up (max rampup time is ~7ms).
180 * With some stretching of the imagination, we can call the 1.8V
181 * regulator a supply.
182 */
183 wlan_pd_n: wlan-pd-n {
184 compatible = "regulator-fixed";
185 regulator-name = "wlan_pd_n";
186 pinctrl-names = "default";
187 pinctrl-0 = <&wlan_module_reset_l>;
188
189 enable-active-high;
190 gpio = <&gpio1 11 GPIO_ACTIVE_HIGH>;
191
192 vin-supply = <&pp1800_pcie>;
193 };
194
195 backlight: backlight {
196 compatible = "pwm-backlight";
197 brightness-levels = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
198 17 18 19 20 21 22 23 24 25 26 27 28 29 30
199 31 32 33 34 35 36 37 38 39 40 41 42 43 44
200 45 46 47 48 49 50 51 52 53 54 55 56 57 58
201 59 60 61 62 63 64 65 66 67 68 69 70 71 72
202 73 74 75 76 77 78 79 80 81 82 83 84 85 86
203 87 88 89 90 91 92 93 94 95 96 97 98 99 100>;
204 default-brightness-level = <51>;
205 enable-gpios = <&gpio1 17 GPIO_ACTIVE_HIGH>;
206 power-supply = <&pp3300_disp>;
207 pinctrl-names = "default";
208 pinctrl-0 = <&bl_en>;
209 pwm-delay-us = <10000>;
210 };
211};
212
213&ppvar_bigcpu {
214 min-slew-down-rate = <225>;
215 ovp-threshold-percent = <16>;
216};
217
218&ppvar_litcpu {
219 min-slew-down-rate = <225>;
220 ovp-threshold-percent = <16>;
221};
222
223&ppvar_gpu {
224 min-slew-down-rate = <225>;
225 ovp-threshold-percent = <16>;
226};
227
228&cdn_dp {
229 extcon = <&usbc_extcon0>, <&usbc_extcon1>;
230};
231
232&edp {
233 status = "okay";
234
235 ports {
236 edp_out: port@1 {
237 reg = <1>;
238 #address-cells = <1>;
239 #size-cells = <0>;
240
241 edp_out_panel: endpoint@0 {
242 reg = <0>;
243 remote-endpoint = <&panel_in_edp>;
244 };
245 };
246 };
247};
248
249ap_i2c_mic: &i2c1 {
250 status = "okay";
251
252 clock-frequency = <400000>;
253
254 /* These are relatively safe rise/fall times */
255 i2c-scl-falling-time-ns = <50>;
256 i2c-scl-rising-time-ns = <300>;
257
258 headsetcodec: rt5514@57 {
259 compatible = "realtek,rt5514";
260 reg = <0x57>;
261 realtek,dmic-init-delay-ms = <20>;
262 };
263};
264
265ap_i2c_tp: &i2c5 {
266 status = "okay";
267
268 clock-frequency = <400000>;
269
270 /* These are relatively safe rise/fall times */
271 i2c-scl-falling-time-ns = <50>;
272 i2c-scl-rising-time-ns = <300>;
273
274 /*
275 * Note strange pullup enable. Apparently this avoids leakage but
276 * still allows us to get nice 4.7K pullups for high speed i2c
277 * transfers. Basically we want the pullup on whenever the ap is
278 * alive, so the "en" pin just gets set to output high.
279 */
280 pinctrl-0 = <&i2c5_xfer &ap_i2c_tp_pu_en>;
281};
282
283&cros_ec {
284 cros_ec_pwm: ec-pwm {
285 compatible = "google,cros-ec-pwm";
286 #pwm-cells = <1>;
287 };
288
289 usbc_extcon1: extcon@1 {
290 compatible = "google,extcon-usbc-cros-ec";
291 google,usb-port-id = <1>;
292
293 #extcon-cells = <0>;
294 };
295};
296
297&sound {
298 rockchip,codec = <&max98357a &headsetcodec
299 &codec &wacky_spi_audio &cdn_dp>;
300};
301
302&spi2 {
303 wacky_spi_audio: spi2@0 {
304 compatible = "realtek,rt5514";
305 reg = <0>;
306 interrupt-parent = <&gpio1>;
307 interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
308 pinctrl-names = "default";
309 pinctrl-0 = <&mic_int>;
310 /* May run faster once verified. */
311 spi-max-frequency = <10000000>;
312 wakeup-source;
313 };
314};
315
316&pci_rootport {
317 mvl_wifi: wifi@0,0 {
318 compatible = "pci1b4b,2b42";
319 reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
320 0x83010000 0x0 0x00100000 0x0 0x00100000>;
321 interrupt-parent = <&gpio0>;
322 interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
323 pinctrl-names = "default";
324 pinctrl-0 = <&wlan_host_wake_l>;
325 wakeup-source;
326 };
327};
328
329&tcphy1 {
330 status = "okay";
331 extcon = <&usbc_extcon1>;
332};
333
334&u2phy1 {
335 status = "okay";
336};
337
338&usb_host0_ehci {
339 status = "okay";
340};
341
342&usb_host1_ehci {
343 status = "okay";
344};
345
346&usb_host1_ohci {
347 status = "okay";
348};
349
350&usbdrd3_1 {
351 status = "okay";
352 extcon = <&usbc_extcon1>;
353};
354
355&usbdrd_dwc3_1 {
356 status = "okay";
357 dr_mode = "host";
358};
359
360&pinctrl {
361 discrete-regulators {
362 pp1500_en: pp1500-en {
363 rockchip,pins = <RK_GPIO0 10 RK_FUNC_GPIO
364 &pcfg_pull_none>;
365 };
366
367 pp1800_audio_en: pp1800-audio-en {
368 rockchip,pins = <RK_GPIO0 2 RK_FUNC_GPIO
369 &pcfg_pull_down>;
370 };
371
372 pp3000_en: pp3000-en {
373 rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO
374 &pcfg_pull_none>;
375 };
376
377 pp3300_disp_en: pp3300-disp-en {
378 rockchip,pins = <RK_GPIO4 27 RK_FUNC_GPIO
379 &pcfg_pull_none>;
380 };
381
382 wlan_module_pd_l: wlan-module-pd-l {
383 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO
384 &pcfg_pull_down>;
385 };
386 };
387};
388
389&wifi {
390 wifi_perst_l: wifi-perst-l {
391 rockchip,pins = <2 27 RK_FUNC_GPIO &pcfg_pull_none>;
392 };
393
394 wlan_host_wake_l: wlan-host-wake-l {
395 rockchip,pins = <0 8 RK_FUNC_GPIO &pcfg_pull_none>;
396 };
397};