]> git.proxmox.com Git - mirror_ubuntu-eoan-kernel.git/blob - arch/arm/boot/dts/kirkwood-linksys-viper.dts
Merge tag 'mvebu-fixes-4.17-2' of git://git.infradead.org/linux-mvebu into fixes
[mirror_ubuntu-eoan-kernel.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