• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright 2013 Wills Wang
3 *
4 * Wills Wang <wills.wang.open@gmail.com>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/dts-v1/;
15/include/ "sun7i-a20.dtsi"
16/include/ "sunxi-common-regulators.dtsi"
17
18/ {
19	model = "Merrii A20 Hummingbird";
20	compatible = "merrii,a20-hummingbird", "allwinner,sun7i-a20";
21
22	soc@01c00000 {
23		mmc0: mmc@01c0f000 {
24			pinctrl-names = "default";
25			pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
26			vmmc-supply = <&reg_vcc3v0>;
27			bus-width = <4>;
28			cd-gpios = <&pio 7 1 0>; /* PH1 */
29			cd-inverted;
30			status = "okay";
31		};
32
33		mmc3: mmc@01c12000 {
34			pinctrl-names = "default";
35			pinctrl-0 = <&mmc3_pins_a>;
36			vmmc-supply = <&reg_mmc3_vdd>;
37			bus-width = <4>;
38			non-removable;
39			status = "okay";
40		};
41
42		usbphy: phy@01c13400 {
43			usb1_vbus-supply = <&reg_usb1_vbus>;
44			usb2_vbus-supply = <&reg_usb2_vbus>;
45			status = "okay";
46		};
47
48		ehci0: usb@01c14000 {
49			status = "okay";
50		};
51
52		ohci0: usb@01c14400 {
53			status = "okay";
54		};
55
56		ahci: sata@01c18000 {
57			target-supply = <&reg_ahci_5v>;
58			status = "okay";
59		};
60
61		ehci1: usb@01c1c000 {
62			status = "okay";
63		};
64
65		ohci1: usb@01c1c400 {
66			status = "okay";
67		};
68
69		pio: pinctrl@01c20800 {
70			ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin@0 {
71				allwinner,pins = "PH15";
72				allwinner,function = "gpio_out";
73				allwinner,drive = <0>;
74				allwinner,pull = <0>;
75			};
76
77			usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin@0 {
78				allwinner,pins = "PH2";
79				allwinner,function = "gpio_out";
80				allwinner,drive = <0>;
81				allwinner,pull = <0>;
82			};
83
84			mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin@0 {
85				allwinner,pins = "PH9";
86				allwinner,function = "gpio_out";
87				allwinner,drive = <0>;
88				allwinner,pull = <0>;
89			};
90
91			gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin@0 {
92				allwinner,pins = "PH16";
93				allwinner,function = "gpio_out";
94				allwinner,drive = <0>;
95				allwinner,pull = <0>;
96			};
97		};
98
99		pwm: pwm@01c20e00 {
100			pinctrl-names = "default";
101			pinctrl-0 = <&pwm0_pins_a>;
102			status = "okay";
103		};
104
105		ir0: ir@01c21800 {
106			pinctrl-names = "default";
107			pinctrl-0 = <&ir0_pins_a>;
108			status = "okay";
109		};
110
111		uart0: serial@01c28000 {
112			pinctrl-names = "default";
113			pinctrl-0 = <&uart0_pins_a>;
114			status = "okay";
115		};
116
117		uart2: serial@01c28800 {
118			pinctrl-names = "default";
119			pinctrl-0 = <&uart2_pins_a>;
120			status = "okay";
121		};
122
123		uart3: serial@01c28c00 {
124			pinctrl-names = "default";
125			pinctrl-0 = <&uart3_pins_a>;
126			status = "okay";
127		};
128
129		uart4: serial@01c29000 {
130			pinctrl-names = "default";
131			pinctrl-0 = <&uart4_pins_a>;
132			status = "okay";
133		};
134
135		uart5: serial@01c29400 {
136			pinctrl-names = "default";
137			pinctrl-0 = <&uart5_pins_a>;
138			status = "okay";
139		};
140
141		i2c0: i2c@01c2ac00 {
142			pinctrl-names = "default";
143			pinctrl-0 = <&i2c0_pins_a>;
144			status = "okay";
145
146			axp209: pmic@34 {
147				compatible = "x-powers,axp209";
148				reg = <0x34>;
149				interrupt-parent = <&nmi_intc>;
150				interrupts = <0 8>;
151				interrupt-controller;
152				#interrupt-cells = <1>;
153			};
154		};
155
156		i2c1: i2c@01c2b000 {
157			pinctrl-names = "default";
158			pinctrl-0 = <&i2c1_pins_a>;
159			status = "okay";
160		};
161
162		i2c2: i2c@01c2b400 {
163			pinctrl-names = "default";
164			pinctrl-0 = <&i2c2_pins_a>;
165			status = "okay";
166		};
167
168		i2c3: i2c@01c2b800 {
169			pinctrl-names = "default";
170			pinctrl-0 = <&i2c3_pins_a>;
171			status = "okay";
172		};
173
174		spi2: spi@01c17000 {
175			pinctrl-names = "default";
176			pinctrl-0 = <&spi2_pins_b>;
177			status = "okay";
178		};
179
180		gmac: ethernet@01c50000 {
181			pinctrl-names = "default";
182			pinctrl-0 = <&gmac_pins_rgmii_a>;
183			phy = <&phy1>;
184			phy-mode = "rgmii";
185			phy-supply = <&reg_gmac_vdd>;
186			/* phy reset config */
187			snps,reset-gpio = <&pio 0 17 0>; /* PA17 */
188			snps,reset-active-low;
189			/* wait 1s after reset, otherwise fail to read phy id */
190			snps,reset-delays-us = <0 10000 1000000>;
191			status = "okay";
192
193			phy1: ethernet-phy@1 {
194				reg = <1>;
195			};
196		};
197	};
198
199	reg_ahci_5v: ahci-5v {
200		pinctrl-0 = <&ahci_pwr_pin_a20_hummingbird>;
201		gpio = <&pio 7 15 0>; /* PH15 */
202		status = "okay";
203	};
204
205	reg_usb1_vbus: usb1-vbus {
206		pinctrl-0 = <&usb1_vbus_pin_a20_hummingbird>;
207		gpio = <&pio 7 2 0>; /* PH2 */
208		status = "okay";
209	};
210
211	reg_usb2_vbus: usb2-vbus {
212		status = "okay";
213	};
214
215	reg_mmc3_vdd: mmc3_vdd {
216		compatible = "regulator-fixed";
217		pinctrl-names = "default";
218		pinctrl-0 = <&mmc3_vdd_pin_a20_hummingbird>;
219		regulator-name = "mmc3_vdd";
220		regulator-min-microvolt = <3000000>;
221		regulator-max-microvolt = <3000000>;
222		enable-active-high;
223		gpio = <&pio 7 9 0>; /* PH9 */
224	};
225
226	reg_gmac_vdd: gmac_vdd {
227		compatible = "regulator-fixed";
228		pinctrl-names = "default";
229		pinctrl-0 = <&gmac_vdd_pin_a20_hummingbird>;
230		regulator-name = "gmac_vdd";
231		regulator-min-microvolt = <3000000>;
232		regulator-max-microvolt = <3000000>;
233		enable-active-high;
234		gpio = <&pio 7 16 0>; /* PH16 */
235	};
236};
237