ARM: dts: rockchip: add rk3288-popmetal mmc supplies
[deliverable/linux.git] / arch / arm / boot / dts / rk3288-popmetal.dts
1 /*
2 * Copyright (c) 2014, 2015 Andy Yan <andy.yan@rock-chips.com>
3 *
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
7 * whole.
8 *
9 * a) This file is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
13 *
14 * This file is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * Or, alternatively,
20 *
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
28 * conditions:
29 *
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
32 *
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
41 */
42
43 /dts-v1/;
44
45 #include "rk3288.dtsi"
46
47 / {
48 model = "PopMetal-RK3288";
49 compatible = "chipspark,popmetal-rk3288", "rockchip,rk3288";
50
51 memory{
52 device_type = "memory";
53 reg = <0 0x80000000>;
54 };
55
56 ext_gmac: external-gmac-clock {
57 compatible = "fixed-clock";
58 clock-frequency = <125000000>;
59 clock-output-names = "ext_gmac";
60 #clock-cells = <0>;
61 };
62
63 gpio-keys {
64 compatible = "gpio-keys";
65 #address-cells = <1>;
66 #size-cells = <0>;
67 autorepeat;
68
69 pinctrl-names = "default";
70 pinctrl-0 = <&pwrbtn>;
71
72 button@0 {
73 gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
74 linux,code = <116>;
75 label = "GPIO Key Power";
76 linux,input-type = <1>;
77 gpio-key,wakeup = <1>;
78 debounce-interval = <100>;
79 };
80 };
81
82 ir: ir-receiver {
83 compatible = "gpio-ir-receiver";
84 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
85 pinctrl-names = "default";
86 pinctrl-0 = <&ir_int>;
87 };
88
89 vcc_flash: flash-regulator {
90 compatible = "regulator-fixed";
91 regulator-name = "vcc_flash";
92 regulator-min-microvolt = <1800000>;
93 regulator-max-microvolt = <1800000>;
94 vin-supply = <&vcc_io>;
95 };
96
97 vcc_sd: sdmmc-regulator {
98 compatible = "regulator-fixed";
99 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
100 pinctrl-names = "default";
101 pinctrl-0 = <&sdmmc_pwr>;
102 regulator-name = "vcc_sd";
103 regulator-min-microvolt = <3300000>;
104 regulator-max-microvolt = <3300000>;
105 startup-delay-us = <100000>;
106 vin-supply = <&vcc_io>;
107 };
108
109 vcc_sys: vsys-regulator {
110 compatible = "regulator-fixed";
111 regulator-name = "vcc_sys";
112 regulator-min-microvolt = <5000000>;
113 regulator-max-microvolt = <5000000>;
114 regulator-always-on;
115 regulator-boot-on;
116 };
117 };
118
119 &cpu0 {
120 cpu0-supply = <&vdd_cpu>;
121 };
122
123 &emmc {
124 broken-cd;
125 bus-width = <8>;
126 cap-mmc-highspeed;
127 disable-wp;
128 non-removable;
129 num-slots = <1>;
130 pinctrl-names = "default";
131 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
132 vmmc-supply = <&vcc_io>;
133 vqmmc-supply = <&vcc_flash>;
134 status = "okay";
135 };
136
137 &sdmmc {
138 bus-width = <4>;
139 cap-mmc-highspeed;
140 cap-sd-highspeed;
141 card-detect-delay = <200>;
142 disable-wp; /* wp not hooked up */
143 num-slots = <1>;
144 pinctrl-names = "default";
145 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
146 vmmc-supply = <&vcc_sd>;
147 vqmmc-supply = <&vccio_sd>;
148 status = "okay";
149 };
150
151 &gmac {
152 phy-supply = <&vcc_lan>;
153 phy-mode = "rgmii";
154 clock_in_out = "input";
155 snps,reset-gpio = <&gpio4 7 0>;
156 snps,reset-active-low;
157 snps,reset-delays-us = <0 10000 1000000>;
158 assigned-clocks = <&cru SCLK_MAC>;
159 assigned-clock-parents = <&ext_gmac>;
160 pinctrl-names = "default";
161 pinctrl-0 = <&rgmii_pins>;
162 tx_delay = <0x30>;
163 rx_delay = <0x10>;
164 status = "ok";
165 };
166
167 &hdmi {
168 ddc-i2c-bus = <&i2c5>;
169 status = "okay";
170 };
171
172 &i2c0 {
173 status = "okay";
174 clock-frequency = <400000>;
175
176 rk808: pmic@1b {
177 compatible = "rockchip,rk808";
178 reg = <0x1b>;
179 interrupt-parent = <&gpio0>;
180 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
181 pinctrl-names = "default";
182 pinctrl-0 = <&pmic_int &global_pwroff>;
183 rockchip,system-power-controller;
184 wakeup-source;
185 #clock-cells = <1>;
186 clock-output-names = "xin32k", "rk808-clkout2";
187
188 vcc1-supply = <&vcc_sys>;
189 vcc2-supply = <&vcc_sys>;
190 vcc3-supply = <&vcc_sys>;
191 vcc4-supply = <&vcc_sys>;
192 vcc6-supply = <&vcc_sys>;
193 vcc7-supply = <&vcc_sys>;
194 vcc8-supply = <&vcc_18>;
195 vcc9-supply = <&vcc_io>;
196 vcc10-supply = <&vcc_io>;
197 vcc11-supply = <&vcc_sys>;
198 vcc12-supply = <&vcc_io>;
199 vddio-supply = <&vcc_io>;
200
201 regulators {
202 vdd_cpu: DCDC_REG1 {
203 regulator-always-on;
204 regulator-boot-on;
205 regulator-min-microvolt = <750000>;
206 regulator-max-microvolt = <1350000>;
207 regulator-name = "vdd_arm";
208 regulator-state-mem {
209 regulator-off-in-suspend;
210 };
211 };
212
213 vdd_gpu: DCDC_REG2 {
214 regulator-always-on;
215 regulator-boot-on;
216 regulator-min-microvolt = <850000>;
217 regulator-max-microvolt = <1250000>;
218 regulator-name = "vdd_gpu";
219 regulator-state-mem {
220 regulator-on-in-suspend;
221 regulator-suspend-microvolt = <1000000>;
222 };
223 };
224
225 vcc_ddr: DCDC_REG3 {
226 regulator-always-on;
227 regulator-boot-on;
228 regulator-name = "vcc_ddr";
229 regulator-state-mem {
230 regulator-on-in-suspend;
231 };
232 };
233
234 vcc_io: DCDC_REG4 {
235 regulator-always-on;
236 regulator-boot-on;
237 regulator-min-microvolt = <3300000>;
238 regulator-max-microvolt = <3300000>;
239 regulator-name = "vcc_io";
240 regulator-state-mem {
241 regulator-on-in-suspend;
242 regulator-suspend-microvolt = <3300000>;
243 };
244 };
245
246 vcc_lan: LDO_REG1 {
247 regulator-always-on;
248 regulator-boot-on;
249 regulator-min-microvolt = <3300000>;
250 regulator-max-microvolt = <3300000>;
251 regulator-name = "vcc_lan";
252 regulator-state-mem {
253 regulator-on-in-suspend;
254 regulator-suspend-microvolt = <3300000>;
255 };
256 };
257
258 vccio_sd: LDO_REG2 {
259 regulator-always-on;
260 regulator-boot-on;
261 regulator-min-microvolt = <3300000>;
262 regulator-max-microvolt = <3300000>;
263 regulator-name = "vccio_sd";
264 regulator-state-mem {
265 regulator-off-in-suspend;
266 };
267 };
268
269 vdd_10: LDO_REG3 {
270 regulator-always-on;
271 regulator-boot-on;
272 regulator-min-microvolt = <1000000>;
273 regulator-max-microvolt = <1000000>;
274 regulator-name = "vdd_10";
275 regulator-state-mem {
276 regulator-on-in-suspend;
277 regulator-suspend-microvolt = <1000000>;
278 };
279 };
280
281 vcc18_lcd: LDO_REG4 {
282 regulator-always-on;
283 regulator-boot-on;
284 regulator-min-microvolt = <1800000>;
285 regulator-max-microvolt = <1800000>;
286 regulator-name = "vcc18_lcd";
287 regulator-state-mem {
288 regulator-on-in-suspend;
289 regulator-suspend-microvolt = <1800000>;
290 };
291 };
292
293 ldo5: LDO_REG5 {
294 regulator-always-on;
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <3300000>;
297 regulator-name = "ldo5";
298 };
299
300 vdd10_lcd: LDO_REG6 {
301 regulator-always-on;
302 regulator-boot-on;
303 regulator-min-microvolt = <1000000>;
304 regulator-max-microvolt = <1000000>;
305 regulator-name = "vdd10_lcd";
306 regulator-state-mem {
307 regulator-on-in-suspend;
308 regulator-suspend-microvolt = <1000000>;
309 };
310 };
311
312 vcc_18: LDO_REG7 {
313 regulator-always-on;
314 regulator-boot-on;
315 regulator-min-microvolt = <1800000>;
316 regulator-max-microvolt = <1800000>;
317 regulator-name = "vcc_18";
318 regulator-state-mem {
319 regulator-on-in-suspend;
320 regulator-suspend-microvolt = <1800000>;
321 };
322 };
323
324 vcca_codec: LDO_REG8 {
325 regulator-always-on;
326 regulator-boot-on;
327 regulator-min-microvolt = <3300000>;
328 regulator-max-microvolt = <3300000>;
329 regulator-name = "vcca_codec";
330 regulator-state-mem {
331 regulator-on-in-suspend;
332 regulator-suspend-microvolt = <3300000>;
333 };
334 };
335
336 vcc_wl: SWITCH_REG1 {
337 regulator-always-on;
338 regulator-boot-on;
339 regulator-name = "vcc_wl";
340 regulator-state-mem {
341 regulator-on-in-suspend;
342 };
343 };
344
345 vcc_lcd: SWITCH_REG2 {
346 regulator-always-on;
347 regulator-boot-on;
348 regulator-name = "vcc_lcd";
349 regulator-state-mem {
350 regulator-on-in-suspend;
351 };
352 };
353 };
354 };
355 };
356
357 &i2c1 {
358 status = "okay";
359 clock-frequency = <400000>;
360
361 ak8963: ak8963@0d {
362 compatible = "asahi-kasei,ak8975";
363 reg = <0x0d>;
364 interrupt-parent = <&gpio8>;
365 interrupts = <1 IRQ_TYPE_EDGE_RISING>;
366 pinctrl-names = "default";
367 pinctrl-0 = <&comp_int>;
368 };
369
370 l3g4200d: l3g4200d@68 {
371 compatible = "st,l3g4200d-gyro";
372 st,drdy-int-pin = <2>;
373 reg = <0x6b>;
374 };
375
376 mma8452: mma8452@1d {
377 compatible = "fsl,mma8452";
378 reg = <0x1d>;
379 interrupt-parent = <&gpio8>;
380 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
381 pinctrl-names = "default";
382 pinctrl-0 = <&gsensor_int>;
383 };
384 };
385
386 &i2c2 {
387 status = "okay";
388 };
389
390 &i2c3 {
391 status = "okay";
392 };
393
394 &i2c4 {
395 status = "okay";
396 };
397
398 &i2c5 {
399 status = "okay";
400 };
401
402 &pinctrl {
403 ak8963 {
404 comp_int: comp-int {
405 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
406 };
407 };
408
409 buttons {
410 pwrbtn: pwrbtn {
411 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
412 };
413 };
414
415 ir {
416 ir_int: ir-int {
417 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
418 };
419 };
420
421 mma8452 {
422 gsensor_int: gsensor-int {
423 rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
424 };
425 };
426
427 pmic {
428 pmic_int: pmic-int {
429 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
430 };
431 };
432
433 sdmmc {
434 sdmmc_pwr: sdmmc-pwr {
435 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
436 };
437 };
438 };
439
440 &tsadc {
441 rockchip,hw-tshut-mode = <0>;
442 rockchip,hw-tshut-polarity = <0>;
443 status = "okay";
444 };
445
446 &vopb {
447 status = "okay";
448 };
449
450 &vopb_mmu {
451 status = "okay";
452 };
453
454 &vopl {
455 status = "okay";
456 };
457
458 &vopl_mmu {
459 status = "okay";
460 };
461
462 &uart0 {
463 status = "okay";
464 };
465
466 &uart1 {
467 status = "okay";
468 };
469
470 &uart2 {
471 status = "okay";
472 };
473
474 &uart3 {
475 status = "okay";
476 };
477
478 &uart4 {
479 status = "okay";
480 };
481
482 &usbphy {
483 status = "okay";
484 };
This page took 0.044303 seconds and 5 git commands to generate.