1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2013 MundoReader S.L.
4 * Author: Heiko Stuebner <heiko@sntech.de>
5 */
6
7/dts-v1/;
8#include <dt-bindings/input/input.h>
9#include "rk3066a.dtsi"
10
11/ {
12	model = "bq Curie 2";
13	compatible = "mundoreader,bq-curie2", "rockchip,rk3066a";
14
15	aliases {
16		mmc0 = &mmc0;
17		mmc1 = &mmc1;
18	};
19
20	memory@60000000 {
21		device_type = "memory";
22		reg = <0x60000000 0x40000000>;
23	};
24
25	vdd_log: vdd-log {
26		compatible = "pwm-regulator";
27		pwms = <&pwm3 0 1000>;
28		regulator-name = "vdd_log";
29		regulator-min-microvolt = <1200000>;
30		regulator-max-microvolt = <1200000>;
31		regulator-always-on;
32		voltage-table = <1000000 100>,
33				<1200000 42>;
34		status = "okay";
35	};
36
37	vcc_sd0: fixed-regulator {
38		compatible = "regulator-fixed";
39		regulator-name = "sdmmc-supply";
40		regulator-min-microvolt = <3000000>;
41		regulator-max-microvolt = <3000000>;
42		gpio = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>;
43		startup-delay-us = <100000>;
44		vin-supply = <&vcc_io>;
45	};
46
47	gpio-keys {
48		compatible = "gpio-keys";
49		autorepeat;
50
51		key-power {
52			gpios = <&gpio6 RK_PA2 GPIO_ACTIVE_LOW>; /* GPIO6_A2 */
53			linux,code = <KEY_POWER>;
54			label = "GPIO Key Power";
55			linux,input-type = <1>;
56			wakeup-source;
57			debounce-interval = <100>;
58		};
59		key-volume-down {
60			gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_LOW>; /* GPIO4_C5 */
61			linux,code = <KEY_VOLUMEDOWN>;
62			label = "GPIO Key Vol-";
63			linux,input-type = <1>;
64			debounce-interval = <100>;
65		};
66		/* VOL+ comes somehow thru the ADC */
67	};
68};
69
70&cpu0 {
71	cpu-supply = <&vdd_arm>;
72};
73
74&cpu1 {
75	cpu-supply = <&vdd_arm>;
76};
77
78&i2c1 {
79	status = "okay";
80	clock-frequency = <400000>;
81
82	tps: tps@2d {
83		reg = <0x2d>;
84
85		interrupt-parent = <&gpio6>;
86		interrupts = <RK_PA6 IRQ_TYPE_LEVEL_LOW>;
87
88		vcc5-supply = <&vcc_io>;
89		vcc6-supply = <&vcc_io>;
90
91		regulators {
92			vcc_rtc: regulator@0 {
93				regulator-name = "vcc_rtc";
94				regulator-always-on;
95			};
96
97			vcc_io: regulator@1 {
98				regulator-name = "vcc_io";
99				regulator-always-on;
100			};
101
102			vdd_arm: regulator@2 {
103				regulator-name = "vdd_arm";
104				regulator-min-microvolt = <600000>;
105				regulator-max-microvolt = <1500000>;
106				regulator-boot-on;
107				regulator-always-on;
108			};
109
110			vcc_ddr: regulator@3 {
111				regulator-name = "vcc_ddr";
112				regulator-min-microvolt = <600000>;
113				regulator-max-microvolt = <1500000>;
114				regulator-boot-on;
115				regulator-always-on;
116			};
117
118			vcc18_cif: regulator@5 {
119				regulator-name = "vcc18_cif";
120				regulator-always-on;
121			};
122
123			vdd_11: regulator@6 {
124				regulator-name = "vdd_11";
125				regulator-always-on;
126			};
127
128			vcc_25: regulator@7 {
129				regulator-name = "vcc_25";
130				regulator-always-on;
131			};
132
133			vcc_18: regulator@8 {
134				regulator-name = "vcc_18";
135				regulator-always-on;
136			};
137
138			vcc25_hdmi: regulator@9 {
139				regulator-name = "vcc25_hdmi";
140				regulator-always-on;
141			};
142
143			vcca_33: regulator@10 {
144				regulator-name = "vcca_33";
145				regulator-always-on;
146			};
147
148			vcc_tp: regulator@11 {
149				regulator-name = "vcc_tp";
150				regulator-always-on;
151			};
152
153			vcc28_cif: regulator@12 {
154				regulator-name = "vcc28_cif";
155				regulator-always-on;
156			};
157		};
158	};
159};
160
161/* must be included after &tps gets defined */
162#include "../tps65910.dtsi"
163
164&mmc0 { /* sdmmc */
165	status = "okay";
166	pinctrl-names = "default";
167	pinctrl-0 = <&sd0_clk>, <&sd0_cmd>, <&sd0_cd>, <&sd0_bus4>;
168	vmmc-supply = <&vcc_sd0>;
169	bus-width = <4>;
170	cap-mmc-highspeed;
171	cap-sd-highspeed;
172	disable-wp;
173};
174
175&mmc1 { /* wifi */
176	status = "okay";
177	non-removable;
178
179	pinctrl-names = "default";
180	pinctrl-0 = <&sd1_clk &sd1_cmd &sd1_bus4>;
181
182	bus-width = <4>;
183};
184
185&pwm3 {
186	status = "okay";
187};
188
189&uart0 {
190	status = "okay";
191};
192
193&uart1 {
194	status = "okay";
195};
196
197&uart2 {
198	status = "okay";
199};
200
201&uart3 {
202	status = "okay";
203};
204
205&wdt {
206	status = "okay";
207};
208