Merge tag 'pci-v4.16-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaa...
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / kirkwood-linksys-viper.dts
1 /*
2  * kirkwood-viper.dts - Device Tree file for Linksys viper (E4200v2 / EA4500)
3  *
4  * (c) 2013 Jonas Gorski <jogo@openwrt.org>
5  * (c) 2013 Deutsche Telekom Innovation Laboratories
6  * (c) 2014 Luka Perkov <luka@openwrt.org>
7  * (c) 2014 Randy C. Will <randall.will@gmail.com>
8  *
9  * This file is licensed under the terms of the GNU General Public
10  * License version 2.  This program is licensed "as is" without any
11  * warranty of any kind, whether express or implied.
12  */
13
14 /dts-v1/;
15
16 #include "kirkwood.dtsi"
17 #include "kirkwood-6282.dtsi"
18
19 / {
20         model = "Linksys Viper (E4200v2 / EA4500)";
21         compatible = "linksys,viper", "marvell,kirkwood-88f6282", "marvell,kirkwood";
22
23         memory {
24                 device_type = "memory";
25                 reg = <0x00000000 0x8000000>;
26         };
27
28         aliases {
29                 serial0 = &uart0;
30         };
31
32         chosen {
33                 stdout-path = "serial0:115200n8";
34         };
35
36         gpio_keys {
37                 compatible = "gpio-keys";
38                 #address-cells = <1>;
39                 #size-cells = <0>;
40                 pinctrl-0 = < &pmx_btn_wps &pmx_btn_reset >;
41                 pinctrl-names = "default";
42
43                 wps {
44                         label = "WPS Button";
45                         linux,code = <KEY_WPS_BUTTON>;
46                         gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
47                 };
48
49                 reset {
50                         label = "Reset Button";
51                         linux,code = <KEY_RESTART>;
52                         gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
53                 };
54         };
55
56         gpio-leds {
57                 compatible = "gpio-leds";
58                 pinctrl-0 = < &pmx_led_white_health &pmx_led_white_pulse >;
59                 pinctrl-names = "default";
60
61                 white-health {
62                         label = "viper:white:health";
63                         gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
64                 };
65
66                 white-pulse {
67                         label = "viper:white:pulse";
68                         gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
69                 };
70         };
71
72         dsa {
73                 status = "disabled";
74
75                 compatible = "marvell,dsa";
76                 #address-cells = <2>;
77                 #size-cells = <0>;
78
79                 dsa,ethernet = <&eth0port>;
80                 dsa,mii-bus = <&mdio>;
81
82                 switch@16,0 {
83                         #address-cells = <1>;
84                         #size-cells = <0>;
85                         reg = <16 0>;   /* MDIO address 16, switch 0 in tree */
86
87                         port@0 {
88                                 reg = <0>;
89                                 label = "ethernet1";
90                         };
91
92                         port@1 {
93                                 reg = <1>;
94                                 label = "ethernet2";
95                         };
96
97                         port@2 {
98                                 reg = <2>;
99                                 label = "ethernet3";
100                         };
101
102                         port@3 {
103                                 reg = <3>;
104                                 label = "ethernet4";
105                         };
106
107                         port@4 {
108                                 reg = <4>;
109                                 label = "internet";
110                         };
111
112                         port@5 {
113                                 reg = <5>;
114                                 label = "cpu";
115                         };
116                 };
117         };
118 };
119
120 &pinctrl {
121         pmx_led_white_health: pmx-led-white-health {
122                 marvell,pins = "mpp7";
123                 marvell,function = "gpo";
124         };
125         pmx_led_white_pulse: pmx-led-white-pulse {
126                 marvell,pins = "mpp14";
127                 marvell,function = "gpio";
128         };
129         pmx_btn_wps: pmx-btn-wps {
130                 marvell,pins = "mpp47";
131                 marvell,function = "gpio";
132         };
133         pmx_btn_reset: pmx-btn-reset {
134                 marvell,pins = "mpp48";
135                 marvell,function = "gpio";
136         };
137 };
138
139 &nand {
140         status = "okay";
141         pinctrl-0 = <&pmx_nand>;
142         pinctrl-names = "default";
143
144         partitions {
145                 compatible = "fixed-partitions";
146                 #address-cells = <1>;
147                 #size-cells = <1>;
148
149                 partition@0 {
150                         label = "u-boot";
151                         reg = <0x0 0x80000>;
152                         read-only;
153                 };
154
155                 partition@80000 {
156                         label = "u_env";
157                         reg = <0x80000 0x20000>;
158                 };
159
160                 partition@a0000 {
161                         label = "s_env";
162                         reg = <0xA0000 0x20000>;
163                 };
164
165                 partition@200000 {
166                         label = "kernel";
167                         reg = <0x200000 0x2A0000>;
168                 };
169
170                 partition@4a0000 {
171                         label = "rootfs";
172                         reg = <0x4A0000 0x1760000>;
173                 };
174
175                 partition@1c00000 {
176                         label = "alt_kernel";
177                         reg = <0x1C00000 0x2A0000>;
178                 };
179
180                 partition@1ea0000 {
181                         label = "alt_rootfs";
182                         reg = <0x1EA0000 0x1760000>;
183                 };
184
185                 partition@3600000 {
186                         label = "syscfg";
187                         reg = <0x3600000 0x4A00000>;
188                 };
189
190                 partition@c0000 {
191                         label = "unused";
192                         reg = <0xC0000 0x140000>;
193                 };
194
195         };
196 };
197
198 &pciec {
199         status = "okay";
200 };
201
202 &pcie0 {
203         status = "okay";
204 };
205
206 &pcie1 {
207         status = "okay";
208 };
209
210 &mdio {
211         status = "okay";
212
213         switch@10 {
214                 compatible = "marvell,mv88e6085";
215                 #address-cells = <1>;
216                 #size-cells = <0>;
217                 reg = <16>;
218
219                 ports {
220                         #address-cells = <1>;
221                         #size-cells = <0>;
222
223                         port@0 {
224                                 reg = <0>;
225                                 label = "ethernet1";
226                         };
227
228                         port@1 {
229                                 reg = <1>;
230                                 label = "ethernet2";
231                         };
232
233                         port@2 {
234                                 reg = <2>;
235                                 label = "ethernet3";
236                         };
237
238                         port@3 {
239                                 reg = <3>;
240                                 label = "ethernet4";
241                         };
242
243                         port@4 {
244                                 reg = <4>;
245                                 label = "internet";
246                         };
247
248                         port@5 {
249                                 reg = <5>;
250                                 label = "cpu";
251                                 ethernet = <&eth0port>;
252                                 fixed-link {
253                                         speed = <1000>;
254                                         full-duplex;
255                                 };
256                         };
257                 };
258         };
259 };
260
261 &uart0 {
262         status = "okay";
263 };
264
265 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
266  * fixed speed and duplex.
267  */
268 &eth0 {
269         status = "okay";
270         ethernet0-port@0 {
271                 speed = <1000>;
272                 duplex = <1>;
273         };
274 };
275
276 /* eth1 is connected to the switch at port 6. However DSA only supports a
277  * single CPU port. So leave this port disabled to avoid confusion.
278  */
279 &eth1 {
280         status = "disabled";
281 };
282
283 /* There is no battery on the board, so the RTC does not keep
284  * time when there is no power, making it useless.
285  */
286 &rtc {
287         status = "disabled";
288 };
289