]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm64/renesas/r8a77980.dtsi
Upgrade Unbound to 1.7.3. More to follow.
[FreeBSD/FreeBSD.git] / sys / gnu / dts / arm64 / renesas / r8a77980.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Device Tree Source for the r8a77980 SoC
4  *
5  * Copyright (C) 2018 Renesas Electronics Corp.
6  * Copyright (C) 2018 Cogent Embedded, Inc.
7  */
8
9 #include <dt-bindings/clock/r8a77980-cpg-mssr.h>
10 #include <dt-bindings/interrupt-controller/irq.h>
11 #include <dt-bindings/interrupt-controller/arm-gic.h>
12 #include <dt-bindings/power/r8a77980-sysc.h>
13
14 / {
15         compatible = "renesas,r8a77980";
16         #address-cells = <2>;
17         #size-cells = <2>;
18
19         cpus {
20                 #address-cells = <1>;
21                 #size-cells = <0>;
22
23                 a53_0: cpu@0 {
24                         device_type = "cpu";
25                         compatible = "arm,cortex-a53", "arm,armv8";
26                         reg = <0>;
27                         clocks = <&cpg CPG_CORE R8A77980_CLK_Z2>;
28                         power-domains = <&sysc R8A77980_PD_CA53_CPU0>;
29                         next-level-cache = <&L2_CA53>;
30                         enable-method = "psci";
31                 };
32
33                 L2_CA53: cache-controller {
34                         compatible = "cache";
35                         power-domains = <&sysc R8A77980_PD_CA53_SCU>;
36                         cache-unified;
37                         cache-level = <2>;
38                 };
39         };
40
41         /* External CAN clock - to be overridden by boards that provide it */
42         can_clk: can {
43                 compatible = "fixed-clock";
44                 #clock-cells = <0>;
45                 clock-frequency = <0>;
46         };
47
48         extal_clk: extal {
49                 compatible = "fixed-clock";
50                 #clock-cells = <0>;
51                 /* This value must be overridden by the board */
52                 clock-frequency = <0>;
53         };
54
55         extalr_clk: extalr {
56                 compatible = "fixed-clock";
57                 #clock-cells = <0>;
58                 /* This value must be overridden by the board */
59                 clock-frequency = <0>;
60         };
61
62         psci {
63                 compatible = "arm,psci-1.0", "arm,psci-0.2";
64                 method = "smc";
65         };
66
67         /* External SCIF clock - to be overridden by boards that provide it */
68         scif_clk: scif {
69                 compatible = "fixed-clock";
70                 #clock-cells = <0>;
71                 clock-frequency = <0>;
72         };
73
74         soc {
75                 compatible = "simple-bus";
76                 interrupt-parent = <&gic>;
77
78                 #address-cells = <2>;
79                 #size-cells = <2>;
80                 ranges;
81
82                 pfc: pin-controller@e6060000 {
83                         compatible = "renesas,pfc-r8a77980";
84                         reg = <0 0xe6060000 0 0x50c>;
85                 };
86
87                 cpg: clock-controller@e6150000 {
88                         compatible = "renesas,r8a77980-cpg-mssr";
89                         reg = <0 0xe6150000 0 0x1000>;
90                         clocks = <&extal_clk>, <&extalr_clk>;
91                         clock-names = "extal", "extalr";
92                         #clock-cells = <2>;
93                         #power-domain-cells = <0>;
94                         #reset-cells = <1>;
95                 };
96
97                 rst: reset-controller@e6160000 {
98                         compatible = "renesas,r8a77980-rst";
99                         reg = <0 0xe6160000 0 0x200>;
100                 };
101
102                 sysc: system-controller@e6180000 {
103                         compatible = "renesas,r8a77980-sysc";
104                         reg = <0 0xe6180000 0 0x440>;
105                         #power-domain-cells = <1>;
106                 };
107
108                 hscif0: serial@e6540000 {
109                         compatible = "renesas,hscif-r8a77980",
110                                      "renesas,rcar-gen3-hscif",
111                                      "renesas,hscif";
112                         reg = <0 0xe6540000 0 0x60>;
113                         interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
114                         clocks = <&cpg CPG_MOD 520>,
115                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
116                                  <&scif_clk>;
117                         clock-names = "fck", "brg_int", "scif_clk";
118                         dmas = <&dmac1 0x31>, <&dmac1 0x30>,
119                                <&dmac2 0x31>, <&dmac2 0x30>;
120                         dma-names = "tx", "rx", "tx", "rx";
121                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
122                         resets = <&cpg 520>;
123                         status = "disabled";
124                 };
125
126                 hscif1: serial@e6550000 {
127                         compatible = "renesas,hscif-r8a77980",
128                                      "renesas,rcar-gen3-hscif",
129                                      "renesas,hscif";
130                         reg = <0 0xe6550000 0 0x60>;
131                         interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
132                         clocks = <&cpg CPG_MOD 519>,
133                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
134                                  <&scif_clk>;
135                         clock-names = "fck", "brg_int", "scif_clk";
136                         dmas = <&dmac1 0x33>, <&dmac1 0x32>,
137                                <&dmac2 0x33>, <&dmac2 0x32>;
138                         dma-names = "tx", "rx", "tx", "rx";
139                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
140                         resets = <&cpg 519>;
141                         status = "disabled";
142                 };
143
144                 hscif2: serial@e6560000 {
145                         compatible = "renesas,hscif-r8a77980",
146                                      "renesas,rcar-gen3-hscif",
147                                      "renesas,hscif";
148                         reg = <0 0xe6560000 0 0x60>;
149                         interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>;
150                         clocks = <&cpg CPG_MOD 518>,
151                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
152                                  <&scif_clk>;
153                         clock-names = "fck", "brg_int", "scif_clk";
154                         dmas = <&dmac1 0x35>, <&dmac1 0x34>,
155                                <&dmac2 0x35>, <&dmac2 0x34>;
156                         dma-names = "tx", "rx", "tx", "rx";
157                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
158                         resets = <&cpg 518>;
159                         status = "disabled";
160                 };
161
162                 hscif3: serial@e66a0000 {
163                         compatible = "renesas,hscif-r8a77980",
164                                      "renesas,rcar-gen3-hscif",
165                                      "renesas,hscif";
166                         reg = <0 0xe66a0000 0 0x60>;
167                         interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
168                         clocks = <&cpg CPG_MOD 517>,
169                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
170                                  <&scif_clk>;
171                         clock-names = "fck", "brg_int", "scif_clk";
172                         dmas = <&dmac1 0x37>, <&dmac1 0x36>,
173                                <&dmac2 0x37>, <&dmac2 0x36>;
174                         dma-names = "tx", "rx", "tx", "rx";
175                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
176                         resets = <&cpg 517>;
177                         status = "disabled";
178                 };
179
180                 canfd: can@e66c0000 {
181                         compatible = "renesas,r8a77980-canfd",
182                                      "renesas,rcar-gen3-canfd";
183                         reg = <0 0xe66c0000 0 0x8000>;
184                         interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
185                                      <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
186                         clocks = <&cpg CPG_MOD 914>,
187                                  <&cpg CPG_CORE R8A77980_CLK_CANFD>,
188                                  <&can_clk>;
189                         clock-names = "fck", "canfd", "can_clk";
190                         assigned-clocks = <&cpg CPG_CORE R8A77980_CLK_CANFD>;
191                         assigned-clock-rates = <40000000>;
192                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
193                         resets = <&cpg 914>;
194                         status = "disabled";
195
196                         channel0 {
197                                 status = "disabled";
198                         };
199
200                         channel1 {
201                                 status = "disabled";
202                         };
203                 };
204
205                 avb: ethernet@e6800000 {
206                         compatible = "renesas,etheravb-r8a77980",
207                                      "renesas,etheravb-rcar-gen3";
208                         reg = <0 0xe6800000 0 0x800>;
209                         interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
210                                      <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
211                                      <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
212                                      <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
213                                      <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
214                                      <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
215                                      <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
216                                      <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
217                                      <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
218                                      <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
219                                      <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
220                                      <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
221                                      <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
222                                      <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
223                                      <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
224                                      <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
225                                      <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
226                                      <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
227                                      <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
228                                      <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
229                                      <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
230                                      <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
231                                      <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
232                                      <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
233                                      <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
234                         interrupt-names = "ch0", "ch1", "ch2", "ch3",
235                                           "ch4", "ch5", "ch6", "ch7",
236                                           "ch8", "ch9", "ch10", "ch11",
237                                           "ch12", "ch13", "ch14", "ch15",
238                                           "ch16", "ch17", "ch18", "ch19",
239                                           "ch20", "ch21", "ch22", "ch23",
240                                           "ch24";
241                         clocks = <&cpg CPG_MOD 812>;
242                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
243                         resets = <&cpg 812>;
244                         phy-mode = "rgmii";
245                         #address-cells = <1>;
246                         #size-cells = <0>;
247                         status = "disabled";
248                 };
249
250                 scif0: serial@e6e60000 {
251                         compatible = "renesas,scif-r8a77980",
252                                      "renesas,rcar-gen3-scif",
253                                      "renesas,scif";
254                         reg = <0 0xe6e60000 0 0x40>;
255                         interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
256                         clocks = <&cpg CPG_MOD 207>,
257                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
258                                  <&scif_clk>;
259                         clock-names = "fck", "brg_int", "scif_clk";
260                         dmas = <&dmac1 0x51>, <&dmac1 0x50>,
261                                <&dmac2 0x51>, <&dmac2 0x50>;
262                         dma-names = "tx", "rx", "tx", "rx";
263                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
264                         resets = <&cpg 207>;
265                         status = "disabled";
266                 };
267
268                 scif1: serial@e6e68000 {
269                         compatible = "renesas,scif-r8a77980",
270                                      "renesas,rcar-gen3-scif",
271                                      "renesas,scif";
272                         reg = <0 0xe6e68000 0 0x40>;
273                         interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
274                         clocks = <&cpg CPG_MOD 206>,
275                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
276                                  <&scif_clk>;
277                         clock-names = "fck", "brg_int", "scif_clk";
278                         dmas = <&dmac1 0x53>, <&dmac1 0x52>,
279                                <&dmac2 0x53>, <&dmac2 0x52>;
280                         dma-names = "tx", "rx", "tx", "rx";
281                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
282                         resets = <&cpg 206>;
283                         status = "disabled";
284                 };
285
286                 scif3: serial@e6c50000 {
287                         compatible = "renesas,scif-r8a77980",
288                                      "renesas,rcar-gen3-scif",
289                                      "renesas,scif";
290                         reg = <0 0xe6c50000 0 0x40>;
291                         interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
292                         clocks = <&cpg CPG_MOD 204>,
293                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
294                                  <&scif_clk>;
295                         clock-names = "fck", "brg_int", "scif_clk";
296                         dmas = <&dmac1 0x57>, <&dmac1 0x56>,
297                                <&dmac2 0x57>, <&dmac2 0x56>;
298                         dma-names = "tx", "rx", "tx", "rx";
299                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
300                         resets = <&cpg 204>;
301                         status = "disabled";
302                 };
303
304                 scif4: serial@e6c40000 {
305                         compatible = "renesas,scif-r8a77980",
306                                      "renesas,rcar-gen3-scif",
307                                      "renesas,scif";
308                         reg = <0 0xe6c40000 0 0x40>;
309                         interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
310                         clocks = <&cpg CPG_MOD 203>,
311                                  <&cpg CPG_CORE R8A77980_CLK_S3D1>,
312                                  <&scif_clk>;
313                         clock-names = "fck", "brg_int", "scif_clk";
314                         dmas = <&dmac1 0x59>, <&dmac1 0x58>,
315                                <&dmac2 0x59>, <&dmac2 0x58>;
316                         dma-names = "tx", "rx", "tx", "rx";
317                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
318                         resets = <&cpg 203>;
319                         status = "disabled";
320                 };
321
322                 dmac1: dma-controller@e7300000 {
323                         compatible = "renesas,dmac-r8a77980",
324                                      "renesas,rcar-dmac";
325                         reg = <0 0xe7300000 0 0x10000>;
326                         interrupts = <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH
327                                       GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH
328                                       GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH
329                                       GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH
330                                       GIC_SPI 219 IRQ_TYPE_LEVEL_HIGH
331                                       GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH
332                                       GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH
333                                       GIC_SPI 310 IRQ_TYPE_LEVEL_HIGH
334                                       GIC_SPI 311 IRQ_TYPE_LEVEL_HIGH
335                                       GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH
336                                       GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH
337                                       GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH
338                                       GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH
339                                       GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH
340                                       GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH
341                                       GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH
342                                       GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
343                         interrupt-names = "error",
344                                           "ch0", "ch1", "ch2", "ch3",
345                                           "ch4", "ch5", "ch6", "ch7",
346                                           "ch8", "ch9", "ch10", "ch11",
347                                           "ch12", "ch13", "ch14", "ch15";
348                         clocks = <&cpg CPG_MOD 218>;
349                         clock-names = "fck";
350                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
351                         resets = <&cpg 218>;
352                         #dma-cells = <1>;
353                         dma-channels = <16>;
354                 };
355
356                 dmac2: dma-controller@e7310000 {
357                         compatible = "renesas,dmac-r8a77980",
358                                      "renesas,rcar-dmac";
359                         reg = <0 0xe7310000 0 0x10000>;
360                         interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH
361                                       GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH
362                                       GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH
363                                       GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH
364                                       GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH
365                                       GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH
366                                       GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH
367                                       GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH
368                                       GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH
369                                       GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH
370                                       GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH
371                                       GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH
372                                       GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH
373                                       GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH
374                                       GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH
375                                       GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH
376                                       GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>;
377                         interrupt-names = "error",
378                                           "ch0", "ch1", "ch2", "ch3",
379                                           "ch4", "ch5", "ch6", "ch7",
380                                           "ch8", "ch9", "ch10", "ch11",
381                                           "ch12", "ch13", "ch14", "ch15";
382                         clocks = <&cpg CPG_MOD 217>;
383                         clock-names = "fck";
384                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
385                         resets = <&cpg 217>;
386                         #dma-cells = <1>;
387                         dma-channels = <16>;
388                 };
389
390                 mmc0: mmc@ee140000 {
391                         compatible = "renesas,sdhi-r8a77980",
392                                      "renesas,rcar-gen3-sdhi";
393                         reg = <0 0xee140000 0 0x2000>;
394                         interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
395                         clocks = <&cpg CPG_MOD 314>;
396                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
397                         resets = <&cpg 314>;
398                         max-frequency = <200000000>;
399                         status = "disabled";
400                 };
401
402                 gic: interrupt-controller@f1010000 {
403                         compatible = "arm,gic-400";
404                         #interrupt-cells = <3>;
405                         #address-cells = <0>;
406                         interrupt-controller;
407                         reg = <0x0 0xf1010000 0 0x1000>,
408                               <0x0 0xf1020000 0 0x20000>,
409                               <0x0 0xf1040000 0 0x20000>,
410                               <0x0 0xf1060000 0 0x20000>;
411                         interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(1) |
412                                       IRQ_TYPE_LEVEL_HIGH)>;
413                         clocks = <&cpg CPG_MOD 408>;
414                         clock-names = "clk";
415                         power-domains = <&sysc R8A77980_PD_ALWAYS_ON>;
416                         resets = <&cpg 408>;
417                 };
418
419                 prr: chipid@fff00044 {
420                         compatible = "renesas,prr";
421                         reg = <0 0xfff00044 0 4>;
422                 };
423         };
424
425         timer {
426                 compatible = "arm,armv8-timer";
427                 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
428                                        IRQ_TYPE_LEVEL_LOW)>,
429                                       <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
430                                        IRQ_TYPE_LEVEL_LOW)>,
431                                       <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) |
432                                        IRQ_TYPE_LEVEL_LOW)>,
433                                       <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) |
434                                        IRQ_TYPE_LEVEL_LOW)>;
435         };
436 };