xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/renesas/r8a779a0.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Device Tree Source for the R-Car V3U (R8A779A0) SoC
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2020 Renesas Electronics Corp.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/clock/r8a779a0-cpg-mssr.h>
9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
10*4882a593Smuzhiyun#include <dt-bindings/power/r8a779a0-sysc.h>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	compatible = "renesas,r8a779a0";
14*4882a593Smuzhiyun	#address-cells = <2>;
15*4882a593Smuzhiyun	#size-cells = <2>;
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun	cpus {
18*4882a593Smuzhiyun		#address-cells = <1>;
19*4882a593Smuzhiyun		#size-cells = <0>;
20*4882a593Smuzhiyun
21*4882a593Smuzhiyun		a76_0: cpu@0 {
22*4882a593Smuzhiyun			compatible = "arm,cortex-a76";
23*4882a593Smuzhiyun			reg = <0>;
24*4882a593Smuzhiyun			device_type = "cpu";
25*4882a593Smuzhiyun			power-domains = <&sysc R8A779A0_PD_A1E0D0C0>;
26*4882a593Smuzhiyun			next-level-cache = <&L3_CA76_0>;
27*4882a593Smuzhiyun		};
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		L3_CA76_0: cache-controller-0 {
30*4882a593Smuzhiyun			compatible = "cache";
31*4882a593Smuzhiyun			power-domains = <&sysc R8A779A0_PD_A2E0D0>;
32*4882a593Smuzhiyun			cache-unified;
33*4882a593Smuzhiyun			cache-level = <3>;
34*4882a593Smuzhiyun		};
35*4882a593Smuzhiyun	};
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	extal_clk: extal {
38*4882a593Smuzhiyun		compatible = "fixed-clock";
39*4882a593Smuzhiyun		#clock-cells = <0>;
40*4882a593Smuzhiyun		/* This value must be overridden by the board */
41*4882a593Smuzhiyun		clock-frequency = <0>;
42*4882a593Smuzhiyun	};
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun	extalr_clk: extalr {
45*4882a593Smuzhiyun		compatible = "fixed-clock";
46*4882a593Smuzhiyun		#clock-cells = <0>;
47*4882a593Smuzhiyun		/* This value must be overridden by the board */
48*4882a593Smuzhiyun		clock-frequency = <0>;
49*4882a593Smuzhiyun	};
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun	pmu_a76 {
52*4882a593Smuzhiyun		compatible = "arm,cortex-a76-pmu";
53*4882a593Smuzhiyun		interrupts-extended = <&gic GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
54*4882a593Smuzhiyun	};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun	/* External SCIF clock - to be overridden by boards that provide it */
57*4882a593Smuzhiyun	scif_clk: scif {
58*4882a593Smuzhiyun		compatible = "fixed-clock";
59*4882a593Smuzhiyun		#clock-cells = <0>;
60*4882a593Smuzhiyun		clock-frequency = <0>;
61*4882a593Smuzhiyun	};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun	soc: soc {
64*4882a593Smuzhiyun		compatible = "simple-bus";
65*4882a593Smuzhiyun		interrupt-parent = <&gic>;
66*4882a593Smuzhiyun		#address-cells = <2>;
67*4882a593Smuzhiyun		#size-cells = <2>;
68*4882a593Smuzhiyun		ranges;
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun		cpg: clock-controller@e6150000 {
71*4882a593Smuzhiyun			compatible = "renesas,r8a779a0-cpg-mssr";
72*4882a593Smuzhiyun			reg = <0 0xe6150000 0 0x4000>;
73*4882a593Smuzhiyun			clocks = <&extal_clk>, <&extalr_clk>;
74*4882a593Smuzhiyun			clock-names = "extal", "extalr";
75*4882a593Smuzhiyun			#clock-cells = <2>;
76*4882a593Smuzhiyun			#power-domain-cells = <0>;
77*4882a593Smuzhiyun			#reset-cells = <1>;
78*4882a593Smuzhiyun		};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		rst: reset-controller@e6160000 {
81*4882a593Smuzhiyun			compatible = "renesas,r8a779a0-rst";
82*4882a593Smuzhiyun			reg = <0 0xe6160000 0 0x4000>;
83*4882a593Smuzhiyun		};
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		sysc: system-controller@e6180000 {
86*4882a593Smuzhiyun			compatible = "renesas,r8a779a0-sysc";
87*4882a593Smuzhiyun			reg = <0 0xe6180000 0 0x4000>;
88*4882a593Smuzhiyun			#power-domain-cells = <1>;
89*4882a593Smuzhiyun		};
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		scif0: serial@e6e60000 {
92*4882a593Smuzhiyun			compatible = "renesas,scif-r8a779a0",
93*4882a593Smuzhiyun				     "renesas,rcar-gen3-scif", "renesas,scif";
94*4882a593Smuzhiyun			reg = <0 0xe6e60000 0 64>;
95*4882a593Smuzhiyun			interrupts = <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>;
96*4882a593Smuzhiyun			clocks = <&cpg CPG_MOD 702>,
97*4882a593Smuzhiyun				 <&cpg CPG_CORE R8A779A0_CLK_S1D2>,
98*4882a593Smuzhiyun				 <&scif_clk>;
99*4882a593Smuzhiyun			clock-names = "fck", "brg_int", "scif_clk";
100*4882a593Smuzhiyun			power-domains = <&sysc R8A779A0_PD_ALWAYS_ON>;
101*4882a593Smuzhiyun			resets = <&cpg 702>;
102*4882a593Smuzhiyun			status = "disabled";
103*4882a593Smuzhiyun		};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun		gic: interrupt-controller@f1000000 {
106*4882a593Smuzhiyun			compatible = "arm,gic-v3";
107*4882a593Smuzhiyun			#interrupt-cells = <3>;
108*4882a593Smuzhiyun			#address-cells = <0>;
109*4882a593Smuzhiyun			interrupt-controller;
110*4882a593Smuzhiyun			reg = <0x0 0xf1000000 0 0x20000>,
111*4882a593Smuzhiyun			      <0x0 0xf1060000 0 0x110000>;
112*4882a593Smuzhiyun			interrupts = <GIC_PPI 9
113*4882a593Smuzhiyun				      (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_HIGH)>;
114*4882a593Smuzhiyun		};
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun		prr: chipid@fff00044 {
117*4882a593Smuzhiyun			compatible = "renesas,prr";
118*4882a593Smuzhiyun			reg = <0 0xfff00044 0 4>;
119*4882a593Smuzhiyun		};
120*4882a593Smuzhiyun	};
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun	timer {
123*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
124*4882a593Smuzhiyun		interrupts-extended = <&gic GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
125*4882a593Smuzhiyun				      <&gic GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
126*4882a593Smuzhiyun				      <&gic GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
127*4882a593Smuzhiyun				      <&gic GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
128*4882a593Smuzhiyun	};
129*4882a593Smuzhiyun};
130