Merge tag 'mips_5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux
[linux-2.6-microblaze.git] / arch / arm / boot / dts / vf610-zii-dev-rev-b.dts
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 /*
3  * Copyright (C) 2015, 2016 Zodiac Inflight Innovations
4  */
5
6 /dts-v1/;
7 #include "vf610-zii-dev.dtsi"
8
9 / {
10         model = "ZII VF610 Development Board, Rev B";
11         compatible = "zii,vf610dev-b", "zii,vf610dev", "fsl,vf610";
12
13         mdio-mux {
14                 compatible = "mdio-mux-gpio";
15                 pinctrl-0 = <&pinctrl_mdio_mux>;
16                 pinctrl-names = "default";
17                 gpios = <&gpio0 8  GPIO_ACTIVE_HIGH
18                          &gpio0 9  GPIO_ACTIVE_HIGH
19                          &gpio0 24 GPIO_ACTIVE_HIGH
20                          &gpio0 25 GPIO_ACTIVE_HIGH>;
21                 mdio-parent-bus = <&mdio1>;
22                 #address-cells = <1>;
23                 #size-cells = <0>;
24
25                 mdio_mux_1: mdio@1 {
26                         reg = <1>;
27                         #address-cells = <1>;
28                         #size-cells = <0>;
29
30                         switch0: switch@0 {
31                                 compatible = "marvell,mv88e6085";
32                                 pinctrl-0 = <&pinctrl_gpio_switch0>;
33                                 pinctrl-names = "default";
34                                 reg = <0>;
35                                 dsa,member = <0 0>;
36                                 interrupt-parent = <&gpio0>;
37                                 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
38                                 interrupt-controller;
39                                 #interrupt-cells = <2>;
40                                 eeprom-length = <512>;
41
42                                 ports {
43                                         #address-cells = <1>;
44                                         #size-cells = <0>;
45
46                                         port@0 {
47                                                 reg = <0>;
48                                                 label = "lan0";
49                                                 phy-handle = <&switch0phy0>;
50                                         };
51
52                                         port@1 {
53                                                 reg = <1>;
54                                                 label = "lan1";
55                                                 phy-handle = <&switch0phy1>;
56                                         };
57
58                                         port@2 {
59                                                 reg = <2>;
60                                                 label = "lan2";
61                                                 phy-handle = <&switch0phy2>;
62                                         };
63
64                                         switch0port5: port@5 {
65                                                 reg = <5>;
66                                                 label = "dsa";
67                                                 phy-mode = "rgmii-txid";
68                                                 link = <&switch1port6
69                                                         &switch2port9>;
70                                                 fixed-link {
71                                                         speed = <1000>;
72                                                         full-duplex;
73                                                 };
74                                         };
75
76                                         port@6 {
77                                                 reg = <6>;
78                                                 label = "cpu";
79                                                 ethernet = <&fec1>;
80
81                                                 fixed-link {
82                                                         speed = <100>;
83                                                         full-duplex;
84                                                 };
85                                         };
86                                 };
87                                 mdio {
88                                         #address-cells = <1>;
89                                         #size-cells = <0>;
90                                         switch0phy0: switch0phy0@0 {
91                                                 reg = <0>;
92                                                 interrupt-parent = <&switch0>;
93                                                 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
94                                         };
95                                         switch0phy1: switch1phy0@1 {
96                                                 reg = <1>;
97                                                 interrupt-parent = <&switch0>;
98                                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
99                                         };
100                                         switch0phy2: switch1phy0@2 {
101                                                 reg = <2>;
102                                                 interrupt-parent = <&switch0>;
103                                                 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
104                                         };
105                                 };
106                         };
107                 };
108
109                 mdio_mux_2: mdio@2 {
110                         reg = <2>;
111                         #address-cells = <1>;
112                         #size-cells = <0>;
113
114                         switch1: switch@0 {
115                                 compatible = "marvell,mv88e6085";
116                                 pinctrl-0 = <&pinctrl_gpio_switch1>;
117                                 pinctrl-names = "default";
118                                 reg = <0>;
119                                 dsa,member = <0 1>;
120                                 interrupt-parent = <&gpio0>;
121                                 interrupts = <26 IRQ_TYPE_LEVEL_LOW>;
122                                 interrupt-controller;
123                                 #interrupt-cells = <2>;
124                                 eeprom-length = <512>;
125
126                                 ports {
127                                         #address-cells = <1>;
128                                         #size-cells = <0>;
129
130                                         port@0 {
131                                                 reg = <0>;
132                                                 label = "lan3";
133                                                 phy-handle = <&switch1phy0>;
134                                         };
135
136                                         port@1 {
137                                                 reg = <1>;
138                                                 label = "lan4";
139                                                 phy-handle = <&switch1phy1>;
140                                         };
141
142                                         port@2 {
143                                                 reg = <2>;
144                                                 label = "lan5";
145                                                 phy-handle = <&switch1phy2>;
146                                         };
147
148                                         switch1port5: port@5 {
149                                                 reg = <5>;
150                                                 label = "dsa";
151                                                 link = <&switch2port9>;
152                                                 phy-mode = "rgmii-txid";
153
154                                                 fixed-link {
155                                                         speed = <1000>;
156                                                         full-duplex;
157                                                 };
158                                         };
159
160                                         switch1port6: port@6 {
161                                                 reg = <6>;
162                                                 label = "dsa";
163                                                 phy-mode = "rgmii-txid";
164                                                 link = <&switch0port5>;
165                                                 fixed-link {
166                                                         speed = <1000>;
167                                                         full-duplex;
168                                                 };
169                                         };
170                                 };
171                                 mdio {
172                                         #address-cells = <1>;
173                                         #size-cells = <0>;
174
175                                         switch1phy0: switch1phy0@0 {
176                                                 reg = <0>;
177                                                 interrupt-parent = <&switch1>;
178                                                 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
179                                         };
180
181                                         switch1phy1: switch1phy0@1 {
182                                                 reg = <1>;
183                                                 interrupt-parent = <&switch1>;
184                                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
185                                         };
186
187                                         switch1phy2: switch1phy0@2 {
188                                                 reg = <2>;
189                                                 interrupt-parent = <&switch1>;
190                                                 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
191                                         };
192                                 };
193                         };
194                 };
195
196                 mdio_mux_4: mdio@4 {
197                         #address-cells = <1>;
198                         #size-cells = <0>;
199                         reg = <4>;
200
201                         switch2: switch@0 {
202                                 compatible = "marvell,mv88e6085";
203                                 reg = <0>;
204                                 dsa,member = <0 2>;
205
206                                 ports {
207                                         #address-cells = <1>;
208                                         #size-cells = <0>;
209
210                                         port@0 {
211                                                 reg = <0>;
212                                                 label = "lan6";
213                                                 phy-handle = <&switch2phy0>;
214                                         };
215
216                                         port@1 {
217                                                 reg = <1>;
218                                                 label = "lan7";
219                                                 phy-handle = <&switch2phy1>;
220                                         };
221
222                                         port@2 {
223                                                 reg = <2>;
224                                                 label = "lan8";
225                                                 phy-handle = <&switch2phy2>;
226                                         };
227
228                                         port@3 {
229                                                 reg = <3>;
230                                                 label = "optical3";
231
232                                                 fixed-link {
233                                                         speed = <1000>;
234                                                         full-duplex;
235                                                         link-gpios = <&gpio6 2
236                                                               GPIO_ACTIVE_HIGH>;
237                                                 };
238                                         };
239
240                                         port@4 {
241                                                 reg = <4>;
242                                                 label = "optical4";
243
244                                                 fixed-link {
245                                                         speed = <1000>;
246                                                         full-duplex;
247                                                         link-gpios = <&gpio6 3
248                                                               GPIO_ACTIVE_HIGH>;
249                                                 };
250                                         };
251
252                                         switch2port9: port@9 {
253                                                 reg = <9>;
254                                                 label = "dsa";
255                                                 phy-mode = "rgmii-txid";
256                                                 link = <&switch1port5
257                                                         &switch0port5>;
258
259                                                 fixed-link {
260                                                         speed = <1000>;
261                                                         full-duplex;
262                                                 };
263                                         };
264                                 };
265                                 mdio {
266                                         #address-cells = <1>;
267                                         #size-cells = <0>;
268
269                                         switch2phy0: phy@0 {
270                                                 reg = <0>;
271                                         };
272                                         switch2phy1: phy@1 {
273                                                 reg = <1>;
274                                         };
275                                         switch2phy2: phy@2 {
276                                                 reg = <2>;
277                                         };
278                                 };
279                         };
280                 };
281
282                 mdio_mux_8: mdio@8 {
283                         reg = <8>;
284                         #address-cells = <1>;
285                         #size-cells = <0>;
286                 };
287         };
288
289         spi0 {
290                 compatible = "spi-gpio";
291                 pinctrl-0 = <&pinctrl_gpio_spi0>;
292                 pinctrl-names = "default";
293                 #address-cells = <1>;
294                 #size-cells = <0>;
295                 gpio-sck  = <&gpio1 12 GPIO_ACTIVE_HIGH>;
296                 gpio-mosi = <&gpio1 11 GPIO_ACTIVE_HIGH>;
297                 gpio-miso = <&gpio1 10 GPIO_ACTIVE_HIGH>;
298                 cs-gpios  = <&gpio1  9 GPIO_ACTIVE_LOW
299                              &gpio1  8 GPIO_ACTIVE_HIGH>;
300                 num-chipselects = <2>;
301
302                 flash@0 {
303                         compatible = "m25p128", "jedec,spi-nor";
304                         #address-cells = <1>;
305                         #size-cells = <1>;
306                         reg = <0>;
307                         spi-max-frequency = <1000000>;
308                 };
309
310                 at93c46d@1 {
311                         compatible = "atmel,at93c46d";
312                         pinctrl-0 = <&pinctrl_gpio_e6185_eeprom_sel>;
313                         pinctrl-names = "default";
314                         reg = <1>;
315                         spi-max-frequency = <500000>;
316                         spi-cs-high;
317                         data-size = <16>;
318                         select-gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;
319                 };
320         };
321 };
322
323 &i2c0 {
324         gpio5: io-expander@20 {
325                 compatible = "nxp,pca9554";
326                 reg = <0x20>;
327                 gpio-controller;
328                 #gpio-cells = <2>;
329
330         };
331
332         gpio6: io-expander@22 {
333                 compatible = "nxp,pca9554";
334                 pinctrl-names = "default";
335                 pinctrl-0 = <&pinctrl_pca9554_22>;
336                 reg = <0x22>;
337                 gpio-controller;
338                 #gpio-cells = <2>;
339                 interrupt-controller;
340                 interrupt-parent = <&gpio3>;
341                 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
342         };
343 };
344
345 &i2c2 {
346         tca9548@70 {
347                 compatible = "nxp,pca9548";
348                 pinctrl-0 = <&pinctrl_i2c_mux_reset>;
349                 pinctrl-names = "default";
350                 #address-cells = <1>;
351                 #size-cells = <0>;
352                 reg = <0x70>;
353                 reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>;
354
355                 i2c@0 {
356                         #address-cells = <1>;
357                         #size-cells = <0>;
358                         reg = <0>;
359
360                         sfp1: eeprom@50 {
361                                 compatible = "atmel,24c02";
362                                 reg = <0x50>;
363                         };
364                 };
365
366                 i2c@1 {
367                         #address-cells = <1>;
368                         #size-cells = <0>;
369                         reg = <1>;
370
371                         sfp2: eeprom@50 {
372                                 compatible = "atmel,24c02";
373                                 reg = <0x50>;
374                         };
375                 };
376
377                 i2c@2 {
378                         #address-cells = <1>;
379                         #size-cells = <0>;
380                         reg = <2>;
381
382                         sfp3: eeprom@50 {
383                                 compatible = "atmel,24c02";
384                                 reg = <0x50>;
385                         };
386                 };
387
388                 i2c@3 {
389                         #address-cells = <1>;
390                         #size-cells = <0>;
391                         reg = <3>;
392
393                         sfp4: eeprom@50 {
394                                 compatible = "atmel,24c02";
395                                 reg = <0x50>;
396                         };
397                 };
398
399                 i2c@4 {
400                         #address-cells = <1>;
401                         #size-cells = <0>;
402                         reg = <4>;
403                 };
404         };
405 };
406
407 &mdio1 {
408         clock-frequency = <5000000>;
409 };
410
411 &iomuxc {
412         pinctrl_gpio_e6185_eeprom_sel: pinctrl-gpio-e6185-eeprom-spi0 {
413                 fsl,pins = <
414                         VF610_PAD_PTE27__GPIO_132       0x33e2
415                 >;
416         };
417
418         pinctrl_gpio_spi0: pinctrl-gpio-spi0 {
419                 fsl,pins = <
420                         VF610_PAD_PTB22__GPIO_44        0x33e2
421                         VF610_PAD_PTB21__GPIO_43        0x33e2
422                         VF610_PAD_PTB20__GPIO_42        0x33e1
423                         VF610_PAD_PTB19__GPIO_41        0x33e2
424                         VF610_PAD_PTB18__GPIO_40        0x33e2
425                 >;
426         };
427
428         pinctrl_mdio_mux: pinctrl-mdio-mux {
429                 fsl,pins = <
430                         VF610_PAD_PTA18__GPIO_8         0x31c2
431                         VF610_PAD_PTA19__GPIO_9         0x31c2
432                         VF610_PAD_PTB2__GPIO_24         0x31c2
433                         VF610_PAD_PTB3__GPIO_25         0x31c2
434                 >;
435         };
436
437         pinctrl_pca9554_22: pinctrl-pca95540-22 {
438                 fsl,pins = <
439                         VF610_PAD_PTB28__GPIO_98        0x219d
440                 >;
441         };
442 };