xref: /openbmc/u-boot/arch/arm/dts/rk3399-gru.dtsi (revision e5fd39c886485e3dec77f4438a6e364c2987cf5f)
1d244474fSSimon Glass// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2d244474fSSimon Glass/*
3d244474fSSimon Glass * Google Gru (and derivatives) board device tree source
4d244474fSSimon Glass *
5d244474fSSimon Glass * Copyright 2016-2017 Google, Inc
6d244474fSSimon Glass */
7d244474fSSimon Glass
8d244474fSSimon Glass#include <dt-bindings/input/input.h>
9d244474fSSimon Glass#include "rk3399.dtsi"
10d244474fSSimon Glass#include "rk3399-op1-opp.dtsi"
11d244474fSSimon Glass
12d244474fSSimon Glass/ {
13d244474fSSimon Glass	chosen {
14*08c85b57SSimon Glass		u-boot,dm-pre-reloc;
15d244474fSSimon Glass		stdout-path = "serial2:115200n8";
16*08c85b57SSimon Glass		u-boot,spl-boot-order = &spi_flash;
17*08c85b57SSimon Glass	};
18*08c85b57SSimon Glass
19*08c85b57SSimon Glass	config {
20*08c85b57SSimon Glass		u-boot,spl-payload-offset = <0x40000>;
21d244474fSSimon Glass	};
22d244474fSSimon Glass
23d244474fSSimon Glass	/*
24d244474fSSimon Glass	 * Power Tree
25d244474fSSimon Glass	 *
26d244474fSSimon Glass	 * In general an attempt is made to include all rails called out by
27d244474fSSimon Glass	 * the schematic as long as those rails interact in some way with
28d244474fSSimon Glass	 * the AP.  AKA:
29d244474fSSimon Glass	 * - Rails that only connect to the EC (or devices that the EC talks to)
30d244474fSSimon Glass	 *   are not included.
31d244474fSSimon Glass	 * - Rails _are_ included if the rails go to the AP even if the AP
32d244474fSSimon Glass	 *   doesn't currently care about them / they are always on.  The idea
33d244474fSSimon Glass	 *   here is that it makes it easier to map to the schematic or extend
34d244474fSSimon Glass	 *   later.
35d244474fSSimon Glass	 *
36d244474fSSimon Glass	 * If two rails are substantially the same from the AP's point of
37d244474fSSimon Glass	 * view, though, we won't create a full fixed regulator.  We'll just
38d244474fSSimon Glass	 * put the child rail as an alias of the parent rail.  Sometimes rails
39d244474fSSimon Glass	 * look the same to the AP because one of these is true:
40d244474fSSimon Glass	 * - The EC controls the enable and the EC always enables a rail as
41d244474fSSimon Glass	 *   long as the AP is running.
42d244474fSSimon Glass	 * - The rails are actually connected to each other by a jumper and
43d244474fSSimon Glass	 *   the distinction is just there to add clarity/flexibility to the
44d244474fSSimon Glass	 *   schematic.
45d244474fSSimon Glass	 */
46d244474fSSimon Glass
47d244474fSSimon Glass	ppvar_sys: ppvar-sys {
48d244474fSSimon Glass		compatible = "regulator-fixed";
49d244474fSSimon Glass		regulator-name = "ppvar_sys";
50d244474fSSimon Glass		regulator-always-on;
51d244474fSSimon Glass		regulator-boot-on;
52d244474fSSimon Glass	};
53d244474fSSimon Glass
54d244474fSSimon Glass	pp1200_lpddr: pp1200-lpddr {
55d244474fSSimon Glass		compatible = "regulator-fixed";
56d244474fSSimon Glass		regulator-name = "pp1200_lpddr";
57d244474fSSimon Glass
58d244474fSSimon Glass		/* EC turns on w/ lpddr_pwr_en; always on for AP */
59d244474fSSimon Glass		regulator-always-on;
60d244474fSSimon Glass		regulator-boot-on;
61d244474fSSimon Glass		regulator-min-microvolt = <1200000>;
62d244474fSSimon Glass		regulator-max-microvolt = <1200000>;
63d244474fSSimon Glass
64d244474fSSimon Glass		vin-supply = <&ppvar_sys>;
65d244474fSSimon Glass	};
66d244474fSSimon Glass
67d244474fSSimon Glass	pp1800: pp1800 {
68d244474fSSimon Glass		compatible = "regulator-fixed";
69d244474fSSimon Glass		regulator-name = "pp1800";
70d244474fSSimon Glass
71d244474fSSimon Glass		/* Always on when ppvar_sys shows power good */
72d244474fSSimon Glass		regulator-always-on;
73d244474fSSimon Glass		regulator-boot-on;
74d244474fSSimon Glass		regulator-min-microvolt = <1800000>;
75d244474fSSimon Glass		regulator-max-microvolt = <1800000>;
76d244474fSSimon Glass
77d244474fSSimon Glass		vin-supply = <&ppvar_sys>;
78d244474fSSimon Glass	};
79d244474fSSimon Glass
80d244474fSSimon Glass	pp3300: pp3300 {
81d244474fSSimon Glass		compatible = "regulator-fixed";
82d244474fSSimon Glass		regulator-name = "pp3300";
83d244474fSSimon Glass
84d244474fSSimon Glass		/* Always on; plain and simple */
85d244474fSSimon Glass		regulator-always-on;
86d244474fSSimon Glass		regulator-boot-on;
87d244474fSSimon Glass		regulator-min-microvolt = <3300000>;
88d244474fSSimon Glass		regulator-max-microvolt = <3300000>;
89d244474fSSimon Glass
90d244474fSSimon Glass		vin-supply = <&ppvar_sys>;
91d244474fSSimon Glass	};
92d244474fSSimon Glass
93d244474fSSimon Glass	pp5000: pp5000 {
94d244474fSSimon Glass		compatible = "regulator-fixed";
95d244474fSSimon Glass		regulator-name = "pp5000";
96d244474fSSimon Glass
97d244474fSSimon Glass		/* EC turns on w/ pp5000_en; always on for AP */
98d244474fSSimon Glass		regulator-always-on;
99d244474fSSimon Glass		regulator-boot-on;
100d244474fSSimon Glass		regulator-min-microvolt = <5000000>;
101d244474fSSimon Glass		regulator-max-microvolt = <5000000>;
102d244474fSSimon Glass
103d244474fSSimon Glass		vin-supply = <&ppvar_sys>;
104d244474fSSimon Glass	};
105d244474fSSimon Glass
106d244474fSSimon Glass	ppvar_bigcpu_pwm: ppvar-bigcpu-pwm {
107d244474fSSimon Glass		compatible = "pwm-regulator";
108d244474fSSimon Glass		regulator-name = "ppvar_bigcpu_pwm";
109d244474fSSimon Glass
110d244474fSSimon Glass		pwms = <&pwm1 0 3337 0>;
111d244474fSSimon Glass		pwm-supply = <&ppvar_sys>;
112d244474fSSimon Glass		pwm-dutycycle-range = <100 0>;
113d244474fSSimon Glass		pwm-dutycycle-unit = <100>;
114d244474fSSimon Glass
115d244474fSSimon Glass		/* EC turns on w/ ap_core_en; always on for AP */
116d244474fSSimon Glass		regulator-always-on;
117d244474fSSimon Glass		regulator-boot-on;
118d244474fSSimon Glass		regulator-min-microvolt = <800107>;
119d244474fSSimon Glass		regulator-max-microvolt = <1302232>;
120d244474fSSimon Glass	};
121d244474fSSimon Glass
122d244474fSSimon Glass	ppvar_bigcpu: ppvar-bigcpu {
123d244474fSSimon Glass		compatible = "vctrl-regulator";
124d244474fSSimon Glass		regulator-name = "ppvar_bigcpu";
125d244474fSSimon Glass
126d244474fSSimon Glass		regulator-min-microvolt = <800107>;
127d244474fSSimon Glass		regulator-max-microvolt = <1302232>;
128d244474fSSimon Glass
129d244474fSSimon Glass		ctrl-supply = <&ppvar_bigcpu_pwm>;
130d244474fSSimon Glass		ctrl-voltage-range = <800107 1302232>;
131d244474fSSimon Glass
132d244474fSSimon Glass		regulator-settling-time-up-us = <322>;
133d244474fSSimon Glass	};
134d244474fSSimon Glass
135d244474fSSimon Glass	ppvar_litcpu_pwm: ppvar-litcpu-pwm {
136d244474fSSimon Glass		compatible = "pwm-regulator";
137d244474fSSimon Glass		regulator-name = "ppvar_litcpu_pwm";
138d244474fSSimon Glass
139d244474fSSimon Glass		pwms = <&pwm2 0 3337 0>;
140d244474fSSimon Glass		pwm-supply = <&ppvar_sys>;
141d244474fSSimon Glass		pwm-dutycycle-range = <100 0>;
142d244474fSSimon Glass		pwm-dutycycle-unit = <100>;
143d244474fSSimon Glass
144d244474fSSimon Glass		/* EC turns on w/ ap_core_en; always on for AP */
145d244474fSSimon Glass		regulator-always-on;
146d244474fSSimon Glass		regulator-boot-on;
147d244474fSSimon Glass		regulator-min-microvolt = <797743>;
148d244474fSSimon Glass		regulator-max-microvolt = <1307837>;
149d244474fSSimon Glass	};
150d244474fSSimon Glass
151d244474fSSimon Glass	ppvar_litcpu: ppvar-litcpu {
152d244474fSSimon Glass		compatible = "vctrl-regulator";
153d244474fSSimon Glass		regulator-name = "ppvar_litcpu";
154d244474fSSimon Glass
155d244474fSSimon Glass		regulator-min-microvolt = <797743>;
156d244474fSSimon Glass		regulator-max-microvolt = <1307837>;
157d244474fSSimon Glass
158d244474fSSimon Glass		ctrl-supply = <&ppvar_litcpu_pwm>;
159d244474fSSimon Glass		ctrl-voltage-range = <797743 1307837>;
160d244474fSSimon Glass
161d244474fSSimon Glass		regulator-settling-time-up-us = <384>;
162d244474fSSimon Glass	};
163d244474fSSimon Glass
164d244474fSSimon Glass	ppvar_gpu_pwm: ppvar-gpu-pwm {
165d244474fSSimon Glass		compatible = "pwm-regulator";
166d244474fSSimon Glass		regulator-name = "ppvar_gpu_pwm";
167d244474fSSimon Glass
168d244474fSSimon Glass		pwms = <&pwm0 0 3337 0>;
169d244474fSSimon Glass		pwm-supply = <&ppvar_sys>;
170d244474fSSimon Glass		pwm-dutycycle-range = <100 0>;
171d244474fSSimon Glass		pwm-dutycycle-unit = <100>;
172d244474fSSimon Glass
173d244474fSSimon Glass		/* EC turns on w/ ap_core_en; always on for AP */
174d244474fSSimon Glass		regulator-always-on;
175d244474fSSimon Glass		regulator-boot-on;
176d244474fSSimon Glass		regulator-min-microvolt = <786384>;
177d244474fSSimon Glass		regulator-max-microvolt = <1217747>;
178d244474fSSimon Glass	};
179d244474fSSimon Glass
180d244474fSSimon Glass	ppvar_gpu: ppvar-gpu {
181d244474fSSimon Glass		compatible = "vctrl-regulator";
182d244474fSSimon Glass		regulator-name = "ppvar_gpu";
183d244474fSSimon Glass
184d244474fSSimon Glass		regulator-min-microvolt = <786384>;
185d244474fSSimon Glass		regulator-max-microvolt = <1217747>;
186d244474fSSimon Glass
187d244474fSSimon Glass		ctrl-supply = <&ppvar_gpu_pwm>;
188d244474fSSimon Glass		ctrl-voltage-range = <786384 1217747>;
189d244474fSSimon Glass
190d244474fSSimon Glass		regulator-settling-time-up-us = <390>;
191d244474fSSimon Glass	};
192d244474fSSimon Glass
193d244474fSSimon Glass	/* EC turns on w/ pp900_ddrpll_en */
194d244474fSSimon Glass	pp900_ddrpll: pp900-ap {
195d244474fSSimon Glass	};
196d244474fSSimon Glass
197d244474fSSimon Glass	/* EC turns on w/ pp900_pll_en */
198d244474fSSimon Glass	pp900_pll: pp900-ap {
199d244474fSSimon Glass	};
200d244474fSSimon Glass
201d244474fSSimon Glass	/* EC turns on w/ pp900_pmu_en */
202d244474fSSimon Glass	pp900_pmu: pp900-ap {
203d244474fSSimon Glass	};
204d244474fSSimon Glass
205d244474fSSimon Glass	/* EC turns on w/ pp1800_s0_en_l */
206d244474fSSimon Glass	pp1800_ap_io: pp1800_emmc: pp1800_nfc: pp1800_s0: pp1800 {
207d244474fSSimon Glass	};
208d244474fSSimon Glass
209d244474fSSimon Glass	/* EC turns on w/ pp1800_avdd_en_l */
210d244474fSSimon Glass	pp1800_avdd: pp1800 {
211d244474fSSimon Glass	};
212d244474fSSimon Glass
213d244474fSSimon Glass	/* EC turns on w/ pp1800_lid_en_l */
214d244474fSSimon Glass	pp1800_lid: pp1800_mic: pp1800 {
215d244474fSSimon Glass	};
216d244474fSSimon Glass
217d244474fSSimon Glass	/* EC turns on w/ lpddr_pwr_en */
218d244474fSSimon Glass	pp1800_lpddr: pp1800 {
219d244474fSSimon Glass	};
220d244474fSSimon Glass
221d244474fSSimon Glass	/* EC turns on w/ pp1800_pmu_en_l */
222d244474fSSimon Glass	pp1800_pmu: pp1800 {
223d244474fSSimon Glass	};
224d244474fSSimon Glass
225d244474fSSimon Glass	/* EC turns on w/ pp1800_usb_en_l */
226d244474fSSimon Glass	pp1800_usb: pp1800 {
227d244474fSSimon Glass	};
228d244474fSSimon Glass
229d244474fSSimon Glass	pp3000_sd_slot: pp3000-sd-slot {
230d244474fSSimon Glass		compatible = "regulator-fixed";
231d244474fSSimon Glass		regulator-name = "pp3000_sd_slot";
232d244474fSSimon Glass		pinctrl-names = "default";
233d244474fSSimon Glass		pinctrl-0 = <&sd_slot_pwr_en>;
234d244474fSSimon Glass
235d244474fSSimon Glass		enable-active-high;
236d244474fSSimon Glass		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
237d244474fSSimon Glass
238d244474fSSimon Glass		vin-supply = <&pp3000>;
239d244474fSSimon Glass	};
240d244474fSSimon Glass
241d244474fSSimon Glass	/*
242d244474fSSimon Glass	 * Technically, this is a small abuse of 'regulator-gpio'; this
243d244474fSSimon Glass	 * regulator is a mux between pp1800 and pp3300. pp1800 and pp3300 are
244d244474fSSimon Glass	 * always on though, so it is sufficient to simply control the mux
245d244474fSSimon Glass	 * here.
246d244474fSSimon Glass	 */
247d244474fSSimon Glass	ppvar_sd_card_io: ppvar-sd-card-io {
248d244474fSSimon Glass		compatible = "regulator-gpio";
249d244474fSSimon Glass		regulator-name = "ppvar_sd_card_io";
250d244474fSSimon Glass		pinctrl-names = "default";
251d244474fSSimon Glass		pinctrl-0 = <&sd_io_pwr_en &sd_pwr_1800_sel>;
252d244474fSSimon Glass
253d244474fSSimon Glass		enable-active-high;
254d244474fSSimon Glass		enable-gpio = <&gpio2 2 GPIO_ACTIVE_HIGH>;
255d244474fSSimon Glass		gpios = <&gpio2 28 GPIO_ACTIVE_HIGH>;
256d244474fSSimon Glass		states = <1800000 0x1
257d244474fSSimon Glass			  3000000 0x0>;
258d244474fSSimon Glass
259d244474fSSimon Glass		regulator-min-microvolt = <1800000>;
260d244474fSSimon Glass		regulator-max-microvolt = <3000000>;
261d244474fSSimon Glass	};
262d244474fSSimon Glass
263d244474fSSimon Glass	/* EC turns on w/ pp3300_trackpad_en_l */
264d244474fSSimon Glass	pp3300_trackpad: pp3300-trackpad {
265d244474fSSimon Glass	};
266d244474fSSimon Glass
267d244474fSSimon Glass	/* EC turns on w/ usb_a_en */
268d244474fSSimon Glass	pp5000_usb_a_vbus: pp5000 {
269d244474fSSimon Glass	};
270d244474fSSimon Glass
271d244474fSSimon Glass	gpio_keys: gpio-keys {
272d244474fSSimon Glass		compatible = "gpio-keys";
273d244474fSSimon Glass		pinctrl-names = "default";
274d244474fSSimon Glass		pinctrl-0 = <&bt_host_wake_l>;
275d244474fSSimon Glass
276d244474fSSimon Glass		wake_on_bt: wake-on-bt {
277d244474fSSimon Glass			label = "Wake-on-Bluetooth";
278d244474fSSimon Glass			gpios = <&gpio0 3 GPIO_ACTIVE_LOW>;
279d244474fSSimon Glass			linux,code = <KEY_WAKEUP>;
280d244474fSSimon Glass			wakeup-source;
281d244474fSSimon Glass		};
282d244474fSSimon Glass	};
283d244474fSSimon Glass
284d244474fSSimon Glass	max98357a: max98357a {
285d244474fSSimon Glass		compatible = "maxim,max98357a";
286d244474fSSimon Glass		pinctrl-names = "default";
287d244474fSSimon Glass		pinctrl-0 = <&sdmode_en>;
288d244474fSSimon Glass		sdmode-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
289d244474fSSimon Glass		sdmode-delay = <2>;
290d244474fSSimon Glass		#sound-dai-cells = <0>;
291d244474fSSimon Glass		status = "okay";
292d244474fSSimon Glass	};
293d244474fSSimon Glass
294d244474fSSimon Glass	sound: sound {
295d244474fSSimon Glass		compatible = "rockchip,rk3399-gru-sound";
296d244474fSSimon Glass		rockchip,cpu = <&i2s0 &i2s2>;
297d244474fSSimon Glass	};
298d244474fSSimon Glass};
299d244474fSSimon Glass
300d244474fSSimon Glass&cdn_dp {
301d244474fSSimon Glass	status = "okay";
302d244474fSSimon Glass};
303d244474fSSimon Glass
304d244474fSSimon Glass/*
305d244474fSSimon Glass * Set some suspend operating points to avoid OVP in suspend
306d244474fSSimon Glass *
307d244474fSSimon Glass * When we go into S3 ARM Trusted Firmware will transition our PWM regulators
308d244474fSSimon Glass * from wherever they're at back to the "default" operating point (whatever
309d244474fSSimon Glass * voltage we get when we set the PWM pins to "input").
310d244474fSSimon Glass *
311d244474fSSimon Glass * This quick transition under light load has the possibility to trigger the
312d244474fSSimon Glass * regulator "over voltage protection" (OVP).
313d244474fSSimon Glass *
314d244474fSSimon Glass * To make extra certain that we don't hit this OVP at suspend time, we'll
315d244474fSSimon Glass * transition to a voltage that's much closer to the default (~1.0 V) so that
316d244474fSSimon Glass * there will not be a big jump.  Technically we only need to get within 200 mV
317d244474fSSimon Glass * of the default voltage, but the speed here should be fast enough and we need
318d244474fSSimon Glass * suspend/resume to be rock solid.
319d244474fSSimon Glass */
320d244474fSSimon Glass
321d244474fSSimon Glass&cluster0_opp {
322d244474fSSimon Glass	opp05 {
323d244474fSSimon Glass		opp-suspend;
324d244474fSSimon Glass	};
325d244474fSSimon Glass};
326d244474fSSimon Glass
327d244474fSSimon Glass&cluster1_opp {
328d244474fSSimon Glass	opp06 {
329d244474fSSimon Glass		opp-suspend;
330d244474fSSimon Glass	};
331d244474fSSimon Glass};
332d244474fSSimon Glass
333d244474fSSimon Glass&cpu_l0 {
334d244474fSSimon Glass	cpu-supply = <&ppvar_litcpu>;
335d244474fSSimon Glass};
336d244474fSSimon Glass
337d244474fSSimon Glass&cpu_l1 {
338d244474fSSimon Glass	cpu-supply = <&ppvar_litcpu>;
339d244474fSSimon Glass};
340d244474fSSimon Glass
341d244474fSSimon Glass&cpu_l2 {
342d244474fSSimon Glass	cpu-supply = <&ppvar_litcpu>;
343d244474fSSimon Glass};
344d244474fSSimon Glass
345d244474fSSimon Glass&cpu_l3 {
346d244474fSSimon Glass	cpu-supply = <&ppvar_litcpu>;
347d244474fSSimon Glass};
348d244474fSSimon Glass
349d244474fSSimon Glass&cpu_b0 {
350d244474fSSimon Glass	cpu-supply = <&ppvar_bigcpu>;
351d244474fSSimon Glass};
352d244474fSSimon Glass
353d244474fSSimon Glass&cpu_b1 {
354d244474fSSimon Glass	cpu-supply = <&ppvar_bigcpu>;
355d244474fSSimon Glass};
356d244474fSSimon Glass
357d244474fSSimon Glass&cru {
358d244474fSSimon Glass	assigned-clocks =
359d244474fSSimon Glass		<&cru PLL_GPLL>, <&cru PLL_CPLL>,
360d244474fSSimon Glass		<&cru PLL_NPLL>,
361d244474fSSimon Glass		<&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
362d244474fSSimon Glass		<&cru PCLK_PERIHP>,
363d244474fSSimon Glass		<&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
364d244474fSSimon Glass		<&cru PCLK_PERILP0>, <&cru ACLK_CCI>,
365d244474fSSimon Glass		<&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>,
366d244474fSSimon Glass		<&cru ACLK_VIO>, <&cru ACLK_HDCP>,
367d244474fSSimon Glass		<&cru ACLK_GIC_PRE>,
368d244474fSSimon Glass		<&cru PCLK_DDR>;
369d244474fSSimon Glass	assigned-clock-rates =
370d244474fSSimon Glass		<600000000>, <800000000>,
371d244474fSSimon Glass		<1000000000>,
372d244474fSSimon Glass		<150000000>, <75000000>,
373d244474fSSimon Glass		<37500000>,
374d244474fSSimon Glass		<100000000>, <100000000>,
375d244474fSSimon Glass		<50000000>, <800000000>,
376d244474fSSimon Glass		<100000000>, <50000000>,
377d244474fSSimon Glass		<400000000>, <400000000>,
378d244474fSSimon Glass		<200000000>,
379d244474fSSimon Glass		<200000000>;
380d244474fSSimon Glass};
381d244474fSSimon Glass
382d244474fSSimon Glass&emmc_phy {
383d244474fSSimon Glass	status = "okay";
384d244474fSSimon Glass};
385d244474fSSimon Glass
386d244474fSSimon Glass&gpu {
387d244474fSSimon Glass	mali-supply = <&ppvar_gpu>;
388d244474fSSimon Glass	status = "okay";
389d244474fSSimon Glass};
390d244474fSSimon Glass
391d244474fSSimon Glassap_i2c_ts: &i2c3 {
392d244474fSSimon Glass	status = "okay";
393d244474fSSimon Glass
394d244474fSSimon Glass	clock-frequency = <400000>;
395d244474fSSimon Glass
396d244474fSSimon Glass	/* These are relatively safe rise/fall times */
397d244474fSSimon Glass	i2c-scl-falling-time-ns = <50>;
398d244474fSSimon Glass	i2c-scl-rising-time-ns = <300>;
399d244474fSSimon Glass};
400d244474fSSimon Glass
401d244474fSSimon Glassap_i2c_audio: &i2c8 {
402d244474fSSimon Glass	status = "okay";
403d244474fSSimon Glass
404d244474fSSimon Glass	clock-frequency = <400000>;
405d244474fSSimon Glass
406d244474fSSimon Glass	/* These are relatively safe rise/fall times */
407d244474fSSimon Glass	i2c-scl-falling-time-ns = <50>;
408d244474fSSimon Glass	i2c-scl-rising-time-ns = <300>;
409d244474fSSimon Glass
410d244474fSSimon Glass	codec: da7219@1a {
411d244474fSSimon Glass		compatible = "dlg,da7219";
412d244474fSSimon Glass		reg = <0x1a>;
413d244474fSSimon Glass		interrupt-parent = <&gpio1>;
414d244474fSSimon Glass		interrupts = <23 IRQ_TYPE_LEVEL_LOW>;
415d244474fSSimon Glass		clocks = <&cru SCLK_I2S_8CH_OUT>;
416d244474fSSimon Glass		clock-names = "mclk";
417d244474fSSimon Glass		dlg,micbias-lvl = <2600>;
418d244474fSSimon Glass		dlg,mic-amp-in-sel = "diff";
419d244474fSSimon Glass		pinctrl-names = "default";
420d244474fSSimon Glass		pinctrl-0 = <&headset_int_l>;
421d244474fSSimon Glass		VDD-supply = <&pp1800>;
422d244474fSSimon Glass		VDDMIC-supply = <&pp3300>;
423d244474fSSimon Glass		VDDIO-supply = <&pp1800>;
424d244474fSSimon Glass
425d244474fSSimon Glass		da7219_aad {
426d244474fSSimon Glass			dlg,adc-1bit-rpt = <1>;
427d244474fSSimon Glass			dlg,btn-avg = <4>;
428d244474fSSimon Glass			dlg,btn-cfg = <50>;
429d244474fSSimon Glass			dlg,mic-det-thr = <500>;
430d244474fSSimon Glass			dlg,jack-ins-deb = <20>;
431d244474fSSimon Glass			dlg,jack-det-rate = "32ms_64ms";
432d244474fSSimon Glass			dlg,jack-rem-deb = <1>;
433d244474fSSimon Glass
434d244474fSSimon Glass			dlg,a-d-btn-thr = <0xa>;
435d244474fSSimon Glass			dlg,d-b-btn-thr = <0x16>;
436d244474fSSimon Glass			dlg,b-c-btn-thr = <0x21>;
437d244474fSSimon Glass			dlg,c-mic-btn-thr = <0x3E>;
438d244474fSSimon Glass		};
439d244474fSSimon Glass	};
440d244474fSSimon Glass};
441d244474fSSimon Glass
442d244474fSSimon Glass&i2s0 {
443d244474fSSimon Glass	status = "okay";
444d244474fSSimon Glass};
445d244474fSSimon Glass
446d244474fSSimon Glass&i2s2 {
447d244474fSSimon Glass	status = "okay";
448d244474fSSimon Glass};
449d244474fSSimon Glass
450d244474fSSimon Glass&io_domains {
451d244474fSSimon Glass	status = "okay";
452d244474fSSimon Glass
453d244474fSSimon Glass	audio-supply = <&pp1800_audio>;		/* APIO5_VDD;  3d 4a */
454d244474fSSimon Glass	bt656-supply = <&pp1800_ap_io>;		/* APIO2_VDD;  2a 2b */
455d244474fSSimon Glass	gpio1830-supply = <&pp3000_ap>;		/* APIO4_VDD;  4c 4d */
456d244474fSSimon Glass	sdmmc-supply = <&ppvar_sd_card_io>;	/* SDMMC0_VDD; 4b    */
457d244474fSSimon Glass};
458d244474fSSimon Glass
459d244474fSSimon Glass&pcie0 {
460d244474fSSimon Glass	status = "okay";
461d244474fSSimon Glass
462d244474fSSimon Glass	ep-gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>;
463d244474fSSimon Glass	pinctrl-names = "default";
464d244474fSSimon Glass	pinctrl-0 = <&pcie_clkreqn_cpm>, <&wifi_perst_l>;
465d244474fSSimon Glass	vpcie3v3-supply = <&pp3300_wifi_bt>;
466d244474fSSimon Glass	vpcie1v8-supply = <&wlan_pd_n>; /* HACK: see &wlan_pd_n */
467d244474fSSimon Glass	vpcie0v9-supply = <&pp900_pcie>;
468d244474fSSimon Glass
469d244474fSSimon Glass	pci_rootport: pcie@0,0 {
470d244474fSSimon Glass		reg = <0x83000000 0x0 0x00000000 0x0 0x00000000>;
471d244474fSSimon Glass		#address-cells = <3>;
472d244474fSSimon Glass		#size-cells = <2>;
473d244474fSSimon Glass		ranges;
474d244474fSSimon Glass	};
475d244474fSSimon Glass};
476d244474fSSimon Glass
477d244474fSSimon Glass&pcie_phy {
478d244474fSSimon Glass	status = "okay";
479d244474fSSimon Glass};
480d244474fSSimon Glass
481d244474fSSimon Glass&pmu_io_domains {
482d244474fSSimon Glass	status = "okay";
483d244474fSSimon Glass
484d244474fSSimon Glass	pmu1830-supply = <&pp1800_pmu>;		/* PMUIO2_VDD */
485d244474fSSimon Glass};
486d244474fSSimon Glass
487d244474fSSimon Glass&pwm0 {
488d244474fSSimon Glass	status = "okay";
489d244474fSSimon Glass};
490d244474fSSimon Glass
491d244474fSSimon Glass&pwm1 {
492d244474fSSimon Glass	status = "okay";
493d244474fSSimon Glass};
494d244474fSSimon Glass
495d244474fSSimon Glass&pwm2 {
496d244474fSSimon Glass	status = "okay";
497d244474fSSimon Glass};
498d244474fSSimon Glass
499d244474fSSimon Glass&pwm3 {
500d244474fSSimon Glass	status = "okay";
501d244474fSSimon Glass};
502d244474fSSimon Glass
503d244474fSSimon Glass&sdhci {
504d244474fSSimon Glass	/*
505d244474fSSimon Glass	 * Signal integrity isn't great at 200 MHz and 150 MHz (DDR) gives the
506d244474fSSimon Glass	 * same (or nearly the same) performance for all eMMC that are intended
507d244474fSSimon Glass	 * to be used.
508d244474fSSimon Glass	 */
509d244474fSSimon Glass	assigned-clock-rates = <150000000>;
510d244474fSSimon Glass
511d244474fSSimon Glass	bus-width = <8>;
512d244474fSSimon Glass	mmc-hs400-1_8v;
513d244474fSSimon Glass	mmc-hs400-enhanced-strobe;
514d244474fSSimon Glass	non-removable;
515d244474fSSimon Glass	status = "okay";
516d244474fSSimon Glass};
517d244474fSSimon Glass
518d244474fSSimon Glass&sdmmc {
519d244474fSSimon Glass	status = "okay";
520d244474fSSimon Glass
521d244474fSSimon Glass	/*
522d244474fSSimon Glass	 * Note: configure "sdmmc_cd" as card detect even though it's actually
523d244474fSSimon Glass	 * hooked to ground.  Because we specified "cd-gpios" below dw_mmc
524d244474fSSimon Glass	 * should be ignoring card detect anyway.  Specifying the pin as
525d244474fSSimon Glass	 * sdmmc_cd means that even if you've got GRF_SOC_CON7[12] (force_jtag)
526d244474fSSimon Glass	 * turned on that the system will still make sure the port is
527d244474fSSimon Glass	 * configured as SDMMC and not JTAG.
528d244474fSSimon Glass	 */
529d244474fSSimon Glass	pinctrl-names = "default";
530d244474fSSimon Glass	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_cd_gpio
531d244474fSSimon Glass		     &sdmmc_bus4>;
532d244474fSSimon Glass
533d244474fSSimon Glass	bus-width = <4>;
534d244474fSSimon Glass	cap-mmc-highspeed;
535d244474fSSimon Glass	cap-sd-highspeed;
536d244474fSSimon Glass	cd-gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
537d244474fSSimon Glass	disable-wp;
538d244474fSSimon Glass	sd-uhs-sdr12;
539d244474fSSimon Glass	sd-uhs-sdr25;
540d244474fSSimon Glass	sd-uhs-sdr50;
541d244474fSSimon Glass	sd-uhs-sdr104;
542d244474fSSimon Glass	vmmc-supply = <&pp3000_sd_slot>;
543d244474fSSimon Glass	vqmmc-supply = <&ppvar_sd_card_io>;
544d244474fSSimon Glass};
545d244474fSSimon Glass
546d244474fSSimon Glass&spi1 {
547d244474fSSimon Glass	status = "okay";
548*08c85b57SSimon Glass	u-boot,dm-pre-reloc;
549d244474fSSimon Glass
550d244474fSSimon Glass	pinctrl-names = "default", "sleep";
551d244474fSSimon Glass	pinctrl-1 = <&spi1_sleep>;
552d244474fSSimon Glass
553*08c85b57SSimon Glass	spi_flash: spiflash@0 {
554*08c85b57SSimon Glass		u-boot,dm-pre-reloc;
555*08c85b57SSimon Glass		compatible = "jedec,spi-nor", "spi-flash";
556d244474fSSimon Glass		reg = <0>;
557d244474fSSimon Glass
558d244474fSSimon Glass		/* May run faster once verified. */
559d244474fSSimon Glass		spi-max-frequency = <10000000>;
560d244474fSSimon Glass	};
561d244474fSSimon Glass};
562d244474fSSimon Glass
563d244474fSSimon Glass&spi2 {
564d244474fSSimon Glass	status = "okay";
565d244474fSSimon Glass};
566d244474fSSimon Glass
567d244474fSSimon Glass&spi5 {
568d244474fSSimon Glass	status = "okay";
569*08c85b57SSimon Glass	spi-activate-delay = <100>;
570*08c85b57SSimon Glass	spi-max-frequency = <3000000>;
571*08c85b57SSimon Glass	spi-deactivate-delay = <200>;
572d244474fSSimon Glass
573d244474fSSimon Glass	cros_ec: ec@0 {
574d244474fSSimon Glass		compatible = "google,cros-ec-spi";
575d244474fSSimon Glass		reg = <0>;
576d244474fSSimon Glass		interrupt-parent = <&gpio0>;
577d244474fSSimon Glass		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
578*08c85b57SSimon Glass		ec-interrupt = <&gpio0 1 GPIO_ACTIVE_LOW>;
579d244474fSSimon Glass		pinctrl-names = "default";
580d244474fSSimon Glass		pinctrl-0 = <&ec_ap_int_l>;
581d244474fSSimon Glass		spi-max-frequency = <3000000>;
582d244474fSSimon Glass
583d244474fSSimon Glass		i2c_tunnel: i2c-tunnel {
584d244474fSSimon Glass			compatible = "google,cros-ec-i2c-tunnel";
585d244474fSSimon Glass			google,remote-bus = <4>;
586d244474fSSimon Glass			#address-cells = <1>;
587d244474fSSimon Glass			#size-cells = <0>;
588d244474fSSimon Glass		};
589d244474fSSimon Glass
590d244474fSSimon Glass		usbc_extcon0: extcon@0 {
591d244474fSSimon Glass			compatible = "google,extcon-usbc-cros-ec";
592d244474fSSimon Glass			google,usb-port-id = <0>;
593d244474fSSimon Glass
594d244474fSSimon Glass			#extcon-cells = <0>;
595d244474fSSimon Glass		};
596d244474fSSimon Glass	};
597d244474fSSimon Glass};
598d244474fSSimon Glass
599d244474fSSimon Glass&tsadc {
600d244474fSSimon Glass	status = "okay";
601d244474fSSimon Glass
602d244474fSSimon Glass	rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
603d244474fSSimon Glass	rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
604d244474fSSimon Glass};
605d244474fSSimon Glass
606d244474fSSimon Glass&tcphy0 {
607d244474fSSimon Glass	status = "okay";
608d244474fSSimon Glass	extcon = <&usbc_extcon0>;
609d244474fSSimon Glass};
610d244474fSSimon Glass
611d244474fSSimon Glass&u2phy0 {
612d244474fSSimon Glass	status = "okay";
613d244474fSSimon Glass};
614d244474fSSimon Glass
615d244474fSSimon Glass&u2phy0_host {
616d244474fSSimon Glass	status = "okay";
617d244474fSSimon Glass};
618d244474fSSimon Glass
619d244474fSSimon Glass&u2phy1_host {
620d244474fSSimon Glass	status = "okay";
621d244474fSSimon Glass};
622d244474fSSimon Glass
623d244474fSSimon Glass&u2phy0_otg {
624d244474fSSimon Glass	status = "okay";
625d244474fSSimon Glass};
626d244474fSSimon Glass
627d244474fSSimon Glass&u2phy1_otg {
628d244474fSSimon Glass	status = "okay";
629d244474fSSimon Glass};
630d244474fSSimon Glass
631d244474fSSimon Glass&uart2 {
632d244474fSSimon Glass	status = "okay";
633*08c85b57SSimon Glass	u-boot,dm-pre-reloc;
634d244474fSSimon Glass};
635d244474fSSimon Glass
636d244474fSSimon Glass&usb_host0_ohci {
637d244474fSSimon Glass	status = "okay";
638d244474fSSimon Glass};
639d244474fSSimon Glass
640d244474fSSimon Glass&usbdrd3_0 {
641d244474fSSimon Glass	status = "okay";
642d244474fSSimon Glass	extcon = <&usbc_extcon0>;
643d244474fSSimon Glass};
644d244474fSSimon Glass
645d244474fSSimon Glass&usbdrd_dwc3_0 {
646d244474fSSimon Glass	status = "okay";
647d244474fSSimon Glass	dr_mode = "host";
648d244474fSSimon Glass};
649d244474fSSimon Glass
650d244474fSSimon Glass&vopb {
651d244474fSSimon Glass	status = "okay";
652d244474fSSimon Glass};
653d244474fSSimon Glass
654d244474fSSimon Glass&vopb_mmu {
655d244474fSSimon Glass	status = "okay";
656d244474fSSimon Glass};
657d244474fSSimon Glass
658d244474fSSimon Glass&vopl {
659d244474fSSimon Glass	status = "okay";
660d244474fSSimon Glass};
661d244474fSSimon Glass
662d244474fSSimon Glass&vopl_mmu {
663d244474fSSimon Glass	status = "okay";
664d244474fSSimon Glass};
665d244474fSSimon Glass
666*08c85b57SSimon Glass#include <cros-ec-keyboard.dtsi>
667*08c85b57SSimon Glass#include <cros-ec-sbs.dtsi>
668d244474fSSimon Glass
669d244474fSSimon Glass&pinctrl {
670d244474fSSimon Glass	/*
671d244474fSSimon Glass	 * pinctrl settings for pins that have no real owners.
672d244474fSSimon Glass	 *
673d244474fSSimon Glass	 * At the moment settings are identical for S0 and S3, but if we later
674d244474fSSimon Glass	 * need to configure things differently for S3 we'll adjust here.
675d244474fSSimon Glass	 */
676d244474fSSimon Glass	pinctrl-names = "default";
677d244474fSSimon Glass	pinctrl-0 = <
678d244474fSSimon Glass		&ap_pwroff	/* AP will auto-assert this when in S3 */
679d244474fSSimon Glass		&clk_32k	/* This pin is always 32k on gru boards */
680d244474fSSimon Glass	>;
681d244474fSSimon Glass
682d244474fSSimon Glass	pcfg_output_low: pcfg-output-low {
683d244474fSSimon Glass		output-low;
684d244474fSSimon Glass	};
685d244474fSSimon Glass
686d244474fSSimon Glass	pcfg_output_high: pcfg-output-high {
687d244474fSSimon Glass		output-high;
688d244474fSSimon Glass	};
689d244474fSSimon Glass
690d244474fSSimon Glass	pcfg_pull_none_8ma: pcfg-pull-none-8ma {
691d244474fSSimon Glass		bias-disable;
692d244474fSSimon Glass		drive-strength = <8>;
693d244474fSSimon Glass	};
694d244474fSSimon Glass
695d244474fSSimon Glass	backlight-enable {
696d244474fSSimon Glass		bl_en: bl-en {
697d244474fSSimon Glass			rockchip,pins = <1 17 RK_FUNC_GPIO &pcfg_pull_none>;
698d244474fSSimon Glass		};
699d244474fSSimon Glass	};
700d244474fSSimon Glass
701d244474fSSimon Glass	cros-ec {
702d244474fSSimon Glass		ec_ap_int_l: ec-ap-int-l {
703d244474fSSimon Glass			rockchip,pins = <RK_GPIO0 1 RK_FUNC_GPIO &pcfg_pull_up>;
704d244474fSSimon Glass		};
705d244474fSSimon Glass	};
706d244474fSSimon Glass
707d244474fSSimon Glass	discrete-regulators {
708d244474fSSimon Glass		sd_io_pwr_en: sd-io-pwr-en {
709d244474fSSimon Glass			rockchip,pins = <RK_GPIO2 2 RK_FUNC_GPIO
710d244474fSSimon Glass					 &pcfg_pull_none>;
711d244474fSSimon Glass		};
712d244474fSSimon Glass
713d244474fSSimon Glass		sd_pwr_1800_sel: sd-pwr-1800-sel {
714d244474fSSimon Glass			rockchip,pins = <RK_GPIO2 28 RK_FUNC_GPIO
715d244474fSSimon Glass					 &pcfg_pull_none>;
716d244474fSSimon Glass		};
717d244474fSSimon Glass
718d244474fSSimon Glass		sd_slot_pwr_en: sd-slot-pwr-en {
719d244474fSSimon Glass			rockchip,pins = <RK_GPIO4 29 RK_FUNC_GPIO
720d244474fSSimon Glass					 &pcfg_pull_none>;
721d244474fSSimon Glass		};
722d244474fSSimon Glass	};
723d244474fSSimon Glass
724d244474fSSimon Glass	codec {
725d244474fSSimon Glass		/* Has external pullup */
726d244474fSSimon Glass		headset_int_l: headset-int-l {
727d244474fSSimon Glass			rockchip,pins = <1 23 RK_FUNC_GPIO &pcfg_pull_none>;
728d244474fSSimon Glass		};
729d244474fSSimon Glass
730d244474fSSimon Glass		mic_int: mic-int {
731d244474fSSimon Glass			rockchip,pins = <1 13 RK_FUNC_GPIO &pcfg_pull_down>;
732d244474fSSimon Glass		};
733d244474fSSimon Glass	};
734d244474fSSimon Glass
735d244474fSSimon Glass	max98357a {
736d244474fSSimon Glass		sdmode_en: sdmode-en {
737d244474fSSimon Glass			rockchip,pins = <1 2 RK_FUNC_GPIO &pcfg_pull_down>;
738d244474fSSimon Glass		};
739d244474fSSimon Glass	};
740d244474fSSimon Glass
741d244474fSSimon Glass	pcie {
742d244474fSSimon Glass		pcie_clkreqn_cpm: pci-clkreqn-cpm {
743d244474fSSimon Glass			/*
744d244474fSSimon Glass			 * Since our pcie doesn't support ClockPM(CPM), we want
745d244474fSSimon Glass			 * to hack this as gpio, so the EP could be able to
746d244474fSSimon Glass			 * de-assert it along and make ClockPM(CPM) work.
747d244474fSSimon Glass			 */
748d244474fSSimon Glass			rockchip,pins = <2 26 RK_FUNC_GPIO &pcfg_pull_none>;
749d244474fSSimon Glass		};
750d244474fSSimon Glass	};
751d244474fSSimon Glass
752d244474fSSimon Glass	sdmmc {
753d244474fSSimon Glass		/*
754d244474fSSimon Glass		 * We run sdmmc at max speed; bump up drive strength.
755d244474fSSimon Glass		 * We also have external pulls, so disable the internal ones.
756d244474fSSimon Glass		 */
757d244474fSSimon Glass		sdmmc_bus4: sdmmc-bus4 {
758d244474fSSimon Glass			rockchip,pins =
759d244474fSSimon Glass				<4 8 RK_FUNC_1 &pcfg_pull_none_8ma>,
760d244474fSSimon Glass				<4 9 RK_FUNC_1 &pcfg_pull_none_8ma>,
761d244474fSSimon Glass				<4 10 RK_FUNC_1 &pcfg_pull_none_8ma>,
762d244474fSSimon Glass				<4 11 RK_FUNC_1 &pcfg_pull_none_8ma>;
763d244474fSSimon Glass		};
764d244474fSSimon Glass
765d244474fSSimon Glass		sdmmc_clk: sdmmc-clk {
766d244474fSSimon Glass			rockchip,pins =
767d244474fSSimon Glass				<4 12 RK_FUNC_1 &pcfg_pull_none_8ma>;
768d244474fSSimon Glass		};
769d244474fSSimon Glass
770d244474fSSimon Glass		sdmmc_cmd: sdmmc-cmd {
771d244474fSSimon Glass			rockchip,pins =
772d244474fSSimon Glass				<4 13 RK_FUNC_1 &pcfg_pull_none_8ma>;
773d244474fSSimon Glass		};
774d244474fSSimon Glass
775d244474fSSimon Glass		/*
776d244474fSSimon Glass		 * In our case the official card detect is hooked to ground
777d244474fSSimon Glass		 * to avoid getting access to JTAG just by sticking something
778d244474fSSimon Glass		 * in the SD card slot (see the force_jtag bit in the TRM).
779d244474fSSimon Glass		 *
780d244474fSSimon Glass		 * We still configure it as card detect because it doesn't
781d244474fSSimon Glass		 * hurt and dw_mmc will ignore it.  We make sure to disable
782d244474fSSimon Glass		 * the pull though so we don't burn needless power.
783d244474fSSimon Glass		 */
784d244474fSSimon Glass		sdmmc_cd: sdmmc-cd {
785d244474fSSimon Glass			rockchip,pins =
786d244474fSSimon Glass				<0 7 RK_FUNC_1 &pcfg_pull_none>;
787d244474fSSimon Glass		};
788d244474fSSimon Glass
789d244474fSSimon Glass		/* This is where we actually hook up CD; has external pull */
790d244474fSSimon Glass		sdmmc_cd_gpio: sdmmc-cd-gpio {
791d244474fSSimon Glass			rockchip,pins = <4 24 RK_FUNC_GPIO &pcfg_pull_none>;
792d244474fSSimon Glass		};
793d244474fSSimon Glass	};
794d244474fSSimon Glass
795d244474fSSimon Glass	spi1 {
796d244474fSSimon Glass		spi1_sleep: spi1-sleep {
797d244474fSSimon Glass			/*
798d244474fSSimon Glass			 * Pull down SPI1 CLK/CS/RX/TX during suspend, to
799d244474fSSimon Glass			 * prevent leakage.
800d244474fSSimon Glass			 */
801d244474fSSimon Glass			rockchip,pins = <1 9 RK_FUNC_GPIO &pcfg_pull_down>,
802d244474fSSimon Glass					<1 10 RK_FUNC_GPIO &pcfg_pull_down>,
803d244474fSSimon Glass					<1 7 RK_FUNC_GPIO &pcfg_pull_down>,
804d244474fSSimon Glass					<1 8 RK_FUNC_GPIO &pcfg_pull_down>;
805d244474fSSimon Glass		};
806d244474fSSimon Glass	};
807d244474fSSimon Glass
808d244474fSSimon Glass	touchscreen {
809d244474fSSimon Glass		touch_int_l: touch-int-l {
810d244474fSSimon Glass			rockchip,pins = <3 13 RK_FUNC_GPIO &pcfg_pull_up>;
811d244474fSSimon Glass		};
812d244474fSSimon Glass
813d244474fSSimon Glass		touch_reset_l: touch-reset-l {
814d244474fSSimon Glass			rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_pull_none>;
815d244474fSSimon Glass		};
816d244474fSSimon Glass	};
817d244474fSSimon Glass
818d244474fSSimon Glass	trackpad {
819d244474fSSimon Glass		ap_i2c_tp_pu_en: ap-i2c-tp-pu-en {
820d244474fSSimon Glass			rockchip,pins = <3 12 RK_FUNC_GPIO &pcfg_output_high>;
821d244474fSSimon Glass		};
822d244474fSSimon Glass
823d244474fSSimon Glass		trackpad_int_l: trackpad-int-l {
824d244474fSSimon Glass			rockchip,pins = <1 4 RK_FUNC_GPIO &pcfg_pull_up>;
825d244474fSSimon Glass		};
826d244474fSSimon Glass	};
827d244474fSSimon Glass
828d244474fSSimon Glass	wifi: wifi {
829d244474fSSimon Glass		wlan_module_reset_l: wlan-module-reset-l {
830d244474fSSimon Glass			rockchip,pins = <1 11 RK_FUNC_GPIO &pcfg_pull_none>;
831d244474fSSimon Glass		};
832d244474fSSimon Glass
833d244474fSSimon Glass		bt_host_wake_l: bt-host-wake-l {
834d244474fSSimon Glass			/* Kevin has an external pull up, but Gru does not */
835d244474fSSimon Glass			rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
836d244474fSSimon Glass		};
837d244474fSSimon Glass	};
838d244474fSSimon Glass
839d244474fSSimon Glass	write-protect {
840d244474fSSimon Glass		ap_fw_wp: ap-fw-wp {
841d244474fSSimon Glass			rockchip,pins = <1 18 RK_FUNC_GPIO &pcfg_pull_up>;
842d244474fSSimon Glass		};
843d244474fSSimon Glass	};
844d244474fSSimon Glass};
845