Merge tag 'soc-drivers-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
[linux-block.git] / arch / arm64 / boot / dts / mediatek / mt7988a.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only OR MIT
2
3 #include <dt-bindings/interrupt-controller/arm-gic.h>
4
5 / {
6         compatible = "mediatek,mt7988a";
7         interrupt-parent = <&gic>;
8         #address-cells = <2>;
9         #size-cells = <2>;
10
11         cpus {
12                 #address-cells = <1>;
13                 #size-cells = <0>;
14
15                 cpu@0 {
16                         compatible = "arm,cortex-a73";
17                         reg = <0x0>;
18                         device_type = "cpu";
19                         enable-method = "psci";
20                 };
21
22                 cpu@1 {
23                         compatible = "arm,cortex-a73";
24                         reg = <0x1>;
25                         device_type = "cpu";
26                         enable-method = "psci";
27                 };
28
29                 cpu@2 {
30                         compatible = "arm,cortex-a73";
31                         reg = <0x2>;
32                         device_type = "cpu";
33                         enable-method = "psci";
34                 };
35
36                 cpu@3 {
37                         compatible = "arm,cortex-a73";
38                         reg = <0x3>;
39                         device_type = "cpu";
40                         enable-method = "psci";
41                 };
42         };
43
44         oscillator-40m {
45                 compatible = "fixed-clock";
46                 clock-frequency = <40000000>;
47                 #clock-cells = <0>;
48                 clock-output-names = "clkxtal";
49         };
50
51         pmu {
52                 compatible = "arm,cortex-a73-pmu";
53                 interrupt-parent = <&gic>;
54                 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
55         };
56
57         psci {
58                 compatible = "arm,psci-0.2";
59                 method = "smc";
60         };
61
62         soc {
63                 compatible = "simple-bus";
64                 ranges;
65                 #address-cells = <2>;
66                 #size-cells = <2>;
67
68                 gic: interrupt-controller@c000000 {
69                         compatible = "arm,gic-v3";
70                         reg = <0 0x0c000000 0 0x40000>,  /* GICD */
71                               <0 0x0c080000 0 0x200000>, /* GICR */
72                               <0 0x0c400000 0 0x2000>,   /* GICC */
73                               <0 0x0c410000 0 0x1000>,   /* GICH */
74                               <0 0x0c420000 0 0x2000>;   /* GICV */
75                         interrupt-parent = <&gic>;
76                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
77                         interrupt-controller;
78                         #interrupt-cells = <3>;
79                 };
80
81                 clock-controller@10001000 {
82                         compatible = "mediatek,mt7988-infracfg", "syscon";
83                         reg = <0 0x10001000 0 0x1000>;
84                         #clock-cells = <1>;
85                 };
86
87                 clock-controller@1001b000 {
88                         compatible = "mediatek,mt7988-topckgen", "syscon";
89                         reg = <0 0x1001b000 0 0x1000>;
90                         #clock-cells = <1>;
91                 };
92
93                 watchdog: watchdog@1001c000 {
94                         compatible = "mediatek,mt7988-wdt";
95                         reg = <0 0x1001c000 0 0x1000>;
96                         interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
97                         #reset-cells = <1>;
98                 };
99
100                 clock-controller@1001e000 {
101                         compatible = "mediatek,mt7988-apmixedsys";
102                         reg = <0 0x1001e000 0 0x1000>;
103                         #clock-cells = <1>;
104                 };
105
106                 clock-controller@11f40000 {
107                         compatible = "mediatek,mt7988-xfi-pll";
108                         reg = <0 0x11f40000 0 0x1000>;
109                         resets = <&watchdog 16>;
110                         #clock-cells = <1>;
111                 };
112
113                 clock-controller@15000000 {
114                         compatible = "mediatek,mt7988-ethsys", "syscon";
115                         reg = <0 0x15000000 0 0x1000>;
116                         #clock-cells = <1>;
117                         #reset-cells = <1>;
118                 };
119
120                 clock-controller@15031000 {
121                         compatible = "mediatek,mt7988-ethwarp";
122                         reg = <0 0x15031000 0 0x1000>;
123                         #clock-cells = <1>;
124                         #reset-cells = <1>;
125                 };
126         };
127
128         timer {
129                 compatible = "arm,armv8-timer";
130                 interrupt-parent = <&gic>;
131                 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
132                              <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
133                              <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
134                              <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
135         };
136 };