xref: /linux/arch/arm64/boot/dts/rockchip/rk3568-mecsbc.dts (revision fa8a4d3659d0c1ad73d5f59b2e0a6d408de5b317)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/leds/common.h>
6#include <dt-bindings/pinctrl/rockchip.h>
7#include <dt-bindings/pwm/pwm.h>
8#include "rk3568.dtsi"
9
10/ {
11	model = "Protonic MECSBC";
12	compatible = "prt,mecsbc", "rockchip,rk3568";
13
14	aliases {
15		mmc0 = &sdhci;
16		mmc1 = &sdmmc0;
17	};
18
19	chosen: chosen {
20		stdout-path = "serial2:1500000n8";
21	};
22
23	tas2562-sound {
24		compatible = "simple-audio-card";
25		simple-audio-card,format = "i2s";
26		simple-audio-card,name = "Speaker";
27		simple-audio-card,mclk-fs = <256>;
28
29		simple-audio-card,cpu {
30			sound-dai = <&i2s1_8ch>;
31		};
32
33		simple-audio-card,codec {
34			sound-dai = <&tas2562>;
35		};
36	};
37
38	vdd_gpu: regulator-vdd-gpu {
39		compatible = "pwm-regulator";
40		pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>;
41		regulator-name = "vdd_gpu";
42		regulator-min-microvolt = <915000>;
43		regulator-max-microvolt = <1000000>;
44		regulator-always-on;
45		regulator-boot-on;
46		regulator-settling-time-up-us = <250>;
47		pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
48	};
49
50	p3v3: regulator-p3v3 {
51		compatible = "regulator-fixed";
52		regulator-name = "p3v3";
53		regulator-always-on;
54		regulator-boot-on;
55		regulator-min-microvolt = <3300000>;
56		regulator-max-microvolt = <3300000>;
57	};
58
59	p1v8: regulator-p1v8 {
60		compatible = "regulator-fixed";
61		regulator-name = "p1v8";
62		regulator-always-on;
63		regulator-boot-on;
64		regulator-min-microvolt = <1800000>;
65		regulator-max-microvolt = <1800000>;
66	};
67
68	vcc_sd: regulator-sd {
69		compatible = "regulator-gpio";
70		enable-gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
71		enable-active-high;
72		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
73		regulator-name = "sdcard-gpio-supply";
74		regulator-min-microvolt = <1800000>;
75		regulator-max-microvolt = <3300000>;
76		states = <1800000 0x1>, <3300000 0x0>;
77	};
78
79	vdd_npu: regulator-vdd-npu {
80		compatible = "pwm-regulator";
81		pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>;
82		regulator-name = "vdd_npu";
83		regulator-min-microvolt = <915000>;
84		regulator-max-microvolt = <1000000>;
85		regulator-always-on;
86		regulator-boot-on;
87		regulator-settling-time-up-us = <250>;
88		pwm-dutycycle-range = <0 100>; /* dutycycle inverted 0% => 0.915V */
89	};
90};
91
92&combphy0 {
93	status = "okay";
94};
95
96&combphy1 {
97	status = "okay";
98};
99
100&combphy2 {
101	status = "okay";
102};
103
104&cpu0 {
105	cpu-supply = <&vdd_cpu>;
106};
107
108&cpu1 {
109	cpu-supply = <&vdd_cpu>;
110};
111
112&cpu2 {
113	cpu-supply = <&vdd_cpu>;
114};
115
116&cpu3 {
117	cpu-supply = <&vdd_cpu>;
118};
119
120&gmac1 {
121	assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
122	assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru CLK_MAC1_2TOP>;
123	phy-handle = <&rgmii_phy1>;
124	phy-mode = "rgmii-id";
125	clock_in_out = "output";
126	pinctrl-names = "default";
127	pinctrl-0 = <&gmac1m1_miim
128		     &gmac1m1_tx_bus2
129		     &gmac1m1_rx_bus2
130		     &gmac1m1_rgmii_clk
131		     &gmac1m1_clkinout
132		     &gmac1m1_rgmii_bus>;
133	status = "okay";
134};
135
136&gpu {
137	mali-supply = <&vdd_gpu>;
138	status = "okay";
139};
140
141&gpu_opp_table {
142	compatible = "operating-points-v2";
143
144	opp-200000000 {
145		opp-hz = /bits/ 64 <200000000>;
146		opp-microvolt = <915000>;
147	};
148
149	opp-300000000 {
150		opp-hz = /bits/ 64 <300000000>;
151		opp-microvolt = <915000>;
152	};
153
154	opp-400000000 {
155		opp-hz = /bits/ 64 <400000000>;
156		opp-microvolt = <915000>;
157	};
158
159	opp-600000000 {
160		opp-hz = /bits/ 64 <600000000>;
161		opp-microvolt = <920000>;
162	};
163
164	opp-700000000 {
165		opp-hz = /bits/ 64 <700000000>;
166		opp-microvolt = <950000>;
167	};
168
169	opp-800000000 {
170		opp-hz = /bits/ 64 <800000000>;
171		opp-microvolt = <1000000>;
172	};
173};
174
175&i2c0 {
176	status = "okay";
177
178	vdd_cpu: regulator@60 {
179		compatible = "fcs,fan53555";
180		reg = <0x60>;
181		fcs,suspend-voltage-selector = <1>;
182		regulator-name = "vdd_cpu";
183		regulator-always-on;
184		regulator-boot-on;
185		regulator-min-microvolt = <800000>;
186		regulator-max-microvolt = <1150000>;
187		regulator-ramp-delay = <2300>;
188
189		regulator-state-mem {
190			regulator-off-in-suspend;
191		};
192	};
193};
194
195&i2c2 {
196	status = "okay";
197	pinctrl-names = "default";
198	pinctrl-0 = <&i2c2m0_xfer>;
199};
200
201&i2c3 {
202	pinctrl-names = "default";
203	pinctrl-0 = <&i2c3m0_xfer>;
204	status = "okay";
205
206	tas2562: amplifier@4c {
207		compatible = "ti,tas2562";
208		reg = <0x4c>;
209		#sound-dai-cells = <0>;
210		shutdown-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
211		interrupt-parent = <&gpio1>;
212		pinctrl-names = "default";
213		pinctrl-0 = <&pinctrl_tas2562>;
214		interrupts = <RK_PD1 IRQ_TYPE_LEVEL_LOW>;
215		ti,imon-slot-no = <0>;
216	};
217};
218
219&i2c5 {
220	status = "okay";
221
222	temperature-sensor@48 {
223		compatible = "ti,tmp1075";
224		reg = <0x48>;
225	};
226
227	rtc@51 {
228		compatible = "nxp,pcf85363";
229		reg = <0x51>;
230		#clock-cells = <0>;
231		clock-output-names = "rtcic_32kout";
232	};
233};
234
235&i2s1_8ch {
236	pinctrl-names = "default";
237	pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>;
238	rockchip,trcm-sync-tx-only;
239	status = "okay";
240};
241
242&mdio1 {
243	rgmii_phy1: ethernet-phy@2 {
244		compatible = "ethernet-phy-ieee802.3-c22";
245		reg = <0x2>;
246		pinctrl-names = "default";
247		pinctrl-0 = <&eth_phy1_rst>;
248		reset-assert-us = <20000>;
249		reset-deassert-us = <100000>;
250		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
251	};
252};
253
254&pcie2x1 {
255	pinctrl-names = "default";
256	pinctrl-0 = <&pcie20m1_pins>;
257	reset-gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_HIGH>;
258	status = "okay";
259};
260
261&pcie30phy {
262	status = "okay";
263};
264
265&pcie3x2 {
266	pinctrl-names = "default";
267	pinctrl-0 = <&pcie30x2m1_pins>;
268	reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>;
269	vpcie3v3-supply = <&p3v3>;
270	status = "okay";
271};
272
273&pinctrl {
274	ethernet {
275		eth_phy1_rst: eth-phy1-rst {
276			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
277		};
278	};
279
280	tas2562 {
281		pinctrl_tas2562: tas2562 {
282			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
283		};
284	};
285};
286
287&pmu_io_domains {
288	pmuio1-supply = <&p3v3>;
289	pmuio2-supply = <&p3v3>;
290	vccio1-supply = <&p1v8>;
291	vccio2-supply = <&p1v8>;
292	vccio3-supply = <&vcc_sd>;
293	vccio4-supply = <&p1v8>;
294	vccio5-supply = <&p3v3>;
295	vccio6-supply = <&p1v8>;
296	vccio7-supply = <&p3v3>;
297	status = "okay";
298};
299
300&pwm1 {
301	status = "okay";
302	pinctrl-names = "default";
303	pinctrl-0 = <&pwm1m0_pins>;
304};
305
306&pwm2 {
307	status = "okay";
308	pinctrl-names = "default";
309	pinctrl-0 = <&pwm2m0_pins>;
310};
311
312&saradc {
313	vref-supply = <&p1v8>;
314	status = "okay";
315};
316
317&sdhci {
318	bus-width = <8>;
319	max-frequency = <200000000>;
320	non-removable;
321	pinctrl-names = "default";
322	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
323	vmmc-supply = <&p3v3>;
324	vqmmc-supply = <&p1v8>;
325	mmc-hs200-1_8v;
326	non-removable;
327	no-sd;
328	no-sdio;
329	status = "okay";
330};
331
332&sdmmc0 {
333	bus-width = <4>;
334	cap-sd-highspeed;
335	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
336	disable-wp;
337	pinctrl-names = "default";
338	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
339	sd-uhs-sdr50;
340	sd-uhs-sdr104;
341	vmmc-supply = <&p3v3>;
342	vqmmc-supply = <&vcc_sd>;
343	status = "okay";
344};
345
346&tsadc {
347	rockchip,hw-tshut-mode = <1>;
348	rockchip,hw-tshut-polarity = <0>;
349	status = "okay";
350};
351
352&uart2 {
353	status = "okay";
354};
355
356&usb_host0_ehci {
357	status = "okay";
358};
359
360&usb_host0_ohci {
361	status = "okay";
362};
363
364&usb_host0_xhci {
365	dr_mode = "host";
366	extcon = <&usb2phy0>;
367	status = "okay";
368};
369
370&usb_host1_ehci {
371	status = "okay";
372};
373
374&usb_host1_ohci {
375	status = "okay";
376};
377
378&usb_host1_xhci {
379	status = "okay";
380};
381
382&usb2phy0 {
383	status = "okay";
384};
385
386&usb2phy0_host {
387	status = "okay";
388};
389
390&usb2phy0_otg {
391	status = "okay";
392};
393
394&usb2phy1 {
395	status = "okay";
396};
397
398&usb2phy1_host {
399	status = "okay";
400};
401
402&usb2phy1_otg {
403	status = "okay";
404};
405