blob: 0e4bfa3b2b8540b361b07f9cf1c943c4cba8a9c6 [file] [log] [blame]
Wills Wangd95d6d42014-08-19 15:33:01 +08001/*
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};