blob: 2c78caebf5152fbaa632514cea2c621ab1d3022a [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2017 Andreas Färber
4 */
5
6#include <dt-bindings/clock/actions,s700-cmu.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/power/owl-s700-powergate.h>
9#include <dt-bindings/reset/actions,s700-reset.h>
10
11/ {
12 compatible = "actions,s700";
13 interrupt-parent = <&gic>;
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 cpus {
18 #address-cells = <2>;
19 #size-cells = <0>;
20
21 cpu0: cpu@0 {
22 device_type = "cpu";
23 compatible = "arm,cortex-a53";
24 reg = <0x0 0x0>;
25 enable-method = "psci";
26 };
27
28 cpu1: cpu@1 {
29 device_type = "cpu";
30 compatible = "arm,cortex-a53";
31 reg = <0x0 0x1>;
32 enable-method = "psci";
33 };
34
35 cpu2: cpu@2 {
36 device_type = "cpu";
37 compatible = "arm,cortex-a53";
38 reg = <0x0 0x2>;
39 enable-method = "psci";
40 };
41
42 cpu3: cpu@3 {
43 device_type = "cpu";
44 compatible = "arm,cortex-a53";
45 reg = <0x0 0x3>;
46 enable-method = "psci";
47 };
48 };
49
50 reserved-memory {
51 #address-cells = <2>;
52 #size-cells = <2>;
53 ranges;
54
55 secmon@1f000000 {
56 reg = <0x0 0x1f000000 0x0 0x1000000>;
57 no-map;
58 };
59 };
60
61 psci {
62 compatible = "arm,psci-0.2";
63 method = "smc";
64 };
65
66 arm-pmu {
67 compatible = "arm,cortex-a53-pmu";
68 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
69 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
70 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
71 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
72 interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
73 };
74
75 timer {
76 compatible = "arm,armv8-timer";
77 interrupts = <GIC_PPI 13
78 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
79 <GIC_PPI 14
80 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
81 <GIC_PPI 11
82 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
83 <GIC_PPI 10
84 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
85 };
86
87 hosc: hosc {
88 compatible = "fixed-clock";
89 clock-frequency = <24000000>;
90 #clock-cells = <0>;
91 };
92
93 losc: losc {
94 compatible = "fixed-clock";
95 clock-frequency = <32768>;
96 #clock-cells = <0>;
97 };
98
99 soc {
100 compatible = "simple-bus";
101 #address-cells = <2>;
102 #size-cells = <2>;
103 ranges;
104
105 gic: interrupt-controller@e00f1000 {
106 compatible = "arm,gic-400";
107 reg = <0x0 0xe00f1000 0x0 0x1000>,
108 <0x0 0xe00f2000 0x0 0x2000>,
109 <0x0 0xe00f4000 0x0 0x2000>,
110 <0x0 0xe00f6000 0x0 0x2000>;
111 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
112 interrupt-controller;
113 #interrupt-cells = <3>;
114 };
115
116 uart0: serial@e0120000 {
117 compatible = "actions,s900-uart", "actions,owl-uart";
118 reg = <0x0 0xe0120000 0x0 0x2000>;
119 clocks = <&cmu CLK_UART0>;
120 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
121 status = "disabled";
122 };
123
124 uart1: serial@e0122000 {
125 compatible = "actions,s900-uart", "actions,owl-uart";
126 reg = <0x0 0xe0122000 0x0 0x2000>;
127 clocks = <&cmu CLK_UART1>;
128 interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
129 status = "disabled";
130 };
131
132 uart2: serial@e0124000 {
133 compatible = "actions,s900-uart", "actions,owl-uart";
134 reg = <0x0 0xe0124000 0x0 0x2000>;
135 clocks = <&cmu CLK_UART2>;
136 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
137 status = "disabled";
138 };
139
140 uart3: serial@e0126000 {
141 compatible = "actions,s900-uart", "actions,owl-uart";
142 reg = <0x0 0xe0126000 0x0 0x2000>;
143 clocks = <&cmu CLK_UART3>;
144 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
145 status = "disabled";
146 };
147
148 uart4: serial@e0128000 {
149 compatible = "actions,s900-uart", "actions,owl-uart";
150 reg = <0x0 0xe0128000 0x0 0x2000>;
151 clocks = <&cmu CLK_UART4>;
152 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
153 status = "disabled";
154 };
155
156 uart5: serial@e012a000 {
157 compatible = "actions,s900-uart", "actions,owl-uart";
158 reg = <0x0 0xe012a000 0x0 0x2000>;
159 clocks = <&cmu CLK_UART5>;
160 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
161 status = "disabled";
162 };
163
164 uart6: serial@e012c000 {
165 compatible = "actions,s900-uart", "actions,owl-uart";
166 reg = <0x0 0xe012c000 0x0 0x2000>;
167 clocks = <&cmu CLK_UART6>;
168 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
169 status = "disabled";
170 };
171
172 cmu: clock-controller@e0168000 {
173 compatible = "actions,s700-cmu";
174 reg = <0x0 0xe0168000 0x0 0x1000>;
175 clocks = <&hosc>, <&losc>;
176 #clock-cells = <1>;
177 #reset-cells = <1>;
178 };
179
180 i2c0: i2c@e0170000 {
181 compatible = "actions,s700-i2c";
182 reg = <0 0xe0170000 0 0x1000>;
183 clocks = <&cmu CLK_I2C0>;
184 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
185 #address-cells = <1>;
186 #size-cells = <0>;
187 status = "disabled";
188 };
189
190 i2c1: i2c@e0174000 {
191 compatible = "actions,s700-i2c";
192 reg = <0 0xe0174000 0 0x1000>;
193 clocks = <&cmu CLK_I2C1>;
194 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
195 #address-cells = <1>;
196 #size-cells = <0>;
197 status = "disabled";
198 };
199
200 i2c2: i2c@e0178000 {
201 compatible = "actions,s700-i2c";
202 reg = <0 0xe0178000 0 0x1000>;
203 clocks = <&cmu CLK_I2C2>;
204 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
205 #address-cells = <1>;
206 #size-cells = <0>;
207 status = "disabled";
208 };
209
210 i2c3: i2c@e017c000 {
211 compatible = "actions,s700-i2c";
212 reg = <0 0xe017c000 0 0x1000>;
213 clocks = <&cmu CLK_I2C3>;
214 interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
215 #address-cells = <1>;
216 #size-cells = <0>;
217 status = "disabled";
218 };
219
220 sps: power-controller@e01b0100 {
221 compatible = "actions,s700-sps";
222 reg = <0x0 0xe01b0100 0x0 0x100>;
223 #power-domain-cells = <1>;
224 };
225
226 timer: timer@e024c000 {
227 compatible = "actions,s700-timer";
228 reg = <0x0 0xe024c000 0x0 0x4000>;
229 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
230 interrupt-names = "timer1";
231 };
232
233 pinctrl: pinctrl@e01b0000 {
234 compatible = "actions,s700-pinctrl";
235 reg = <0x0 0xe01b0000 0x0 0x100>;
236 clocks = <&cmu CLK_GPIO>;
237 gpio-controller;
238 gpio-ranges = <&pinctrl 0 0 136>;
239 #gpio-cells = <2>;
240 interrupt-controller;
241 #interrupt-cells = <2>;
242 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>,
243 <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
244 <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
245 <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
246 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
247 };
248
249 dma: dma-controller@e0230000 {
250 compatible = "actions,s700-dma";
251 reg = <0x0 0xe0230000 0x0 0x1000>;
252 interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
253 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
254 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
255 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
256 #dma-cells = <1>;
257 dma-channels = <10>;
258 dma-requests = <44>;
259 clocks = <&cmu CLK_DMAC>;
260 power-domains = <&sps S700_PD_DMA>;
261 };
262 };
263};