blob: c2dfffc638d13d65c94d495788f558d67495d6fb [file] [log] [blame]
Tom Rini762f85b2024-07-20 11:15:10 -06001// 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};