blob: 1526b41c70f106fc8303a0f5a6940501be8c8d2c [file] [log] [blame]
Hans de Goededb325e82015-04-15 19:03:49 +02001/*
2 * Copyright 2015 Tyler Baker
3 *
4 * Tyler Baker <tyler.baker@linaro.org>
5 * Chen-Yu Tsai <wens@csie.org>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License as
14 * published by the Free Software Foundation; either version 2 of the
15 * License, or (at your option) any later version.
16 *
17 * This file is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 * b) Permission is hereby granted, free of charge, to any person
25 * obtaining a copy of this software and associated documentation
26 * files (the "Software"), to deal in the Software without
27 * restriction, including without limitation the rights to use,
28 * copy, modify, merge, publish, distribute, sublicense, and/or
29 * sell copies of the Software, and to permit persons to whom the
30 * Software is furnished to do so, subject to the following
31 * conditions:
32 *
33 * The above copyright notice and this permission notice shall be
34 * included in all copies or substantial portions of the Software.
35 *
36 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 * OTHER DEALINGS IN THE SOFTWARE.
44 */
45
46/dts-v1/;
47#include "sun9i-a80.dtsi"
Hans de Goededb325e82015-04-15 19:03:49 +020048
49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/pinctrl/sun4i-a10.h>
51
52/ {
53 model = "Cubietech Cubieboard4";
54 compatible = "cubietech,a80-cubieboard4", "allwinner,sun9i-a80";
55
56 aliases {
57 serial0 = &uart0;
58 };
59
60 chosen {
61 stdout-path = "serial0:115200n8";
62 };
63
Hans de Goede19888a42016-03-14 17:37:09 +010064 leds {
65 compatible = "gpio-leds";
66 pinctrl-names = "default";
67 pinctrl-0 = <&led_pins_cubieboard4>;
68
69 green {
70 label = "cubieboard4:green:usr";
71 gpios = <&pio 7 17 GPIO_ACTIVE_HIGH>; /* PH17 */
72 };
73
74 red {
75 label = "cubieboard4:red:usr";
76 gpios = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
77 };
78 };
Hans de Goededb325e82015-04-15 19:03:49 +020079};
80
Hans de Goededb325e82015-04-15 19:03:49 +020081&mmc0 {
82 pinctrl-names = "default";
83 pinctrl-0 = <&mmc0_pins>, <&mmc0_cd_pin_cubieboard4>;
Hans de Goede6ebb4d02016-08-18 20:51:12 +020084 vmmc-supply = <&reg_dcdc1>;
Hans de Goededb325e82015-04-15 19:03:49 +020085 bus-width = <4>;
86 cd-gpios = <&pio 7 18 GPIO_ACTIVE_HIGH>; /* PH18 */
87 cd-inverted;
88 status = "okay";
89};
90
91&mmc2 {
92 pinctrl-names = "default";
93 pinctrl-0 = <&mmc2_8bit_pins>;
Hans de Goede6ebb4d02016-08-18 20:51:12 +020094 vmmc-supply = <&reg_dcdc1>;
Hans de Goededb325e82015-04-15 19:03:49 +020095 bus-width = <8>;
96 non-removable;
Hans de Goede19888a42016-03-14 17:37:09 +010097 cap-mmc-hw-reset;
98 status = "okay";
99};
100
101&mmc2_8bit_pins {
102 /* Increase drive strength for DDR modes */
103 allwinner,drive = <SUN4I_PINCTRL_40_MA>;
104};
105
Hans de Goede6ebb4d02016-08-18 20:51:12 +0200106&pio {
107 led_pins_cubieboard4: led-pins@0 {
108 allwinner,pins = "PH6", "PH17";
109 allwinner,function = "gpio_out";
110 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
111 allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
112 };
113
114 mmc0_cd_pin_cubieboard4: mmc0_cd_pin@0 {
115 allwinner,pins = "PH18";
116 allwinner,function = "gpio_in";
117 allwinner,drive = <SUN4I_PINCTRL_10_MA>;
118 allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
119 };
120};
121
Hans de Goede19888a42016-03-14 17:37:09 +0100122&r_ir {
123 status = "okay";
124};
125
126&r_rsb {
Hans de Goededb325e82015-04-15 19:03:49 +0200127 status = "okay";
Hans de Goede6ebb4d02016-08-18 20:51:12 +0200128
129 axp809: pmic@3a3 {
130 reg = <0x3a3>;
131 interrupt-parent = <&nmi_intc>;
132 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
133
134 regulators {
135 reg_aldo1: aldo1 {
136 /*
137 * TODO: This should be handled by the
138 * USB PHY driver.
139 */
140 regulator-always-on;
141 regulator-min-microvolt = <3000000>;
142 regulator-max-microvolt = <3000000>;
143 regulator-name = "vcc33-usbh";
144 };
145
146 reg_aldo2: aldo2 {
147 regulator-min-microvolt = <1800000>;
148 regulator-max-microvolt = <1800000>;
149 regulator-name = "vcc-pb-io-cam";
150 };
151
152 aldo3 {
153 /* unused */
154 };
155
156 reg_dc5ldo: dc5ldo {
157 regulator-always-on;
158 regulator-min-microvolt = <800000>;
159 regulator-max-microvolt = <1100000>;
160 regulator-name = "vdd-cpus-09-usbh";
161 };
162
163 reg_dcdc1: dcdc1 {
164 regulator-always-on;
165 regulator-min-microvolt = <3000000>;
166 regulator-max-microvolt = <3000000>;
167 regulator-name = "vcc-3v";
168 };
169
170 reg_dcdc2: dcdc2 {
171 regulator-min-microvolt = <800000>;
172 regulator-max-microvolt = <1100000>;
173 regulator-name = "vdd-gpu";
174 };
175
176 reg_dcdc3: dcdc3 {
177 regulator-always-on;
178 regulator-min-microvolt = <800000>;
179 regulator-max-microvolt = <1100000>;
180 regulator-name = "vdd-cpua";
181 };
182
183 reg_dcdc4: dcdc4 {
184 regulator-always-on;
185 regulator-min-microvolt = <800000>;
186 regulator-max-microvolt = <1100000>;
187 regulator-name = "vdd-sys-usb0-hdmi";
188 };
189
190 reg_dcdc5: dcdc5 {
191 regulator-always-on;
192 regulator-min-microvolt = <1425000>;
193 regulator-max-microvolt = <1575000>;
194 regulator-name = "vcc-dram";
195 };
196
197 reg_dldo1: dldo1 {
198 /*
199 * The WiFi chip supports a wide range
200 * (3.0 ~ 4.8V) of voltages, and so does
201 * this regulator (3.0 ~ 4.2V), but
202 * Allwinner SDK always sets it to 3.3V.
203 */
204 regulator-min-microvolt = <3300000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-name = "vcc-wifi";
207 };
208
209 reg_dldo2: dldo2 {
210 regulator-always-on;
211 regulator-min-microvolt = <3000000>;
212 regulator-max-microvolt = <3000000>;
213 regulator-name = "vcc-pl";
214 };
215
216 reg_eldo1: eldo1 {
217 regulator-min-microvolt = <1200000>;
218 regulator-max-microvolt = <1200000>;
219 regulator-name = "vcc-dvdd-cam";
220 };
221
222 reg_eldo2: eldo2 {
223 regulator-min-microvolt = <1800000>;
224 regulator-max-microvolt = <1800000>;
225 regulator-name = "vcc-pe";
226 };
227
228 reg_eldo3: eldo3 {
229 regulator-always-on;
230 regulator-min-microvolt = <3000000>;
231 regulator-max-microvolt = <3000000>;
232 regulator-name = "vcc-pm-codec-io1";
233 };
234
235 reg_ldo_io0: ldo_io0 {
236 regulator-always-on;
237 regulator-min-microvolt = <3000000>;
238 regulator-max-microvolt = <3000000>;
239 regulator-name = "vcc-pg";
240 };
241
242 reg_ldo_io1: ldo_io1 {
243 regulator-min-microvolt = <2500000>;
244 regulator-max-microvolt = <2500000>;
245 regulator-name = "vcc-pa-gmac-2v5";
246 };
247
248 reg_rtc_ldo: rtc_ldo {
249 regulator-name = "vcc-rtc-vdd1v8-io";
250 };
251 };
252 };
Hans de Goededb325e82015-04-15 19:03:49 +0200253};
254
Hans de Goede6ebb4d02016-08-18 20:51:12 +0200255#include "axp809.dtsi"
256
Hans de Goededb325e82015-04-15 19:03:49 +0200257&uart0 {
258 pinctrl-names = "default";
259 pinctrl-0 = <&uart0_pins_a>;
260 status = "okay";
261};