GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / lan966x-kontron-kswitch-d10-mmt.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Common part of the device tree for the Kontron KSwitch D10 MMT
4  */
5
6 /dts-v1/;
7 #include "lan966x.dtsi"
8 #include "dt-bindings/phy/phy-lan966x-serdes.h"
9
10 / {
11         aliases {
12                 serial0 = &usart0;
13         };
14
15         chosen {
16                 stdout-path = "serial0:115200n8";
17         };
18
19         gpio-restart {
20                 compatible = "gpio-restart";
21                 pinctrl-0 = <&reset_pins>;
22                 pinctrl-names = "default";
23                 gpios = <&gpio 56 GPIO_ACTIVE_LOW>;
24                 priority = <200>;
25         };
26 };
27
28 &flx0 {
29         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
30         status = "okay";
31
32         usart0: serial@200 {
33                 pinctrl-0 = <&usart0_pins>;
34                 pinctrl-names = "default";
35                 status = "okay";
36         };
37 };
38
39 &flx3 {
40         atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_SPI>;
41         status = "okay";
42
43         spi3: spi@400 {
44                 pinctrl-0 = <&fc3_b_pins>, <&spi3_cs_pins>;
45                 pinctrl-names = "default";
46                 status = "okay";
47                 cs-gpios = <&gpio 46 GPIO_ACTIVE_LOW>;
48         };
49 };
50
51 &gpio {
52         fc3_b_pins: fc3-b-pins {
53                 /* SCK, MISO, MOSI */
54                 pins = "GPIO_51", "GPIO_52", "GPIO_53";
55                 function = "fc3_b";
56         };
57
58         miim_c_pins: miim-c-pins {
59                 /* MDC, MDIO */
60                 pins = "GPIO_59", "GPIO_60";
61                 function = "miim_c";
62         };
63
64         reset_pins: reset-pins {
65                 /* SYS_RST# */
66                 pins = "GPIO_56";
67                 function = "gpio";
68         };
69
70         sgpio_a_pins: sgpio-a-pins {
71                 /* SCK, D0, D1 */
72                 pins = "GPIO_32", "GPIO_33", "GPIO_34";
73                 function = "sgpio_a";
74         };
75
76         sgpio_b_pins: sgpio-b-pins {
77                 /* LD */
78                 pins = "GPIO_64";
79                 function = "sgpio_b";
80         };
81
82         spi3_cs_pins: spi3-cs-pins {
83                 /* CS# */
84                 pins = "GPIO_46";
85                 function = "gpio";
86         };
87
88         usart0_pins: usart0-pins {
89                 /* RXD, TXD */
90                 pins = "GPIO_25", "GPIO_26";
91                 function = "fc0_b";
92         };
93
94         usbs_a_pins: usbs-a-pins {
95                 /* VBUS_DET */
96                 pins = "GPIO_66";
97                 function = "gpio";
98         };
99 };
100
101 &mdio0 {
102         pinctrl-0 = <&miim_c_pins>;
103         pinctrl-names = "default";
104         reset-gpios = <&gpio 29 GPIO_ACTIVE_LOW>;
105         clock-frequency = <2500000>;
106         status = "okay";
107
108         phy4: ethernet-phy@5 {
109                 reg = <5>;
110                 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
111         };
112
113         phy5: ethernet-phy@6 {
114                 reg = <6>;
115                 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
116         };
117
118         phy6: ethernet-phy@7 {
119                 reg = <7>;
120                 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
121         };
122
123         phy7: ethernet-phy@8 {
124                 reg = <8>;
125                 coma-mode-gpios = <&gpio 37 GPIO_OPEN_DRAIN>;
126         };
127 };
128
129 &mdio1 {
130         status = "okay";
131 };
132
133 &phy0 {
134         status = "okay";
135 };
136
137 &phy1 {
138         status = "okay";
139 };
140
141 &port0 {
142         phys = <&serdes 0 CU(0)>;
143         phy-handle = <&phy0>;
144         phy-mode = "gmii";
145         status = "okay";
146 };
147
148 &port1 {
149         phys = <&serdes 1 CU(1)>;
150         phy-handle = <&phy1>;
151         phy-mode = "gmii";
152         status = "okay";
153 };
154
155 &port4 {
156         phys = <&serdes 4 SERDES6G(2)>;
157         phy-handle = <&phy4>;
158         phy-mode = "qsgmii";
159         status = "okay";
160 };
161
162 &port5 {
163         phys = <&serdes 5 SERDES6G(2)>;
164         phy-handle = <&phy5>;
165         phy-mode = "qsgmii";
166         status = "okay";
167 };
168
169 &port6 {
170         phys = <&serdes 6 SERDES6G(2)>;
171         phy-handle = <&phy6>;
172         phy-mode = "qsgmii";
173         status = "okay";
174 };
175
176 &port7 {
177         phys = <&serdes 7 SERDES6G(2)>;
178         phy-handle = <&phy7>;
179         phy-mode = "qsgmii";
180         status = "okay";
181 };
182
183 &serdes {
184         status = "okay";
185 };
186
187 &sgpio {
188         pinctrl-0 = <&sgpio_a_pins>, <&sgpio_b_pins>;
189         pinctrl-names = "default";
190         bus-frequency = <8000000>;
191         /* arbitrary range because all GPIOs are in software mode */
192         microchip,sgpio-port-ranges = <0 11>;
193         status = "okay";
194
195         sgpio_in: gpio@0 {
196                 ngpios = <128>;
197         };
198
199         sgpio_out: gpio@1 {
200                 ngpios = <128>;
201         };
202 };
203
204 &switch {
205         status = "okay";
206 };
207
208 &udc {
209         pinctrl-0 = <&usbs_a_pins>;
210         pinctrl-names = "default";
211         atmel,vbus-gpio = <&gpio 66 GPIO_ACTIVE_HIGH>;
212         status = "okay";
213 };
214
215 &watchdog {
216         status = "okay";
217 };