xref: /openbmc/linux/arch/arm/boot/dts/microchip/lan966x-kontron-kswitch-d10-mmt.dtsi (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2724ba675SRob Herring/*
3724ba675SRob Herring * Common part of the device tree for the Kontron KSwitch D10 MMT
4724ba675SRob Herring */
5724ba675SRob Herring
6724ba675SRob Herring/dts-v1/;
7724ba675SRob Herring#include "lan966x.dtsi"
8724ba675SRob Herring#include "dt-bindings/phy/phy-lan966x-serdes.h"
9724ba675SRob Herring
10724ba675SRob Herring/ {
11724ba675SRob Herring	aliases {
12724ba675SRob Herring		serial0 = &usart0;
13724ba675SRob Herring	};
14724ba675SRob Herring
15724ba675SRob Herring	chosen {
16724ba675SRob Herring		stdout-path = "serial0:115200n8";
17724ba675SRob Herring	};
18724ba675SRob Herring
19724ba675SRob Herring	gpio-restart {
20724ba675SRob Herring		compatible = "gpio-restart";
21*a4bd03e7SArnd Bergmann		pinctrl-0 = <&reset_pins>;
22*a4bd03e7SArnd Bergmann		pinctrl-names = "default";
23724ba675SRob Herring		gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
24724ba675SRob Herring		priority = <200>;
25724ba675SRob Herring	};
26724ba675SRob Herring};
27724ba675SRob Herring
28724ba675SRob Herring&flx0 {
29724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
30724ba675SRob Herring	status = "okay";
31724ba675SRob Herring
32724ba675SRob Herring	usart0: serial@200 {
33724ba675SRob Herring		pinctrl-0 = <&usart0_pins>;
34724ba675SRob Herring		pinctrl-names = "default";
35724ba675SRob Herring		status = "okay";
36724ba675SRob Herring	};
37724ba675SRob Herring};
38724ba675SRob Herring
39724ba675SRob Herring&flx3 {
40724ba675SRob Herring	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
41724ba675SRob Herring	status = "okay";
42724ba675SRob Herring
43724ba675SRob Herring	spi3: spi@400 {
44*a4bd03e7SArnd Bergmann		pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>;
45724ba675SRob Herring		pinctrl-names = "default";
46724ba675SRob Herring		status = "okay";
47724ba675SRob Herring		cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
48724ba675SRob Herring	};
49724ba675SRob Herring};
50724ba675SRob Herring
51724ba675SRob Herring&gpio {
52*a4bd03e7SArnd Bergmann	pinctrl-0 = <&phy_int_pins>;
53*a4bd03e7SArnd Bergmann	pinctrl-names = "default";
54*a4bd03e7SArnd Bergmann
55724ba675SRob Herring	fc3_b_pins: fc3-b-pins {
56724ba675SRob Herring		/* SCK, MISO, MOSI */
57724ba675SRob Herring		pins = "GPIO_51", "GPIO_52", "GPIO_53";
58724ba675SRob Herring		function = "fc3_b";
59724ba675SRob Herring	};
60724ba675SRob Herring
61724ba675SRob Herring	miim_c_pins: miim-c-pins {
62724ba675SRob Herring		/* MDC, MDIO */
63724ba675SRob Herring		pins = "GPIO_59", "GPIO_60";
64724ba675SRob Herring		function = "miim_c";
65724ba675SRob Herring	};
66724ba675SRob Herring
67*a4bd03e7SArnd Bergmann	phy_int_pins: phy-int-pins {
68*a4bd03e7SArnd Bergmann		/* PHY_INT# */
69*a4bd03e7SArnd Bergmann		pins = "GPIO_24";
70*a4bd03e7SArnd Bergmann		function = "gpio";
71*a4bd03e7SArnd Bergmann	};
72*a4bd03e7SArnd Bergmann
73*a4bd03e7SArnd Bergmann	reset_pins: reset-pins {
74*a4bd03e7SArnd Bergmann		/* SYS_RST# */
75*a4bd03e7SArnd Bergmann		pins = "GPIO_56";
76*a4bd03e7SArnd Bergmann		function = "gpio";
77*a4bd03e7SArnd Bergmann	};
78*a4bd03e7SArnd Bergmann
79724ba675SRob Herring	sgpio_a_pins: sgpio-a-pins {
80724ba675SRob Herring		/* SCK, D0, D1 */
81724ba675SRob Herring		pins = "GPIO_32", "GPIO_33", "GPIO_34";
82724ba675SRob Herring		function = "sgpio_a";
83724ba675SRob Herring	};
84724ba675SRob Herring
85724ba675SRob Herring	sgpio_b_pins: sgpio-b-pins {
86724ba675SRob Herring		/* LD */
87724ba675SRob Herring		pins = "GPIO_64";
88724ba675SRob Herring		function = "sgpio_b";
89724ba675SRob Herring	};
90724ba675SRob Herring
91*a4bd03e7SArnd Bergmann	spi3_cs_pins: spi3-cs-pins {
92*a4bd03e7SArnd Bergmann		/* CS# */
93*a4bd03e7SArnd Bergmann		pins = "GPIO_46";
94*a4bd03e7SArnd Bergmann		function = "gpio";
95*a4bd03e7SArnd Bergmann	};
96*a4bd03e7SArnd Bergmann
97724ba675SRob Herring	usart0_pins: usart0-pins {
98724ba675SRob Herring		/* RXD, TXD */
99724ba675SRob Herring		pins = "GPIO_25", "GPIO_26";
100724ba675SRob Herring		function = "fc0_b";
101724ba675SRob Herring	};
102724ba675SRob Herring
103724ba675SRob Herring	usbs_a_pins: usbs-a-pins {
104724ba675SRob Herring		/* VBUS_DET */
105724ba675SRob Herring		pins = "GPIO_66";
106724ba675SRob Herring		function = "gpio";
107724ba675SRob Herring	};
108724ba675SRob Herring};
109724ba675SRob Herring
110724ba675SRob Herring&mdio0 {
111724ba675SRob Herring	pinctrl-0 = <&miim_c_pins>;
112724ba675SRob Herring	pinctrl-names = "default";
113724ba675SRob Herring	reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
114724ba675SRob Herring	clock-frequency = <2500000>;
115724ba675SRob Herring	status = "okay";
116724ba675SRob Herring
117724ba675SRob Herring	phy4: ethernet-phy@5 {
118724ba675SRob Herring		reg = <5>;
119*a4bd03e7SArnd Bergmann		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
120724ba675SRob Herring		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
121724ba675SRob Herring	};
122724ba675SRob Herring
123724ba675SRob Herring	phy5: ethernet-phy@6 {
124724ba675SRob Herring		reg = <6>;
125*a4bd03e7SArnd Bergmann		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
126724ba675SRob Herring		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
127724ba675SRob Herring	};
128724ba675SRob Herring
129724ba675SRob Herring	phy6: ethernet-phy@7 {
130724ba675SRob Herring		reg = <7>;
131*a4bd03e7SArnd Bergmann		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
132724ba675SRob Herring		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
133724ba675SRob Herring	};
134724ba675SRob Herring
135724ba675SRob Herring	phy7: ethernet-phy@8 {
136724ba675SRob Herring		reg = <8>;
137*a4bd03e7SArnd Bergmann		interrupts-extended = <&gpio 24 IRQ_TYPE_LEVEL_LOW>;
138724ba675SRob Herring		coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
139724ba675SRob Herring	};
140724ba675SRob Herring};
141724ba675SRob Herring
142724ba675SRob Herring&mdio1 {
143724ba675SRob Herring	status = "okay";
144724ba675SRob Herring};
145724ba675SRob Herring
146724ba675SRob Herring&phy0 {
147724ba675SRob Herring	status = "okay";
148724ba675SRob Herring};
149724ba675SRob Herring
150724ba675SRob Herring&phy1 {
151724ba675SRob Herring	status = "okay";
152724ba675SRob Herring};
153724ba675SRob Herring
154724ba675SRob Herring&port0 {
155724ba675SRob Herring	phys = <&serdes 0 CU(0)>;
156724ba675SRob Herring	phy-handle = <&phy0>;
157724ba675SRob Herring	phy-mode = "gmii";
158724ba675SRob Herring	status = "okay";
159724ba675SRob Herring};
160724ba675SRob Herring
161724ba675SRob Herring&port1 {
162724ba675SRob Herring	phys = <&serdes 1 CU(1)>;
163724ba675SRob Herring	phy-handle = <&phy1>;
164724ba675SRob Herring	phy-mode = "gmii";
165724ba675SRob Herring	status = "okay";
166724ba675SRob Herring};
167724ba675SRob Herring
168724ba675SRob Herring&port4 {
169724ba675SRob Herring	phys = <&serdes 4 SERDES6G(2)>;
170724ba675SRob Herring	phy-handle = <&phy4>;
171724ba675SRob Herring	phy-mode = "qsgmii";
172724ba675SRob Herring	status = "okay";
173724ba675SRob Herring};
174724ba675SRob Herring
175724ba675SRob Herring&port5 {
176724ba675SRob Herring	phys = <&serdes 5 SERDES6G(2)>;
177724ba675SRob Herring	phy-handle = <&phy5>;
178724ba675SRob Herring	phy-mode = "qsgmii";
179724ba675SRob Herring	status = "okay";
180724ba675SRob Herring};
181724ba675SRob Herring
182724ba675SRob Herring&port6 {
183724ba675SRob Herring	phys = <&serdes 6 SERDES6G(2)>;
184724ba675SRob Herring	phy-handle = <&phy6>;
185724ba675SRob Herring	phy-mode = "qsgmii";
186724ba675SRob Herring	status = "okay";
187724ba675SRob Herring};
188724ba675SRob Herring
189724ba675SRob Herring&port7 {
190724ba675SRob Herring	phys = <&serdes 7 SERDES6G(2)>;
191724ba675SRob Herring	phy-handle = <&phy7>;
192724ba675SRob Herring	phy-mode = "qsgmii";
193724ba675SRob Herring	status = "okay";
194724ba675SRob Herring};
195724ba675SRob Herring
196724ba675SRob Herring&serdes {
197724ba675SRob Herring	status = "okay";
198724ba675SRob Herring};
199724ba675SRob Herring
200724ba675SRob Herring&sgpio {
201724ba675SRob Herring	pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>;
202724ba675SRob Herring	pinctrl-names = "default";
203724ba675SRob Herring	bus-frequency = <8000000>;
204724ba675SRob Herring	/* arbitrary range because all GPIOs are in software mode */
205724ba675SRob Herring	microchip,sgpio-port-ranges = <0 11>;
206724ba675SRob Herring	status = "okay";
207724ba675SRob Herring
208724ba675SRob Herring	sgpio_in: gpio@0 {
209724ba675SRob Herring		ngpios = <128>;
210724ba675SRob Herring	};
211724ba675SRob Herring
212724ba675SRob Herring	sgpio_out: gpio@1 {
213724ba675SRob Herring		ngpios = <128>;
214724ba675SRob Herring	};
215724ba675SRob Herring};
216724ba675SRob Herring
217724ba675SRob Herring&switch {
218724ba675SRob Herring	status = "okay";
219724ba675SRob Herring};
220724ba675SRob Herring
221724ba675SRob Herring&udc {
222724ba675SRob Herring	pinctrl-0 = <&usbs_a_pins>;
223724ba675SRob Herring	pinctrl-names = "default";
224724ba675SRob Herring	atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>;
225724ba675SRob Herring	status = "okay";
226724ba675SRob Herring};
227724ba675SRob Herring
228724ba675SRob Herring&watchdog {
229724ba675SRob Herring	status = "okay";
230724ba675SRob Herring};
231