blob: fc7aec6b5116d8b405c2330ab50eeca23df2f246 [file] [log] [blame]
Biju Das9b33e302019-09-27 14:06:24 +01001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the r8a774b1 SoC
4 *
5 * Copyright (C) 2019 Renesas Electronics Corp.
6 */
7
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/clock/r8a774b1-cpg-mssr.h>
11#include <dt-bindings/power/r8a774b1-sysc.h>
12
13/ {
14 compatible = "renesas,r8a774b1";
15 #address-cells = <2>;
16 #size-cells = <2>;
17
18 /*
19 * The external audio clocks are configured as 0 Hz fixed frequency
20 * clocks by default.
21 * Boards that provide audio clocks should override them.
22 */
23 audio_clk_a: audio_clk_a {
24 compatible = "fixed-clock";
25 #clock-cells = <0>;
26 clock-frequency = <0>;
27 };
28
29 audio_clk_b: audio_clk_b {
30 compatible = "fixed-clock";
31 #clock-cells = <0>;
32 clock-frequency = <0>;
33 };
34
35 audio_clk_c: audio_clk_c {
36 compatible = "fixed-clock";
37 #clock-cells = <0>;
38 clock-frequency = <0>;
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 cpus {
49 #address-cells = <1>;
50 #size-cells = <0>;
51
52 a57_0: cpu@0 {
53 compatible = "arm,cortex-a57";
54 reg = <0x0>;
55 device_type = "cpu";
56 power-domains = <&sysc R8A774B1_PD_CA57_CPU0>;
57 next-level-cache = <&L2_CA57>;
58 enable-method = "psci";
59 #cooling-cells = <2>;
60 dynamic-power-coefficient = <854>;
61 clocks = <&cpg CPG_CORE R8A774B1_CLK_Z>;
62 };
63
64 a57_1: cpu@1 {
65 compatible = "arm,cortex-a57";
66 reg = <0x1>;
67 device_type = "cpu";
68 power-domains = <&sysc R8A774B1_PD_CA57_CPU1>;
69 next-level-cache = <&L2_CA57>;
70 enable-method = "psci";
71 clocks = <&cpg CPG_CORE R8A774B1_CLK_Z>;
72 };
73
74 L2_CA57: cache-controller-0 {
75 compatible = "cache";
76 power-domains = <&sysc R8A774B1_PD_CA57_SCU>;
77 cache-unified;
78 cache-level = <2>;
79 };
80 };
81
82 extal_clk: extal {
83 compatible = "fixed-clock";
84 #clock-cells = <0>;
85 /* This value must be overridden by the board */
86 clock-frequency = <0>;
87 };
88
89 extalr_clk: extalr {
90 compatible = "fixed-clock";
91 #clock-cells = <0>;
92 /* This value must be overridden by the board */
93 clock-frequency = <0>;
94 };
95
96 /* External PCIe clock - can be overridden by the board */
97 pcie_bus_clk: pcie_bus {
98 compatible = "fixed-clock";
99 #clock-cells = <0>;
100 clock-frequency = <0>;
101 };
102
103 pmu_a57 {
104 compatible = "arm,cortex-a57-pmu";
105 interrupts-extended = <&gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
106 <&gic GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
107 interrupt-affinity = <&a57_0>, <&a57_1>;
108 };
109
110 psci {
111 compatible = "arm,psci-1.0", "arm,psci-0.2";
112 method = "smc";
113 };
114
115 /* External SCIF clock - to be overridden by boards that provide it */
116 scif_clk: scif {
117 compatible = "fixed-clock";
118 #clock-cells = <0>;
119 clock-frequency = <0>;
120 };
121
122 soc {
123 compatible = "simple-bus";
124 interrupt-parent = <&gic>;
125 #address-cells = <2>;
126 #size-cells = <2>;
127 ranges;
128
129 rwdt: watchdog@e6020000 {
130 reg = <0 0xe6020000 0 0x0c>;
131 /* placeholder */
132 };
133
134 gpio0: gpio@e6050000 {
135 reg = <0 0xe6050000 0 0x50>;
136 #gpio-cells = <2>;
137 gpio-controller;
138 #interrupt-cells = <2>;
139 interrupt-controller;
140 /* placeholder */
141 };
142
143 gpio1: gpio@e6051000 {
144 reg = <0 0xe6051000 0 0x50>;
145 #gpio-cells = <2>;
146 gpio-controller;
147 #interrupt-cells = <2>;
148 interrupt-controller;
149 /* placeholder */
150 };
151
152 gpio2: gpio@e6052000 {
153 reg = <0 0xe6052000 0 0x50>;
154 #gpio-cells = <2>;
155 gpio-controller;
156 #interrupt-cells = <2>;
157 interrupt-controller;
158 /* placeholder */
159 };
160
161 gpio3: gpio@e6053000 {
162 reg = <0 0xe6053000 0 0x50>;
163 #gpio-cells = <2>;
164 gpio-controller;
165 #interrupt-cells = <2>;
166 interrupt-controller;
167 /* placeholder */
168 };
169
170 gpio4: gpio@e6054000 {
171 reg = <0 0xe6054000 0 0x50>;
172 #gpio-cells = <2>;
173 gpio-controller;
174 #interrupt-cells = <2>;
175 interrupt-controller;
176 /* placeholder */
177 };
178
179 gpio5: gpio@e6055000 {
180 reg = <0 0xe6055000 0 0x50>;
181 #gpio-cells = <2>;
182 gpio-controller;
183 #interrupt-cells = <2>;
184 interrupt-controller;
185 /* placeholder */
186 };
187
188 gpio6: gpio@e6055400 {
189 reg = <0 0xe6055400 0 0x50>;
190 #gpio-cells = <2>;
191 gpio-controller;
192 #interrupt-cells = <2>;
193 interrupt-controller;
194 /* placeholder */
195 };
196
197 gpio7: gpio@e6055800 {
198 reg = <0 0xe6055800 0 0x50>;
199 #gpio-cells = <2>;
200 gpio-controller;
201 #interrupt-cells = <2>;
202 interrupt-controller;
203 /* placeholder */
204 };
205
206 pfc: pin-controller@e6060000 {
207 compatible = "renesas,pfc-r8a774b1";
208 reg = <0 0xe6060000 0 0x50c>;
209 };
210
211 cpg: clock-controller@e6150000 {
212 compatible = "renesas,r8a774b1-cpg-mssr";
213 reg = <0 0xe6150000 0 0x1000>;
214 clocks = <&extal_clk>, <&extalr_clk>;
215 clock-names = "extal", "extalr";
216 #clock-cells = <2>;
217 #power-domain-cells = <0>;
218 #reset-cells = <1>;
219 };
220
221 rst: reset-controller@e6160000 {
222 compatible = "renesas,r8a774b1-rst";
223 reg = <0 0xe6160000 0 0x0200>;
224 };
225
226 sysc: system-controller@e6180000 {
227 compatible = "renesas,r8a774b1-sysc";
228 reg = <0 0xe6180000 0 0x0400>;
229 #power-domain-cells = <1>;
230 };
231
232 i2c4: i2c@e66d8000 {
233 #address-cells = <1>;
234 #size-cells = <0>;
235 reg = <0 0xe66d8000 0 0x40>;
236 /* placeholder */
237 };
238
239 hscif0: serial@e6540000 {
240 reg = <0 0xe6540000 0 0x60>;
241 /* placeholder */
242 };
243
244 hsusb: usb@e6590000 {
245 reg = <0 0xe6590000 0 0x200>;
246 /* placeholder */
247 };
248
249 usb3_phy0: usb-phy@e65ee000 {
250 reg = <0 0xe65ee000 0 0x90>;
251 #phy-cells = <0>;
252 /* placeholder */
253 };
254
255 avb: ethernet@e6800000 {
256 reg = <0 0xe6800000 0 0x800>;
257 /* placeholder */
258 };
259
260 can0: can@e6c30000 {
261 reg = <0 0xe6c30000 0 0x1000>;
262 /* placeholder */
263 };
264
265 can1: can@e6c38000 {
266 reg = <0 0xe6c38000 0 0x1000>;
267 /* placeholder */
268 };
269
270 canfd: can@e66c0000 {
271 reg = <0 0xe66c0000 0 0x8000>;
272 /* placeholder */
273 };
274
275 scif2: serial@e6e88000 {
276 compatible = "renesas,scif-r8a774b1",
277 "renesas,rcar-gen3-scif", "renesas,scif";
278 reg = <0 0xe6e88000 0 64>;
279 interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&cpg CPG_MOD 310>,
281 <&cpg CPG_CORE R8A774B1_CLK_S3D1>,
282 <&scif_clk>;
283 clock-names = "fck", "brg_int", "scif_clk";
284 power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
285 resets = <&cpg 310>;
286 status = "disabled";
287 };
288
289 rcar_sound: sound@ec500000 {
290 reg = <0 0xec500000 0 0x1000>, /* SCU */
291 <0 0xec5a0000 0 0x100>, /* ADG */
292 <0 0xec540000 0 0x1000>, /* SSIU */
293 <0 0xec541000 0 0x280>, /* SSI */
294 <0 0xec760000 0 0x200>; /* Audio DMAC peri peri*/
295
296 rcar_sound,ssi {
297 ssi0: ssi-0 { };
298 ssi1: ssi-1 { };
299 ssi2: ssi-2 { };
300 ssi3: ssi-3 { };
301 ssi4: ssi-4 { };
302 ssi5: ssi-5 { };
303 ssi6: ssi-6 { };
304 ssi7: ssi-7 { };
305 ssi8: ssi-8 { };
306 ssi9: ssi-9 { };
307 };
308 };
309
310 xhci0: usb@ee000000 {
311 reg = <0 0xee000000 0 0xc00>;
312 /* placeholder */
313 };
314
315 usb3_peri0: usb@ee020000 {
316 reg = <0 0xee020000 0 0x400>;
317 /* placeholder */
318 };
319
320 ohci0: usb@ee080000 {
321 reg = <0 0xee080000 0 0x100>;
322 /* placeholder */
323 };
324
325 ohci1: usb@ee0a0000 {
326 reg = <0 0xee0a0000 0 0x100>;
327 /* placeholder */
328 };
329
330 ehci0: usb@ee080100 {
331 reg = <0 0xee080100 0 0x100>;
332 /* placeholder */
333 };
334
335 ehci1: usb@ee0a0100 {
336 reg = <0 0xee0a0100 0 0x100>;
337 /* placeholder */
338 };
339
340 usb2_phy0: usb-phy@ee080200 {
341 reg = <0 0xee080200 0 0x700>;
342 /* placeholder */
343 };
344
345 usb2_phy1: usb-phy@ee0a0200 {
346 reg = <0 0xee0a0200 0 0x700>;
347 /* placeholder */
348 };
349
350 sdhi0: sd@ee100000 {
351 reg = <0 0xee100000 0 0x2000>;
352 /* placeholder */
353 };
354
355 sdhi1: sd@ee120000 {
356 reg = <0 0xee120000 0 0x2000>;
357 /* placeholder */
358 };
359
360 sdhi2: sd@ee140000 {
361 reg = <0 0xee140000 0 0x2000>;
362 /* placeholder */
363 };
364
365 sdhi3: sd@ee160000 {
366 reg = <0 0xee160000 0 0x2000>;
367 /* placeholder */
368 };
369
370 gic: interrupt-controller@f1010000 {
371 compatible = "arm,gic-400";
372 #interrupt-cells = <3>;
373 #address-cells = <0>;
374 interrupt-controller;
375 reg = <0x0 0xf1010000 0 0x1000>,
376 <0x0 0xf1020000 0 0x20000>,
377 <0x0 0xf1040000 0 0x20000>,
378 <0x0 0xf1060000 0 0x20000>;
379 interrupts = <GIC_PPI 9
380 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_HIGH)>;
381 clocks = <&cpg CPG_MOD 408>;
382 clock-names = "clk";
383 power-domains = <&sysc R8A774B1_PD_ALWAYS_ON>;
384 resets = <&cpg 408>;
385 };
386
387 pciec0: pcie@fe000000 {
388 reg = <0 0xfe000000 0 0x80000>;
389 #address-cells = <3>;
390 #size-cells = <2>;
391 bus-range = <0x00 0xff>;
392 /* placeholder */
393 };
394
395 pciec1: pcie@ee800000 {
396 reg = <0 0xee800000 0 0x80000>;
397 #address-cells = <3>;
398 #size-cells = <2>;
399 bus-range = <0x00 0xff>;
400 /* placeholder */
401 };
402
403 hdmi0: hdmi@fead0000 {
404 reg = <0 0xfead0000 0 0x10000>;
405
406 ports {
407 #address-cells = <1>;
408 #size-cells = <0>;
409
410 port@0 {
411 reg = <0>;
412 dw_hdmi0_in: endpoint {
413 };
414 };
415 port@1 {
416 reg = <1>;
417 };
418 };
419 };
420
421 du: display@feb00000 {
422 reg = <0 0xfeb00000 0 0x80000>;
423
424 ports {
425 #address-cells = <1>;
426 #size-cells = <0>;
427
428 port@0 {
429 reg = <0>;
430 du_out_rgb: endpoint {
431 };
432 };
433 port@1 {
434 reg = <1>;
435 du_out_hdmi0: endpoint {
436 };
437 };
438 port@2 {
439 reg = <2>;
440 du_out_lvds0: endpoint {
441 };
442 };
443 };
444 };
445
446 prr: chipid@fff00044 {
447 compatible = "renesas,prr";
448 reg = <0 0xfff00044 0 4>;
449 };
450 };
451
452 timer {
453 compatible = "arm,armv8-timer";
454 interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
455 <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
456 <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
457 <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
458 };
459
460 /* External USB clocks - can be overridden by the board */
461 usb3s0_clk: usb3s0 {
462 compatible = "fixed-clock";
463 #clock-cells = <0>;
464 clock-frequency = <0>;
465 };
466
467 usb_extal_clk: usb_extal {
468 compatible = "fixed-clock";
469 #clock-cells = <0>;
470 clock-frequency = <0>;
471 };
472};