xref: /linux/arch/arm/boot/dts/realtek/rtd1195.dtsi (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) 2017-2019 Andreas Färber
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring/memreserve/ 0x00000000 0x0000a800; /* boot code */
7*724ba675SRob Herring/memreserve/ 0x0000a800 0x000f5800;
8*724ba675SRob Herring/memreserve/ 0x17fff000 0x00001000;
9*724ba675SRob Herring
10*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
11*724ba675SRob Herring#include <dt-bindings/reset/realtek,rtd1195.h>
12*724ba675SRob Herring
13*724ba675SRob Herring/ {
14*724ba675SRob Herring	compatible = "realtek,rtd1195";
15*724ba675SRob Herring	interrupt-parent = <&gic>;
16*724ba675SRob Herring	#address-cells = <1>;
17*724ba675SRob Herring	#size-cells = <1>;
18*724ba675SRob Herring
19*724ba675SRob Herring	cpus {
20*724ba675SRob Herring		#address-cells = <1>;
21*724ba675SRob Herring		#size-cells = <0>;
22*724ba675SRob Herring
23*724ba675SRob Herring		cpu0: cpu@0 {
24*724ba675SRob Herring			device_type = "cpu";
25*724ba675SRob Herring			compatible = "arm,cortex-a7";
26*724ba675SRob Herring			reg = <0x0>;
27*724ba675SRob Herring			clock-frequency = <1000000000>;
28*724ba675SRob Herring		};
29*724ba675SRob Herring
30*724ba675SRob Herring		cpu1: cpu@1 {
31*724ba675SRob Herring			device_type = "cpu";
32*724ba675SRob Herring			compatible = "arm,cortex-a7";
33*724ba675SRob Herring			reg = <0x1>;
34*724ba675SRob Herring			clock-frequency = <1000000000>;
35*724ba675SRob Herring		};
36*724ba675SRob Herring	};
37*724ba675SRob Herring
38*724ba675SRob Herring	reserved-memory {
39*724ba675SRob Herring		#address-cells = <1>;
40*724ba675SRob Herring		#size-cells = <1>;
41*724ba675SRob Herring		ranges;
42*724ba675SRob Herring
43*724ba675SRob Herring		rpc_comm: rpc@b000 {
44*724ba675SRob Herring			reg = <0x0000b000 0x1000>;
45*724ba675SRob Herring		};
46*724ba675SRob Herring
47*724ba675SRob Herring		audio@1b00000 {
48*724ba675SRob Herring			reg = <0x01b00000 0x400000>;
49*724ba675SRob Herring		};
50*724ba675SRob Herring
51*724ba675SRob Herring		rpc_ringbuf: rpc@1ffe000 {
52*724ba675SRob Herring			reg = <0x01ffe000 0x4000>;
53*724ba675SRob Herring		};
54*724ba675SRob Herring
55*724ba675SRob Herring		secure@10000000 {
56*724ba675SRob Herring			reg = <0x10000000 0x100000>;
57*724ba675SRob Herring			no-map;
58*724ba675SRob Herring		};
59*724ba675SRob Herring	};
60*724ba675SRob Herring
61*724ba675SRob Herring	arm-pmu {
62*724ba675SRob Herring		compatible = "arm,cortex-a7-pmu";
63*724ba675SRob Herring		interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
64*724ba675SRob Herring			     <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
65*724ba675SRob Herring		interrupt-affinity = <&cpu0>, <&cpu1>;
66*724ba675SRob Herring	};
67*724ba675SRob Herring
68*724ba675SRob Herring	timer {
69*724ba675SRob Herring		compatible = "arm,armv7-timer";
70*724ba675SRob Herring		interrupts = <GIC_PPI 13
71*724ba675SRob Herring			(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
72*724ba675SRob Herring			     <GIC_PPI 14
73*724ba675SRob Herring			(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
74*724ba675SRob Herring			     <GIC_PPI 11
75*724ba675SRob Herring			(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>,
76*724ba675SRob Herring			     <GIC_PPI 10
77*724ba675SRob Herring			(GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
78*724ba675SRob Herring		clock-frequency = <27000000>;
79*724ba675SRob Herring	};
80*724ba675SRob Herring
81*724ba675SRob Herring	osc27M: osc {
82*724ba675SRob Herring		compatible = "fixed-clock";
83*724ba675SRob Herring		clock-frequency = <27000000>;
84*724ba675SRob Herring		#clock-cells = <0>;
85*724ba675SRob Herring		clock-output-names = "osc27M";
86*724ba675SRob Herring	};
87*724ba675SRob Herring
88*724ba675SRob Herring	soc {
89*724ba675SRob Herring		compatible = "simple-bus";
90*724ba675SRob Herring		#address-cells = <1>;
91*724ba675SRob Herring		#size-cells = <1>;
92*724ba675SRob Herring		ranges = <0x00000000 0x00000000 0x0000a800>,
93*724ba675SRob Herring			 <0x18000000 0x18000000 0x00070000>,
94*724ba675SRob Herring			 <0x18100000 0x18100000 0x01000000>,
95*724ba675SRob Herring			 <0x80000000 0x80000000 0x80000000>;
96*724ba675SRob Herring
97*724ba675SRob Herring		rbus: bus@18000000 {
98*724ba675SRob Herring			compatible = "simple-bus";
99*724ba675SRob Herring			reg = <0x18000000 0x70000>;
100*724ba675SRob Herring			#address-cells = <1>;
101*724ba675SRob Herring			#size-cells = <1>;
102*724ba675SRob Herring			ranges = <0x0 0x18000000 0x70000>;
103*724ba675SRob Herring
104*724ba675SRob Herring			crt: syscon@0 {
105*724ba675SRob Herring				compatible = "syscon", "simple-mfd";
106*724ba675SRob Herring				reg = <0x0 0x1000>;
107*724ba675SRob Herring				reg-io-width = <4>;
108*724ba675SRob Herring				#address-cells = <1>;
109*724ba675SRob Herring				#size-cells = <1>;
110*724ba675SRob Herring				ranges = <0x0 0x0 0x1000>;
111*724ba675SRob Herring			};
112*724ba675SRob Herring
113*724ba675SRob Herring			iso: syscon@7000 {
114*724ba675SRob Herring				compatible = "syscon", "simple-mfd";
115*724ba675SRob Herring				reg = <0x7000 0x1000>;
116*724ba675SRob Herring				reg-io-width = <4>;
117*724ba675SRob Herring				#address-cells = <1>;
118*724ba675SRob Herring				#size-cells = <1>;
119*724ba675SRob Herring				ranges = <0x0 0x7000 0x1000>;
120*724ba675SRob Herring			};
121*724ba675SRob Herring
122*724ba675SRob Herring			sb2: syscon@1a000 {
123*724ba675SRob Herring				compatible = "syscon", "simple-mfd";
124*724ba675SRob Herring				reg = <0x1a000 0x1000>;
125*724ba675SRob Herring				reg-io-width = <4>;
126*724ba675SRob Herring				#address-cells = <1>;
127*724ba675SRob Herring				#size-cells = <1>;
128*724ba675SRob Herring				ranges = <0x0 0x1a000 0x1000>;
129*724ba675SRob Herring			};
130*724ba675SRob Herring
131*724ba675SRob Herring			misc: syscon@1b000 {
132*724ba675SRob Herring				compatible = "syscon", "simple-mfd";
133*724ba675SRob Herring				reg = <0x1b000 0x1000>;
134*724ba675SRob Herring				reg-io-width = <4>;
135*724ba675SRob Herring				#address-cells = <1>;
136*724ba675SRob Herring				#size-cells = <1>;
137*724ba675SRob Herring				ranges = <0x0 0x1b000 0x1000>;
138*724ba675SRob Herring			};
139*724ba675SRob Herring
140*724ba675SRob Herring			scpu_wrapper: syscon@1d000 {
141*724ba675SRob Herring				compatible = "syscon", "simple-mfd";
142*724ba675SRob Herring				reg = <0x1d000 0x1000>;
143*724ba675SRob Herring				reg-io-width = <4>;
144*724ba675SRob Herring				#address-cells = <1>;
145*724ba675SRob Herring				#size-cells = <1>;
146*724ba675SRob Herring				ranges = <0x0 0x1d000 0x1000>;
147*724ba675SRob Herring			};
148*724ba675SRob Herring		};
149*724ba675SRob Herring
150*724ba675SRob Herring		gic: interrupt-controller@ff011000 {
151*724ba675SRob Herring			compatible = "arm,cortex-a7-gic";
152*724ba675SRob Herring			reg = <0xff011000 0x1000>,
153*724ba675SRob Herring			      <0xff012000 0x2000>,
154*724ba675SRob Herring			      <0xff014000 0x2000>,
155*724ba675SRob Herring			      <0xff016000 0x2000>;
156*724ba675SRob Herring			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_LEVEL_LOW)>;
157*724ba675SRob Herring			interrupt-controller;
158*724ba675SRob Herring			#interrupt-cells = <3>;
159*724ba675SRob Herring		};
160*724ba675SRob Herring	};
161*724ba675SRob Herring};
162*724ba675SRob Herring
163*724ba675SRob Herring&crt {
164*724ba675SRob Herring	reset1: reset-controller@0 {
165*724ba675SRob Herring		compatible = "snps,dw-low-reset";
166*724ba675SRob Herring		reg = <0x0 0x4>;
167*724ba675SRob Herring		#reset-cells = <1>;
168*724ba675SRob Herring	};
169*724ba675SRob Herring
170*724ba675SRob Herring	reset2: reset-controller@4 {
171*724ba675SRob Herring		compatible = "snps,dw-low-reset";
172*724ba675SRob Herring		reg = <0x4 0x4>;
173*724ba675SRob Herring		#reset-cells = <1>;
174*724ba675SRob Herring	};
175*724ba675SRob Herring
176*724ba675SRob Herring	reset3: reset-controller@8 {
177*724ba675SRob Herring		compatible = "snps,dw-low-reset";
178*724ba675SRob Herring		reg = <0x8 0x4>;
179*724ba675SRob Herring		#reset-cells = <1>;
180*724ba675SRob Herring	};
181*724ba675SRob Herring};
182*724ba675SRob Herring
183*724ba675SRob Herring&iso {
184*724ba675SRob Herring	iso_reset: reset-controller@88 {
185*724ba675SRob Herring		compatible = "snps,dw-low-reset";
186*724ba675SRob Herring		reg = <0x88 0x4>;
187*724ba675SRob Herring		#reset-cells = <1>;
188*724ba675SRob Herring	};
189*724ba675SRob Herring
190*724ba675SRob Herring	wdt: watchdog@680 {
191*724ba675SRob Herring		compatible = "realtek,rtd1295-watchdog";
192*724ba675SRob Herring		reg = <0x680 0x100>;
193*724ba675SRob Herring		clocks = <&osc27M>;
194*724ba675SRob Herring	};
195*724ba675SRob Herring
196*724ba675SRob Herring	uart0: serial@800 {
197*724ba675SRob Herring		compatible = "snps,dw-apb-uart";
198*724ba675SRob Herring		reg = <0x800 0x400>;
199*724ba675SRob Herring		reg-shift = <2>;
200*724ba675SRob Herring		reg-io-width = <4>;
201*724ba675SRob Herring		resets = <&iso_reset RTD1195_ISO_RSTN_UR0>;
202*724ba675SRob Herring		clock-frequency = <27000000>;
203*724ba675SRob Herring		status = "disabled";
204*724ba675SRob Herring	};
205*724ba675SRob Herring};
206*724ba675SRob Herring
207*724ba675SRob Herring&misc {
208*724ba675SRob Herring	uart1: serial@200 {
209*724ba675SRob Herring		compatible = "snps,dw-apb-uart";
210*724ba675SRob Herring		reg = <0x200 0x100>;
211*724ba675SRob Herring		reg-shift = <2>;
212*724ba675SRob Herring		reg-io-width = <4>;
213*724ba675SRob Herring		resets = <&reset2 RTD1195_RSTN_UR1>;
214*724ba675SRob Herring		clock-frequency = <27000000>;
215*724ba675SRob Herring		status = "disabled";
216*724ba675SRob Herring	};
217*724ba675SRob Herring};
218