xref: /rk3399_rockchip-uboot/arch/arm/dts/rk3288-veyron.dtsi (revision c5c7b477dfb1a1b01802fa408a18643cc8d7c63b)
1e2e947ffSSimon Glass/*
2e2e947ffSSimon Glass * Google Veyron (and derivatives) board device tree source
3e2e947ffSSimon Glass *
4e2e947ffSSimon Glass * Copyright 2014 Google, Inc
5e2e947ffSSimon Glass *
6e2e947ffSSimon Glass * SPDX-License-Identifier:	GPL-2.0
7e2e947ffSSimon Glass */
8e2e947ffSSimon Glass
9e2e947ffSSimon Glass#include <dt-bindings/clock/rockchip,rk808.h>
10e2e947ffSSimon Glass#include <dt-bindings/input/input.h>
11e2e947ffSSimon Glass#include "rk3288.dtsi"
12c22f479cSJoseph Chen#include "rk3288-u-boot.dtsi"
13e2e947ffSSimon Glass
14e2e947ffSSimon Glass/ {
15e2e947ffSSimon Glass	memory {
16e2e947ffSSimon Glass		reg = <0x0 0x80000000>;
17e2e947ffSSimon Glass	};
18e2e947ffSSimon Glass
19e2e947ffSSimon Glass	chosen {
20e2e947ffSSimon Glass		stdout-path = &uart2;
2126ceaeeeSKever Yang		u-boot,spl-boot-order = &spi_flash;
22e2e947ffSSimon Glass	};
23e2e947ffSSimon Glass
24e2e947ffSSimon Glass	firmware {
25e2e947ffSSimon Glass		chromeos {
26e2e947ffSSimon Glass			pinctrl-names = "default";
27e2e947ffSSimon Glass			pinctrl-0 = <&fw_wp_ap>;
28e2e947ffSSimon Glass			write-protect-gpio = <&gpio7 6 GPIO_ACTIVE_LOW>;
29e2e947ffSSimon Glass		};
30e2e947ffSSimon Glass	};
31e2e947ffSSimon Glass
32e2e947ffSSimon Glass	backlight: backlight {
33e2e947ffSSimon Glass		compatible = "pwm-backlight";
34e2e947ffSSimon Glass		brightness-levels = <
35e2e947ffSSimon Glass			  0   1   2   3   4   5   6   7
36e2e947ffSSimon Glass			  8   9  10  11  12  13  14  15
37e2e947ffSSimon Glass			 16  17  18  19  20  21  22  23
38e2e947ffSSimon Glass			 24  25  26  27  28  29  30  31
39e2e947ffSSimon Glass			 32  33  34  35  36  37  38  39
40e2e947ffSSimon Glass			 40  41  42  43  44  45  46  47
41e2e947ffSSimon Glass			 48  49  50  51  52  53  54  55
42e2e947ffSSimon Glass			 56  57  58  59  60  61  62  63
43e2e947ffSSimon Glass			 64  65  66  67  68  69  70  71
44e2e947ffSSimon Glass			 72  73  74  75  76  77  78  79
45e2e947ffSSimon Glass			 80  81  82  83  84  85  86  87
46e2e947ffSSimon Glass			 88  89  90  91  92  93  94  95
47e2e947ffSSimon Glass			 96  97  98  99 100 101 102 103
48e2e947ffSSimon Glass			104 105 106 107 108 109 110 111
49e2e947ffSSimon Glass			112 113 114 115 116 117 118 119
50e2e947ffSSimon Glass			120 121 122 123 124 125 126 127
51e2e947ffSSimon Glass			128 129 130 131 132 133 134 135
52e2e947ffSSimon Glass			136 137 138 139 140 141 142 143
53e2e947ffSSimon Glass			144 145 146 147 148 149 150 151
54e2e947ffSSimon Glass			152 153 154 155 156 157 158 159
55e2e947ffSSimon Glass			160 161 162 163 164 165 166 167
56e2e947ffSSimon Glass			168 169 170 171 172 173 174 175
57e2e947ffSSimon Glass			176 177 178 179 180 181 182 183
58e2e947ffSSimon Glass			184 185 186 187 188 189 190 191
59e2e947ffSSimon Glass			192 193 194 195 196 197 198 199
60e2e947ffSSimon Glass			200 201 202 203 204 205 206 207
61e2e947ffSSimon Glass			208 209 210 211 212 213 214 215
62e2e947ffSSimon Glass			216 217 218 219 220 221 222 223
63e2e947ffSSimon Glass			224 225 226 227 228 229 230 231
64e2e947ffSSimon Glass			232 233 234 235 236 237 238 239
65e2e947ffSSimon Glass			240 241 242 243 244 245 246 247
66e2e947ffSSimon Glass			248 249 250 251 252 253 254 255>;
67e2e947ffSSimon Glass		default-brightness-level = <128>;
68e2e947ffSSimon Glass		enable-gpios = <&gpio7 2 GPIO_ACTIVE_HIGH>;
69e2e947ffSSimon Glass		backlight-boot-off;
70e2e947ffSSimon Glass		pinctrl-names = "default";
71e2e947ffSSimon Glass		pinctrl-0 = <&bl_en>;
72e2e947ffSSimon Glass		pwms = <&pwm0 0 1000000 0>;
73e2e947ffSSimon Glass	};
74e2e947ffSSimon Glass
75e2e947ffSSimon Glass	panel: panel {
76e2e947ffSSimon Glass		compatible ="cnm,n116bgeea2","simple-panel";
77e2e947ffSSimon Glass		status = "okay";
78e2e947ffSSimon Glass		power-supply = <&vcc33_lcd>;
79e2e947ffSSimon Glass		backlight = <&backlight>;
80e2e947ffSSimon Glass	};
81e2e947ffSSimon Glass
82e2e947ffSSimon Glass	gpio_keys: gpio-keys {
83e2e947ffSSimon Glass		compatible = "gpio-keys";
84e2e947ffSSimon Glass		#address-cells = <1>;
85e2e947ffSSimon Glass		#size-cells = <0>;
86e2e947ffSSimon Glass
87e2e947ffSSimon Glass		pinctrl-names = "default";
88e2e947ffSSimon Glass		pinctrl-0 = <&pwr_key_h>;
89e2e947ffSSimon Glass		power {
90e2e947ffSSimon Glass			label = "Power";
91e2e947ffSSimon Glass			gpios = <&gpio0 5 GPIO_ACTIVE_HIGH>;
92e2e947ffSSimon Glass			linux,code = <KEY_POWER>;
93e2e947ffSSimon Glass			debounce-interval = <100>;
94e2e947ffSSimon Glass			gpio-key,wakeup;
95e2e947ffSSimon Glass		};
96e2e947ffSSimon Glass	};
97e2e947ffSSimon Glass
98e2e947ffSSimon Glass	gpio-restart {
99e2e947ffSSimon Glass		compatible = "gpio-restart";
100e2e947ffSSimon Glass		gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
101e2e947ffSSimon Glass		pinctrl-names = "default";
102e2e947ffSSimon Glass		pinctrl-0 = <&ap_warm_reset_h>;
103e2e947ffSSimon Glass		priority = /bits/ 8 <200>;
104e2e947ffSSimon Glass	};
105e2e947ffSSimon Glass
10679d020eeSSimon Glass	emmc_pwrseq: emmc-pwrseq {
10779d020eeSSimon Glass		compatible = "mmc-pwrseq-emmc";
10879d020eeSSimon Glass		pinctrl-0 = <&emmc_reset>;
10979d020eeSSimon Glass		pinctrl-names = "default";
11079d020eeSSimon Glass		reset-gpios = <&gpio2 9 GPIO_ACTIVE_HIGH>;
11179d020eeSSimon Glass	};
11279d020eeSSimon Glass
113e2e947ffSSimon Glass	sound {
114e2e947ffSSimon Glass		compatible = "rockchip,rockchip-audio-max98090";
115e2e947ffSSimon Glass		rockchip,model = "ROCKCHIP-I2S";
116e2e947ffSSimon Glass		rockchip,i2s-controller = <&i2s>;
117e2e947ffSSimon Glass		rockchip,audio-codec = <&max98090>;
118e2e947ffSSimon Glass		rockchip,hp-det-gpios = <&gpio6 5 GPIO_ACTIVE_HIGH>;
119e2e947ffSSimon Glass		rockchip,mic-det-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
120e2e947ffSSimon Glass		rockchip,headset-codec = <&headsetcodec>;
121e2e947ffSSimon Glass		pinctrl-names = "default";
122e2e947ffSSimon Glass		pinctrl-0 = <&mic_det>, <&hp_det>;
123e2e947ffSSimon Glass	};
124e2e947ffSSimon Glass
125e2e947ffSSimon Glass	vdd_logic: pwm-regulator {
126e2e947ffSSimon Glass		compatible = "pwm-regulator";
127e2e947ffSSimon Glass		pwms = <&pwm1 0 2000 0>;
128e2e947ffSSimon Glass
129e2e947ffSSimon Glass		voltage-table = <1350000 0>,
130e2e947ffSSimon Glass				<1300000 10>,
131e2e947ffSSimon Glass				<1250000 20>,
132e2e947ffSSimon Glass				<1200000 31>,
133e2e947ffSSimon Glass				<1150000 41>,
134e2e947ffSSimon Glass				<1100000 52>,
135e2e947ffSSimon Glass				<1050000 62>,
136e2e947ffSSimon Glass				<1000000 72>,
137e2e947ffSSimon Glass				< 950000 83>;
138e2e947ffSSimon Glass
139e2e947ffSSimon Glass		regulator-min-microvolt = <950000>;
140e2e947ffSSimon Glass		regulator-max-microvolt = <1350000>;
141e2e947ffSSimon Glass		regulator-name = "vdd_logic";
142e2e947ffSSimon Glass		regulator-ramp-delay = <4000>;
143e2e947ffSSimon Glass	};
144e2e947ffSSimon Glass
145e2e947ffSSimon Glass	vcc33_sys: vcc33-sys {
146e2e947ffSSimon Glass		compatible = "regulator-fixed";
147e2e947ffSSimon Glass		regulator-name = "vcc33_sys";
148e2e947ffSSimon Glass		regulator-always-on;
149e2e947ffSSimon Glass		regulator-boot-on;
150e2e947ffSSimon Glass		regulator-min-microvolt = <3300000>;
151e2e947ffSSimon Glass		regulator-max-microvolt = <3300000>;
152e2e947ffSSimon Glass		vin-supply = <&vccsys>;
153e2e947ffSSimon Glass	};
154e2e947ffSSimon Glass
155e2e947ffSSimon Glass	vcc_5v: vcc-5v {
156e2e947ffSSimon Glass		compatible = "regulator-fixed";
157e2e947ffSSimon Glass		regulator-name = "vcc_5v";
158e2e947ffSSimon Glass		regulator-always-on;
159e2e947ffSSimon Glass		regulator-boot-on;
160e2e947ffSSimon Glass		regulator-min-microvolt = <5000000>;
161e2e947ffSSimon Glass		regulator-max-microvolt = <5000000>;
162e2e947ffSSimon Glass	};
163e2e947ffSSimon Glass
164e2e947ffSSimon Glass	vcc50_hdmi: vcc50-hdmi {
165e2e947ffSSimon Glass		compatible = "regulator-fixed";
166e2e947ffSSimon Glass		regulator-name = "vcc50_hdmi";
167e2e947ffSSimon Glass		regulator-always-on;
168e2e947ffSSimon Glass		regulator-boot-on;
169e2e947ffSSimon Glass		vin-supply = <&vcc_5v>;
170e2e947ffSSimon Glass	};
171e2e947ffSSimon Glass
172e2e947ffSSimon Glass	bt_regulator: bt-regulator {
173e2e947ffSSimon Glass		/*
174e2e947ffSSimon Glass		 * On the module itself this is one of these (depending
175e2e947ffSSimon Glass		 * on the actual card pouplated):
176e2e947ffSSimon Glass		 * - BT_I2S_WS_BT_RFDISABLE_L
177e2e947ffSSimon Glass		 * - No connect
178e2e947ffSSimon Glass		 */
179e2e947ffSSimon Glass
180e2e947ffSSimon Glass		compatible = "regulator-fixed";
181e2e947ffSSimon Glass		enable-active-high;
182e2e947ffSSimon Glass		gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
183e2e947ffSSimon Glass		pinctrl-names = "default";
184e2e947ffSSimon Glass		pinctrl-0 = <&bt_enable_l>;
185e2e947ffSSimon Glass		regulator-name = "bt_regulator";
186e2e947ffSSimon Glass	};
187e2e947ffSSimon Glass
188e2e947ffSSimon Glass	wifi_regulator: wifi-regulator {
189e2e947ffSSimon Glass		/*
190e2e947ffSSimon Glass		 * On the module itself this is one of these (depending
191e2e947ffSSimon Glass		 * on the actual card populated):
192e2e947ffSSimon Glass		 * - SDIO_RESET_L_WL_REG_ON
193e2e947ffSSimon Glass		 * - PDN (power down when low)
194e2e947ffSSimon Glass		 */
195e2e947ffSSimon Glass
196e2e947ffSSimon Glass		compatible = "regulator-fixed";
197e2e947ffSSimon Glass		enable-active-high;
198e2e947ffSSimon Glass		gpio = <&gpio4 28 GPIO_ACTIVE_HIGH>;
199e2e947ffSSimon Glass		pinctrl-names = "default";
200e2e947ffSSimon Glass		pinctrl-0 = <&wifi_enable_h>;
201e2e947ffSSimon Glass		regulator-name = "wifi_regulator";
202e2e947ffSSimon Glass
203e2e947ffSSimon Glass		/* Faux input supply.  See bt_regulator description. */
204e2e947ffSSimon Glass		vin-supply = <&bt_regulator>;
205e2e947ffSSimon Glass	};
206e2e947ffSSimon Glass
207e2e947ffSSimon Glass	io-domains {
208e2e947ffSSimon Glass		compatible = "rockchip,rk3288-io-voltage-domain";
209e2e947ffSSimon Glass		rockchip,grf = <&grf>;
210e2e947ffSSimon Glass
211e2e947ffSSimon Glass		audio-supply = <&vcc18_codec>;
212e2e947ffSSimon Glass		bb-supply = <&vcc33_io>;
213e2e947ffSSimon Glass		dvp-supply = <&vcc_18>;
214e2e947ffSSimon Glass		flash0-supply = <&vcc18_flashio>;
215e2e947ffSSimon Glass		gpio1830-supply = <&vcc33_io>;
216e2e947ffSSimon Glass		gpio30-supply = <&vcc33_io>;
217e2e947ffSSimon Glass		lcdc-supply = <&vcc33_lcd>;
218e2e947ffSSimon Glass		sdcard-supply = <&vccio_sd>;
219e2e947ffSSimon Glass		wifi-supply = <&vcc18_wl>;
220e2e947ffSSimon Glass	};
221e2e947ffSSimon Glass};
222e2e947ffSSimon Glass
223e2e947ffSSimon Glass&cpu0 {
224e2e947ffSSimon Glass	cpu0-supply = <&vdd_cpu>;
225e2e947ffSSimon Glass};
226e2e947ffSSimon Glass
227e2e947ffSSimon Glass&dmc {
228e2e947ffSSimon Glass	logic-supply = <&vdd_logic>;
229e2e947ffSSimon Glass	rockchip,odt-disable-freq = <333000000>;
230e2e947ffSSimon Glass	rockchip,dll-disable-freq = <333000000>;
231e2e947ffSSimon Glass	rockchip,sr-enable-freq = <333000000>;
232e2e947ffSSimon Glass	rockchip,pd-enable-freq = <666000000>;
233e2e947ffSSimon Glass	rockchip,auto-self-refresh-cnt = <0>;
234e2e947ffSSimon Glass	rockchip,auto-power-down-cnt = <64>;
235e2e947ffSSimon Glass	rockchip,ddr-speed-bin = <21>;
236e2e947ffSSimon Glass	rockchip,trcd = <10>;
237e2e947ffSSimon Glass	rockchip,trp = <10>;
238e2e947ffSSimon Glass	operating-points = <
239e2e947ffSSimon Glass		/* KHz    uV */
240e2e947ffSSimon Glass		200000 1050000
241e2e947ffSSimon Glass		333000 1100000
242e2e947ffSSimon Glass		533000 1150000
243e2e947ffSSimon Glass		666000 1200000
244e2e947ffSSimon Glass	>;
245e2e947ffSSimon Glass};
246e2e947ffSSimon Glass
247e2e947ffSSimon Glass&efuse {
248e2e947ffSSimon Glass	status = "okay";
249e2e947ffSSimon Glass};
250e2e947ffSSimon Glass
251e2e947ffSSimon Glass&emmc {
252e2e947ffSSimon Glass	broken-cd;
253e2e947ffSSimon Glass	bus-width = <8>;
254e2e947ffSSimon Glass	cap-mmc-highspeed;
255e2e947ffSSimon Glass	mmc-hs200-1_8v;
25679d020eeSSimon Glass	mmc-pwrseq = <&emmc_pwrseq>;
257e2e947ffSSimon Glass	disable-wp;
258e2e947ffSSimon Glass	non-removable;
259e2e947ffSSimon Glass	num-slots = <1>;
260e2e947ffSSimon Glass	pinctrl-names = "default";
26179d020eeSSimon Glass	pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8 &emmc_pwr>;
262e2e947ffSSimon Glass	status = "okay";
263e2e947ffSSimon Glass};
264e2e947ffSSimon Glass
265e2e947ffSSimon Glass&sdio0 {
266e2e947ffSSimon Glass	broken-cd;
267e2e947ffSSimon Glass	bus-width = <4>;
268e2e947ffSSimon Glass	cap-sd-highspeed;
269e2e947ffSSimon Glass	sd-uhs-sdr12;
270e2e947ffSSimon Glass	sd-uhs-sdr25;
271e2e947ffSSimon Glass	sd-uhs-sdr50;
272e2e947ffSSimon Glass	sd-uhs-sdr104;
273e2e947ffSSimon Glass	cap-sdio-irq;
274e2e947ffSSimon Glass	card-external-vcc-supply = <&wifi_regulator>;
275e2e947ffSSimon Glass	clocks = <&cru HCLK_SDIO0>, <&cru SCLK_SDIO0>, <&cru SCLK_SDIO0_DRV>,
276e2e947ffSSimon Glass		 <&cru SCLK_SDIO0_SAMPLE>, <&rk808 RK808_CLKOUT1>;
277*c5c7b477SKever Yang	clock-names = "biu", "ciu", "ciu-drv", "ciu-sample", "card-ext-clock";
278e2e947ffSSimon Glass	keep-power-in-suspend;
279e2e947ffSSimon Glass	non-removable;
280e2e947ffSSimon Glass	num-slots = <1>;
281e2e947ffSSimon Glass	pinctrl-names = "default";
282e2e947ffSSimon Glass	pinctrl-0 = <&sdio0_clk &sdio0_cmd &sdio0_bus4>;
283e2e947ffSSimon Glass	status = "okay";
284e2e947ffSSimon Glass	vmmc-supply = <&vcc33_sys>;
285e2e947ffSSimon Glass	vqmmc-supply = <&vcc18_wl>;
286e2e947ffSSimon Glass};
287e2e947ffSSimon Glass
288e2e947ffSSimon Glass&sdmmc {
289e2e947ffSSimon Glass	bus-width = <4>;
290e2e947ffSSimon Glass	cap-mmc-highspeed;
291e2e947ffSSimon Glass	cap-sd-highspeed;
292e2e947ffSSimon Glass	sd-uhs-sdr12;
293e2e947ffSSimon Glass	sd-uhs-sdr25;
294e2e947ffSSimon Glass	sd-uhs-sdr50;
295e2e947ffSSimon Glass	sd-uhs-sdr104;
296e2e947ffSSimon Glass	card-detect-delay = <200>;
297e2e947ffSSimon Glass	cd-gpios = <&gpio7 5 GPIO_ACTIVE_LOW>;
298e2e947ffSSimon Glass	num-slots = <1>;
299e2e947ffSSimon Glass	status = "okay";
300e2e947ffSSimon Glass	vmmc-supply = <&vcc33_sd>;
301e2e947ffSSimon Glass	vqmmc-supply = <&vccio_sd>;
302e2e947ffSSimon Glass};
303e2e947ffSSimon Glass
304e2e947ffSSimon Glass&spi2 {
305e2e947ffSSimon Glass	status = "okay";
306e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
307e2e947ffSSimon Glass
308e2e947ffSSimon Glass	spi_flash: spiflash@0 {
309e2e947ffSSimon Glass		u-boot,dm-pre-reloc;
310e2e947ffSSimon Glass		compatible = "spidev", "spi-flash";
311e2e947ffSSimon Glass		spi-max-frequency = <20000000>; /* Reduce for Dediprog em100 pro */
312e2e947ffSSimon Glass		reg = <0>;
313e2e947ffSSimon Glass	};
314e2e947ffSSimon Glass};
315e2e947ffSSimon Glass
316e2e947ffSSimon Glass&i2c0 {
317e2e947ffSSimon Glass	status = "okay";
318e2e947ffSSimon Glass
319e2e947ffSSimon Glass	clock-frequency = <400000>;
320e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <50>;		/* 2.5ns measured */
321e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <100>;		/* 45ns measured */
322dae594f2SSimon Glass	u-boot,dm-pre-reloc;
323e2e947ffSSimon Glass
324e2e947ffSSimon Glass	rk808: pmic@1b {
325e2e947ffSSimon Glass		compatible = "rockchip,rk808";
326e2e947ffSSimon Glass		clock-output-names = "xin32k", "wifibt_32kin";
327e2e947ffSSimon Glass		interrupt-parent = <&gpio0>;
328e2e947ffSSimon Glass		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
329e2e947ffSSimon Glass		pinctrl-names = "default";
330e2e947ffSSimon Glass		pinctrl-0 = <&pmic_int_l>;
331e2e947ffSSimon Glass		reg = <0x1b>;
332e2e947ffSSimon Glass		rockchip,system-power-controller;
333e2e947ffSSimon Glass		wakeup-source;
334e2e947ffSSimon Glass		#clock-cells = <1>;
335dae594f2SSimon Glass		u-boot,dm-pre-reloc;
336e2e947ffSSimon Glass
337e2e947ffSSimon Glass		vcc1-supply = <&vcc33_sys>;
338e2e947ffSSimon Glass		vcc2-supply = <&vcc33_sys>;
339e2e947ffSSimon Glass		vcc3-supply = <&vcc33_sys>;
340e2e947ffSSimon Glass		vcc4-supply = <&vcc33_sys>;
341e2e947ffSSimon Glass		vcc6-supply = <&vcc_5v>;
342e2e947ffSSimon Glass		vcc7-supply = <&vcc33_sys>;
343e2e947ffSSimon Glass		vcc8-supply = <&vcc33_sys>;
344e2e947ffSSimon Glass		vcc9-supply = <&vcc_5v>;
345e2e947ffSSimon Glass		vcc10-supply = <&vcc33_sys>;
346e2e947ffSSimon Glass		vcc11-supply = <&vcc_5v>;
347e2e947ffSSimon Glass		vcc12-supply = <&vcc_18>;
348e2e947ffSSimon Glass
349e2e947ffSSimon Glass		vddio-supply = <&vcc33_io>;
350e2e947ffSSimon Glass
351e2e947ffSSimon Glass		regulators {
352e2e947ffSSimon Glass			vdd_cpu: DCDC_REG1 {
353e2e947ffSSimon Glass				regulator-always-on;
354e2e947ffSSimon Glass				regulator-boot-on;
355e2e947ffSSimon Glass				regulator-min-microvolt = <750000>;
356e2e947ffSSimon Glass				regulator-max-microvolt = <1450000>;
357e2e947ffSSimon Glass				regulator-name = "vdd_arm";
358e2e947ffSSimon Glass				regulator-ramp-delay = <6001>;
359e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
360e2e947ffSSimon Glass			};
361e2e947ffSSimon Glass
362e2e947ffSSimon Glass			vdd_gpu: DCDC_REG2 {
363e2e947ffSSimon Glass				regulator-always-on;
364e2e947ffSSimon Glass				regulator-boot-on;
365e2e947ffSSimon Glass				regulator-min-microvolt = <800000>;
366e2e947ffSSimon Glass				regulator-max-microvolt = <1250000>;
367e2e947ffSSimon Glass				regulator-name = "vdd_gpu";
368e2e947ffSSimon Glass				regulator-ramp-delay = <6001>;
369e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
370e2e947ffSSimon Glass			};
371e2e947ffSSimon Glass
372e2e947ffSSimon Glass			vcc135_ddr: DCDC_REG3 {
373e2e947ffSSimon Glass				regulator-always-on;
374e2e947ffSSimon Glass				regulator-boot-on;
375e2e947ffSSimon Glass				regulator-name = "vcc135_ddr";
376e2e947ffSSimon Glass				regulator-suspend-mem-enabled;
377e2e947ffSSimon Glass			};
378e2e947ffSSimon Glass
379e2e947ffSSimon Glass			/*
380e2e947ffSSimon Glass			 * vcc_18 has several aliases.  (vcc18_flashio and
381e2e947ffSSimon Glass			 * vcc18_wl).  We'll add those aliases here just to
382e2e947ffSSimon Glass			 * make it easier to follow the schematic.  The signals
383e2e947ffSSimon Glass			 * are actually hooked together and only separated for
384e2e947ffSSimon Glass			 * power measurement purposes).
385e2e947ffSSimon Glass			 */
386e2e947ffSSimon Glass			vcc18_wl: vcc18_flashio: vcc_18: DCDC_REG4 {
387e2e947ffSSimon Glass				regulator-always-on;
388e2e947ffSSimon Glass				regulator-boot-on;
389e2e947ffSSimon Glass				regulator-min-microvolt = <1800000>;
390e2e947ffSSimon Glass				regulator-max-microvolt = <1800000>;
391e2e947ffSSimon Glass				regulator-name = "vcc_18";
392e2e947ffSSimon Glass				regulator-suspend-mem-microvolt = <1800000>;
393e2e947ffSSimon Glass			};
394e2e947ffSSimon Glass
395e2e947ffSSimon Glass			/*
396e2e947ffSSimon Glass			 * Note that both vcc33_io and vcc33_pmuio are always
397e2e947ffSSimon Glass			 * powered together. To simplify the logic in the dts
398e2e947ffSSimon Glass			 * we just refer to vcc33_io every time something is
399e2e947ffSSimon Glass			 * powered from vcc33_pmuio. In fact, on later boards
400e2e947ffSSimon Glass			 * (such as danger) they're the same net.
401e2e947ffSSimon Glass			 */
402e2e947ffSSimon Glass			vcc33_io: LDO_REG1 {
403e2e947ffSSimon Glass				regulator-always-on;
404e2e947ffSSimon Glass				regulator-boot-on;
405e2e947ffSSimon Glass				regulator-min-microvolt = <3300000>;
406e2e947ffSSimon Glass				regulator-max-microvolt = <3300000>;
407e2e947ffSSimon Glass				regulator-name = "vcc33_io";
408e2e947ffSSimon Glass				regulator-suspend-mem-microvolt = <3300000>;
409e2e947ffSSimon Glass			};
410e2e947ffSSimon Glass
411e2e947ffSSimon Glass			vdd_10: LDO_REG3 {
412e2e947ffSSimon Glass				regulator-always-on;
413e2e947ffSSimon Glass				regulator-boot-on;
414e2e947ffSSimon Glass				regulator-min-microvolt = <1000000>;
415e2e947ffSSimon Glass				regulator-max-microvolt = <1000000>;
416e2e947ffSSimon Glass				regulator-name = "vdd_10";
417e2e947ffSSimon Glass				regulator-suspend-mem-microvolt = <1000000>;
418e2e947ffSSimon Glass			};
419e2e947ffSSimon Glass
420e2e947ffSSimon Glass			vccio_sd: LDO_REG4 {
421e2e947ffSSimon Glass				regulator-min-microvolt = <1800000>;
422e2e947ffSSimon Glass				regulator-max-microvolt = <3300000>;
423e2e947ffSSimon Glass				regulator-name = "vccio_sd";
424e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
425e2e947ffSSimon Glass			};
426e2e947ffSSimon Glass
427e2e947ffSSimon Glass			vcc33_sd: LDO_REG5 {
428e2e947ffSSimon Glass				regulator-min-microvolt = <3300000>;
429e2e947ffSSimon Glass				regulator-max-microvolt = <3300000>;
430e2e947ffSSimon Glass				regulator-name = "vcc33_sd";
431e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
432e2e947ffSSimon Glass			};
433e2e947ffSSimon Glass
434e2e947ffSSimon Glass			vcc18_codec: LDO_REG6 {
435e2e947ffSSimon Glass				regulator-always-on;
436e2e947ffSSimon Glass				regulator-boot-on;
437e2e947ffSSimon Glass				regulator-min-microvolt = <1800000>;
438e2e947ffSSimon Glass				regulator-max-microvolt = <1800000>;
439e2e947ffSSimon Glass				regulator-name = "vcc18_codec";
440e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
441e2e947ffSSimon Glass			};
442e2e947ffSSimon Glass
443e2e947ffSSimon Glass			vdd10_lcd_pwren_h: LDO_REG7 {
444e2e947ffSSimon Glass				regulator-always-on;
445e2e947ffSSimon Glass				regulator-boot-on;
446e2e947ffSSimon Glass				regulator-min-microvolt = <2500000>;
447e2e947ffSSimon Glass				regulator-max-microvolt = <2500000>;
448e2e947ffSSimon Glass				regulator-name = "vdd10_lcd_pwren_h";
449e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
450e2e947ffSSimon Glass			};
451e2e947ffSSimon Glass
452e2e947ffSSimon Glass			vcc33_lcd: SWITCH_REG1 {
453e2e947ffSSimon Glass				regulator-always-on;
454e2e947ffSSimon Glass				regulator-boot-on;
455e2e947ffSSimon Glass				regulator-name = "vcc33_lcd";
456e2e947ffSSimon Glass				regulator-suspend-mem-disabled;
457e2e947ffSSimon Glass			};
458e2e947ffSSimon Glass		};
459e2e947ffSSimon Glass	};
460e2e947ffSSimon Glass};
461e2e947ffSSimon Glass
462e2e947ffSSimon Glass&i2c1 {
463e2e947ffSSimon Glass	status = "okay";
464e2e947ffSSimon Glass
465e2e947ffSSimon Glass	clock-frequency = <400000>;
466e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <50>;		/* 2.5ns measured */
467e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <100>;		/* 40ns measured */
468e2e947ffSSimon Glass
469e2e947ffSSimon Glass	tpm: tpm@20 {
470e2e947ffSSimon Glass		compatible = "infineon,slb9645tt";
471e2e947ffSSimon Glass		reg = <0x20>;
472e2e947ffSSimon Glass		powered-while-suspended;
473e2e947ffSSimon Glass	};
474e2e947ffSSimon Glass};
475e2e947ffSSimon Glass
476e2e947ffSSimon Glass&i2c2 {
477e2e947ffSSimon Glass	status = "okay";
478e2e947ffSSimon Glass
479e2e947ffSSimon Glass	/* 100kHz since 4.7k resistors don't rise fast enough */
480e2e947ffSSimon Glass	clock-frequency = <100000>;
481e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <50>;		/* 10ns measured */
482e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <800>;		/* 600ns measured */
483e2e947ffSSimon Glass
484e2e947ffSSimon Glass	max98090: max98090@10 {
485e2e947ffSSimon Glass		compatible = "maxim,max98090";
486e2e947ffSSimon Glass		reg = <0x10>;
487e2e947ffSSimon Glass		interrupt-parent = <&gpio6>;
488e2e947ffSSimon Glass		interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
489e2e947ffSSimon Glass		pinctrl-names = "default";
490e2e947ffSSimon Glass		pinctrl-0 = <&int_codec>;
491e2e947ffSSimon Glass	};
492e2e947ffSSimon Glass};
493e2e947ffSSimon Glass
494e2e947ffSSimon Glass&i2c3 {
495e2e947ffSSimon Glass	status = "okay";
496e2e947ffSSimon Glass
497e2e947ffSSimon Glass	clock-frequency = <400000>;
498e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <50>;
499e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <300>;
500e2e947ffSSimon Glass};
501e2e947ffSSimon Glass
502e2e947ffSSimon Glass&i2c4 {
503e2e947ffSSimon Glass	status = "okay";
504e2e947ffSSimon Glass
505e2e947ffSSimon Glass	clock-frequency = <400000>;
506e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <50>;		/* 11ns measured */
507e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <300>;		/* 225ns measured */
508e2e947ffSSimon Glass
509e2e947ffSSimon Glass	headsetcodec: ts3a227e@3b {
510e2e947ffSSimon Glass		compatible = "ti,ts3a227e";
511e2e947ffSSimon Glass		reg = <0x3b>;
512e2e947ffSSimon Glass		interrupt-parent = <&gpio0>;
513e2e947ffSSimon Glass		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
514e2e947ffSSimon Glass		pinctrl-names = "default";
515e2e947ffSSimon Glass		pinctrl-0 = <&ts3a227e_int_l>;
516e2e947ffSSimon Glass		ti,micbias = <7>;		/* MICBIAS = 2.8V */
517e2e947ffSSimon Glass	};
518e2e947ffSSimon Glass};
519e2e947ffSSimon Glass
520e2e947ffSSimon Glass&i2c5 {
521e2e947ffSSimon Glass	status = "okay";
522e2e947ffSSimon Glass
523e2e947ffSSimon Glass	clock-frequency = <100000>;
524e2e947ffSSimon Glass	i2c-scl-falling-time-ns = <300>;
525e2e947ffSSimon Glass	i2c-scl-rising-time-ns = <1000>;
526e2e947ffSSimon Glass};
527e2e947ffSSimon Glass
528e2e947ffSSimon Glass&i2s {
529e2e947ffSSimon Glass	status = "okay";
530e2e947ffSSimon Glass	clock-names = "i2s_hclk", "i2s_clk", "i2s_clk_out";
531e2e947ffSSimon Glass	clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>, <&cru SCLK_I2S0_OUT>;
532e2e947ffSSimon Glass};
533e2e947ffSSimon Glass
534e2e947ffSSimon Glass&wdt {
535e2e947ffSSimon Glass	status = "okay";
536e2e947ffSSimon Glass};
537e2e947ffSSimon Glass
538e2e947ffSSimon Glass&pwm0 {
539e2e947ffSSimon Glass	status = "okay";
540e2e947ffSSimon Glass};
541e2e947ffSSimon Glass
542e2e947ffSSimon Glass&pwm1 {
543e2e947ffSSimon Glass	status = "okay";
544e2e947ffSSimon Glass};
545e2e947ffSSimon Glass
546e2e947ffSSimon Glass&uart0 {
547e2e947ffSSimon Glass	status = "okay";
548e2e947ffSSimon Glass
549e2e947ffSSimon Glass	/* Pins don't include flow control by default; add that in */
550e2e947ffSSimon Glass	pinctrl-names = "default";
551e2e947ffSSimon Glass	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
552e2e947ffSSimon Glass	/* We need to go faster than 24MHz, so adjust clock parents / rates */
553e2e947ffSSimon Glass	assigned-clocks = <&cru SCLK_UART0>;
554e2e947ffSSimon Glass	assigned-clock-rates = <48000000>;
555e2e947ffSSimon Glass};
556e2e947ffSSimon Glass
557e2e947ffSSimon Glass&uart1 {
558e2e947ffSSimon Glass	status = "okay";
559e2e947ffSSimon Glass};
560e2e947ffSSimon Glass
561e2e947ffSSimon Glass&uart2 {
562e2e947ffSSimon Glass	status = "okay";
563e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
564e2e947ffSSimon Glass	reg-shift = <2>;
565e2e947ffSSimon Glass};
566e2e947ffSSimon Glass
567e2e947ffSSimon Glass&vopb {
568e2e947ffSSimon Glass	status = "okay";
569e2e947ffSSimon Glass};
570e2e947ffSSimon Glass
571e2e947ffSSimon Glass&vopb_mmu {
572e2e947ffSSimon Glass	status = "okay";
573e2e947ffSSimon Glass};
574e2e947ffSSimon Glass
575e2e947ffSSimon Glass&vopl {
576e2e947ffSSimon Glass	status = "okay";
577e2e947ffSSimon Glass};
578e2e947ffSSimon Glass
579e2e947ffSSimon Glass&vopl_mmu {
580e2e947ffSSimon Glass	status = "okay";
581e2e947ffSSimon Glass};
582e2e947ffSSimon Glass
583e2e947ffSSimon Glass&edp {
584e2e947ffSSimon Glass	status = "okay";
585e2e947ffSSimon Glass	rockchip,panel = <&panel>;
586e2e947ffSSimon Glass};
587e2e947ffSSimon Glass
588e2e947ffSSimon Glass&hdmi {
589e2e947ffSSimon Glass	status = "okay";
590e2e947ffSSimon Glass};
591e2e947ffSSimon Glass
592e2e947ffSSimon Glass&hdmi_audio {
593e2e947ffSSimon Glass	status = "okay";
594e2e947ffSSimon Glass};
595e2e947ffSSimon Glass
596e2e947ffSSimon Glass&gpu {
597e2e947ffSSimon Glass	status = "okay";
598e2e947ffSSimon Glass};
599e2e947ffSSimon Glass
600e2e947ffSSimon Glass&tsadc {
601e2e947ffSSimon Glass	tsadc-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */
602e2e947ffSSimon Glass	tsadc-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */
603e2e947ffSSimon Glass	status = "okay";
604e2e947ffSSimon Glass};
605e2e947ffSSimon Glass
606e2e947ffSSimon Glass&pinctrl {
607e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
608e2e947ffSSimon Glass	pinctrl-names = "default", "sleep";
609e2e947ffSSimon Glass	pinctrl-0 = <
610e2e947ffSSimon Glass		/* Common for sleep and wake, but no owners */
611e2e947ffSSimon Glass		&ddr0_retention
612e2e947ffSSimon Glass		&ddrio_pwroff
613e2e947ffSSimon Glass		&global_pwroff
614e2e947ffSSimon Glass
615e2e947ffSSimon Glass		/* Wake only */
616e2e947ffSSimon Glass		&bt_dev_wake_awake
617e2e947ffSSimon Glass	>;
618e2e947ffSSimon Glass	pinctrl-1 = <
619e2e947ffSSimon Glass		/* Common for sleep and wake, but no owners */
620e2e947ffSSimon Glass		&ddr0_retention
621e2e947ffSSimon Glass		&ddrio_pwroff
622e2e947ffSSimon Glass		&global_pwroff
623e2e947ffSSimon Glass
624e2e947ffSSimon Glass		/* Sleep only */
625e2e947ffSSimon Glass		&bt_dev_wake_sleep
626e2e947ffSSimon Glass	>;
627e2e947ffSSimon Glass
628e2e947ffSSimon Glass	/* Add this for sdmmc pins to SD card */
629e2e947ffSSimon Glass	pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma {
630e2e947ffSSimon Glass		drive-strength = <8>;
631e2e947ffSSimon Glass	};
632e2e947ffSSimon Glass
633e2e947ffSSimon Glass	pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma {
634e2e947ffSSimon Glass		bias-pull-up;
635e2e947ffSSimon Glass		drive-strength = <8>;
636e2e947ffSSimon Glass	};
637e2e947ffSSimon Glass
638e2e947ffSSimon Glass	pcfg_output_high: pcfg-output-high {
639e2e947ffSSimon Glass		output-high;
640e2e947ffSSimon Glass	};
641e2e947ffSSimon Glass
642e2e947ffSSimon Glass	pcfg_output_low: pcfg-output-low {
643e2e947ffSSimon Glass		output-low;
644e2e947ffSSimon Glass	};
645e2e947ffSSimon Glass
646e2e947ffSSimon Glass	backlight {
647e2e947ffSSimon Glass		bl_en: bl-en {
648e2e947ffSSimon Glass			rockchip,pins = <7 2 RK_FUNC_GPIO &pcfg_pull_none>;
649e2e947ffSSimon Glass		};
650e2e947ffSSimon Glass	};
651e2e947ffSSimon Glass
652e2e947ffSSimon Glass	buttons {
653e2e947ffSSimon Glass		pwr_key_h: pwr-key-h {
654e2e947ffSSimon Glass			rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_none>;
655e2e947ffSSimon Glass		};
656e2e947ffSSimon Glass	};
657e2e947ffSSimon Glass
658e2e947ffSSimon Glass	codec {
659e2e947ffSSimon Glass		hp_det: hp-det {
660e2e947ffSSimon Glass			rockchip,pins = <6 5 RK_FUNC_GPIO &pcfg_pull_up>;
661e2e947ffSSimon Glass		};
662e2e947ffSSimon Glass		int_codec: int-codec {
663e2e947ffSSimon Glass			rockchip,pins = <6 7 RK_FUNC_GPIO &pcfg_pull_up>;
664e2e947ffSSimon Glass		};
665e2e947ffSSimon Glass		mic_det: mic-det {
666e2e947ffSSimon Glass			rockchip,pins = <6 11 RK_FUNC_GPIO &pcfg_pull_up>;
667e2e947ffSSimon Glass		};
668e2e947ffSSimon Glass	};
669e2e947ffSSimon Glass
670e2e947ffSSimon Glass	emmc {
67179d020eeSSimon Glass		emmc_reset: emmc-reset {
67279d020eeSSimon Glass			rockchip,pins = <2 9 RK_FUNC_GPIO &pcfg_pull_none>;
673e2e947ffSSimon Glass		};
674e2e947ffSSimon Glass
675e2e947ffSSimon Glass		/*
676e2e947ffSSimon Glass		 * We run eMMC at max speed; bump up drive strength.
677e2e947ffSSimon Glass		 * We also have external pulls, so disable the internal ones.
678e2e947ffSSimon Glass		 */
679e2e947ffSSimon Glass		emmc_clk: emmc-clk {
680e2e947ffSSimon Glass			rockchip,pins = <3 18 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
681e2e947ffSSimon Glass		};
682e2e947ffSSimon Glass
683e2e947ffSSimon Glass		emmc_cmd: emmc-cmd {
684e2e947ffSSimon Glass			rockchip,pins = <3 16 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
685e2e947ffSSimon Glass		};
686e2e947ffSSimon Glass
687e2e947ffSSimon Glass		emmc_bus8: emmc-bus8 {
688e2e947ffSSimon Glass			rockchip,pins = <3 0 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
689e2e947ffSSimon Glass					<3 1 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
690e2e947ffSSimon Glass					<3 2 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
691e2e947ffSSimon Glass					<3 3 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
692e2e947ffSSimon Glass					<3 4 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
693e2e947ffSSimon Glass					<3 5 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
694e2e947ffSSimon Glass					<3 6 RK_FUNC_2 &pcfg_pull_none_drv_8ma>,
695e2e947ffSSimon Glass					<3 7 RK_FUNC_2 &pcfg_pull_none_drv_8ma>;
696e2e947ffSSimon Glass		};
697e2e947ffSSimon Glass	};
698e2e947ffSSimon Glass
699e2e947ffSSimon Glass	headset {
700e2e947ffSSimon Glass		ts3a227e_int_l: ts3a227e-int-l {
701e2e947ffSSimon Glass			rockchip,pins = <0 3 RK_FUNC_GPIO &pcfg_pull_up>;
702e2e947ffSSimon Glass		};
703e2e947ffSSimon Glass	};
704e2e947ffSSimon Glass
705e2e947ffSSimon Glass	pmic {
706e2e947ffSSimon Glass		pmic_int_l: pmic-int-l {
707f4adc9a5SSimon Glass			/*
708f4adc9a5SSimon Glass			 * Causes jerry to hang when probing bus 0
709f4adc9a5SSimon Glass			 * rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
710f4adc9a5SSimon Glass			 */
711e2e947ffSSimon Glass		};
712e2e947ffSSimon Glass	};
713e2e947ffSSimon Glass
714e2e947ffSSimon Glass	reboot {
715e2e947ffSSimon Glass		ap_warm_reset_h: ap-warm-reset-h {
716e2e947ffSSimon Glass			rockchip,pins = <RK_GPIO0 13 RK_FUNC_GPIO &pcfg_pull_none>;
717e2e947ffSSimon Glass		};
718e2e947ffSSimon Glass	};
719e2e947ffSSimon Glass
720e2e947ffSSimon Glass	sdio0 {
721e2e947ffSSimon Glass		wifi_enable_h: wifienable-h {
722e2e947ffSSimon Glass			rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
723e2e947ffSSimon Glass		};
724e2e947ffSSimon Glass
725e2e947ffSSimon Glass		/* NOTE: mislabelled on schematic; should be bt_enable_h */
726e2e947ffSSimon Glass		bt_enable_l: bt-enable-l {
727e2e947ffSSimon Glass			rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_none>;
728e2e947ffSSimon Glass		};
729e2e947ffSSimon Glass
730e2e947ffSSimon Glass		/*
731e2e947ffSSimon Glass		 * We run sdio0 at max speed; bump up drive strength.
732e2e947ffSSimon Glass		 * We also have external pulls, so disable the internal ones.
733e2e947ffSSimon Glass		 */
734e2e947ffSSimon Glass		sdio0_bus4: sdio0-bus4 {
735e2e947ffSSimon Glass			rockchip,pins = <4 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
736e2e947ffSSimon Glass					<4 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
737e2e947ffSSimon Glass					<4 22 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
738e2e947ffSSimon Glass					<4 23 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
739e2e947ffSSimon Glass		};
740e2e947ffSSimon Glass
741e2e947ffSSimon Glass		sdio0_cmd: sdio0-cmd {
742e2e947ffSSimon Glass			rockchip,pins = <4 24 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
743e2e947ffSSimon Glass		};
744e2e947ffSSimon Glass
745e2e947ffSSimon Glass		sdio0_clk: sdio0-clk {
746e2e947ffSSimon Glass			rockchip,pins = <4 25 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
747e2e947ffSSimon Glass		};
748e2e947ffSSimon Glass
749e2e947ffSSimon Glass		/*
750e2e947ffSSimon Glass		 * These pins are only present on very new veyron boards; on
751e2e947ffSSimon Glass		 * older boards bt_dev_wake is simply always high.  Note that
752e2e947ffSSimon Glass		 * gpio4_26 is a NC on old veyron boards, so it doesn't hurt
753e2e947ffSSimon Glass		 * to map this pin everywhere
754e2e947ffSSimon Glass		 */
755e2e947ffSSimon Glass		bt_dev_wake_sleep: bt-dev-wake-sleep {
756e2e947ffSSimon Glass			rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_low>;
757e2e947ffSSimon Glass		};
758e2e947ffSSimon Glass
759e2e947ffSSimon Glass		bt_dev_wake_awake: bt-dev-wake-awake {
760e2e947ffSSimon Glass			rockchip,pins = <4 26 RK_FUNC_GPIO &pcfg_output_high>;
761e2e947ffSSimon Glass		};
762e2e947ffSSimon Glass	};
763e2e947ffSSimon Glass
764e2e947ffSSimon Glass	sdmmc {
765e2e947ffSSimon Glass		/*
766e2e947ffSSimon Glass		 * We run sdmmc at max speed; bump up drive strength.
767e2e947ffSSimon Glass		 * We also have external pulls, so disable the internal ones.
768e2e947ffSSimon Glass		 */
769e2e947ffSSimon Glass		sdmmc_bus4: sdmmc-bus4 {
770e2e947ffSSimon Glass			rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
771e2e947ffSSimon Glass					<6 17 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
772e2e947ffSSimon Glass					<6 18 RK_FUNC_1 &pcfg_pull_none_drv_8ma>,
773e2e947ffSSimon Glass					<6 19 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
774e2e947ffSSimon Glass		};
775e2e947ffSSimon Glass
776e2e947ffSSimon Glass		sdmmc_clk: sdmmc-clk {
777e2e947ffSSimon Glass			rockchip,pins = <6 20 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
778e2e947ffSSimon Glass		};
779e2e947ffSSimon Glass
780e2e947ffSSimon Glass		sdmmc_cmd: sdmmc-cmd {
781e2e947ffSSimon Glass			rockchip,pins = <6 21 RK_FUNC_1 &pcfg_pull_none_drv_8ma>;
782e2e947ffSSimon Glass		};
783e2e947ffSSimon Glass
784e2e947ffSSimon Glass		/*
785e2e947ffSSimon Glass		 * Builtin CD line is hooked to ground to prevent JTAG at boot
786e2e947ffSSimon Glass		 * (and also to get the voltage rail correct).  Make we
787e2e947ffSSimon Glass		 * configure gpio6_C6 as GPIO so dw_mmc builtin CD doesn't
788e2e947ffSSimon Glass		 * think there's a card inserted
789e2e947ffSSimon Glass		 */
790e2e947ffSSimon Glass		sdmmc_cd_disabled: sdmmc-cd-disabled {
791e2e947ffSSimon Glass			rockchip,pins = <6 22 RK_FUNC_GPIO &pcfg_pull_none>;
792e2e947ffSSimon Glass		};
793e2e947ffSSimon Glass
794e2e947ffSSimon Glass		/* This is where we actually hook up CD */
795e2e947ffSSimon Glass		sdmmc_cd_gpio: sdmmc-cd-gpio {
796e2e947ffSSimon Glass			rockchip,pins = <7 5 RK_FUNC_GPIO &pcfg_pull_none>;
797e2e947ffSSimon Glass		};
798e2e947ffSSimon Glass	};
799e2e947ffSSimon Glass
800e2e947ffSSimon Glass	tpm {
801e2e947ffSSimon Glass		tpm_int_h: tpm-int-h {
802e2e947ffSSimon Glass			rockchip,pins = <7 4 RK_FUNC_GPIO &pcfg_pull_none>;
803e2e947ffSSimon Glass		};
804e2e947ffSSimon Glass	};
805e2e947ffSSimon Glass
806e2e947ffSSimon Glass	write-protect {
807e2e947ffSSimon Glass		fw_wp_ap: fw-wp-ap {
808e2e947ffSSimon Glass			rockchip,pins = <7 6 RK_FUNC_GPIO &pcfg_pull_none>;
809e2e947ffSSimon Glass		};
810e2e947ffSSimon Glass	};
811e2e947ffSSimon Glass};
812e2e947ffSSimon Glass
813e2e947ffSSimon Glass&usbphy {
814e2e947ffSSimon Glass	status = "okay";
815e2e947ffSSimon Glass};
816e2e947ffSSimon Glass
817e2e947ffSSimon Glass&usb_host0_ehci {
818e2e947ffSSimon Glass	status = "okay";
819e2e947ffSSimon Glass	needs-reset-on-resume;
820e2e947ffSSimon Glass};
821e2e947ffSSimon Glass
822e2e947ffSSimon Glass&usb_host1 {
823e2e947ffSSimon Glass	status = "okay";
824e2e947ffSSimon Glass};
825e2e947ffSSimon Glass
826e2e947ffSSimon Glass&usb_otg {
827e2e947ffSSimon Glass	dr_mode = "host";
828e2e947ffSSimon Glass	status = "okay";
829e2e947ffSSimon Glass	assigned-clocks = <&cru SCLK_USBPHY480M_SRC>;
830e2e947ffSSimon Glass	assigned-clock-parents = <&cru SCLK_OTGPHY0>;
831e2e947ffSSimon Glass};
832e2e947ffSSimon Glass
833e2e947ffSSimon Glass&sdmmc {
834e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
835e2e947ffSSimon Glass};
836e2e947ffSSimon Glass
837e2e947ffSSimon Glass&gpio3 {
838e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
839e2e947ffSSimon Glass};
840e2e947ffSSimon Glass
841e2e947ffSSimon Glass&gpio8 {
842e2e947ffSSimon Glass	u-boot,dm-pre-reloc;
843e2e947ffSSimon Glass};
844