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