xref: /linux/scripts/dtc/include-prefixes/arm64/mediatek/mt7988a.dtsi (revision 09346afaba0a89652da38966293ad321e2170a90)
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		usb@11190000 {
109			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
110			reg = <0 0x11190000 0 0x2e00>,
111			      <0 0x11193e00 0 0x0100>;
112			reg-names = "mac", "ippc";
113			interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
114			clocks = <&infracfg CLK_INFRA_USB_SYS>,
115				 <&infracfg CLK_INFRA_USB_REF>,
116				 <&infracfg CLK_INFRA_66M_USB_HCK>,
117				 <&infracfg CLK_INFRA_133M_USB_HCK>,
118				 <&infracfg CLK_INFRA_USB_XHCI>;
119			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
120		};
121
122		usb@11200000 {
123			compatible = "mediatek,mt7988-xhci", "mediatek,mtk-xhci";
124			reg = <0 0x11200000 0 0x2e00>,
125			      <0 0x11203e00 0 0x0100>;
126			reg-names = "mac", "ippc";
127			interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
128			clocks = <&infracfg CLK_INFRA_USB_SYS_CK_P1>,
129				 <&infracfg CLK_INFRA_USB_CK_P1>,
130				 <&infracfg CLK_INFRA_66M_USB_HCK_CK_P1>,
131				 <&infracfg CLK_INFRA_133M_USB_HCK_CK_P1>,
132				 <&infracfg CLK_INFRA_USB_XHCI_CK_P1>;
133			clock-names = "sys_ck", "ref_ck", "mcu_ck", "dma_ck", "xhci_ck";
134		};
135
136		clock-controller@11f40000 {
137			compatible = "mediatek,mt7988-xfi-pll";
138			reg = <0 0x11f40000 0 0x1000>;
139			resets = <&watchdog 16>;
140			#clock-cells = <1>;
141		};
142
143		clock-controller@15000000 {
144			compatible = "mediatek,mt7988-ethsys", "syscon";
145			reg = <0 0x15000000 0 0x1000>;
146			#clock-cells = <1>;
147			#reset-cells = <1>;
148		};
149
150		clock-controller@15031000 {
151			compatible = "mediatek,mt7988-ethwarp";
152			reg = <0 0x15031000 0 0x1000>;
153			#clock-cells = <1>;
154			#reset-cells = <1>;
155		};
156	};
157
158	timer {
159		compatible = "arm,armv8-timer";
160		interrupt-parent = <&gic>;
161		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
162			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
163			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
164			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
165	};
166};
167