xref: /linux/arch/arm64/boot/dts/renesas/r8a77970.dtsi (revision 41f4345a6111056341346742942df3f5d5be535d)
1*41f4345aSSergei Shtylyov/*
2*41f4345aSSergei Shtylyov * Device Tree Source for the r8a77970 SoC
3*41f4345aSSergei Shtylyov *
4*41f4345aSSergei Shtylyov * Copyright (C) 2016-2017 Renesas Electronics Corp.
5*41f4345aSSergei Shtylyov * Copyright (C) 2017 Cogent Embedded, Inc.
6*41f4345aSSergei Shtylyov *
7*41f4345aSSergei Shtylyov * This file is licensed under the terms of the GNU General Public License
8*41f4345aSSergei Shtylyov * version 2.  This program is licensed "as is" without any warranty of any
9*41f4345aSSergei Shtylyov * kind, whether express or implied.
10*41f4345aSSergei Shtylyov */
11*41f4345aSSergei Shtylyov
12*41f4345aSSergei Shtylyov#include <dt-bindings/interrupt-controller/irq.h>
13*41f4345aSSergei Shtylyov#include <dt-bindings/interrupt-controller/arm-gic.h>
14*41f4345aSSergei Shtylyov#include <dt-bindings/clock/renesas-cpg-mssr.h>
15*41f4345aSSergei Shtylyov
16*41f4345aSSergei Shtylyov/ {
17*41f4345aSSergei Shtylyov	compatible = "renesas,r8a77970";
18*41f4345aSSergei Shtylyov	#address-cells = <2>;
19*41f4345aSSergei Shtylyov	#size-cells = <2>;
20*41f4345aSSergei Shtylyov
21*41f4345aSSergei Shtylyov	psci {
22*41f4345aSSergei Shtylyov		compatible = "arm,psci-1.0", "arm,psci-0.2";
23*41f4345aSSergei Shtylyov		method = "smc";
24*41f4345aSSergei Shtylyov	};
25*41f4345aSSergei Shtylyov
26*41f4345aSSergei Shtylyov	cpus {
27*41f4345aSSergei Shtylyov		#address-cells = <1>;
28*41f4345aSSergei Shtylyov		#size-cells = <0>;
29*41f4345aSSergei Shtylyov
30*41f4345aSSergei Shtylyov		a53_0: cpu@0 {
31*41f4345aSSergei Shtylyov			device_type = "cpu";
32*41f4345aSSergei Shtylyov			compatible = "arm,cortex-a53", "arm,armv8";
33*41f4345aSSergei Shtylyov			reg = <0>;
34*41f4345aSSergei Shtylyov			clocks = <&cpg CPG_CORE 0>;
35*41f4345aSSergei Shtylyov			power-domains = <&sysc 5>;
36*41f4345aSSergei Shtylyov			next-level-cache = <&L2_CA53>;
37*41f4345aSSergei Shtylyov			enable-method = "psci";
38*41f4345aSSergei Shtylyov		};
39*41f4345aSSergei Shtylyov
40*41f4345aSSergei Shtylyov		L2_CA53: cache-controller {
41*41f4345aSSergei Shtylyov			compatible = "cache";
42*41f4345aSSergei Shtylyov			power-domains = <&sysc 21>;
43*41f4345aSSergei Shtylyov			cache-unified;
44*41f4345aSSergei Shtylyov			cache-level = <2>;
45*41f4345aSSergei Shtylyov		};
46*41f4345aSSergei Shtylyov	};
47*41f4345aSSergei Shtylyov
48*41f4345aSSergei Shtylyov	extal_clk: extal {
49*41f4345aSSergei Shtylyov		compatible = "fixed-clock";
50*41f4345aSSergei Shtylyov		#clock-cells = <0>;
51*41f4345aSSergei Shtylyov		/* This value must be overridden by the board */
52*41f4345aSSergei Shtylyov		clock-frequency = <0>;
53*41f4345aSSergei Shtylyov	};
54*41f4345aSSergei Shtylyov
55*41f4345aSSergei Shtylyov	extalr_clk: extalr {
56*41f4345aSSergei Shtylyov		compatible = "fixed-clock";
57*41f4345aSSergei Shtylyov		#clock-cells = <0>;
58*41f4345aSSergei Shtylyov		/* This value must be overridden by the board */
59*41f4345aSSergei Shtylyov		clock-frequency = <0>;
60*41f4345aSSergei Shtylyov	};
61*41f4345aSSergei Shtylyov
62*41f4345aSSergei Shtylyov	soc {
63*41f4345aSSergei Shtylyov		compatible = "simple-bus";
64*41f4345aSSergei Shtylyov		interrupt-parent = <&gic>;
65*41f4345aSSergei Shtylyov
66*41f4345aSSergei Shtylyov		#address-cells = <2>;
67*41f4345aSSergei Shtylyov		#size-cells = <2>;
68*41f4345aSSergei Shtylyov		ranges;
69*41f4345aSSergei Shtylyov
70*41f4345aSSergei Shtylyov		gic: interrupt-controller@f1010000 {
71*41f4345aSSergei Shtylyov			compatible = "arm,gic-400";
72*41f4345aSSergei Shtylyov			#interrupt-cells = <3>;
73*41f4345aSSergei Shtylyov			#address-cells = <0>;
74*41f4345aSSergei Shtylyov			interrupt-controller;
75*41f4345aSSergei Shtylyov			reg = <0 0xf1010000 0 0x1000>,
76*41f4345aSSergei Shtylyov			      <0 0xf1020000 0 0x20000>,
77*41f4345aSSergei Shtylyov			      <0 0xf1040000 0 0x20000>,
78*41f4345aSSergei Shtylyov			      <0 0xf1060000 0 0x20000>;
79*41f4345aSSergei Shtylyov			interrupts = <GIC_PPI 9	(GIC_CPU_MASK_SIMPLE(1) |
80*41f4345aSSergei Shtylyov				      IRQ_TYPE_LEVEL_HIGH)>;
81*41f4345aSSergei Shtylyov			clocks = <&cpg CPG_MOD 408>;
82*41f4345aSSergei Shtylyov			clock-names = "clk";
83*41f4345aSSergei Shtylyov			power-domains = <&sysc 32>;
84*41f4345aSSergei Shtylyov			resets = <&cpg 408>;
85*41f4345aSSergei Shtylyov		};
86*41f4345aSSergei Shtylyov
87*41f4345aSSergei Shtylyov		timer {
88*41f4345aSSergei Shtylyov			compatible = "arm,armv8-timer";
89*41f4345aSSergei Shtylyov			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) |
90*41f4345aSSergei Shtylyov						  IRQ_TYPE_LEVEL_LOW)>,
91*41f4345aSSergei Shtylyov				     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) |
92*41f4345aSSergei Shtylyov						  IRQ_TYPE_LEVEL_LOW)>,
93*41f4345aSSergei Shtylyov				     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) |
94*41f4345aSSergei Shtylyov						  IRQ_TYPE_LEVEL_LOW)>,
95*41f4345aSSergei Shtylyov				     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) |
96*41f4345aSSergei Shtylyov						  IRQ_TYPE_LEVEL_LOW)>;
97*41f4345aSSergei Shtylyov		};
98*41f4345aSSergei Shtylyov
99*41f4345aSSergei Shtylyov		cpg: clock-controller@e6150000 {
100*41f4345aSSergei Shtylyov			compatible = "renesas,r8a77970-cpg-mssr";
101*41f4345aSSergei Shtylyov			reg = <0 0xe6150000 0 0x1000>;
102*41f4345aSSergei Shtylyov			clocks = <&extal_clk>, <&extalr_clk>;
103*41f4345aSSergei Shtylyov			clock-names = "extal", "extalr";
104*41f4345aSSergei Shtylyov			#clock-cells = <2>;
105*41f4345aSSergei Shtylyov			#power-domain-cells = <0>;
106*41f4345aSSergei Shtylyov			#reset-cells = <1>;
107*41f4345aSSergei Shtylyov		};
108*41f4345aSSergei Shtylyov
109*41f4345aSSergei Shtylyov		rst: reset-controller@e6160000 {
110*41f4345aSSergei Shtylyov			compatible = "renesas,r8a77970-rst";
111*41f4345aSSergei Shtylyov			reg = <0 0xe6160000 0 0x200>;
112*41f4345aSSergei Shtylyov		};
113*41f4345aSSergei Shtylyov
114*41f4345aSSergei Shtylyov		sysc: system-controller@e6180000 {
115*41f4345aSSergei Shtylyov			compatible = "renesas,r8a77970-sysc";
116*41f4345aSSergei Shtylyov			reg = <0 0xe6180000 0 0x440>;
117*41f4345aSSergei Shtylyov			#power-domain-cells = <1>;
118*41f4345aSSergei Shtylyov		};
119*41f4345aSSergei Shtylyov
120*41f4345aSSergei Shtylyov		prr: chipid@fff00044 {
121*41f4345aSSergei Shtylyov			compatible = "renesas,prr";
122*41f4345aSSergei Shtylyov			reg = <0 0xfff00044 0 4>;
123*41f4345aSSergei Shtylyov		};
124*41f4345aSSergei Shtylyov	};
125*41f4345aSSergei Shtylyov};
126