xref: /openbmc/u-boot/arch/arm/dts/r8a77995.dtsi (revision 87a62bce)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Device Tree Source for the r8a77995 SoC
4 *
5 * Copyright (C) 2016 Renesas Electronics Corp.
6 * Copyright (C) 2017 Glider bvba
7 */
8
9#include <dt-bindings/clock/r8a77995-cpg-mssr.h>
10#include <dt-bindings/interrupt-controller/arm-gic.h>
11#include <dt-bindings/power/r8a77995-sysc.h>
12
13/ {
14	compatible = "renesas,r8a77995";
15	#address-cells = <2>;
16	#size-cells = <2>;
17
18	psci {
19		compatible = "arm,psci-1.0", "arm,psci-0.2";
20		method = "smc";
21	};
22
23	cpus {
24		#address-cells = <1>;
25		#size-cells = <0>;
26
27		a53_0: cpu@0 {
28			compatible = "arm,cortex-a53", "arm,armv8";
29			reg = <0x0>;
30			device_type = "cpu";
31			power-domains = <&sysc R8A77995_PD_CA53_CPU0>;
32			next-level-cache = <&L2_CA53>;
33			enable-method = "psci";
34		};
35
36		L2_CA53: cache-controller-1 {
37			compatible = "cache";
38			power-domains = <&sysc R8A77995_PD_CA53_SCU>;
39			cache-unified;
40			cache-level = <2>;
41		};
42	};
43
44	extal_clk: extal {
45		compatible = "fixed-clock";
46		#clock-cells = <0>;
47		/* This value must be overridden by the board */
48		clock-frequency = <0>;
49	};
50
51	scif_clk: scif {
52		compatible = "fixed-clock";
53		#clock-cells = <0>;
54		clock-frequency = <0>;
55	};
56
57	soc {
58		compatible = "simple-bus";
59		interrupt-parent = <&gic>;
60		#address-cells = <2>;
61		#size-cells = <2>;
62		ranges;
63
64		gic: interrupt-controller@f1010000 {
65			compatible = "arm,gic-400";
66			#interrupt-cells = <3>;
67			#address-cells = <0>;
68			interrupt-controller;
69			reg = <0x0 0xf1010000 0 0x1000>,
70			      <0x0 0xf1020000 0 0x20000>,
71			      <0x0 0xf1040000 0 0x20000>,
72			      <0x0 0xf1060000 0 0x20000>;
73			interrupts = <GIC_PPI 9
74					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
75			clocks = <&cpg CPG_MOD 408>;
76			clock-names = "clk";
77			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
78			resets = <&cpg 408>;
79		};
80
81		timer {
82			compatible = "arm,armv8-timer";
83			interrupts = <GIC_PPI 13
84					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
85				     <GIC_PPI 14
86					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
87				     <GIC_PPI 11
88					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
89				     <GIC_PPI 10
90					(GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
91		};
92
93		rwdt: watchdog@e6020000 {
94			compatible = "renesas,r8a77995-wdt",
95				     "renesas,rcar-gen3-wdt";
96			reg = <0 0xe6020000 0 0x0c>;
97			clocks = <&cpg CPG_MOD 402>;
98			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
99			resets = <&cpg 402>;
100			status = "disabled";
101		};
102
103		pmu_a53 {
104			compatible = "arm,cortex-a53-pmu";
105			interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
106		};
107
108		cpg: clock-controller@e6150000 {
109			compatible = "renesas,r8a77995-cpg-mssr";
110			reg = <0 0xe6150000 0 0x1000>;
111			clocks = <&extal_clk>;
112			clock-names = "extal";
113			#clock-cells = <2>;
114			#power-domain-cells = <0>;
115			#reset-cells = <1>;
116		};
117
118		rst: reset-controller@e6160000 {
119			compatible = "renesas,r8a77995-rst";
120			reg = <0 0xe6160000 0 0x0200>;
121		};
122
123		pfc: pin-controller@e6060000 {
124			compatible = "renesas,pfc-r8a77995";
125			reg = <0 0xe6060000 0 0x508>;
126		};
127
128		prr: chipid@fff00044 {
129			compatible = "renesas,prr";
130			reg = <0 0xfff00044 0 4>;
131		};
132
133		sysc: system-controller@e6180000 {
134			compatible = "renesas,r8a77995-sysc";
135			reg = <0 0xe6180000 0 0x0400>;
136			#power-domain-cells = <1>;
137		};
138
139		intc_ex: interrupt-controller@e61c0000 {
140			compatible = "renesas,intc-ex-r8a77995", "renesas,irqc";
141			#interrupt-cells = <2>;
142			interrupt-controller;
143			reg = <0 0xe61c0000 0 0x200>;
144			interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH
145				      GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH
146				      GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH
147				      GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH
148				      GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH
149				      GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>;
150			clocks = <&cpg CPG_MOD 407>;
151			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
152			resets = <&cpg 407>;
153		};
154
155		gpio0: gpio@e6050000 {
156			compatible = "renesas,gpio-r8a77995",
157				     "renesas,rcar-gen3-gpio",
158				     "renesas,gpio-rcar";
159			reg = <0 0xe6050000 0 0x50>;
160			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
161			#gpio-cells = <2>;
162			gpio-controller;
163			gpio-ranges = <&pfc 0 0 9>;
164			#interrupt-cells = <2>;
165			interrupt-controller;
166			clocks = <&cpg CPG_MOD 912>;
167			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
168			resets = <&cpg 912>;
169		};
170
171		gpio1: gpio@e6051000 {
172			compatible = "renesas,gpio-r8a77995",
173				     "renesas,rcar-gen3-gpio",
174				     "renesas,gpio-rcar";
175			reg = <0 0xe6051000 0 0x50>;
176			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
177			#gpio-cells = <2>;
178			gpio-controller;
179			gpio-ranges = <&pfc 0 32 32>;
180			#interrupt-cells = <2>;
181			interrupt-controller;
182			clocks = <&cpg CPG_MOD 911>;
183			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
184			resets = <&cpg 911>;
185		};
186
187		gpio2: gpio@e6052000 {
188			compatible = "renesas,gpio-r8a77995",
189				     "renesas,rcar-gen3-gpio",
190				     "renesas,gpio-rcar";
191			reg = <0 0xe6052000 0 0x50>;
192			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
193			#gpio-cells = <2>;
194			gpio-controller;
195			gpio-ranges = <&pfc 0 64 32>;
196			#interrupt-cells = <2>;
197			interrupt-controller;
198			clocks = <&cpg CPG_MOD 910>;
199			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
200			resets = <&cpg 910>;
201		};
202
203		gpio3: gpio@e6053000 {
204			compatible = "renesas,gpio-r8a77995",
205				     "renesas,rcar-gen3-gpio",
206				     "renesas,gpio-rcar";
207			reg = <0 0xe6053000 0 0x50>;
208			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
209			#gpio-cells = <2>;
210			gpio-controller;
211			gpio-ranges = <&pfc 0 96 10>;
212			#interrupt-cells = <2>;
213			interrupt-controller;
214			clocks = <&cpg CPG_MOD 909>;
215			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
216			resets = <&cpg 909>;
217		};
218
219		gpio4: gpio@e6054000 {
220			compatible = "renesas,gpio-r8a77995",
221				     "renesas,rcar-gen3-gpio",
222				     "renesas,gpio-rcar";
223			reg = <0 0xe6054000 0 0x50>;
224			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
225			#gpio-cells = <2>;
226			gpio-controller;
227			gpio-ranges = <&pfc 0 128 32>;
228			#interrupt-cells = <2>;
229			interrupt-controller;
230			clocks = <&cpg CPG_MOD 908>;
231			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
232			resets = <&cpg 908>;
233		};
234
235		gpio5: gpio@e6055000 {
236			compatible = "renesas,gpio-r8a77995",
237				     "renesas,rcar-gen3-gpio",
238				     "renesas,gpio-rcar";
239			reg = <0 0xe6055000 0 0x50>;
240			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
241			#gpio-cells = <2>;
242			gpio-controller;
243			gpio-ranges = <&pfc 0 160 21>;
244			#interrupt-cells = <2>;
245			interrupt-controller;
246			clocks = <&cpg CPG_MOD 907>;
247			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
248			resets = <&cpg 907>;
249		};
250
251		gpio6: gpio@e6055400 {
252			compatible = "renesas,gpio-r8a77995",
253				     "renesas,rcar-gen3-gpio",
254				     "renesas,gpio-rcar";
255			reg = <0 0xe6055400 0 0x50>;
256			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
257			#gpio-cells = <2>;
258			gpio-controller;
259			gpio-ranges = <&pfc 0 192 14>;
260			#interrupt-cells = <2>;
261			interrupt-controller;
262			clocks = <&cpg CPG_MOD 906>;
263			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
264			resets = <&cpg 906>;
265		};
266
267		avb: ethernet@e6800000 {
268			compatible = "renesas,etheravb-r8a77995",
269				     "renesas,etheravb-rcar-gen3";
270			reg = <0 0xe6800000 0 0x800>, <0 0xe6a00000 0 0x10000>;
271			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
272				     <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
273				     <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
274				     <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
275				     <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
276				     <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
277				     <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
278				     <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
279				     <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
280				     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
281				     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>,
282				     <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
283				     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
284				     <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
285				     <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
286				     <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
287				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
288				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
289				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
290				     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
291				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
292				     <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
293				     <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
294				     <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
295				     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
296			interrupt-names = "ch0", "ch1", "ch2", "ch3",
297					  "ch4", "ch5", "ch6", "ch7",
298					  "ch8", "ch9", "ch10", "ch11",
299					  "ch12", "ch13", "ch14", "ch15",
300					  "ch16", "ch17", "ch18", "ch19",
301					  "ch20", "ch21", "ch22", "ch23",
302					  "ch24";
303			clocks = <&cpg CPG_MOD 812>;
304			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
305			resets = <&cpg 812>;
306			phy-mode = "rgmii-txid";
307			#address-cells = <1>;
308			#size-cells = <0>;
309			status = "disabled";
310		};
311
312		scif2: serial@e6e88000 {
313			compatible = "renesas,scif-r8a77995",
314				     "renesas,rcar-gen3-scif", "renesas,scif";
315			reg = <0 0xe6e88000 0 64>;
316			interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
317			clocks = <&cpg CPG_MOD 310>,
318				 <&cpg CPG_CORE R8A77995_CLK_S3D1C>,
319				 <&scif_clk>;
320			clock-names = "fck", "brg_int", "scif_clk";
321			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
322			resets = <&cpg 310>;
323			status = "disabled";
324		};
325
326		pwm0: pwm@e6e30000 {
327			compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
328			reg = <0 0xe6e30000 0 0x8>;
329			#pwm-cells = <2>;
330			clocks = <&cpg CPG_MOD 523>;
331			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
332			resets = <&cpg 523>;
333			status = "disabled";
334		};
335
336		pwm1: pwm@e6e31000 {
337			compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
338			reg = <0 0xe6e31000 0 0x8>;
339			#pwm-cells = <2>;
340			clocks = <&cpg CPG_MOD 523>;
341			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
342			resets = <&cpg 523>;
343			status = "disabled";
344		};
345
346		pwm2: pwm@e6e32000 {
347			compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
348			reg = <0 0xe6e32000 0 0x8>;
349			#pwm-cells = <2>;
350			clocks = <&cpg CPG_MOD 523>;
351			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
352			resets = <&cpg 523>;
353			status = "disabled";
354		};
355
356		pwm3: pwm@e6e33000 {
357			compatible = "renesas,pwm-r8a77995", "renesas,pwm-rcar";
358			reg = <0 0xe6e33000 0 0x8>;
359			#pwm-cells = <2>;
360			clocks = <&cpg CPG_MOD 523>;
361			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
362			resets = <&cpg 523>;
363			status = "disabled";
364		};
365
366		ehci0: usb@ee080100 {
367			compatible = "generic-ehci";
368			reg = <0 0xee080100 0 0x100>;
369			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
370			clocks = <&cpg CPG_MOD 703>;
371			phys = <&usb2_phy0>;
372			phy-names = "usb";
373			companion = <&ohci0>;
374			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
375			resets = <&cpg 703>;
376			status = "disabled";
377		};
378
379		ohci0: usb@ee080000 {
380			compatible = "generic-ohci";
381			reg = <0 0xee080000 0 0x100>;
382			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
383			clocks = <&cpg CPG_MOD 703>;
384			phys = <&usb2_phy0>;
385			phy-names = "usb";
386			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
387			resets = <&cpg 703>;
388			status = "disabled";
389		};
390
391		usb2_phy0: usb-phy@ee080200 {
392			compatible = "renesas,usb2-phy-r8a77995",
393				     "renesas,rcar-gen3-usb2-phy";
394			reg = <0 0xee080200 0 0x700>;
395			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
396			clocks = <&cpg CPG_MOD 703>;
397			power-domains = <&sysc R8A77995_PD_ALWAYS_ON>;
398			resets = <&cpg 703>;
399			#phy-cells = <0>;
400			status = "disabled";
401		};
402
403		rpc: rpc@0xee200000 {
404			compatible = "renesas,rpc-r8a77995", "renesas,rpc";
405			reg = <0 0xee200000 0 0x100>, <0 0x08000000 0 0>;
406			clocks = <&cpg CPG_MOD 917>;
407			bank-width = <2>;
408			status = "disabled";
409		};
410	};
411};
412