2 * Copyright (c) 2016 Fuzhou Rockchip Electronics Co., Ltd
4 * This file is dual-licensed: you can use it either under the terms
5 * of the GPL or the X11 license, at your option. Note that this dual
6 * licensing only applies to this file, and not this project as a
9 * a) This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation; either version 2 of the
12 * License, or (at your option) any later version.
14 * This library is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
21 * b) Permission is hereby granted, free of charge, to any person
22 * obtaining a copy of this software and associated documentation
23 * files (the "Software"), to deal in the Software without
24 * restriction, including without limitation the rights to use,
25 * copy, modify, merge, publish, distribute, sublicense, and/or
26 * sell copies of the Software, and to permit persons to whom the
27 * Software is furnished to do so, subject to the following
30 * The above copyright notice and this permission notice shall be
31 * included in all copies or substantial portions of the Software.
33 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40 * OTHER DEALINGS IN THE SOFTWARE.
42 #include <dt-bindings/clock/rk3399-cru.h>
43 #include <dt-bindings/interrupt-controller/arm-gic.h>
46 compatible = "rockchip,rk3399";
47 interrupt-parent = <&gic>;
59 compatible = "arm,psci";
94 entry-method = "psci";
96 cpu_sleep: cpu-sleep-0 {
97 compatible = "arm,idle-state";
103 compatible = "arm,cortex-a53", "arm,armv8";
105 cpu-idle-states = <&cpu_sleep>;
106 enable-method = "psci";
111 compatible = "arm,cortex-a53", "arm,armv8";
113 cpu-idle-states = <&cpu_sleep>;
114 enable-method = "psci";
119 compatible = "arm,cortex-a53", "arm,armv8";
121 cpu-idle-states = <&cpu_sleep>;
122 enable-method = "psci";
127 compatible = "arm,cortex-a53", "arm,armv8";
129 cpu-idle-states = <&cpu_sleep>;
130 enable-method = "psci";
135 compatible = "arm,cortex-a72", "arm,armv8";
137 cpu-idle-states = <&cpu_sleep>;
138 enable-method = "psci";
143 compatible = "arm,cortex-a72", "arm,armv8";
145 cpu-idle-states = <&cpu_sleep>;
146 enable-method = "psci";
151 compatible = "arm,armv8-pmuv3";
152 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_LOW>;
153 interrupt-affinity = <&cpu_l0>, <&cpu_l1>, <&cpu_l2>,
154 <&cpu_l3>, <&cpu_b0>, <&cpu_b1>;
158 compatible = "arm,armv8-timer";
161 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
163 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
165 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
167 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
168 clock-frequency = <24000000>;
172 compatible = "fixed-clock";
174 clock-frequency = <24000000>;
175 clock-output-names = "xin24m";
178 gic: interrupt-controller@fee00000 {
179 compatible = "arm,gic-v3";
180 #interrupt-cells = <3>;
181 #address-cells = <2>;
184 interrupt-controller;
186 reg = <0x0 0xfee00000 0 0x10000>, /* GICD */
187 <0x0 0xfef00000 0 0xc0000>, /* GICR */
188 <0x0 0xfff00000 0 0x10000>, /* GICC */
189 <0x0 0xfff10000 0 0x10000>, /* GICH */
190 <0x0 0xfff20000 0 0x10000>; /* GICV */
193 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
194 its: interrupt-controller@fee20000 {
195 compatible = "arm,gic-v3-its";
197 reg = <0x0 0xfee20000 0x0 0x20000>;
202 compatible = "arm,amba-bus";
203 #address-cells = <2>;
207 dmac_bus: dma-controller@ff6d0000 {
208 compatible = "arm,pl330", "arm,primecell";
209 reg = <0x0 0xff6d0000 0x0 0x4000>;
210 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
211 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
213 clocks = <&cru ACLK_DMAC_BUS>;
214 clock-names = "apb_pclk";
217 dmac_peri: dma-controller@ff6e0000 {
218 compatible = "arm,pl330", "arm,primecell";
219 reg = <0x0 0xff6e0000 0x0 0x4000>;
220 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
221 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
223 clocks = <&cru ACLK_DMAC_PERI>;
224 clock-names = "apb_pclk";
228 uart0: serial@ff180000 {
229 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
230 reg = <0x0 0xff180000 0x0 0x100>;
231 clocks = <&cru SCLK_UART0>, <&cru PCLK_UART0>;
232 clock-names = "baudclk", "apb_pclk";
233 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
239 uart1: serial@ff190000 {
240 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
241 reg = <0x0 0xff190000 0x0 0x100>;
242 clocks = <&cru SCLK_UART1>, <&cru PCLK_UART1>;
243 clock-names = "baudclk", "apb_pclk";
244 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
250 uart2: serial@ff1a0000 {
251 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
252 reg = <0x0 0xff1a0000 0x0 0x100>;
253 clocks = <&cru SCLK_UART2>, <&cru PCLK_UART2>;
254 clock-names = "baudclk", "apb_pclk";
255 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
261 uart3: serial@ff1b0000 {
262 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
263 reg = <0x0 0xff1b0000 0x0 0x100>;
264 clocks = <&cru SCLK_UART3>, <&cru PCLK_UART4>;
265 clock-names = "baudclk", "apb_pclk";
266 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
272 uart4: serial@ff370000 {
273 compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
274 reg = <0x0 0xff370000 0x0 0x100>;
275 clocks = <&cru SCLK_UART4>, <&cru PCLK_UART4>;
276 clock-names = "baudclk", "apb_pclk";
277 interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
283 cru_pmu: pmu-clock-controller@ff750000 {
284 compatible = "rockchip,rk3399-pmu-cru";
285 reg = <0x0 0xff750000 0x0 0x1000>;
290 cru: clock-controller@ff760000 {
291 compatible = "rockchip,rk3399-cru";
292 reg = <0x0 0xff760000 0x0 0x1000>;
293 rockchip,grf = <&grf>;
298 grf: syscon@ff770000 {
299 compatible = "rockchip,rk3399-grf", "syscon";
300 reg = <0x0 0xff770000 0x0 0x10000>;