blob: ae89260baad9fd4d3ad1ec6dbef9c6a7bf1e118f [file] [log] [blame]
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +09001/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Device Tree Source for the r8a77990 SoC
4 *
5 * Copyright (C) 2018 Renesas Electronics Corp.
6 */
7
8#include <dt-bindings/clock/renesas-cpg-mssr.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
Hiroyuki Yokoyama2a1eade2018-09-27 19:05:18 +090010#include <dt-bindings/power/r8a77990-sysc.h>
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090011
12/ {
13 compatible = "renesas,r8a77990";
14 #address-cells = <2>;
15 #size-cells = <2>;
16
17 cpus {
18 #address-cells = <1>;
19 #size-cells = <0>;
20
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090021 a53_0: cpu@0 {
22 compatible = "arm,cortex-a53", "arm,armv8";
Marek Vasutcbff9f82018-12-03 21:43:05 +010023 reg = <0>;
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090024 device_type = "cpu";
25 power-domains = <&sysc 5>;
26 next-level-cache = <&L2_CA53>;
27 enable-method = "psci";
28 };
29
Marek Vasutcbff9f82018-12-03 21:43:05 +010030 a53_1: cpu@1 {
31 compatible = "arm,cortex-a53", "arm,armv8";
32 reg = <1>;
33 device_type = "cpu";
34 power-domains = <&sysc 6>;
35 next-level-cache = <&L2_CA53>;
36 enable-method = "psci";
37 };
38
Marek Vasut0bb5d242018-05-31 18:30:17 +020039 L2_CA53: cache-controller-0 {
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090040 compatible = "cache";
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090041 power-domains = <&sysc 21>;
42 cache-unified;
43 cache-level = <2>;
44 };
45 };
46
47 extal_clk: extal {
48 compatible = "fixed-clock";
49 #clock-cells = <0>;
50 /* This value must be overridden by the board */
51 clock-frequency = <0>;
52 };
53
Marek Vasut0bb5d242018-05-31 18:30:17 +020054 pmu_a53 {
55 compatible = "arm,cortex-a53-pmu";
Marek Vasutcbff9f82018-12-03 21:43:05 +010056 interrupts-extended = <&gic GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
57 <&gic GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
58 interrupt-affinity = <&a53_0>, <&a53_1>;
Marek Vasut0bb5d242018-05-31 18:30:17 +020059 };
60
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090061 psci {
Marek Vasut0bb5d242018-05-31 18:30:17 +020062 compatible = "arm,psci-1.0", "arm,psci-0.2";
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +090063 method = "smc";
64 };
65
66 soc: soc {
67 compatible = "simple-bus";
68 interrupt-parent = <&gic>;
69 #address-cells = <2>;
70 #size-cells = <2>;
71 ranges;
72
Marek Vasutcbff9f82018-12-03 21:43:05 +010073 rwdt: watchdog@e6020000 {
74 compatible = "renesas,r8a77990-wdt",
75 "renesas,rcar-gen3-wdt";
76 reg = <0 0xe6020000 0 0x0c>;
77 clocks = <&cpg CPG_MOD 402>;
78 power-domains = <&sysc 32>;
79 resets = <&cpg 402>;
80 status = "disabled";
81 };
82
Marek Vasut0bb5d242018-05-31 18:30:17 +020083 gpio0: gpio@e6050000 {
84 compatible = "renesas,gpio-r8a77990",
85 "renesas,rcar-gen3-gpio";
86 reg = <0 0xe6050000 0 0x50>;
87 interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
88 #gpio-cells = <2>;
89 gpio-controller;
90 gpio-ranges = <&pfc 0 0 18>;
91 #interrupt-cells = <2>;
92 interrupt-controller;
93 clocks = <&cpg CPG_MOD 912>;
94 power-domains = <&sysc 32>;
95 resets = <&cpg 912>;
96 };
97
98 gpio1: gpio@e6051000 {
99 compatible = "renesas,gpio-r8a77990",
100 "renesas,rcar-gen3-gpio";
101 reg = <0 0xe6051000 0 0x50>;
102 interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
103 #gpio-cells = <2>;
104 gpio-controller;
105 gpio-ranges = <&pfc 0 32 23>;
106 #interrupt-cells = <2>;
107 interrupt-controller;
108 clocks = <&cpg CPG_MOD 911>;
109 power-domains = <&sysc 32>;
110 resets = <&cpg 911>;
111 };
112
113 gpio2: gpio@e6052000 {
114 compatible = "renesas,gpio-r8a77990",
115 "renesas,rcar-gen3-gpio";
116 reg = <0 0xe6052000 0 0x50>;
117 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
118 #gpio-cells = <2>;
119 gpio-controller;
120 gpio-ranges = <&pfc 0 64 26>;
121 #interrupt-cells = <2>;
122 interrupt-controller;
123 clocks = <&cpg CPG_MOD 910>;
124 power-domains = <&sysc 32>;
125 resets = <&cpg 910>;
126 };
127
128 gpio3: gpio@e6053000 {
129 compatible = "renesas,gpio-r8a77990",
130 "renesas,rcar-gen3-gpio";
131 reg = <0 0xe6053000 0 0x50>;
132 interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
133 #gpio-cells = <2>;
134 gpio-controller;
135 gpio-ranges = <&pfc 0 96 16>;
136 #interrupt-cells = <2>;
137 interrupt-controller;
138 clocks = <&cpg CPG_MOD 909>;
139 power-domains = <&sysc 32>;
140 resets = <&cpg 909>;
141 };
142
143 gpio4: gpio@e6054000 {
144 compatible = "renesas,gpio-r8a77990",
145 "renesas,rcar-gen3-gpio";
146 reg = <0 0xe6054000 0 0x50>;
147 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
148 #gpio-cells = <2>;
149 gpio-controller;
150 gpio-ranges = <&pfc 0 128 11>;
151 #interrupt-cells = <2>;
152 interrupt-controller;
153 clocks = <&cpg CPG_MOD 908>;
154 power-domains = <&sysc 32>;
155 resets = <&cpg 908>;
156 };
157
158 gpio5: gpio@e6055000 {
159 compatible = "renesas,gpio-r8a77990",
160 "renesas,rcar-gen3-gpio";
161 reg = <0 0xe6055000 0 0x50>;
162 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
163 #gpio-cells = <2>;
164 gpio-controller;
165 gpio-ranges = <&pfc 0 160 20>;
166 #interrupt-cells = <2>;
167 interrupt-controller;
168 clocks = <&cpg CPG_MOD 907>;
169 power-domains = <&sysc 32>;
170 resets = <&cpg 907>;
171 };
172
173 gpio6: gpio@e6055400 {
174 compatible = "renesas,gpio-r8a77990",
175 "renesas,rcar-gen3-gpio";
176 reg = <0 0xe6055400 0 0x50>;
177 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
178 #gpio-cells = <2>;
179 gpio-controller;
180 gpio-ranges = <&pfc 0 192 18>;
181 #interrupt-cells = <2>;
182 interrupt-controller;
183 clocks = <&cpg CPG_MOD 906>;
184 power-domains = <&sysc 32>;
185 resets = <&cpg 906>;
186 };
187
188 pfc: pin-controller@e6060000 {
189 compatible = "renesas,pfc-r8a77990";
190 reg = <0 0xe6060000 0 0x508>;
191 };
192
193 cpg: clock-controller@e6150000 {
194 compatible = "renesas,r8a77990-cpg-mssr";
195 reg = <0 0xe6150000 0 0x1000>;
196 clocks = <&extal_clk>;
197 clock-names = "extal";
198 #clock-cells = <2>;
199 #power-domain-cells = <0>;
200 #reset-cells = <1>;
201 };
202
203 rst: reset-controller@e6160000 {
204 compatible = "renesas,r8a77990-rst";
205 reg = <0 0xe6160000 0 0x0200>;
206 };
207
208 sysc: system-controller@e6180000 {
209 compatible = "renesas,r8a77990-sysc";
210 reg = <0 0xe6180000 0 0x0400>;
211 #power-domain-cells = <1>;
212 };
213
Marek Vasutcbff9f82018-12-03 21:43:05 +0100214 ipmmu_ds0: mmu@e6740000 {
215 compatible = "renesas,ipmmu-r8a77990";
216 reg = <0 0xe6740000 0 0x1000>;
217 renesas,ipmmu-main = <&ipmmu_mm 0>;
218 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
219 #iommu-cells = <1>;
220 };
221
222 ipmmu_ds1: mmu@e7740000 {
223 compatible = "renesas,ipmmu-r8a77990";
224 reg = <0 0xe7740000 0 0x1000>;
225 renesas,ipmmu-main = <&ipmmu_mm 1>;
226 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
227 #iommu-cells = <1>;
228 };
229
230 ipmmu_hc: mmu@e6570000 {
231 compatible = "renesas,ipmmu-r8a77990";
232 reg = <0 0xe6570000 0 0x1000>;
233 renesas,ipmmu-main = <&ipmmu_mm 2>;
234 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
235 #iommu-cells = <1>;
236 };
237
238 ipmmu_mm: mmu@e67b0000 {
239 compatible = "renesas,ipmmu-r8a77990";
240 reg = <0 0xe67b0000 0 0x1000>;
241 interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>,
242 <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
243 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
244 #iommu-cells = <1>;
245 };
246
247 ipmmu_mp: mmu@ec670000 {
248 compatible = "renesas,ipmmu-r8a77990";
249 reg = <0 0xec670000 0 0x1000>;
250 renesas,ipmmu-main = <&ipmmu_mm 4>;
251 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
252 #iommu-cells = <1>;
253 };
254
255 ipmmu_pv0: mmu@fd800000 {
256 compatible = "renesas,ipmmu-r8a77990";
257 reg = <0 0xfd800000 0 0x1000>;
258 renesas,ipmmu-main = <&ipmmu_mm 6>;
259 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
260 #iommu-cells = <1>;
261 };
262
263 ipmmu_rt: mmu@ffc80000 {
264 compatible = "renesas,ipmmu-r8a77990";
265 reg = <0 0xffc80000 0 0x1000>;
266 renesas,ipmmu-main = <&ipmmu_mm 10>;
267 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
268 #iommu-cells = <1>;
269 };
270
271 ipmmu_vc0: mmu@fe6b0000 {
272 compatible = "renesas,ipmmu-r8a77990";
273 reg = <0 0xfe6b0000 0 0x1000>;
274 renesas,ipmmu-main = <&ipmmu_mm 12>;
275 power-domains = <&sysc R8A77990_PD_A3VC>;
276 #iommu-cells = <1>;
277 };
278
279 ipmmu_vi0: mmu@febd0000 {
280 compatible = "renesas,ipmmu-r8a77990";
281 reg = <0 0xfebd0000 0 0x1000>;
282 renesas,ipmmu-main = <&ipmmu_mm 14>;
283 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
284 #iommu-cells = <1>;
285 };
286
287 ipmmu_vp0: mmu@fe990000 {
288 compatible = "renesas,ipmmu-r8a77990";
289 reg = <0 0xfe990000 0 0x1000>;
290 renesas,ipmmu-main = <&ipmmu_mm 16>;
291 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
292 #iommu-cells = <1>;
293 };
294
Marek Vasut0bb5d242018-05-31 18:30:17 +0200295 avb: ethernet@e6800000 {
296 compatible = "renesas,etheravb-r8a77990",
297 "renesas,etheravb-rcar-gen3";
Marek Vasutcbff9f82018-12-03 21:43:05 +0100298 reg = <0 0xe6800000 0 0x800>;
Marek Vasut0bb5d242018-05-31 18:30:17 +0200299 interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
300 <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
301 <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
302 <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
303 <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
304 <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
305 <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
306 <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
307 <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
308 <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
309 <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
310 <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
311 <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
312 <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
313 <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
314 <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
315 <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
316 <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
317 <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
318 <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
319 <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
320 <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
321 <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
322 <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
323 <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
324 interrupt-names = "ch0", "ch1", "ch2", "ch3",
325 "ch4", "ch5", "ch6", "ch7",
326 "ch8", "ch9", "ch10", "ch11",
327 "ch12", "ch13", "ch14", "ch15",
328 "ch16", "ch17", "ch18", "ch19",
329 "ch20", "ch21", "ch22", "ch23",
330 "ch24";
331 clocks = <&cpg CPG_MOD 812>;
332 power-domains = <&sysc 32>;
333 resets = <&cpg 812>;
334 phy-mode = "rgmii";
335 #address-cells = <1>;
336 #size-cells = <0>;
337 status = "disabled";
338 };
339
340 scif2: serial@e6e88000 {
341 compatible = "renesas,scif-r8a77990",
342 "renesas,rcar-gen3-scif", "renesas,scif";
343 reg = <0 0xe6e88000 0 64>;
344 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
345 clocks = <&cpg CPG_MOD 310>;
346 clock-names = "fck";
347 power-domains = <&sysc 32>;
348 resets = <&cpg 310>;
349 status = "disabled";
350 };
351
Marek Vasutcbff9f82018-12-03 21:43:05 +0100352 xhci0: usb@ee000000 {
353 compatible = "renesas,xhci-r8a77990",
354 "renesas,rcar-gen3-xhci";
355 reg = <0 0xee000000 0 0xc00>;
356 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
357 clocks = <&cpg CPG_MOD 328>;
358 power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
359 resets = <&cpg 328>;
360 status = "disabled";
361 };
362
363 ohci0: usb@ee080000 {
364 compatible = "generic-ohci";
365 reg = <0 0xee080000 0 0x100>;
366 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
367 clocks = <&cpg CPG_MOD 703>;
368 phys = <&usb2_phy0>;
369 phy-names = "usb";
370 power-domains = <&sysc 32>;
371 resets = <&cpg 703>;
372 status = "disabled";
373 };
374
375 ehci0: usb@ee080100 {
376 compatible = "generic-ehci";
377 reg = <0 0xee080100 0 0x100>;
378 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
379 clocks = <&cpg CPG_MOD 703>;
380 phys = <&usb2_phy0>;
381 phy-names = "usb";
382 companion = <&ohci0>;
383 power-domains = <&sysc 32>;
384 resets = <&cpg 703>;
385 status = "disabled";
386 };
387
388 usb2_phy0: usb-phy@ee080200 {
389 compatible = "renesas,usb2-phy-r8a77990",
390 "renesas,rcar-gen3-usb2-phy";
391 reg = <0 0xee080200 0 0x700>;
392 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
393 clocks = <&cpg CPG_MOD 703>;
394 power-domains = <&sysc 32>;
395 resets = <&cpg 703>;
396 #phy-cells = <0>;
397 status = "disabled";
398 };
399
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +0900400 gic: interrupt-controller@f1010000 {
401 compatible = "arm,gic-400";
402 #interrupt-cells = <3>;
403 #address-cells = <0>;
404 interrupt-controller;
405 reg = <0x0 0xf1010000 0 0x1000>,
406 <0x0 0xf1020000 0 0x20000>,
407 <0x0 0xf1040000 0 0x20000>,
408 <0x0 0xf1060000 0 0x20000>;
409 interrupts = <GIC_PPI 9
Marek Vasutcbff9f82018-12-03 21:43:05 +0100410 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +0900411 clocks = <&cpg CPG_MOD 408>;
412 clock-names = "clk";
413 power-domains = <&sysc 32>;
414 resets = <&cpg 408>;
415 };
416
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +0900417 prr: chipid@fff00044 {
418 compatible = "renesas,prr";
419 reg = <0 0xfff00044 0 4>;
420 };
Marek Vasut0bb5d242018-05-31 18:30:17 +0200421 };
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +0900422
Marek Vasut0bb5d242018-05-31 18:30:17 +0200423 timer {
424 compatible = "arm,armv8-timer";
Marek Vasutcbff9f82018-12-03 21:43:05 +0100425 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
426 <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
427 <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
428 <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
Yoshihiro Shimoda19df5952018-04-11 18:37:41 +0900429 };
430};