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