Merge branch 'for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
[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
71 &pinctrl {
72         pmx_led_white_health: pmx-led-white-health {
73                 marvell,pins = "mpp7";
74                 marvell,function = "gpo";
75         };
76         pmx_led_white_pulse: pmx-led-white-pulse {
77                 marvell,pins = "mpp14";
78                 marvell,function = "gpio";
79         };
80         pmx_btn_wps: pmx-btn-wps {
81                 marvell,pins = "mpp47";
82                 marvell,function = "gpio";
83         };
84         pmx_btn_reset: pmx-btn-reset {
85                 marvell,pins = "mpp48";
86                 marvell,function = "gpio";
87         };
88 };
89
90 &nand {
91         status = "okay";
92         pinctrl-0 = <&pmx_nand>;
93         pinctrl-names = "default";
94
95         partitions {
96                 compatible = "fixed-partitions";
97                 #address-cells = <1>;
98                 #size-cells = <1>;
99
100                 partition@0 {
101                         label = "u-boot";
102                         reg = <0x0 0x80000>;
103                         read-only;
104                 };
105
106                 partition@80000 {
107                         label = "u_env";
108                         reg = <0x80000 0x20000>;
109                 };
110
111                 partition@a0000 {
112                         label = "s_env";
113                         reg = <0xA0000 0x20000>;
114                 };
115
116                 partition@200000 {
117                         label = "kernel";
118                         reg = <0x200000 0x2A0000>;
119                 };
120
121                 partition@4a0000 {
122                         label = "rootfs";
123                         reg = <0x4A0000 0x1760000>;
124                 };
125
126                 partition@1c00000 {
127                         label = "alt_kernel";
128                         reg = <0x1C00000 0x2A0000>;
129                 };
130
131                 partition@1ea0000 {
132                         label = "alt_rootfs";
133                         reg = <0x1EA0000 0x1760000>;
134                 };
135
136                 partition@3600000 {
137                         label = "syscfg";
138                         reg = <0x3600000 0x4A00000>;
139                 };
140
141                 partition@c0000 {
142                         label = "unused";
143                         reg = <0xC0000 0x140000>;
144                 };
145
146         };
147 };
148
149 &pciec {
150         status = "okay";
151 };
152
153 &pcie0 {
154         status = "okay";
155 };
156
157 &pcie1 {
158         status = "okay";
159 };
160
161 &mdio {
162         status = "okay";
163
164         switch@10 {
165                 compatible = "marvell,mv88e6085";
166                 #address-cells = <1>;
167                 #size-cells = <0>;
168                 reg = <16>;
169
170                 ports {
171                         #address-cells = <1>;
172                         #size-cells = <0>;
173
174                         port@0 {
175                                 reg = <0>;
176                                 label = "ethernet1";
177                         };
178
179                         port@1 {
180                                 reg = <1>;
181                                 label = "ethernet2";
182                         };
183
184                         port@2 {
185                                 reg = <2>;
186                                 label = "ethernet3";
187                         };
188
189                         port@3 {
190                                 reg = <3>;
191                                 label = "ethernet4";
192                         };
193
194                         port@4 {
195                                 reg = <4>;
196                                 label = "internet";
197                         };
198
199                         port@5 {
200                                 reg = <5>;
201                                 label = "cpu";
202                                 ethernet = <&eth0port>;
203                                 fixed-link {
204                                         speed = <1000>;
205                                         full-duplex;
206                                 };
207                         };
208                 };
209         };
210 };
211
212 &uart0 {
213         status = "okay";
214 };
215
216 /* eth0 is connected to a Marvell 88E6171 switch, without a PHY. So set
217  * fixed speed and duplex.
218  */
219 &eth0 {
220         status = "okay";
221         ethernet0-port@0 {
222                 speed = <1000>;
223                 duplex = <1>;
224         };
225 };
226
227 /* eth1 is connected to the switch at port 6. However DSA only supports a
228  * single CPU port. So leave this port disabled to avoid confusion.
229  */
230 &eth1 {
231         status = "disabled";
232 };
233
234 /* There is no battery on the board, so the RTC does not keep
235  * time when there is no power, making it useless.
236  */
237 &rtc {
238         status = "disabled";
239 };
240