blob: 9f88583aa25ea7c07ae9f6ca7f11fe5a7904acc2 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2//
3// Device Tree file for LX2162A Clearfog
4//
5// Copyright 2023 Josua Mayer <josua@solid-run.com>
6
7/dts-v1/;
8
9#include "fsl-lx2160a.dtsi"
10#include "fsl-lx2162a-sr-som.dtsi"
11
12/ {
13 model = "SolidRun LX2162A Clearfog";
14 compatible = "solidrun,lx2162a-clearfog", "solidrun,lx2162a-som", "fsl,lx2160a";
15
16 aliases {
17 crypto = &crypto;
18 i2c0 = &i2c0;
19 i2c1 = &i2c2;
20 i2c2 = &i2c4;
21 i2c3 = &sfp_i2c0;
22 i2c4 = &sfp_i2c1;
23 i2c5 = &sfp_i2c2;
24 i2c6 = &sfp_i2c3;
25 i2c7 = &mpcie1_i2c;
26 i2c8 = &mpcie0_i2c;
27 i2c9 = &pcieclk_i2c;
28 mmc0 = &esdhc0;
29 mmc1 = &esdhc1;
30 serial0 = &uart0;
31 };
32
33 chosen {
34 stdout-path = "serial0:115200n8";
35 };
36
37 leds {
38 compatible = "gpio-leds";
39
40 led_sfp_at: led-sfp-at {
41 gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* PROC_IRQ5 */
42 default-state = "off";
43 };
44
45 led_sfp_ab: led-sfp-ab {
46 gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>; /* PROC_IRQ11 */
47 default-state = "off";
48 };
49
50 led_sfp_bt: led-sfp-bt {
51 gpios = <&gpio2 13 GPIO_ACTIVE_HIGH>; /* EVT1_B */
52 default-state = "off";
53 };
54
55 led_sfp_bb: led-sfp-bb {
56 gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; /* EVT2_B */
57 default-state = "off";
58 };
59 };
60
61 sfp_at: sfp-at {
62 compatible = "sff,sfp";
63 i2c-bus = <&sfp_i2c0>;
64 mod-def0-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>; /* EVT4_B */
65 maximum-power-milliwatt = <2000>;
66 };
67
68 sfp_ab: sfp-ab {
69 compatible = "sff,sfp";
70 i2c-bus = <&sfp_i2c1>;
71 mod-def0-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; /* PROC_IRQ1 */
72 maximum-power-milliwatt = <2000>;
73 };
74
75 sfp_bt: sfp-bt {
76 compatible = "sff,sfp";
77 i2c-bus = <&sfp_i2c2>;
78 mod-def0-gpios = <&gpio2 10 GPIO_ACTIVE_LOW>; /* PROC_IRQ10 */
79 maximum-power-milliwatt = <2000>;
80 };
81
82 sfp_bb: sfp-bb {
83 compatible = "sff,sfp";
84 i2c-bus = <&sfp_i2c3>;
85 mod-def0-gpios = <&gpio2 15 GPIO_ACTIVE_LOW>; /* EVT3_B */
86 maximum-power-milliwatt = <2000>;
87 };
88};
89
90&dpmac3 {
91 sfp = <&sfp_at>;
92 managed = "in-band-status";
93 phys = <&serdes_1 7>;
94};
95
96&dpmac4 {
97 sfp = <&sfp_ab>;
98 managed = "in-band-status";
99 phys = <&serdes_1 6>;
100};
101
102&dpmac5 {
103 sfp = <&sfp_bt>;
104 managed = "in-band-status";
105 phys = <&serdes_1 5>;
106};
107
108&dpmac6 {
109 sfp = <&sfp_bb>;
110 managed = "in-band-status";
111 phys = <&serdes_1 4>;
112};
113
114&dpmac11 {
115 phys = <&serdes_2 0>;
116 phy-handle = <&ethernet_phy3>;
117 phy-connection-type = "sgmii";
118 status = "okay";
119};
120
121&dpmac12 {
122 phys = <&serdes_2 1>;
123 phy-handle = <&ethernet_phy1>;
124 phy-connection-type = "sgmii";
125 status = "okay";
126};
127
128&dpmac13 {
129 phys = <&serdes_2 6>;
130 phy-handle = <&ethernet_phy6>;
131 phy-connection-type = "sgmii";
132 status = "okay";
133};
134
135&dpmac14 {
136 phys = <&serdes_2 7>;
137 phy-handle = <&ethernet_phy8>;
138 phy-connection-type = "sgmii";
139 status = "okay";
140};
141
142&dpmac15 {
143 phys = <&serdes_2 4>;
144 phy-handle = <&ethernet_phy4>;
145 phy-connection-type = "sgmii";
146 status = "okay";
147};
148
149&dpmac16 {
150 phys = <&serdes_2 5>;
151 phy-handle = <&ethernet_phy2>;
152 phy-connection-type = "sgmii";
153 status = "okay";
154};
155
156&dpmac17 {
157 /* override connection to on-SoM phy */
158 /delete-property/ phy-handle;
159 /delete-property/ phy-connection-type;
160
161 phys = <&serdes_2 2>;
162 phy-handle = <&ethernet_phy5>;
163 phy-connection-type = "sgmii";
164 status = "okay";
165};
166
167&dpmac18 {
168 phys = <&serdes_2 3>;
169 phy-handle = <&ethernet_phy7>;
170 phy-connection-type = "sgmii";
171 status = "okay";
172};
173
174&emdio1 {
175 ethernet_phy1: ethernet-phy@8 {
176 compatible = "ethernet-phy-ieee802.3-c45";
177 reg = <8>;
178 max-speed = <1000>;
179 };
180
181 ethernet_phy2: ethernet-phy@9 {
182 compatible = "ethernet-phy-ieee802.3-c45";
183 reg = <9>;
184 max-speed = <1000>;
185 };
186
187 ethernet_phy3: ethernet-phy@10 {
188 compatible = "ethernet-phy-ieee802.3-c45";
189 reg = <10>;
190 max-speed = <1000>;
191 };
192
193 ethernet_phy4: ethernet-phy@11 {
194 compatible = "ethernet-phy-ieee802.3-c45";
195 reg = <11>;
196 max-speed = <1000>;
197 };
198
199 ethernet_phy5: ethernet-phy@12 {
200 compatible = "ethernet-phy-ieee802.3-c45";
201 reg = <12>;
202 max-speed = <1000>;
203 };
204
205 ethernet_phy6: ethernet-phy@13 {
206 compatible = "ethernet-phy-ieee802.3-c45";
207 reg = <13>;
208 max-speed = <1000>;
209 };
210
211 ethernet_phy7: ethernet-phy@14 {
212 compatible = "ethernet-phy-ieee802.3-c45";
213 reg = <14>;
214 max-speed = <1000>;
215 };
216
217 ethernet_phy8: ethernet-phy@15 {
218 compatible = "ethernet-phy-ieee802.3-c45";
219 reg = <15>;
220 max-speed = <1000>;
221 };
222};
223
224&esdhc0 {
225 sd-uhs-sdr104;
226 sd-uhs-sdr50;
227 sd-uhs-sdr25;
228 sd-uhs-sdr12;
229 status = "okay";
230};
231
232&ethernet_phy0 {
233 /*
234 * SoM has a phy at address 1 connected to SoC Ethernet Controller 1.
235 * It competes for WRIOP MAC17, and no connector has been wired.
236 */
237 status = "disabled";
238};
239
240&i2c2 {
241 status = "okay";
242
243 /* retimer@18 */
244
245 i2c-mux@70 {
246 compatible = "nxp,pca9546";
247 reg = <0x70>;
248 #address-cells = <1>;
249 #size-cells = <0>;
250 i2c-mux-idle-disconnect;
251
252 sfp_i2c0: i2c@0 {
253 #address-cells = <1>;
254 #size-cells = <0>;
255 reg = <0>;
256 };
257
258 sfp_i2c1: i2c@1 {
259 #address-cells = <1>;
260 #size-cells = <0>;
261 reg = <1>;
262 };
263
264 sfp_i2c2: i2c@2 {
265 #address-cells = <1>;
266 #size-cells = <0>;
267 reg = <2>;
268 };
269
270 sfp_i2c3: i2c@3 {
271 #address-cells = <1>;
272 #size-cells = <0>;
273 reg = <3>;
274 };
275 };
276
277 i2c-mux@71 {
278 compatible = "nxp,pca9546";
279 reg = <0x71>;
280 #address-cells = <1>;
281 #size-cells = <0>;
282 i2c-mux-idle-disconnect;
283
284 mpcie1_i2c: i2c@0 {
285 #address-cells = <1>;
286 #size-cells = <0>;
287 reg = <0>;
288 };
289
290 mpcie0_i2c: i2c@1 {
291 #address-cells = <1>;
292 #size-cells = <0>;
293 reg = <1>;
294 };
295
296 pcieclk_i2c: i2c@2 {
297 #address-cells = <1>;
298 #size-cells = <0>;
299 reg = <2>;
300
301 /* clock-controller@6b */
302 };
303 };
304};
305
306&pcie3 {
307 status = "disabled";
308};
309
310&pcie4 {
311 status = "disabled";
312};
313
314&pcs_mdio3 {
315 status = "okay";
316};
317
318&pcs_mdio4 {
319 status = "okay";
320};
321
322&pcs_mdio5 {
323 status = "okay";
324};
325
326&pcs_mdio6 {
327 status = "okay";
328};
329
330&pcs_mdio11 {
331 status = "okay";
332};
333
334&pcs_mdio12 {
335 status = "okay";
336};
337
338&pcs_mdio13 {
339 status = "okay";
340};
341
342&pcs_mdio14 {
343 status = "okay";
344};
345
346&pcs_mdio15 {
347 status = "okay";
348};
349
350&pcs_mdio16 {
351 status = "okay";
352};
353
354&pcs_mdio17 {
355 status = "okay";
356};
357
358&pcs_mdio18 {
359 status = "okay";
360};
361
362&serdes_1 {
363 status = "okay";
364};
365
366&serdes_2 {
367 status = "okay";
368};
369
370&uart0 {
371 status = "okay";
372};
373
374&usb0 {
375 status = "okay";
376};