GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / arm / boot / dts / picoxcell-pc3x2.dtsi
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  *  Copyright (C) 2011 Picochip, Jamie Iles
4  */
5 / {
6         model = "Picochip picoXcell PC3X2";
7         compatible = "picochip,pc3x2";
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                         clock-frequency = <400000000>;
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                 pclk: clock@0 {
32                         compatible = "fixed-clock";
33                         clock-outputs = "bus", "pclk";
34                         clock-frequency = <200000000>;
35                         ref-clock = <&ref_clk>, "ref";
36                 };
37         };
38
39         paxi {
40                 compatible = "simple-bus";
41                 #address-cells = <1>;
42                 #size-cells = <1>;
43                 ranges = <0 0x80000000 0x400000>;
44
45                 emac: gem@30000 {
46                         compatible = "cadence,gem";
47                         reg = <0x30000 0x10000>;
48                         interrupt-parent = <&vic0>;
49                         interrupts = <31>;
50                 };
51
52                 dmac1: dmac@40000 {
53                         compatible = "snps,dw-dmac";
54                         reg = <0x40000 0x10000>;
55                         interrupt-parent = <&vic0>;
56                         interrupts = <25>;
57                 };
58
59                 dmac2: dmac@50000 {
60                         compatible = "snps,dw-dmac";
61                         reg = <0x50000 0x10000>;
62                         interrupt-parent = <&vic0>;
63                         interrupts = <26>;
64                 };
65
66                 vic0: interrupt-controller@60000 {
67                         compatible = "arm,pl192-vic";
68                         interrupt-controller;
69                         reg = <0x60000 0x1000>;
70                         #interrupt-cells = <1>;
71                 };
72
73                 vic1: interrupt-controller@64000 {
74                         compatible = "arm,pl192-vic";
75                         interrupt-controller;
76                         reg = <0x64000 0x1000>;
77                         #interrupt-cells = <1>;
78                 };
79
80                 fuse: picoxcell-fuse@80000 {
81                         compatible = "picoxcell,fuse-pc3x2";
82                         reg = <0x80000 0x10000>;
83                 };
84
85                 ssi: picoxcell-spi@90000 {
86                         compatible = "picoxcell,spi";
87                         reg = <0x90000 0x10000>;
88                         interrupt-parent = <&vic0>;
89                         interrupts = <10>;
90                 };
91
92                 ipsec: spacc@100000 {
93                         compatible = "picochip,spacc-ipsec";
94                         reg = <0x100000 0x10000>;
95                         interrupt-parent = <&vic0>;
96                         interrupts = <24>;
97                         ref-clock = <&pclk>, "ref";
98                 };
99
100                 srtp: spacc@140000 {
101                         compatible = "picochip,spacc-srtp";
102                         reg = <0x140000 0x10000>;
103                         interrupt-parent = <&vic0>;
104                         interrupts = <23>;
105                 };
106
107                 l2_engine: spacc@180000 {
108                         compatible = "picochip,spacc-l2";
109                         reg = <0x180000 0x10000>;
110                         interrupt-parent = <&vic0>;
111                         interrupts = <22>;
112                         ref-clock = <&pclk>, "ref";
113                 };
114
115                 apb {
116                         compatible = "simple-bus";
117                         #address-cells = <1>;
118                         #size-cells = <1>;
119                         ranges = <0 0x200000 0x80000>;
120
121                         rtc0: rtc@0 {
122                                 compatible = "picochip,pc3x2-rtc";
123                                 clock-freq = <200000000>;
124                                 reg = <0x00000 0xf>;
125                                 interrupt-parent = <&vic1>;
126                                 interrupts = <8>;
127                         };
128
129                         timer0: timer@10000 {
130                                 compatible = "picochip,pc3x2-timer";
131                                 interrupt-parent = <&vic0>;
132                                 interrupts = <4>;
133                                 clock-freq = <200000000>;
134                                 reg = <0x10000 0x14>;
135                         };
136
137                         timer1: timer@10014 {
138                                 compatible = "picochip,pc3x2-timer";
139                                 interrupt-parent = <&vic0>;
140                                 interrupts = <5>;
141                                 clock-freq = <200000000>;
142                                 reg = <0x10014 0x14>;
143                         };
144
145                         timer2: timer@10028 {
146                                 compatible = "picochip,pc3x2-timer";
147                                 interrupt-parent = <&vic0>;
148                                 interrupts = <6>;
149                                 clock-freq = <200000000>;
150                                 reg = <0x10028 0x14>;
151                         };
152
153                         timer3: timer@1003c {
154                                 compatible = "picochip,pc3x2-timer";
155                                 interrupt-parent = <&vic0>;
156                                 interrupts = <7>;
157                                 clock-freq = <200000000>;
158                                 reg = <0x1003c 0x14>;
159                         };
160
161                         gpio: gpio@20000 {
162                                 compatible = "snps,dw-apb-gpio";
163                                 reg = <0x20000 0x1000>;
164                                 #address-cells = <1>;
165                                 #size-cells = <0>;
166                                 reg-io-width = <4>;
167
168                                 banka: gpio-controller@0 {
169                                         compatible = "snps,dw-apb-gpio-bank";
170                                         gpio-controller;
171                                         #gpio-cells = <2>;
172                                         gpio-generic,nr-gpio = <8>;
173
174                                         regoffset-dat = <0x50>;
175                                         regoffset-set = <0x00>;
176                                         regoffset-dirout = <0x04>;
177                                 };
178
179                                 bankb: gpio-controller@1 {
180                                         compatible = "snps,dw-apb-gpio-bank";
181                                         gpio-controller;
182                                         #gpio-cells = <2>;
183                                         gpio-generic,nr-gpio = <8>;
184
185                                         regoffset-dat = <0x54>;
186                                         regoffset-set = <0x0c>;
187                                         regoffset-dirout = <0x10>;
188                                 };
189                         };
190
191                         uart0: uart@30000 {
192                                 compatible = "snps,dw-apb-uart";
193                                 reg = <0x30000 0x1000>;
194                                 interrupt-parent = <&vic1>;
195                                 interrupts = <10>;
196                                 clock-frequency = <3686400>;
197                                 reg-shift = <2>;
198                                 reg-io-width = <4>;
199                         };
200
201                         uart1: uart@40000 {
202                                 compatible = "snps,dw-apb-uart";
203                                 reg = <0x40000 0x1000>;
204                                 interrupt-parent = <&vic1>;
205                                 interrupts = <9>;
206                                 clock-frequency = <3686400>;
207                                 reg-shift = <2>;
208                                 reg-io-width = <4>;
209                         };
210
211                         wdog: watchdog@50000 {
212                                 compatible = "snps,dw-apb-wdg";
213                                 reg = <0x50000 0x10000>;
214                                 interrupt-parent = <&vic0>;
215                                 interrupts = <11>;
216                                 bus-clock = <&pclk>, "bus";
217                         };
218                 };
219         };
220
221         rwid-axi {
222                 #address-cells = <1>;
223                 #size-cells = <1>;
224                 compatible = "simple-bus";
225                 ranges;
226
227                 ebi@50000000 {
228                         compatible = "simple-bus";
229                         #address-cells = <2>;
230                         #size-cells = <1>;
231                         ranges = <0 0 0x40000000 0x08000000
232                                   1 0 0x48000000 0x08000000
233                                   2 0 0x50000000 0x08000000
234                                   3 0 0x58000000 0x08000000>;
235                 };
236
237                 axi2pico@c0000000 {
238                         compatible = "picochip,axi2pico-pc3x2";
239                         reg = <0xc0000000 0x10000>;
240                         interrupt-parent = <&vic0>;
241                         interrupts = <13 14 15 16 17 18 19 20 21>;
242                 };
243         };
244 };