Merge tag 'tags/bcm2835-dt-next-2020-11-20' into devicetree/next
[linux-2.6-microblaze.git] / arch / arm / boot / dts / picoxcell-pc3x3.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  *  Copyright (C) 2011 Picochip, Jamie Iles
4  */
5 / {
6         model = "Picochip picoXcell PC3X3";
7         compatible = "picochip,pc3x3";
8         #address-cells = <1>;
9         #size-cells = <1>;
10
11         cpus {
12                 #address-cells = <0>;
13                 #size-cells = <0>;
14
15                 cpu {
16                         compatible = "arm,arm1176jz-s";
17                         device_type = "cpu";
18                         cpu-clock = <&arm_clk>, "cpu";
19                         d-cache-line-size = <32>;
20                         d-cache-size = <32768>;
21                         i-cache-line-size = <32>;
22                         i-cache-size = <32768>;
23                 };
24         };
25
26         clocks {
27                 #address-cells = <1>;
28                 #size-cells = <1>;
29                 ranges;
30
31                 clkgate: clkgate@800a0048 {
32                         #address-cells = <1>;
33                         #size-cells = <0>;
34                         reg = <0x800a0048 4>;
35                         compatible = "picochip,pc3x3-clk-gate";
36
37                         tzprot_clk: clock@0 {
38                                 compatible = "picochip,pc3x3-gated-clk";
39                                 clock-outputs = "bus";
40                                 picochip,clk-disable-bit = <0>;
41                                 clock-frequency = <200000000>;
42                                 ref-clock = <&ref_clk>, "ref";
43                         };
44
45                         spi_clk: clock@1 {
46                                 compatible = "picochip,pc3x3-gated-clk";
47                                 clock-outputs = "bus";
48                                 picochip,clk-disable-bit = <1>;
49                                 clock-frequency = <200000000>;
50                                 ref-clock = <&ref_clk>, "ref";
51                         };
52
53                         dmac0_clk: clock@2 {
54                                 compatible = "picochip,pc3x3-gated-clk";
55                                 clock-outputs = "bus";
56                                 picochip,clk-disable-bit = <2>;
57                                 clock-frequency = <200000000>;
58                                 ref-clock = <&ref_clk>, "ref";
59                         };
60
61                         dmac1_clk: clock@3 {
62                                 compatible = "picochip,pc3x3-gated-clk";
63                                 clock-outputs = "bus";
64                                 picochip,clk-disable-bit = <3>;
65                                 clock-frequency = <200000000>;
66                                 ref-clock = <&ref_clk>, "ref";
67                         };
68
69                         ebi_clk: clock@4 {
70                                 compatible = "picochip,pc3x3-gated-clk";
71                                 clock-outputs = "bus";
72                                 picochip,clk-disable-bit = <4>;
73                                 clock-frequency = <200000000>;
74                                 ref-clock = <&ref_clk>, "ref";
75                         };
76
77                         ipsec_clk: clock@5 {
78                                 compatible = "picochip,pc3x3-gated-clk";
79                                 clock-outputs = "bus";
80                                 picochip,clk-disable-bit = <5>;
81                                 clock-frequency = <200000000>;
82                                 ref-clock = <&ref_clk>, "ref";
83                         };
84
85                         l2_clk: clock@6 {
86                                 compatible = "picochip,pc3x3-gated-clk";
87                                 clock-outputs = "bus";
88                                 picochip,clk-disable-bit = <6>;
89                                 clock-frequency = <200000000>;
90                                 ref-clock = <&ref_clk>, "ref";
91                         };
92
93                         trng_clk: clock@7 {
94                                 compatible = "picochip,pc3x3-gated-clk";
95                                 clock-outputs = "bus";
96                                 picochip,clk-disable-bit = <7>;
97                                 clock-frequency = <200000000>;
98                                 ref-clock = <&ref_clk>, "ref";
99                         };
100
101                         fuse_clk: clock@8 {
102                                 compatible = "picochip,pc3x3-gated-clk";
103                                 clock-outputs = "bus";
104                                 picochip,clk-disable-bit = <8>;
105                                 clock-frequency = <200000000>;
106                                 ref-clock = <&ref_clk>, "ref";
107                         };
108
109                         otp_clk: clock@9 {
110                                 compatible = "picochip,pc3x3-gated-clk";
111                                 clock-outputs = "bus";
112                                 picochip,clk-disable-bit = <9>;
113                                 clock-frequency = <200000000>;
114                                 ref-clock = <&ref_clk>, "ref";
115                         };
116                 };
117
118                 arm_clk: clock@11 {
119                         compatible = "picochip,pc3x3-pll";
120                         reg = <0x800a0050 0x8>;
121                         picochip,min-freq = <140000000>;
122                         picochip,max-freq = <700000000>;
123                         ref-clock = <&ref_clk>, "ref";
124                         clock-outputs = "cpu";
125                 };
126
127                 pclk: clock@12 {
128                         compatible = "fixed-clock";
129                         clock-outputs = "bus", "pclk";
130                         clock-frequency = <200000000>;
131                         ref-clock = <&ref_clk>, "ref";
132                 };
133         };
134
135         paxi {
136                 compatible = "simple-bus";
137                 #address-cells = <1>;
138                 #size-cells = <1>;
139                 ranges = <0 0x80000000 0x400000>;
140
141                 emac: gem@30000 {
142                         compatible = "cadence,gem";
143                         reg = <0x30000 0x10000>;
144                         interrupt-parent = <&vic0>;
145                         interrupts = <31>;
146                 };
147
148                 dmac1: dmac@40000 {
149                         compatible = "snps,dw-dmac";
150                         reg = <0x40000 0x10000>;
151                         interrupt-parent = <&vic0>;
152                         interrupts = <25>;
153                 };
154
155                 dmac2: dmac@50000 {
156                         compatible = "snps,dw-dmac";
157                         reg = <0x50000 0x10000>;
158                         interrupt-parent = <&vic0>;
159                         interrupts = <26>;
160                 };
161
162                 vic0: interrupt-controller@60000 {
163                         compatible = "arm,pl192-vic";
164                         interrupt-controller;
165                         reg = <0x60000 0x1000>;
166                         #interrupt-cells = <1>;
167                 };
168
169                 vic1: interrupt-controller@64000 {
170                         compatible = "arm,pl192-vic";
171                         interrupt-controller;
172                         reg = <0x64000 0x1000>;
173                         #interrupt-cells = <1>;
174                 };
175
176                 fuse: picoxcell-fuse@80000 {
177                         compatible = "picoxcell,fuse-pc3x3";
178                         reg = <0x80000 0x10000>;
179                 };
180
181                 ssi: picoxcell-spi@90000 {
182                         compatible = "picoxcell,spi";
183                         reg = <0x90000 0x10000>;
184                         interrupt-parent = <&vic0>;
185                         interrupts = <10>;
186                 };
187
188                 ipsec: spacc@100000 {
189                         compatible = "picochip,spacc-ipsec";
190                         reg = <0x100000 0x10000>;
191                         interrupt-parent = <&vic0>;
192                         interrupts = <24>;
193                         ref-clock = <&ipsec_clk>, "ref";
194                 };
195
196                 srtp: spacc@140000 {
197                         compatible = "picochip,spacc-srtp";
198                         reg = <0x140000 0x10000>;
199                         interrupt-parent = <&vic0>;
200                         interrupts = <23>;
201                 };
202
203                 l2_engine: spacc@180000 {
204                         compatible = "picochip,spacc-l2";
205                         reg = <0x180000 0x10000>;
206                         interrupt-parent = <&vic0>;
207                         interrupts = <22>;
208                         ref-clock = <&l2_clk>, "ref";
209                 };
210
211                 apb {
212                         compatible = "simple-bus";
213                         #address-cells = <1>;
214                         #size-cells = <1>;
215                         ranges = <0 0x200000 0x80000>;
216
217                         rtc0: rtc@0 {
218                                 compatible = "picochip,pc3x2-rtc";
219                                 clock-freq = <200000000>;
220                                 reg = <0x00000 0xf>;
221                                 interrupt-parent = <&vic0>;
222                                 interrupts = <8>;
223                         };
224
225                         timer0: timer@10000 {
226                                 compatible = "picochip,pc3x2-timer";
227                                 interrupt-parent = <&vic0>;
228                                 interrupts = <4>;
229                                 clock-freq = <200000000>;
230                                 reg = <0x10000 0x14>;
231                         };
232
233                         timer1: timer@10014 {
234                                 compatible = "picochip,pc3x2-timer";
235                                 interrupt-parent = <&vic0>;
236                                 interrupts = <5>;
237                                 clock-freq = <200000000>;
238                                 reg = <0x10014 0x14>;
239                         };
240
241                         gpio: gpio@20000 {
242                                 compatible = "snps,dw-apb-gpio";
243                                 reg = <0x20000 0x1000>;
244                                 #address-cells = <1>;
245                                 #size-cells = <0>;
246
247                                 banka: gpio-controller@0 {
248                                         compatible = "snps,dw-apb-gpio-bank";
249                                         gpio-controller;
250                                         #gpio-cells = <2>;
251                                         gpio-generic,nr-gpio = <8>;
252
253                                         regoffset-dat = <0x50>;
254                                         regoffset-set = <0x00>;
255                                         regoffset-dirout = <0x04>;
256                                 };
257
258                                 bankb: gpio-controller@1 {
259                                         compatible = "snps,dw-apb-gpio-bank";
260                                         gpio-controller;
261                                         #gpio-cells = <2>;
262                                         gpio-generic,nr-gpio = <16>;
263
264                                         regoffset-dat = <0x54>;
265                                         regoffset-set = <0x0c>;
266                                         regoffset-dirout = <0x10>;
267                                 };
268
269                                 bankd: gpio-controller@2 {
270                                         compatible = "snps,dw-apb-gpio-bank";
271                                         gpio-controller;
272                                         #gpio-cells = <2>;
273                                         gpio-generic,nr-gpio = <30>;
274
275                                         regoffset-dat = <0x5c>;
276                                         regoffset-set = <0x24>;
277                                         regoffset-dirout = <0x28>;
278                                 };
279                         };
280
281                         uart0: uart@30000 {
282                                 compatible = "snps,dw-apb-uart";
283                                 reg = <0x30000 0x1000>;
284                                 interrupt-parent = <&vic1>;
285                                 interrupts = <10>;
286                                 clock-frequency = <3686400>;
287                                 reg-shift = <2>;
288                                 reg-io-width = <4>;
289                         };
290
291                         uart1: uart@40000 {
292                                 compatible = "snps,dw-apb-uart";
293                                 reg = <0x40000 0x1000>;
294                                 interrupt-parent = <&vic1>;
295                                 interrupts = <9>;
296                                 clock-frequency = <3686400>;
297                                 reg-shift = <2>;
298                                 reg-io-width = <4>;
299                         };
300
301                         wdog: watchdog@50000 {
302                                 compatible = "snps,dw-apb-wdg";
303                                 reg = <0x50000 0x10000>;
304                                 interrupt-parent = <&vic0>;
305                                 interrupts = <11>;
306                                 bus-clock = <&pclk>, "bus";
307                         };
308
309                         timer2: timer@60000 {
310                                 compatible = "picochip,pc3x2-timer";
311                                 interrupt-parent = <&vic0>;
312                                 interrupts = <6>;
313                                 clock-freq = <200000000>;
314                                 reg = <0x60000 0x14>;
315                         };
316
317                         timer3: timer@60014 {
318                                 compatible = "picochip,pc3x2-timer";
319                                 interrupt-parent = <&vic0>;
320                                 interrupts = <7>;
321                                 clock-freq = <200000000>;
322                                 reg = <0x60014 0x14>;
323                         };
324                 };
325         };
326
327         rwid-axi {
328                 #address-cells = <1>;
329                 #size-cells = <1>;
330                 compatible = "simple-bus";
331                 ranges;
332
333                 ebi@50000000 {
334                         compatible = "simple-bus";
335                         #address-cells = <2>;
336                         #size-cells = <1>;
337                         ranges = <0 0 0x40000000 0x08000000
338                                   1 0 0x48000000 0x08000000
339                                   2 0 0x50000000 0x08000000
340                                   3 0 0x58000000 0x08000000>;
341                 };
342
343                 axi2pico@c0000000 {
344                         compatible = "picochip,axi2pico-pc3x3";
345                         reg = <0xc0000000 0x10000>;
346                         interrupt-parent = <&vic0>;
347                         interrupts = <13 14 15 16 17 18 19 20 21>;
348                 };
349
350                 otp@ffff8000 {
351                         compatible = "picochip,otp-pc3x3";
352                         reg = <0xffff8000 0x8000>;
353                 };
354         };
355 };