]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - arch/arm/boot/dts/rk3288-popmetal.dts
Merge branches 'for-4.4/upstream-fixes', 'for-4.5/async-suspend', 'for-4.5/container...
[mirror_ubuntu-artful-kernel.git] / arch / arm / boot / dts / rk3288-popmetal.dts
CommitLineData
c38e1328
AY
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{
6158e6d0 52 device_type = "memory";
c38e1328
AY
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
90f9a541
HS
82 io_domains: io-domains {
83 compatible = "rockchip,rk3288-io-voltage-domain";
84 rockchip,grf = <&grf>;
85
86 audio-supply = <&vcca_33>;
87 bb-supply = <&vcc_io>;
88 dvp-supply = <&vcc18_dvp>;
89 flash0-supply = <&vcc_flash>;
90 flash1-supply = <&vcc_lan>;
91 gpio30-supply = <&vcc_io>;
92 gpio1830-supply = <&vcc_io>;
93 lcdc-supply = <&vcc_io>;
94 sdcard-supply = <&vccio_sd>;
95 wifi-supply = <&vccio_wl>;
96 };
97
c38e1328
AY
98 ir: ir-receiver {
99 compatible = "gpio-ir-receiver";
100 gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
101 pinctrl-names = "default";
102 pinctrl-0 = <&ir_int>;
103 };
104
fa1c1932
HS
105 vcc_flash: flash-regulator {
106 compatible = "regulator-fixed";
107 regulator-name = "vcc_flash";
108 regulator-min-microvolt = <1800000>;
109 regulator-max-microvolt = <1800000>;
110 vin-supply = <&vcc_io>;
111 };
112
113 vcc_sd: sdmmc-regulator {
114 compatible = "regulator-fixed";
115 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
116 pinctrl-names = "default";
117 pinctrl-0 = <&sdmmc_pwr>;
118 regulator-name = "vcc_sd";
119 regulator-min-microvolt = <3300000>;
120 regulator-max-microvolt = <3300000>;
121 startup-delay-us = <100000>;
122 vin-supply = <&vcc_io>;
123 };
124
c38e1328
AY
125 vcc_sys: vsys-regulator {
126 compatible = "regulator-fixed";
127 regulator-name = "vcc_sys";
128 regulator-min-microvolt = <5000000>;
129 regulator-max-microvolt = <5000000>;
130 regulator-always-on;
131 regulator-boot-on;
132 };
90f9a541
HS
133
134 /*
135 * A PT5128 creates both dovdd_1v8 and vcc28_dvp, controlled
136 * by the dvp_pwr pin.
137 */
138 vcc18_dvp: vcc18-dvp-regulator {
139 compatible = "regulator-fixed";
140 regulator-name = "vcc18-dvp";
141 regulator-min-microvolt = <1800000>;
142 regulator-max-microvolt = <1800000>;
143 vin-supply = <&vcc28_dvp>;
144 };
145
146 vcc28_dvp: vcc28-dvp-regulator {
147 compatible = "regulator-fixed";
148 enable-active-high;
149 gpio = <&gpio0 17 GPIO_ACTIVE_HIGH>;
150 pinctrl-names = "default";
151 pinctrl-0 = <&dvp_pwr>;
152 regulator-name = "vcc28_dvp";
153 regulator-min-microvolt = <2800000>;
154 regulator-max-microvolt = <2800000>;
155 regulator-always-on;
156 vin-supply = <&vcc_io>;
157 };
c38e1328
AY
158};
159
160&cpu0 {
161 cpu0-supply = <&vdd_cpu>;
162};
163
164&emmc {
165 broken-cd;
166 bus-width = <8>;
167 cap-mmc-highspeed;
168 disable-wp;
169 non-removable;
170 num-slots = <1>;
171 pinctrl-names = "default";
172 pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_pwr &emmc_bus8>;
fa1c1932
HS
173 vmmc-supply = <&vcc_io>;
174 vqmmc-supply = <&vcc_flash>;
c38e1328
AY
175 status = "okay";
176};
177
178&sdmmc {
179 bus-width = <4>;
180 cap-mmc-highspeed;
181 cap-sd-highspeed;
182 card-detect-delay = <200>;
183 disable-wp; /* wp not hooked up */
184 num-slots = <1>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>;
fa1c1932
HS
187 vmmc-supply = <&vcc_sd>;
188 vqmmc-supply = <&vccio_sd>;
c38e1328
AY
189 status = "okay";
190};
191
192&gmac {
193 phy-supply = <&vcc_lan>;
194 phy-mode = "rgmii";
195 clock_in_out = "input";
196 snps,reset-gpio = <&gpio4 7 0>;
197 snps,reset-active-low;
198 snps,reset-delays-us = <0 10000 1000000>;
199 assigned-clocks = <&cru SCLK_MAC>;
200 assigned-clock-parents = <&ext_gmac>;
201 pinctrl-names = "default";
202 pinctrl-0 = <&rgmii_pins>;
203 tx_delay = <0x30>;
204 rx_delay = <0x10>;
205 status = "ok";
206};
207
208&hdmi {
209 ddc-i2c-bus = <&i2c5>;
210 status = "okay";
211};
212
213&i2c0 {
214 status = "okay";
215 clock-frequency = <400000>;
216
217 rk808: pmic@1b {
218 compatible = "rockchip,rk808";
219 reg = <0x1b>;
220 interrupt-parent = <&gpio0>;
221 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&pmic_int &global_pwroff>;
224 rockchip,system-power-controller;
225 wakeup-source;
226 #clock-cells = <1>;
227 clock-output-names = "xin32k", "rk808-clkout2";
228
229 vcc1-supply = <&vcc_sys>;
230 vcc2-supply = <&vcc_sys>;
231 vcc3-supply = <&vcc_sys>;
232 vcc4-supply = <&vcc_sys>;
233 vcc6-supply = <&vcc_sys>;
234 vcc7-supply = <&vcc_sys>;
235 vcc8-supply = <&vcc_18>;
236 vcc9-supply = <&vcc_io>;
237 vcc10-supply = <&vcc_io>;
238 vcc11-supply = <&vcc_sys>;
239 vcc12-supply = <&vcc_io>;
240 vddio-supply = <&vcc_io>;
241
242 regulators {
243 vdd_cpu: DCDC_REG1 {
244 regulator-always-on;
245 regulator-boot-on;
246 regulator-min-microvolt = <750000>;
247 regulator-max-microvolt = <1350000>;
248 regulator-name = "vdd_arm";
249 regulator-state-mem {
250 regulator-off-in-suspend;
251 };
252 };
253
254 vdd_gpu: DCDC_REG2 {
255 regulator-always-on;
256 regulator-boot-on;
257 regulator-min-microvolt = <850000>;
258 regulator-max-microvolt = <1250000>;
259 regulator-name = "vdd_gpu";
260 regulator-state-mem {
261 regulator-on-in-suspend;
262 regulator-suspend-microvolt = <1000000>;
263 };
264 };
265
266 vcc_ddr: DCDC_REG3 {
267 regulator-always-on;
268 regulator-boot-on;
269 regulator-name = "vcc_ddr";
270 regulator-state-mem {
271 regulator-on-in-suspend;
272 };
273 };
274
275 vcc_io: DCDC_REG4 {
276 regulator-always-on;
277 regulator-boot-on;
278 regulator-min-microvolt = <3300000>;
279 regulator-max-microvolt = <3300000>;
280 regulator-name = "vcc_io";
281 regulator-state-mem {
282 regulator-on-in-suspend;
283 regulator-suspend-microvolt = <3300000>;
284 };
285 };
286
287 vcc_lan: LDO_REG1 {
288 regulator-always-on;
289 regulator-boot-on;
290 regulator-min-microvolt = <3300000>;
291 regulator-max-microvolt = <3300000>;
292 regulator-name = "vcc_lan";
293 regulator-state-mem {
294 regulator-on-in-suspend;
295 regulator-suspend-microvolt = <3300000>;
296 };
297 };
298
299 vccio_sd: LDO_REG2 {
300 regulator-always-on;
301 regulator-boot-on;
302 regulator-min-microvolt = <3300000>;
303 regulator-max-microvolt = <3300000>;
304 regulator-name = "vccio_sd";
305 regulator-state-mem {
306 regulator-off-in-suspend;
307 };
308 };
309
310 vdd_10: LDO_REG3 {
311 regulator-always-on;
312 regulator-boot-on;
313 regulator-min-microvolt = <1000000>;
314 regulator-max-microvolt = <1000000>;
315 regulator-name = "vdd_10";
316 regulator-state-mem {
317 regulator-on-in-suspend;
318 regulator-suspend-microvolt = <1000000>;
319 };
320 };
321
322 vcc18_lcd: LDO_REG4 {
323 regulator-always-on;
324 regulator-boot-on;
325 regulator-min-microvolt = <1800000>;
326 regulator-max-microvolt = <1800000>;
327 regulator-name = "vcc18_lcd";
328 regulator-state-mem {
329 regulator-on-in-suspend;
330 regulator-suspend-microvolt = <1800000>;
331 };
332 };
333
334 ldo5: LDO_REG5 {
335 regulator-always-on;
336 regulator-min-microvolt = <1800000>;
337 regulator-max-microvolt = <3300000>;
338 regulator-name = "ldo5";
339 };
340
341 vdd10_lcd: LDO_REG6 {
342 regulator-always-on;
343 regulator-boot-on;
344 regulator-min-microvolt = <1000000>;
345 regulator-max-microvolt = <1000000>;
346 regulator-name = "vdd10_lcd";
347 regulator-state-mem {
348 regulator-on-in-suspend;
349 regulator-suspend-microvolt = <1000000>;
350 };
351 };
352
353 vcc_18: LDO_REG7 {
354 regulator-always-on;
355 regulator-boot-on;
356 regulator-min-microvolt = <1800000>;
357 regulator-max-microvolt = <1800000>;
358 regulator-name = "vcc_18";
359 regulator-state-mem {
360 regulator-on-in-suspend;
361 regulator-suspend-microvolt = <1800000>;
362 };
363 };
364
90f9a541 365 vcca_33: LDO_REG8 {
c38e1328
AY
366 regulator-always-on;
367 regulator-boot-on;
368 regulator-min-microvolt = <3300000>;
369 regulator-max-microvolt = <3300000>;
90f9a541 370 regulator-name = "vcca_33";
c38e1328
AY
371 regulator-state-mem {
372 regulator-on-in-suspend;
373 regulator-suspend-microvolt = <3300000>;
374 };
375 };
376
90f9a541 377 vccio_wl: SWITCH_REG1 {
c38e1328
AY
378 regulator-always-on;
379 regulator-boot-on;
90f9a541 380 regulator-name = "vccio_wl";
c38e1328
AY
381 regulator-state-mem {
382 regulator-on-in-suspend;
383 };
384 };
385
386 vcc_lcd: SWITCH_REG2 {
387 regulator-always-on;
388 regulator-boot-on;
389 regulator-name = "vcc_lcd";
390 regulator-state-mem {
391 regulator-on-in-suspend;
392 };
393 };
394 };
395 };
396};
397
398&i2c1 {
399 status = "okay";
400 clock-frequency = <400000>;
401
402 ak8963: ak8963@0d {
403 compatible = "asahi-kasei,ak8975";
404 reg = <0x0d>;
405 interrupt-parent = <&gpio8>;
406 interrupts = <1 IRQ_TYPE_EDGE_RISING>;
407 pinctrl-names = "default";
408 pinctrl-0 = <&comp_int>;
409 };
410
411 l3g4200d: l3g4200d@68 {
412 compatible = "st,l3g4200d-gyro";
413 st,drdy-int-pin = <2>;
414 reg = <0x6b>;
415 };
416
417 mma8452: mma8452@1d {
418 compatible = "fsl,mma8452";
419 reg = <0x1d>;
420 interrupt-parent = <&gpio8>;
421 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
422 pinctrl-names = "default";
423 pinctrl-0 = <&gsensor_int>;
424 };
425};
426
427&i2c2 {
428 status = "okay";
429};
430
431&i2c3 {
432 status = "okay";
433};
434
435&i2c4 {
436 status = "okay";
437};
438
439&i2c5 {
440 status = "okay";
441};
442
443&pinctrl {
444 ak8963 {
445 comp_int: comp-int {
446 rockchip,pins = <8 1 RK_FUNC_GPIO &pcfg_pull_up>;
447 };
448 };
449
450 buttons {
451 pwrbtn: pwrbtn {
452 rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
453 };
454 };
455
90f9a541
HS
456 dvp {
457 dvp_pwr: dvp-pwr {
458 rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>;
459 };
460 };
461
c38e1328
AY
462 ir {
463 ir_int: ir-int {
464 rockchip,pins = <0 6 RK_FUNC_GPIO &pcfg_pull_up>;
465 };
466 };
467
468 mma8452 {
469 gsensor_int: gsensor-int {
470 rockchip,pins = <8 0 RK_FUNC_GPIO &pcfg_pull_up>;
471 };
472 };
473
474 pmic {
475 pmic_int: pmic-int {
476 rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
477 };
478 };
fa1c1932
HS
479
480 sdmmc {
481 sdmmc_pwr: sdmmc-pwr {
482 rockchip,pins = <7 11 RK_FUNC_GPIO &pcfg_pull_none>;
483 };
484 };
c38e1328
AY
485};
486
8c653f9a
HS
487&tsadc {
488 rockchip,hw-tshut-mode = <0>;
489 rockchip,hw-tshut-polarity = <0>;
490 status = "okay";
491};
492
c38e1328
AY
493&vopb {
494 status = "okay";
495};
496
497&vopb_mmu {
498 status = "okay";
499};
500
501&vopl {
502 status = "okay";
503};
504
505&vopl_mmu {
506 status = "okay";
507};
508
509&uart0 {
510 status = "okay";
511};
512
513&uart1 {
514 status = "okay";
515};
516
517&uart2 {
518 status = "okay";
519};
520
521&uart3 {
522 status = "okay";
523};
524
525&uart4 {
526 status = "okay";
527};
528
529&usbphy {
530 status = "okay";
531};