1dd8c7b78SManivannan Sadhasivam// SPDX-License-Identifier: GPL-2.0
2dd8c7b78SManivannan Sadhasivam/*
3dd8c7b78SManivannan Sadhasivam * dts file for Hisilicon Hi3670 SoC
4dd8c7b78SManivannan Sadhasivam *
5dd8c7b78SManivannan Sadhasivam * Copyright (C) 2016, Hisilicon Ltd.
6dd8c7b78SManivannan Sadhasivam * Copyright (C) 2018, Linaro Ltd.
7dd8c7b78SManivannan Sadhasivam */
8dd8c7b78SManivannan Sadhasivam
9dd8c7b78SManivannan Sadhasivam#include <dt-bindings/interrupt-controller/arm-gic.h>
10c00e3f80SManivannan Sadhasivam#include <dt-bindings/clock/hi3670-clock.h>
11dd8c7b78SManivannan Sadhasivam
12dd8c7b78SManivannan Sadhasivam/ {
13dd8c7b78SManivannan Sadhasivam	compatible = "hisilicon,hi3670";
14dd8c7b78SManivannan Sadhasivam	interrupt-parent = <&gic>;
15dd8c7b78SManivannan Sadhasivam	#address-cells = <2>;
16dd8c7b78SManivannan Sadhasivam	#size-cells = <2>;
17dd8c7b78SManivannan Sadhasivam
18dd8c7b78SManivannan Sadhasivam	psci {
19dd8c7b78SManivannan Sadhasivam		compatible = "arm,psci-0.2";
20dd8c7b78SManivannan Sadhasivam		method = "smc";
21dd8c7b78SManivannan Sadhasivam	};
22dd8c7b78SManivannan Sadhasivam
23dd8c7b78SManivannan Sadhasivam	cpus {
24dd8c7b78SManivannan Sadhasivam		#address-cells = <2>;
25dd8c7b78SManivannan Sadhasivam		#size-cells = <0>;
26dd8c7b78SManivannan Sadhasivam
27dd8c7b78SManivannan Sadhasivam		cpu-map {
28dd8c7b78SManivannan Sadhasivam			cluster0 {
29dd8c7b78SManivannan Sadhasivam				core0 {
30dd8c7b78SManivannan Sadhasivam					cpu = <&cpu0>;
31dd8c7b78SManivannan Sadhasivam				};
32dd8c7b78SManivannan Sadhasivam				core1 {
33dd8c7b78SManivannan Sadhasivam					cpu = <&cpu1>;
34dd8c7b78SManivannan Sadhasivam				};
35dd8c7b78SManivannan Sadhasivam				core2 {
36dd8c7b78SManivannan Sadhasivam					cpu = <&cpu2>;
37dd8c7b78SManivannan Sadhasivam				};
38dd8c7b78SManivannan Sadhasivam				core3 {
39dd8c7b78SManivannan Sadhasivam					cpu = <&cpu3>;
40dd8c7b78SManivannan Sadhasivam				};
41dd8c7b78SManivannan Sadhasivam			};
42dd8c7b78SManivannan Sadhasivam			cluster1 {
43dd8c7b78SManivannan Sadhasivam				core0 {
44dd8c7b78SManivannan Sadhasivam					cpu = <&cpu4>;
45dd8c7b78SManivannan Sadhasivam				};
46dd8c7b78SManivannan Sadhasivam				core1 {
47dd8c7b78SManivannan Sadhasivam					cpu = <&cpu5>;
48dd8c7b78SManivannan Sadhasivam				};
49dd8c7b78SManivannan Sadhasivam				core2 {
50dd8c7b78SManivannan Sadhasivam					cpu = <&cpu6>;
51dd8c7b78SManivannan Sadhasivam				};
52dd8c7b78SManivannan Sadhasivam				core3 {
53dd8c7b78SManivannan Sadhasivam					cpu = <&cpu7>;
54dd8c7b78SManivannan Sadhasivam				};
55dd8c7b78SManivannan Sadhasivam			};
56dd8c7b78SManivannan Sadhasivam		};
57dd8c7b78SManivannan Sadhasivam
58dd8c7b78SManivannan Sadhasivam		cpu0: cpu@0 {
59dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a53", "arm,armv8";
60dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
61dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x0>;
62dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
63dd8c7b78SManivannan Sadhasivam		};
64dd8c7b78SManivannan Sadhasivam
65dd8c7b78SManivannan Sadhasivam		cpu1: cpu@1 {
66dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a53", "arm,armv8";
67dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
68dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x1>;
69dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
70dd8c7b78SManivannan Sadhasivam		};
71dd8c7b78SManivannan Sadhasivam
72dd8c7b78SManivannan Sadhasivam		cpu2: cpu@2 {
73dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a53", "arm,armv8";
74dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
75dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x2>;
76dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
77dd8c7b78SManivannan Sadhasivam		};
78dd8c7b78SManivannan Sadhasivam
79dd8c7b78SManivannan Sadhasivam		cpu3: cpu@3 {
80dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a53", "arm,armv8";
81dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
82dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x3>;
83dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
84dd8c7b78SManivannan Sadhasivam		};
85dd8c7b78SManivannan Sadhasivam
86dd8c7b78SManivannan Sadhasivam		cpu4: cpu@100 {
87dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a73", "arm,armv8";
88dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
89dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x100>;
90dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
91dd8c7b78SManivannan Sadhasivam		};
92dd8c7b78SManivannan Sadhasivam
93dd8c7b78SManivannan Sadhasivam		cpu5: cpu@101 {
94dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a73", "arm,armv8";
95dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
96dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x101>;
97dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
98dd8c7b78SManivannan Sadhasivam		};
99dd8c7b78SManivannan Sadhasivam
100dd8c7b78SManivannan Sadhasivam		cpu6: cpu@102 {
101dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a73", "arm,armv8";
102dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
103dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x102>;
104dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
105dd8c7b78SManivannan Sadhasivam		};
106dd8c7b78SManivannan Sadhasivam
107dd8c7b78SManivannan Sadhasivam		cpu7: cpu@103 {
108dd8c7b78SManivannan Sadhasivam			compatible = "arm,cortex-a73", "arm,armv8";
109dd8c7b78SManivannan Sadhasivam			device_type = "cpu";
110dd8c7b78SManivannan Sadhasivam			reg = <0x0 0x103>;
111dd8c7b78SManivannan Sadhasivam			enable-method = "psci";
112dd8c7b78SManivannan Sadhasivam		};
113dd8c7b78SManivannan Sadhasivam	};
114dd8c7b78SManivannan Sadhasivam
115dd8c7b78SManivannan Sadhasivam	gic: interrupt-controller@e82b0000 {
116dd8c7b78SManivannan Sadhasivam		compatible = "arm,gic-400";
117dd8c7b78SManivannan Sadhasivam		reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
118dd8c7b78SManivannan Sadhasivam		      <0x0 0xe82b2000 0 0x2000>, /* GICC */
119dd8c7b78SManivannan Sadhasivam		      <0x0 0xe82b4000 0 0x2000>, /* GICH */
120dd8c7b78SManivannan Sadhasivam		      <0x0 0xe82b6000 0 0x2000>; /* GICV */
121dd8c7b78SManivannan Sadhasivam		#interrupt-cells = <3>;
122dd8c7b78SManivannan Sadhasivam		#address-cells = <0>;
123dd8c7b78SManivannan Sadhasivam		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
124dd8c7b78SManivannan Sadhasivam					 IRQ_TYPE_LEVEL_HIGH)>;
125dd8c7b78SManivannan Sadhasivam		interrupt-controller;
126dd8c7b78SManivannan Sadhasivam	};
127dd8c7b78SManivannan Sadhasivam
128dd8c7b78SManivannan Sadhasivam	timer {
129dd8c7b78SManivannan Sadhasivam		compatible = "arm,armv8-timer";
130dd8c7b78SManivannan Sadhasivam		interrupt-parent = <&gic>;
131dd8c7b78SManivannan Sadhasivam		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
132dd8c7b78SManivannan Sadhasivam					  IRQ_TYPE_LEVEL_LOW)>,
133dd8c7b78SManivannan Sadhasivam			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
134dd8c7b78SManivannan Sadhasivam					  IRQ_TYPE_LEVEL_LOW)>,
135dd8c7b78SManivannan Sadhasivam			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
136dd8c7b78SManivannan Sadhasivam					  IRQ_TYPE_LEVEL_LOW)>,
137dd8c7b78SManivannan Sadhasivam			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
138dd8c7b78SManivannan Sadhasivam					  IRQ_TYPE_LEVEL_LOW)>;
139dd8c7b78SManivannan Sadhasivam		clock-frequency = <1920000>;
140dd8c7b78SManivannan Sadhasivam	};
141dd8c7b78SManivannan Sadhasivam
142dd8c7b78SManivannan Sadhasivam	soc {
143dd8c7b78SManivannan Sadhasivam		compatible = "simple-bus";
144dd8c7b78SManivannan Sadhasivam		#address-cells = <2>;
145dd8c7b78SManivannan Sadhasivam		#size-cells = <2>;
146dd8c7b78SManivannan Sadhasivam		ranges;
147dd8c7b78SManivannan Sadhasivam
148c00e3f80SManivannan Sadhasivam		crg_ctrl: crg_ctrl@fff35000 {
149c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-crgctrl", "syscon";
150c00e3f80SManivannan Sadhasivam			reg = <0x0 0xfff35000 0x0 0x1000>;
151c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
152c00e3f80SManivannan Sadhasivam		};
153c00e3f80SManivannan Sadhasivam
154c00e3f80SManivannan Sadhasivam		pctrl: pctrl@e8a09000 {
155c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-pctrl", "syscon";
156c00e3f80SManivannan Sadhasivam			reg = <0x0 0xe8a09000 0x0 0x1000>;
157c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
158c00e3f80SManivannan Sadhasivam		};
159c00e3f80SManivannan Sadhasivam
160c00e3f80SManivannan Sadhasivam		pmuctrl: crg_ctrl@fff34000 {
161c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-pmuctrl", "syscon";
162c00e3f80SManivannan Sadhasivam			reg = <0x0 0xfff34000 0x0 0x1000>;
163c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
164c00e3f80SManivannan Sadhasivam		};
165c00e3f80SManivannan Sadhasivam
166c00e3f80SManivannan Sadhasivam		sctrl: sctrl@fff0a000 {
167c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-sctrl", "syscon";
168c00e3f80SManivannan Sadhasivam			reg = <0x0 0xfff0a000 0x0 0x1000>;
169c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
170c00e3f80SManivannan Sadhasivam		};
171c00e3f80SManivannan Sadhasivam
172c00e3f80SManivannan Sadhasivam		iomcu: iomcu@ffd7e000 {
173c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-iomcu", "syscon";
174c00e3f80SManivannan Sadhasivam			reg = <0x0 0xffd7e000 0x0 0x1000>;
175c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
176c00e3f80SManivannan Sadhasivam		};
177c00e3f80SManivannan Sadhasivam
178c00e3f80SManivannan Sadhasivam		media1_crg: media1_crgctrl@e87ff000 {
179c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-media1-crg", "syscon";
180c00e3f80SManivannan Sadhasivam			reg = <0x0 0xe87ff000 0x0 0x1000>;
181c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
182c00e3f80SManivannan Sadhasivam		};
183c00e3f80SManivannan Sadhasivam
184c00e3f80SManivannan Sadhasivam		media2_crg: media2_crgctrl@e8900000 {
185c00e3f80SManivannan Sadhasivam			compatible = "hisilicon,hi3670-media2-crg","syscon";
186c00e3f80SManivannan Sadhasivam			reg = <0x0 0xe8900000 0x0 0x1000>;
187c00e3f80SManivannan Sadhasivam			#clock-cells = <1>;
188c00e3f80SManivannan Sadhasivam		};
189c00e3f80SManivannan Sadhasivam
190dd8c7b78SManivannan Sadhasivam		uart6_clk: clk_19_2M {
191dd8c7b78SManivannan Sadhasivam			compatible = "fixed-clock";
192dd8c7b78SManivannan Sadhasivam			#clock-cells = <0>;
193dd8c7b78SManivannan Sadhasivam			clock-frequency = <19200000>;
194dd8c7b78SManivannan Sadhasivam		};
195dd8c7b78SManivannan Sadhasivam
196dd8c7b78SManivannan Sadhasivam		uart6: serial@fff32000 {
197dd8c7b78SManivannan Sadhasivam			compatible = "arm,pl011", "arm,primecell";
198dd8c7b78SManivannan Sadhasivam			reg = <0x0 0xfff32000 0x0 0x1000>;
199dd8c7b78SManivannan Sadhasivam			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
200dd8c7b78SManivannan Sadhasivam			clocks = <&uart6_clk &uart6_clk>;
201dd8c7b78SManivannan Sadhasivam			clock-names = "uartclk", "apb_pclk";
202dd8c7b78SManivannan Sadhasivam			status = "disabled";
203dd8c7b78SManivannan Sadhasivam		};
204dd8c7b78SManivannan Sadhasivam	};
205dd8c7b78SManivannan Sadhasivam};
206