xref: /rk3399_rockchip-uboot/arch/arm/dts/sun7i-a20-lamobo-r1.dts (revision c6b968da78ce3fa7224c0ddf15fe170c7c05b27e)
1aa56cb37SJelle de Jong/*
2aa56cb37SJelle de Jong * Copyright 2015 Jelle de Jong <jelledejong@powercraft.nl>
3aa56cb37SJelle de Jong *
4aa56cb37SJelle de Jong * This file is dual-licensed: you can use it either under the terms
5aa56cb37SJelle de Jong * of the GPL or the X11 license, at your option. Note that this dual
6aa56cb37SJelle de Jong * licensing only applies to this file, and not this project as a
7aa56cb37SJelle de Jong * whole.
8aa56cb37SJelle de Jong *
9aa56cb37SJelle de Jong *  a) This file is free software; you can redistribute it and/or
10aa56cb37SJelle de Jong *     modify it under the terms of the GNU General Public License as
11aa56cb37SJelle de Jong *     published by the Free Software Foundation; either version 2 of the
12aa56cb37SJelle de Jong *     License, or (at your option) any later version.
13aa56cb37SJelle de Jong *
14aa56cb37SJelle de Jong *     This file is distributed in the hope that it will be useful,
15aa56cb37SJelle de Jong *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16aa56cb37SJelle de Jong *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17aa56cb37SJelle de Jong *     GNU General Public License for more details.
18aa56cb37SJelle de Jong *
19aa56cb37SJelle de Jong * Or, alternatively,
20aa56cb37SJelle de Jong *
21aa56cb37SJelle de Jong *  b) Permission is hereby granted, free of charge, to any person
22aa56cb37SJelle de Jong *     obtaining a copy of this software and associated documentation
23aa56cb37SJelle de Jong *     files (the "Software"), to deal in the Software without
24aa56cb37SJelle de Jong *     restriction, including without limitation the rights to use,
25aa56cb37SJelle de Jong *     copy, modify, merge, publish, distribute, sublicense, and/or
26aa56cb37SJelle de Jong *     sell copies of the Software, and to permit persons to whom the
27aa56cb37SJelle de Jong *     Software is furnished to do so, subject to the following
28aa56cb37SJelle de Jong *     conditions:
29aa56cb37SJelle de Jong *
30aa56cb37SJelle de Jong *     The above copyright notice and this permission notice shall be
31aa56cb37SJelle de Jong *     included in all copies or substantial portions of the Software.
32aa56cb37SJelle de Jong *
33aa56cb37SJelle de Jong *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34aa56cb37SJelle de Jong *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35aa56cb37SJelle de Jong *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36aa56cb37SJelle de Jong *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37aa56cb37SJelle de Jong *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38aa56cb37SJelle de Jong *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39aa56cb37SJelle de Jong *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40aa56cb37SJelle de Jong *     OTHER DEALINGS IN THE SOFTWARE.
41aa56cb37SJelle de Jong */
42aa56cb37SJelle de Jong
43aa56cb37SJelle de Jong/dts-v1/;
44aa56cb37SJelle de Jong#include "sun7i-a20.dtsi"
45aa56cb37SJelle de Jong#include "sunxi-common-regulators.dtsi"
46aa56cb37SJelle de Jong
47aa56cb37SJelle de Jong#include <dt-bindings/gpio/gpio.h>
48aa56cb37SJelle de Jong#include <dt-bindings/interrupt-controller/irq.h>
49aa56cb37SJelle de Jong#include <dt-bindings/pinctrl/sun4i-a10.h>
50aa56cb37SJelle de Jong
51aa56cb37SJelle de Jong/ {
52aa56cb37SJelle de Jong	model = "Lamobo R1";
53aa56cb37SJelle de Jong	compatible = "lamobo,lamobo-r1", "allwinner,sun7i-a20";
54aa56cb37SJelle de Jong
55aa56cb37SJelle de Jong	aliases {
56aa56cb37SJelle de Jong		serial0 = &uart0;
57aa56cb37SJelle de Jong		serial1 = &uart3;
58aa56cb37SJelle de Jong		serial2 = &uart7;
59aa56cb37SJelle de Jong	};
60aa56cb37SJelle de Jong
61aa56cb37SJelle de Jong	chosen {
62aa56cb37SJelle de Jong		stdout-path = "serial0:115200n8";
63aa56cb37SJelle de Jong	};
64aa56cb37SJelle de Jong
65aa56cb37SJelle de Jong	leds {
66aa56cb37SJelle de Jong		compatible = "gpio-leds";
67aa56cb37SJelle de Jong		pinctrl-names = "default";
68aa56cb37SJelle de Jong		pinctrl-0 = <&led_pins_lamobo_r1>;
69aa56cb37SJelle de Jong
70aa56cb37SJelle de Jong		green {
71aa56cb37SJelle de Jong			label = "lamobo_r1:green:usr";
72aa56cb37SJelle de Jong			gpios = <&pio 7 24 GPIO_ACTIVE_HIGH>;
73aa56cb37SJelle de Jong		};
74aa56cb37SJelle de Jong	};
75aa56cb37SJelle de Jong
76aa56cb37SJelle de Jong	reg_gmac_3v3: gmac-3v3 {
77aa56cb37SJelle de Jong		compatible = "regulator-fixed";
78aa56cb37SJelle de Jong		pinctrl-names = "default";
79aa56cb37SJelle de Jong		pinctrl-0 = <&gmac_power_pin_lamobo_r1>;
80aa56cb37SJelle de Jong		regulator-name = "gmac-3v3";
81aa56cb37SJelle de Jong		regulator-min-microvolt = <3300000>;
82aa56cb37SJelle de Jong		regulator-max-microvolt = <3300000>;
83aa56cb37SJelle de Jong		startup-delay-us = <100000>;
84aa56cb37SJelle de Jong		enable-active-high;
85aa56cb37SJelle de Jong		gpio = <&pio 7 23 GPIO_ACTIVE_HIGH>; /* PH23 */
86aa56cb37SJelle de Jong	};
87aa56cb37SJelle de Jong};
88aa56cb37SJelle de Jong
89aa56cb37SJelle de Jong&ahci_pwr_pin_a {
90aa56cb37SJelle de Jong	allwinner,pins = "PB3";
91aa56cb37SJelle de Jong};
92aa56cb37SJelle de Jong
93aa56cb37SJelle de Jong&ahci {
94aa56cb37SJelle de Jong	target-supply = <&reg_ahci_5v>;
95aa56cb37SJelle de Jong	status = "okay";
96aa56cb37SJelle de Jong};
97aa56cb37SJelle de Jong
98*860fbdd4SHans de Goede&codec {
99*860fbdd4SHans de Goede	status = "okay";
100*860fbdd4SHans de Goede};
101*860fbdd4SHans de Goede
102aa56cb37SJelle de Jong&cpu0 {
103aa56cb37SJelle de Jong	cpu-supply = <&reg_dcdc2>;
104aa56cb37SJelle de Jong};
105aa56cb37SJelle de Jong
106aa56cb37SJelle de Jong&ehci0 {
107aa56cb37SJelle de Jong	status = "okay";
108aa56cb37SJelle de Jong};
109aa56cb37SJelle de Jong
110aa56cb37SJelle de Jong&ehci1 {
111aa56cb37SJelle de Jong	status = "okay";
112aa56cb37SJelle de Jong};
113aa56cb37SJelle de Jong
114aa56cb37SJelle de Jong&gmac {
115aa56cb37SJelle de Jong	pinctrl-names = "default";
116aa56cb37SJelle de Jong	pinctrl-0 = <&gmac_pins_rgmii_a>;
117aa56cb37SJelle de Jong	phy-mode = "rgmii";
118aa56cb37SJelle de Jong	phy-supply = <&reg_gmac_3v3>;
119aa56cb37SJelle de Jong	status = "okay";
120aa56cb37SJelle de Jong
121*860fbdd4SHans de Goede	fixed-link {
122*860fbdd4SHans de Goede		speed = <1000>;
123*860fbdd4SHans de Goede		full-duplex;
124*860fbdd4SHans de Goede	};
125*860fbdd4SHans de Goede
126*860fbdd4SHans de Goede	mdio {
127*860fbdd4SHans de Goede		compatible = "snps,dwmac-mdio";
128*860fbdd4SHans de Goede		#address-cells = <1>;
129*860fbdd4SHans de Goede		#size-cells = <0>;
130*860fbdd4SHans de Goede
131*860fbdd4SHans de Goede		switch: ethernet-switch@1e {
132*860fbdd4SHans de Goede			compatible = "brcm,bcm53125";
133*860fbdd4SHans de Goede			reg = <30>;
134*860fbdd4SHans de Goede			#address-cells = <1>;
135*860fbdd4SHans de Goede			#size-cells = <0>;
136*860fbdd4SHans de Goede
137*860fbdd4SHans de Goede			ports {
138*860fbdd4SHans de Goede				#address-cells = <1>;
139*860fbdd4SHans de Goede				#size-cells = <0>;
140*860fbdd4SHans de Goede
141*860fbdd4SHans de Goede				port0: port@0 {
142*860fbdd4SHans de Goede					reg = <0>;
143*860fbdd4SHans de Goede					label = "lan2";
144*860fbdd4SHans de Goede				};
145*860fbdd4SHans de Goede
146*860fbdd4SHans de Goede				port1: port@1 {
147aa56cb37SJelle de Jong					reg = <1>;
148*860fbdd4SHans de Goede					label = "lan3";
149*860fbdd4SHans de Goede				};
150*860fbdd4SHans de Goede
151*860fbdd4SHans de Goede				port2: port@2 {
152*860fbdd4SHans de Goede					reg = <2>;
153*860fbdd4SHans de Goede					label = "lan4";
154*860fbdd4SHans de Goede				};
155*860fbdd4SHans de Goede
156*860fbdd4SHans de Goede				port3: port@3 {
157*860fbdd4SHans de Goede					reg = <3>;
158*860fbdd4SHans de Goede					label = "wan";
159*860fbdd4SHans de Goede				};
160*860fbdd4SHans de Goede
161*860fbdd4SHans de Goede				port4: port@4 {
162*860fbdd4SHans de Goede					reg = <4>;
163*860fbdd4SHans de Goede					label = "lan1";
164*860fbdd4SHans de Goede				};
165*860fbdd4SHans de Goede
166*860fbdd4SHans de Goede				port8: port@8 {
167*860fbdd4SHans de Goede					reg = <8>;
168*860fbdd4SHans de Goede					label = "cpu";
169*860fbdd4SHans de Goede					ethernet = <&gmac>;
170*860fbdd4SHans de Goede					phy-mode = "rgmii";
171*860fbdd4SHans de Goede					fixed-link {
172*860fbdd4SHans de Goede						speed = <1000>;
173*860fbdd4SHans de Goede						full-duplex;
174*860fbdd4SHans de Goede					};
175*860fbdd4SHans de Goede				};
176*860fbdd4SHans de Goede			};
177*860fbdd4SHans de Goede		};
178aa56cb37SJelle de Jong	};
179aa56cb37SJelle de Jong};
180aa56cb37SJelle de Jong
181aa56cb37SJelle de Jong&i2c0 {
182aa56cb37SJelle de Jong	pinctrl-names = "default";
183aa56cb37SJelle de Jong	pinctrl-0 = <&i2c0_pins_a>;
184aa56cb37SJelle de Jong	status = "okay";
185aa56cb37SJelle de Jong
186aa56cb37SJelle de Jong	axp209: pmic@34 {
187aa56cb37SJelle de Jong		reg = <0x34>;
188aa56cb37SJelle de Jong		interrupt-parent = <&nmi_intc>;
189aa56cb37SJelle de Jong		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
190aa56cb37SJelle de Jong	};
191aa56cb37SJelle de Jong};
192aa56cb37SJelle de Jong
193aa56cb37SJelle de Jong&i2c2 {
194aa56cb37SJelle de Jong	pinctrl-names = "default";
195aa56cb37SJelle de Jong	pinctrl-0 = <&i2c2_pins_a>;
196aa56cb37SJelle de Jong	status = "okay";
197aa56cb37SJelle de Jong};
198aa56cb37SJelle de Jong
199aa56cb37SJelle de Jong&ir0 {
200aa56cb37SJelle de Jong	pinctrl-names = "default";
201aa56cb37SJelle de Jong	pinctrl-0 = <&ir0_rx_pins_a>;
202aa56cb37SJelle de Jong	status = "okay";
203aa56cb37SJelle de Jong};
204aa56cb37SJelle de Jong
205aa56cb37SJelle de Jong&mmc0 {
206aa56cb37SJelle de Jong	pinctrl-names = "default";
207aa56cb37SJelle de Jong	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_lamobo_r1>;
208aa56cb37SJelle de Jong	vmmc-supply = <&reg_vcc3v3>;
209aa56cb37SJelle de Jong	bus-width = <4>;
210aa56cb37SJelle de Jong	cd-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
211aa56cb37SJelle de Jong	cd-inverted;
212aa56cb37SJelle de Jong	status = "okay";
213aa56cb37SJelle de Jong};
214aa56cb37SJelle de Jong
215aa56cb37SJelle de Jong&ohci0 {
216aa56cb37SJelle de Jong	status = "okay";
217aa56cb37SJelle de Jong};
218aa56cb37SJelle de Jong
219aa56cb37SJelle de Jong&otg_sram {
220aa56cb37SJelle de Jong	status = "okay";
221aa56cb37SJelle de Jong};
222aa56cb37SJelle de Jong
223aa56cb37SJelle de Jong&pio {
224aa56cb37SJelle de Jong	usb0_id_detect_pin: usb0_id_detect_pin@0 {
225aa56cb37SJelle de Jong		allwinner,pins = "PH4";
226aa56cb37SJelle de Jong		allwinner,function = "gpio_in";
227aa56cb37SJelle de Jong		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
228aa56cb37SJelle de Jong		allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
229aa56cb37SJelle de Jong	};
230aa56cb37SJelle de Jong
231aa56cb37SJelle de Jong	mmc0_cd_pin_lamobo_r1: mmc0_cd_pin@0 {
232aa56cb37SJelle de Jong		allwinner,pins = "PH10";
233aa56cb37SJelle de Jong		allwinner,function = "gpio_in";
234aa56cb37SJelle de Jong		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
235aa56cb37SJelle de Jong		allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
236aa56cb37SJelle de Jong	};
237aa56cb37SJelle de Jong
238aa56cb37SJelle de Jong	gmac_power_pin_lamobo_r1: gmac_power_pin@0 {
239aa56cb37SJelle de Jong		allwinner,pins = "PH23";
240aa56cb37SJelle de Jong		allwinner,function = "gpio_out";
241aa56cb37SJelle de Jong		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
242aa56cb37SJelle de Jong		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
243aa56cb37SJelle de Jong	};
244aa56cb37SJelle de Jong
245aa56cb37SJelle de Jong	led_pins_lamobo_r1: led_pins@0 {
246aa56cb37SJelle de Jong		allwinner,pins = "PH24";
247aa56cb37SJelle de Jong		allwinner,function = "gpio_out";
248aa56cb37SJelle de Jong		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
249aa56cb37SJelle de Jong		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
250aa56cb37SJelle de Jong	};
251aa56cb37SJelle de Jong};
252aa56cb37SJelle de Jong
253aa56cb37SJelle de Jong#include "axp209.dtsi"
254aa56cb37SJelle de Jong
255aa56cb37SJelle de Jong&reg_ahci_5v {
256*860fbdd4SHans de Goede	gpio = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
257aa56cb37SJelle de Jong	status = "okay";
258aa56cb37SJelle de Jong};
259aa56cb37SJelle de Jong
260aa56cb37SJelle de Jong&reg_dcdc2 {
261aa56cb37SJelle de Jong	regulator-always-on;
262aa56cb37SJelle de Jong	regulator-min-microvolt = <1000000>;
263aa56cb37SJelle de Jong	regulator-max-microvolt = <1400000>;
264aa56cb37SJelle de Jong	regulator-name = "vdd-cpu";
265aa56cb37SJelle de Jong};
266aa56cb37SJelle de Jong
267aa56cb37SJelle de Jong&reg_dcdc3 {
268aa56cb37SJelle de Jong	regulator-always-on;
269aa56cb37SJelle de Jong	regulator-min-microvolt = <1000000>;
270aa56cb37SJelle de Jong	regulator-max-microvolt = <1400000>;
271aa56cb37SJelle de Jong	regulator-name = "vdd-int-dll";
272aa56cb37SJelle de Jong};
273aa56cb37SJelle de Jong
274aa56cb37SJelle de Jong&reg_ldo1 {
275aa56cb37SJelle de Jong	regulator-name = "vdd-rtc";
276aa56cb37SJelle de Jong};
277aa56cb37SJelle de Jong
278aa56cb37SJelle de Jong&reg_ldo2 {
279aa56cb37SJelle de Jong	regulator-always-on;
280aa56cb37SJelle de Jong	regulator-min-microvolt = <3000000>;
281aa56cb37SJelle de Jong	regulator-max-microvolt = <3000000>;
282aa56cb37SJelle de Jong	regulator-name = "avcc";
283aa56cb37SJelle de Jong};
284aa56cb37SJelle de Jong
285aa56cb37SJelle de Jong&reg_usb0_vbus {
286aa56cb37SJelle de Jong	status = "okay";
287aa56cb37SJelle de Jong};
288aa56cb37SJelle de Jong
289aa56cb37SJelle de Jong&reg_usb2_vbus {
290*860fbdd4SHans de Goede	gpio = <&pio 7 12 GPIO_ACTIVE_HIGH>; /* PH12 */
291aa56cb37SJelle de Jong	status = "okay";
292aa56cb37SJelle de Jong};
293aa56cb37SJelle de Jong
294aa56cb37SJelle de Jong&spi0 {
295aa56cb37SJelle de Jong	pinctrl-names = "default";
296aa56cb37SJelle de Jong	pinctrl-0 = <&spi0_pins_a>,
297aa56cb37SJelle de Jong		    <&spi0_cs0_pins_a>,
298aa56cb37SJelle de Jong		    <&spi0_cs1_pins_a>;
299aa56cb37SJelle de Jong	status = "okay";
300aa56cb37SJelle de Jong};
301aa56cb37SJelle de Jong
302aa56cb37SJelle de Jong&uart0 {
303aa56cb37SJelle de Jong	pinctrl-names = "default";
304aa56cb37SJelle de Jong	pinctrl-0 = <&uart0_pins_a>;
305aa56cb37SJelle de Jong	status = "okay";
306aa56cb37SJelle de Jong};
307aa56cb37SJelle de Jong
308aa56cb37SJelle de Jong&uart3 {
309aa56cb37SJelle de Jong	pinctrl-names = "default";
310aa56cb37SJelle de Jong	pinctrl-0 = <&uart3_pins_b>;
311aa56cb37SJelle de Jong	status = "okay";
312aa56cb37SJelle de Jong};
313aa56cb37SJelle de Jong
314aa56cb37SJelle de Jong&uart7 {
315aa56cb37SJelle de Jong	pinctrl-names = "default";
316aa56cb37SJelle de Jong	pinctrl-0 = <&uart7_pins_a>;
317aa56cb37SJelle de Jong	status = "okay";
318aa56cb37SJelle de Jong};
319aa56cb37SJelle de Jong
320aa56cb37SJelle de Jong&usb_otg {
321aa56cb37SJelle de Jong	dr_mode = "otg";
322aa56cb37SJelle de Jong	status = "okay";
323aa56cb37SJelle de Jong};
324aa56cb37SJelle de Jong
325aa56cb37SJelle de Jong&usb_power_supply {
326aa56cb37SJelle de Jong	status = "okay";
327aa56cb37SJelle de Jong};
328aa56cb37SJelle de Jong
329*860fbdd4SHans de Goede&usb2_vbus_pin_a {
330*860fbdd4SHans de Goede	allwinner,pins = "PH12";
331*860fbdd4SHans de Goede};
332*860fbdd4SHans de Goede
333aa56cb37SJelle de Jong&usbphy {
334aa56cb37SJelle de Jong	pinctrl-names = "default";
335aa56cb37SJelle de Jong	pinctrl-0 = <&usb0_id_detect_pin>;
336aa56cb37SJelle de Jong	usb0_id_det-gpio = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
337aa56cb37SJelle de Jong	usb0_vbus_power-supply = <&usb_power_supply>;
338aa56cb37SJelle de Jong	usb0_vbus-supply = <&reg_usb0_vbus>;
339aa56cb37SJelle de Jong	usb2_vbus-supply = <&reg_usb2_vbus>;
340aa56cb37SJelle de Jong	status = "okay";
341aa56cb37SJelle de Jong};
342