]> git.sur5r.net Git - u-boot/blob - arch/arm/dts/uniphier-pro4.dtsi
ARM: dts: uniphier: update GPIO nodes
[u-boot] / arch / arm / dts / uniphier-pro4.dtsi
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 / {
11         compatible = "socionext,uniphier-pro4";
12         #address-cells = <1>;
13         #size-cells = <1>;
14
15         cpus {
16                 #address-cells = <1>;
17                 #size-cells = <0>;
18
19                 cpu@0 {
20                         device_type = "cpu";
21                         compatible = "arm,cortex-a9";
22                         reg = <0>;
23                         enable-method = "psci";
24                         next-level-cache = <&l2>;
25                 };
26
27                 cpu@1 {
28                         device_type = "cpu";
29                         compatible = "arm,cortex-a9";
30                         reg = <1>;
31                         enable-method = "psci";
32                         next-level-cache = <&l2>;
33                 };
34         };
35
36         psci {
37                 compatible = "arm,psci-0.2";
38                 method = "smc";
39         };
40
41         clocks {
42                 refclk: ref {
43                         compatible = "fixed-clock";
44                         #clock-cells = <0>;
45                         clock-frequency = <25000000>;
46                 };
47
48                 arm_timer_clk: arm_timer_clk {
49                         #clock-cells = <0>;
50                         compatible = "fixed-clock";
51                         clock-frequency = <50000000>;
52                 };
53         };
54
55         soc {
56                 compatible = "simple-bus";
57                 #address-cells = <1>;
58                 #size-cells = <1>;
59                 ranges;
60                 interrupt-parent = <&intc>;
61                 u-boot,dm-pre-reloc;
62
63                 l2: l2-cache@500c0000 {
64                         compatible = "socionext,uniphier-system-cache";
65                         reg = <0x500c0000 0x2000>, <0x503c0100 0x4>,
66                               <0x506c0000 0x400>;
67                         interrupts = <0 174 4>, <0 175 4>;
68                         cache-unified;
69                         cache-size = <(768 * 1024)>;
70                         cache-sets = <256>;
71                         cache-line-size = <128>;
72                         cache-level = <2>;
73                 };
74
75                 serial0: serial@54006800 {
76                         compatible = "socionext,uniphier-uart";
77                         status = "disabled";
78                         reg = <0x54006800 0x40>;
79                         interrupts = <0 33 4>;
80                         pinctrl-names = "default";
81                         pinctrl-0 = <&pinctrl_uart0>;
82                         clocks = <&peri_clk 0>;
83                         clock-frequency = <73728000>;
84                 };
85
86                 serial1: serial@54006900 {
87                         compatible = "socionext,uniphier-uart";
88                         status = "disabled";
89                         reg = <0x54006900 0x40>;
90                         interrupts = <0 35 4>;
91                         pinctrl-names = "default";
92                         pinctrl-0 = <&pinctrl_uart1>;
93                         clocks = <&peri_clk 1>;
94                         clock-frequency = <73728000>;
95                 };
96
97                 serial2: serial@54006a00 {
98                         compatible = "socionext,uniphier-uart";
99                         status = "disabled";
100                         reg = <0x54006a00 0x40>;
101                         interrupts = <0 37 4>;
102                         pinctrl-names = "default";
103                         pinctrl-0 = <&pinctrl_uart2>;
104                         clocks = <&peri_clk 2>;
105                         clock-frequency = <73728000>;
106                 };
107
108                 serial3: serial@54006b00 {
109                         compatible = "socionext,uniphier-uart";
110                         status = "disabled";
111                         reg = <0x54006b00 0x40>;
112                         interrupts = <0 177 4>;
113                         pinctrl-names = "default";
114                         pinctrl-0 = <&pinctrl_uart3>;
115                         clocks = <&peri_clk 3>;
116                         clock-frequency = <73728000>;
117                 };
118
119                 gpio: gpio@55000000 {
120                         compatible = "socionext,uniphier-gpio";
121                         reg = <0x55000000 0x200>;
122                         interrupt-parent = <&aidet>;
123                         interrupt-controller;
124                         #interrupt-cells = <2>;
125                         gpio-controller;
126                         #gpio-cells = <2>;
127                         gpio-ranges = <&pinctrl 0 0 0>;
128                         gpio-ranges-group-names = "gpio_range";
129                         ngpios = <248>;
130                 };
131
132                 i2c0: i2c@58780000 {
133                         compatible = "socionext,uniphier-fi2c";
134                         status = "disabled";
135                         reg = <0x58780000 0x80>;
136                         #address-cells = <1>;
137                         #size-cells = <0>;
138                         interrupts = <0 41 4>;
139                         pinctrl-names = "default";
140                         pinctrl-0 = <&pinctrl_i2c0>;
141                         clocks = <&peri_clk 4>;
142                         clock-frequency = <100000>;
143                 };
144
145                 i2c1: i2c@58781000 {
146                         compatible = "socionext,uniphier-fi2c";
147                         status = "disabled";
148                         reg = <0x58781000 0x80>;
149                         #address-cells = <1>;
150                         #size-cells = <0>;
151                         interrupts = <0 42 4>;
152                         pinctrl-names = "default";
153                         pinctrl-0 = <&pinctrl_i2c1>;
154                         clocks = <&peri_clk 5>;
155                         clock-frequency = <100000>;
156                 };
157
158                 i2c2: i2c@58782000 {
159                         compatible = "socionext,uniphier-fi2c";
160                         status = "disabled";
161                         reg = <0x58782000 0x80>;
162                         #address-cells = <1>;
163                         #size-cells = <0>;
164                         interrupts = <0 43 4>;
165                         pinctrl-names = "default";
166                         pinctrl-0 = <&pinctrl_i2c2>;
167                         clocks = <&peri_clk 6>;
168                         clock-frequency = <100000>;
169                 };
170
171                 i2c3: i2c@58783000 {
172                         compatible = "socionext,uniphier-fi2c";
173                         status = "disabled";
174                         reg = <0x58783000 0x80>;
175                         #address-cells = <1>;
176                         #size-cells = <0>;
177                         interrupts = <0 44 4>;
178                         pinctrl-names = "default";
179                         pinctrl-0 = <&pinctrl_i2c3>;
180                         clocks = <&peri_clk 7>;
181                         clock-frequency = <100000>;
182                 };
183
184                 /* i2c4 does not exist */
185
186                 /* chip-internal connection for DMD */
187                 i2c5: i2c@58785000 {
188                         compatible = "socionext,uniphier-fi2c";
189                         reg = <0x58785000 0x80>;
190                         #address-cells = <1>;
191                         #size-cells = <0>;
192                         interrupts = <0 25 4>;
193                         clocks = <&peri_clk 9>;
194                         clock-frequency = <400000>;
195                 };
196
197                 /* chip-internal connection for HDMI */
198                 i2c6: i2c@58786000 {
199                         compatible = "socionext,uniphier-fi2c";
200                         reg = <0x58786000 0x80>;
201                         #address-cells = <1>;
202                         #size-cells = <0>;
203                         interrupts = <0 26 4>;
204                         clocks = <&peri_clk 10>;
205                         clock-frequency = <400000>;
206                 };
207
208                 system_bus: system-bus@58c00000 {
209                         compatible = "socionext,uniphier-system-bus";
210                         status = "disabled";
211                         reg = <0x58c00000 0x400>;
212                         #address-cells = <2>;
213                         #size-cells = <1>;
214                         pinctrl-names = "default";
215                         pinctrl-0 = <&pinctrl_system_bus>;
216                 };
217
218                 smpctrl@59801000 {
219                         compatible = "socionext,uniphier-smpctrl";
220                         reg = <0x59801000 0x400>;
221                 };
222
223                 mioctrl@59810000 {
224                         compatible = "socionext,uniphier-pro4-mioctrl",
225                                      "simple-mfd", "syscon";
226                         reg = <0x59810000 0x800>;
227                         u-boot,dm-pre-reloc;
228
229                         mio_clk: clock {
230                                 compatible = "socionext,uniphier-pro4-mio-clock";
231                                 #clock-cells = <1>;
232                         };
233
234                         mio_rst: reset {
235                                 compatible = "socionext,uniphier-pro4-mio-reset";
236                                 #reset-cells = <1>;
237                         };
238                 };
239
240                 perictrl@59820000 {
241                         compatible = "socionext,uniphier-pro4-perictrl",
242                                      "simple-mfd", "syscon";
243                         reg = <0x59820000 0x200>;
244
245                         peri_clk: clock {
246                                 compatible = "socionext,uniphier-pro4-peri-clock";
247                                 #clock-cells = <1>;
248                         };
249
250                         peri_rst: reset {
251                                 compatible = "socionext,uniphier-pro4-peri-reset";
252                                 #reset-cells = <1>;
253                         };
254                 };
255
256                 sd: sdhc@5a400000 {
257                         compatible = "socionext,uniphier-sdhc";
258                         status = "disabled";
259                         reg = <0x5a400000 0x200>;
260                         interrupts = <0 76 4>;
261                         pinctrl-names = "default", "1.8v";
262                         pinctrl-0 = <&pinctrl_sd>;
263                         pinctrl-1 = <&pinctrl_sd_1v8>;
264                         clocks = <&mio_clk 0>;
265                         reset-names = "host", "bridge";
266                         resets = <&mio_rst 0>, <&mio_rst 3>;
267                         bus-width = <4>;
268                         cap-sd-highspeed;
269                         sd-uhs-sdr12;
270                         sd-uhs-sdr25;
271                         sd-uhs-sdr50;
272                 };
273
274                 emmc: sdhc@5a500000 {
275                         compatible = "socionext,uniphier-sdhc";
276                         status = "disabled";
277                         reg = <0x5a500000 0x200>;
278                         interrupts = <0 78 4>;
279                         pinctrl-names = "default", "1.8v";
280                         pinctrl-0 = <&pinctrl_emmc>;
281                         pinctrl-1 = <&pinctrl_emmc_1v8>;
282                         clocks = <&mio_clk 1>;
283                         reset-names = "host", "bridge";
284                         resets = <&mio_rst 1>, <&mio_rst 4>;
285                         bus-width = <8>;
286                         non-removable;
287                         cap-mmc-highspeed;
288                         cap-mmc-hw-reset;
289                 };
290
291                 sd1: sdhc@5a600000 {
292                         compatible = "socionext,uniphier-sdhc";
293                         status = "disabled";
294                         reg = <0x5a600000 0x200>;
295                         interrupts = <0 85 4>;
296                         pinctrl-names = "default", "1.8v";
297                         pinctrl-0 = <&pinctrl_sd1>;
298                         pinctrl-1 = <&pinctrl_sd1_1v8>;
299                         clocks = <&mio_clk 2>;
300                         resets = <&mio_rst 2>, <&mio_rst 5>;
301                         bus-width = <4>;
302                         cap-sd-highspeed;
303                         sd-uhs-sdr12;
304                         sd-uhs-sdr25;
305                         sd-uhs-sdr50;
306                 };
307
308                 usb2: usb@5a800100 {
309                         compatible = "socionext,uniphier-ehci", "generic-ehci";
310                         status = "disabled";
311                         reg = <0x5a800100 0x100>;
312                         interrupts = <0 80 4>;
313                         pinctrl-names = "default";
314                         pinctrl-0 = <&pinctrl_usb2>;
315                         clocks = <&mio_clk 7>, <&mio_clk 8>, <&mio_clk 12>;
316                         resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 8>,
317                                  <&mio_rst 12>;
318                 };
319
320                 usb3: usb@5a810100 {
321                         compatible = "socionext,uniphier-ehci", "generic-ehci";
322                         status = "disabled";
323                         reg = <0x5a810100 0x100>;
324                         interrupts = <0 81 4>;
325                         pinctrl-names = "default";
326                         pinctrl-0 = <&pinctrl_usb3>;
327                         clocks = <&mio_clk 7>, <&mio_clk 9>, <&mio_clk 13>;
328                         resets = <&sys_rst 8>, <&mio_rst 7>, <&mio_rst 9>,
329                                  <&mio_rst 13>;
330                 };
331
332                 soc-glue@5f800000 {
333                         compatible = "socionext,uniphier-pro4-soc-glue",
334                                      "simple-mfd", "syscon";
335                         reg = <0x5f800000 0x2000>;
336                         u-boot,dm-pre-reloc;
337
338                         pinctrl: pinctrl {
339                                 compatible = "socionext,uniphier-pro4-pinctrl";
340                                 u-boot,dm-pre-reloc;
341                         };
342                 };
343
344                 aidet: aidet@5fc20000 {
345                         compatible = "socionext,uniphier-pro4-aidet";
346                         reg = <0x5fc20000 0x200>;
347                         interrupt-controller;
348                         #interrupt-cells = <2>;
349                 };
350
351                 timer@60000200 {
352                         compatible = "arm,cortex-a9-global-timer";
353                         reg = <0x60000200 0x20>;
354                         interrupts = <1 11 0x304>;
355                         clocks = <&arm_timer_clk>;
356                 };
357
358                 timer@60000600 {
359                         compatible = "arm,cortex-a9-twd-timer";
360                         reg = <0x60000600 0x20>;
361                         interrupts = <1 13 0x304>;
362                         clocks = <&arm_timer_clk>;
363                 };
364
365                 intc: interrupt-controller@60001000 {
366                         compatible = "arm,cortex-a9-gic";
367                         reg = <0x60001000 0x1000>,
368                               <0x60000100 0x100>;
369                         #interrupt-cells = <3>;
370                         interrupt-controller;
371                 };
372
373                 sysctrl@61840000 {
374                         compatible = "socionext,uniphier-pro4-sysctrl",
375                                      "simple-mfd", "syscon";
376                         reg = <0x61840000 0x10000>;
377
378                         sys_clk: clock {
379                                 compatible = "socionext,uniphier-pro4-clock";
380                                 #clock-cells = <1>;
381                         };
382
383                         sys_rst: reset {
384                                 compatible = "socionext,uniphier-pro4-reset";
385                                 #reset-cells = <1>;
386                         };
387                 };
388
389                 usb0: usb@65b00000 {
390                         compatible = "socionext,uniphier-pro4-dwc3";
391                         status = "disabled";
392                         reg = <0x65b00000 0x1000>;
393                         #address-cells = <1>;
394                         #size-cells = <1>;
395                         ranges;
396                         pinctrl-names = "default";
397                         pinctrl-0 = <&pinctrl_usb0>;
398                         dwc3@65a00000 {
399                                 compatible = "snps,dwc3";
400                                 reg = <0x65a00000 0x10000>;
401                                 interrupts = <0 134 4>;
402                                 dr_mode = "host";
403                                 tx-fifo-resize;
404                         };
405                 };
406
407                 usb1: usb@65d00000 {
408                         compatible = "socionext,uniphier-pro4-dwc3";
409                         status = "disabled";
410                         reg = <0x65d00000 0x1000>;
411                         #address-cells = <1>;
412                         #size-cells = <1>;
413                         ranges;
414                         pinctrl-names = "default";
415                         pinctrl-0 = <&pinctrl_usb1>;
416                         dwc3@65c00000 {
417                                 compatible = "snps,dwc3";
418                                 reg = <0x65c00000 0x10000>;
419                                 interrupts = <0 137 4>;
420                                 dr_mode = "host";
421                                 tx-fifo-resize;
422                         };
423                 };
424
425                 nand: nand@68000000 {
426                         compatible = "socionext,uniphier-denali-nand-v5a";
427                         status = "disabled";
428                         reg-names = "nand_data", "denali_reg";
429                         reg = <0x68000000 0x20>, <0x68100000 0x1000>;
430                         interrupts = <0 65 4>;
431                         pinctrl-names = "default";
432                         pinctrl-0 = <&pinctrl_nand>;
433                         clocks = <&sys_clk 2>;
434                 };
435         };
436 };
437
438 #include "uniphier-pinctrl.dtsi"