blob: acdf12ad0622101bd934262176f1e6dedfe2920d [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 Lunn925b8652017-05-26 01:44:44 +020081 eeprom-length = <512>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020082
83 ports {
84 #address-cells = <1>;
85 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -080086
Andrew Lunn9dff6732016-06-04 21:17:08 +020087 port@0 {
88 reg = <0>;
89 label = "lan0";
Andrew Lunnf2837452016-10-16 19:56:53 +020090 phy-handle = <&switch0phy0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020091 };
92
93 port@1 {
94 reg = <1>;
95 label = "lan1";
Andrew Lunnf2837452016-10-16 19:56:53 +020096 phy-handle = <&switch0phy1>;
Andrew Lunn9dff6732016-06-04 21:17:08 +020097 };
98
99 port@2 {
100 reg = <2>;
101 label = "lan2";
Andrew Lunnf2837452016-10-16 19:56:53 +0200102 phy-handle = <&switch0phy2>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200103 };
104
105 switch0port5: port@5 {
106 reg = <5>;
107 label = "dsa";
108 phy-mode = "rgmii-txid";
109 link = <&switch1port6
110 &switch2port9>;
111 fixed-link {
112 speed = <1000>;
113 full-duplex;
114 };
115 };
116
117 port@6 {
118 reg = <6>;
119 label = "cpu";
120 ethernet = <&fec1>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800121
Andrew Lunn9dff6732016-06-04 21:17:08 +0200122 fixed-link {
123 speed = <100>;
124 full-duplex;
125 };
126 };
127 };
Andrew Lunnf2837452016-10-16 19:56:53 +0200128 mdio {
129 #address-cells = <1>;
130 #size-cells = <0>;
131 switch0phy0: switch0phy0@0 {
132 reg = <0>;
133 interrupt-parent = <&switch0>;
134 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
135 };
136 switch0phy1: switch1phy0@1 {
137 reg = <1>;
138 interrupt-parent = <&switch0>;
Andreas Färber4c51de42016-11-27 20:54:44 +0100139 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
140 };
Andrew Lunnf2837452016-10-16 19:56:53 +0200141 switch0phy2: switch1phy0@2 {
142 reg = <2>;
143 interrupt-parent = <&switch0>;
144 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
145 };
146 };
Andrew Lunn9dff6732016-06-04 21:17:08 +0200147 };
Cory Tusar15560632016-04-04 23:53:12 +0200148 };
149
150 mdio_mux_2: mdio@2 {
151 reg = <2>;
152 #address-cells = <1>;
153 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200154
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800155 switch1: switch@0 {
Andrew Lunn9dff6732016-06-04 21:17:08 +0200156 compatible = "marvell,mv88e6085";
Andrew Lunnf2837452016-10-16 19:56:53 +0200157 pinctrl-0 = <&pinctrl_gpio_switch1>;
158 pinctrl-names = "default";
Andrew Lunn9dff6732016-06-04 21:17:08 +0200159 #address-cells = <1>;
160 #size-cells = <0>;
161 reg = <0>;
162 dsa,member = <0 1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200163 interrupt-parent = <&gpio0>;
164 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
Andrew Lunn925b8652017-05-26 01:44:44 +0200167 eeprom-length = <512>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200168
169 ports {
170 #address-cells = <1>;
171 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800172
Andrew Lunn9dff6732016-06-04 21:17:08 +0200173 port@0 {
174 reg = <0>;
175 label = "lan3";
176 phy-handle = <&switch1phy0>;
177 };
178
179 port@1 {
180 reg = <1>;
181 label = "lan4";
182 phy-handle = <&switch1phy1>;
183 };
184
185 port@2 {
186 reg = <2>;
187 label = "lan5";
188 phy-handle = <&switch1phy2>;
189 };
190
191 switch1port5: port@5 {
192 reg = <5>;
193 label = "dsa";
194 link = <&switch2port9>;
195 phy-mode = "rgmii-txid";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800196
Andrew Lunn9dff6732016-06-04 21:17:08 +0200197 fixed-link {
198 speed = <1000>;
199 full-duplex;
200 };
201 };
202
203 switch1port6: port@6 {
204 reg = <6>;
205 label = "dsa";
206 phy-mode = "rgmii-txid";
207 link = <&switch0port5>;
208 fixed-link {
209 speed = <1000>;
210 full-duplex;
211 };
212 };
213 };
214 mdio {
215 #address-cells = <1>;
216 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800217
Andrew Lunn9dff6732016-06-04 21:17:08 +0200218 switch1phy0: switch1phy0@0 {
219 reg = <0>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200220 interrupt-parent = <&switch1>;
221 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200222 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800223
Andrew Lunn9dff6732016-06-04 21:17:08 +0200224 switch1phy1: switch1phy0@1 {
225 reg = <1>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200226 interrupt-parent = <&switch1>;
227 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200228 };
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800229
Andrew Lunn9dff6732016-06-04 21:17:08 +0200230 switch1phy2: switch1phy0@2 {
231 reg = <2>;
Andrew Lunnf2837452016-10-16 19:56:53 +0200232 interrupt-parent = <&switch1>;
233 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200234 };
235 };
236 };
Cory Tusar15560632016-04-04 23:53:12 +0200237 };
238
239 mdio_mux_4: mdio@4 {
Cory Tusar15560632016-04-04 23:53:12 +0200240 #address-cells = <1>;
241 #size-cells = <0>;
Andrew Lunn9dff6732016-06-04 21:17:08 +0200242 reg = <4>;
243
Vivien Didelot1cb1a682017-03-28 15:24:26 -0400244 switch2: switch@0 {
Andrew Lunn9dff6732016-06-04 21:17:08 +0200245 compatible = "marvell,mv88e6085";
246 #address-cells = <1>;
247 #size-cells = <0>;
248 reg = <0>;
249 dsa,member = <0 2>;
250
251 ports {
252 #address-cells = <1>;
253 #size-cells = <0>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800254
Andrew Lunn9dff6732016-06-04 21:17:08 +0200255 port@0 {
256 reg = <0>;
257 label = "lan6";
258 };
259
260 port@1 {
261 reg = <1>;
262 label = "lan7";
263 };
264
265 port@2 {
266 reg = <2>;
267 label = "lan8";
268 };
269
270 port@3 {
271 reg = <3>;
272 label = "optical3";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800273
Andrew Lunn9dff6732016-06-04 21:17:08 +0200274 fixed-link {
275 speed = <1000>;
276 full-duplex;
277 link-gpios = <&gpio6 2
278 GPIO_ACTIVE_HIGH>;
279 };
280 };
281
282 port@4 {
283 reg = <4>;
284 label = "optical4";
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800285
Andrew Lunn9dff6732016-06-04 21:17:08 +0200286 fixed-link {
287 speed = <1000>;
288 full-duplex;
289 link-gpios = <&gpio6 3
290 GPIO_ACTIVE_HIGH>;
291 };
292 };
293
294 switch2port9: port@9 {
295 reg = <9>;
296 label = "dsa";
297 phy-mode = "rgmii-txid";
298 link = <&switch1port5
299 &switch0port5>;
Andrey Smirnovd4cd1582017-01-09 23:35:55 -0800300
Andrew Lunn9dff6732016-06-04 21:17:08 +0200301 fixed-link {
302 speed = <1000>;
303 full-duplex;
304 };
305 };
306 };
307 };
Cory Tusar15560632016-04-04 23:53:12 +0200308 };
309
310 mdio_mux_8: mdio@8 {
311 reg = <8>;
312 #address-cells = <1>;
313 #size-cells = <0>;
314 };
315 };
316
Cory Tusar15560632016-04-04 23:53:12 +0200317 spi0 {
318 compatible = "spi-gpio";
319 pinctrl-0 = <&pinctrl_gpio_spi0>;
320 pinctrl-names = "default";
321 #address-cells = <1>;
322 #size-cells = <0>;
323 gpio-sck = <&gpio1 12 GPIO_ACTIVE_HIGH>;
324 gpio-mosi = <&gpio1 11 GPIO_ACTIVE_HIGH>;
325 gpio-miso = <&gpio1 10 GPIO_ACTIVE_HIGH>;
326 cs-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH
327 &gpio1 8 GPIO_ACTIVE_HIGH>;
328 num-chipselects = <2>;
329
330 m25p128@0 {
331 compatible = "m25p128", "jedec,spi-nor";
332 #address-cells = <1>;
333 #size-cells = <1>;
334 reg = <0>;
335 spi-max-frequency = <1000000>;
336 };
337
338 at93c46d@1 {
339 compatible = "atmel,at93c46d";
340 pinctrl-0 = <&pinctrl_gpio_e6185_eeprom_sel>;
341 pinctrl-names = "default";
342 #address-cells = <0>;
343 #size-cells = <0>;
344 reg = <1>;
345 spi-max-frequency = <500000>;
346 spi-cs-high;
347 data-size = <16>;
348 select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
349 };
350 };
351};
352
Cory Tusar15560632016-04-04 23:53:12 +0200353&i2c0 {
354 clock-frequency = <100000>;
355 pinctrl-names = "default";
356 pinctrl-0 = <&pinctrl_i2c0>;
357 status = "okay";
358
359 gpio5: pca9554@20 {
360 compatible = "nxp,pca9554";
361 reg = <0x20>;
362 gpio-controller;
363 #gpio-cells = <2>;
364
365 };
366
367 gpio6: pca9554@22 {
368 compatible = "nxp,pca9554";
369 pinctrl-names = "default";
370 pinctrl-0 = <&pinctrl_pca9554_22>;
371 reg = <0x22>;
372 gpio-controller;
373 #gpio-cells = <2>;
374 interrupt-parent = <&gpio2>;
375 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
376 };
Cory Tusar15560632016-04-04 23:53:12 +0200377};
378
379&i2c2 {
380 clock-frequency = <100000>;
381 pinctrl-names = "default";
382 pinctrl-0 = <&pinctrl_i2c2>;
383 status = "okay";
384
385 tca9548@70 {
386 compatible = "nxp,pca9548";
387 pinctrl-0 = <&pinctrl_i2c_mux_reset>;
388 pinctrl-names = "default";
389 #address-cells = <1>;
390 #size-cells = <0>;
391 reg = <0x70>;
392 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
393
394 i2c@0 {
395 #address-cells = <1>;
396 #size-cells = <0>;
397 reg = <0>;
398
399 sfp1: at24c04@50 {
400 compatible = "atmel,24c02";
401 reg = <0x50>;
402 };
403 };
404
405 i2c@1 {
406 #address-cells = <1>;
407 #size-cells = <0>;
408 reg = <1>;
409
410 sfp2: at24c04@50 {
411 compatible = "atmel,24c02";
412 reg = <0x50>;
413 };
414 };
415
416 i2c@2 {
417 #address-cells = <1>;
418 #size-cells = <0>;
419 reg = <2>;
420
421 sfp3: at24c04@50 {
422 compatible = "atmel,24c02";
423 reg = <0x50>;
424 };
425 };
426
427 i2c@3 {
428 #address-cells = <1>;
429 #size-cells = <0>;
430 reg = <3>;
431
432 sfp4: at24c04@50 {
433 compatible = "atmel,24c02";
434 reg = <0x50>;
435 };
436 };
437
438 i2c@4 {
439 #address-cells = <1>;
440 #size-cells = <0>;
441 reg = <4>;
442 };
443 };
444};
445
Cory Tusar15560632016-04-04 23:53:12 +0200446
447&iomuxc {
Cory Tusar15560632016-04-04 23:53:12 +0200448 pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
449 fsl,pins = <
450 VF610_PAD_PTE27__GPIO_132 0x33e2
451 >;
452 };
453
454 pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
455 fsl,pins = <
456 VF610_PAD_PTB22__GPIO_44 0x33e2
457 VF610_PAD_PTB21__GPIO_43 0x33e2
458 VF610_PAD_PTB20__GPIO_42 0x33e1
459 VF610_PAD_PTB19__GPIO_41 0x33e2
460 VF610_PAD_PTB18__GPIO_40 0x33e2
461 >;
462 };
463
Cory Tusar15560632016-04-04 23:53:12 +0200464 pinctrl_mdio_mux: pinctrl-mdio-mux {
465 fsl,pins = <
466 VF610_PAD_PTA18__GPIO_8 0x31c2
467 VF610_PAD_PTA19__GPIO_9 0x31c2
468 VF610_PAD_PTB2__GPIO_24 0x31c2
469 VF610_PAD_PTB3__GPIO_25 0x31c2
470 >;
471 };
472
473 pinctrl_pca9554_22: pinctrl-pca95540-22 {
474 fsl,pins = <
475 VF610_PAD_PTB28__GPIO_98 0x219d
476 >;
477 };
Cory Tusar15560632016-04-04 23:53:12 +0200478};