xref: /linux/arch/arm64/boot/dts/mediatek/mt7981b.dtsi (revision 254a6b0ba0494961aad96ef7cbeeffb3e432a778)
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
14562b24c7fSRafał Miłecki		pio: pinctrl@11d00000 {
14662b24c7fSRafał Miłecki			compatible = "mediatek,mt7981-pinctrl";
14762b24c7fSRafał Miłecki			reg = <0 0x11d00000 0 0x1000>,
14862b24c7fSRafał Miłecki			      <0 0x11c00000 0 0x1000>,
14962b24c7fSRafał Miłecki			      <0 0x11c10000 0 0x1000>,
15062b24c7fSRafał Miłecki			      <0 0x11d20000 0 0x1000>,
15162b24c7fSRafał Miłecki			      <0 0x11e00000 0 0x1000>,
15262b24c7fSRafał Miłecki			      <0 0x11e20000 0 0x1000>,
15362b24c7fSRafał Miłecki			      <0 0x11f00000 0 0x1000>,
15462b24c7fSRafał Miłecki			      <0 0x11f10000 0 0x1000>,
15562b24c7fSRafał Miłecki			      <0 0x1000b000 0 0x1000>;
15662b24c7fSRafał Miłecki			reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
15762b24c7fSRafał Miłecki				    "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
15862b24c7fSRafał Miłecki			interrupt-controller;
15962b24c7fSRafał Miłecki			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
16062b24c7fSRafał Miłecki			interrupt-parent = <&gic>;
16162b24c7fSRafał Miłecki			gpio-ranges = <&pio 0 0 56>;
16262b24c7fSRafał Miłecki			gpio-controller;
16362b24c7fSRafał Miłecki			#gpio-cells = <2>;
16462b24c7fSRafał Miłecki			#interrupt-cells = <2>;
16562b24c7fSRafał Miłecki		};
16662b24c7fSRafał Miłecki
167454880d6SRafał Miłecki		efuse@11f20000 {
168454880d6SRafał Miłecki			compatible = "mediatek,mt7981-efuse", "mediatek,efuse";
169454880d6SRafał Miłecki			reg = <0 0x11f20000 0 0x1000>;
170454880d6SRafał Miłecki			#address-cells = <1>;
171454880d6SRafał Miłecki			#size-cells = <1>;
172454880d6SRafał Miłecki		};
173454880d6SRafał Miłecki
174cf294275SRafał Miłecki		clock-controller@15000000 {
175cf294275SRafał Miłecki			compatible = "mediatek,mt7981-ethsys", "syscon";
176cf294275SRafał Miłecki			reg = <0 0x15000000 0 0x1000>;
177cf294275SRafał Miłecki			#clock-cells = <1>;
178cf294275SRafał Miłecki			#reset-cells = <1>;
179cf294275SRafał Miłecki		};
1808f5a9d6bSRafał Miłecki
1818f5a9d6bSRafał Miłecki		wifi@18000000 {
1828f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7981-wmac";
1838f5a9d6bSRafał Miłecki			reg = <0 0x18000000 0 0x1000000>,
1848f5a9d6bSRafał Miłecki			      <0 0x10003000 0 0x1000>,
1858f5a9d6bSRafał Miłecki			      <0 0x11d10000 0 0x1000>;
1868f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
1878f5a9d6bSRafał Miłecki				     <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
1888f5a9d6bSRafał Miłecki				     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
1898f5a9d6bSRafał Miłecki				     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
1908f5a9d6bSRafał Miłecki			clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
1918f5a9d6bSRafał Miłecki				 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
1928f5a9d6bSRafał Miłecki			clock-names = "mcu", "ap2conn";
1938f5a9d6bSRafał Miłecki			resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
1948f5a9d6bSRafał Miłecki			reset-names = "consys";
1958f5a9d6bSRafał Miłecki		};
196cf294275SRafał Miłecki	};
197cf294275SRafał Miłecki
198cf294275SRafał Miłecki	timer {
199cf294275SRafał Miłecki		compatible = "arm,armv8-timer";
200cf294275SRafał Miłecki		interrupt-parent = <&gic>;
201cf294275SRafał Miłecki		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
202cf294275SRafał Miłecki			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
203cf294275SRafał Miłecki			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
204cf294275SRafał Miłecki			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
205cf294275SRafał Miłecki	};
206cf294275SRafał Miłecki};
207