xref: /linux/arch/arm64/boot/dts/mediatek/mt7981b.dtsi (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1cf294275SRafał Miłecki// SPDX-License-Identifier: GPL-2.0-only OR MIT
2cf294275SRafał Miłecki
3cf294275SRafał Miłecki#include <dt-bindings/clock/mediatek,mt7981-clk.h>
4cf294275SRafał Miłecki#include <dt-bindings/interrupt-controller/arm-gic.h>
58f5a9d6bSRafał Miłecki#include <dt-bindings/reset/mt7986-resets.h>
6cf294275SRafał Miłecki
7cf294275SRafał Miłecki/ {
8cf294275SRafał Miłecki	compatible = "mediatek,mt7981b";
9cf294275SRafał Miłecki	interrupt-parent = <&gic>;
10cf294275SRafał Miłecki	#address-cells = <2>;
11cf294275SRafał Miłecki	#size-cells = <2>;
12cf294275SRafał Miłecki
13cf294275SRafał Miłecki	cpus {
14cf294275SRafał Miłecki		#address-cells = <1>;
15cf294275SRafał Miłecki		#size-cells = <0>;
16cf294275SRafał Miłecki
17cf294275SRafał Miłecki		cpu@0 {
18cf294275SRafał Miłecki			compatible = "arm,cortex-a53";
19cf294275SRafał Miłecki			reg = <0x0>;
20cf294275SRafał Miłecki			device_type = "cpu";
21cf294275SRafał Miłecki			enable-method = "psci";
22cf294275SRafał Miłecki		};
23cf294275SRafał Miłecki
24cf294275SRafał Miłecki		cpu@1 {
25cf294275SRafał Miłecki			compatible = "arm,cortex-a53";
26cf294275SRafał Miłecki			reg = <0x1>;
27cf294275SRafał Miłecki			device_type = "cpu";
28cf294275SRafał Miłecki			enable-method = "psci";
29cf294275SRafał Miłecki		};
30cf294275SRafał Miłecki	};
31cf294275SRafał Miłecki
32cf294275SRafał Miłecki	oscillator-40m {
33cf294275SRafał Miłecki		compatible = "fixed-clock";
34cf294275SRafał Miłecki		clock-frequency = <40000000>;
35cf294275SRafał Miłecki		clock-output-names = "clkxtal";
36cf294275SRafał Miłecki		#clock-cells = <0>;
37cf294275SRafał Miłecki	};
38cf294275SRafał Miłecki
39cf294275SRafał Miłecki	psci {
40cf294275SRafał Miłecki		compatible = "arm,psci-1.0";
41cf294275SRafał Miłecki		method = "smc";
42cf294275SRafał Miłecki	};
43cf294275SRafał Miłecki
44cf294275SRafał Miłecki	soc {
45cf294275SRafał Miłecki		compatible = "simple-bus";
46cf294275SRafał Miłecki		ranges;
47cf294275SRafał Miłecki		#address-cells = <2>;
48cf294275SRafał Miłecki		#size-cells = <2>;
49cf294275SRafał Miłecki
50cf294275SRafał Miłecki		gic: interrupt-controller@c000000 {
51cf294275SRafał Miłecki			compatible = "arm,gic-v3";
52cf294275SRafał Miłecki			reg = <0 0x0c000000 0 0x40000>,  /* GICD */
53cf294275SRafał Miłecki			      <0 0x0c080000 0 0x200000>; /* GICR */
54cf294275SRafał Miłecki			interrupt-parent = <&gic>;
55cf294275SRafał Miłecki			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
56cf294275SRafał Miłecki			interrupt-controller;
57cf294275SRafał Miłecki			#interrupt-cells = <3>;
58cf294275SRafał Miłecki		};
59cf294275SRafał Miłecki
60cf294275SRafał Miłecki		infracfg: clock-controller@10001000 {
61cf294275SRafał Miłecki			compatible = "mediatek,mt7981-infracfg", "syscon";
62cf294275SRafał Miłecki			reg = <0 0x10001000 0 0x1000>;
63cf294275SRafał Miłecki			#clock-cells = <1>;
64cf294275SRafał Miłecki		};
65cf294275SRafał Miłecki
668f5a9d6bSRafał Miłecki		topckgen: clock-controller@1001b000 {
67cf294275SRafał Miłecki			compatible = "mediatek,mt7981-topckgen", "syscon";
68cf294275SRafał Miłecki			reg = <0 0x1001b000 0 0x1000>;
69cf294275SRafał Miłecki			#clock-cells = <1>;
70cf294275SRafał Miłecki		};
71cf294275SRafał Miłecki
728f5a9d6bSRafał Miłecki		watchdog: watchdog@1001c000 {
738f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7986-wdt";
748f5a9d6bSRafał Miłecki			reg = <0 0x1001c000 0 0x1000>;
758f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
768f5a9d6bSRafał Miłecki			#reset-cells = <1>;
778f5a9d6bSRafał Miłecki		};
788f5a9d6bSRafał Miłecki
79cf294275SRafał Miłecki		clock-controller@1001e000 {
80cf294275SRafał Miłecki			compatible = "mediatek,mt7981-apmixedsys";
81cf294275SRafał Miłecki			reg = <0 0x1001e000 0 0x1000>;
82cf294275SRafał Miłecki			#clock-cells = <1>;
83cf294275SRafał Miłecki		};
84cf294275SRafał Miłecki
85cf294275SRafał Miłecki		pwm@10048000 {
86cf294275SRafał Miłecki			compatible = "mediatek,mt7981-pwm";
87cf294275SRafał Miłecki			reg = <0 0x10048000 0 0x1000>;
88cf294275SRafał Miłecki			clocks = <&infracfg CLK_INFRA_PWM_STA>,
89cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM_HCK>,
90cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM1_CK>,
91cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM2_CK>,
92cf294275SRafał Miłecki				 <&infracfg CLK_INFRA_PWM3_CK>;
93cf294275SRafał Miłecki			clock-names = "top", "main", "pwm1", "pwm2", "pwm3";
94cf294275SRafał Miłecki			#pwm-cells = <2>;
95cf294275SRafał Miłecki		};
96cf294275SRafał Miłecki
97*254a6b0bSRafał Miłecki		serial@11002000 {
98*254a6b0bSRafał Miłecki			compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
99*254a6b0bSRafał Miłecki			reg = <0 0x11002000 0 0x100>;
100*254a6b0bSRafał Miłecki			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
101*254a6b0bSRafał Miłecki			interrupt-names = "uart", "wakeup";
102*254a6b0bSRafał Miłecki			clocks = <&infracfg CLK_INFRA_UART0_SEL>,
103*254a6b0bSRafał Miłecki				 <&infracfg CLK_INFRA_UART0_CK>;
104*254a6b0bSRafał Miłecki			clock-names = "baud", "bus";
105*254a6b0bSRafał Miłecki			status = "disabled";
106*254a6b0bSRafał Miłecki		};
107*254a6b0bSRafał Miłecki
108*254a6b0bSRafał Miłecki		serial@11003000 {
109*254a6b0bSRafał Miłecki			compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
110*254a6b0bSRafał Miłecki			reg = <0 0x11003000 0 0x100>;
111*254a6b0bSRafał Miłecki			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
112*254a6b0bSRafał Miłecki			interrupt-names = "uart", "wakeup";
113*254a6b0bSRafał Miłecki			clocks = <&infracfg CLK_INFRA_UART1_SEL>,
114*254a6b0bSRafał Miłecki				 <&infracfg CLK_INFRA_UART1_CK>;
115*254a6b0bSRafał Miłecki			clock-names = "baud", "bus";
116*254a6b0bSRafał Miłecki			status = "disabled";
117*254a6b0bSRafał Miłecki		};
118*254a6b0bSRafał Miłecki
119*254a6b0bSRafał Miłecki		serial@11004000 {
120*254a6b0bSRafał Miłecki			compatible = "mediatek,mt7981-uart", "mediatek,mt6577-uart";
121*254a6b0bSRafał Miłecki			reg = <0 0x11004000 0 0x100>;
122*254a6b0bSRafał Miłecki			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
123*254a6b0bSRafał Miłecki			interrupt-names = "uart", "wakeup";
124*254a6b0bSRafał Miłecki			clocks = <&infracfg CLK_INFRA_UART2_SEL>,
125*254a6b0bSRafał Miłecki				 <&infracfg CLK_INFRA_UART2_CK>;
126*254a6b0bSRafał Miłecki			clock-names = "baud", "bus";
127*254a6b0bSRafał Miłecki			status = "disabled";
128*254a6b0bSRafał Miłecki		};
129*254a6b0bSRafał Miłecki
130c3e87229SRafał Miłecki		i2c@11007000 {
131c3e87229SRafał Miłecki			compatible = "mediatek,mt7981-i2c";
132c3e87229SRafał Miłecki			reg = <0 0x11007000 0 0x1000>,
133c3e87229SRafał Miłecki			      <0 0x10217080 0 0x80>;
134c3e87229SRafał Miłecki			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
135c3e87229SRafał Miłecki			clocks = <&infracfg CLK_INFRA_I2C0_CK>,
136c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_AP_DMA_CK>,
137c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_I2C_MCK_CK>,
138c3e87229SRafał Miłecki				 <&infracfg CLK_INFRA_I2C_PCK_CK>;
139c3e87229SRafał Miłecki			clock-names = "main", "dma", "arb", "pmic";
140c3e87229SRafał Miłecki			#address-cells = <1>;
141c3e87229SRafał Miłecki			#size-cells = <0>;
142c3e87229SRafał Miłecki			status = "disabled";
143c3e87229SRafał Miłecki		};
144c3e87229SRafał Miłecki
145ec5c04abSRafał Miłecki		spi@11009000 {
146ec5c04abSRafał Miłecki			compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
147ec5c04abSRafał Miłecki			reg = <0 0x11009000 0 0x1000>;
148ec5c04abSRafał Miłecki			interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>;
149ec5c04abSRafał Miłecki			clocks = <&topckgen CLK_TOP_CB_M_D2>,
150ec5c04abSRafał Miłecki				 <&topckgen CLK_TOP_SPI_SEL>,
151ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI2_CK>,
152ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI2_HCK_CK>;
153ec5c04abSRafał Miłecki			clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
154ec5c04abSRafał Miłecki			#address-cells = <1>;
155ec5c04abSRafał Miłecki			#size-cells = <0>;
156ec5c04abSRafał Miłecki			status = "disabled";
157ec5c04abSRafał Miłecki		};
158ec5c04abSRafał Miłecki
159ec5c04abSRafał Miłecki		spi@1100a000 {
160ec5c04abSRafał Miłecki			compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
161ec5c04abSRafał Miłecki			reg = <0 0x1100a000 0 0x1000>;
162ec5c04abSRafał Miłecki			interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
163ec5c04abSRafał Miłecki			clocks = <&topckgen CLK_TOP_CB_M_D2>,
164ec5c04abSRafał Miłecki				 <&topckgen CLK_TOP_SPI_SEL>,
165ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI0_CK>,
166ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI0_HCK_CK>;
167ec5c04abSRafał Miłecki			clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
168ec5c04abSRafał Miłecki			#address-cells = <1>;
169ec5c04abSRafał Miłecki			#size-cells = <0>;
170ec5c04abSRafał Miłecki			status = "disabled";
171ec5c04abSRafał Miłecki		};
172ec5c04abSRafał Miłecki
173ec5c04abSRafał Miłecki		spi@1100b000 {
174ec5c04abSRafał Miłecki			compatible = "mediatek,mt7981-spi-ipm", "mediatek,spi-ipm";
175ec5c04abSRafał Miłecki			reg = <0 0x1100b000 0 0x1000>;
176ec5c04abSRafał Miłecki			interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
177ec5c04abSRafał Miłecki			clocks = <&topckgen CLK_TOP_CB_M_D2>,
178ec5c04abSRafał Miłecki				 <&topckgen CLK_TOP_SPI_SEL>,
179ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI1_CK>,
180ec5c04abSRafał Miłecki				 <&infracfg CLK_INFRA_SPI1_HCK_CK>;
181ec5c04abSRafał Miłecki			clock-names = "parent-clk", "sel-clk", "spi-clk", "hclk";
182ec5c04abSRafał Miłecki			#address-cells = <1>;
183ec5c04abSRafał Miłecki			#size-cells = <0>;
184ec5c04abSRafał Miłecki			status = "disabled";
185ec5c04abSRafał Miłecki		};
186ec5c04abSRafał Miłecki
18762b24c7fSRafał Miłecki		pio: pinctrl@11d00000 {
18862b24c7fSRafał Miłecki			compatible = "mediatek,mt7981-pinctrl";
18962b24c7fSRafał Miłecki			reg = <0 0x11d00000 0 0x1000>,
19062b24c7fSRafał Miłecki			      <0 0x11c00000 0 0x1000>,
19162b24c7fSRafał Miłecki			      <0 0x11c10000 0 0x1000>,
19262b24c7fSRafał Miłecki			      <0 0x11d20000 0 0x1000>,
19362b24c7fSRafał Miłecki			      <0 0x11e00000 0 0x1000>,
19462b24c7fSRafał Miłecki			      <0 0x11e20000 0 0x1000>,
19562b24c7fSRafał Miłecki			      <0 0x11f00000 0 0x1000>,
19662b24c7fSRafał Miłecki			      <0 0x11f10000 0 0x1000>,
19762b24c7fSRafał Miłecki			      <0 0x1000b000 0 0x1000>;
19862b24c7fSRafał Miłecki			reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
19962b24c7fSRafał Miłecki				    "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
20062b24c7fSRafał Miłecki			interrupt-controller;
20162b24c7fSRafał Miłecki			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
20262b24c7fSRafał Miłecki			interrupt-parent = <&gic>;
20362b24c7fSRafał Miłecki			gpio-ranges = <&pio 0 0 56>;
20462b24c7fSRafał Miłecki			gpio-controller;
20562b24c7fSRafał Miłecki			#gpio-cells = <2>;
20662b24c7fSRafał Miłecki			#interrupt-cells = <2>;
20762b24c7fSRafał Miłecki		};
20862b24c7fSRafał Miłecki
209454880d6SRafał Miłecki		efuse@11f20000 {
210454880d6SRafał Miłecki			compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
211454880d6SRafał Miłecki			reg = <0 0x11f20000 0 0x1000>;
212454880d6SRafał Miłecki			#address-cells = <1>;
213454880d6SRafał Miłecki			#size-cells = <1>;
214454880d6SRafał Miłecki		};
215454880d6SRafał Miłecki
216cf294275SRafał Miłecki		clock-controller@15000000 {
217cf294275SRafał Miłecki			compatible = "mediatek,mt7981-ethsys", "syscon";
218cf294275SRafał Miłecki			reg = <0 0x15000000 0 0x1000>;
219cf294275SRafał Miłecki			#clock-cells = <1>;
220cf294275SRafał Miłecki			#reset-cells = <1>;
221cf294275SRafał Miłecki		};
2228f5a9d6bSRafał Miłecki
2238f5a9d6bSRafał Miłecki		wifi@18000000 {
2248f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7981-wmac";
2258f5a9d6bSRafał Miłecki			reg = <0 0x18000000 0 0x1000000>,
2268f5a9d6bSRafał Miłecki			      <0 0x10003000 0 0x1000>,
2278f5a9d6bSRafał Miłecki			      <0 0x11d10000 0 0x1000>;
2288f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
2298f5a9d6bSRafał Miłecki				     <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
2308f5a9d6bSRafał Miłecki				     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
2318f5a9d6bSRafał Miłecki				     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
2328f5a9d6bSRafał Miłecki			clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
2338f5a9d6bSRafał Miłecki				 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
2348f5a9d6bSRafał Miłecki			clock-names = "mcu", "ap2conn";
2358f5a9d6bSRafał Miłecki			resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
2368f5a9d6bSRafał Miłecki			reset-names = "consys";
2378f5a9d6bSRafał Miłecki		};
238cf294275SRafał Miłecki	};
239cf294275SRafał Miłecki
240cf294275SRafał Miłecki	timer {
241cf294275SRafał Miłecki		compatible = "arm,armv8-timer";
242cf294275SRafał Miłecki		interrupt-parent = <&gic>;
243cf294275SRafał Miłecki		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
244cf294275SRafał Miłecki			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
245cf294275SRafał Miłecki			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
246cf294275SRafał Miłecki			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
247cf294275SRafał Miłecki	};
248cf294275SRafał Miłecki};
249