xref: /freebsd/sys/contrib/device-tree/src/arm64/marvell/cn9132-clearfog.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
4*0e8011faSEmmanuel Vadot *
5*0e8011faSEmmanuel Vadot * DTS for SolidRun CN9132 Clearfog.
6*0e8011faSEmmanuel Vadot *
7*0e8011faSEmmanuel Vadot */
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadot/dts-v1/;
10*0e8011faSEmmanuel Vadot
11*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h>
12*0e8011faSEmmanuel Vadot#include <dt-bindings/leds/common.h>
13*0e8011faSEmmanuel Vadot
14*0e8011faSEmmanuel Vadot#include "cn9130.dtsi"
15*0e8011faSEmmanuel Vadot#include "cn9132-sr-cex7.dtsi"
16*0e8011faSEmmanuel Vadot
17*0e8011faSEmmanuel Vadot/ {
18*0e8011faSEmmanuel Vadot	model = "SolidRun CN9132 Clearfog";
19*0e8011faSEmmanuel Vadot	compatible = "solidrun,cn9132-clearfog",
20*0e8011faSEmmanuel Vadot		     "solidrun,cn9132-sr-cex7", "marvell,cn9130";
21*0e8011faSEmmanuel Vadot
22*0e8011faSEmmanuel Vadot	aliases {
23*0e8011faSEmmanuel Vadot		ethernet1 = &cp0_eth2;
24*0e8011faSEmmanuel Vadot		ethernet2 = &cp0_eth0;
25*0e8011faSEmmanuel Vadot		ethernet3 = &cp2_eth0;
26*0e8011faSEmmanuel Vadot		ethernet4 = &cp1_eth0;
27*0e8011faSEmmanuel Vadot		i2c7 = &carrier_mpcie_i2c;
28*0e8011faSEmmanuel Vadot		i2c8 = &carrier_ptp_i2c;
29*0e8011faSEmmanuel Vadot		mmc1 = &cp0_sdhci0;
30*0e8011faSEmmanuel Vadot	};
31*0e8011faSEmmanuel Vadot
32*0e8011faSEmmanuel Vadot	gpio-keys {
33*0e8011faSEmmanuel Vadot		compatible = "gpio-keys";
34*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
35*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_wake0_pins>;
36*0e8011faSEmmanuel Vadot
37*0e8011faSEmmanuel Vadot		button-0 {
38*0e8011faSEmmanuel Vadot			label = "SW2";
39*0e8011faSEmmanuel Vadot			gpios = <&cp1_gpio2 8 GPIO_ACTIVE_LOW>;
40*0e8011faSEmmanuel Vadot			linux,can-disable;
41*0e8011faSEmmanuel Vadot			linux,code = <BTN_2>;
42*0e8011faSEmmanuel Vadot		};
43*0e8011faSEmmanuel Vadot	};
44*0e8011faSEmmanuel Vadot
45*0e8011faSEmmanuel Vadot	leds {
46*0e8011faSEmmanuel Vadot		compatible = "gpio-leds";
47*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
48*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_batlow_pins &cp2_rsvd4_pins>;
49*0e8011faSEmmanuel Vadot
50*0e8011faSEmmanuel Vadot		/* LED11 */
51*0e8011faSEmmanuel Vadot		led-io-0 {
52*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
53*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_DISK;
54*0e8011faSEmmanuel Vadot			function-enumerator = <0>;
55*0e8011faSEmmanuel Vadot			default-state = "off";
56*0e8011faSEmmanuel Vadot			gpios = <&cp1_gpio1 11 GPIO_ACTIVE_HIGH>;
57*0e8011faSEmmanuel Vadot		};
58*0e8011faSEmmanuel Vadot
59*0e8011faSEmmanuel Vadot		/* LED12 */
60*0e8011faSEmmanuel Vadot		led-io-1 {
61*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
62*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_DISK;
63*0e8011faSEmmanuel Vadot			function-enumerator = <1>;
64*0e8011faSEmmanuel Vadot			default-state = "off";
65*0e8011faSEmmanuel Vadot			gpios = <&cp2_gpio1 4 GPIO_ACTIVE_HIGH>;
66*0e8011faSEmmanuel Vadot		};
67*0e8011faSEmmanuel Vadot	};
68*0e8011faSEmmanuel Vadot
69*0e8011faSEmmanuel Vadot	/* CON4 W_DISABLE1/W_DISABLE2 */
70*0e8011faSEmmanuel Vadot	rfkill-m2-wlan {
71*0e8011faSEmmanuel Vadot		compatible = "rfkill-gpio";
72*0e8011faSEmmanuel Vadot		label = "m.2 wlan (CON4)";
73*0e8011faSEmmanuel Vadot		radio-type = "wlan";
74*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
75*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_10g_phy_rst_01_pins>;
76*0e8011faSEmmanuel Vadot		/* rfkill-gpio inverts internally */
77*0e8011faSEmmanuel Vadot		shutdown-gpios = <&cp1_gpio2 11 GPIO_ACTIVE_HIGH>;
78*0e8011faSEmmanuel Vadot	};
79*0e8011faSEmmanuel Vadot
80*0e8011faSEmmanuel Vadot	/* CON5 W_DISABLE1/W_DISABLE2 */
81*0e8011faSEmmanuel Vadot	rfkill-m2-wlan {
82*0e8011faSEmmanuel Vadot		compatible = "rfkill-gpio";
83*0e8011faSEmmanuel Vadot		label = "m.2 wlan (CON5)";
84*0e8011faSEmmanuel Vadot		radio-type = "wlan";
85*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
86*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_10g_phy_rst_23_pins>;
87*0e8011faSEmmanuel Vadot		/* rfkill-gpio inverts internally */
88*0e8011faSEmmanuel Vadot		shutdown-gpios = <&cp1_gpio2 10 GPIO_ACTIVE_HIGH>;
89*0e8011faSEmmanuel Vadot	};
90*0e8011faSEmmanuel Vadot
91*0e8011faSEmmanuel Vadot	/* J21 W_DISABLE1 */
92*0e8011faSEmmanuel Vadot	rfkill-m2-wwan {
93*0e8011faSEmmanuel Vadot		compatible = "rfkill-gpio";
94*0e8011faSEmmanuel Vadot		label = "m.2 wwan (J21)";
95*0e8011faSEmmanuel Vadot		radio-type = "wwan";
96*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
97*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp2_rsvd3_pins>;
98*0e8011faSEmmanuel Vadot		/* rfkill-gpio inverts internally */
99*0e8011faSEmmanuel Vadot		shutdown-gpios = <&cp2_gpio1 3 GPIO_ACTIVE_HIGH>;
100*0e8011faSEmmanuel Vadot	};
101*0e8011faSEmmanuel Vadot
102*0e8011faSEmmanuel Vadot	/* J21 W_DISABLE1 */
103*0e8011faSEmmanuel Vadot	rfkill-m2-gnss {
104*0e8011faSEmmanuel Vadot		compatible = "rfkill-gpio";
105*0e8011faSEmmanuel Vadot		label = "m.2 gnss (J21)";
106*0e8011faSEmmanuel Vadot		radio-type = "gps";
107*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
108*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp2_rsvd8_pins>;
109*0e8011faSEmmanuel Vadot		/* rfkill-gpio inverts internally */
110*0e8011faSEmmanuel Vadot		shutdown-gpios = <&cp2_gpio1 8 GPIO_ACTIVE_HIGH>;
111*0e8011faSEmmanuel Vadot	};
112*0e8011faSEmmanuel Vadot
113*0e8011faSEmmanuel Vadot	/* J14 W_DISABLE */
114*0e8011faSEmmanuel Vadot	rfkill-mpcie-wlan {
115*0e8011faSEmmanuel Vadot		compatible = "rfkill-gpio";
116*0e8011faSEmmanuel Vadot		label = "mpcie wlan (J14)";
117*0e8011faSEmmanuel Vadot		radio-type = "wlan";
118*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
119*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp2_rsvd2_pins>;
120*0e8011faSEmmanuel Vadot		/* rfkill-gpio inverts internally */
121*0e8011faSEmmanuel Vadot		shutdown-gpios = <&cp2_gpio1 2 GPIO_ACTIVE_HIGH>;
122*0e8011faSEmmanuel Vadot	};
123*0e8011faSEmmanuel Vadot
124*0e8011faSEmmanuel Vadot	sfp: sfp {
125*0e8011faSEmmanuel Vadot		compatible = "sff,sfp";
126*0e8011faSEmmanuel Vadot		i2c-bus = <&com_10g_sfp_i2c0>;
127*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
128*0e8011faSEmmanuel Vadot		pinctrl-0 = <&com_10g_int0_pins>;
129*0e8011faSEmmanuel Vadot		mod-def0-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_LOW>;
130*0e8011faSEmmanuel Vadot		maximum-power-milliwatt = <2000>;
131*0e8011faSEmmanuel Vadot	};
132*0e8011faSEmmanuel Vadot};
133*0e8011faSEmmanuel Vadot
134*0e8011faSEmmanuel Vadot&com_smbus {
135*0e8011faSEmmanuel Vadot	/* This bus is also routed to STM32 BMC Microcontroller (U2) */
136*0e8011faSEmmanuel Vadot
137*0e8011faSEmmanuel Vadot	power-sensor@40 {
138*0e8011faSEmmanuel Vadot		compatible = "ti,ina220";
139*0e8011faSEmmanuel Vadot		reg = <0x40>;
140*0e8011faSEmmanuel Vadot		#io-channel-cells = <1>;
141*0e8011faSEmmanuel Vadot		label = "vdd_12v0";
142*0e8011faSEmmanuel Vadot		shunt-resistor = <2000>;
143*0e8011faSEmmanuel Vadot	};
144*0e8011faSEmmanuel Vadot
145*0e8011faSEmmanuel Vadot	adc@48 {
146*0e8011faSEmmanuel Vadot		compatible = "ti,tla2021";
147*0e8011faSEmmanuel Vadot		reg = <0x48>;
148*0e8011faSEmmanuel Vadot		#address-cells = <1>;
149*0e8011faSEmmanuel Vadot		#size-cells = <0>;
150*0e8011faSEmmanuel Vadot
151*0e8011faSEmmanuel Vadot		/* supplied by chaoskey hardware noise generator circuit */
152*0e8011faSEmmanuel Vadot		channel@0 {
153*0e8011faSEmmanuel Vadot			reg = <0>;
154*0e8011faSEmmanuel Vadot		};
155*0e8011faSEmmanuel Vadot	};
156*0e8011faSEmmanuel Vadot};
157*0e8011faSEmmanuel Vadot
158*0e8011faSEmmanuel Vadot&cp0_eth_phy0 {
159*0e8011faSEmmanuel Vadot	/*
160*0e8011faSEmmanuel Vadot	 * Configure LEDs default behaviour:
161*0e8011faSEmmanuel Vadot	 * - LED[0]: link is 1000Mbps: On (yellow): 0111
162*0e8011faSEmmanuel Vadot	 * - LED[1]: link/activity: On/Blink (green): 0001
163*0e8011faSEmmanuel Vadot	 * - LED[2]: Off (green): 1000
164*0e8011faSEmmanuel Vadot	 */
165*0e8011faSEmmanuel Vadot	marvell,reg-init = <3 16 0xf000 0x0817>;
166*0e8011faSEmmanuel Vadot
167*0e8011faSEmmanuel Vadot	leds {
168*0e8011faSEmmanuel Vadot		#address-cells = <1>;
169*0e8011faSEmmanuel Vadot		#size-cells = <0>;
170*0e8011faSEmmanuel Vadot
171*0e8011faSEmmanuel Vadot		led@0 {
172*0e8011faSEmmanuel Vadot			/* link */
173*0e8011faSEmmanuel Vadot			reg = <0>;
174*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_YELLOW>;
175*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_LAN;
176*0e8011faSEmmanuel Vadot			default-state = "keep";
177*0e8011faSEmmanuel Vadot		};
178*0e8011faSEmmanuel Vadot
179*0e8011faSEmmanuel Vadot		led@1 {
180*0e8011faSEmmanuel Vadot			/* act */
181*0e8011faSEmmanuel Vadot			reg = <1>;
182*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
183*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_LAN;
184*0e8011faSEmmanuel Vadot			default-state = "keep";
185*0e8011faSEmmanuel Vadot		};
186*0e8011faSEmmanuel Vadot
187*0e8011faSEmmanuel Vadot		led@2 {
188*0e8011faSEmmanuel Vadot			/* 1000 */
189*0e8011faSEmmanuel Vadot			reg = <2>;
190*0e8011faSEmmanuel Vadot			color = <LED_COLOR_ID_GREEN>;
191*0e8011faSEmmanuel Vadot			function = LED_FUNCTION_LAN;
192*0e8011faSEmmanuel Vadot			default-state = "keep";
193*0e8011faSEmmanuel Vadot		};
194*0e8011faSEmmanuel Vadot	};
195*0e8011faSEmmanuel Vadot};
196*0e8011faSEmmanuel Vadot
197*0e8011faSEmmanuel Vadot/* SRDS #4 - 10GE */
198*0e8011faSEmmanuel Vadot&cp0_eth0 {
199*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy4 0>;
200*0e8011faSEmmanuel Vadot	phy-mode = "10gbase-r";
201*0e8011faSEmmanuel Vadot	managed = "in-band-status";
202*0e8011faSEmmanuel Vadot	sfp = <&sfp>;
203*0e8011faSEmmanuel Vadot	status = "okay";
204*0e8011faSEmmanuel Vadot};
205*0e8011faSEmmanuel Vadot
206*0e8011faSEmmanuel Vadot&cp0_eth2 {
207*0e8011faSEmmanuel Vadot	phy-mode = "2500base-x";
208*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy5 2>;
209*0e8011faSEmmanuel Vadot	status = "okay";
210*0e8011faSEmmanuel Vadot
211*0e8011faSEmmanuel Vadot	fixed-link {
212*0e8011faSEmmanuel Vadot		speed = <2500>;
213*0e8011faSEmmanuel Vadot		full-duplex;
214*0e8011faSEmmanuel Vadot		pause;
215*0e8011faSEmmanuel Vadot	};
216*0e8011faSEmmanuel Vadot};
217*0e8011faSEmmanuel Vadot
218*0e8011faSEmmanuel Vadot&cp0_i2c1 {
219*0e8011faSEmmanuel Vadot	/*
220*0e8011faSEmmanuel Vadot	 * Both COM and Carrier Board have a PCA9547 i2c mux at 0x77.
221*0e8011faSEmmanuel Vadot	 * Describe them as a single device merging each child bus.
222*0e8011faSEmmanuel Vadot	 */
223*0e8011faSEmmanuel Vadot
224*0e8011faSEmmanuel Vadot	i2c-mux@77 {
225*0e8011faSEmmanuel Vadot		i2c@0 {
226*0e8011faSEmmanuel Vadot			/* Routed to Full PCIe (J4) */
227*0e8011faSEmmanuel Vadot		};
228*0e8011faSEmmanuel Vadot
229*0e8011faSEmmanuel Vadot		i2c@1 {
230*0e8011faSEmmanuel Vadot			/* Routed to USB Hub (U29) */
231*0e8011faSEmmanuel Vadot		};
232*0e8011faSEmmanuel Vadot
233*0e8011faSEmmanuel Vadot		i2c@2 {
234*0e8011faSEmmanuel Vadot			/* Routed to M.2 (CON4) */
235*0e8011faSEmmanuel Vadot		};
236*0e8011faSEmmanuel Vadot
237*0e8011faSEmmanuel Vadot		i2c@3 {
238*0e8011faSEmmanuel Vadot			/* Routed to M.2 (CON5) */
239*0e8011faSEmmanuel Vadot		};
240*0e8011faSEmmanuel Vadot
241*0e8011faSEmmanuel Vadot		i2c@4 {
242*0e8011faSEmmanuel Vadot			/* Routed to M.2 (J21) */
243*0e8011faSEmmanuel Vadot		};
244*0e8011faSEmmanuel Vadot
245*0e8011faSEmmanuel Vadot		carrier_mpcie_i2c: i2c@5 {
246*0e8011faSEmmanuel Vadot			#address-cells = <1>;
247*0e8011faSEmmanuel Vadot			#size-cells = <0>;
248*0e8011faSEmmanuel Vadot			reg = <5>;
249*0e8011faSEmmanuel Vadot
250*0e8011faSEmmanuel Vadot			/* Routed to mini-PCIe (J14) */
251*0e8011faSEmmanuel Vadot		};
252*0e8011faSEmmanuel Vadot
253*0e8011faSEmmanuel Vadot		carrier_ptp_i2c: i2c@6 {
254*0e8011faSEmmanuel Vadot			#address-cells = <1>;
255*0e8011faSEmmanuel Vadot			#size-cells = <0>;
256*0e8011faSEmmanuel Vadot			reg = <6>;
257*0e8011faSEmmanuel Vadot
258*0e8011faSEmmanuel Vadot			/* Routed to various optional PTP related components */
259*0e8011faSEmmanuel Vadot		};
260*0e8011faSEmmanuel Vadot	};
261*0e8011faSEmmanuel Vadot};
262*0e8011faSEmmanuel Vadot
263*0e8011faSEmmanuel Vadot&cp0_mdio {
264*0e8011faSEmmanuel Vadot	ethernet-switch@4 {
265*0e8011faSEmmanuel Vadot		compatible = "marvell,mv88e6085";
266*0e8011faSEmmanuel Vadot		reg = <4>;
267*0e8011faSEmmanuel Vadot
268*0e8011faSEmmanuel Vadot		mdio {
269*0e8011faSEmmanuel Vadot			#address-cells = <1>;
270*0e8011faSEmmanuel Vadot			#size-cells = <0>;
271*0e8011faSEmmanuel Vadot
272*0e8011faSEmmanuel Vadot			sw_phy1: ethernet-phy@1 {
273*0e8011faSEmmanuel Vadot				reg = <0x11>;
274*0e8011faSEmmanuel Vadot			};
275*0e8011faSEmmanuel Vadot
276*0e8011faSEmmanuel Vadot			sw_phy2: ethernet-phy@2 {
277*0e8011faSEmmanuel Vadot				reg = <0x12>;
278*0e8011faSEmmanuel Vadot			};
279*0e8011faSEmmanuel Vadot
280*0e8011faSEmmanuel Vadot			sw_phy3: ethernet-phy@3 {
281*0e8011faSEmmanuel Vadot				reg = <0x13>;
282*0e8011faSEmmanuel Vadot			};
283*0e8011faSEmmanuel Vadot
284*0e8011faSEmmanuel Vadot			sw_phy4: ethernet-phy@4 {
285*0e8011faSEmmanuel Vadot				reg = <0x14>;
286*0e8011faSEmmanuel Vadot			};
287*0e8011faSEmmanuel Vadot		};
288*0e8011faSEmmanuel Vadot
289*0e8011faSEmmanuel Vadot		ethernet-ports {
290*0e8011faSEmmanuel Vadot			#address-cells = <1>;
291*0e8011faSEmmanuel Vadot			#size-cells = <0>;
292*0e8011faSEmmanuel Vadot
293*0e8011faSEmmanuel Vadot			ethernet-port@1 {
294*0e8011faSEmmanuel Vadot				reg = <1>;
295*0e8011faSEmmanuel Vadot				label = "lan1";
296*0e8011faSEmmanuel Vadot				phy-handle = <&sw_phy1>;
297*0e8011faSEmmanuel Vadot				phy-mode = "internal";
298*0e8011faSEmmanuel Vadot
299*0e8011faSEmmanuel Vadot				leds {
300*0e8011faSEmmanuel Vadot					#address-cells = <1>;
301*0e8011faSEmmanuel Vadot					#size-cells = <0>;
302*0e8011faSEmmanuel Vadot
303*0e8011faSEmmanuel Vadot					led@0 {
304*0e8011faSEmmanuel Vadot						reg = <0>;
305*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_GREEN>;
306*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
307*0e8011faSEmmanuel Vadot						default-state = "keep";
308*0e8011faSEmmanuel Vadot					};
309*0e8011faSEmmanuel Vadot
310*0e8011faSEmmanuel Vadot					led@1 {
311*0e8011faSEmmanuel Vadot						reg = <1>;
312*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_YELLOW>;
313*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
314*0e8011faSEmmanuel Vadot						default-state = "keep";
315*0e8011faSEmmanuel Vadot					};
316*0e8011faSEmmanuel Vadot				};
317*0e8011faSEmmanuel Vadot			};
318*0e8011faSEmmanuel Vadot
319*0e8011faSEmmanuel Vadot			ethernet-port@2 {
320*0e8011faSEmmanuel Vadot				reg = <2>;
321*0e8011faSEmmanuel Vadot				label = "lan2";
322*0e8011faSEmmanuel Vadot				phy-handle = <&sw_phy2>;
323*0e8011faSEmmanuel Vadot				phy-mode = "internal";
324*0e8011faSEmmanuel Vadot
325*0e8011faSEmmanuel Vadot				leds {
326*0e8011faSEmmanuel Vadot					#address-cells = <1>;
327*0e8011faSEmmanuel Vadot					#size-cells = <0>;
328*0e8011faSEmmanuel Vadot
329*0e8011faSEmmanuel Vadot					led@0 {
330*0e8011faSEmmanuel Vadot						reg = <0>;
331*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_GREEN>;
332*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
333*0e8011faSEmmanuel Vadot						default-state = "keep";
334*0e8011faSEmmanuel Vadot					};
335*0e8011faSEmmanuel Vadot
336*0e8011faSEmmanuel Vadot					led@1 {
337*0e8011faSEmmanuel Vadot						reg = <1>;
338*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_YELLOW>;
339*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
340*0e8011faSEmmanuel Vadot						default-state = "keep";
341*0e8011faSEmmanuel Vadot					};
342*0e8011faSEmmanuel Vadot				};
343*0e8011faSEmmanuel Vadot			};
344*0e8011faSEmmanuel Vadot
345*0e8011faSEmmanuel Vadot			ethernet-port@3 {
346*0e8011faSEmmanuel Vadot				reg = <3>;
347*0e8011faSEmmanuel Vadot				label = "lan3";
348*0e8011faSEmmanuel Vadot				phy-handle = <&sw_phy3>;
349*0e8011faSEmmanuel Vadot				phy-mode = "internal";
350*0e8011faSEmmanuel Vadot
351*0e8011faSEmmanuel Vadot				leds {
352*0e8011faSEmmanuel Vadot					#address-cells = <1>;
353*0e8011faSEmmanuel Vadot					#size-cells = <0>;
354*0e8011faSEmmanuel Vadot
355*0e8011faSEmmanuel Vadot					led@0 {
356*0e8011faSEmmanuel Vadot						reg = <0>;
357*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_GREEN>;
358*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
359*0e8011faSEmmanuel Vadot						default-state = "keep";
360*0e8011faSEmmanuel Vadot					};
361*0e8011faSEmmanuel Vadot
362*0e8011faSEmmanuel Vadot					led@1 {
363*0e8011faSEmmanuel Vadot						reg = <1>;
364*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_YELLOW>;
365*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
366*0e8011faSEmmanuel Vadot						default-state = "keep";
367*0e8011faSEmmanuel Vadot					};
368*0e8011faSEmmanuel Vadot				};
369*0e8011faSEmmanuel Vadot			};
370*0e8011faSEmmanuel Vadot
371*0e8011faSEmmanuel Vadot			ethernet-port@4 {
372*0e8011faSEmmanuel Vadot				reg = <4>;
373*0e8011faSEmmanuel Vadot				label = "lan4";
374*0e8011faSEmmanuel Vadot				phy-handle = <&sw_phy4>;
375*0e8011faSEmmanuel Vadot				phy-mode = "internal";
376*0e8011faSEmmanuel Vadot
377*0e8011faSEmmanuel Vadot				leds {
378*0e8011faSEmmanuel Vadot					#address-cells = <1>;
379*0e8011faSEmmanuel Vadot					#size-cells = <0>;
380*0e8011faSEmmanuel Vadot
381*0e8011faSEmmanuel Vadot					led@0 {
382*0e8011faSEmmanuel Vadot						reg = <0>;
383*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_GREEN>;
384*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
385*0e8011faSEmmanuel Vadot						default-state = "keep";
386*0e8011faSEmmanuel Vadot					};
387*0e8011faSEmmanuel Vadot
388*0e8011faSEmmanuel Vadot					led@1 {
389*0e8011faSEmmanuel Vadot						reg = <1>;
390*0e8011faSEmmanuel Vadot						color = <LED_COLOR_ID_YELLOW>;
391*0e8011faSEmmanuel Vadot						function = LED_FUNCTION_LAN;
392*0e8011faSEmmanuel Vadot						default-state = "keep";
393*0e8011faSEmmanuel Vadot					};
394*0e8011faSEmmanuel Vadot				};
395*0e8011faSEmmanuel Vadot			};
396*0e8011faSEmmanuel Vadot
397*0e8011faSEmmanuel Vadot			ethernet-port@5 {
398*0e8011faSEmmanuel Vadot				reg = <5>;
399*0e8011faSEmmanuel Vadot				label = "cpu";
400*0e8011faSEmmanuel Vadot				ethernet = <&cp0_eth2>;
401*0e8011faSEmmanuel Vadot				phy-mode = "2500base-x";
402*0e8011faSEmmanuel Vadot
403*0e8011faSEmmanuel Vadot				fixed-link {
404*0e8011faSEmmanuel Vadot					speed = <2500>;
405*0e8011faSEmmanuel Vadot					full-duplex;
406*0e8011faSEmmanuel Vadot					pause;
407*0e8011faSEmmanuel Vadot				};
408*0e8011faSEmmanuel Vadot			};
409*0e8011faSEmmanuel Vadot		};
410*0e8011faSEmmanuel Vadot	};
411*0e8011faSEmmanuel Vadot};
412*0e8011faSEmmanuel Vadot
413*0e8011faSEmmanuel Vadot/* SRDS #0,#1,#2,#3 - PCIe */
414*0e8011faSEmmanuel Vadot&cp0_pcie0 {
415*0e8011faSEmmanuel Vadot	num-lanes = <4>;
416*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy0 0>, <&cp0_comphy1 0>, <&cp0_comphy2 0>, <&cp0_comphy3 0>;
417*0e8011faSEmmanuel Vadot	status = "okay";
418*0e8011faSEmmanuel Vadot};
419*0e8011faSEmmanuel Vadot
420*0e8011faSEmmanuel Vadot&cp0_pinctrl {
421*0e8011faSEmmanuel Vadot	/*
422*0e8011faSEmmanuel Vadot	 * configure unused gpios exposed via pin headers:
423*0e8011faSEmmanuel Vadot	 * - J7-10: PWRBTN
424*0e8011faSEmmanuel Vadot	 */
425*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
426*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_pwrbtn_pins>;
427*0e8011faSEmmanuel Vadot};
428*0e8011faSEmmanuel Vadot
429*0e8011faSEmmanuel Vadot/* microSD */
430*0e8011faSEmmanuel Vadot&cp0_sdhci0 {
431*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_mmc0_pins>, <&cp0_mmc0_cd_pins>;
432*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
433*0e8011faSEmmanuel Vadot	bus-width = <4>;
434*0e8011faSEmmanuel Vadot	no-1-8-v;
435*0e8011faSEmmanuel Vadot	status = "okay";
436*0e8011faSEmmanuel Vadot};
437*0e8011faSEmmanuel Vadot
438*0e8011faSEmmanuel Vadot&cp0_spi1 {
439*0e8011faSEmmanuel Vadot	/* add CS1 */
440*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_spi1_pins>, <&cp0_spi1_cs1_pins>;
441*0e8011faSEmmanuel Vadot
442*0e8011faSEmmanuel Vadot	flash@1 {
443*0e8011faSEmmanuel Vadot		compatible = "jedec,spi-nor";
444*0e8011faSEmmanuel Vadot		reg = <1>;
445*0e8011faSEmmanuel Vadot		/* read command supports max. 50MHz */
446*0e8011faSEmmanuel Vadot		spi-max-frequency = <50000000>;
447*0e8011faSEmmanuel Vadot	};
448*0e8011faSEmmanuel Vadot};
449*0e8011faSEmmanuel Vadot
450*0e8011faSEmmanuel Vadot/* J38 */
451*0e8011faSEmmanuel Vadot&cp0_uart2 {
452*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
453*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_uart2_pins>;
454*0e8011faSEmmanuel Vadot	status = "okay";
455*0e8011faSEmmanuel Vadot};
456*0e8011faSEmmanuel Vadot
457*0e8011faSEmmanuel Vadot&cp0_utmi {
458*0e8011faSEmmanuel Vadot	/* M.2 "CON5" swaps D+/D- */
459*0e8011faSEmmanuel Vadot	swap-dx-lanes = <1>;
460*0e8011faSEmmanuel Vadot};
461*0e8011faSEmmanuel Vadot
462*0e8011faSEmmanuel Vadot&cp1_ethernet {
463*0e8011faSEmmanuel Vadot	status = "okay";
464*0e8011faSEmmanuel Vadot};
465*0e8011faSEmmanuel Vadot
466*0e8011faSEmmanuel Vadot/* SRDS #2 - 5GE */
467*0e8011faSEmmanuel Vadot&cp1_eth0 {
468*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy2 0>;
469*0e8011faSEmmanuel Vadot	phy-mode = "5gbase-r";
470*0e8011faSEmmanuel Vadot	phy = <&cp1_eth_phy0>;
471*0e8011faSEmmanuel Vadot	managed = "in-band-status";
472*0e8011faSEmmanuel Vadot	status = "okay";
473*0e8011faSEmmanuel Vadot};
474*0e8011faSEmmanuel Vadot
475*0e8011faSEmmanuel Vadot/* SRDS #0,#1 - PCIe */
476*0e8011faSEmmanuel Vadot&cp1_pcie0 {
477*0e8011faSEmmanuel Vadot	num-lanes = <2>;
478*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy0 0>, <&cp1_comphy1 0>;
479*0e8011faSEmmanuel Vadot	status = "okay";
480*0e8011faSEmmanuel Vadot};
481*0e8011faSEmmanuel Vadot
482*0e8011faSEmmanuel Vadot/* SRDS #4 - PCIe */
483*0e8011faSEmmanuel Vadot&cp1_pcie1 {
484*0e8011faSEmmanuel Vadot	num-lanes = <1>;
485*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy4 1>;
486*0e8011faSEmmanuel Vadot	status = "okay";
487*0e8011faSEmmanuel Vadot};
488*0e8011faSEmmanuel Vadot
489*0e8011faSEmmanuel Vadot/* SRDS #5 - PCIe */
490*0e8011faSEmmanuel Vadot&cp1_pcie2 {
491*0e8011faSEmmanuel Vadot	num-lanes = <1>;
492*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy5 2>;
493*0e8011faSEmmanuel Vadot	status = "okay";
494*0e8011faSEmmanuel Vadot};
495*0e8011faSEmmanuel Vadot
496*0e8011faSEmmanuel Vadot&cp1_pinctrl {
497*0e8011faSEmmanuel Vadot	/*
498*0e8011faSEmmanuel Vadot	 * configure unused gpios exposed via pin headers:
499*0e8011faSEmmanuel Vadot	 * - J7-8: RSVD16
500*0e8011faSEmmanuel Vadot	 * - J7-10: THRM
501*0e8011faSEmmanuel Vadot	 * - J10-1: WAKE1
502*0e8011faSEmmanuel Vadot	 * - J10-2: SATA_ACT
503*0e8011faSEmmanuel Vadot	 * - J10-8: THERMTRIP
504*0e8011faSEmmanuel Vadot	 */
505*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
506*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp1_rsvd16_pins &cp1_sata_act_pins &cp1_thrm_irq_pins>,
507*0e8011faSEmmanuel Vadot		    <&cp1_thrm_trip_pins &cp1_wake1_pins>;
508*0e8011faSEmmanuel Vadot};
509*0e8011faSEmmanuel Vadot
510*0e8011faSEmmanuel Vadot/* SRDS #3 - SATA */
511*0e8011faSEmmanuel Vadot&cp1_sata0 {
512*0e8011faSEmmanuel Vadot	status = "okay";
513*0e8011faSEmmanuel Vadot
514*0e8011faSEmmanuel Vadot	/* only port 1 is available */
515*0e8011faSEmmanuel Vadot	/delete-node/ sata-port@0;
516*0e8011faSEmmanuel Vadot
517*0e8011faSEmmanuel Vadot	sata-port@1 {
518*0e8011faSEmmanuel Vadot		phys = <&cp1_comphy3 1>;
519*0e8011faSEmmanuel Vadot	};
520*0e8011faSEmmanuel Vadot};
521*0e8011faSEmmanuel Vadot
522*0e8011faSEmmanuel Vadot&cp1_utmi {
523*0e8011faSEmmanuel Vadot	/* M.2 "CON4" swaps D+/D- */
524*0e8011faSEmmanuel Vadot	swap-dx-lanes = <0>;
525*0e8011faSEmmanuel Vadot};
526*0e8011faSEmmanuel Vadot
527*0e8011faSEmmanuel Vadot&cp1_xmdio {
528*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
529*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp1_xmdio_pins>;
530*0e8011faSEmmanuel Vadot	status = "okay";
531*0e8011faSEmmanuel Vadot
532*0e8011faSEmmanuel Vadot	cp1_eth_phy0: ethernet-phy@8 {
533*0e8011faSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c45";
534*0e8011faSEmmanuel Vadot		reg = <8>;
535*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
536*0e8011faSEmmanuel Vadot		pinctrl-0 = <&com_10g_int1_pins>;
537*0e8011faSEmmanuel Vadot		interrupt-parent = <&cp1_gpio2>;
538*0e8011faSEmmanuel Vadot		interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
539*0e8011faSEmmanuel Vadot
540*0e8011faSEmmanuel Vadot		leds {
541*0e8011faSEmmanuel Vadot			#address-cells = <1>;
542*0e8011faSEmmanuel Vadot			#size-cells = <0>;
543*0e8011faSEmmanuel Vadot
544*0e8011faSEmmanuel Vadot			led@1 {
545*0e8011faSEmmanuel Vadot				reg = <1>;
546*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_YELLOW>;
547*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
548*0e8011faSEmmanuel Vadot				default-state = "keep";
549*0e8011faSEmmanuel Vadot			};
550*0e8011faSEmmanuel Vadot
551*0e8011faSEmmanuel Vadot			led@2 {
552*0e8011faSEmmanuel Vadot				reg = <2>;
553*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_GREEN>;
554*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
555*0e8011faSEmmanuel Vadot				default-state = "keep";
556*0e8011faSEmmanuel Vadot			};
557*0e8011faSEmmanuel Vadot		};
558*0e8011faSEmmanuel Vadot	};
559*0e8011faSEmmanuel Vadot};
560*0e8011faSEmmanuel Vadot
561*0e8011faSEmmanuel Vadot&cp2_ethernet {
562*0e8011faSEmmanuel Vadot	status =  "okay";
563*0e8011faSEmmanuel Vadot};
564*0e8011faSEmmanuel Vadot
565*0e8011faSEmmanuel Vadot/* SRDS #2 - 5GE */
566*0e8011faSEmmanuel Vadot&cp2_eth0 {
567*0e8011faSEmmanuel Vadot	phys = <&cp2_comphy2 0>;
568*0e8011faSEmmanuel Vadot	phy-mode = "5gbase-r";
569*0e8011faSEmmanuel Vadot	phy = <&cp2_eth_phy0>;
570*0e8011faSEmmanuel Vadot	managed = "in-band-status";
571*0e8011faSEmmanuel Vadot	status = "okay";
572*0e8011faSEmmanuel Vadot};
573*0e8011faSEmmanuel Vadot
574*0e8011faSEmmanuel Vadot&cp2_gpio1 {
575*0e8011faSEmmanuel Vadot	pinctrl-names= "default";
576*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp2_rsvd9_pins>;
577*0e8011faSEmmanuel Vadot
578*0e8011faSEmmanuel Vadot	/* J21 */
579*0e8011faSEmmanuel Vadot	m2-wwan-reset-hog {
580*0e8011faSEmmanuel Vadot		gpio-hog;
581*0e8011faSEmmanuel Vadot		gpios = <9 (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
582*0e8011faSEmmanuel Vadot		output-low;
583*0e8011faSEmmanuel Vadot		line-name = "m2-wwan-reset";
584*0e8011faSEmmanuel Vadot	};
585*0e8011faSEmmanuel Vadot};
586*0e8011faSEmmanuel Vadot
587*0e8011faSEmmanuel Vadot/* SRDS #0 - PCIe */
588*0e8011faSEmmanuel Vadot&cp2_pcie0 {
589*0e8011faSEmmanuel Vadot	num-lanes = <1>;
590*0e8011faSEmmanuel Vadot	phys = <&cp2_comphy0 0>;
591*0e8011faSEmmanuel Vadot	status = "okay";
592*0e8011faSEmmanuel Vadot};
593*0e8011faSEmmanuel Vadot
594*0e8011faSEmmanuel Vadot/* SRDS #4 - PCIe */
595*0e8011faSEmmanuel Vadot&cp2_pcie1 {
596*0e8011faSEmmanuel Vadot	num-lanes = <1>;
597*0e8011faSEmmanuel Vadot	phys = <&cp2_comphy4 1>;
598*0e8011faSEmmanuel Vadot	status = "okay";
599*0e8011faSEmmanuel Vadot};
600*0e8011faSEmmanuel Vadot
601*0e8011faSEmmanuel Vadot/* SRDS #5 - PCIe */
602*0e8011faSEmmanuel Vadot&cp2_pcie2 {
603*0e8011faSEmmanuel Vadot	num-lanes = <1>;
604*0e8011faSEmmanuel Vadot	phys = <&cp2_comphy5 2>;
605*0e8011faSEmmanuel Vadot	status = "okay";
606*0e8011faSEmmanuel Vadot};
607*0e8011faSEmmanuel Vadot
608*0e8011faSEmmanuel Vadot&cp2_pinctrl {
609*0e8011faSEmmanuel Vadot	/*
610*0e8011faSEmmanuel Vadot	 * configure unused gpios exposed via pin headers:
611*0e8011faSEmmanuel Vadot	 * - J7-1: RSVD10
612*0e8011faSEmmanuel Vadot	 * - J7-3: RSVD11
613*0e8011faSEmmanuel Vadot	 * - J7-5: RSVD56
614*0e8011faSEmmanuel Vadot	 * - J7-6: RSVD7
615*0e8011faSEmmanuel Vadot	 * - J7-7: RSVD27
616*0e8011faSEmmanuel Vadot	 * - J10-3: RSVD31
617*0e8011faSEmmanuel Vadot	 * - J10-5: RSVD5
618*0e8011faSEmmanuel Vadot	 * - J10-6: RSVD32
619*0e8011faSEmmanuel Vadot	 * - J10-7: RSVD0
620*0e8011faSEmmanuel Vadot	 * - J10-9: RSVD1
621*0e8011faSEmmanuel Vadot	 */
622*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
623*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp2_rsvd0_pins &cp2_rsvd1_pins &cp2_rsvd5_pins>,
624*0e8011faSEmmanuel Vadot		    <&cp2_rsvd7_pins &cp2_rsvd10_pins &cp2_rsvd11_pins>,
625*0e8011faSEmmanuel Vadot		    <&cp2_rsvd27_pins &cp2_rsvd31_pins &cp2_rsvd32_pins>,
626*0e8011faSEmmanuel Vadot		    <&cp2_rsvd56_pins>;
627*0e8011faSEmmanuel Vadot};
628*0e8011faSEmmanuel Vadot
629*0e8011faSEmmanuel Vadot/* SRDS #3 - SATA */
630*0e8011faSEmmanuel Vadot&cp2_sata0 {
631*0e8011faSEmmanuel Vadot	status = "okay";
632*0e8011faSEmmanuel Vadot
633*0e8011faSEmmanuel Vadot	/* only port 1 is available */
634*0e8011faSEmmanuel Vadot	/delete-node/ sata-port@0;
635*0e8011faSEmmanuel Vadot
636*0e8011faSEmmanuel Vadot	sata-port@1 {
637*0e8011faSEmmanuel Vadot		phys = <&cp2_comphy3 1>;
638*0e8011faSEmmanuel Vadot	};
639*0e8011faSEmmanuel Vadot};
640*0e8011faSEmmanuel Vadot
641*0e8011faSEmmanuel Vadot&cp2_xmdio {
642*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
643*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp2_xmdio_pins>;
644*0e8011faSEmmanuel Vadot	status = "okay";
645*0e8011faSEmmanuel Vadot
646*0e8011faSEmmanuel Vadot	cp2_eth_phy0: ethernet-phy@8 {
647*0e8011faSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c45";
648*0e8011faSEmmanuel Vadot		reg = <8>;
649*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
650*0e8011faSEmmanuel Vadot		pinctrl-0 = <&com_10g_int2_pins>;
651*0e8011faSEmmanuel Vadot		interrupt-parent = <&cp2_gpio2>;
652*0e8011faSEmmanuel Vadot		interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
653*0e8011faSEmmanuel Vadot
654*0e8011faSEmmanuel Vadot		leds {
655*0e8011faSEmmanuel Vadot			#address-cells = <1>;
656*0e8011faSEmmanuel Vadot			#size-cells = <0>;
657*0e8011faSEmmanuel Vadot
658*0e8011faSEmmanuel Vadot			led@1 {
659*0e8011faSEmmanuel Vadot				reg = <1>;
660*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_YELLOW>;
661*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
662*0e8011faSEmmanuel Vadot				default-state = "keep";
663*0e8011faSEmmanuel Vadot			};
664*0e8011faSEmmanuel Vadot
665*0e8011faSEmmanuel Vadot			led@2 {
666*0e8011faSEmmanuel Vadot				reg = <2>;
667*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_GREEN>;
668*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
669*0e8011faSEmmanuel Vadot				default-state = "keep";
670*0e8011faSEmmanuel Vadot			};
671*0e8011faSEmmanuel Vadot		};
672*0e8011faSEmmanuel Vadot	};
673*0e8011faSEmmanuel Vadot};
674