xref: /freebsd/sys/contrib/device-tree/src/arm64/marvell/cn9130-cf-base.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2024 Josua Mayer <josua@solid-run.com>
4 *
5 * DTS for SolidRun CN9130 Clearfog Base.
6 *
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/input/input.h>
12#include <dt-bindings/leds/common.h>
13
14#include "cn9130.dtsi"
15#include "cn9130-sr-som.dtsi"
16#include "cn9130-cf.dtsi"
17
18/ {
19	model = "SolidRun CN9130 Clearfog Base";
20	compatible = "solidrun,cn9130-clearfog-base",
21		     "solidrun,cn9130-sr-som", "marvell,cn9130";
22
23	gpio-keys {
24		compatible = "gpio-keys";
25		pinctrl-0 = <&rear_button_pins>;
26		pinctrl-names = "default";
27
28		button-0 {
29			/* The rear SW3 button */
30			label = "Rear Button";
31			gpios = <&cp0_gpio1 31 GPIO_ACTIVE_LOW>;
32			linux,can-disable;
33			linux,code = <BTN_0>;
34		};
35	};
36
37	rfkill-m2-gnss {
38		compatible = "rfkill-gpio";
39		label = "m.2 GNSS";
40		radio-type = "gps";
41		/* rfkill-gpio inverts internally */
42		shutdown-gpios = <&expander0 9 GPIO_ACTIVE_HIGH>;
43	};
44
45	/* M.2 is B-keyed, so w-disable is for WWAN */
46	rfkill-m2-wwan {
47		compatible = "rfkill-gpio";
48		label = "m.2 WWAN";
49		radio-type = "wwan";
50		/* rfkill-gpio inverts internally */
51		shutdown-gpios = <&expander0 8 GPIO_ACTIVE_HIGH>;
52	};
53};
54
55/* SRDS #3 - SGMII 1GE */
56&cp0_eth1 {
57	phy = <&phy1>;
58	phys = <&cp0_comphy3 1>;
59	phy-mode = "sgmii";
60	status = "okay";
61};
62
63&cp0_eth2_phy {
64	/*
65	 * Configure LEDs default behaviour:
66	 * - LED[0]: link/activity: On/blink (green)
67	 * - LED[1]: link is 100/1000Mbps: On (yellow)
68	 * - LED[2]: high impedance (floating)
69	 */
70	marvell,reg-init = <3 16 0xf000 0x0a61>;
71
72	leds {
73		#address-cells = <1>;
74		#size-cells = <0>;
75
76		led@0 {
77			reg = <0>;
78			color = <LED_COLOR_ID_GREEN>;
79			function = LED_FUNCTION_WAN;
80			default-state = "keep";
81		};
82
83		led@1 {
84			reg = <1>;
85			color = <LED_COLOR_ID_YELLOW>;
86			function = LED_FUNCTION_WAN;
87			default-state = "keep";
88		};
89	};
90};
91
92&cp0_gpio1 {
93	sim-select-hog {
94		gpio-hog;
95		gpios = <27 GPIO_ACTIVE_HIGH>;
96		output-high;
97		line-name = "sim-select";
98	};
99};
100
101&cp0_mdio {
102	phy1: ethernet-phy@1 {
103		reg = <1>;
104		/*
105		 * Configure LEDs default behaviour:
106		 * - LED[0]: link/activity: On/blink (green)
107		 * - LED[1]: link is 100/1000Mbps: On (yellow)
108		 * - LED[2]: high impedance (floating)
109		 *
110		 * Configure LEDs electrical polarity
111		 * - on-state: low
112		 * - off-state: high (not hi-z, to avoid residual glow)
113		 */
114		marvell,reg-init = <3 16 0xf000 0x0a61>,
115				   <3 17 0x003f 0x000a>;
116
117		leds {
118			#address-cells = <1>;
119			#size-cells = <0>;
120
121			led@0 {
122				reg = <0>;
123				color = <LED_COLOR_ID_GREEN>;
124				function = LED_FUNCTION_LAN;
125				default-state = "keep";
126			};
127
128			led@1 {
129				reg = <1>;
130				color = <LED_COLOR_ID_YELLOW>;
131				function = LED_FUNCTION_LAN;
132				default-state = "keep";
133			};
134		};
135	};
136};
137
138&cp0_pinctrl {
139	pinctrl-0 = <&sim_select_pins>;
140	pintrl-names = "default";
141
142	rear_button_pins: cp0-rear-button-pins {
143		marvell,pins = "mpp31";
144		marvell,function = "gpio";
145	};
146
147	sim_select_pins: cp0-sim-select-pins {
148		marvell,pins = "mpp27";
149		marvell,function = "gpio";
150	};
151};
152
153/*
154 * SRDS #4 - USB 3.0 host on M.2 connector
155 * USB-2.0 Host on Type-A connector
156 */
157&cp0_usb3_1 {
158	phys = <&cp0_comphy4 1>, <&cp0_utmi1>;
159	phy-names = "comphy", "utmi";
160	dr_mode = "host";
161	status = "okay";
162};
163
164&expander0 {
165	m2-full-card-power-off-hog {
166		gpio-hog;
167		gpios = <2 GPIO_ACTIVE_LOW>;
168		output-low;
169		line-name = "m2-full-card-power-off";
170	};
171
172	m2-reset-hog {
173		gpio-hog;
174		gpios = <10 GPIO_ACTIVE_LOW>;
175		output-low;
176		line-name = "m2-reset";
177	};
178};
179