• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// SPDX-License-Identifier: GPL-2.0-only OR MIT
2
3#include <dt-bindings/clock/mediatek,mt7988-clk.h>
4#include <dt-bindings/interrupt-controller/arm-gic.h>
5#include <dt-bindings/phy/phy.h>
6
7/ {
8	compatible = "mediatek,mt7988a";
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-a73";
19			reg = <0x0>;
20			device_type = "cpu";
21			enable-method = "psci";
22		};
23
24		cpu@1 {
25			compatible = "arm,cortex-a73";
26			reg = <0x1>;
27			device_type = "cpu";
28			enable-method = "psci";
29		};
30
31		cpu@2 {
32			compatible = "arm,cortex-a73";
33			reg = <0x2>;
34			device_type = "cpu";
35			enable-method = "psci";
36		};
37
38		cpu@3 {
39			compatible = "arm,cortex-a73";
40			reg = <0x3>;
41			device_type = "cpu";
42			enable-method = "psci";
43		};
44	};
45
46	oscillator-40m {
47		compatible = "fixed-clock";
48		clock-frequency = <40000000>;
49		#clock-cells = <0>;
50		clock-output-names = "clkxtal";
51	};
52
53	pmu {
54		compatible = "arm,cortex-a73-pmu";
55		interrupt-parent = <&gic>;
56		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
57	};
58
59	psci {
60		compatible = "arm,psci-0.2";
61		method = "smc";
62	};
63
64	soc {
65		compatible = "simple-bus";
66		ranges;
67		#address-cells = <2>;
68		#size-cells = <2>;
69
70		gic: interrupt-controller@c000000 {
71			compatible = "arm,gic-v3";
72			reg = <0 0x0c000000 0 0x40000>,  /* GICD */
73			      <0 0x0c080000 0 0x200000>, /* GICR */
74			      <0 0x0c400000 0 0x2000>,   /* GICC */
75			      <0 0x0c410000 0 0x1000>,   /* GICH */
76			      <0 0x0c420000 0 0x2000>;   /* GICV */
77			interrupt-parent = <&gic>;
78			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
79			interrupt-controller;
80			#interrupt-cells = <3>;
81		};
82
83		infracfg: clock-controller@10001000 {
84			compatible = "mediatek,mt7988-infracfg", "syscon";
85			reg = <0 0x10001000 0 0x1000>;
86			#clock-cells = <1>;
87		};
88
89		clock-controller@1001b000 {
90			compatible = "mediatek,mt7988-topckgen", "syscon";
91			reg = <0 0x1001b000 0 0x1000>;
92			#clock-cells = <1>;
93		};
94
95		watchdog: watchdog@1001c000 {
96			compatible = "mediatek,mt7988-wdt";
97			reg = <0 0x1001c000 0 0x1000>;
98			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
99			#reset-cells = <1>;
100		};
101
102		clock-controller@1001e000 {
103			compatible = "mediatek,mt7988-apmixedsys";
104			reg = <0 0x1001e000 0 0x1000>;
105			#clock-cells = <1>;
106		};
107
108		pwm@10048000 {
109			compatible = "mediatek,mt7988-pwm";
110			reg = <0 0x10048000 0 0x1000>;
111			clocks = <&infracfg CLK_INFRA_66M_PWM_BCK>,
112				 <&infracfg CLK_INFRA_66M_PWM_HCK>,
113				 <&infracfg CLK_INFRA_66M_PWM_CK1>,
114				 <&infracfg CLK_INFRA_66M_PWM_CK2>,
115				 <&infracfg CLK_INFRA_66M_PWM_CK3>,
116				 <&infracfg CLK_INFRA_66M_PWM_CK4>,
117				 <&infracfg CLK_INFRA_66M_PWM_CK5>,
118				 <&infracfg CLK_INFRA_66M_PWM_CK6>,
119				 <&infracfg CLK_INFRA_66M_PWM_CK7>,
120				 <&infracfg CLK_INFRA_66M_PWM_CK8>;
121			clock-names = "top", "main", "pwm1", "pwm2", "pwm3",
122				      "pwm4", "pwm5", "pwm6", "pwm7", "pwm8";
123			#pwm-cells = <2>;
124			status = "disabled";
125		};
126
127		i2c@11003000 {
128			compatible = "mediatek,mt7981-i2c";
129			reg = <0 0x11003000 0 0x1000>,
130			      <0 0x10217080 0 0x80>;
131			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
132			clock-div = <1>;
133			clocks = <&infracfg CLK_INFRA_I2C_BCK>,
134				 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
135			clock-names = "main", "dma";
136			#address-cells = <1>;
137			#size-cells = <0>;
138			status = "disabled";
139		};
140
141		i2c@11004000 {
142			compatible = "mediatek,mt7981-i2c";
143			reg = <0 0x11004000 0 0x1000>,
144			      <0 0x10217100 0 0x80>;
145			interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
146			clock-div = <1>;
147			clocks = <&infracfg CLK_INFRA_I2C_BCK>,
148				 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
149			clock-names = "main", "dma";
150			#address-cells = <1>;
151			#size-cells = <0>;
152			status = "disabled";
153		};
154
155		i2c@11005000 {
156			compatible = "mediatek,mt7981-i2c";
157			reg = <0 0x11005000 0 0x1000>,
158			      <0 0x10217180 0 0x80>;
159			interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
160			clock-div = <1>;
161			clocks = <&infracfg CLK_INFRA_I2C_BCK>,
162				 <&infracfg CLK_INFRA_66M_AP_DMA_BCK>;
163			clock-names = "main", "dma";
164			#address-cells = <1>;
165			#size-cells = <0>;
166			status = "disabled";
167		};
168
169		usb@11190000 {
170			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
171			reg = <0 0x11190000 0 0x2e00>,
172			      <0 0x11193e00 0 0x0100>;
173			reg-names = "mac", "ippc";
174			interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
175			clocks = <&infracfg CLK_INFRA_USB_SYS>,
176				 <&infracfg CLK_INFRA_USB_REF>,
177				 <&infracfg CLK_INFRA_66M_USB_HCK>,
178				 <&infracfg CLK_INFRA_133M_USB_HCK>,
179				 <&infracfg CLK_INFRA_USB_XHCI>;
180			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
181		};
182
183		usb@11200000 {
184			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
185			reg = <0 0x11200000 0 0x2e00>,
186			      <0 0x11203e00 0 0x0100>;
187			reg-names = "mac", "ippc";
188			interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
189			clocks = <&infracfg CLK_INFRA_USB_SYS_CK_P1>,
190				 <&infracfg CLK_INFRA_USB_CK_P1>,
191				 <&infracfg CLK_INFRA_66M_USB_HCK_CK_P1>,
192				 <&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
193				 <&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
194			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
195		};
196
197		clock-controller@11f40000 {
198			compatible = "mediatek,mt7988-xfi-pll";
199			reg = <0 0x11f40000 0 0x1000>;
200			resets = <&watchdog 16>;
201			#clock-cells = <1>;
202		};
203
204		clock-controller@15000000 {
205			compatible = "mediatek,mt7988-ethsys", "syscon";
206			reg = <0 0x15000000 0 0x1000>;
207			#clock-cells = <1>;
208			#reset-cells = <1>;
209		};
210
211		clock-controller@15031000 {
212			compatible = "mediatek,mt7988-ethwarp";
213			reg = <0 0x15031000 0 0x1000>;
214			#clock-cells = <1>;
215			#reset-cells = <1>;
216		};
217	};
218
219	timer {
220		compatible = "arm,armv8-timer";
221		interrupt-parent = <&gic>;
222		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
223			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
224			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
225			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
226	};
227};
228