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