1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*f126890aSEmmanuel Vadot/*
3*f126890aSEmmanuel Vadot * RDA8810PL SoC
4*f126890aSEmmanuel Vadot *
5*f126890aSEmmanuel Vadot * Copyright (c) 2017 Andreas Färber
6*f126890aSEmmanuel Vadot * Copyright (c) 2018 Manivannan Sadhasivam
7*f126890aSEmmanuel Vadot */
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
10*f126890aSEmmanuel Vadot
11*f126890aSEmmanuel Vadot/ {
12*f126890aSEmmanuel Vadot	compatible = "rda,8810pl";
13*f126890aSEmmanuel Vadot	interrupt-parent = <&intc>;
14*f126890aSEmmanuel Vadot	#address-cells = <1>;
15*f126890aSEmmanuel Vadot	#size-cells = <1>;
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	cpus {
18*f126890aSEmmanuel Vadot		#address-cells = <1>;
19*f126890aSEmmanuel Vadot		#size-cells = <0>;
20*f126890aSEmmanuel Vadot
21*f126890aSEmmanuel Vadot		cpu@0 {
22*f126890aSEmmanuel Vadot			device_type = "cpu";
23*f126890aSEmmanuel Vadot			compatible = "arm,cortex-a5";
24*f126890aSEmmanuel Vadot			reg = <0x0>;
25*f126890aSEmmanuel Vadot		};
26*f126890aSEmmanuel Vadot	};
27*f126890aSEmmanuel Vadot
28*f126890aSEmmanuel Vadot	sram@100000 {
29*f126890aSEmmanuel Vadot		compatible = "mmio-sram";
30*f126890aSEmmanuel Vadot		reg = <0x100000 0x10000>;
31*f126890aSEmmanuel Vadot		#address-cells = <1>;
32*f126890aSEmmanuel Vadot		#size-cells = <1>;
33*f126890aSEmmanuel Vadot		ranges;
34*f126890aSEmmanuel Vadot	};
35*f126890aSEmmanuel Vadot
36*f126890aSEmmanuel Vadot	modem@10000000 {
37*f126890aSEmmanuel Vadot		compatible = "simple-bus";
38*f126890aSEmmanuel Vadot		#address-cells = <1>;
39*f126890aSEmmanuel Vadot		#size-cells = <1>;
40*f126890aSEmmanuel Vadot		ranges = <0x0 0x10000000 0xfffffff>;
41*f126890aSEmmanuel Vadot
42*f126890aSEmmanuel Vadot		gpioc@1a08000 {
43*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-gpio";
44*f126890aSEmmanuel Vadot			reg = <0x1a08000 0x1000>;
45*f126890aSEmmanuel Vadot			gpio-controller;
46*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
47*f126890aSEmmanuel Vadot			ngpios = <32>;
48*f126890aSEmmanuel Vadot		};
49*f126890aSEmmanuel Vadot	};
50*f126890aSEmmanuel Vadot
51*f126890aSEmmanuel Vadot	apb@20800000 {
52*f126890aSEmmanuel Vadot		compatible = "simple-bus";
53*f126890aSEmmanuel Vadot		#address-cells = <1>;
54*f126890aSEmmanuel Vadot		#size-cells = <1>;
55*f126890aSEmmanuel Vadot		ranges = <0x0 0x20800000 0x100000>;
56*f126890aSEmmanuel Vadot
57*f126890aSEmmanuel Vadot		intc: interrupt-controller@0 {
58*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-intc";
59*f126890aSEmmanuel Vadot			reg = <0x0 0x1000>;
60*f126890aSEmmanuel Vadot			interrupt-controller;
61*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
62*f126890aSEmmanuel Vadot		};
63*f126890aSEmmanuel Vadot	};
64*f126890aSEmmanuel Vadot
65*f126890aSEmmanuel Vadot	apb@20900000 {
66*f126890aSEmmanuel Vadot		compatible = "simple-bus";
67*f126890aSEmmanuel Vadot		#address-cells = <1>;
68*f126890aSEmmanuel Vadot		#size-cells = <1>;
69*f126890aSEmmanuel Vadot		ranges = <0x0 0x20900000 0x100000>;
70*f126890aSEmmanuel Vadot
71*f126890aSEmmanuel Vadot		timer@10000 {
72*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-timer";
73*f126890aSEmmanuel Vadot			reg = <0x10000 0x1000>;
74*f126890aSEmmanuel Vadot			interrupts = <16 IRQ_TYPE_LEVEL_HIGH>,
75*f126890aSEmmanuel Vadot				     <17 IRQ_TYPE_LEVEL_HIGH>;
76*f126890aSEmmanuel Vadot			interrupt-names = "hwtimer", "ostimer";
77*f126890aSEmmanuel Vadot		};
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot		gpioa@30000 {
80*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-gpio";
81*f126890aSEmmanuel Vadot			reg = <0x30000 0x1000>;
82*f126890aSEmmanuel Vadot			gpio-controller;
83*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
84*f126890aSEmmanuel Vadot			ngpios = <32>;
85*f126890aSEmmanuel Vadot			interrupt-controller;
86*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
87*f126890aSEmmanuel Vadot			interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
88*f126890aSEmmanuel Vadot		};
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot		gpiob@31000 {
91*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-gpio";
92*f126890aSEmmanuel Vadot			reg = <0x31000 0x1000>;
93*f126890aSEmmanuel Vadot			gpio-controller;
94*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
95*f126890aSEmmanuel Vadot			ngpios = <32>;
96*f126890aSEmmanuel Vadot			interrupt-controller;
97*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
98*f126890aSEmmanuel Vadot			interrupts = <13 IRQ_TYPE_LEVEL_HIGH>;
99*f126890aSEmmanuel Vadot		};
100*f126890aSEmmanuel Vadot
101*f126890aSEmmanuel Vadot		gpiod@32000 {
102*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-gpio";
103*f126890aSEmmanuel Vadot			reg = <0x32000 0x1000>;
104*f126890aSEmmanuel Vadot			gpio-controller;
105*f126890aSEmmanuel Vadot			#gpio-cells = <2>;
106*f126890aSEmmanuel Vadot			ngpios = <32>;
107*f126890aSEmmanuel Vadot			interrupt-controller;
108*f126890aSEmmanuel Vadot			#interrupt-cells = <2>;
109*f126890aSEmmanuel Vadot			interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
110*f126890aSEmmanuel Vadot		};
111*f126890aSEmmanuel Vadot	};
112*f126890aSEmmanuel Vadot
113*f126890aSEmmanuel Vadot	apb@20a00000 {
114*f126890aSEmmanuel Vadot		compatible = "simple-bus";
115*f126890aSEmmanuel Vadot		#address-cells = <1>;
116*f126890aSEmmanuel Vadot		#size-cells = <1>;
117*f126890aSEmmanuel Vadot		ranges = <0x0 0x20a00000 0x100000>;
118*f126890aSEmmanuel Vadot
119*f126890aSEmmanuel Vadot		uart1: serial@0 {
120*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-uart";
121*f126890aSEmmanuel Vadot			reg = <0x0 0x1000>;
122*f126890aSEmmanuel Vadot			interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
123*f126890aSEmmanuel Vadot			status = "disabled";
124*f126890aSEmmanuel Vadot		};
125*f126890aSEmmanuel Vadot
126*f126890aSEmmanuel Vadot		uart2: serial@10000 {
127*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-uart";
128*f126890aSEmmanuel Vadot			reg = <0x10000 0x1000>;
129*f126890aSEmmanuel Vadot			interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
130*f126890aSEmmanuel Vadot			status = "disabled";
131*f126890aSEmmanuel Vadot		};
132*f126890aSEmmanuel Vadot
133*f126890aSEmmanuel Vadot		uart3: serial@90000 {
134*f126890aSEmmanuel Vadot			compatible = "rda,8810pl-uart";
135*f126890aSEmmanuel Vadot			reg = <0x90000 0x1000>;
136*f126890aSEmmanuel Vadot			interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
137*f126890aSEmmanuel Vadot			status = "disabled";
138*f126890aSEmmanuel Vadot		};
139*f126890aSEmmanuel Vadot	};
140*f126890aSEmmanuel Vadot
141*f126890aSEmmanuel Vadot	l2: cache-controller@21100000 {
142*f126890aSEmmanuel Vadot		compatible = "arm,pl310-cache";
143*f126890aSEmmanuel Vadot		reg = <0x21100000 0x1000>;
144*f126890aSEmmanuel Vadot		cache-unified;
145*f126890aSEmmanuel Vadot		cache-level = <2>;
146*f126890aSEmmanuel Vadot	};
147*f126890aSEmmanuel Vadot};
148