xref: /freebsd/sys/contrib/device-tree/src/arm64/marvell/cn9131-cf-solidwan.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
4*0e8011faSEmmanuel Vadot *
5*0e8011faSEmmanuel Vadot * DTS for SolidRun CN9130 Clearfog Base.
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 "cn9130-sr-som.dtsi"
16*0e8011faSEmmanuel Vadot
17*0e8011faSEmmanuel Vadot/*
18*0e8011faSEmmanuel Vadot * Instantiate the external CP115
19*0e8011faSEmmanuel Vadot */
20*0e8011faSEmmanuel Vadot
21*0e8011faSEmmanuel Vadot#define CP11X_NAME		cp1
22*0e8011faSEmmanuel Vadot#define CP11X_BASE		f4000000
23*0e8011faSEmmanuel Vadot#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000))
24*0e8011faSEmmanuel Vadot#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000
25*0e8011faSEmmanuel Vadot#define CP11X_PCIE0_BASE	f4600000
26*0e8011faSEmmanuel Vadot#define CP11X_PCIE1_BASE	f4620000
27*0e8011faSEmmanuel Vadot#define CP11X_PCIE2_BASE	f4640000
28*0e8011faSEmmanuel Vadot
29*0e8011faSEmmanuel Vadot#include "armada-cp115.dtsi"
30*0e8011faSEmmanuel Vadot
31*0e8011faSEmmanuel Vadot#undef CP11X_NAME
32*0e8011faSEmmanuel Vadot#undef CP11X_BASE
33*0e8011faSEmmanuel Vadot#undef CP11X_PCIEx_MEM_BASE
34*0e8011faSEmmanuel Vadot#undef CP11X_PCIEx_MEM_SIZE
35*0e8011faSEmmanuel Vadot#undef CP11X_PCIE0_BASE
36*0e8011faSEmmanuel Vadot#undef CP11X_PCIE1_BASE
37*0e8011faSEmmanuel Vadot#undef CP11X_PCIE2_BASE
38*0e8011faSEmmanuel Vadot
39*0e8011faSEmmanuel Vadot/ {
40*0e8011faSEmmanuel Vadot	model = "SolidRun CN9131 SolidWAN";
41*0e8011faSEmmanuel Vadot	compatible = "solidrun,cn9131-solidwan",
42*0e8011faSEmmanuel Vadot		     "solidrun,cn9130-sr-som", "marvell,cn9130";
43*0e8011faSEmmanuel Vadot
44*0e8011faSEmmanuel Vadot	aliases {
45*0e8011faSEmmanuel Vadot		ethernet0 = &cp1_eth1;
46*0e8011faSEmmanuel Vadot		ethernet1 = &cp1_eth2;
47*0e8011faSEmmanuel Vadot		ethernet2 = &cp0_eth1;
48*0e8011faSEmmanuel Vadot		ethernet3 = &cp0_eth2;
49*0e8011faSEmmanuel Vadot		ethernet4 = &cp0_eth0;
50*0e8011faSEmmanuel Vadot		ethernet5 = &cp1_eth0;
51*0e8011faSEmmanuel Vadot		gpio0 = &ap_gpio;
52*0e8011faSEmmanuel Vadot		gpio1 = &cp0_gpio1;
53*0e8011faSEmmanuel Vadot		gpio2 = &cp0_gpio2;
54*0e8011faSEmmanuel Vadot		gpio3 = &cp1_gpio1;
55*0e8011faSEmmanuel Vadot		gpio4 = &cp1_gpio2;
56*0e8011faSEmmanuel Vadot		gpio5 = &expander0;
57*0e8011faSEmmanuel Vadot		i2c0 = &cp0_i2c0;
58*0e8011faSEmmanuel Vadot		i2c1 = &cp0_i2c1;
59*0e8011faSEmmanuel Vadot		i2c2 = &cp1_i2c1;
60*0e8011faSEmmanuel Vadot		mmc0 = &ap_sdhci0;
61*0e8011faSEmmanuel Vadot		mmc1 = &cp0_sdhci0;
62*0e8011faSEmmanuel Vadot		rtc0 = &cp0_rtc;
63*0e8011faSEmmanuel Vadot		rtc1 = &carrier_rtc;
64*0e8011faSEmmanuel Vadot	};
65*0e8011faSEmmanuel Vadot
66*0e8011faSEmmanuel Vadot	leds {
67*0e8011faSEmmanuel Vadot		compatible = "gpio-leds";
68*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
69*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp0_led_pins &cp1_led_pins>;
70*0e8011faSEmmanuel Vadot
71*0e8011faSEmmanuel Vadot		/* for sfp-1 (J42) */
72*0e8011faSEmmanuel Vadot		led-sfp1-activity {
73*0e8011faSEmmanuel Vadot			label = "sfp1:green";
74*0e8011faSEmmanuel Vadot			gpios = <&cp0_gpio1 7 GPIO_ACTIVE_HIGH>;
75*0e8011faSEmmanuel Vadot		};
76*0e8011faSEmmanuel Vadot
77*0e8011faSEmmanuel Vadot		/* for sfp-1 (J42) */
78*0e8011faSEmmanuel Vadot		led-sfp1-link {
79*0e8011faSEmmanuel Vadot			label = "sfp1:yellow";
80*0e8011faSEmmanuel Vadot			gpios = <&cp0_gpio1 4 GPIO_ACTIVE_HIGH>;
81*0e8011faSEmmanuel Vadot		};
82*0e8011faSEmmanuel Vadot
83*0e8011faSEmmanuel Vadot		/* (J28) */
84*0e8011faSEmmanuel Vadot		led-sfp0-activity {
85*0e8011faSEmmanuel Vadot			label = "sfp0:green";
86*0e8011faSEmmanuel Vadot			gpios = <&cp1_gpio2 22 GPIO_ACTIVE_HIGH>;
87*0e8011faSEmmanuel Vadot		};
88*0e8011faSEmmanuel Vadot
89*0e8011faSEmmanuel Vadot		/* (J28) */
90*0e8011faSEmmanuel Vadot		led-sfp0-link {
91*0e8011faSEmmanuel Vadot			label = "sfp0:yellow";
92*0e8011faSEmmanuel Vadot			gpios = <&cp1_gpio2 23 GPIO_ACTIVE_HIGH>;
93*0e8011faSEmmanuel Vadot		};
94*0e8011faSEmmanuel Vadot	};
95*0e8011faSEmmanuel Vadot
96*0e8011faSEmmanuel Vadot	/* Type-A port on J53 */
97*0e8011faSEmmanuel Vadot	reg_usb_a_vbus0: regulator-usb-a-vbus0 {
98*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
99*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp0_reg_usb_a_vbus0_pins>;
100*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
101*0e8011faSEmmanuel Vadot		regulator-name = "vbus0";
102*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
103*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
104*0e8011faSEmmanuel Vadot		gpios = <&cp0_gpio1 27 GPIO_ACTIVE_HIGH>;
105*0e8011faSEmmanuel Vadot		enable-active-high;
106*0e8011faSEmmanuel Vadot		regulator-always-on;
107*0e8011faSEmmanuel Vadot	};
108*0e8011faSEmmanuel Vadot
109*0e8011faSEmmanuel Vadot	reg_usb_a_vbus1: regulator-usb-a-vbus1 {
110*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
111*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp0_reg_usb_a_vbus1_pins>;
112*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
113*0e8011faSEmmanuel Vadot		regulator-name = "vbus1";
114*0e8011faSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
115*0e8011faSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
116*0e8011faSEmmanuel Vadot		gpios = <&cp0_gpio1 28 GPIO_ACTIVE_HIGH>;
117*0e8011faSEmmanuel Vadot		enable-active-high;
118*0e8011faSEmmanuel Vadot		regulator-always-on;
119*0e8011faSEmmanuel Vadot	};
120*0e8011faSEmmanuel Vadot
121*0e8011faSEmmanuel Vadot	sfp0: sfp-0 {
122*0e8011faSEmmanuel Vadot		compatible = "sff,sfp";
123*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp0_sfp0_pins>;
124*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
125*0e8011faSEmmanuel Vadot		i2c-bus = <&cp0_i2c1>;
126*0e8011faSEmmanuel Vadot		los-gpios = <&cp0_gpio2 2 GPIO_ACTIVE_HIGH>;
127*0e8011faSEmmanuel Vadot		mod-def0-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
128*0e8011faSEmmanuel Vadot		tx-disable-gpios = <&cp0_gpio2 1 GPIO_ACTIVE_HIGH>;
129*0e8011faSEmmanuel Vadot		tx-fault-gpios = <&cp0_gpio1 31 GPIO_ACTIVE_HIGH>;
130*0e8011faSEmmanuel Vadot		maximum-power-milliwatt = <2000>;
131*0e8011faSEmmanuel Vadot	};
132*0e8011faSEmmanuel Vadot
133*0e8011faSEmmanuel Vadot	sfp1: sfp-1 {
134*0e8011faSEmmanuel Vadot		compatible = "sff,sfp";
135*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_sfp1_pins>;
136*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
137*0e8011faSEmmanuel Vadot		i2c-bus = <&cp1_i2c1>;
138*0e8011faSEmmanuel Vadot		los-gpios = <&cp1_gpio2 2 GPIO_ACTIVE_HIGH>;
139*0e8011faSEmmanuel Vadot		mod-def0-gpios = <&cp1_gpio2 18 GPIO_ACTIVE_LOW>;
140*0e8011faSEmmanuel Vadot		tx-disable-gpios = <&cp1_gpio2 1 GPIO_ACTIVE_HIGH>;
141*0e8011faSEmmanuel Vadot		tx-fault-gpios = <&cp1_gpio2 17 GPIO_ACTIVE_HIGH>;
142*0e8011faSEmmanuel Vadot		maximum-power-milliwatt = <2000>;
143*0e8011faSEmmanuel Vadot	};
144*0e8011faSEmmanuel Vadot};
145*0e8011faSEmmanuel Vadot
146*0e8011faSEmmanuel Vadot&cp0_ethernet {
147*0e8011faSEmmanuel Vadot	status = "okay";
148*0e8011faSEmmanuel Vadot};
149*0e8011faSEmmanuel Vadot
150*0e8011faSEmmanuel Vadot/* SRDS #2 - SFP+ 10GE */
151*0e8011faSEmmanuel Vadot&cp0_eth0 {
152*0e8011faSEmmanuel Vadot	managed = "in-band-status";
153*0e8011faSEmmanuel Vadot	phy-mode = "10gbase-r";
154*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy2 0>;
155*0e8011faSEmmanuel Vadot	sfp = <&sfp0>;
156*0e8011faSEmmanuel Vadot	status = "okay";
157*0e8011faSEmmanuel Vadot};
158*0e8011faSEmmanuel Vadot
159*0e8011faSEmmanuel Vadot/* SRDS #3 - SGMII 1GE */
160*0e8011faSEmmanuel Vadot&cp0_eth1 {
161*0e8011faSEmmanuel Vadot	managed = "in-band-status";
162*0e8011faSEmmanuel Vadot	phy-mode = "sgmii";
163*0e8011faSEmmanuel Vadot	/* Without mdio phy access rely on sgmii auto-negotiation. */
164*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy3 1>;
165*0e8011faSEmmanuel Vadot	status = "okay";
166*0e8011faSEmmanuel Vadot};
167*0e8011faSEmmanuel Vadot
168*0e8011faSEmmanuel Vadot/* SRDS #1 - SGMII */
169*0e8011faSEmmanuel Vadot&cp0_eth2 {
170*0e8011faSEmmanuel Vadot	/delete-property/ pinctrl-0;
171*0e8011faSEmmanuel Vadot	/delete-property/ pinctrl-names;
172*0e8011faSEmmanuel Vadot	managed = "in-band-status";
173*0e8011faSEmmanuel Vadot	phy-mode = "sgmii";
174*0e8011faSEmmanuel Vadot	phy = <&cp0_phy1>;
175*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy1 2>;
176*0e8011faSEmmanuel Vadot};
177*0e8011faSEmmanuel Vadot
178*0e8011faSEmmanuel Vadot&cp0_gpio1 {
179*0e8011faSEmmanuel Vadot	pcie0-0-w-disable-hog {
180*0e8011faSEmmanuel Vadot		gpio-hog;
181*0e8011faSEmmanuel Vadot		gpios = <6 GPIO_ACTIVE_LOW>;
182*0e8011faSEmmanuel Vadot		output-low;
183*0e8011faSEmmanuel Vadot		line-name = "pcie0.0-w-disable";
184*0e8011faSEmmanuel Vadot	};
185*0e8011faSEmmanuel Vadot
186*0e8011faSEmmanuel Vadot	/* J34 */
187*0e8011faSEmmanuel Vadot	m2-full-card-power-off-hog {
188*0e8011faSEmmanuel Vadot		gpio-hog;
189*0e8011faSEmmanuel Vadot		gpios = <8 GPIO_ACTIVE_LOW>;
190*0e8011faSEmmanuel Vadot		output-low;
191*0e8011faSEmmanuel Vadot		line-name = "m2-full-card-power-off";
192*0e8011faSEmmanuel Vadot	};
193*0e8011faSEmmanuel Vadot};
194*0e8011faSEmmanuel Vadot
195*0e8011faSEmmanuel Vadot&cp0_i2c0 {
196*0e8011faSEmmanuel Vadot	/* assembly option */
197*0e8011faSEmmanuel Vadot	fan-controller@18 {
198*0e8011faSEmmanuel Vadot		compatible = "ti,amc6821";
199*0e8011faSEmmanuel Vadot		reg = <0x18>;
200*0e8011faSEmmanuel Vadot	};
201*0e8011faSEmmanuel Vadot
202*0e8011faSEmmanuel Vadot	expander0: gpio@41 {
203*0e8011faSEmmanuel Vadot		compatible = "nxp,pca9536";
204*0e8011faSEmmanuel Vadot		reg = <0x41>;
205*0e8011faSEmmanuel Vadot
206*0e8011faSEmmanuel Vadot		usb-a-vbus0-ilimit-hog {
207*0e8011faSEmmanuel Vadot			gpio-hog;
208*0e8011faSEmmanuel Vadot			gpios = <0 GPIO_ACTIVE_LOW>;
209*0e8011faSEmmanuel Vadot			input;
210*0e8011faSEmmanuel Vadot			line-name = "vbus0-ilimit";
211*0e8011faSEmmanuel Vadot		};
212*0e8011faSEmmanuel Vadot
213*0e8011faSEmmanuel Vadot		/* duplicate connection, controlled by soc gpio */
214*0e8011faSEmmanuel Vadot		usb-vbus0-enable-hog {
215*0e8011faSEmmanuel Vadot			gpio-hog;
216*0e8011faSEmmanuel Vadot			gpios = <1 GPIO_ACTIVE_HIGH>;
217*0e8011faSEmmanuel Vadot			input;
218*0e8011faSEmmanuel Vadot			line-name = "vbus0-enable";
219*0e8011faSEmmanuel Vadot		};
220*0e8011faSEmmanuel Vadot
221*0e8011faSEmmanuel Vadot		usb-a-vbus1-ilimit-hog {
222*0e8011faSEmmanuel Vadot			gpio-hog;
223*0e8011faSEmmanuel Vadot			gpios = <2 GPIO_ACTIVE_LOW>;
224*0e8011faSEmmanuel Vadot			input;
225*0e8011faSEmmanuel Vadot			line-name = "vbus1-ilimit";
226*0e8011faSEmmanuel Vadot		};
227*0e8011faSEmmanuel Vadot
228*0e8011faSEmmanuel Vadot		/* duplicate connection, controlled by soc gpio */
229*0e8011faSEmmanuel Vadot		usb-vbus1-enable-hog {
230*0e8011faSEmmanuel Vadot			gpio-hog;
231*0e8011faSEmmanuel Vadot			gpios = <3 GPIO_ACTIVE_HIGH>;
232*0e8011faSEmmanuel Vadot			input;
233*0e8011faSEmmanuel Vadot			line-name = "vbus1-enable";
234*0e8011faSEmmanuel Vadot		};
235*0e8011faSEmmanuel Vadot	};
236*0e8011faSEmmanuel Vadot
237*0e8011faSEmmanuel Vadot	carrier_eeprom: eeprom@52 {
238*0e8011faSEmmanuel Vadot		compatible = "atmel,24c02";
239*0e8011faSEmmanuel Vadot		reg = <0x52>;
240*0e8011faSEmmanuel Vadot		pagesize = <8>;
241*0e8011faSEmmanuel Vadot	};
242*0e8011faSEmmanuel Vadot
243*0e8011faSEmmanuel Vadot	/* usb-hub@60 */
244*0e8011faSEmmanuel Vadot
245*0e8011faSEmmanuel Vadot	/* assembly option */
246*0e8011faSEmmanuel Vadot	carrier_rtc: rtc@68 {
247*0e8011faSEmmanuel Vadot		compatible = "st,m41t83";
248*0e8011faSEmmanuel Vadot		reg = <0x68>;
249*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_rtc_pins>;
250*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
251*0e8011faSEmmanuel Vadot		interrupt-parent = <&cp1_gpio1>;
252*0e8011faSEmmanuel Vadot		interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
253*0e8011faSEmmanuel Vadot		reset-gpios = <&cp1_gpio1 13 GPIO_ACTIVE_LOW>;
254*0e8011faSEmmanuel Vadot	};
255*0e8011faSEmmanuel Vadot};
256*0e8011faSEmmanuel Vadot
257*0e8011faSEmmanuel Vadot&cp0_i2c1 {
258*0e8011faSEmmanuel Vadot	/*
259*0e8011faSEmmanuel Vadot	 * Routed to SFP.
260*0e8011faSEmmanuel Vadot	 * Limit to 100kHz for compatibility with SFP modules,
261*0e8011faSEmmanuel Vadot	 * featuring AT24C01A/02/04 at addresses 0x50/0x51.
262*0e8011faSEmmanuel Vadot	 */
263*0e8011faSEmmanuel Vadot	clock-frequency = <100000>;
264*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_i2c1_pins>;
265*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
266*0e8011faSEmmanuel Vadot	status = "okay";
267*0e8011faSEmmanuel Vadot};
268*0e8011faSEmmanuel Vadot
269*0e8011faSEmmanuel Vadot&cp0_mdio {
270*0e8011faSEmmanuel Vadot	/*
271*0e8011faSEmmanuel Vadot	 * SoM + Carrier each have a PHY at address 0.
272*0e8011faSEmmanuel Vadot	 * Remove the SoM phy node, and skip adding the carrier node.
273*0e8011faSEmmanuel Vadot	 * SGMII Auto-Negotation is enabled by bootloader for
274*0e8011faSEmmanuel Vadot	 * autonomous operation without mdio control.
275*0e8011faSEmmanuel Vadot	 */
276*0e8011faSEmmanuel Vadot	/delete-node/ ethernet-phy@0;
277*0e8011faSEmmanuel Vadot
278*0e8011faSEmmanuel Vadot	/* U17016 */
279*0e8011faSEmmanuel Vadot	cp0_phy1: ethernet-phy@1 {
280*0e8011faSEmmanuel Vadot		reg = <1>;
281*0e8011faSEmmanuel Vadot		/*
282*0e8011faSEmmanuel Vadot		 * Configure LEDs default behaviour:
283*0e8011faSEmmanuel Vadot		 * - LED[0]: link is 1000Mbps: On (yellow)
284*0e8011faSEmmanuel Vadot		 * - LED[1]: link/activity: On/blink (green)
285*0e8011faSEmmanuel Vadot		 * - LED[2]: high impedance (floating)
286*0e8011faSEmmanuel Vadot		 */
287*0e8011faSEmmanuel Vadot		marvell,reg-init = <3 16 0xf000 0x0a17>;
288*0e8011faSEmmanuel Vadot
289*0e8011faSEmmanuel Vadot		leds {
290*0e8011faSEmmanuel Vadot			#address-cells = <1>;
291*0e8011faSEmmanuel Vadot			#size-cells = <0>;
292*0e8011faSEmmanuel Vadot
293*0e8011faSEmmanuel Vadot			led@0 {
294*0e8011faSEmmanuel Vadot				reg = <0>;
295*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_YELLOW>;
296*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
297*0e8011faSEmmanuel Vadot				default-state = "keep";
298*0e8011faSEmmanuel Vadot			};
299*0e8011faSEmmanuel Vadot
300*0e8011faSEmmanuel Vadot			led@1 {
301*0e8011faSEmmanuel Vadot				reg = <1>;
302*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_GREEN>;
303*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
304*0e8011faSEmmanuel Vadot				default-state = "keep";
305*0e8011faSEmmanuel Vadot			};
306*0e8011faSEmmanuel Vadot		};
307*0e8011faSEmmanuel Vadot	};
308*0e8011faSEmmanuel Vadot};
309*0e8011faSEmmanuel Vadot
310*0e8011faSEmmanuel Vadot/* SRDS #0 - miniPCIe */
311*0e8011faSEmmanuel Vadot&cp0_pcie0 {
312*0e8011faSEmmanuel Vadot	num-lanes = <1>;
313*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy0 0>;
314*0e8011faSEmmanuel Vadot	status = "okay";
315*0e8011faSEmmanuel Vadot};
316*0e8011faSEmmanuel Vadot
317*0e8011faSEmmanuel Vadot/* SRDS #5 - M.2 B-Key (J34) */
318*0e8011faSEmmanuel Vadot&cp0_pcie2 {
319*0e8011faSEmmanuel Vadot	num-lanes = <1>;
320*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy5 2>;
321*0e8011faSEmmanuel Vadot	status = "okay";
322*0e8011faSEmmanuel Vadot};
323*0e8011faSEmmanuel Vadot
324*0e8011faSEmmanuel Vadot&cp0_pinctrl {
325*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_m2_0_shutdown_pins &cp0_mpcie_rfkill_pins>;
326*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
327*0e8011faSEmmanuel Vadot
328*0e8011faSEmmanuel Vadot	cp0_i2c1_pins: cp0-i2c1-pins {
329*0e8011faSEmmanuel Vadot		marvell,pins = "mpp35", "mpp36";
330*0e8011faSEmmanuel Vadot		marvell,function = "i2c1";
331*0e8011faSEmmanuel Vadot	};
332*0e8011faSEmmanuel Vadot
333*0e8011faSEmmanuel Vadot	cp0_led_pins: cp0-led-pins {
334*0e8011faSEmmanuel Vadot		marvell,pins = "mpp4", "mpp7";
335*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
336*0e8011faSEmmanuel Vadot	};
337*0e8011faSEmmanuel Vadot
338*0e8011faSEmmanuel Vadot	cp0_m2_0_shutdown_pins: cp0-m2-0-shutdown-pins {
339*0e8011faSEmmanuel Vadot		marvell,pins = "mpp8";
340*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
341*0e8011faSEmmanuel Vadot	};
342*0e8011faSEmmanuel Vadot
343*0e8011faSEmmanuel Vadot	cp0_mmc0_pins: cp0-mmc0-pins {
344*0e8011faSEmmanuel Vadot		marvell,pins = "mpp43", "mpp56", "mpp57", "mpp58",
345*0e8011faSEmmanuel Vadot			       "mpp59", "mpp60", "mpp61";
346*0e8011faSEmmanuel Vadot		marvell,function = "sdio";
347*0e8011faSEmmanuel Vadot	};
348*0e8011faSEmmanuel Vadot
349*0e8011faSEmmanuel Vadot	cp0_mpcie_rfkill_pins: cp0-mpcie-rfkill-pins {
350*0e8011faSEmmanuel Vadot		marvell,pins = "mpp6";
351*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
352*0e8011faSEmmanuel Vadot	};
353*0e8011faSEmmanuel Vadot
354*0e8011faSEmmanuel Vadot	cp0_reg_usb_a_vbus0_pins: cp0-reg-usb-a-vbus0-pins {
355*0e8011faSEmmanuel Vadot		marvell,pins = "mpp27";
356*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
357*0e8011faSEmmanuel Vadot	};
358*0e8011faSEmmanuel Vadot
359*0e8011faSEmmanuel Vadot	cp0_reg_usb_a_vbus1_pins: cp0-reg-usb-a-vbus1-pins {
360*0e8011faSEmmanuel Vadot		marvell,pins = "mpp28";
361*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
362*0e8011faSEmmanuel Vadot	};
363*0e8011faSEmmanuel Vadot
364*0e8011faSEmmanuel Vadot	cp0_sfp0_pins: cp0-sfp0-pins {
365*0e8011faSEmmanuel Vadot		marvell,pins = "mpp31", "mpp32", "mpp33", "mpp34";
366*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
367*0e8011faSEmmanuel Vadot	};
368*0e8011faSEmmanuel Vadot
369*0e8011faSEmmanuel Vadot	cp0_spi1_cs1_pins: cp0-spi1-cs1-pins {
370*0e8011faSEmmanuel Vadot		marvell,pins = "mpp12";
371*0e8011faSEmmanuel Vadot		marvell,function = "spi1";
372*0e8011faSEmmanuel Vadot	};
373*0e8011faSEmmanuel Vadot};
374*0e8011faSEmmanuel Vadot
375*0e8011faSEmmanuel Vadot/* microSD */
376*0e8011faSEmmanuel Vadot&cp0_sdhci0 {
377*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_mmc0_pins>;
378*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
379*0e8011faSEmmanuel Vadot	bus-width = <4>;
380*0e8011faSEmmanuel Vadot	no-1-8-v;
381*0e8011faSEmmanuel Vadot	status = "okay";
382*0e8011faSEmmanuel Vadot};
383*0e8011faSEmmanuel Vadot
384*0e8011faSEmmanuel Vadot&cp0_spi1 {
385*0e8011faSEmmanuel Vadot	/* add pin for chip-select 1 */
386*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>;
387*0e8011faSEmmanuel Vadot
388*0e8011faSEmmanuel Vadot	flash@1 {
389*0e8011faSEmmanuel Vadot		compatible = "jedec,spi-nor";
390*0e8011faSEmmanuel Vadot		reg = <1>;
391*0e8011faSEmmanuel Vadot		/* read command supports max. 50MHz */
392*0e8011faSEmmanuel Vadot		spi-max-frequency = <50000000>;
393*0e8011faSEmmanuel Vadot	};
394*0e8011faSEmmanuel Vadot};
395*0e8011faSEmmanuel Vadot
396*0e8011faSEmmanuel Vadot/* USB-2.0 Host to USB-Hub */
397*0e8011faSEmmanuel Vadot&cp0_usb3_0 {
398*0e8011faSEmmanuel Vadot	phys = <&cp0_utmi0>;
399*0e8011faSEmmanuel Vadot	phy-names = "utmi";
400*0e8011faSEmmanuel Vadot	dr_mode = "host";
401*0e8011faSEmmanuel Vadot	status = "okay";
402*0e8011faSEmmanuel Vadot};
403*0e8011faSEmmanuel Vadot
404*0e8011faSEmmanuel Vadot/* SRDS #4 - USB-3.0 Host to USB-Hub */
405*0e8011faSEmmanuel Vadot&cp0_usb3_1 {
406*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
407*0e8011faSEmmanuel Vadot	phy-names = "comphy", "utmi";
408*0e8011faSEmmanuel Vadot	dr_mode = "host";
409*0e8011faSEmmanuel Vadot	status = "okay";
410*0e8011faSEmmanuel Vadot};
411*0e8011faSEmmanuel Vadot
412*0e8011faSEmmanuel Vadot&cp0_utmi {
413*0e8011faSEmmanuel Vadot	status = "okay";
414*0e8011faSEmmanuel Vadot};
415*0e8011faSEmmanuel Vadot
416*0e8011faSEmmanuel Vadot&cp0_utmi1 {
417*0e8011faSEmmanuel Vadot	status = "disabled";
418*0e8011faSEmmanuel Vadot};
419*0e8011faSEmmanuel Vadot
420*0e8011faSEmmanuel Vadot&cp1_ethernet {
421*0e8011faSEmmanuel Vadot	status = "okay";
422*0e8011faSEmmanuel Vadot};
423*0e8011faSEmmanuel Vadot
424*0e8011faSEmmanuel Vadot/* SRDS #4 - SFP+ 10GE */
425*0e8011faSEmmanuel Vadot&cp1_eth0 {
426*0e8011faSEmmanuel Vadot	managed = "in-band-status";
427*0e8011faSEmmanuel Vadot	phy-mode = "10gbase-r";
428*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy4 0>;
429*0e8011faSEmmanuel Vadot	sfp = <&sfp1>;
430*0e8011faSEmmanuel Vadot	status = "okay";
431*0e8011faSEmmanuel Vadot};
432*0e8011faSEmmanuel Vadot
433*0e8011faSEmmanuel Vadot/* SRDS #3 - SGMII 1GE */
434*0e8011faSEmmanuel Vadot&cp1_eth1 {
435*0e8011faSEmmanuel Vadot	managed = "in-band-status";
436*0e8011faSEmmanuel Vadot	phy-mode = "sgmii";
437*0e8011faSEmmanuel Vadot	phy = <&cp1_phy0>;
438*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy3 1>;
439*0e8011faSEmmanuel Vadot	status = "okay";
440*0e8011faSEmmanuel Vadot};
441*0e8011faSEmmanuel Vadot
442*0e8011faSEmmanuel Vadot/* SRDS #5 - SGMII 1GE */
443*0e8011faSEmmanuel Vadot&cp1_eth2 {
444*0e8011faSEmmanuel Vadot	managed = "in-band-status";
445*0e8011faSEmmanuel Vadot	phy-mode = "sgmii";
446*0e8011faSEmmanuel Vadot	phy = <&cp1_phy1>;
447*0e8011faSEmmanuel Vadot	phys = <&cp0_comphy5 2>;
448*0e8011faSEmmanuel Vadot	status = "okay";
449*0e8011faSEmmanuel Vadot};
450*0e8011faSEmmanuel Vadot
451*0e8011faSEmmanuel Vadot&cp1_gpio1 {
452*0e8011faSEmmanuel Vadot	status = "okay";
453*0e8011faSEmmanuel Vadot
454*0e8011faSEmmanuel Vadot	/* J30 */
455*0e8011faSEmmanuel Vadot	m2-full-card-power-off-hog-0 {
456*0e8011faSEmmanuel Vadot		gpio-hog;
457*0e8011faSEmmanuel Vadot		gpios = <29 GPIO_ACTIVE_LOW>;
458*0e8011faSEmmanuel Vadot		output-low;
459*0e8011faSEmmanuel Vadot		line-name = "m2-full-card-power-off";
460*0e8011faSEmmanuel Vadot	};
461*0e8011faSEmmanuel Vadot
462*0e8011faSEmmanuel Vadot	/* J44 */
463*0e8011faSEmmanuel Vadot	m2-full-card-power-off-hog-1 {
464*0e8011faSEmmanuel Vadot		gpio-hog;
465*0e8011faSEmmanuel Vadot		gpios = <30 GPIO_ACTIVE_LOW>;
466*0e8011faSEmmanuel Vadot		output-low;
467*0e8011faSEmmanuel Vadot		line-name = "m2-full-card-power-off";
468*0e8011faSEmmanuel Vadot	};
469*0e8011faSEmmanuel Vadot};
470*0e8011faSEmmanuel Vadot
471*0e8011faSEmmanuel Vadot&cp1_gpio2 {
472*0e8011faSEmmanuel Vadot	status = "okay";
473*0e8011faSEmmanuel Vadot};
474*0e8011faSEmmanuel Vadot
475*0e8011faSEmmanuel Vadot&cp1_i2c1 {
476*0e8011faSEmmanuel Vadot	/*
477*0e8011faSEmmanuel Vadot	 * Routed to SFP.
478*0e8011faSEmmanuel Vadot	 * Limit to 100kHz for compatibility with SFP modules,
479*0e8011faSEmmanuel Vadot	 * featuring AT24C01A/02/04 at addresses 0x50/0x51.
480*0e8011faSEmmanuel Vadot	 */
481*0e8011faSEmmanuel Vadot	clock-frequency = <100000>;
482*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp1_i2c1_pins>;
483*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
484*0e8011faSEmmanuel Vadot	status = "okay";
485*0e8011faSEmmanuel Vadot};
486*0e8011faSEmmanuel Vadot
487*0e8011faSEmmanuel Vadot&cp1_mdio {
488*0e8011faSEmmanuel Vadot	pinctrl-0 = <&cp1_mdio_pins>;
489*0e8011faSEmmanuel Vadot	pinctrl-names = "default";
490*0e8011faSEmmanuel Vadot	status = "okay";
491*0e8011faSEmmanuel Vadot
492*0e8011faSEmmanuel Vadot	cp1_phy0: ethernet-phy@0 {
493*0e8011faSEmmanuel Vadot		reg = <0>;
494*0e8011faSEmmanuel Vadot		/*
495*0e8011faSEmmanuel Vadot		 * Configure LEDs default behaviour:
496*0e8011faSEmmanuel Vadot		 * - LED[0]: link is 1000Mbps: On (yellow)
497*0e8011faSEmmanuel Vadot		 * - LED[1]: link/activity: On/blink (green)
498*0e8011faSEmmanuel Vadot		 * - LED[2]: high impedance (floating)
499*0e8011faSEmmanuel Vadot		 */
500*0e8011faSEmmanuel Vadot		marvell,reg-init = <3 16 0xf000 0x0a17>;
501*0e8011faSEmmanuel Vadot
502*0e8011faSEmmanuel Vadot		leds {
503*0e8011faSEmmanuel Vadot			#address-cells = <1>;
504*0e8011faSEmmanuel Vadot			#size-cells = <0>;
505*0e8011faSEmmanuel Vadot
506*0e8011faSEmmanuel Vadot			led@0 {
507*0e8011faSEmmanuel Vadot				reg = <0>;
508*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_YELLOW>;
509*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
510*0e8011faSEmmanuel Vadot				default-state = "keep";
511*0e8011faSEmmanuel Vadot			};
512*0e8011faSEmmanuel Vadot
513*0e8011faSEmmanuel Vadot			led@1 {
514*0e8011faSEmmanuel Vadot				reg = <1>;
515*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_GREEN>;
516*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
517*0e8011faSEmmanuel Vadot				default-state = "keep";
518*0e8011faSEmmanuel Vadot			};
519*0e8011faSEmmanuel Vadot		};
520*0e8011faSEmmanuel Vadot	};
521*0e8011faSEmmanuel Vadot
522*0e8011faSEmmanuel Vadot	cp1_phy1: ethernet-phy@1 {
523*0e8011faSEmmanuel Vadot		reg = <1>;
524*0e8011faSEmmanuel Vadot		/*
525*0e8011faSEmmanuel Vadot		 * Configure LEDs default behaviour:
526*0e8011faSEmmanuel Vadot		 * - LED[0]: link is 1000Mbps: On (yellow)
527*0e8011faSEmmanuel Vadot		 * - LED[1]: link/activity: On/blink (green)
528*0e8011faSEmmanuel Vadot		 * - LED[2]: high impedance (floating)
529*0e8011faSEmmanuel Vadot		 */
530*0e8011faSEmmanuel Vadot		marvell,reg-init = <3 16 0xf000 0x0a17>;
531*0e8011faSEmmanuel Vadot
532*0e8011faSEmmanuel Vadot		leds {
533*0e8011faSEmmanuel Vadot			#address-cells = <1>;
534*0e8011faSEmmanuel Vadot			#size-cells = <0>;
535*0e8011faSEmmanuel Vadot
536*0e8011faSEmmanuel Vadot			led@0 {
537*0e8011faSEmmanuel Vadot				reg = <0>;
538*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_YELLOW>;
539*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
540*0e8011faSEmmanuel Vadot				default-state = "keep";
541*0e8011faSEmmanuel Vadot			};
542*0e8011faSEmmanuel Vadot
543*0e8011faSEmmanuel Vadot			led@1 {
544*0e8011faSEmmanuel Vadot				reg = <1>;
545*0e8011faSEmmanuel Vadot				color = <LED_COLOR_ID_GREEN>;
546*0e8011faSEmmanuel Vadot				function = LED_FUNCTION_LAN;
547*0e8011faSEmmanuel Vadot				default-state = "keep";
548*0e8011faSEmmanuel Vadot			};
549*0e8011faSEmmanuel Vadot		};
550*0e8011faSEmmanuel Vadot	};
551*0e8011faSEmmanuel Vadot};
552*0e8011faSEmmanuel Vadot
553*0e8011faSEmmanuel Vadot/* SRDS #0 - M.2 (J30) */
554*0e8011faSEmmanuel Vadot&cp1_pcie0 {
555*0e8011faSEmmanuel Vadot	num-lanes = <1>;
556*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy0 0>;
557*0e8011faSEmmanuel Vadot	status = "okay";
558*0e8011faSEmmanuel Vadot};
559*0e8011faSEmmanuel Vadot
560*0e8011faSEmmanuel Vadot&cp1_rtc {
561*0e8011faSEmmanuel Vadot	status = "disabled";
562*0e8011faSEmmanuel Vadot};
563*0e8011faSEmmanuel Vadot
564*0e8011faSEmmanuel Vadot/* SRDS #1 - SATA on M.2 (J44) */
565*0e8011faSEmmanuel Vadot&cp1_sata0 {
566*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy1 0>;
567*0e8011faSEmmanuel Vadot	status = "okay";
568*0e8011faSEmmanuel Vadot
569*0e8011faSEmmanuel Vadot	/* only port 0 is available */
570*0e8011faSEmmanuel Vadot	/delete-node/ sata-port@1;
571*0e8011faSEmmanuel Vadot};
572*0e8011faSEmmanuel Vadot
573*0e8011faSEmmanuel Vadot&cp1_syscon0 {
574*0e8011faSEmmanuel Vadot	cp1_pinctrl: pinctrl {
575*0e8011faSEmmanuel Vadot		compatible = "marvell,cp115-standalone-pinctrl";
576*0e8011faSEmmanuel Vadot		pinctrl-0 = <&cp1_m2_1_shutdown_pins &cp1_m2_2_shutdown_pins>;
577*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
578*0e8011faSEmmanuel Vadot
579*0e8011faSEmmanuel Vadot		cp1_i2c1_pins: cp0-i2c1-pins {
580*0e8011faSEmmanuel Vadot			marvell,pins = "mpp35", "mpp36";
581*0e8011faSEmmanuel Vadot			marvell,function = "i2c1";
582*0e8011faSEmmanuel Vadot		};
583*0e8011faSEmmanuel Vadot
584*0e8011faSEmmanuel Vadot		cp1_led_pins: cp1-led-pins {
585*0e8011faSEmmanuel Vadot			marvell,pins = "mpp54", "mpp55";
586*0e8011faSEmmanuel Vadot			marvell,function = "gpio";
587*0e8011faSEmmanuel Vadot		};
588*0e8011faSEmmanuel Vadot
589*0e8011faSEmmanuel Vadot		cp1_m2_1_shutdown_pins: cp1-m2-1-shutdown-pins {
590*0e8011faSEmmanuel Vadot			marvell,pins = "mpp29";
591*0e8011faSEmmanuel Vadot			marvell,function = "gpio";
592*0e8011faSEmmanuel Vadot		};
593*0e8011faSEmmanuel Vadot
594*0e8011faSEmmanuel Vadot		cp1_m2_2_shutdown_pins: cp1-m2-2-shutdown-pins {
595*0e8011faSEmmanuel Vadot			marvell,pins = "mpp30";
596*0e8011faSEmmanuel Vadot			marvell,function = "gpio";
597*0e8011faSEmmanuel Vadot		};
598*0e8011faSEmmanuel Vadot
599*0e8011faSEmmanuel Vadot		cp1_mdio_pins: cp1-mdio-pins {
600*0e8011faSEmmanuel Vadot			marvell,pins = "mpp37", "mpp38";
601*0e8011faSEmmanuel Vadot			marvell,function = "ge";
602*0e8011faSEmmanuel Vadot		};
603*0e8011faSEmmanuel Vadot
604*0e8011faSEmmanuel Vadot		cp1_rtc_pins: cp1-rtc-pins {
605*0e8011faSEmmanuel Vadot			marvell,pins = "mpp12", "mpp13";
606*0e8011faSEmmanuel Vadot			marvell,function = "gpio";
607*0e8011faSEmmanuel Vadot		};
608*0e8011faSEmmanuel Vadot
609*0e8011faSEmmanuel Vadot		cp1_sfp1_pins: cp1-sfp1-pins {
610*0e8011faSEmmanuel Vadot			marvell,pins = "mpp33", "mpp34", "mpp49", "mpp50";
611*0e8011faSEmmanuel Vadot			marvell,function = "gpio";
612*0e8011faSEmmanuel Vadot		};
613*0e8011faSEmmanuel Vadot	};
614*0e8011faSEmmanuel Vadot};
615*0e8011faSEmmanuel Vadot
616*0e8011faSEmmanuel Vadot/*
617*0e8011faSEmmanuel Vadot * SRDS #2 - USB-3.0 Host to M.2 (J44)
618*0e8011faSEmmanuel Vadot * USB-2.0 Host to M.2 (J30)
619*0e8011faSEmmanuel Vadot */
620*0e8011faSEmmanuel Vadot&cp1_usb3_0 {
621*0e8011faSEmmanuel Vadot	phys = <&cp1_comphy2 0>, <&cp1_utmi0>;
622*0e8011faSEmmanuel Vadot	phy-names = "comphy", "utmi";
623*0e8011faSEmmanuel Vadot	dr_mode = "host";
624*0e8011faSEmmanuel Vadot	status = "okay";
625*0e8011faSEmmanuel Vadot};
626*0e8011faSEmmanuel Vadot
627*0e8011faSEmmanuel Vadot/* USB-2.0 Host to M.2 (J44) */
628*0e8011faSEmmanuel Vadot&cp1_usb3_1 {
629*0e8011faSEmmanuel Vadot	phys = <&cp1_utmi1>;
630*0e8011faSEmmanuel Vadot	phy-names = "utmi";
631*0e8011faSEmmanuel Vadot	dr_mode = "host";
632*0e8011faSEmmanuel Vadot	status = "okay";
633*0e8011faSEmmanuel Vadot};
634*0e8011faSEmmanuel Vadot
635*0e8011faSEmmanuel Vadot&cp1_utmi {
636*0e8011faSEmmanuel Vadot	status = "okay";
637*0e8011faSEmmanuel Vadot};
638