1/*
2 * Copyright (c) 2013 MundoReader S.L.
3 * Author: Heiko Stuebner <heiko@sntech.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU General Public License for more details.
14 */
15
16/dts-v1/;
17#include "rk3066a.dtsi"
18
19/ {
20	model = "bq Curie 2";
21	compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
22
23	memory {
24		reg = <0x60000000 0x40000000>;
25	};
26
27	vcc_sd0: fixed-regulator {
28		compatible = "regulator-fixed";
29		regulator-name = "sdmmc-supply";
30		regulator-min-microvolt = <3000000>;
31		regulator-max-microvolt = <3000000>;
32		gpio = <&gpio3 7 GPIO_ACTIVE_LOW>;
33		startup-delay-us = <100000>;
34		vin-supply = <&vcc_io>;
35	};
36
37	gpio-keys {
38		compatible = "gpio-keys";
39		#address-cells = <1>;
40		#size-cells = <0>;
41		autorepeat;
42
43		button@0 {
44			gpios = <&gpio6 2 GPIO_ACTIVE_LOW>; /* GPIO6_A2 */
45			linux,code = <116>;
46			label = "GPIO Key Power";
47			linux,input-type = <1>;
48			gpio-key,wakeup = <1>;
49			debounce-interval = <100>;
50		};
51		button@1 {
52			gpios = <&gpio4 21 GPIO_ACTIVE_LOW>; /* GPIO4_C5 */
53			linux,code = <104>;
54			label = "GPIO Key Vol-";
55			linux,input-type = <1>;
56			gpio-key,wakeup = <0>;
57			debounce-interval = <100>;
58		};
59		/* VOL+ comes somehow thru the ADC */
60	};
61};
62
63&cpu0 {
64	cpu0-supply = <&vdd_arm>;
65};
66
67&i2c1 {
68	status = "okay";
69	clock-frequency = <400000>;
70
71	tps: tps@2d {
72		reg = <0x2d>;
73
74		interrupt-parent = <&gpio6>;
75		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
76
77		vcc5-supply = <&vcc_io>;
78		vcc6-supply = <&vcc_io>;
79
80		regulators {
81			vcc_rtc: regulator@0 {
82				regulator-name = "vcc_rtc";
83				regulator-always-on;
84			};
85
86			vcc_io: regulator@1 {
87				regulator-name = "vcc_io";
88				regulator-always-on;
89			};
90
91			vdd_arm: regulator@2 {
92				regulator-name = "vdd_arm";
93				regulator-min-microvolt = <600000>;
94				regulator-max-microvolt = <1500000>;
95				regulator-boot-on;
96				regulator-always-on;
97			};
98
99			vcc_ddr: regulator@3 {
100				regulator-name = "vcc_ddr";
101				regulator-min-microvolt = <600000>;
102				regulator-max-microvolt = <1500000>;
103				regulator-boot-on;
104				regulator-always-on;
105			};
106
107			vcc18_cif: regulator@5 {
108				regulator-name = "vcc18_cif";
109				regulator-always-on;
110			};
111
112			vdd_11: regulator@6 {
113				regulator-name = "vdd_11";
114				regulator-always-on;
115			};
116
117			vcc_25: regulator@7 {
118				regulator-name = "vcc_25";
119				regulator-always-on;
120			};
121
122			vcc_18: regulator@8 {
123				regulator-name = "vcc_18";
124				regulator-always-on;
125			};
126
127			vcc25_hdmi: regulator@9 {
128				regulator-name = "vcc25_hdmi";
129				regulator-always-on;
130			};
131
132			vcca_33: regulator@10 {
133				regulator-name = "vcca_33";
134				regulator-always-on;
135			};
136
137			vcc_tp: regulator@11 {
138				regulator-name = "vcc_tp";
139				regulator-always-on;
140			};
141
142			vcc28_cif: regulator@12 {
143				regulator-name = "vcc28_cif";
144				regulator-always-on;
145			};
146		};
147	};
148};
149
150/* must be included after &tps gets defined */
151#include "tps65910.dtsi"
152
153&mmc0 { /* sdmmc */
154	num-slots = <1>;
155	status = "okay";
156	pinctrl-names = "default";
157	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
158	vmmc-supply = <&vcc_sd0>;
159	bus-width = <4>;
160	disable-wp;
161};
162
163&mmc1 { /* wifi */
164	num-slots = <1>;
165	status = "okay";
166	non-removable;
167
168	pinctrl-names = "default";
169	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
170
171	bus-width = <4>;
172	disable-wp;
173};
174
175&uart0 {
176	status = "okay";
177};
178
179&uart1 {
180	status = "okay";
181};
182
183&uart2 {
184	status = "okay";
185};
186
187&uart3 {
188	status = "okay";
189};
190
191&wdt {
192	status = "okay";
193};
194