xref: /linux/arch/riscv/boot/dts/sophgo/sg2042-milkv-pioneer.dts (revision ab93e0dd72c37d378dd936f031ffb83ff2bd87ce)
19439a0e8SChen Wang// SPDX-License-Identifier: GPL-2.0 OR MIT
29439a0e8SChen Wang/*
39439a0e8SChen Wang * Copyright (C) 2022 Sophgo Technology Inc. All rights reserved.
49439a0e8SChen Wang */
59439a0e8SChen Wang
69439a0e8SChen Wang#include "sg2042.dtsi"
79439a0e8SChen Wang
8128bded4SChen Wang#include <dt-bindings/gpio/gpio.h>
9128bded4SChen Wang#include <dt-bindings/input/input.h>
10128bded4SChen Wang
119439a0e8SChen Wang/ {
129439a0e8SChen Wang	model = "Milk-V Pioneer";
139439a0e8SChen Wang	compatible = "milkv,pioneer", "sophgo,sg2042";
149439a0e8SChen Wang
159439a0e8SChen Wang	chosen {
169439a0e8SChen Wang		stdout-path = "serial0";
179439a0e8SChen Wang	};
18128bded4SChen Wang
19128bded4SChen Wang	gpio-power {
20128bded4SChen Wang		compatible = "gpio-keys";
21128bded4SChen Wang
22128bded4SChen Wang		key-power {
23128bded4SChen Wang			label = "Power Key";
24128bded4SChen Wang			linux,code = <KEY_POWER>;
25128bded4SChen Wang			gpios = <&port0a 22 GPIO_ACTIVE_HIGH>;
26128bded4SChen Wang			linux,input-type = <EV_KEY>;
27128bded4SChen Wang			debounce-interval = <100>;
28128bded4SChen Wang		};
29128bded4SChen Wang	};
309439a0e8SChen Wang};
319439a0e8SChen Wang
32b1240a39SChen Wang&cgi_main {
33b1240a39SChen Wang	clock-frequency = <25000000>;
34b1240a39SChen Wang};
35b1240a39SChen Wang
36b1240a39SChen Wang&cgi_dpll0 {
37b1240a39SChen Wang	clock-frequency = <25000000>;
38b1240a39SChen Wang};
39b1240a39SChen Wang
40b1240a39SChen Wang&cgi_dpll1 {
41b1240a39SChen Wang	clock-frequency = <25000000>;
42b1240a39SChen Wang};
43b1240a39SChen Wang
44014b839fSChen Wang&emmc {
45*1cb666ecSInochi Amaoto	pinctrl-0 = <&emmc_cfg>;
46*1cb666ecSInochi Amaoto	pinctrl-names = "default";
47014b839fSChen Wang	bus-width = <4>;
48014b839fSChen Wang	no-sdio;
49014b839fSChen Wang	no-sd;
50014b839fSChen Wang	non-removable;
51014b839fSChen Wang	wp-inverted;
52014b839fSChen Wang	status = "okay";
53014b839fSChen Wang};
54014b839fSChen Wang
55585dcb21SInochi Amaoto&i2c1 {
56*1cb666ecSInochi Amaoto	pinctrl-0 = <&i2c1_cfg>;
57*1cb666ecSInochi Amaoto	pinctrl-names = "default";
58585dcb21SInochi Amaoto	status = "okay";
59585dcb21SInochi Amaoto
60585dcb21SInochi Amaoto	mcu: syscon@17 {
61585dcb21SInochi Amaoto		compatible = "sophgo,sg2042-hwmon-mcu";
62585dcb21SInochi Amaoto		reg = <0x17>;
63585dcb21SInochi Amaoto		#thermal-sensor-cells = <1>;
64585dcb21SInochi Amaoto	};
65585dcb21SInochi Amaoto};
66585dcb21SInochi Amaoto
67*1cb666ecSInochi Amaoto&pinctrl {
68*1cb666ecSInochi Amaoto	emmc_cfg: sdhci-emmc-cfg {
69*1cb666ecSInochi Amaoto		sdhci-emmc-wp-pins {
70*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_EMMC_WP, 0)>;
71*1cb666ecSInochi Amaoto			bias-disable;
72*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
73*1cb666ecSInochi Amaoto			input-schmitt-disable;
74*1cb666ecSInochi Amaoto		};
75*1cb666ecSInochi Amaoto
76*1cb666ecSInochi Amaoto		sdhci-emmc-cd-pins {
77*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_EMMC_CD, 0)>;
78*1cb666ecSInochi Amaoto			bias-pull-up;
79*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
80*1cb666ecSInochi Amaoto			input-schmitt-enable;
81*1cb666ecSInochi Amaoto		};
82*1cb666ecSInochi Amaoto
83*1cb666ecSInochi Amaoto		sdhci-emmc-rst-pwr-pins {
84*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_EMMC_RST, 0)>,
85*1cb666ecSInochi Amaoto				 <PINMUX(PIN_EMMC_PWR_EN, 0)>;
86*1cb666ecSInochi Amaoto			bias-disable;
87*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
88*1cb666ecSInochi Amaoto			input-schmitt-disable;
89*1cb666ecSInochi Amaoto		};
90*1cb666ecSInochi Amaoto	};
91*1cb666ecSInochi Amaoto
92*1cb666ecSInochi Amaoto	i2c1_cfg: i2c1-cfg {
93*1cb666ecSInochi Amaoto		i2c1-pins {
94*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_IIC1_SDA, 0)>,
95*1cb666ecSInochi Amaoto				 <PINMUX(PIN_IIC1_SCL, 0)>;
96*1cb666ecSInochi Amaoto			bias-pull-up;
97*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
98*1cb666ecSInochi Amaoto			input-schmitt-enable;
99*1cb666ecSInochi Amaoto		};
100*1cb666ecSInochi Amaoto	};
101*1cb666ecSInochi Amaoto
102*1cb666ecSInochi Amaoto	sd_cfg: sdhci-sd-cfg {
103*1cb666ecSInochi Amaoto		sdhci-sd-cd-wp-pins {
104*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_SDIO_CD, 0)>,
105*1cb666ecSInochi Amaoto				 <PINMUX(PIN_SDIO_WP, 0)>;
106*1cb666ecSInochi Amaoto			bias-pull-up;
107*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
108*1cb666ecSInochi Amaoto			input-schmitt-enable;
109*1cb666ecSInochi Amaoto		};
110*1cb666ecSInochi Amaoto
111*1cb666ecSInochi Amaoto		sdhci-sd-rst-pwr-pins {
112*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_SDIO_RST, 0)>,
113*1cb666ecSInochi Amaoto				 <PINMUX(PIN_SDIO_PWR_EN, 0)>;
114*1cb666ecSInochi Amaoto			bias-disable;
115*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
116*1cb666ecSInochi Amaoto			input-schmitt-disable;
117*1cb666ecSInochi Amaoto		};
118*1cb666ecSInochi Amaoto	};
119*1cb666ecSInochi Amaoto
120*1cb666ecSInochi Amaoto	uart0_cfg: uart0-cfg {
121*1cb666ecSInochi Amaoto		uart0-rx-pins {
122*1cb666ecSInochi Amaoto			pinmux = <PINMUX(PIN_UART0_TX, 0)>,
123*1cb666ecSInochi Amaoto				 <PINMUX(PIN_UART0_RX, 0)>;
124*1cb666ecSInochi Amaoto			bias-pull-up;
125*1cb666ecSInochi Amaoto			drive-strength-microamp = <26800>;
126*1cb666ecSInochi Amaoto			input-schmitt-enable;
127*1cb666ecSInochi Amaoto		};
128*1cb666ecSInochi Amaoto	};
129*1cb666ecSInochi Amaoto};
130*1cb666ecSInochi Amaoto
131014b839fSChen Wang&sd {
132*1cb666ecSInochi Amaoto	pinctrl-0 = <&sd_cfg>;
133*1cb666ecSInochi Amaoto	pinctrl-names = "default";
134014b839fSChen Wang	bus-width = <4>;
135014b839fSChen Wang	no-sdio;
136014b839fSChen Wang	no-mmc;
137014b839fSChen Wang	wp-inverted;
138014b839fSChen Wang	status = "okay";
139014b839fSChen Wang};
140014b839fSChen Wang
1419439a0e8SChen Wang&uart0 {
142*1cb666ecSInochi Amaoto	pinctrl-0 = <&uart0_cfg>;
143*1cb666ecSInochi Amaoto	pinctrl-names = "default";
1449439a0e8SChen Wang	status = "okay";
1459439a0e8SChen Wang};
146585dcb21SInochi Amaoto
147585dcb21SInochi Amaoto/ {
14862cdf0a0SChen Wang	pwmfan: pwm-fan {
14962cdf0a0SChen Wang		compatible = "pwm-fan";
15062cdf0a0SChen Wang		cooling-levels = <103 128 179 230 255>;
15162cdf0a0SChen Wang		pwms = <&pwm 0 40000 0>;
15262cdf0a0SChen Wang		#cooling-cells = <2>;
15362cdf0a0SChen Wang	};
15462cdf0a0SChen Wang
155585dcb21SInochi Amaoto	thermal-zones {
156585dcb21SInochi Amaoto		soc-thermal {
157585dcb21SInochi Amaoto			polling-delay-passive = <1000>;
158585dcb21SInochi Amaoto			polling-delay = <1000>;
159585dcb21SInochi Amaoto			thermal-sensors = <&mcu 0>;
160585dcb21SInochi Amaoto
161585dcb21SInochi Amaoto			trips {
162585dcb21SInochi Amaoto				soc_active1: soc-active1 {
163585dcb21SInochi Amaoto					temperature = <30000>;
164585dcb21SInochi Amaoto					hysteresis = <8000>;
165585dcb21SInochi Amaoto					type = "active";
166585dcb21SInochi Amaoto				};
167585dcb21SInochi Amaoto
168585dcb21SInochi Amaoto				soc_active2: soc-active2 {
169585dcb21SInochi Amaoto					temperature = <58000>;
170585dcb21SInochi Amaoto					hysteresis = <12000>;
171585dcb21SInochi Amaoto					type = "active";
172585dcb21SInochi Amaoto				};
173585dcb21SInochi Amaoto
174585dcb21SInochi Amaoto				soc_active3: soc-active3 {
175585dcb21SInochi Amaoto					temperature = <70000>;
176585dcb21SInochi Amaoto					hysteresis = <10000>;
177585dcb21SInochi Amaoto					type = "active";
178585dcb21SInochi Amaoto				};
179585dcb21SInochi Amaoto
180585dcb21SInochi Amaoto				soc_hot: soc-hot {
181585dcb21SInochi Amaoto					temperature = <80000>;
182585dcb21SInochi Amaoto					hysteresis = <5000>;
183585dcb21SInochi Amaoto					type = "hot";
184585dcb21SInochi Amaoto				};
185585dcb21SInochi Amaoto			};
186f047a928SChen Wang
187f047a928SChen Wang			cooling-maps {
188f047a928SChen Wang				map0 {
189f047a928SChen Wang					trip = <&soc_active1>;
190f047a928SChen Wang					cooling-device = <&pwmfan 0 1>;
191f047a928SChen Wang				};
192f047a928SChen Wang
193f047a928SChen Wang				map1 {
194f047a928SChen Wang					trip = <&soc_active2>;
195f047a928SChen Wang					cooling-device = <&pwmfan 1 2>;
196f047a928SChen Wang				};
197f047a928SChen Wang
198f047a928SChen Wang				map2 {
199f047a928SChen Wang					trip = <&soc_active3>;
200f047a928SChen Wang					cooling-device = <&pwmfan 2 3>;
201f047a928SChen Wang				};
202f047a928SChen Wang
203f047a928SChen Wang				map3 {
204f047a928SChen Wang					trip = <&soc_hot>;
205f047a928SChen Wang					cooling-device = <&pwmfan 3 4>;
206f047a928SChen Wang				};
207f047a928SChen Wang			};
208585dcb21SInochi Amaoto		};
209585dcb21SInochi Amaoto
210585dcb21SInochi Amaoto		board-thermal {
211585dcb21SInochi Amaoto			polling-delay-passive = <1000>;
212585dcb21SInochi Amaoto			polling-delay = <1000>;
213585dcb21SInochi Amaoto			thermal-sensors = <&mcu 1>;
214585dcb21SInochi Amaoto
215585dcb21SInochi Amaoto			trips {
216585dcb21SInochi Amaoto				board_active: board-active {
217585dcb21SInochi Amaoto					temperature = <75000>;
218585dcb21SInochi Amaoto					hysteresis = <8000>;
219585dcb21SInochi Amaoto					type = "active";
220585dcb21SInochi Amaoto				};
221585dcb21SInochi Amaoto			};
222f047a928SChen Wang
223f047a928SChen Wang			cooling-maps {
224f047a928SChen Wang				map4 {
225f047a928SChen Wang					trip = <&board_active>;
226f047a928SChen Wang					cooling-device = <&pwmfan 3 4>;
227f047a928SChen Wang				};
228f047a928SChen Wang			};
229585dcb21SInochi Amaoto		};
230585dcb21SInochi Amaoto	};
231585dcb21SInochi Amaoto};
232