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