Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/*
2 * Device Tree Source for UniPhier Pro4 SoC
3 *
4 * Copyright (C) 2015-2016 Socionext Inc.
5 * Author: Masahiro Yamada <yamada.masahiro@socionext.com>
6 *
7 * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
8 */
9
10#include <dt-bindings/gpio/uniphier-gpio.h>
11
12/ {
13 compatible = "socionext,uniphier-pro4";
14 #address-cells = <1>;
15 #size-cells = <1>;
16
17 cpus {
18 #address-cells = <1>;
19 #size-cells = <0>;
20
21 cpu@0 {
22 device_type = "cpu";
23 compatible = "arm,cortex-a9";
24 reg = <0>;
25 enable-method = "psci";
26 next-level-cache = <&l2>;
27 };
28
29 cpu@1 {
30 device_type = "cpu";
31 compatible = "arm,cortex-a9";
32 reg = <1>;
33 enable-method = "psci";
34 next-level-cache = <&l2>;
35 };
36 };
37
38 psci {
39 compatible = "arm,psci-0.2";
40 method = "smc";
41 };
42
43 clocks {
44 refclk: ref {
45 compatible = "fixed-clock";
46 #clock-cells = <0>;
47 clock-frequency = <25000000>;
48 };
49
50 arm_timer_clk: arm-timer {
51 #clock-cells = <0>;
52 compatible = "fixed-clock";
53 clock-frequency = <50000000>;
54 };
55 };
56
57 soc {
58 compatible = "simple-bus";
59 #address-cells = <1>;
60 #size-cells = <1>;
61 ranges;
62 interrupt-parent = <&intc>;
63
64 l2: l2-cache@500c0000 {
65 compatible = "socionext,uniphier-system-cache";
66 reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
67 <0x506c0000 0x400>;
68 interrupts = <0 174 4>, <0 175 4>;
69 cache-unified;
70 cache-size = <(768 * 1024)>;
71 cache-sets = <256>;
72 cache-line-size = <128>;
73 cache-level = <2>;
74 };
75
76 serial0: serial@54006800 {
77 compatible = "socionext,uniphier-uart";
78 status = "disabled";
79 reg = <0x54006800 0x40>;
80 interrupts = <0 33 4>;
81 pinctrl-names = "default";
82 pinctrl-0 = <&pinctrl_uart0>;
83 clocks = <&peri_clk 0>;
84 resets = <&peri_rst 0>;
85 };
86
87 serial1: serial@54006900 {
88 compatible = "socionext,uniphier-uart";
89 status = "disabled";
90 reg = <0x54006900 0x40>;
91 interrupts = <0 35 4>;
92 pinctrl-names = "default";
93 pinctrl-0 = <&pinctrl_uart1>;
94 clocks = <&peri_clk 1>;
95 resets = <&peri_rst 1>;
96 };
97
98 serial2: serial@54006a00 {
99 compatible = "socionext,uniphier-uart";
100 status = "disabled";
101 reg = <0x54006a00 0x40>;
102 interrupts = <0 37 4>;
103 pinctrl-names = "default";
104 pinctrl-0 = <&pinctrl_uart2>;
105 clocks = <&peri_clk 2>;
106 resets = <&peri_rst 2>;
107 };
108
109 serial3: serial@54006b00 {
110 compatible = "socionext,uniphier-uart";
111 status = "disabled";
112 reg = <0x54006b00 0x40>;
113 interrupts = <0 177 4>;
114 pinctrl-names = "default";
115 pinctrl-0 = <&pinctrl_uart3>;
116 clocks = <&peri_clk 3>;
117 resets = <&peri_rst 3>;
118 };
119
120 gpio: gpio@55000000 {
121 compatible = "socionext,uniphier-gpio";
122 reg = <0x55000000 0x200>;
123 interrupt-parent = <&aidet>;
124 interrupt-controller;
125 #interrupt-cells = <2>;
126 gpio-controller;
127 #gpio-cells = <2>;
128 gpio-ranges = <&pinctrl 0 0 0>;
129 gpio-ranges-group-names = "gpio_range";
130 ngpios = <248>;
131 socionext,interrupt-ranges = <0 48 16>, <16 154 5>;
132 };
133
134 i2c0: i2c@58780000 {
135 compatible = "socionext,uniphier-fi2c";
136 status = "disabled";
137 reg = <0x58780000 0x80>;
138 #address-cells = <1>;
139 #size-cells = <0>;
140 interrupts = <0 41 4>;
141 pinctrl-names = "default";
142 pinctrl-0 = <&pinctrl_i2c0>;
143 clocks = <&peri_clk 4>;
144 resets = <&peri_rst 4>;
145 clock-frequency = <100000>;
146 };
147
148 i2c1: i2c@58781000 {
149 compatible = "socionext,uniphier-fi2c";
150 status = "disabled";
151 reg = <0x58781000 0x80>;
152 #address-cells = <1>;
153 #size-cells = <0>;
154 interrupts = <0 42 4>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&pinctrl_i2c1>;
157 clocks = <&peri_clk 5>;
158 resets = <&peri_rst 5>;
159 clock-frequency = <100000>;
160 };
161
162 i2c2: i2c@58782000 {
163 compatible = "socionext,uniphier-fi2c";
164 status = "disabled";
165 reg = <0x58782000 0x80>;
166 #address-cells = <1>;
167 #size-cells = <0>;
168 interrupts = <0 43 4>;
169 pinctrl-names = "default";
170 pinctrl-0 = <&pinctrl_i2c2>;
171 clocks = <&peri_clk 6>;
172 resets = <&peri_rst 6>;
173 clock-frequency = <100000>;
174 };
175
176 i2c3: i2c@58783000 {
177 compatible = "socionext,uniphier-fi2c";
178 status = "disabled";
179 reg = <0x58783000 0x80>;
180 #address-cells = <1>;
181 #size-cells = <0>;
182 interrupts = <0 44 4>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&pinctrl_i2c3>;
185 clocks = <&peri_clk 7>;
186 resets = <&peri_rst 7>;
187 clock-frequency = <100000>;
188 };
189
190 /* i2c4 does not exist */
191
192 /* chip-internal connection for DMD */
193 i2c5: i2c@58785000 {
194 compatible = "socionext,uniphier-fi2c";
195 reg = <0x58785000 0x80>;
196 #address-cells = <1>;
197 #size-cells = <0>;
198 interrupts = <0 25 4>;
199 clocks = <&peri_clk 9>;
200 resets = <&peri_rst 9>;
201 clock-frequency = <400000>;
202 };
203
204 /* chip-internal connection for HDMI */
205 i2c6: i2c@58786000 {
206 compatible = "socionext,uniphier-fi2c";
207 reg = <0x58786000 0x80>;
208 #address-cells = <1>;
209 #size-cells = <0>;
210 interrupts = <0 26 4>;
211 clocks = <&peri_clk 10>;
212 resets = <&peri_rst 10>;
213 clock-frequency = <400000>;
214 };
215
216 system_bus: system-bus@58c00000 {
217 compatible = "socionext,uniphier-system-bus";
218 status = "disabled";
219 reg = <0x58c00000 0x400>;
220 #address-cells = <2>;
221 #size-cells = <1>;
222 pinctrl-names = "default";
223 pinctrl-0 = <&pinctrl_system_bus>;
224 };
225
226 smpctrl@59801000 {
227 compatible = "socionext,uniphier-smpctrl";
228 reg = <0x59801000 0x400>;
229 };
230
231 mioctrl@59810000 {
232 compatible = "socionext,uniphier-pro4-mioctrl",
233 "simple-mfd", "syscon";
234 reg = <0x59810000 0x800>;
235
236 mio_clk: clock {
237 compatible = "socionext,uniphier-pro4-mio-clock";
238 #clock-cells = <1>;
239 };
240
241 mio_rst: reset {
242 compatible = "socionext,uniphier-pro4-mio-reset";
243 #reset-cells = <1>;
244 };
245 };
246
247 perictrl@59820000 {
248 compatible = "socionext,uniphier-pro4-perictrl",
249 "simple-mfd", "syscon";
250 reg = <0x59820000 0x200>;
251
252 peri_clk: clock {
253 compatible = "socionext,uniphier-pro4-peri-clock";
254 #clock-cells = <1>;
255 };
256
257 peri_rst: reset {
258 compatible = "socionext,uniphier-pro4-peri-reset";
259 #reset-cells = <1>;
260 };
261 };
262
263 usb2: usb@5a800100 {
264 compatible = "socionext,uniphier-ehci", "generic-ehci";
265 status = "disabled";
266 reg = <0x5a800100 0x100>;
267 interrupts = <0 80 4>;
268 pinctrl-names = "default";
269 pinctrl-0 = <&pinctrl_usb2>;
270 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 8>,
271 <&mio_clk 12>;
272 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
273 <&mio_rst 12>;
274 has-transaction-translator;
275 };
276
277 usb3: usb@5a810100 {
278 compatible = "socionext,uniphier-ehci", "generic-ehci";
279 status = "disabled";
280 reg = <0x5a810100 0x100>;
281 interrupts = <0 81 4>;
282 pinctrl-names = "default";
283 pinctrl-0 = <&pinctrl_usb3>;
284 clocks = <&sys_clk 8>, <&mio_clk 7>, <&mio_clk 9>,
285 <&mio_clk 13>;
286 resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
287 <&mio_rst 13>;
288 has-transaction-translator;
289 };
290
291 soc-glue@5f800000 {
292 compatible = "socionext,uniphier-pro4-soc-glue",
293 "simple-mfd", "syscon";
294 reg = <0x5f800000 0x2000>;
295
296 pinctrl: pinctrl {
297 compatible = "socionext,uniphier-pro4-pinctrl";
298 };
299 };
300
301 soc-glue@5f900000 {
302 compatible = "socionext,uniphier-pro4-soc-glue-debug",
303 "simple-mfd";
304 #address-cells = <1>;
305 #size-cells = <1>;
306 ranges = <0 0x5f900000 0x2000>;
307
308 efuse@100 {
309 compatible = "socionext,uniphier-efuse";
310 reg = <0x100 0x28>;
311 };
312
313 efuse@130 {
314 compatible = "socionext,uniphier-efuse";
315 reg = <0x130 0x8>;
316 };
317
318 efuse@200 {
319 compatible = "socionext,uniphier-efuse";
320 reg = <0x200 0x14>;
321 };
322 };
323
324 aidet: aidet@5fc20000 {
325 compatible = "socionext,uniphier-pro4-aidet";
326 reg = <0x5fc20000 0x200>;
327 interrupt-controller;
328 #interrupt-cells = <2>;
329 };
330
331 timer@60000200 {
332 compatible = "arm,cortex-a9-global-timer";
333 reg = <0x60000200 0x20>;
334 interrupts = <1 11 0x304>;
335 clocks = <&arm_timer_clk>;
336 };
337
338 timer@60000600 {
339 compatible = "arm,cortex-a9-twd-timer";
340 reg = <0x60000600 0x20>;
341 interrupts = <1 13 0x304>;
342 clocks = <&arm_timer_clk>;
343 };
344
345 intc: interrupt-controller@60001000 {
346 compatible = "arm,cortex-a9-gic";
347 reg = <0x60001000 0x1000>,
348 <0x60000100 0x100>;
349 #interrupt-cells = <3>;
350 interrupt-controller;
351 };
352
353 sysctrl@61840000 {
354 compatible = "socionext,uniphier-pro4-sysctrl",
355 "simple-mfd", "syscon";
356 reg = <0x61840000 0x10000>;
357
358 sys_clk: clock {
359 compatible = "socionext,uniphier-pro4-clock";
360 #clock-cells = <1>;
361 };
362
363 sys_rst: reset {
364 compatible = "socionext,uniphier-pro4-reset";
365 #reset-cells = <1>;
366 };
367 };
368
369 nand: nand@68000000 {
370 compatible = "socionext,uniphier-denali-nand-v5a";
371 status = "disabled";
372 reg-names = "nand_data", "denali_reg";
373 reg = <0x68000000 0x20>, <0x68100000 0x1000>;
374 interrupts = <0 65 4>;
375 pinctrl-names = "default";
376 pinctrl-0 = <&pinctrl_nand>;
377 clocks = <&sys_clk 2>;
378 resets = <&sys_rst 2>;
379 };
380 };
381};
382
383#include "uniphier-pinctrl.dtsi"