blob: 1374f2e68402bf2f626f3413d356259776ad0d83 [file] [log] [blame]
developer24455dd2021-10-28 10:55:41 +08001/*
2 * Copyright (c) 2020 MediaTek Inc.
3 * Author: Sam.Shih <sam.shih@mediatek.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#include <dt-bindings/interrupt-controller/irq.h>
16#include <dt-bindings/interrupt-controller/arm-gic.h>
17#include <dt-bindings/phy/phy.h>
18#include <dt-bindings/reset/ti-syscon.h>
19#include <dt-bindings/clock/mt7981-clk.h>
developer66b31fc2021-12-27 17:12:45 +080020#include <dt-bindings/pinctrl/mt65xx.h>
developer24455dd2021-10-28 10:55:41 +080021/ {
22 compatible = "mediatek,mt7981-rfb";
23 interrupt-parent = <&gic>;
24 #address-cells = <2>;
25 #size-cells = <2>;
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29 cpu@0 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a53";
32 enable-method = "psci";
33 reg = <0x0>;
34 };
35
36 cpu@1 {
37 device_type = "cpu";
38 compatible = "arm,cortex-a53";
39 enable-method = "psci";
40 reg = <0x1>;
41 };
42 };
43
developer32e626c2021-12-14 11:01:32 +080044 pwm: pwm@10048000 {
45 compatible = "mediatek,mt7981-pwm";
46 reg = <0 0x10048000 0 0x1000>;
47 #pwm-cells = <2>;
48 clocks = <&infracfg_ao CK_INFRA_PWM_STA>,
49 <&infracfg_ao CK_INFRA_PWM_HCK>,
50 <&infracfg_ao CK_INFRA_PWM1_CK>,
51 <&infracfg_ao CK_INFRA_PWM2_CK>,
52 <&infracfg_ao CK_INFRA_PWM3_CK>;
53 clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
54 };
55
developer1f80b452021-12-17 14:26:01 +080056 thermal-zones {
57 cpu_thermal: cpu-thermal {
58 polling-delay-passive = <1000>;
59 polling-delay = <1000>;
60 thermal-sensors = <&thermal 0>;
61 };
62 };
63
64 thermal: thermal@1100c800 {
65 #thermal-sensor-cells = <1>;
66 compatible = "mediatek,mt7981-thermal";
67 reg = <0 0x1100c800 0 0x800>;
68 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
69 clocks = <&infracfg_ao CK_INFRA_THERM_CK>,
70 <&infracfg_ao CK_INFRA_ADC_26M_CK>,
71 <&infracfg_ao CK_INFRA_ADC_FRC_CK>;
72 clock-names = "therm", "auxadc", "adc_32k";
73 mediatek,auxadc = <&auxadc>;
74 mediatek,apmixedsys = <&apmixedsys>;
75 nvmem-cells = <&thermal_calibration>;
76 nvmem-cell-names = "calibration-data";
77 };
78
developer24455dd2021-10-28 10:55:41 +080079 auxadc: adc@1100d000 {
80 compatible = "mediatek,mt7981-auxadc",
81 "mediatek,mt7622-auxadc";
82 reg = <0 0x1100d000 0 0x1000>;
developer8690de92021-12-02 17:27:07 +080083 clocks = <&infracfg_ao CK_INFRA_ADC_26M_CK>,
84 <&infracfg_ao CK_INFRA_ADC_FRC_CK>;
85 clock-names = "main", "32k";
developer24455dd2021-10-28 10:55:41 +080086 #io-channel-cells = <1>;
87 };
88
89 wed: wed@15010000 {
90 compatible = "mediatek,wed";
91 wed_num = <2>;
92 /* add this property for wed get the pci slot number. */
93 pci_slot_map = <0>, <1>;
94 reg = <0 0x15010000 0 0x1000>,
95 <0 0x15011000 0 0x1000>;
96 interrupt-parent = <&gic>;
97 interrupts = <GIC_SPI 205 IRQ_TYPE_LEVEL_HIGH>,
98 <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
99 };
100
101 wdma: wdma@15104800 {
102 compatible = "mediatek,wed-wdma";
103 reg = <0 0x15104800 0 0x400>,
104 <0 0x15104c00 0 0x400>;
105 };
106
107 ap2woccif: ap2woccif@151A5000 {
108 compatible = "mediatek,ap2woccif";
109 reg = <0 0x151A5000 0 0x1000>,
110 <0 0x151AD000 0 0x1000>;
111 interrupt-parent = <&gic>;
112 interrupts = <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
113 <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
114 };
115
116 wocpu0_ilm: wocpu0_ilm@151E0000 {
117 compatible = "mediatek,wocpu0_ilm";
118 reg = <0 0x151E0000 0 0x8000>;
119 };
120
121 wocpu_dlm: wocpu_dlm@151E8000 {
122 compatible = "mediatek,wocpu_dlm";
123 reg = <0 0x151E8000 0 0x2000>,
124 <0 0x151F8000 0 0x2000>;
125
126 resets = <&ethsysrst 0>;
127 reset-names = "wocpu_rst";
128 };
129
130 cpu_boot: wocpu_boot@15194000 {
131 compatible = "mediatek,wocpu_boot";
132 reg = <0 0x15194000 0 0x1000>;
133 };
134
135 reserved-memory {
136 #address-cells = <2>;
137 #size-cells = <2>;
138 ranges;
139
140 /* 192 KiB reserved for ARM Trusted Firmware (BL31) */
141 secmon_reserved: secmon@43000000 {
142 reg = <0 0x43000000 0 0x30000>;
143 no-map;
144 };
145
146 wmcpu_emi: wmcpu-reserved@47C80000 {
147 compatible = "mediatek,wmcpu-reserved";
148 no-map;
149 reg = <0 0x47C80000 0 0x00100000>;
150 };
151
152 wocpu0_emi: wocpu0_emi@47D80000 {
153 compatible = "mediatek,wocpu0_emi";
154 no-map;
155 reg = <0 0x47D80000 0 0x40000>;
156 shared = <0>;
157 };
158
159 wocpu_data: wocpu_data@47DC0000 {
160 compatible = "mediatek,wocpu_data";
161 no-map;
162 reg = <0 0x47DC0000 0 0x240000>;
163 shared = <1>;
164 };
165 };
166
167 psci {
168 compatible = "arm,psci-0.2";
169 method = "smc";
170 };
171
172 clk40m: oscillator@0 {
173 compatible = "fixed-clock";
174 #clock-cells = <0>;
175 clock-frequency = <40000000>;
176 clock-output-names = "clkxtal";
177 };
178
179 infracfg_ao: infracfg_ao@10001000 {
180 compatible = "mediatek,mt7981-infracfg_ao", "syscon";
developerdcd5aba2021-12-01 13:47:17 +0800181 reg = <0 0x10001000 0 0x68>;
developer24455dd2021-10-28 10:55:41 +0800182 #clock-cells = <1>;
183 };
184
185 infracfg: infracfg@10001040 {
186 compatible = "mediatek,mt7981-infracfg", "syscon";
developerdcd5aba2021-12-01 13:47:17 +0800187 reg = <0 0x10001068 0 0x1000>;
developer24455dd2021-10-28 10:55:41 +0800188 #clock-cells = <1>;
189 };
190
191 topckgen: topckgen@1001B000 {
192 compatible = "mediatek,mt7981-topckgen", "syscon";
193 reg = <0 0x1001B000 0 0x1000>;
194 #clock-cells = <1>;
195 };
196
197 apmixedsys: apmixedsys@1001E000 {
198 compatible = "mediatek,mt7981-apmixedsys", "syscon";
199 reg = <0 0x1001E000 0 0x1000>;
200 #clock-cells = <1>;
201 };
202
203 system_clk: dummy_system_clk {
204 compatible = "fixed-clock";
205 clock-frequency = <40000000>;
206 #clock-cells = <0>;
207 };
208
developer24455dd2021-10-28 10:55:41 +0800209 gpt_clk: dummy_gpt_clk {
210 compatible = "fixed-clock";
211 clock-frequency = <20000000>;
212 #clock-cells = <0>;
213 };
214
215 timer {
216 compatible = "arm,armv8-timer";
217 interrupt-parent = <&gic>;
developer3f7ec6d2021-11-12 14:59:41 +0800218 clock-frequency = <13000000>;
developer24455dd2021-10-28 10:55:41 +0800219 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
220 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
221 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
222 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
223
224 };
225
226 watchdog: watchdog@1001c000 {
227 compatible = "mediatek,mt7622-wdt",
228 "mediatek,mt6589-wdt";
229 reg = <0 0x1001c000 0 0x1000>;
230 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
231 #reset-cells = <1>;
232 };
233
234 gic: interrupt-controller@c000000 {
235 compatible = "arm,gic-v3";
236 #interrupt-cells = <3>;
237 interrupt-parent = <&gic>;
238 interrupt-controller;
239 reg = <0 0x0c000000 0 0x40000>, /* GICD */
240 <0 0x0c080000 0 0x200000>; /* GICR */
241
242 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
243 };
244
developer3bcadb32021-12-19 11:46:45 +0800245 trng: trng@1020f000 {
246 compatible = "mediatek,mt7981-rng";
247 };
248
developer24455dd2021-10-28 10:55:41 +0800249 uart0: serial@11002000 {
developer9963ccb2021-12-16 12:17:46 +0800250 compatible = "mediatek,mt6577-uart";
developer24455dd2021-10-28 10:55:41 +0800251 reg = <0 0x11002000 0 0x400>;
252 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
developer9963ccb2021-12-16 12:17:46 +0800253 clocks = <&infracfg_ao CK_INFRA_UART0_CK>;
254 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
255 <&infracfg_ao CK_INFRA_UART0_SEL>;
256 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
257 <&infracfg CK_INFRA_UART>;
developer24455dd2021-10-28 10:55:41 +0800258 status = "disabled";
259 };
260
261 uart1: serial@11003000 {
developer9963ccb2021-12-16 12:17:46 +0800262 compatible = "mediatek,mt6577-uart";
developer24455dd2021-10-28 10:55:41 +0800263 reg = <0 0x11003000 0 0x400>;
264 interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
developer9963ccb2021-12-16 12:17:46 +0800265 clocks = <&infracfg_ao CK_INFRA_UART1_CK>;
266 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
267 <&infracfg_ao CK_INFRA_UART1_SEL>;
268 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
269 <&infracfg CK_INFRA_UART>;
developer24455dd2021-10-28 10:55:41 +0800270 status = "disabled";
271 };
272
273 uart2: serial@11004000 {
developer9963ccb2021-12-16 12:17:46 +0800274 compatible = "mediatek,mt6577-uart";
developer24455dd2021-10-28 10:55:41 +0800275 reg = <0 0x11004000 0 0x400>;
276 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
developer9963ccb2021-12-16 12:17:46 +0800277 clocks = <&infracfg_ao CK_INFRA_UART2_CK>;
278 assigned-clocks = <&topckgen CK_TOP_UART_SEL>,
279 <&infracfg_ao CK_INFRA_UART2_SEL>;
280 assigned-clock-parents = <&topckgen CK_TOP_CB_CKSQ_40M>,
281 <&infracfg CK_INFRA_UART>;
developer24455dd2021-10-28 10:55:41 +0800282 status = "disabled";
283 };
284
developer472dc5c2021-12-16 10:28:37 +0800285 i2c0: i2c@11007000 {
286 compatible = "mediatek,mt7981-i2c";
287 reg = <0 0x11007000 0 0x1000>,
developere08c9a62021-12-01 14:13:05 +0800288 <0 0x10217080 0 0x80>;
289 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
developer472dc5c2021-12-16 10:28:37 +0800290 clock-div = <1>;
developere08c9a62021-12-01 14:13:05 +0800291 clocks = <&infracfg_ao CK_INFRA_I2CO_CK>,
292 <&infracfg_ao CK_INFRA_AP_DMA_CK>;
293 clock-names = "main", "dma";
294 #address-cells = <1>;
295 #size-cells = <0>;
296 status = "disabled";
297 };
298
developer24455dd2021-10-28 10:55:41 +0800299 pcie: pcie@11280000 {
300 compatible = "mediatek,mt7981-pcie",
301 "mediatek,mt7986-pcie";
302 device_type = "pci";
303 reg = <0 0x11280000 0 0x4000>;
304 reg-names = "pcie-mac";
305 #address-cells = <3>;
306 #size-cells = <2>;
307 interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
308 bus-range = <0x00 0xff>;
309 ranges = <0x82000000 0 0x20000000
310 0x0 0x20000000 0 0x10000000>;
311 status = "disabled";
312
developerb5809d42021-12-10 14:12:42 +0800313 clocks = <&infracfg_ao CK_INFRA_IPCIE_CK>,
314 <&infracfg_ao CK_INFRA_IPCIE_PIPE_CK>,
315 <&infracfg_ao CK_INFRA_IPCIER_CK>,
316 <&infracfg_ao CK_INFRA_IPCIEB_CK>;
317
developer24455dd2021-10-28 10:55:41 +0800318 phys = <&u3port0 PHY_TYPE_PCIE>;
319 phy-names = "pcie-phy";
320
321 #interrupt-cells = <1>;
322 interrupt-map-mask = <0 0 0 7>;
323 interrupt-map = <0 0 0 1 &pcie_intc 0>,
324 <0 0 0 2 &pcie_intc 1>,
325 <0 0 0 3 &pcie_intc 2>,
326 <0 0 0 4 &pcie_intc 3>;
327 pcie_intc: interrupt-controller {
328 interrupt-controller;
329 #address-cells = <0>;
330 #interrupt-cells = <1>;
331 };
332 };
333
developere3c7cd12021-11-30 14:49:26 +0800334 crypto: crypto@10320000 {
335 compatible = "inside-secure,safexcel-eip97";
336 reg = <0 0x10320000 0 0x40000>;
337 interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
338 <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
339 <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
340 <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
341 interrupt-names = "ring0", "ring1", "ring2", "ring3";
342 clocks = <&topckgen CK_TOP_EIP97B>;
343 clock-names = "top_eip97_ck";
344 assigned-clocks = <&topckgen CK_TOP_EIP97B_SEL>;
developereee89f92021-12-30 10:09:49 +0800345 assigned-clock-parents = <&topckgen CK_TOP_CB_NET1_D5>;
developere3c7cd12021-11-30 14:49:26 +0800346 };
347
developer24455dd2021-10-28 10:55:41 +0800348 pio: pinctrl@11d00000 {
349 compatible = "mediatek,mt7981-pinctrl";
350 reg = <0 0x11d00000 0 0x1000>,
351 <0 0x11c00000 0 0x1000>,
352 <0 0x11c10000 0 0x1000>,
353 <0 0x11d20000 0 0x1000>,
354 <0 0x11e00000 0 0x1000>,
355 <0 0x11e20000 0 0x1000>,
356 <0 0x11f00000 0 0x1000>,
357 <0 0x11f10000 0 0x1000>,
358 <0 0x1000b000 0 0x1000>;
359 reg-names = "gpio_base", "iocfg_rt_base", "iocfg_rm_base",
360 "iocfg_rb_base", "iocfg_lb_base", "iocfg_bl_base",
361 "iocfg_tm_base", "iocfg_tl_base", "eint";
362 gpio-controller;
363 #gpio-cells = <2>;
364 gpio-ranges = <&pio 0 0 56>;
365 interrupt-controller;
developer4bfe5012021-12-10 17:36:04 +0800366 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
developer24455dd2021-10-28 10:55:41 +0800367 interrupt-parent = <&gic>;
368 #interrupt-cells = <2>;
369 };
370
371 ethsys: syscon@15000000 {
372 #address-cells = <1>;
373 #size-cells = <1>;
developer9e9fb4c2021-11-30 17:33:04 +0800374 compatible = "mediatek,mt7981-ethsys",
developer24455dd2021-10-28 10:55:41 +0800375 "syscon";
376 reg = <0 0x15000000 0 0x1000>;
377 #clock-cells = <1>;
378 #reset-cells = <1>;
379
380 ethsysrst: reset-controller {
381 compatible = "ti,syscon-reset";
382 #reset-cells = <1>;
383 ti,reset-bits = <0x34 4 0x34 4 0x34 4 (ASSERT_SET | DEASSERT_CLEAR | STATUS_SET)>;
384 };
385 };
386
387 eth: ethernet@15100000 {
388 compatible = "mediatek,mt7981-eth";
389 reg = <0 0x15100000 0 0x80000>;
390 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
391 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>,
392 <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>,
393 <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>;
developer9e9fb4c2021-11-30 17:33:04 +0800394 clocks = <&ethsys CK_ETH_FE_EN>,
395 <&ethsys CK_ETH_GP2_EN>,
396 <&ethsys CK_ETH_GP1_EN>,
397 <&ethsys CK_ETH_WOCPU0_EN>,
398 <&sgmiisys0 CK_SGM0_TX_EN>,
399 <&sgmiisys0 CK_SGM0_RX_EN>,
400 <&sgmiisys0 CK_SGM0_CK0_EN>,
401 <&sgmiisys0 CK_SGM0_CDR_CK0_EN>,
402 <&sgmiisys1 CK_SGM1_TX_EN>,
403 <&sgmiisys1 CK_SGM1_RX_EN>,
404 <&sgmiisys1 CK_SGM1_CK1_EN>,
405 <&sgmiisys1 CK_SGM1_CDR_CK1_EN>;
406 clock-names = "fe", "gp2", "gp1", "wocpu0",
developer24455dd2021-10-28 10:55:41 +0800407 "sgmii_tx250m", "sgmii_rx250m",
408 "sgmii_cdr_ref", "sgmii_cdr_fb",
409 "sgmii2_tx250m", "sgmii2_rx250m",
410 "sgmii2_cdr_ref", "sgmii2_cdr_fb";
developer9e9fb4c2021-11-30 17:33:04 +0800411 assigned-clocks = <&topckgen CK_TOP_NETSYS_2X_SEL>,
412 <&topckgen CK_TOP_SGM_325M_SEL>;
413 assigned-clock-parents = <&topckgen CK_TOP_CB_NET2_800M>,
414 <&topckgen CK_TOP_CB_SGM_325M>;
developer24455dd2021-10-28 10:55:41 +0800415 mediatek,ethsys = <&ethsys>;
416 mediatek,sgmiisys = <&sgmiisys0>, <&sgmiisys1>;
417 mediatek,infracfg = <&topmisc>;
418 #reset-cells = <1>;
419 #address-cells = <1>;
420 #size-cells = <0>;
421 status = "disabled";
422 };
423
424 hnat: hnat@15000000 {
425 compatible = "mediatek,mtk-hnat_v4";
426 reg = <0 0x15100000 0 0x80000>;
427 resets = <&ethsys 0>;
428 reset-names = "mtketh";
429 status = "disabled";
430 };
431
432 sgmiisys0: syscon@10060000 {
developer9e9fb4c2021-11-30 17:33:04 +0800433 compatible = "mediatek,mt7981-sgmiisys_0", "syscon";
developer24455dd2021-10-28 10:55:41 +0800434 reg = <0 0x10060000 0 0x1000>;
435 pn_swap;
436 #clock-cells = <1>;
437 };
438
439 sgmiisys1: syscon@10070000 {
developer9e9fb4c2021-11-30 17:33:04 +0800440 compatible = "mediatek,mt7981-sgmiisys_1", "syscon";
developer24455dd2021-10-28 10:55:41 +0800441 reg = <0 0x10070000 0 0x1000>;
442 #clock-cells = <1>;
443 };
444
445 topmisc: topmisc@11d10000 {
446 compatible = "mediatek,mt7981-topmisc", "syscon";
447 reg = <0 0x11d10000 0 0x10000>;
448 #clock-cells = <1>;
449 };
450
451 snand: snfi@11005000 {
452 compatible = "mediatek,mt7986-snand";
453 reg = <0 0x11005000 0 0x1000>, <0 0x11006000 0 0x1000>;
454 reg-names = "nfi", "ecc";
455 interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
developeraf7c3502021-11-10 20:49:31 +0800456 clocks = <&infracfg_ao CK_INFRA_SPINFI1_CK>,
457 <&infracfg_ao CK_INFRA_NFI1_CK>,
458 <&infracfg_ao CK_INFRA_NFI_HCK_CK>;
459 clock-names = "pad_clk", "nfi_clk", "nfi_hclk";
460 assigned-clocks = <&topckgen CK_TOP_SPINFI_SEL>,
461 <&topckgen CK_TOP_NFI1X_SEL>;
462 assigned-clock-parents = <&topckgen CK_TOP_CB_M_D8>,
463 <&topckgen CK_TOP_CB_M_D8>;
developer24455dd2021-10-28 10:55:41 +0800464 #address-cells = <1>;
465 #size-cells = <0>;
466 status = "disabled";
467 };
468
469 mmc0: mmc@11230000 {
developer617cd332021-12-13 00:03:23 +0800470 compatible = "mediatek,mt7986-mmc",
471 "mediatek,mt7981-mmc";
developer24455dd2021-10-28 10:55:41 +0800472 reg = <0 0x11230000 0 0x1000>, <0 0x11c20000 0 0x1000>;
473 interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
developer617cd332021-12-13 00:03:23 +0800474 clocks = <&topckgen CK_TOP_EMMC_208M>,
475 <&topckgen CK_TOP_EMMC_400M>,
476 <&infracfg_ao CK_INFRA_MSDC_CK>;
477 assigned-clocks = <&topckgen CK_TOP_EMMC_208M_SEL>,
478 <&topckgen CK_TOP_EMMC_400M_SEL>;
479 assigned-clock-parents = <&topckgen CK_TOP_CB_M_D2>,
480 <&topckgen CK_TOP_CB_NET2_D2>;
developer24455dd2021-10-28 10:55:41 +0800481 clock-names = "source", "hclk", "source_cg";
482 status = "disabled";
483 };
484
485 wbsys: wbsys@18000000 {
486 compatible = "mediatek,wbsys";
487 reg = <0 0x18000000 0 0x1000000>;
488 interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
489 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
490 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
491 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
492 chip_id = <0x7981>;
493 };
494
495 wed_pcie: wed_pcie@10003000 {
496 compatible = "mediatek,wed_pcie";
497 reg = <0 0x10003000 0 0x10>;
498 };
499
500 spi0: spi@1100a000 {
501 compatible = "mediatek,ipm-spi-quad";
502 reg = <0 0x1100a000 0 0x100>;
503 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
developercbdfa6e2021-12-02 15:35:42 +0800504 clocks = <&topckgen CK_TOP_CB_M_D2>,
505 <&topckgen CK_TOP_SPI_SEL>,
506 <&infracfg_ao CK_INFRA_SPI0_CK>,
507 <&infracfg_ao CK_INFRA_SPI0_HCK_CK>;
developer24455dd2021-10-28 10:55:41 +0800508 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
509 status = "disabled";
510 };
511
512 spi1: spi@1100b000 {
513 compatible = "mediatek,ipm-spi-single";
514 reg = <0 0x1100b000 0 0x100>;
515 interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
developercbdfa6e2021-12-02 15:35:42 +0800516 clocks = <&topckgen CK_TOP_CB_M_D2>,
517 <&topckgen CK_TOP_SPIM_MST_SEL>,
518 <&infracfg_ao CK_INFRA_SPI1_CK>,
519 <&infracfg_ao CK_INFRA_SPI1_HCK_CK>;
developer24455dd2021-10-28 10:55:41 +0800520 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
521 status = "disabled";
522 };
523
524 spi2: spi@11009000 {
525 compatible = "mediatek,ipm-spi-quad";
526 reg = <0 0x11009000 0 0x100>;
527 interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
developercbdfa6e2021-12-02 15:35:42 +0800528 clocks = <&topckgen CK_TOP_CB_M_D2>,
529 <&topckgen CK_TOP_SPI_SEL>,
530 <&infracfg_ao CK_INFRA_SPI2_CK>,
developer03a46ad2022-01-06 17:20:47 +0800531 <&infracfg_ao CK_INFRA_SPI2_HCK_CK>;
developer24455dd2021-10-28 10:55:41 +0800532 clock-names = "parent-clk", "sel-clk", "spi-clk", "spi-hclk";
533 status = "disabled";
534 };
535
536
537 consys: consys@10000000 {
538 compatible = "mediatek,mt7981-consys";
539 reg = <0 0x10000000 0 0x8600000>;
540 memory-region = <&wmcpu_emi>;
541 };
542
543 xhci: xhci@11200000 {
544 compatible = "mediatek,mt7986-xhci",
545 "mediatek,mtk-xhci";
546 reg = <0 0x11200000 0 0x2e00>,
547 <0 0x11203e00 0 0x0100>;
548 reg-names = "mac", "ippc";
549 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
550 phys = <&u2port0 PHY_TYPE_USB2>;
551 clocks = <&system_clk>,
552 <&system_clk>,
553 <&system_clk>,
554 <&system_clk>,
555 <&system_clk>;
556 clock-names = "sys_ck",
557 "xhci_ck",
558 "ref_ck",
559 "mcu_ck",
560 "dma_ck";
561 #address-cells = <2>;
562 #size-cells = <2>;
563 mediatek,u3p-dis-msk = <0x01>;
564 status = "disabled";
565 };
566
567 usbtphy: usb-phy@11e10000 {
568 compatible = "mediatek,mt7986",
569 "mediatek,generic-tphy-v2";
570 #address-cells = <2>;
571 #size-cells = <2>;
572 ranges;
573 status = "okay";
574
575 u2port0: usb-phy@11e10000 {
576 reg = <0 0x11e10000 0 0x700>;
577 clocks = <&system_clk>;
578 clock-names = "ref";
579 #phy-cells = <1>;
580 status = "okay";
581 };
582
583 u3port0: usb-phy@11e10700 {
584 reg = <0 0x11e10700 0 0x900>;
585 clocks = <&system_clk>;
586 clock-names = "ref";
587 #phy-cells = <1>;
588 mediatek,syscon-type = <&topmisc 0x218 0>;
developerc88f8702022-01-28 17:27:11 +0800589 nvmem-cells = <&comb_intr_p0>,
590 <&comb_rx_imp_p0>,
591 <&comb_tx_imp_p0>;
592 nvmem-cell-names = "intr", "rx_imp", "tx_imp";
developer24455dd2021-10-28 10:55:41 +0800593 status = "okay";
594 };
595 };
596
597 reg_3p3v: regulator-3p3v {
598 compatible = "regulator-fixed";
599 regulator-name = "fixed-3.3V";
600 regulator-min-microvolt = <3300000>;
601 regulator-max-microvolt = <3300000>;
602 regulator-boot-on;
603 regulator-always-on;
604 };
605
606 clkitg: clkitg {
607 compatible = "simple-bus";
608 };
developera7de8be2021-11-15 21:14:31 +0800609
610 efuse: efuse@11f20000 {
611 compatible = "mediatek,efuse";
612 reg = <0 0x11f20000 0 0x1000>;
613 #address-cells = <1>;
614 #size-cells = <1>;
615
616 thermal_calibration: calib@274 {
617 reg = <0x274 0xc>;
618 };
619
620 phy_calibration: calib@8dc {
621 reg = <0x8dc 0x10>;
622 };
developerc88f8702022-01-28 17:27:11 +0800623
624 comb_rx_imp_p0: usb3-rx-imp@8c8 {
625 reg = <0x8c8 1>;
626 bits = <0 5>;
627 };
628
629 comb_tx_imp_p0: usb3-tx-imp@8c8 {
630 reg = <0x8c8 2>;
631 bits = <5 5>;
632 };
633
634 comb_intr_p0: usb3-intr@8c9 {
635 reg = <0x8c9 1>;
636 bits = <2 6>;
637 };
developera7de8be2021-11-15 21:14:31 +0800638 };
developere3c7cd12021-11-30 14:49:26 +0800639
640 afe: audio-controller@11210000 {
641 compatible = "mediatek,mt79xx-audio";
642 reg = <0 0x11210000 0 0x9000>;
643 interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
644 clocks = <&infracfg_ao CK_INFRA_AUD_BUS_CK>,
645 <&infracfg_ao CK_INFRA_AUD_26M_CK>,
646 <&infracfg_ao CK_INFRA_AUD_L_CK>,
647 <&infracfg_ao CK_INFRA_AUD_AUD_CK>,
developereee89f92021-12-30 10:09:49 +0800648 <&infracfg_ao CK_INFRA_AUD_EG2_CK>,
649 <&topckgen CK_TOP_AUD_SEL>;
developere3c7cd12021-11-30 14:49:26 +0800650 clock-names = "aud_bus_ck",
651 "aud_26m_ck",
652 "aud_l_ck",
653 "aud_aud_ck",
developereee89f92021-12-30 10:09:49 +0800654 "aud_eg2_ck",
655 "aud_sel";
developere3c7cd12021-11-30 14:49:26 +0800656 assigned-clocks = <&topckgen CK_TOP_AUD_SEL>,
657 <&topckgen CK_TOP_A1SYS_SEL>,
658 <&topckgen CK_TOP_AUD_L_SEL>,
659 <&topckgen CK_TOP_A_TUNER_SEL>;
developereee89f92021-12-30 10:09:49 +0800660 assigned-clock-parents = <&topckgen CK_TOP_CB_APLL2_196M>,
661 <&topckgen CK_TOP_APLL2_D4>,
662 <&topckgen CK_TOP_CB_APLL2_196M>,
663 <&topckgen CK_TOP_APLL2_D4>;
developere3c7cd12021-11-30 14:49:26 +0800664 status = "disabled";
665 };
developeredeb3972021-12-02 14:02:24 +0800666
667 ice: ice_debug {
668 compatible = "mediatek,mt7981-ice_debug",
669 "mediatek,mt2701-ice_debug";
670 clocks = <&infracfg_ao CK_INFRA_DBG_CK>;
671 clock-names = "ice_dbg";
672 };
developer24455dd2021-10-28 10:55:41 +0800673};
674#include "mt7981-clkitg.dtsi"