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