1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2020 Microchip Technology Inc. and its subsidiaries.
4 */
5
6/dts-v1/;
7#include "sparx5_pcb_common.dtsi"
8
9/{
10	aliases {
11	    i2c0   = &i2c0;
12	    i2c100 = &i2c100;
13	    i2c101 = &i2c101;
14	    i2c102 = &i2c102;
15	    i2c103 = &i2c103;
16	    i2c104 = &i2c104;
17	    i2c105 = &i2c105;
18	    i2c106 = &i2c106;
19	    i2c107 = &i2c107;
20	    i2c108 = &i2c108;
21	    i2c109 = &i2c109;
22	    i2c110 = &i2c110;
23	    i2c111 = &i2c111;
24	    i2c112 = &i2c112;
25	    i2c113 = &i2c113;
26	    i2c114 = &i2c114;
27	    i2c115 = &i2c115;
28	    i2c116 = &i2c116;
29	    i2c117 = &i2c117;
30	    i2c118 = &i2c118;
31	    i2c119 = &i2c119;
32	};
33
34	gpio-restart {
35		compatible = "gpio-restart";
36		gpios = <&gpio 37 GPIO_ACTIVE_LOW>;
37		priority = <200>;
38	};
39
40	leds {
41		compatible = "gpio-leds";
42		led@0 {
43			label = "twr0:green";
44			gpios = <&sgpio_out0 8 0 GPIO_ACTIVE_LOW>;
45		};
46		led@1 {
47			label = "twr0:yellow";
48			gpios = <&sgpio_out0 8 1 GPIO_ACTIVE_LOW>;
49		};
50		led@2 {
51			label = "twr1:green";
52			gpios = <&sgpio_out0 9 0 GPIO_ACTIVE_LOW>;
53		};
54		led@3 {
55			label = "twr1:yellow";
56			gpios = <&sgpio_out0 9 1 GPIO_ACTIVE_LOW>;
57		};
58		led@4 {
59			label = "twr2:green";
60			gpios = <&sgpio_out0 10 0 GPIO_ACTIVE_LOW>;
61		};
62		led@5 {
63			label = "twr2:yellow";
64			gpios = <&sgpio_out0 10 1 GPIO_ACTIVE_LOW>;
65		};
66		led@6 {
67			label = "twr3:green";
68			gpios = <&sgpio_out0 11 0 GPIO_ACTIVE_LOW>;
69		};
70		led@7 {
71			label = "twr3:yellow";
72			gpios = <&sgpio_out0 11 1 GPIO_ACTIVE_LOW>;
73		};
74		led@8 {
75			label = "eth12:green";
76			gpios = <&sgpio_out0 12 0 GPIO_ACTIVE_HIGH>;
77			default-state = "off";
78		};
79		led@9 {
80			label = "eth12:yellow";
81			gpios = <&sgpio_out0 12 1 GPIO_ACTIVE_HIGH>;
82			default-state = "off";
83		};
84		led@10 {
85			label = "eth13:green";
86			gpios = <&sgpio_out0 13 0 GPIO_ACTIVE_HIGH>;
87			default-state = "off";
88		};
89		led@11 {
90			label = "eth13:yellow";
91			gpios = <&sgpio_out0 13 1 GPIO_ACTIVE_HIGH>;
92			default-state = "off";
93		};
94		led@12 {
95			label = "eth14:green";
96			gpios = <&sgpio_out0 14 0 GPIO_ACTIVE_HIGH>;
97			default-state = "off";
98		};
99		led@13 {
100			label = "eth14:yellow";
101			gpios = <&sgpio_out0 14 1 GPIO_ACTIVE_HIGH>;
102			default-state = "off";
103		};
104		led@14 {
105			label = "eth15:green";
106			gpios = <&sgpio_out0 15 0 GPIO_ACTIVE_HIGH>;
107			default-state = "off";
108		};
109		led@15 {
110			label = "eth15:yellow";
111			gpios = <&sgpio_out0 15 1 GPIO_ACTIVE_HIGH>;
112			default-state = "off";
113		};
114		led@16 {
115			label = "eth48:green";
116			gpios = <&sgpio_out1 16 0 GPIO_ACTIVE_HIGH>;
117			default-state = "off";
118		};
119		led@17 {
120			label = "eth48:yellow";
121			gpios = <&sgpio_out1 16 1 GPIO_ACTIVE_HIGH>;
122			default-state = "off";
123		};
124		led@18 {
125			label = "eth49:green";
126			gpios = <&sgpio_out1 17 0 GPIO_ACTIVE_HIGH>;
127			default-state = "off";
128		};
129		led@19 {
130			label = "eth49:yellow";
131			gpios = <&sgpio_out1 17 1 GPIO_ACTIVE_HIGH>;
132			default-state = "off";
133		};
134		led@20 {
135			label = "eth50:green";
136			gpios = <&sgpio_out1 18 0 GPIO_ACTIVE_HIGH>;
137			default-state = "off";
138		};
139		led@21 {
140			label = "eth50:yellow";
141			gpios = <&sgpio_out1 18 1 GPIO_ACTIVE_HIGH>;
142			default-state = "off";
143		};
144		led@22 {
145			label = "eth51:green";
146			gpios = <&sgpio_out1 19 0 GPIO_ACTIVE_HIGH>;
147			default-state = "off";
148		};
149		led@23 {
150			label = "eth51:yellow";
151			gpios = <&sgpio_out1 19 1 GPIO_ACTIVE_HIGH>;
152			default-state = "off";
153		};
154		led@24 {
155			label = "eth52:green";
156			gpios = <&sgpio_out1 20 0 GPIO_ACTIVE_HIGH>;
157			default-state = "off";
158		};
159		led@25 {
160			label = "eth52:yellow";
161			gpios = <&sgpio_out1 20 1 GPIO_ACTIVE_HIGH>;
162			default-state = "off";
163		};
164		led@26 {
165			label = "eth53:green";
166			gpios = <&sgpio_out1 21 0 GPIO_ACTIVE_HIGH>;
167			default-state = "off";
168		};
169		led@27 {
170			label = "eth53:yellow";
171			gpios = <&sgpio_out1 21 1 GPIO_ACTIVE_HIGH>;
172			default-state = "off";
173		};
174		led@28 {
175			label = "eth54:green";
176			gpios = <&sgpio_out1 22 0 GPIO_ACTIVE_HIGH>;
177			default-state = "off";
178		};
179		led@29 {
180			label = "eth54:yellow";
181			gpios = <&sgpio_out1 22 1 GPIO_ACTIVE_HIGH>;
182			default-state = "off";
183		};
184		led@30 {
185			label = "eth55:green";
186			gpios = <&sgpio_out1 23 0 GPIO_ACTIVE_HIGH>;
187			default-state = "off";
188		};
189		led@31 {
190			label = "eth55:yellow";
191			gpios = <&sgpio_out1 23 1 GPIO_ACTIVE_HIGH>;
192			default-state = "off";
193		};
194		led@32 {
195			label = "eth56:green";
196			gpios = <&sgpio_out1 24 0 GPIO_ACTIVE_HIGH>;
197			default-state = "off";
198		};
199		led@33 {
200			label = "eth56:yellow";
201			gpios = <&sgpio_out1 24 1 GPIO_ACTIVE_HIGH>;
202			default-state = "off";
203		};
204		led@34 {
205			label = "eth57:green";
206			gpios = <&sgpio_out1 25 0 GPIO_ACTIVE_HIGH>;
207			default-state = "off";
208		};
209		led@35 {
210			label = "eth57:yellow";
211			gpios = <&sgpio_out1 25 1 GPIO_ACTIVE_HIGH>;
212			default-state = "off";
213		};
214		led@36 {
215			label = "eth58:green";
216			gpios = <&sgpio_out1 26 0 GPIO_ACTIVE_HIGH>;
217			default-state = "off";
218		};
219		led@37 {
220			label = "eth58:yellow";
221			gpios = <&sgpio_out1 26 1 GPIO_ACTIVE_HIGH>;
222			default-state = "off";
223		};
224		led@38 {
225			label = "eth59:green";
226			gpios = <&sgpio_out1 27 0 GPIO_ACTIVE_HIGH>;
227			default-state = "off";
228		};
229		led@39 {
230			label = "eth59:yellow";
231			gpios = <&sgpio_out1 27 1 GPIO_ACTIVE_HIGH>;
232			default-state = "off";
233		};
234		led@40 {
235			label = "eth60:green";
236			gpios = <&sgpio_out1 28 0 GPIO_ACTIVE_HIGH>;
237			default-state = "off";
238		};
239		led@41 {
240			label = "eth60:yellow";
241			gpios = <&sgpio_out1 28 1 GPIO_ACTIVE_HIGH>;
242			default-state = "off";
243		};
244		led@42 {
245			label = "eth61:green";
246			gpios = <&sgpio_out1 29 0 GPIO_ACTIVE_HIGH>;
247			default-state = "off";
248		};
249		led@43 {
250			label = "eth61:yellow";
251			gpios = <&sgpio_out1 29 1 GPIO_ACTIVE_HIGH>;
252			default-state = "off";
253		};
254		led@44 {
255			label = "eth62:green";
256			gpios = <&sgpio_out1 30 0 GPIO_ACTIVE_HIGH>;
257			default-state = "off";
258		};
259		led@45 {
260			label = "eth62:yellow";
261			gpios = <&sgpio_out1 30 1 GPIO_ACTIVE_HIGH>;
262			default-state = "off";
263		};
264		led@46 {
265			label = "eth63:green";
266			gpios = <&sgpio_out1 31 0 GPIO_ACTIVE_HIGH>;
267			default-state = "off";
268		};
269		led@47 {
270			label = "eth63:yellow";
271			gpios = <&sgpio_out1 31 1 GPIO_ACTIVE_HIGH>;
272			default-state = "off";
273		};
274	};
275};
276
277&sgpio0 {
278	status = "okay";
279	microchip,sgpio-port-ranges = <8 15>;
280	gpio@0 {
281		ngpios = <64>;
282	};
283	gpio@1 {
284		ngpios = <64>;
285	};
286};
287
288&sgpio1 {
289	status = "okay";
290	microchip,sgpio-port-ranges = <24 31>;
291	gpio@0 {
292		ngpios = <64>;
293	};
294	gpio@1 {
295		ngpios = <64>;
296	};
297};
298
299&spi0 {
300	status = "okay";
301	spi@0 {
302		compatible = "spi-mux";
303		mux-controls = <&mux>;
304		#address-cells = <1>;
305		#size-cells = <0>;
306		reg = <0>;	/* CS0 */
307		spi-flash@9 {
308			compatible = "jedec,spi-nor";
309			spi-max-frequency = <8000000>;
310			reg = <0x9>;	/* SPI */
311		};
312	};
313};
314
315&spi0 {
316	status = "okay";
317	spi@0 {
318		compatible = "spi-mux";
319		mux-controls = <&mux>;
320		#address-cells = <1>;
321		#size-cells = <0>;
322		reg = <0>;	/* CS0 */
323		spi-flash@9 {
324			compatible = "jedec,spi-nor";
325			spi-max-frequency = <8000000>;
326			reg = <0x9>;	/* SPI */
327		};
328	};
329};
330
331&gpio {
332	i2cmux_pins_i: i2cmux-pins-i {
333	       pins = "GPIO_16", "GPIO_17", "GPIO_18", "GPIO_19",
334		      "GPIO_20", "GPIO_22", "GPIO_36", "GPIO_35",
335		      "GPIO_50", "GPIO_51", "GPIO_56", "GPIO_57";
336		function = "twi_scl_m";
337		output-low;
338	};
339	i2cmux_0: i2cmux-0 {
340		pins = "GPIO_16";
341		function = "twi_scl_m";
342		output-high;
343	};
344	i2cmux_1: i2cmux-1 {
345		pins = "GPIO_17";
346		function = "twi_scl_m";
347		output-high;
348	};
349	i2cmux_2: i2cmux-2 {
350		pins = "GPIO_18";
351		function = "twi_scl_m";
352		output-high;
353	};
354	i2cmux_3: i2cmux-3 {
355		pins = "GPIO_19";
356		function = "twi_scl_m";
357		output-high;
358	};
359	i2cmux_4: i2cmux-4 {
360		pins = "GPIO_20";
361		function = "twi_scl_m";
362		output-high;
363	};
364	i2cmux_5: i2cmux-5 {
365		pins = "GPIO_22";
366		function = "twi_scl_m";
367		output-high;
368	};
369	i2cmux_6: i2cmux-6 {
370		pins = "GPIO_36";
371		function = "twi_scl_m";
372		output-high;
373	};
374	i2cmux_7: i2cmux-7 {
375		pins = "GPIO_35";
376		function = "twi_scl_m";
377		output-high;
378	};
379	i2cmux_8: i2cmux-8 {
380		pins = "GPIO_50";
381		function = "twi_scl_m";
382		output-high;
383	};
384	i2cmux_9: i2cmux-9 {
385		pins = "GPIO_51";
386		function = "twi_scl_m";
387		output-high;
388	};
389	i2cmux_10: i2cmux-10 {
390		pins = "GPIO_56";
391		function = "twi_scl_m";
392		output-high;
393	};
394	i2cmux_11: i2cmux-11 {
395		pins = "GPIO_57";
396		function = "twi_scl_m";
397		output-high;
398	};
399};
400
401&axi {
402	i2c0_imux: i2c0-imux@0 {
403		compatible = "i2c-mux-pinctrl";
404		#address-cells = <1>;
405		#size-cells = <0>;
406		i2c-parent = <&i2c0>;
407	};
408	i2c0_emux: i2c0-emux@0 {
409		compatible = "i2c-mux-gpio";
410		#address-cells = <1>;
411		#size-cells = <0>;
412		i2c-parent = <&i2c0>;
413	};
414};
415
416&i2c0_imux {
417	pinctrl-names =
418		"i2c100", "i2c101", "i2c102", "i2c103",
419		"i2c104", "i2c105", "i2c106", "i2c107",
420		"i2c108", "i2c109", "i2c110", "i2c111", "idle";
421	pinctrl-0 = <&i2cmux_0>;
422	pinctrl-1 = <&i2cmux_1>;
423	pinctrl-2 = <&i2cmux_2>;
424	pinctrl-3 = <&i2cmux_3>;
425	pinctrl-4 = <&i2cmux_4>;
426	pinctrl-5 = <&i2cmux_5>;
427	pinctrl-6 = <&i2cmux_6>;
428	pinctrl-7 = <&i2cmux_7>;
429	pinctrl-8 = <&i2cmux_8>;
430	pinctrl-9 = <&i2cmux_9>;
431	pinctrl-10 = <&i2cmux_10>;
432	pinctrl-11 = <&i2cmux_11>;
433	pinctrl-12 = <&i2cmux_pins_i>;
434	i2c100: i2c_sfp1 {
435		reg = <0x0>;
436		#address-cells = <1>;
437		#size-cells = <0>;
438	};
439	i2c101: i2c_sfp2 {
440		reg = <0x1>;
441		#address-cells = <1>;
442		#size-cells = <0>;
443	};
444	i2c102: i2c_sfp3 {
445		reg = <0x2>;
446		#address-cells = <1>;
447		#size-cells = <0>;
448	};
449	i2c103: i2c_sfp4 {
450		reg = <0x3>;
451		#address-cells = <1>;
452		#size-cells = <0>;
453	};
454	i2c104: i2c_sfp5 {
455		reg = <0x4>;
456		#address-cells = <1>;
457		#size-cells = <0>;
458	};
459	i2c105: i2c_sfp6 {
460		reg = <0x5>;
461		#address-cells = <1>;
462		#size-cells = <0>;
463	};
464	i2c106: i2c_sfp7 {
465		reg = <0x6>;
466		#address-cells = <1>;
467		#size-cells = <0>;
468	};
469	i2c107: i2c_sfp8 {
470		reg = <0x7>;
471		#address-cells = <1>;
472		#size-cells = <0>;
473	};
474	i2c108: i2c_sfp9 {
475		reg = <0x8>;
476		#address-cells = <1>;
477		#size-cells = <0>;
478	};
479	i2c109: i2c_sfp10 {
480		reg = <0x9>;
481		#address-cells = <1>;
482		#size-cells = <0>;
483	};
484	i2c110: i2c_sfp11 {
485		reg = <0xa>;
486		#address-cells = <1>;
487		#size-cells = <0>;
488	};
489	i2c111: i2c_sfp12 {
490		reg = <0xb>;
491		#address-cells = <1>;
492		#size-cells = <0>;
493	};
494};
495
496&i2c0_emux {
497	mux-gpios = <&gpio 55 GPIO_ACTIVE_HIGH
498		     &gpio 60 GPIO_ACTIVE_HIGH
499		     &gpio 61 GPIO_ACTIVE_HIGH
500		     &gpio 54 GPIO_ACTIVE_HIGH>;
501	idle-state = <0x8>;
502	i2c112: i2c_sfp13 {
503		reg = <0x0>;
504		#address-cells = <1>;
505		#size-cells = <0>;
506	};
507	i2c113: i2c_sfp14 {
508		reg = <0x1>;
509		#address-cells = <1>;
510		#size-cells = <0>;
511	};
512	i2c114: i2c_sfp15 {
513		reg = <0x2>;
514		#address-cells = <1>;
515		#size-cells = <0>;
516	};
517	i2c115: i2c_sfp16 {
518		reg = <0x3>;
519		#address-cells = <1>;
520		#size-cells = <0>;
521	};
522	i2c116: i2c_sfp17 {
523		reg = <0x4>;
524		#address-cells = <1>;
525		#size-cells = <0>;
526	};
527	i2c117: i2c_sfp18 {
528		reg = <0x5>;
529		#address-cells = <1>;
530		#size-cells = <0>;
531	};
532	i2c118: i2c_sfp19 {
533		reg = <0x6>;
534		#address-cells = <1>;
535		#size-cells = <0>;
536	};
537	i2c119: i2c_sfp20 {
538		reg = <0x7>;
539		#address-cells = <1>;
540		#size-cells = <0>;
541	};
542};
543