blob: a1b89b2a2999426a85d42dd312097bd200cd36b8 [file] [log] [blame]
Hans de Goededb325e82015-04-15 19:03:49 +02001/*
2 * Copyright 2013 Maxime Ripard
3 *
4 * Maxime Ripard <maxime.ripard@free-electrons.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 * a) This file is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU General Public License as
13 * published by the Free Software Foundation; either version 2 of the
14 * License, or (at your option) any later version.
15 *
16 * This file is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
Hans de Goededb325e82015-04-15 19:03:49 +020021 * Or, alternatively,
22 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
26 * restriction, including without limitation the rights to use,
27 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
35 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
46#include "sun7i-a20.dtsi"
47#include "sunxi-common-regulators.dtsi"
48
49#include <dt-bindings/gpio/gpio.h>
50#include <dt-bindings/input/input.h>
51#include <dt-bindings/interrupt-controller/irq.h>
Hans de Goededb325e82015-04-15 19:03:49 +020052
53/ {
54 model = "Olimex A20-Olinuxino Micro";
55 compatible = "olimex,a20-olinuxino-micro", "allwinner,sun7i-a20";
56
57 aliases {
58 serial0 = &uart0;
59 serial1 = &uart6;
60 serial2 = &uart7;
61 spi0 = &spi1;
62 spi1 = &spi2;
63 };
64
65 chosen {
66 stdout-path = "serial0:115200n8";
67 };
68
Jagan Tekicb80dd12018-08-05 00:40:10 +053069 hdmi-connector {
70 compatible = "hdmi-connector";
71 type = "a";
72
73 port {
74 hdmi_con_in: endpoint {
75 remote-endpoint = <&hdmi_out_con>;
76 };
77 };
78 };
79
Hans de Goededb325e82015-04-15 19:03:49 +020080 leds {
81 compatible = "gpio-leds";
82 pinctrl-names = "default";
83 pinctrl-0 = <&led_pins_olinuxino>;
84
Samuel Hollandb6180dc2022-04-27 15:31:23 -050085 led {
Hans de Goededb325e82015-04-15 19:03:49 +020086 label = "a20-olinuxino-micro:green:usr";
87 gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>;
88 default-state = "on";
89 };
90 };
91};
92
93&ahci {
94 target-supply = <&reg_ahci_5v>;
95 status = "okay";
96};
97
Jagan Tekicb80dd12018-08-05 00:40:10 +053098&codec {
99 status = "okay";
100};
101
102&cpu0 {
103 cpu-supply = <&reg_dcdc2>;
104};
105
106&de {
107 status = "okay";
108};
109
Hans de Goededb325e82015-04-15 19:03:49 +0200110&ehci0 {
111 status = "okay";
112};
113
114&ehci1 {
115 status = "okay";
116};
117
118&gmac {
119 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530120 pinctrl-0 = <&gmac_mii_pins>, <&gmac_txerr>;
Samuel Hollandb6180dc2022-04-27 15:31:23 -0500121 phy-handle = <&phy1>;
Hans de Goededb325e82015-04-15 19:03:49 +0200122 phy-mode = "mii";
123 status = "okay";
Hans de Goededb325e82015-04-15 19:03:49 +0200124};
125
Jagan Tekicb80dd12018-08-05 00:40:10 +0530126&hdmi {
127 status = "okay";
128};
129
130&hdmi_out {
131 hdmi_out_con: endpoint {
132 remote-endpoint = <&hdmi_con_in>;
133 };
134};
135
Hans de Goededb325e82015-04-15 19:03:49 +0200136&i2c0 {
Hans de Goededb325e82015-04-15 19:03:49 +0200137 status = "okay";
138
139 axp209: pmic@34 {
Hans de Goededb325e82015-04-15 19:03:49 +0200140 reg = <0x34>;
141 interrupt-parent = <&nmi_intc>;
142 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
Hans de Goededb325e82015-04-15 19:03:49 +0200143 };
144};
145
146&i2c1 {
Hans de Goededb325e82015-04-15 19:03:49 +0200147 status = "okay";
Hans de Goede19888a42016-03-14 17:37:09 +0100148
149 eeprom: eeprom@50 {
150 compatible = "atmel,24c16";
151 reg = <0x50>;
152 pagesize = <16>;
153 };
Hans de Goededb325e82015-04-15 19:03:49 +0200154};
155
156&i2c2 {
Hans de Goededb325e82015-04-15 19:03:49 +0200157 status = "okay";
158};
159
160&lradc {
161 vref-supply = <&reg_vcc3v0>;
162 status = "okay";
163
Jagan Teki41a7f432019-04-12 16:19:34 +0530164 button-191 {
Hans de Goededb325e82015-04-15 19:03:49 +0200165 label = "Volume Up";
166 linux,code = <KEY_VOLUMEUP>;
167 channel = <0>;
168 voltage = <191274>;
169 };
170
Jagan Teki41a7f432019-04-12 16:19:34 +0530171 button-392 {
Hans de Goededb325e82015-04-15 19:03:49 +0200172 label = "Volume Down";
173 linux,code = <KEY_VOLUMEDOWN>;
174 channel = <0>;
175 voltage = <392644>;
176 };
177
Jagan Teki41a7f432019-04-12 16:19:34 +0530178 button-601 {
Hans de Goededb325e82015-04-15 19:03:49 +0200179 label = "Menu";
180 linux,code = <KEY_MENU>;
181 channel = <0>;
182 voltage = <601151>;
183 };
184
Jagan Teki41a7f432019-04-12 16:19:34 +0530185 button-795 {
Hans de Goededb325e82015-04-15 19:03:49 +0200186 label = "Search";
187 linux,code = <KEY_SEARCH>;
188 channel = <0>;
189 voltage = <795090>;
190 };
191
Jagan Teki41a7f432019-04-12 16:19:34 +0530192 button-987 {
Hans de Goededb325e82015-04-15 19:03:49 +0200193 label = "Home";
194 linux,code = <KEY_HOMEPAGE>;
195 channel = <0>;
196 voltage = <987387>;
197 };
198
Jagan Teki41a7f432019-04-12 16:19:34 +0530199 button-1184 {
Hans de Goededb325e82015-04-15 19:03:49 +0200200 label = "Esc";
201 linux,code = <KEY_ESC>;
202 channel = <0>;
203 voltage = <1184678>;
204 };
205
Jagan Teki41a7f432019-04-12 16:19:34 +0530206 button-1398 {
Hans de Goededb325e82015-04-15 19:03:49 +0200207 label = "Enter";
208 linux,code = <KEY_ENTER>;
209 channel = <0>;
210 voltage = <1398804>;
211 };
212};
213
Samuel Hollandb6180dc2022-04-27 15:31:23 -0500214&gmac_mdio {
215 phy1: ethernet-phy@1 {
216 reg = <1>;
217 };
218};
219
Hans de Goededb325e82015-04-15 19:03:49 +0200220&mmc0 {
Hans de Goededb325e82015-04-15 19:03:49 +0200221 vmmc-supply = <&reg_vcc3v3>;
222 bus-width = <4>;
Jagan Tekicb80dd12018-08-05 00:40:10 +0530223 cd-gpios = <&pio 7 1 GPIO_ACTIVE_LOW>; /* PH1 */
Hans de Goededb325e82015-04-15 19:03:49 +0200224 status = "okay";
225};
226
227&mmc3 {
Hans de Goededb325e82015-04-15 19:03:49 +0200228 vmmc-supply = <&reg_vcc3v3>;
229 bus-width = <4>;
Jagan Tekicb80dd12018-08-05 00:40:10 +0530230 cd-gpios = <&pio 7 11 GPIO_ACTIVE_LOW>; /* PH11 */
Hans de Goededb325e82015-04-15 19:03:49 +0200231 status = "okay";
232};
233
234&ohci0 {
235 status = "okay";
236};
237
238&ohci1 {
239 status = "okay";
240};
241
Hans de Goede7d831822015-08-05 17:39:14 +0200242&otg_sram {
243 status = "okay";
244};
245
Hans de Goededb325e82015-04-15 19:03:49 +0200246&pio {
Jagan Teki41a7f432019-04-12 16:19:34 +0530247 gmac_txerr: gmac-txerr-pin {
Jagan Tekicb80dd12018-08-05 00:40:10 +0530248 pins = "PA17";
249 function = "gmac";
250 };
251
Jagan Teki41a7f432019-04-12 16:19:34 +0530252 led_pins_olinuxino: led-pins {
Jagan Tekicb80dd12018-08-05 00:40:10 +0530253 pins = "PH2";
254 function = "gpio_out";
255 drive-strength = <20>;
Hans de Goededb325e82015-04-15 19:03:49 +0200256 };
257};
258
Jagan Tekicb80dd12018-08-05 00:40:10 +0530259#include "axp209.dtsi"
260
261&ac_power_supply {
262 status = "okay";
263};
264
265&battery_power_supply {
266 status = "okay";
267};
268
269&reg_dcdc2 {
270 regulator-always-on;
271 regulator-min-microvolt = <1000000>;
272 regulator-max-microvolt = <1400000>;
273 regulator-name = "vdd-cpu";
274};
275
276&reg_dcdc3 {
277 regulator-always-on;
278 regulator-min-microvolt = <1000000>;
279 regulator-max-microvolt = <1400000>;
280 regulator-name = "vdd-int-dll";
281};
282
283&reg_ldo2 {
284 regulator-always-on;
285 regulator-min-microvolt = <3000000>;
286 regulator-max-microvolt = <3000000>;
287 regulator-name = "avcc";
288};
289
Hans de Goededb325e82015-04-15 19:03:49 +0200290&reg_ahci_5v {
291 status = "okay";
292};
293
Hans de Goede7d831822015-08-05 17:39:14 +0200294&reg_usb0_vbus {
295 status = "okay";
296};
297
Hans de Goededb325e82015-04-15 19:03:49 +0200298&reg_usb1_vbus {
299 status = "okay";
300};
301
302&reg_usb2_vbus {
303 status = "okay";
304};
305
306&spi1 {
307 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530308 pinctrl-0 = <&spi1_pi_pins>,
309 <&spi1_cs0_pi_pin>;
Hans de Goededb325e82015-04-15 19:03:49 +0200310 status = "okay";
311};
312
313&spi2 {
314 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530315 pinctrl-0 = <&spi2_pc_pins>,
316 <&spi2_cs0_pc_pin>;
Hans de Goededb325e82015-04-15 19:03:49 +0200317 status = "okay";
318};
319
320&uart0 {
321 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530322 pinctrl-0 = <&uart0_pb_pins>;
Hans de Goededb325e82015-04-15 19:03:49 +0200323 status = "okay";
324};
325
326&uart6 {
327 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530328 pinctrl-0 = <&uart6_pi_pins>;
Hans de Goededb325e82015-04-15 19:03:49 +0200329 status = "okay";
330};
331
332&uart7 {
333 pinctrl-names = "default";
Jagan Teki41a7f432019-04-12 16:19:34 +0530334 pinctrl-0 = <&uart7_pi_pins>;
Hans de Goededb325e82015-04-15 19:03:49 +0200335 status = "okay";
336};
337
Hans de Goede7d831822015-08-05 17:39:14 +0200338&usb_otg {
339 dr_mode = "otg";
340 status = "okay";
341};
342
Jagan Tekicb80dd12018-08-05 00:40:10 +0530343&usb_power_supply {
344 status = "okay";
345};
346
Hans de Goededb325e82015-04-15 19:03:49 +0200347&usbphy {
Samuel Hollandb6180dc2022-04-27 15:31:23 -0500348 usb0_id_det-gpios = <&pio 7 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH4 */
349 usb0_vbus_det-gpios = <&pio 7 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* PH5 */
Hans de Goede7d831822015-08-05 17:39:14 +0200350 usb0_vbus-supply = <&reg_usb0_vbus>;
Hans de Goededb325e82015-04-15 19:03:49 +0200351 usb1_vbus-supply = <&reg_usb1_vbus>;
352 usb2_vbus-supply = <&reg_usb2_vbus>;
353 status = "okay";
354};