xref: /linux/arch/arm64/boot/dts/mediatek/mt7981b.dtsi (revision 8f5a9d6b304a6599d5dfb315bb0b0de9edf5dce0)
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>
5*8f5a9d6bSRafał 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
66*8f5a9d6bSRafał 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
72*8f5a9d6bSRafał Miłecki		watchdog: watchdog@1001c000 {
73*8f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7986-wdt";
74*8f5a9d6bSRafał Miłecki			reg = <0 0x1001c000 0 0x1000>;
75*8f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
76*8f5a9d6bSRafał Miłecki			#reset-cells = <1>;
77*8f5a9d6bSRafał Miłecki		};
78*8f5a9d6bSRafał 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
9762b24c7fSRafał Miłecki		pio: pinctrl@11d00000 {
9862b24c7fSRafał Miłecki			compatible = "mediatek,mt7981-pinctrl";
9962b24c7fSRafał Miłecki			reg = <0 0x11d00000 0 0x1000>,
10062b24c7fSRafał Miłecki			      <0 0x11c00000 0 0x1000>,
10162b24c7fSRafał Miłecki			      <0 0x11c10000 0 0x1000>,
10262b24c7fSRafał Miłecki			      <0 0x11d20000 0 0x1000>,
10362b24c7fSRafał Miłecki			      <0 0x11e00000 0 0x1000>,
10462b24c7fSRafał Miłecki			      <0 0x11e20000 0 0x1000>,
10562b24c7fSRafał Miłecki			      <0 0x11f00000 0 0x1000>,
10662b24c7fSRafał Miłecki			      <0 0x11f10000 0 0x1000>,
10762b24c7fSRafał Miłecki			      <0 0x1000b000 0 0x1000>;
10862b24c7fSRafał Miłecki			reg-names = "gpio", "iocfg_rt", "iocfg_rm", "iocfg_rb", "iocfg_lb",
10962b24c7fSRafał Miłecki				    "iocfg_bl", "iocfg_tm", "iocfg_tl", "eint";
11062b24c7fSRafał Miłecki			interrupt-controller;
11162b24c7fSRafał Miłecki			interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
11262b24c7fSRafał Miłecki			interrupt-parent = <&gic>;
11362b24c7fSRafał Miłecki			gpio-ranges = <&pio 0 0 56>;
11462b24c7fSRafał Miłecki			gpio-controller;
11562b24c7fSRafał Miłecki			#gpio-cells = <2>;
11662b24c7fSRafał Miłecki			#interrupt-cells = <2>;
11762b24c7fSRafał Miłecki		};
11862b24c7fSRafał Miłecki
119cf294275SRafał Miłecki		clock-controller@15000000 {
120cf294275SRafał Miłecki			compatible = "mediatek,mt7981-ethsys", "syscon";
121cf294275SRafał Miłecki			reg = <0 0x15000000 0 0x1000>;
122cf294275SRafał Miłecki			#clock-cells = <1>;
123cf294275SRafał Miłecki			#reset-cells = <1>;
124cf294275SRafał Miłecki		};
125*8f5a9d6bSRafał Miłecki
126*8f5a9d6bSRafał Miłecki		wifi@18000000 {
127*8f5a9d6bSRafał Miłecki			compatible = "mediatek,mt7981-wmac";
128*8f5a9d6bSRafał Miłecki			reg = <0 0x18000000 0 0x1000000>,
129*8f5a9d6bSRafał Miłecki			      <0 0x10003000 0 0x1000>,
130*8f5a9d6bSRafał Miłecki			      <0 0x11d10000 0 0x1000>;
131*8f5a9d6bSRafał Miłecki			interrupts = <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
132*8f5a9d6bSRafał Miłecki				     <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
133*8f5a9d6bSRafał Miłecki				     <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
134*8f5a9d6bSRafał Miłecki				     <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
135*8f5a9d6bSRafał Miłecki			clocks = <&topckgen CLK_TOP_NETSYS_MCU_SEL>,
136*8f5a9d6bSRafał Miłecki				 <&topckgen CLK_TOP_AP2CNN_HOST_SEL>;
137*8f5a9d6bSRafał Miłecki			clock-names = "mcu", "ap2conn";
138*8f5a9d6bSRafał Miłecki			resets = <&watchdog MT7986_TOPRGU_CONSYS_SW_RST>;
139*8f5a9d6bSRafał Miłecki			reset-names = "consys";
140*8f5a9d6bSRafał Miłecki		};
141cf294275SRafał Miłecki	};
142cf294275SRafał Miłecki
143cf294275SRafał Miłecki	timer {
144cf294275SRafał Miłecki		compatible = "arm,armv8-timer";
145cf294275SRafał Miłecki		interrupt-parent = <&gic>;
146cf294275SRafał Miłecki		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
147cf294275SRafał Miłecki			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
148cf294275SRafał Miłecki			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
149cf294275SRafał Miłecki			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
150cf294275SRafał Miłecki	};
151cf294275SRafał Miłecki};
152