1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (C) 2018 SolidRun ltd.
4c66ec88fSEmmanuel Vadot * Based on Marvell MACCHIATOBin board
5c66ec88fSEmmanuel Vadot *
6c66ec88fSEmmanuel Vadot * Device Tree file for SolidRun's ClearFog GT 8K
7c66ec88fSEmmanuel Vadot */
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadot#include "armada-8040.dtsi"
10c66ec88fSEmmanuel Vadot
11c66ec88fSEmmanuel Vadot#include <dt-bindings/input/input.h>
12c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot/ {
15c66ec88fSEmmanuel Vadot	model = "SolidRun ClearFog GT 8K";
16c66ec88fSEmmanuel Vadot	compatible = "solidrun,clearfog-gt-8k", "marvell,armada8040",
17c66ec88fSEmmanuel Vadot			"marvell,armada-ap806-quad", "marvell,armada-ap806";
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot	chosen {
20c66ec88fSEmmanuel Vadot		stdout-path = "serial0:115200n8";
21c66ec88fSEmmanuel Vadot	};
22c66ec88fSEmmanuel Vadot
23354d7675SEmmanuel Vadot	memory@0 {
24c66ec88fSEmmanuel Vadot		device_type = "memory";
25c66ec88fSEmmanuel Vadot		reg = <0x0 0x0 0x0 0x80000000>;
26c66ec88fSEmmanuel Vadot	};
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot	aliases {
29c66ec88fSEmmanuel Vadot		ethernet0 = &cp1_eth1;
30c66ec88fSEmmanuel Vadot		ethernet1 = &cp0_eth0;
31c66ec88fSEmmanuel Vadot		ethernet2 = &cp1_eth2;
32c66ec88fSEmmanuel Vadot	};
33c66ec88fSEmmanuel Vadot
342eb4d8dcSEmmanuel Vadot	fan: pwm {
352eb4d8dcSEmmanuel Vadot		compatible = "pwm-fan";
362eb4d8dcSEmmanuel Vadot		/* 20% steps */
372eb4d8dcSEmmanuel Vadot		cooling-levels = <0 51 102 153 204 255>;
382eb4d8dcSEmmanuel Vadot		#cooling-cells = <2>;
392eb4d8dcSEmmanuel Vadot		pinctrl-names = "default";
402eb4d8dcSEmmanuel Vadot		pinctrl-0 = <&cp0_fan_pwm_pins>;
412eb4d8dcSEmmanuel Vadot		pwms = <&cp0_gpio2 16 40000>;
422eb4d8dcSEmmanuel Vadot	};
432eb4d8dcSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot	v_3_3: regulator-3-3v {
45c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
46c66ec88fSEmmanuel Vadot		regulator-name = "v_3_3";
47c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
48c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
49c66ec88fSEmmanuel Vadot		regulator-always-on;
50c66ec88fSEmmanuel Vadot		status = "okay";
51c66ec88fSEmmanuel Vadot	};
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot	v_5v0_usb3_hst_vbus: regulator-usb3-vbus0 {
54c66ec88fSEmmanuel Vadot		compatible = "regulator-fixed";
55c66ec88fSEmmanuel Vadot		gpio = <&cp0_gpio2 15 GPIO_ACTIVE_LOW>;
56c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
57c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp0_xhci_vbus_pins>;
58c66ec88fSEmmanuel Vadot		regulator-name = "v_5v0_usb3_hst_vbus";
59c66ec88fSEmmanuel Vadot		regulator-min-microvolt = <5000000>;
60c66ec88fSEmmanuel Vadot		regulator-max-microvolt = <5000000>;
61c66ec88fSEmmanuel Vadot		status = "okay";
62c66ec88fSEmmanuel Vadot	};
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot	sfp_cp0_eth0: sfp-cp0-eth0 {
65c66ec88fSEmmanuel Vadot		compatible = "sff,sfp";
66c66ec88fSEmmanuel Vadot		i2c-bus = <&cp0_i2c1>;
67b97ee269SEmmanuel Vadot		mod-def0-gpios = <&cp0_gpio2 17 GPIO_ACTIVE_LOW>;
68b97ee269SEmmanuel Vadot		tx-disable-gpios = <&cp1_gpio1 29 GPIO_ACTIVE_HIGH>;
69c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
70c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp0_sfp_present_pins &cp1_sfp_tx_disable_pins>;
71c66ec88fSEmmanuel Vadot		maximum-power-milliwatt = <2000>;
72c66ec88fSEmmanuel Vadot	};
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot	leds {
75c66ec88fSEmmanuel Vadot		compatible = "gpio-leds";
76c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp0_led0_pins
77c66ec88fSEmmanuel Vadot			     &cp0_led1_pins>;
78c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
79c66ec88fSEmmanuel Vadot		/* No designated function for these LEDs at the moment */
80c66ec88fSEmmanuel Vadot		led0 {
81c66ec88fSEmmanuel Vadot			label = "clearfog-gt-8k:green:led0";
82c66ec88fSEmmanuel Vadot			gpios = <&cp0_gpio2 8 GPIO_ACTIVE_LOW>;
83c66ec88fSEmmanuel Vadot			default-state = "on";
84c66ec88fSEmmanuel Vadot		};
85c66ec88fSEmmanuel Vadot		led1 {
86c66ec88fSEmmanuel Vadot			label = "clearfog-gt-8k:green:led1";
87c66ec88fSEmmanuel Vadot			gpios = <&cp0_gpio2 9 GPIO_ACTIVE_LOW>;
88c66ec88fSEmmanuel Vadot			default-state = "on";
89c66ec88fSEmmanuel Vadot		};
90c66ec88fSEmmanuel Vadot	};
91c66ec88fSEmmanuel Vadot
92c66ec88fSEmmanuel Vadot	keys {
93c66ec88fSEmmanuel Vadot		compatible = "gpio-keys";
94c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp0_gpio_reset_pins &cp1_wps_button_pins>;
95c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
96c66ec88fSEmmanuel Vadot
97b97ee269SEmmanuel Vadot		button-0 {
98c66ec88fSEmmanuel Vadot			/* The rear button */
99c66ec88fSEmmanuel Vadot			label = "Rear Button";
100c66ec88fSEmmanuel Vadot			gpios = <&cp0_gpio2 7 GPIO_ACTIVE_LOW>;
101c66ec88fSEmmanuel Vadot			linux,can-disable;
102c66ec88fSEmmanuel Vadot			linux,code = <BTN_0>;
103c66ec88fSEmmanuel Vadot		};
104c66ec88fSEmmanuel Vadot
105b97ee269SEmmanuel Vadot		button-1 {
106c66ec88fSEmmanuel Vadot			/* The wps button */
107c66ec88fSEmmanuel Vadot			label = "WPS Button";
108c66ec88fSEmmanuel Vadot			gpios = <&cp1_gpio1 30 GPIO_ACTIVE_LOW>;
109c66ec88fSEmmanuel Vadot			linux,can-disable;
110c66ec88fSEmmanuel Vadot			linux,code = <KEY_WPS_BUTTON>;
111c66ec88fSEmmanuel Vadot		};
112c66ec88fSEmmanuel Vadot	};
113c66ec88fSEmmanuel Vadot};
114c66ec88fSEmmanuel Vadot
1152eb4d8dcSEmmanuel Vadot&ap_thermal_ic {
1162eb4d8dcSEmmanuel Vadot	polling-delay = <1000>; /* milliseconds */
1172eb4d8dcSEmmanuel Vadot	trips {
1182eb4d8dcSEmmanuel Vadot		ap_active: trip-active {
1192eb4d8dcSEmmanuel Vadot			temperature = <40000>; /* millicelsius */
1202eb4d8dcSEmmanuel Vadot			hysteresis = <4000>; /* millicelsius */
1212eb4d8dcSEmmanuel Vadot			type = "active";
1222eb4d8dcSEmmanuel Vadot		};
1232eb4d8dcSEmmanuel Vadot	};
1242eb4d8dcSEmmanuel Vadot	cooling-maps {
1252eb4d8dcSEmmanuel Vadot		map0 {
1262eb4d8dcSEmmanuel Vadot			trip = <&ap_active>;
1272eb4d8dcSEmmanuel Vadot			cooling-device = <&fan THERMAL_NO_LIMIT 4>;
1282eb4d8dcSEmmanuel Vadot		};
1292eb4d8dcSEmmanuel Vadot		map1 {
1302eb4d8dcSEmmanuel Vadot			trip = <&ap_crit>;
1312eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 4 5>;
1322eb4d8dcSEmmanuel Vadot		};
1332eb4d8dcSEmmanuel Vadot	};
1342eb4d8dcSEmmanuel Vadot};
1352eb4d8dcSEmmanuel Vadot
1362eb4d8dcSEmmanuel Vadot&cp0_thermal_ic {
1372eb4d8dcSEmmanuel Vadot	polling-delay = <1000>; /* milliseconds */
1382eb4d8dcSEmmanuel Vadot	trips {
1392eb4d8dcSEmmanuel Vadot		cp0_active0: trip-active0 {
1402eb4d8dcSEmmanuel Vadot			temperature = <40000>; /* millicelsius */
1412eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1422eb4d8dcSEmmanuel Vadot			type = "active";
1432eb4d8dcSEmmanuel Vadot		};
1442eb4d8dcSEmmanuel Vadot		cp0_active1: trip-active1 {
1452eb4d8dcSEmmanuel Vadot			temperature = <45000>; /* millicelsius */
1462eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1472eb4d8dcSEmmanuel Vadot			type = "active";
1482eb4d8dcSEmmanuel Vadot		};
1492eb4d8dcSEmmanuel Vadot		cp0_active2: trip-active2 {
1502eb4d8dcSEmmanuel Vadot			temperature = <50000>; /* millicelsius */
1512eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1522eb4d8dcSEmmanuel Vadot			type = "active";
1532eb4d8dcSEmmanuel Vadot		};
1542eb4d8dcSEmmanuel Vadot		cp0_active3: trip-active3 {
1552eb4d8dcSEmmanuel Vadot			temperature = <60000>; /* millicelsius */
1562eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1572eb4d8dcSEmmanuel Vadot			type = "active";
1582eb4d8dcSEmmanuel Vadot		};
1592eb4d8dcSEmmanuel Vadot	};
1602eb4d8dcSEmmanuel Vadot	cooling-maps {
1612eb4d8dcSEmmanuel Vadot		map0 {
1622eb4d8dcSEmmanuel Vadot			trip = <&cp0_active0>;
1632eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 0 1>;
1642eb4d8dcSEmmanuel Vadot		};
1652eb4d8dcSEmmanuel Vadot		map1 {
1662eb4d8dcSEmmanuel Vadot			trip = <&cp0_active1>;
1672eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 1 2>;
1682eb4d8dcSEmmanuel Vadot		};
1692eb4d8dcSEmmanuel Vadot		map2 {
1702eb4d8dcSEmmanuel Vadot			trip = <&cp0_active2>;
1712eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 2 3>;
1722eb4d8dcSEmmanuel Vadot		};
1732eb4d8dcSEmmanuel Vadot		map3 {
1742eb4d8dcSEmmanuel Vadot			trip = <&cp0_active3>;
1752eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 3 4>;
1762eb4d8dcSEmmanuel Vadot		};
1772eb4d8dcSEmmanuel Vadot		map4 {
1782eb4d8dcSEmmanuel Vadot			trip = <&cp0_crit>;
1792eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 4 5>;
1802eb4d8dcSEmmanuel Vadot		};
1812eb4d8dcSEmmanuel Vadot	};
1822eb4d8dcSEmmanuel Vadot};
1832eb4d8dcSEmmanuel Vadot
1842eb4d8dcSEmmanuel Vadot&cp1_thermal_ic {
1852eb4d8dcSEmmanuel Vadot	polling-delay = <1000>; /* milliseconds */
1862eb4d8dcSEmmanuel Vadot	trips {
1872eb4d8dcSEmmanuel Vadot		cp1_active0: trip-active0 {
1882eb4d8dcSEmmanuel Vadot			temperature = <40000>; /* millicelsius */
1892eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1902eb4d8dcSEmmanuel Vadot			type = "active";
1912eb4d8dcSEmmanuel Vadot		};
1922eb4d8dcSEmmanuel Vadot		cp1_active1: trip-active1 {
1932eb4d8dcSEmmanuel Vadot			temperature = <45000>; /* millicelsius */
1942eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
1952eb4d8dcSEmmanuel Vadot			type = "active";
1962eb4d8dcSEmmanuel Vadot		};
1972eb4d8dcSEmmanuel Vadot		cp1_active2: trip-active2 {
1982eb4d8dcSEmmanuel Vadot			temperature = <50000>; /* millicelsius */
1992eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
2002eb4d8dcSEmmanuel Vadot			type = "active";
2012eb4d8dcSEmmanuel Vadot		};
2022eb4d8dcSEmmanuel Vadot		cp1_active3: trip-active3 {
2032eb4d8dcSEmmanuel Vadot			temperature = <60000>; /* millicelsius */
2042eb4d8dcSEmmanuel Vadot			hysteresis = <2500>; /* millicelsius */
2052eb4d8dcSEmmanuel Vadot			type = "active";
2062eb4d8dcSEmmanuel Vadot		};
2072eb4d8dcSEmmanuel Vadot	};
2082eb4d8dcSEmmanuel Vadot	cooling-maps {
2092eb4d8dcSEmmanuel Vadot		map0 {
2102eb4d8dcSEmmanuel Vadot			trip = <&cp1_active0>;
2112eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 0 1>;
2122eb4d8dcSEmmanuel Vadot		};
2132eb4d8dcSEmmanuel Vadot		map1 {
2142eb4d8dcSEmmanuel Vadot			trip = <&cp1_active1>;
2152eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 1 2>;
2162eb4d8dcSEmmanuel Vadot		};
2172eb4d8dcSEmmanuel Vadot		map2 {
2182eb4d8dcSEmmanuel Vadot			trip = <&cp1_active2>;
2192eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 2 3>;
2202eb4d8dcSEmmanuel Vadot		};
2212eb4d8dcSEmmanuel Vadot		map3 {
2222eb4d8dcSEmmanuel Vadot			trip = <&cp1_active3>;
2232eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 3 4>;
2242eb4d8dcSEmmanuel Vadot		};
2252eb4d8dcSEmmanuel Vadot		map4 {
2262eb4d8dcSEmmanuel Vadot			trip = <&cp1_crit>;
2272eb4d8dcSEmmanuel Vadot			cooling-device = <&fan 4 5>;
2282eb4d8dcSEmmanuel Vadot		};
2292eb4d8dcSEmmanuel Vadot	};
2302eb4d8dcSEmmanuel Vadot};
2312eb4d8dcSEmmanuel Vadot
232c66ec88fSEmmanuel Vadot&uart0 {
233c66ec88fSEmmanuel Vadot	status = "okay";
234c66ec88fSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
235c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
236c66ec88fSEmmanuel Vadot};
237c66ec88fSEmmanuel Vadot
238c66ec88fSEmmanuel Vadot&ap_sdhci0 {
239c66ec88fSEmmanuel Vadot	bus-width = <8>;
240c66ec88fSEmmanuel Vadot	no-1-8-v;
241c66ec88fSEmmanuel Vadot	no-sd;
242c66ec88fSEmmanuel Vadot	no-sdio;
243c66ec88fSEmmanuel Vadot	non-removable;
244c66ec88fSEmmanuel Vadot	status = "okay";
245c66ec88fSEmmanuel Vadot	vqmmc-supply = <&v_3_3>;
246c66ec88fSEmmanuel Vadot};
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot&cp0_i2c0 {
249c66ec88fSEmmanuel Vadot	clock-frequency = <100000>;
250c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
251c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp0_i2c0_pins>;
252c66ec88fSEmmanuel Vadot	status = "okay";
253c66ec88fSEmmanuel Vadot};
254c66ec88fSEmmanuel Vadot
255c66ec88fSEmmanuel Vadot&cp0_i2c1 {
256c66ec88fSEmmanuel Vadot	clock-frequency = <100000>;
257c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
258c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp0_i2c1_pins>;
259c66ec88fSEmmanuel Vadot	status = "okay";
260c66ec88fSEmmanuel Vadot};
261c66ec88fSEmmanuel Vadot
262c66ec88fSEmmanuel Vadot&cp0_pinctrl {
263c66ec88fSEmmanuel Vadot	/*
264c66ec88fSEmmanuel Vadot	 * MPP Bus:
265c66ec88fSEmmanuel Vadot	 * [0-31] = 0xff: Keep default CP0_shared_pins:
266c66ec88fSEmmanuel Vadot	 * [11] CLKOUT_MPP_11 (out)
267c66ec88fSEmmanuel Vadot	 * [23] LINK_RD_IN_CP2CP (in)
268c66ec88fSEmmanuel Vadot	 * [25] CLKOUT_MPP_25 (out)
269c66ec88fSEmmanuel Vadot	 * [29] AVS_FB_IN_CP2CP (in)
270c66ec88fSEmmanuel Vadot	 * [32, 33, 34] pci0/1/2 reset
271c66ec88fSEmmanuel Vadot	 * [35-38] CP0 I2C1 and I2C0
272c66ec88fSEmmanuel Vadot	 * [39] GPIO reset button
273c66ec88fSEmmanuel Vadot	 * [40,41] LED0 and LED1
274c66ec88fSEmmanuel Vadot	 * [43] 1512 phy reset
275c66ec88fSEmmanuel Vadot	 * [47] USB VBUS EN (active low)
276c66ec88fSEmmanuel Vadot	 * [48] FAN PWM
277c66ec88fSEmmanuel Vadot	 * [49] SFP+ present signal
278c66ec88fSEmmanuel Vadot	 * [50] TPM interrupt
279c66ec88fSEmmanuel Vadot	 * [51] WLAN0 disable
280c66ec88fSEmmanuel Vadot	 * [52] WLAN1 disable
281c66ec88fSEmmanuel Vadot	 * [53] LTE disable
282c66ec88fSEmmanuel Vadot	 * [54] NFC reset
283c66ec88fSEmmanuel Vadot	 * [55] Micro SD card detect
284c66ec88fSEmmanuel Vadot	 * [56-61] Micro SD
285c66ec88fSEmmanuel Vadot	 */
286c66ec88fSEmmanuel Vadot
287c66ec88fSEmmanuel Vadot	cp0_pci0_reset_pins: pci0-reset-pins {
288c66ec88fSEmmanuel Vadot		marvell,pins = "mpp32";
289c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
290c66ec88fSEmmanuel Vadot	};
291c66ec88fSEmmanuel Vadot
292c66ec88fSEmmanuel Vadot	cp0_pci1_reset_pins: pci1-reset-pins {
293c66ec88fSEmmanuel Vadot		marvell,pins = "mpp33";
294c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
295c66ec88fSEmmanuel Vadot	};
296c66ec88fSEmmanuel Vadot
297c66ec88fSEmmanuel Vadot	cp0_pci2_reset_pins: pci2-reset-pins {
298c66ec88fSEmmanuel Vadot		marvell,pins = "mpp34";
299c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
300c66ec88fSEmmanuel Vadot	};
301c66ec88fSEmmanuel Vadot
302c66ec88fSEmmanuel Vadot	cp0_i2c1_pins: i2c1-pins {
303c66ec88fSEmmanuel Vadot		marvell,pins = "mpp35", "mpp36";
304c66ec88fSEmmanuel Vadot		marvell,function = "i2c1";
305c66ec88fSEmmanuel Vadot	};
306c66ec88fSEmmanuel Vadot
307c66ec88fSEmmanuel Vadot	cp0_i2c0_pins: i2c0-pins {
308c66ec88fSEmmanuel Vadot		marvell,pins = "mpp37", "mpp38";
309c66ec88fSEmmanuel Vadot		marvell,function = "i2c0";
310c66ec88fSEmmanuel Vadot	};
311c66ec88fSEmmanuel Vadot
312c66ec88fSEmmanuel Vadot	cp0_gpio_reset_pins: gpio-reset-pins {
313c66ec88fSEmmanuel Vadot		marvell,pins = "mpp39";
314c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
315c66ec88fSEmmanuel Vadot	};
316c66ec88fSEmmanuel Vadot
317c66ec88fSEmmanuel Vadot	cp0_led0_pins: led0-pins {
318c66ec88fSEmmanuel Vadot		marvell,pins = "mpp40";
319c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
320c66ec88fSEmmanuel Vadot	};
321c66ec88fSEmmanuel Vadot
322c66ec88fSEmmanuel Vadot	cp0_led1_pins: led1-pins {
323c66ec88fSEmmanuel Vadot		marvell,pins = "mpp41";
324c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
325c66ec88fSEmmanuel Vadot	};
326c66ec88fSEmmanuel Vadot
327c66ec88fSEmmanuel Vadot	cp0_copper_eth_phy_reset: copper-eth-phy-reset {
328c66ec88fSEmmanuel Vadot		marvell,pins = "mpp43";
329c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
330c66ec88fSEmmanuel Vadot	};
331c66ec88fSEmmanuel Vadot
332c66ec88fSEmmanuel Vadot	cp0_xhci_vbus_pins: xhci0-vbus-pins {
333c66ec88fSEmmanuel Vadot		marvell,pins = "mpp47";
334c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
335c66ec88fSEmmanuel Vadot	};
336c66ec88fSEmmanuel Vadot
337c66ec88fSEmmanuel Vadot	cp0_fan_pwm_pins: fan-pwm-pins {
338c66ec88fSEmmanuel Vadot		marvell,pins = "mpp48";
339c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
340c66ec88fSEmmanuel Vadot	};
341c66ec88fSEmmanuel Vadot
342c66ec88fSEmmanuel Vadot	cp0_sfp_present_pins: sfp-present-pins {
343c66ec88fSEmmanuel Vadot		marvell,pins = "mpp49";
344c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
345c66ec88fSEmmanuel Vadot	};
346c66ec88fSEmmanuel Vadot
347c66ec88fSEmmanuel Vadot	cp0_tpm_irq_pins: tpm-irq-pins {
348c66ec88fSEmmanuel Vadot		marvell,pins = "mpp50";
349c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
350c66ec88fSEmmanuel Vadot	};
351c66ec88fSEmmanuel Vadot
352c66ec88fSEmmanuel Vadot	cp0_wlan_disable_pins: wlan-disable-pins {
353c66ec88fSEmmanuel Vadot		marvell,pins = "mpp51";
354c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
355c66ec88fSEmmanuel Vadot	};
356c66ec88fSEmmanuel Vadot
357c66ec88fSEmmanuel Vadot	cp0_sdhci_pins: sdhci-pins {
358c66ec88fSEmmanuel Vadot		marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59",
359c66ec88fSEmmanuel Vadot			       "mpp60", "mpp61";
360c66ec88fSEmmanuel Vadot		marvell,function = "sdio";
361c66ec88fSEmmanuel Vadot	};
362c66ec88fSEmmanuel Vadot};
363c66ec88fSEmmanuel Vadot
364c66ec88fSEmmanuel Vadot&cp0_pcie0 {
365c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
366c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp0_pci0_reset_pins &cp0_wlan_disable_pins>;
367c66ec88fSEmmanuel Vadot	reset-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>;
368c66ec88fSEmmanuel Vadot	phys = <&cp0_comphy0 0>;
369c66ec88fSEmmanuel Vadot	phy-names = "cp0-pcie0-x1-phy";
370c66ec88fSEmmanuel Vadot	status = "okay";
371c66ec88fSEmmanuel Vadot};
372c66ec88fSEmmanuel Vadot
373c66ec88fSEmmanuel Vadot&cp0_gpio2 {
374c66ec88fSEmmanuel Vadot	sata_reset {
375c66ec88fSEmmanuel Vadot		gpio-hog;
376c66ec88fSEmmanuel Vadot		gpios = <1 GPIO_ACTIVE_HIGH>;
377c66ec88fSEmmanuel Vadot		output-high;
378c66ec88fSEmmanuel Vadot	};
379c66ec88fSEmmanuel Vadot
380c66ec88fSEmmanuel Vadot	lte_reset {
381c66ec88fSEmmanuel Vadot		gpio-hog;
382c66ec88fSEmmanuel Vadot		gpios = <2 GPIO_ACTIVE_LOW>;
383c66ec88fSEmmanuel Vadot		output-low;
384c66ec88fSEmmanuel Vadot	};
385c66ec88fSEmmanuel Vadot
386c66ec88fSEmmanuel Vadot	wlan_disable {
387c66ec88fSEmmanuel Vadot		gpio-hog;
388c66ec88fSEmmanuel Vadot		gpios = <19 GPIO_ACTIVE_LOW>;
389c66ec88fSEmmanuel Vadot		output-low;
390c66ec88fSEmmanuel Vadot	};
391c66ec88fSEmmanuel Vadot
392c66ec88fSEmmanuel Vadot	lte_disable {
393c66ec88fSEmmanuel Vadot		gpio-hog;
394c66ec88fSEmmanuel Vadot		gpios = <21 GPIO_ACTIVE_LOW>;
395c66ec88fSEmmanuel Vadot		output-low;
396c66ec88fSEmmanuel Vadot	};
397c66ec88fSEmmanuel Vadot};
398c66ec88fSEmmanuel Vadot
399c66ec88fSEmmanuel Vadot&cp0_ethernet {
400c66ec88fSEmmanuel Vadot	status = "okay";
401c66ec88fSEmmanuel Vadot};
402c66ec88fSEmmanuel Vadot
403c66ec88fSEmmanuel Vadot/* SFP */
404c66ec88fSEmmanuel Vadot&cp0_eth0 {
405c66ec88fSEmmanuel Vadot	status = "okay";
406c66ec88fSEmmanuel Vadot	phy-mode = "10gbase-r";
407c66ec88fSEmmanuel Vadot	managed = "in-band-status";
408c66ec88fSEmmanuel Vadot	phys = <&cp0_comphy2 0>;
409c66ec88fSEmmanuel Vadot	sfp = <&sfp_cp0_eth0>;
410c66ec88fSEmmanuel Vadot};
411c66ec88fSEmmanuel Vadot
412c66ec88fSEmmanuel Vadot&cp0_sdhci0 {
413c66ec88fSEmmanuel Vadot	broken-cd;
414c66ec88fSEmmanuel Vadot	bus-width = <4>;
415c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
416c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp0_sdhci_pins>;
417c66ec88fSEmmanuel Vadot	status = "okay";
418c66ec88fSEmmanuel Vadot	vqmmc-supply = <&v_3_3>;
419c66ec88fSEmmanuel Vadot};
420c66ec88fSEmmanuel Vadot
421c66ec88fSEmmanuel Vadot&cp0_usb3_1 {
422c66ec88fSEmmanuel Vadot	status = "okay";
423c66ec88fSEmmanuel Vadot};
424c66ec88fSEmmanuel Vadot
425c66ec88fSEmmanuel Vadot&cp1_pinctrl {
426c66ec88fSEmmanuel Vadot	/*
427c66ec88fSEmmanuel Vadot	 * MPP Bus:
428c66ec88fSEmmanuel Vadot	 * [0-5] TDM
429c66ec88fSEmmanuel Vadot	 * [6]   VHV Enable
430c66ec88fSEmmanuel Vadot	 * [7]   CP1 SPI0 CSn1 (FXS)
431c66ec88fSEmmanuel Vadot	 * [8]   CP1 SPI0 CSn0 (TPM)
432c66ec88fSEmmanuel Vadot	 * [9.11]CP1 SPI0 MOSI/MISO/CLK
433c66ec88fSEmmanuel Vadot	 * [13]  CP1 SPI1 MISO (TDM and SPI ROM shared)
434c66ec88fSEmmanuel Vadot	 * [14]  CP1 SPI1 CS0n (64Mb SPI ROM)
435c66ec88fSEmmanuel Vadot	 * [15]  CP1 SPI1 MOSI (TDM and SPI ROM shared)
436c66ec88fSEmmanuel Vadot	 * [16]  CP1 SPI1 CLK (TDM and SPI ROM shared)
437c66ec88fSEmmanuel Vadot	 * [24]  Topaz switch reset
438c66ec88fSEmmanuel Vadot	 * [26]  Buzzer
439c66ec88fSEmmanuel Vadot	 * [27]  CP1 SMI MDIO
440c66ec88fSEmmanuel Vadot	 * [28]  CP1 SMI MDC
441c66ec88fSEmmanuel Vadot	 * [29]  CP0 10G SFP TX Disable
442c66ec88fSEmmanuel Vadot	 * [30]  WPS button
443c66ec88fSEmmanuel Vadot	 * [31]  Front panel button
444c66ec88fSEmmanuel Vadot	 */
445c66ec88fSEmmanuel Vadot
446c66ec88fSEmmanuel Vadot	cp1_spi1_pins: spi1-pins {
447c66ec88fSEmmanuel Vadot		marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
448c66ec88fSEmmanuel Vadot		marvell,function = "spi1";
449c66ec88fSEmmanuel Vadot	};
450c66ec88fSEmmanuel Vadot
451c66ec88fSEmmanuel Vadot	cp1_switch_reset_pins: switch-reset-pins {
452c66ec88fSEmmanuel Vadot		marvell,pins = "mpp24";
453c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
454c66ec88fSEmmanuel Vadot	};
455c66ec88fSEmmanuel Vadot
456c66ec88fSEmmanuel Vadot	cp1_ge_mdio_pins: ge-mdio-pins {
457c66ec88fSEmmanuel Vadot		marvell,pins = "mpp27", "mpp28";
458c66ec88fSEmmanuel Vadot		marvell,function = "ge";
459c66ec88fSEmmanuel Vadot	};
460c66ec88fSEmmanuel Vadot
461c66ec88fSEmmanuel Vadot	cp1_sfp_tx_disable_pins: sfp-tx-disable-pins {
462c66ec88fSEmmanuel Vadot		marvell,pins = "mpp29";
463c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
464c66ec88fSEmmanuel Vadot	};
465c66ec88fSEmmanuel Vadot
466c66ec88fSEmmanuel Vadot	cp1_wps_button_pins: wps-button-pins {
467c66ec88fSEmmanuel Vadot		marvell,pins = "mpp30";
468c66ec88fSEmmanuel Vadot		marvell,function = "gpio";
469c66ec88fSEmmanuel Vadot	};
470c66ec88fSEmmanuel Vadot};
471c66ec88fSEmmanuel Vadot
472c66ec88fSEmmanuel Vadot&cp1_sata0 {
473c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp0_pci1_reset_pins>;
474c66ec88fSEmmanuel Vadot	status = "okay";
475c66ec88fSEmmanuel Vadot
476c66ec88fSEmmanuel Vadot	sata-port@1 {
477c66ec88fSEmmanuel Vadot		phys = <&cp1_comphy0 1>;
478c66ec88fSEmmanuel Vadot		phy-names = "cp1-sata0-1-phy";
479c66ec88fSEmmanuel Vadot	};
480c66ec88fSEmmanuel Vadot};
481c66ec88fSEmmanuel Vadot
482c66ec88fSEmmanuel Vadot&cp1_mdio {
483c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
484c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp1_ge_mdio_pins>;
485c66ec88fSEmmanuel Vadot	status = "okay";
486c66ec88fSEmmanuel Vadot
487c66ec88fSEmmanuel Vadot	ge_phy: ethernet-phy@0 {
488c66ec88fSEmmanuel Vadot		/* LED0 - GB link
489c66ec88fSEmmanuel Vadot		 * LED1 - on: link, blink: activity
490c66ec88fSEmmanuel Vadot		 */
491c66ec88fSEmmanuel Vadot		marvell,reg-init = <3 16 0 0x1017>;
492c66ec88fSEmmanuel Vadot		reg = <0>;
493c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
494c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp0_copper_eth_phy_reset>;
495c66ec88fSEmmanuel Vadot		reset-gpios = <&cp0_gpio2 11 GPIO_ACTIVE_LOW>;
496c66ec88fSEmmanuel Vadot		reset-assert-us = <10000>;
497c66ec88fSEmmanuel Vadot		reset-deassert-us = <10000>;
498c66ec88fSEmmanuel Vadot	};
499c66ec88fSEmmanuel Vadot
500*8d13bc63SEmmanuel Vadot	switch0: ethernet-switch@4 {
501c66ec88fSEmmanuel Vadot		compatible = "marvell,mv88e6085";
502c66ec88fSEmmanuel Vadot		reg = <4>;
503c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
504c66ec88fSEmmanuel Vadot		pinctrl-0 = <&cp1_switch_reset_pins>;
505c66ec88fSEmmanuel Vadot		reset-gpios = <&cp1_gpio1 24 GPIO_ACTIVE_LOW>;
506c66ec88fSEmmanuel Vadot
507*8d13bc63SEmmanuel Vadot		ethernet-ports {
508c66ec88fSEmmanuel Vadot			#address-cells = <1>;
509c66ec88fSEmmanuel Vadot			#size-cells = <0>;
510c66ec88fSEmmanuel Vadot
511*8d13bc63SEmmanuel Vadot			ethernet-port@1 {
512c66ec88fSEmmanuel Vadot				reg = <1>;
513c66ec88fSEmmanuel Vadot				label = "lan2";
514c66ec88fSEmmanuel Vadot				phy-handle = <&switch0phy0>;
515c66ec88fSEmmanuel Vadot			};
516c66ec88fSEmmanuel Vadot
517*8d13bc63SEmmanuel Vadot			ethernet-port@2 {
518c66ec88fSEmmanuel Vadot				reg = <2>;
519c66ec88fSEmmanuel Vadot				label = "lan1";
520c66ec88fSEmmanuel Vadot				phy-handle = <&switch0phy1>;
521c66ec88fSEmmanuel Vadot			};
522c66ec88fSEmmanuel Vadot
523*8d13bc63SEmmanuel Vadot			ethernet-port@3 {
524c66ec88fSEmmanuel Vadot				reg = <3>;
525c66ec88fSEmmanuel Vadot				label = "lan4";
526c66ec88fSEmmanuel Vadot				phy-handle = <&switch0phy2>;
527c66ec88fSEmmanuel Vadot			};
528c66ec88fSEmmanuel Vadot
529*8d13bc63SEmmanuel Vadot			ethernet-port@4 {
530c66ec88fSEmmanuel Vadot				reg = <4>;
531c66ec88fSEmmanuel Vadot				label = "lan3";
532c66ec88fSEmmanuel Vadot				phy-handle = <&switch0phy3>;
533c66ec88fSEmmanuel Vadot			};
534c66ec88fSEmmanuel Vadot
535*8d13bc63SEmmanuel Vadot			ethernet-port@5 {
536c66ec88fSEmmanuel Vadot				reg = <5>;
537c66ec88fSEmmanuel Vadot				label = "cpu";
538c66ec88fSEmmanuel Vadot				ethernet = <&cp1_eth2>;
539c66ec88fSEmmanuel Vadot				phy-mode = "2500base-x";
540c66ec88fSEmmanuel Vadot				managed = "in-band-status";
541c66ec88fSEmmanuel Vadot			};
542c66ec88fSEmmanuel Vadot		};
543c66ec88fSEmmanuel Vadot
544c66ec88fSEmmanuel Vadot		mdio {
545c66ec88fSEmmanuel Vadot			#address-cells = <1>;
546c66ec88fSEmmanuel Vadot			#size-cells = <0>;
547c66ec88fSEmmanuel Vadot
548*8d13bc63SEmmanuel Vadot			switch0phy0: ethernet-phy@11 {
549c66ec88fSEmmanuel Vadot				reg = <0x11>;
550c66ec88fSEmmanuel Vadot			};
551c66ec88fSEmmanuel Vadot
552*8d13bc63SEmmanuel Vadot			switch0phy1: ethernet-phy@12 {
553c66ec88fSEmmanuel Vadot				reg = <0x12>;
554c66ec88fSEmmanuel Vadot			};
555c66ec88fSEmmanuel Vadot
556*8d13bc63SEmmanuel Vadot			switch0phy2: ethernet-phy@13 {
557c66ec88fSEmmanuel Vadot				reg = <0x13>;
558c66ec88fSEmmanuel Vadot			};
559c66ec88fSEmmanuel Vadot
560*8d13bc63SEmmanuel Vadot			switch0phy3: ethernet-phy@14 {
561c66ec88fSEmmanuel Vadot				reg = <0x14>;
562c66ec88fSEmmanuel Vadot			};
563c66ec88fSEmmanuel Vadot		};
564c66ec88fSEmmanuel Vadot	};
565c66ec88fSEmmanuel Vadot};
566c66ec88fSEmmanuel Vadot
567c66ec88fSEmmanuel Vadot&cp1_ethernet {
568c66ec88fSEmmanuel Vadot	status = "okay";
569c66ec88fSEmmanuel Vadot};
570c66ec88fSEmmanuel Vadot
571c66ec88fSEmmanuel Vadot/* 1G copper */
572c66ec88fSEmmanuel Vadot&cp1_eth1 {
573c66ec88fSEmmanuel Vadot	status = "okay";
574c66ec88fSEmmanuel Vadot	phy-mode = "sgmii";
575c66ec88fSEmmanuel Vadot	phy = <&ge_phy>;
576c66ec88fSEmmanuel Vadot	phys = <&cp1_comphy3 1>;
577c66ec88fSEmmanuel Vadot};
578c66ec88fSEmmanuel Vadot
579c66ec88fSEmmanuel Vadot/* Switch uplink */
580c66ec88fSEmmanuel Vadot&cp1_eth2 {
581c66ec88fSEmmanuel Vadot	status = "okay";
582c66ec88fSEmmanuel Vadot	phy-mode = "2500base-x";
583c66ec88fSEmmanuel Vadot	phys = <&cp1_comphy5 2>;
584c66ec88fSEmmanuel Vadot	managed = "in-band-status";
585c66ec88fSEmmanuel Vadot};
586c66ec88fSEmmanuel Vadot
587c66ec88fSEmmanuel Vadot&cp1_spi1 {
588c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
589c66ec88fSEmmanuel Vadot	pinctrl-0 = <&cp1_spi1_pins>;
590c66ec88fSEmmanuel Vadot	status = "okay";
591c66ec88fSEmmanuel Vadot
592d5b0e70fSEmmanuel Vadot	flash@0 {
593c66ec88fSEmmanuel Vadot		compatible = "st,w25q32";
594c66ec88fSEmmanuel Vadot		spi-max-frequency = <50000000>;
595c66ec88fSEmmanuel Vadot		reg = <0>;
596c66ec88fSEmmanuel Vadot	};
597c66ec88fSEmmanuel Vadot};
598c66ec88fSEmmanuel Vadot
599c66ec88fSEmmanuel Vadot&cp1_comphy2 {
600c66ec88fSEmmanuel Vadot	cp1_usbh0_con: connector {
601c66ec88fSEmmanuel Vadot		compatible = "usb-a-connector";
602c66ec88fSEmmanuel Vadot		phy-supply = <&v_5v0_usb3_hst_vbus>;
603c66ec88fSEmmanuel Vadot	};
604c66ec88fSEmmanuel Vadot};
605c66ec88fSEmmanuel Vadot
606c66ec88fSEmmanuel Vadot&cp1_usb3_0 {
607c66ec88fSEmmanuel Vadot	phys = <&cp1_comphy2 0>;
608c66ec88fSEmmanuel Vadot	phy-names = "cp1-usb3h0-comphy";
609c66ec88fSEmmanuel Vadot	status = "okay";
610c66ec88fSEmmanuel Vadot};
611