xref: /linux/scripts/dtc/include-prefixes/arm64/mediatek/mt7988a.dtsi (revision 09ff2216a035709967096210cea144563bbc3259)
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		usb@11190000 {
128			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
129			reg = <0 0x11190000 0 0x2e00>,
130			      <0 0x11193e00 0 0x0100>;
131			reg-names = "mac", "ippc";
132			interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
133			clocks = <&infracfg CLK_INFRA_USB_SYS>,
134				 <&infracfg CLK_INFRA_USB_REF>,
135				 <&infracfg CLK_INFRA_66M_USB_HCK>,
136				 <&infracfg CLK_INFRA_133M_USB_HCK>,
137				 <&infracfg CLK_INFRA_USB_XHCI>;
138			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
139		};
140
141		usb@11200000 {
142			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
143			reg = <0 0x11200000 0 0x2e00>,
144			      <0 0x11203e00 0 0x0100>;
145			reg-names = "mac", "ippc";
146			interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
147			clocks = <&infracfg CLK_INFRA_USB_SYS_CK_P1>,
148				 <&infracfg CLK_INFRA_USB_CK_P1>,
149				 <&infracfg CLK_INFRA_66M_USB_HCK_CK_P1>,
150				 <&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
151				 <&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
152			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
153		};
154
155		clock-controller@11f40000 {
156			compatible = "mediatek,mt7988-xfi-pll";
157			reg = <0 0x11f40000 0 0x1000>;
158			resets = <&watchdog 16>;
159			#clock-cells = <1>;
160		};
161
162		clock-controller@15000000 {
163			compatible = "mediatek,mt7988-ethsys", "syscon";
164			reg = <0 0x15000000 0 0x1000>;
165			#clock-cells = <1>;
166			#reset-cells = <1>;
167		};
168
169		clock-controller@15031000 {
170			compatible = "mediatek,mt7988-ethwarp";
171			reg = <0 0x15031000 0 0x1000>;
172			#clock-cells = <1>;
173			#reset-cells = <1>;
174		};
175	};
176
177	timer {
178		compatible = "arm,armv8-timer";
179		interrupt-parent = <&gic>;
180		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
181			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
182			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
183			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
184	};
185};
186