blob: bd79e00bf6153a5a66c4e63025ed3ee73ec69dae [file] [log] [blame]
Cory Tusar15560632016-04-04 23:53:12 +02001/*
2 * Copyright (C) 2015, 2016 Zodiac Inflight Innovations
3 *
4 * Based on an original 'vf610-twr.dts' which is Copyright 2015,
5 * Freescale Semiconductor, Inc.
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 * a) This file is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * version 2 as published by the Free Software Foundation.
15 *
Alexandre Belloni13283622017-01-03 11:27:13 +010016 * This file is distributed in the hope that it will be useful,
Cory Tusar15560632016-04-04 23:53:12 +020017 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
Alexandre Belloni13283622017-01-03 11:27:13 +010021 * Or, alternatively,
Cory Tusar15560632016-04-04 23:53:12 +020022 *
23 * b) Permission is hereby granted, free of charge, to any person
24 * obtaining a copy of this software and associated documentation
25 * files (the "Software"), to deal in the Software without
Alexandre Belloni13283622017-01-03 11:27:13 +010026 * restriction, including without limitation the rights to use,
Cory Tusar15560632016-04-04 23:53:12 +020027 * copy, modify, merge, publish, distribute, sublicense, and/or
28 * sell copies of the Software, and to permit persons to whom the
29 * Software is furnished to do so, subject to the following
30 * conditions:
31 *
32 * The above copyright notice and this permission notice shall be
33 * included in all copies or substantial portions of the Software.
34 *
Alexandre Belloni13283622017-01-03 11:27:13 +010035 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
Cory Tusar15560632016-04-04 23:53:12 +020036 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
Alexandre Belloni13283622017-01-03 11:27:13 +010039 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
Cory Tusar15560632016-04-04 23:53:12 +020040 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 * OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45/dts-v1/;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -080046#include "vf610-zii-dev.dtsi"
Cory Tusar15560632016-04-04 23:53:12 +020047
48/ {
49 model = "ZII VF610 Development Board, Rev B";
50 compatible = "zii,vf610dev-b", "zii,vf610dev", "fsl,vf610";
51
Cory Tusar15560632016-04-04 23:53:12 +020052 mdio-mux {
53 compatible = "mdio-mux-gpio";
54 pinctrl-0 = <&pinctrl_mdio_mux>;
55 pinctrl-names = "default";
56 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH
57 &gpio0 9 GPIO_ACTIVE_HIGH
58 &gpio0 24 GPIO_ACTIVE_HIGH
59 &gpio0 25 GPIO_ACTIVE_HIGH>;
60 mdio-parent-bus = <&mdio1>;
61 #address-cells = <1>;
62 #size-cells = <0>;
63
64 mdio_mux_1: mdio@1 {
65 reg = <1>;
66 #address-cells = <1>;
67 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020068
Andrey Smirnovd4cd1582017-01-09 23:35:55 -080069 switch0: switch@0 {
Andrew Lunn9dff6732016-06-04 21:17:08 +020070 compatible = "marvell,mv88e6085";
Andrew Lunnf2837452016-10-16 19:56:53 +020071 pinctrl-0 = <&pinctrl_gpio_switch0>;
72 pinctrl-names = "default";
Andrew Lunn9dff6732016-06-04 21:17:08 +020073 reg = <0>;
74 dsa,member = <0 0>;
Andrew Lunnf2837452016-10-16 19:56:53 +020075 interrupt-parent = <&gpio0>;
76 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
77 interrupt-controller;
78 #interrupt-cells = <2>;
Andrew Lunn925b8652017-05-26 01:44:44 +020079 eeprom-length = <512>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020080
81 ports {
82 #address-cells = <1>;
83 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -080084
Andrew Lunn9dff6732016-06-04 21:17:08 +020085 port@0 {
86 reg = <0>;
87 label = "lan0";
Andrew Lunnf2837452016-10-16 19:56:53 +020088 phy-handle = <&switch0phy0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020089 };
90
91 port@1 {
92 reg = <1>;
93 label = "lan1";
Andrew Lunnf2837452016-10-16 19:56:53 +020094 phy-handle = <&switch0phy1>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020095 };
96
97 port@2 {
98 reg = <2>;
99 label = "lan2";
Andrew Lunnf2837452016-10-16 19:56:53 +0200100 phy-handle = <&switch0phy2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200101 };
102
103 switch0port5: port@5 {
104 reg = <5>;
105 label = "dsa";
106 phy-mode = "rgmii-txid";
107 link = <&switch1port6
108 &switch2port9>;
109 fixed-link {
110 speed = <1000>;
111 full-duplex;
112 };
113 };
114
115 port@6 {
116 reg = <6>;
117 label = "cpu";
118 ethernet = <&fec1>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800119
Andrew Lunn9dff6732016-06-04 21:17:08 +0200120 fixed-link {
121 speed = <100>;
122 full-duplex;
123 };
124 };
125 };
Andrew Lunnf2837452016-10-16 19:56:53 +0200126 mdio {
127 #address-cells = <1>;
128 #size-cells = <0>;
129 switch0phy0: switch0phy0@0 {
130 reg = <0>;
131 interrupt-parent = <&switch0>;
132 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
133 };
134 switch0phy1: switch1phy0@1 {
135 reg = <1>;
136 interrupt-parent = <&switch0>;
Andreas Färber4c51de42016-11-27 20:54:44 +0100137 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
138 };
Andrew Lunnf2837452016-10-16 19:56:53 +0200139 switch0phy2: switch1phy0@2 {
140 reg = <2>;
141 interrupt-parent = <&switch0>;
142 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
143 };
144 };
Andrew Lunn9dff6732016-06-04 21:17:08 +0200145 };
Cory Tusar15560632016-04-04 23:53:12 +0200146 };
147
148 mdio_mux_2: mdio@2 {
149 reg = <2>;
150 #address-cells = <1>;
151 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200152
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800153 switch1: switch@0 {
Andrew Lunn9dff6732016-06-04 21:17:08 +0200154 compatible = "marvell,mv88e6085";
Andrew Lunnf2837452016-10-16 19:56:53 +0200155 pinctrl-0 = <&pinctrl_gpio_switch1>;
156 pinctrl-names = "default";
Andrew Lunn9dff6732016-06-04 21:17:08 +0200157 reg = <0>;
158 dsa,member = <0 1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200159 interrupt-parent = <&gpio0>;
160 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
161 interrupt-controller;
162 #interrupt-cells = <2>;
Andrew Lunn925b8652017-05-26 01:44:44 +0200163 eeprom-length = <512>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200164
165 ports {
166 #address-cells = <1>;
167 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800168
Andrew Lunn9dff6732016-06-04 21:17:08 +0200169 port@0 {
170 reg = <0>;
171 label = "lan3";
172 phy-handle = <&switch1phy0>;
173 };
174
175 port@1 {
176 reg = <1>;
177 label = "lan4";
178 phy-handle = <&switch1phy1>;
179 };
180
181 port@2 {
182 reg = <2>;
183 label = "lan5";
184 phy-handle = <&switch1phy2>;
185 };
186
187 switch1port5: port@5 {
188 reg = <5>;
189 label = "dsa";
190 link = <&switch2port9>;
191 phy-mode = "rgmii-txid";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800192
Andrew Lunn9dff6732016-06-04 21:17:08 +0200193 fixed-link {
194 speed = <1000>;
195 full-duplex;
196 };
197 };
198
199 switch1port6: port@6 {
200 reg = <6>;
201 label = "dsa";
202 phy-mode = "rgmii-txid";
203 link = <&switch0port5>;
204 fixed-link {
205 speed = <1000>;
206 full-duplex;
207 };
208 };
209 };
210 mdio {
211 #address-cells = <1>;
212 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800213
Andrew Lunn9dff6732016-06-04 21:17:08 +0200214 switch1phy0: switch1phy0@0 {
215 reg = <0>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200216 interrupt-parent = <&switch1>;
217 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200218 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800219
Andrew Lunn9dff6732016-06-04 21:17:08 +0200220 switch1phy1: switch1phy0@1 {
221 reg = <1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200222 interrupt-parent = <&switch1>;
223 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200224 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800225
Andrew Lunn9dff6732016-06-04 21:17:08 +0200226 switch1phy2: switch1phy0@2 {
227 reg = <2>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200228 interrupt-parent = <&switch1>;
229 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200230 };
231 };
232 };
Cory Tusar15560632016-04-04 23:53:12 +0200233 };
234
235 mdio_mux_4: mdio@4 {
Cory Tusar15560632016-04-04 23:53:12 +0200236 #address-cells = <1>;
237 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200238 reg = <4>;
239
Vivien Didelot1cb1a682017-03-28 15:24:26 -0400240 switch2: switch@0 {
Andrew Lunn9dff6732016-06-04 21:17:08 +0200241 compatible = "marvell,mv88e6085";
Andrew Lunn9dff6732016-06-04 21:17:08 +0200242 reg = <0>;
243 dsa,member = <0 2>;
244
245 ports {
246 #address-cells = <1>;
247 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800248
Andrew Lunn9dff6732016-06-04 21:17:08 +0200249 port@0 {
250 reg = <0>;
251 label = "lan6";
Russell King7bb83f62017-12-20 23:11:55 +0000252 phy-handle = <&switch2phy0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200253 };
254
255 port@1 {
256 reg = <1>;
257 label = "lan7";
Russell King7bb83f62017-12-20 23:11:55 +0000258 phy-handle = <&switch2phy1>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200259 };
260
261 port@2 {
262 reg = <2>;
263 label = "lan8";
Russell King7bb83f62017-12-20 23:11:55 +0000264 phy-handle = <&switch2phy2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200265 };
266
267 port@3 {
268 reg = <3>;
269 label = "optical3";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800270
Andrew Lunn9dff6732016-06-04 21:17:08 +0200271 fixed-link {
272 speed = <1000>;
273 full-duplex;
274 link-gpios = <&gpio6 2
275 GPIO_ACTIVE_HIGH>;
276 };
277 };
278
279 port@4 {
280 reg = <4>;
281 label = "optical4";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800282
Andrew Lunn9dff6732016-06-04 21:17:08 +0200283 fixed-link {
284 speed = <1000>;
285 full-duplex;
286 link-gpios = <&gpio6 3
287 GPIO_ACTIVE_HIGH>;
288 };
289 };
290
291 switch2port9: port@9 {
292 reg = <9>;
293 label = "dsa";
294 phy-mode = "rgmii-txid";
295 link = <&switch1port5
296 &switch0port5>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800297
Andrew Lunn9dff6732016-06-04 21:17:08 +0200298 fixed-link {
299 speed = <1000>;
300 full-duplex;
301 };
302 };
303 };
Russell King7bb83f62017-12-20 23:11:55 +0000304 mdio {
305 #address-cells = <1>;
306 #size-cells = <0>;
307
308 switch2phy0: phy@0 {
309 reg = <0>;
310 };
311 switch2phy1: phy@1 {
312 reg = <1>;
313 };
314 switch2phy2: phy@2 {
315 reg = <2>;
316 };
317 };
Andrew Lunn9dff6732016-06-04 21:17:08 +0200318 };
Cory Tusar15560632016-04-04 23:53:12 +0200319 };
320
321 mdio_mux_8: mdio@8 {
322 reg = <8>;
323 #address-cells = <1>;
324 #size-cells = <0>;
325 };
326 };
327
Cory Tusar15560632016-04-04 23:53:12 +0200328 spi0 {
329 compatible = "spi-gpio";
330 pinctrl-0 = <&pinctrl_gpio_spi0>;
331 pinctrl-names = "default";
332 #address-cells = <1>;
333 #size-cells = <0>;
334 gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
335 gpio-mosi = <&gpio1 11 GPIO_ACTIVE_HIGH>;
336 gpio-miso = <&gpio1 10 GPIO_ACTIVE_HIGH>;
337 cs-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH
338 &gpio1 8 GPIO_ACTIVE_HIGH>;
339 num-chipselects = <2>;
340
341 m25p128@0 {
342 compatible = "m25p128", "jedec,spi-nor";
343 #address-cells = <1>;
344 #size-cells = <1>;
345 reg = <0>;
346 spi-max-frequency = <1000000>;
347 };
348
349 at93c46d@1 {
350 compatible = "atmel,at93c46d";
351 pinctrl-0 = <&pinctrl_gpio_e6185_eeprom_sel>;
352 pinctrl-names = "default";
353 #address-cells = <0>;
354 #size-cells = <0>;
355 reg = <1>;
356 spi-max-frequency = <500000>;
357 spi-cs-high;
358 data-size = <16>;
359 select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
360 };
361 };
362};
363
Cory Tusar15560632016-04-04 23:53:12 +0200364&i2c0 {
365 clock-frequency = <100000>;
366 pinctrl-names = "default";
367 pinctrl-0 = <&pinctrl_i2c0>;
368 status = "okay";
369
370 gpio5: pca9554@20 {
371 compatible = "nxp,pca9554";
372 reg = <0x20>;
373 gpio-controller;
374 #gpio-cells = <2>;
375
376 };
377
378 gpio6: pca9554@22 {
379 compatible = "nxp,pca9554";
380 pinctrl-names = "default";
381 pinctrl-0 = <&pinctrl_pca9554_22>;
382 reg = <0x22>;
383 gpio-controller;
384 #gpio-cells = <2>;
Russell Kingc09d0632017-12-20 23:11:50 +0000385 interrupt-controller;
386 interrupt-parent = <&gpio3>;
Cory Tusar15560632016-04-04 23:53:12 +0200387 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
388 };
Cory Tusar15560632016-04-04 23:53:12 +0200389};
390
391&i2c2 {
392 clock-frequency = <100000>;
393 pinctrl-names = "default";
394 pinctrl-0 = <&pinctrl_i2c2>;
395 status = "okay";
396
397 tca9548@70 {
398 compatible = "nxp,pca9548";
399 pinctrl-0 = <&pinctrl_i2c_mux_reset>;
400 pinctrl-names = "default";
401 #address-cells = <1>;
402 #size-cells = <0>;
403 reg = <0x70>;
404 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
405
406 i2c@0 {
407 #address-cells = <1>;
408 #size-cells = <0>;
409 reg = <0>;
410
411 sfp1: at24c04@50 {
412 compatible = "atmel,24c02";
413 reg = <0x50>;
414 };
415 };
416
417 i2c@1 {
418 #address-cells = <1>;
419 #size-cells = <0>;
420 reg = <1>;
421
422 sfp2: at24c04@50 {
423 compatible = "atmel,24c02";
424 reg = <0x50>;
425 };
426 };
427
428 i2c@2 {
429 #address-cells = <1>;
430 #size-cells = <0>;
431 reg = <2>;
432
433 sfp3: at24c04@50 {
434 compatible = "atmel,24c02";
435 reg = <0x50>;
436 };
437 };
438
439 i2c@3 {
440 #address-cells = <1>;
441 #size-cells = <0>;
442 reg = <3>;
443
444 sfp4: at24c04@50 {
445 compatible = "atmel,24c02";
446 reg = <0x50>;
447 };
448 };
449
450 i2c@4 {
451 #address-cells = <1>;
452 #size-cells = <0>;
453 reg = <4>;
454 };
455 };
456};
457
Cory Tusar15560632016-04-04 23:53:12 +0200458
459&iomuxc {
Cory Tusar15560632016-04-04 23:53:12 +0200460 pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
461 fsl,pins = <
462 VF610_PAD_PTE27__GPIO_132 0x33e2
463 >;
464 };
465
466 pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
467 fsl,pins = <
468 VF610_PAD_PTB22__GPIO_44 0x33e2
469 VF610_PAD_PTB21__GPIO_43 0x33e2
470 VF610_PAD_PTB20__GPIO_42 0x33e1
471 VF610_PAD_PTB19__GPIO_41 0x33e2
472 VF610_PAD_PTB18__GPIO_40 0x33e2
473 >;
474 };
475
Cory Tusar15560632016-04-04 23:53:12 +0200476 pinctrl_mdio_mux: pinctrl-mdio-mux {
477 fsl,pins = <
478 VF610_PAD_PTA18__GPIO_8 0x31c2
479 VF610_PAD_PTA19__GPIO_9 0x31c2
480 VF610_PAD_PTB2__GPIO_24 0x31c2
481 VF610_PAD_PTB3__GPIO_25 0x31c2
482 >;
483 };
484
485 pinctrl_pca9554_22: pinctrl-pca95540-22 {
486 fsl,pins = <
487 VF610_PAD_PTB28__GPIO_98 0x219d
488 >;
489 };
Cory Tusar15560632016-04-04 23:53:12 +0200490};