blob: 64aeeb24efac872e45e6721ccd0ad9ac1de57cd4 [file] [log] [blame]
Tom Rini6bb92fc2024-05-20 09:54:58 -06001// SPDX-License-Identifier: GPL-2.0-only OR MIT
2
3#include <dt-bindings/clock/mediatek,mt7981-clk.h>
4#include <dt-bindings/interrupt-controller/arm-gic.h>
Tom Rini6b642ac2024-10-01 12:20:28 -06005#include <dt-bindings/reset/mt7986-resets.h>
Tom Rini6bb92fc2024-05-20 09:54:58 -06006
7/ {
8 compatible = "mediatek,mt7981b";
9 interrupt-parent = <&gic>;
10 #address-cells = <2>;
11 #size-cells = <2>;
12
13 cpus {
14 #address-cells = <1>;
15 #size-cells = <0>;
16
17 cpu@0 {
18 compatible = "arm,cortex-a53";
19 reg = <0x0>;
20 device_type = "cpu";
21 enable-method = "psci";
22 };
23
24 cpu@1 {
25 compatible = "arm,cortex-a53";
26 reg = <0x1>;
27 device_type = "cpu";
28 enable-method = "psci";
29 };
30 };
31
32 oscillator-40m {
33 compatible = "fixed-clock";
34 clock-frequency = <40000000>;
35 clock-output-names = "clkxtal";
36 #clock-cells = <0>;
37 };
38
39 psci {
40 compatible = "arm,psci-1.0";
41 method = "smc";
42 };
43
44 soc {
45 compatible = "simple-bus";
46 ranges;
47 #address-cells = <2>;
48 #size-cells = <2>;
49
50 gic: interrupt-controller@c000000 {
51 compatible = "arm,gic-v3";
52 reg = <0 0x0c000000 0 0x40000>, /* GICD */
53 <0 0x0c080000 0 0x200000>; /* GICR */
54 interrupt-parent = <&gic>;
55 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
56 interrupt-controller;
57 #interrupt-cells = <3>;
58 };
59
60 infracfg: clock-controller@10001000 {
61 compatible = "mediatek,mt7981-infracfg", "syscon";
62 reg = <0 0x10001000 0 0x1000>;
63 #clock-cells = <1>;
64 };
65
Tom Rini6b642ac2024-10-01 12:20:28 -060066 topckgen: clock-controller@1001b000 {
Tom Rini6bb92fc2024-05-20 09:54:58 -060067 compatible = "mediatek,mt7981-topckgen", "syscon";
68 reg = <0 0x1001b000 0 0x1000>;
69 #clock-cells = <1>;
70 };
71
Tom Rini6b642ac2024-10-01 12:20:28 -060072 watchdog: watchdog@1001c000 {
73 compatible = "mediatek,mt7986-wdt";
74 reg = <0 0x1001c000 0 0x1000>;
75 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
76 #reset-cells = <1>;
77 };
78
Tom Rini6bb92fc2024-05-20 09:54:58 -060079 clock-controller@1001e000 {
80 compatible = "mediatek,mt7981-apmixedsys";
81 reg = <0 0x1001e000 0 0x1000>;
82 #clock-cells = <1>;
83 };
84
85 pwm@10048000 {
86 compatible = "mediatek,mt7981-pwm";
87 reg = <0 0x10048000 0 0x1000>;
88 clocks = <&infracfg CLK_INFRA_PWM_STA>,
Tom Rini6b642ac2024-10-01 12:20:28 -060089 <&infracfg CLK_INFRA_PWM_HCK>,
90 <&infracfg CLK_INFRA_PWM1_CK>,
91 <&infracfg CLK_INFRA_PWM2_CK>,
92 <&infracfg CLK_INFRA_PWM3_CK>;
Tom Rini6bb92fc2024-05-20 09:54:58 -060093 clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
94 #pwm-cells = <2>;
95 };
96
Tom Rini6b642ac2024-10-01 12:20:28 -060097 i2c@11007000 {
98 compatible = "mediatek,mt7981-i2c";
99 reg = <0 0x11007000 0 0x1000>,
100 <0 0x10217080 0 0x80>;
101 interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
102 clocks = <&infracfg CLK_INFRA_I2C0_CK>,
103 <&infracfg CLK_INFRA_AP_DMA_CK>,
104 <&infracfg CLK_INFRA_I2C_MCK_CK>,
105 <&infracfg CLK_INFRA_I2C_PCK_CK>;
106 clock-names = "main", "dma", "arb", "pmic";
107 #address-cells = <1>;
108 #size-cells = <0>;
109 status = "disabled";
110 };
111
112 pio: pinctrl@11d00000 {
113 compatible = "mediatek,mt7981-pinctrl";
114 reg = <0 0x11d00000 0 0x1000>,
115 <0 0x11c00000 0 0x1000>,
116 <0 0x11c10000 0 0x1000>,
117 <0 0x11d20000 0 0x1000>,
118 <0 0x11e00000 0 0x1000>,
119 <0 0x11e20000 0 0x1000>,
120 <0 0x11f00000 0 0x1000>,
121 <0 0x11f10000 0 0x1000>,
122 <0 0x1000b000 0 0x1000>;
123 reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
124 "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
125 interrupt-controller;
126 interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
127 interrupt-parent = <&gic>;
128 gpio-ranges = <&pio 0 0 56>;
129 gpio-controller;
130 #gpio-cells = <2>;
131 #interrupt-cells = <2>;
132 };
133
134 efuse@11f20000 {
135 compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
136 reg = <0 0x11f20000 0 0x1000>;
137 #address-cells = <1>;
138 #size-cells = <1>;
139 };
140
Tom Rini6bb92fc2024-05-20 09:54:58 -0600141 clock-controller@15000000 {
142 compatible = "mediatek,mt7981-ethsys", "syscon";
143 reg = <0 0x15000000 0 0x1000>;
144 #clock-cells = <1>;
145 #reset-cells = <1>;
146 };
Tom Rini6b642ac2024-10-01 12:20:28 -0600147
148 wifi@18000000 {
149 compatible = "mediatek,mt7981-wmac";
150 reg = <0 0x18000000 0 0x1000000>,
151 <0 0x10003000 0 0x1000>,
152 <0 0x11d10000 0 0x1000>;
153 interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
154 <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
155 <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
156 <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
157 clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
158 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
159 clock-names = "mcu", "ap2conn";
160 resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
161 reset-names = "consys";
162 };
Tom Rini6bb92fc2024-05-20 09:54:58 -0600163 };
164
165 timer {
166 compatible = "arm,armv8-timer";
167 interrupt-parent = <&gic>;
168 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
169 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
170 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
171 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
172 };
173};