xref: /linux/scripts/dtc/include-prefixes/riscv/sophgo/sg2042-evb-v1.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
1*100513b2SHan Gao// SPDX-License-Identifier: GPL-2.0 OR MIT
2*100513b2SHan Gao/*
3*100513b2SHan Gao * Copyright (C) 2025 Sophgo Technology Inc. All rights reserved.
4*100513b2SHan Gao */
5*100513b2SHan Gao
6*100513b2SHan Gao#include "sg2042.dtsi"
7*100513b2SHan Gao
8*100513b2SHan Gao#include <dt-bindings/gpio/gpio.h>
9*100513b2SHan Gao#include <dt-bindings/input/input.h>
10*100513b2SHan Gao
11*100513b2SHan Gao/ {
12*100513b2SHan Gao	model = "Sophgo SG2042 EVB V1.X";
13*100513b2SHan Gao	compatible = "sophgo,sg2042-evb-v1", "sophgo,sg2042";
14*100513b2SHan Gao
15*100513b2SHan Gao	chosen {
16*100513b2SHan Gao		stdout-path = "serial0";
17*100513b2SHan Gao	};
18*100513b2SHan Gao
19*100513b2SHan Gao	gpio-power {
20*100513b2SHan Gao		compatible = "gpio-keys";
21*100513b2SHan Gao
22*100513b2SHan Gao		key-power {
23*100513b2SHan Gao			label = "Power Key";
24*100513b2SHan Gao			linux,code = <KEY_POWER>;
25*100513b2SHan Gao			gpios = <&port0a 22 GPIO_ACTIVE_HIGH>;
26*100513b2SHan Gao			linux,input-type = <EV_KEY>;
27*100513b2SHan Gao			debounce-interval = <100>;
28*100513b2SHan Gao		};
29*100513b2SHan Gao	};
30*100513b2SHan Gao
31*100513b2SHan Gao	pwmfan: pwm-fan {
32*100513b2SHan Gao		compatible = "pwm-fan";
33*100513b2SHan Gao		cooling-levels = <103 128 179 230 255>;
34*100513b2SHan Gao		pwms = <&pwm 0 40000 0>;
35*100513b2SHan Gao		#cooling-cells = <2>;
36*100513b2SHan Gao	};
37*100513b2SHan Gao
38*100513b2SHan Gao	thermal-zones {
39*100513b2SHan Gao		soc-thermal {
40*100513b2SHan Gao			polling-delay-passive = <1000>;
41*100513b2SHan Gao			polling-delay = <1000>;
42*100513b2SHan Gao			thermal-sensors = <&mcu 0>;
43*100513b2SHan Gao
44*100513b2SHan Gao			trips {
45*100513b2SHan Gao				soc_active1: soc-active1 {
46*100513b2SHan Gao					temperature = <30000>;
47*100513b2SHan Gao					hysteresis = <8000>;
48*100513b2SHan Gao					type = "active";
49*100513b2SHan Gao				};
50*100513b2SHan Gao
51*100513b2SHan Gao				soc_active2: soc-active2 {
52*100513b2SHan Gao					temperature = <58000>;
53*100513b2SHan Gao					hysteresis = <12000>;
54*100513b2SHan Gao					type = "active";
55*100513b2SHan Gao				};
56*100513b2SHan Gao
57*100513b2SHan Gao				soc_active3: soc-active3 {
58*100513b2SHan Gao					temperature = <70000>;
59*100513b2SHan Gao					hysteresis = <10000>;
60*100513b2SHan Gao					type = "active";
61*100513b2SHan Gao				};
62*100513b2SHan Gao
63*100513b2SHan Gao				soc_hot: soc-hot {
64*100513b2SHan Gao					temperature = <80000>;
65*100513b2SHan Gao					hysteresis = <5000>;
66*100513b2SHan Gao					type = "hot";
67*100513b2SHan Gao				};
68*100513b2SHan Gao			};
69*100513b2SHan Gao
70*100513b2SHan Gao			cooling-maps {
71*100513b2SHan Gao				map0 {
72*100513b2SHan Gao					trip = <&soc_active1>;
73*100513b2SHan Gao					cooling-device = <&pwmfan 0 1>;
74*100513b2SHan Gao				};
75*100513b2SHan Gao
76*100513b2SHan Gao				map1 {
77*100513b2SHan Gao					trip = <&soc_active2>;
78*100513b2SHan Gao					cooling-device = <&pwmfan 1 2>;
79*100513b2SHan Gao				};
80*100513b2SHan Gao
81*100513b2SHan Gao				map2 {
82*100513b2SHan Gao					trip = <&soc_active3>;
83*100513b2SHan Gao					cooling-device = <&pwmfan 2 3>;
84*100513b2SHan Gao				};
85*100513b2SHan Gao
86*100513b2SHan Gao				map3 {
87*100513b2SHan Gao					trip = <&soc_hot>;
88*100513b2SHan Gao					cooling-device = <&pwmfan 3 4>;
89*100513b2SHan Gao				};
90*100513b2SHan Gao			};
91*100513b2SHan Gao		};
92*100513b2SHan Gao
93*100513b2SHan Gao		board-thermal {
94*100513b2SHan Gao			polling-delay-passive = <1000>;
95*100513b2SHan Gao			polling-delay = <1000>;
96*100513b2SHan Gao			thermal-sensors = <&mcu 1>;
97*100513b2SHan Gao
98*100513b2SHan Gao			trips {
99*100513b2SHan Gao				board_active: board-active {
100*100513b2SHan Gao					temperature = <75000>;
101*100513b2SHan Gao					hysteresis = <8000>;
102*100513b2SHan Gao					type = "active";
103*100513b2SHan Gao				};
104*100513b2SHan Gao			};
105*100513b2SHan Gao
106*100513b2SHan Gao			cooling-maps {
107*100513b2SHan Gao				map4 {
108*100513b2SHan Gao					trip = <&board_active>;
109*100513b2SHan Gao					cooling-device = <&pwmfan 3 4>;
110*100513b2SHan Gao				};
111*100513b2SHan Gao			};
112*100513b2SHan Gao		};
113*100513b2SHan Gao	};
114*100513b2SHan Gao};
115*100513b2SHan Gao
116*100513b2SHan Gao&cgi_main {
117*100513b2SHan Gao	clock-frequency = <25000000>;
118*100513b2SHan Gao};
119*100513b2SHan Gao
120*100513b2SHan Gao&cgi_dpll0 {
121*100513b2SHan Gao	clock-frequency = <25000000>;
122*100513b2SHan Gao};
123*100513b2SHan Gao
124*100513b2SHan Gao&cgi_dpll1 {
125*100513b2SHan Gao	clock-frequency = <25000000>;
126*100513b2SHan Gao};
127*100513b2SHan Gao
128*100513b2SHan Gao&emmc {
129*100513b2SHan Gao	pinctrl-0 = <&emmc_cfg>;
130*100513b2SHan Gao	pinctrl-names = "default";
131*100513b2SHan Gao	bus-width = <4>;
132*100513b2SHan Gao	no-sdio;
133*100513b2SHan Gao	no-sd;
134*100513b2SHan Gao	non-removable;
135*100513b2SHan Gao	wp-inverted;
136*100513b2SHan Gao	status = "okay";
137*100513b2SHan Gao};
138*100513b2SHan Gao
139*100513b2SHan Gao&i2c1 {
140*100513b2SHan Gao	pinctrl-0 = <&i2c1_cfg>;
141*100513b2SHan Gao	pinctrl-names = "default";
142*100513b2SHan Gao	status = "okay";
143*100513b2SHan Gao
144*100513b2SHan Gao	mcu: syscon@17 {
145*100513b2SHan Gao		compatible = "sophgo,sg2042-hwmon-mcu";
146*100513b2SHan Gao		reg = <0x17>;
147*100513b2SHan Gao		#thermal-sensor-cells = <1>;
148*100513b2SHan Gao	};
149*100513b2SHan Gao};
150*100513b2SHan Gao
151*100513b2SHan Gao&gmac0 {
152*100513b2SHan Gao	phy-handle = <&phy0>;
153*100513b2SHan Gao	phy-mode = "rgmii-id";
154*100513b2SHan Gao	status = "okay";
155*100513b2SHan Gao
156*100513b2SHan Gao	mdio {
157*100513b2SHan Gao		phy0: phy@0 {
158*100513b2SHan Gao			compatible = "ethernet-phy-ieee802.3-c22";
159*100513b2SHan Gao			reg = <0>;
160*100513b2SHan Gao			reset-gpios = <&port0a 27 GPIO_ACTIVE_LOW>;
161*100513b2SHan Gao			reset-assert-us = <100000>;
162*100513b2SHan Gao			reset-deassert-us = <100000>;
163*100513b2SHan Gao		};
164*100513b2SHan Gao	};
165*100513b2SHan Gao};
166*100513b2SHan Gao
167*100513b2SHan Gao&pinctrl {
168*100513b2SHan Gao	emmc_cfg: sdhci-emmc-cfg {
169*100513b2SHan Gao		sdhci-emmc-wp-pins {
170*100513b2SHan Gao			pinmux = <PINMUX(PIN_EMMC_WP, 0)>;
171*100513b2SHan Gao			bias-disable;
172*100513b2SHan Gao			drive-strength-microamp = <26800>;
173*100513b2SHan Gao			input-schmitt-disable;
174*100513b2SHan Gao		};
175*100513b2SHan Gao
176*100513b2SHan Gao		sdhci-emmc-cd-pins {
177*100513b2SHan Gao			pinmux = <PINMUX(PIN_EMMC_CD, 0)>;
178*100513b2SHan Gao			bias-pull-up;
179*100513b2SHan Gao			drive-strength-microamp = <26800>;
180*100513b2SHan Gao			input-schmitt-enable;
181*100513b2SHan Gao		};
182*100513b2SHan Gao
183*100513b2SHan Gao		sdhci-emmc-rst-pwr-pins {
184*100513b2SHan Gao			pinmux = <PINMUX(PIN_EMMC_RST, 0)>,
185*100513b2SHan Gao				 <PINMUX(PIN_EMMC_PWR_EN, 0)>;
186*100513b2SHan Gao			bias-disable;
187*100513b2SHan Gao			drive-strength-microamp = <26800>;
188*100513b2SHan Gao			input-schmitt-disable;
189*100513b2SHan Gao		};
190*100513b2SHan Gao	};
191*100513b2SHan Gao
192*100513b2SHan Gao	i2c1_cfg: i2c1-cfg {
193*100513b2SHan Gao		i2c1-pins {
194*100513b2SHan Gao			pinmux = <PINMUX(PIN_IIC1_SDA, 0)>,
195*100513b2SHan Gao				 <PINMUX(PIN_IIC1_SCL, 0)>;
196*100513b2SHan Gao			bias-pull-up;
197*100513b2SHan Gao			drive-strength-microamp = <26800>;
198*100513b2SHan Gao			input-schmitt-enable;
199*100513b2SHan Gao		};
200*100513b2SHan Gao	};
201*100513b2SHan Gao
202*100513b2SHan Gao	sd_cfg: sdhci-sd-cfg {
203*100513b2SHan Gao		sdhci-sd-cd-wp-pins {
204*100513b2SHan Gao			pinmux = <PINMUX(PIN_SDIO_CD, 0)>,
205*100513b2SHan Gao				 <PINMUX(PIN_SDIO_WP, 0)>;
206*100513b2SHan Gao			bias-pull-up;
207*100513b2SHan Gao			drive-strength-microamp = <26800>;
208*100513b2SHan Gao			input-schmitt-enable;
209*100513b2SHan Gao		};
210*100513b2SHan Gao
211*100513b2SHan Gao		sdhci-sd-rst-pwr-pins {
212*100513b2SHan Gao			pinmux = <PINMUX(PIN_SDIO_RST, 0)>,
213*100513b2SHan Gao				 <PINMUX(PIN_SDIO_PWR_EN, 0)>;
214*100513b2SHan Gao			bias-disable;
215*100513b2SHan Gao			drive-strength-microamp = <26800>;
216*100513b2SHan Gao			input-schmitt-disable;
217*100513b2SHan Gao		};
218*100513b2SHan Gao	};
219*100513b2SHan Gao
220*100513b2SHan Gao	uart0_cfg: uart0-cfg {
221*100513b2SHan Gao		uart0-rx-pins {
222*100513b2SHan Gao			pinmux = <PINMUX(PIN_UART0_TX, 0)>,
223*100513b2SHan Gao				 <PINMUX(PIN_UART0_RX, 0)>;
224*100513b2SHan Gao			bias-pull-up;
225*100513b2SHan Gao			drive-strength-microamp = <26800>;
226*100513b2SHan Gao			input-schmitt-enable;
227*100513b2SHan Gao		};
228*100513b2SHan Gao	};
229*100513b2SHan Gao};
230*100513b2SHan Gao
231*100513b2SHan Gao&sd {
232*100513b2SHan Gao	pinctrl-0 = <&sd_cfg>;
233*100513b2SHan Gao	pinctrl-names = "default";
234*100513b2SHan Gao	bus-width = <4>;
235*100513b2SHan Gao	no-sdio;
236*100513b2SHan Gao	no-mmc;
237*100513b2SHan Gao	wp-inverted;
238*100513b2SHan Gao	status = "okay";
239*100513b2SHan Gao};
240*100513b2SHan Gao
241*100513b2SHan Gao&uart0 {
242*100513b2SHan Gao	pinctrl-0 = <&uart0_cfg>;
243*100513b2SHan Gao	pinctrl-names = "default";
244*100513b2SHan Gao	status = "okay";
245*100513b2SHan Gao};
246