blob: 013c7486ea9a5f93c2b75229a1f0cfe7ce349f0b [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 #address-cells = <1>;
74 #size-cells = <0>;
75 reg = <0>;
76 dsa,member = <0 0>;
Andrew Lunnf2837452016-10-16 19:56:53 +020077 interrupt-parent = <&gpio0>;
78 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
79 interrupt-controller;
80 #interrupt-cells = <2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020081
82 ports {
83 #address-cells = <1>;
84 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -080085
Andrew Lunn9dff6732016-06-04 21:17:08 +020086 port@0 {
87 reg = <0>;
88 label = "lan0";
Andrew Lunnf2837452016-10-16 19:56:53 +020089 phy-handle = <&switch0phy0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020090 };
91
92 port@1 {
93 reg = <1>;
94 label = "lan1";
Andrew Lunnf2837452016-10-16 19:56:53 +020095 phy-handle = <&switch0phy1>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020096 };
97
98 port@2 {
99 reg = <2>;
100 label = "lan2";
Andrew Lunnf2837452016-10-16 19:56:53 +0200101 phy-handle = <&switch0phy2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200102 };
103
104 switch0port5: port@5 {
105 reg = <5>;
106 label = "dsa";
107 phy-mode = "rgmii-txid";
108 link = <&switch1port6
109 &switch2port9>;
110 fixed-link {
111 speed = <1000>;
112 full-duplex;
113 };
114 };
115
116 port@6 {
117 reg = <6>;
118 label = "cpu";
119 ethernet = <&fec1>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800120
Andrew Lunn9dff6732016-06-04 21:17:08 +0200121 fixed-link {
122 speed = <100>;
123 full-duplex;
124 };
125 };
126 };
Andrew Lunnf2837452016-10-16 19:56:53 +0200127 mdio {
128 #address-cells = <1>;
129 #size-cells = <0>;
130 switch0phy0: switch0phy0@0 {
131 reg = <0>;
132 interrupt-parent = <&switch0>;
133 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
134 };
135 switch0phy1: switch1phy0@1 {
136 reg = <1>;
137 interrupt-parent = <&switch0>;
138 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; };
139 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 #address-cells = <1>;
158 #size-cells = <0>;
159 reg = <0>;
160 dsa,member = <0 1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200161 interrupt-parent = <&gpio0>;
162 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
163 interrupt-controller;
164 #interrupt-cells = <2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200165
166 ports {
167 #address-cells = <1>;
168 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800169
Andrew Lunn9dff6732016-06-04 21:17:08 +0200170 port@0 {
171 reg = <0>;
172 label = "lan3";
173 phy-handle = <&switch1phy0>;
174 };
175
176 port@1 {
177 reg = <1>;
178 label = "lan4";
179 phy-handle = <&switch1phy1>;
180 };
181
182 port@2 {
183 reg = <2>;
184 label = "lan5";
185 phy-handle = <&switch1phy2>;
186 };
187
188 switch1port5: port@5 {
189 reg = <5>;
190 label = "dsa";
191 link = <&switch2port9>;
192 phy-mode = "rgmii-txid";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800193
Andrew Lunn9dff6732016-06-04 21:17:08 +0200194 fixed-link {
195 speed = <1000>;
196 full-duplex;
197 };
198 };
199
200 switch1port6: port@6 {
201 reg = <6>;
202 label = "dsa";
203 phy-mode = "rgmii-txid";
204 link = <&switch0port5>;
205 fixed-link {
206 speed = <1000>;
207 full-duplex;
208 };
209 };
210 };
211 mdio {
212 #address-cells = <1>;
213 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800214
Andrew Lunn9dff6732016-06-04 21:17:08 +0200215 switch1phy0: switch1phy0@0 {
216 reg = <0>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200217 interrupt-parent = <&switch1>;
218 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200219 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800220
Andrew Lunn9dff6732016-06-04 21:17:08 +0200221 switch1phy1: switch1phy0@1 {
222 reg = <1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200223 interrupt-parent = <&switch1>;
224 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200225 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800226
Andrew Lunn9dff6732016-06-04 21:17:08 +0200227 switch1phy2: switch1phy0@2 {
228 reg = <2>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200229 interrupt-parent = <&switch1>;
230 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200231 };
232 };
233 };
Cory Tusar15560632016-04-04 23:53:12 +0200234 };
235
236 mdio_mux_4: mdio@4 {
Cory Tusar15560632016-04-04 23:53:12 +0200237 #address-cells = <1>;
238 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200239 reg = <4>;
240
241 switch2: switch2@0 {
242 compatible = "marvell,mv88e6085";
243 #address-cells = <1>;
244 #size-cells = <0>;
245 reg = <0>;
246 dsa,member = <0 2>;
247
248 ports {
249 #address-cells = <1>;
250 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800251
Andrew Lunn9dff6732016-06-04 21:17:08 +0200252 port@0 {
253 reg = <0>;
254 label = "lan6";
255 };
256
257 port@1 {
258 reg = <1>;
259 label = "lan7";
260 };
261
262 port@2 {
263 reg = <2>;
264 label = "lan8";
265 };
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 };
304 };
Cory Tusar15560632016-04-04 23:53:12 +0200305 };
306
307 mdio_mux_8: mdio@8 {
308 reg = <8>;
309 #address-cells = <1>;
310 #size-cells = <0>;
311 };
312 };
313
Cory Tusar15560632016-04-04 23:53:12 +0200314 spi0 {
315 compatible = "spi-gpio";
316 pinctrl-0 = <&pinctrl_gpio_spi0>;
317 pinctrl-names = "default";
318 #address-cells = <1>;
319 #size-cells = <0>;
320 gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
321 gpio-mosi = <&gpio1 11 GPIO_ACTIVE_HIGH>;
322 gpio-miso = <&gpio1 10 GPIO_ACTIVE_HIGH>;
323 cs-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH
324 &gpio1 8 GPIO_ACTIVE_HIGH>;
325 num-chipselects = <2>;
326
327 m25p128@0 {
328 compatible = "m25p128", "jedec,spi-nor";
329 #address-cells = <1>;
330 #size-cells = <1>;
331 reg = <0>;
332 spi-max-frequency = <1000000>;
333 };
334
335 at93c46d@1 {
336 compatible = "atmel,at93c46d";
337 pinctrl-0 = <&pinctrl_gpio_e6185_eeprom_sel>;
338 pinctrl-names = "default";
339 #address-cells = <0>;
340 #size-cells = <0>;
341 reg = <1>;
342 spi-max-frequency = <500000>;
343 spi-cs-high;
344 data-size = <16>;
345 select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
346 };
347 };
348};
349
Cory Tusar15560632016-04-04 23:53:12 +0200350&i2c0 {
351 clock-frequency = <100000>;
352 pinctrl-names = "default";
353 pinctrl-0 = <&pinctrl_i2c0>;
354 status = "okay";
355
356 gpio5: pca9554@20 {
357 compatible = "nxp,pca9554";
358 reg = <0x20>;
359 gpio-controller;
360 #gpio-cells = <2>;
361
362 };
363
364 gpio6: pca9554@22 {
365 compatible = "nxp,pca9554";
366 pinctrl-names = "default";
367 pinctrl-0 = <&pinctrl_pca9554_22>;
368 reg = <0x22>;
369 gpio-controller;
370 #gpio-cells = <2>;
371 interrupt-parent = <&gpio2>;
372 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
373 };
Cory Tusar15560632016-04-04 23:53:12 +0200374};
375
376&i2c2 {
377 clock-frequency = <100000>;
378 pinctrl-names = "default";
379 pinctrl-0 = <&pinctrl_i2c2>;
380 status = "okay";
381
382 tca9548@70 {
383 compatible = "nxp,pca9548";
384 pinctrl-0 = <&pinctrl_i2c_mux_reset>;
385 pinctrl-names = "default";
386 #address-cells = <1>;
387 #size-cells = <0>;
388 reg = <0x70>;
389 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
390
391 i2c@0 {
392 #address-cells = <1>;
393 #size-cells = <0>;
394 reg = <0>;
395
396 sfp1: at24c04@50 {
397 compatible = "atmel,24c02";
398 reg = <0x50>;
399 };
400 };
401
402 i2c@1 {
403 #address-cells = <1>;
404 #size-cells = <0>;
405 reg = <1>;
406
407 sfp2: at24c04@50 {
408 compatible = "atmel,24c02";
409 reg = <0x50>;
410 };
411 };
412
413 i2c@2 {
414 #address-cells = <1>;
415 #size-cells = <0>;
416 reg = <2>;
417
418 sfp3: at24c04@50 {
419 compatible = "atmel,24c02";
420 reg = <0x50>;
421 };
422 };
423
424 i2c@3 {
425 #address-cells = <1>;
426 #size-cells = <0>;
427 reg = <3>;
428
429 sfp4: at24c04@50 {
430 compatible = "atmel,24c02";
431 reg = <0x50>;
432 };
433 };
434
435 i2c@4 {
436 #address-cells = <1>;
437 #size-cells = <0>;
438 reg = <4>;
439 };
440 };
441};
442
Cory Tusar15560632016-04-04 23:53:12 +0200443
444&iomuxc {
Cory Tusar15560632016-04-04 23:53:12 +0200445 pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
446 fsl,pins = <
447 VF610_PAD_PTE27__GPIO_132 0x33e2
448 >;
449 };
450
451 pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
452 fsl,pins = <
453 VF610_PAD_PTB22__GPIO_44 0x33e2
454 VF610_PAD_PTB21__GPIO_43 0x33e2
455 VF610_PAD_PTB20__GPIO_42 0x33e1
456 VF610_PAD_PTB19__GPIO_41 0x33e2
457 VF610_PAD_PTB18__GPIO_40 0x33e2
458 >;
459 };
460
Andrew Lunnf2837452016-10-16 19:56:53 +0200461 pinctrl_gpio_switch0: pinctrl-gpio-switch0 {
462 fsl,pins = <
463 VF610_PAD_PTB5__GPIO_27 0x219d
464 >;
465 };
466
467 pinctrl_gpio_switch1: pinctrl-gpio-switch1 {
468 fsl,pins = <
469 VF610_PAD_PTB4__GPIO_26 0x219d
470 >;
471 };
472
Cory Tusar15560632016-04-04 23:53:12 +0200473 pinctrl_mdio_mux: pinctrl-mdio-mux {
474 fsl,pins = <
475 VF610_PAD_PTA18__GPIO_8 0x31c2
476 VF610_PAD_PTA19__GPIO_9 0x31c2
477 VF610_PAD_PTB2__GPIO_24 0x31c2
478 VF610_PAD_PTB3__GPIO_25 0x31c2
479 >;
480 };
481
482 pinctrl_pca9554_22: pinctrl-pca95540-22 {
483 fsl,pins = <
484 VF610_PAD_PTB28__GPIO_98 0x219d
485 >;
486 };
Cory Tusar15560632016-04-04 23:53:12 +0200487};