Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / arm / boot / dts / stih416.dtsi
1 /*
2  * Copyright (C) 2012 STMicroelectronics Limited.
3  * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * publishhed by the Free Software Foundation.
8  */
9 #include "stih41x.dtsi"
10 #include "stih416-clock.dtsi"
11 #include "stih416-pinctrl.dtsi"
12
13 #include <dt-bindings/phy/phy.h>
14 #include <dt-bindings/interrupt-controller/arm-gic.h>
15 #include <dt-bindings/reset-controller/stih416-resets.h>
16 / {
17         L2: cache-controller {
18                 compatible = "arm,pl310-cache";
19                 reg = <0xfffe2000 0x1000>;
20                 arm,data-latency = <3 3 3>;
21                 arm,tag-latency = <2 2 2>;
22                 cache-unified;
23                 cache-level = <2>;
24         };
25
26         soc {
27                 #address-cells = <1>;
28                 #size-cells = <1>;
29                 interrupt-parent = <&intc>;
30                 ranges;
31                 compatible      = "simple-bus";
32
33                 powerdown: powerdown-controller {
34                         #reset-cells = <1>;
35                         compatible = "st,stih416-powerdown";
36                 };
37
38                 softreset: softreset-controller {
39                         #reset-cells = <1>;
40                         compatible = "st,stih416-softreset";
41                 };
42
43                 syscfg_sbc:sbc-syscfg@fe600000{
44                         compatible      = "st,stih416-sbc-syscfg", "syscon";
45                         reg             = <0xfe600000 0x1000>;
46                 };
47
48                 syscfg_front:front-syscfg@fee10000{
49                         compatible      = "st,stih416-front-syscfg", "syscon";
50                         reg             = <0xfee10000 0x1000>;
51                 };
52
53                 syscfg_rear:rear-syscfg@fe830000{
54                         compatible      = "st,stih416-rear-syscfg", "syscon";
55                         reg             = <0xfe830000 0x1000>;
56                 };
57
58                 /* MPE */
59                 syscfg_fvdp_fe:fvdp-fe-syscfg@fddf0000{
60                         compatible      = "st,stih416-fvdp-fe-syscfg", "syscon";
61                         reg             = <0xfddf0000 0x1000>;
62                 };
63
64                 syscfg_fvdp_lite:fvdp-lite-syscfg@fd6a0000{
65                         compatible      = "st,stih416-fvdp-lite-syscfg", "syscon";
66                         reg             = <0xfd6a0000 0x1000>;
67                 };
68
69                 syscfg_cpu:cpu-syscfg@fdde0000{
70                         compatible      = "st,stih416-cpu-syscfg", "syscon";
71                         reg             = <0xfdde0000 0x1000>;
72                 };
73
74                 syscfg_compo:compo-syscfg@fd320000{
75                         compatible      = "st,stih416-compo-syscfg", "syscon";
76                         reg             = <0xfd320000 0x1000>;
77                 };
78
79                 syscfg_transport:transport-syscfg@fd690000{
80                         compatible      = "st,stih416-transport-syscfg", "syscon";
81                         reg             = <0xfd690000 0x1000>;
82                 };
83
84                 syscfg_lpm:lpm-syscfg@fe4b5100{
85                         compatible      = "st,stih416-lpm-syscfg", "syscon";
86                         reg             = <0xfe4b5100 0x8>;
87                 };
88
89                 serial2: serial@fed32000{
90                         compatible      = "st,asc";
91                         status          = "disabled";
92                         reg             = <0xfed32000 0x2c>;
93                         interrupts      = <0 197 0>;
94                         clocks          = <&clk_s_a0_ls CLK_ICN_REG>;
95                         pinctrl-names   = "default";
96                         pinctrl-0       = <&pinctrl_serial2 &pinctrl_serial2_oe>;
97                 };
98
99                 /* SBC_UART1 */
100                 sbc_serial1: serial@fe531000 {
101                         compatible      = "st,asc";
102                         status          = "disabled";
103                         reg             = <0xfe531000 0x2c>;
104                         interrupts      = <0 210 0>;
105                         pinctrl-names   = "default";
106                         pinctrl-0       = <&pinctrl_sbc_serial1>;
107                         clocks          = <&clk_sysin>;
108                 };
109
110                 i2c@fed40000 {
111                         compatible      = "st,comms-ssc4-i2c";
112                         reg             = <0xfed40000 0x110>;
113                         interrupts      = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>;
114                         clocks          = <&clk_s_a0_ls CLK_ICN_REG>;
115                         clock-names     = "ssc";
116                         clock-frequency = <400000>;
117                         pinctrl-names   = "default";
118                         pinctrl-0       = <&pinctrl_i2c0_default>;
119
120                         status          = "disabled";
121                 };
122
123                 i2c@fed41000 {
124                         compatible      = "st,comms-ssc4-i2c";
125                         reg             = <0xfed41000 0x110>;
126                         interrupts      = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
127                         clocks          = <&clk_s_a0_ls CLK_ICN_REG>;
128                         clock-names     = "ssc";
129                         clock-frequency = <400000>;
130                         pinctrl-names   = "default";
131                         pinctrl-0       = <&pinctrl_i2c1_default>;
132
133                         status          = "disabled";
134                 };
135
136                 i2c@fe540000 {
137                         compatible      = "st,comms-ssc4-i2c";
138                         reg             = <0xfe540000 0x110>;
139                         interrupts      = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
140                         clocks          = <&clk_sysin>;
141                         clock-names     = "ssc";
142                         clock-frequency = <400000>;
143                         pinctrl-names   = "default";
144                         pinctrl-0       = <&pinctrl_sbc_i2c0_default>;
145
146                         status          = "disabled";
147                 };
148
149                 i2c@fe541000 {
150                         compatible      = "st,comms-ssc4-i2c";
151                         reg             = <0xfe541000 0x110>;
152                         interrupts      = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
153                         clocks          = <&clk_sysin>;
154                         clock-names     = "ssc";
155                         clock-frequency = <400000>;
156                         pinctrl-names   = "default";
157                         pinctrl-0       = <&pinctrl_sbc_i2c1_default>;
158
159                         status          = "disabled";
160                 };
161
162                 ethernet0: dwmac@fe810000 {
163                         device_type     = "network";
164                         compatible      = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
165                         status          = "disabled";
166                         reg             = <0xfe810000 0x8000>;
167                         reg-names       = "stmmaceth";
168
169                         interrupts = <0 133 0>, <0 134 0>, <0 135 0>;
170                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
171
172                         snps,pbl        = <32>;
173                         snps,mixed-burst;
174
175                         st,syscon               = <&syscfg_rear 0x8bc>;
176                         resets                  = <&softreset STIH416_ETH0_SOFTRESET>;
177                         reset-names             = "stmmaceth";
178                         pinctrl-names   = "default";
179                         pinctrl-0       = <&pinctrl_mii0>;
180                         clock-names     = "stmmaceth", "sti-ethclk";
181                         clocks          = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>;
182                 };
183
184                 ethernet1: dwmac@fef08000 {
185                         device_type = "network";
186                         compatible              = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710";
187                         status          = "disabled";
188                         reg             = <0xfef08000 0x8000>;
189                         reg-names       = "stmmaceth";
190                         interrupts = <0 136 0>, <0 137 0>, <0 138 0>;
191                         interrupt-names = "macirq", "eth_wake_irq", "eth_lpi";
192
193                         snps,pbl        = <32>;
194                         snps,mixed-burst;
195
196                         st,syscon       = <&syscfg_sbc 0x7f0>;
197
198                         resets          = <&softreset STIH416_ETH1_SOFTRESET>;
199                         reset-names     = "stmmaceth";
200                         pinctrl-names   = "default";
201                         pinctrl-0       = <&pinctrl_mii1>;
202                         clock-names     = "stmmaceth", "sti-ethclk";
203                         clocks          = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>;
204                 };
205
206                 rc: rc@fe518000 {
207                         compatible      = "st,comms-irb";
208                         reg             = <0xfe518000 0x234>;
209                         interrupts      =  <0 203 0>;
210                         rx-mode         = "infrared";
211                         clocks          = <&clk_sysin>;
212                         pinctrl-names   = "default";
213                         pinctrl-0       = <&pinctrl_ir>;
214                         resets          = <&softreset STIH416_IRB_SOFTRESET>;
215                 };
216
217                 /* FSM */
218                 spifsm: spifsm@fe902000 {
219                         compatible         = "st,spi-fsm";
220                         reg                = <0xfe902000 0x1000>;
221                         pinctrl-0          = <&pinctrl_fsm>;
222
223                         st,syscfg          = <&syscfg_rear>;
224                         st,boot-device-reg = <0x958>;
225                         st,boot-device-spi = <0x1a>;
226
227                         status = "disabled";
228                 };
229
230                 keyscan: keyscan@fe4b0000 {
231                         compatible = "st,sti-keyscan";
232                         status = "disabled";
233                         reg = <0xfe4b0000 0x2000>;
234                         interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>;
235                         clocks = <&clk_sysin>;
236                         pinctrl-names = "default";
237                         pinctrl-0 = <&pinctrl_keyscan>;
238                         resets  = <&powerdown STIH416_KEYSCAN_POWERDOWN>,
239                                   <&softreset STIH416_KEYSCAN_SOFTRESET>;
240                 };
241
242                 temp0 {
243                         compatible = "st,stih416-sas-thermal";
244                         clock-names = "thermal";
245                         clocks = <&clockgen_c_vcc 14>;
246
247                         status = "okay";
248                 };
249
250                 temp1@fdfe8000 {
251                         compatible = "st,stih416-mpe-thermal";
252                         reg = <0xfdfe8000 0x10>;
253                         clocks = <&clockgen_e 3>;
254                         clock-names = "thermal";
255                         interrupts = <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>;
256
257                         status = "okay";
258                 };
259
260                 mmc0: sdhci@fe81e000 {
261                         compatible      = "st,sdhci";
262                         status          = "disabled";
263                         reg             = <0xfe81e000 0x1000>;
264                         interrupts      = <GIC_SPI 127 IRQ_TYPE_NONE>;
265                         interrupt-names = "mmcirq";
266                         pinctrl-names   = "default";
267                         pinctrl-0       = <&pinctrl_mmc0>;
268                         clock-names     = "mmc";
269                         clocks          = <&clk_s_a1_ls 1>;
270                 };
271
272                 mmc1: sdhci@fe81f000 {
273                         compatible      = "st,sdhci";
274                         status          = "disabled";
275                         reg             = <0xfe81f000 0x1000>;
276                         interrupts      = <GIC_SPI 128 IRQ_TYPE_NONE>;
277                         interrupt-names = "mmcirq";
278                         pinctrl-names   = "default";
279                         pinctrl-0       = <&pinctrl_mmc1>;
280                         clock-names     = "mmc";
281                         clocks          = <&clk_s_a1_ls 8>;
282                 };
283
284                 miphy365x_phy: phy@fe382000 {
285                         compatible      = "st,miphy365x-phy";
286                         st,syscfg       = <&syscfg_rear 0x824 0x828>;
287                         #address-cells  = <1>;
288                         #size-cells     = <1>;
289                         ranges;
290
291                         phy_port0: port@fe382000 {
292                                 #phy-cells = <1>;
293                                 reg = <0xfe382000 0x100>, <0xfe394000 0x100>;
294                                 reg-names = "sata", "pcie";
295                         };
296
297                         phy_port1: port@fe38a000 {
298                                 #phy-cells = <1>;
299                                 reg = <0xfe38a000 0x100>, <0xfe804000 0x100>;
300                                 reg-names = "sata", "pcie";
301                         };
302                 };
303
304                 sata0: sata@fe380000 {
305                         compatible      = "st,sti-ahci";
306                         reg             = <0xfe380000 0x1000>;
307                         interrupts      = <GIC_SPI 157 IRQ_TYPE_NONE>;
308                         interrupt-names = "hostc";
309                         phys            = <&phy_port0 PHY_TYPE_SATA>;
310                         phy-names       = "sata-phy";
311                         resets          = <&powerdown STIH416_SATA0_POWERDOWN>,
312                                           <&softreset STIH416_SATA0_SOFTRESET>;
313                         reset-names     = "pwr-dwn", "sw-rst";
314                         clock-names     = "ahci_clk";
315                         clocks          = <&clk_s_a0_ls CLK_ICN_REG>;
316
317                         status          = "disabled";
318                 };
319
320                 usb2_phy: phy@0 {
321                         compatible = "st,stih416-usb-phy";
322                         #phy-cells = <0>;
323                         st,syscfg = <&syscfg_rear>;
324                         clocks = <&clk_sysin>;
325                         clock-names = "osc_phy";
326                 };
327
328                 ehci0: usb@fe1ffe00 {
329                         compatible = "st,st-ehci-300x";
330                         reg = <0xfe1ffe00 0x100>;
331                         interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
332                         pinctrl-names = "default";
333                         pinctrl-0 = <&pinctrl_usb0>;
334                         clocks = <&clk_s_a1_ls 0>,
335                                  <&clockgen_b0 0>;
336                         clock-names = "ic", "clk48";
337                         phys = <&usb2_phy>;
338                         phy-names = "usb";
339                         resets = <&powerdown STIH416_USB0_POWERDOWN>,
340                                  <&softreset STIH416_USB0_SOFTRESET>;
341                         reset-names = "power", "softreset";
342                 };
343
344                 ohci0: usb@fe1ffc00 {
345                         compatible = "st,st-ohci-300x";
346                         reg = <0xfe1ffc00 0x100>;
347                         interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>;
348                         clocks = <&clk_s_a1_ls 0>,
349                                  <&clockgen_b0 0>;
350                         clock-names = "ic", "clk48";
351                         phys = <&usb2_phy>;
352                         phy-names = "usb";
353                         status = "okay";
354                         resets = <&powerdown STIH416_USB0_POWERDOWN>,
355                                  <&softreset STIH416_USB0_SOFTRESET>;
356                         reset-names = "power", "softreset";
357                 };
358
359                 ehci1: usb@fe203e00 {
360                         compatible = "st,st-ehci-300x";
361                         reg = <0xfe203e00 0x100>;
362                         interrupts = <GIC_SPI 150 IRQ_TYPE_NONE>;
363                         pinctrl-names = "default";
364                         pinctrl-0 = <&pinctrl_usb1>;
365                         clocks = <&clk_s_a1_ls 0>,
366                                  <&clockgen_b0 0>;
367                         clock-names = "ic", "clk48";
368                         phys = <&usb2_phy>;
369                         phy-names = "usb";
370                         resets = <&powerdown STIH416_USB1_POWERDOWN>,
371                                  <&softreset STIH416_USB1_SOFTRESET>;
372                         reset-names = "power", "softreset";
373                 };
374
375                 ohci1: usb@fe203c00 {
376                         compatible = "st,st-ohci-300x";
377                         reg = <0xfe203c00 0x100>;
378                         interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>;
379                         clocks = <&clk_s_a1_ls 0>,
380                                  <&clockgen_b0 0>;
381                         clock-names = "ic", "clk48";
382                         phys = <&usb2_phy>;
383                         phy-names = "usb";
384                         resets = <&powerdown STIH416_USB1_POWERDOWN>,
385                                  <&softreset STIH416_USB1_SOFTRESET>;
386                         reset-names = "power", "softreset";
387                 };
388
389                 ehci2: usb@fe303e00 {
390                         compatible = "st,st-ehci-300x";
391                         reg = <0xfe303e00 0x100>;
392                         interrupts = <GIC_SPI 152 IRQ_TYPE_NONE>;
393                         pinctrl-names = "default";
394                         pinctrl-0 = <&pinctrl_usb2>;
395                         clocks = <&clk_s_a1_ls 0>,
396                                  <&clockgen_b0 0>;
397                         clock-names = "ic", "clk48";
398                         phys = <&usb2_phy>;
399                         phy-names = "usb";
400                         resets = <&powerdown STIH416_USB2_POWERDOWN>,
401                                  <&softreset STIH416_USB2_SOFTRESET>;
402                         reset-names = "power", "softreset";
403                 };
404
405                 ohci2: usb@fe303c00 {
406                         compatible = "st,st-ohci-300x";
407                         reg = <0xfe303c00 0x100>;
408                         interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>;
409                         clocks = <&clk_s_a1_ls 0>,
410                                  <&clockgen_b0 0>;
411                         clock-names = "ic", "clk48";
412                         phys = <&usb2_phy>;
413                         phy-names = "usb";
414                         resets = <&powerdown STIH416_USB2_POWERDOWN>,
415                                  <&softreset STIH416_USB2_SOFTRESET>;
416                         reset-names = "power", "softreset";
417                 };
418
419                 ehci3: usb@fe343e00 {
420                         compatible = "st,st-ehci-300x";
421                         reg = <0xfe343e00 0x100>;
422                         interrupts = <GIC_SPI 154 IRQ_TYPE_NONE>;
423                         pinctrl-names = "default";
424                         pinctrl-0 = <&pinctrl_usb3>;
425                         clocks = <&clk_s_a1_ls 0>,
426                                  <&clockgen_b0 0>;
427                         clock-names = "ic", "clk48";
428                         phys = <&usb2_phy>;
429                         phy-names = "usb";
430                         resets = <&powerdown STIH416_USB3_POWERDOWN>,
431                                  <&softreset STIH416_USB3_SOFTRESET>;
432                         reset-names = "power", "softreset";
433                 };
434
435                 ohci3: usb@fe343c00 {
436                         compatible = "st,st-ohci-300x";
437                         reg = <0xfe343c00 0x100>;
438                         interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>;
439                         clocks = <&clk_s_a1_ls 0>,
440                                  <&clockgen_b0 0>;
441                         clock-names = "ic", "clk48";
442                         phys = <&usb2_phy>;
443                         phy-names = "usb";
444                         resets = <&powerdown STIH416_USB3_POWERDOWN>,
445                                  <&softreset STIH416_USB3_SOFTRESET>;
446                         reset-names = "power", "softreset";
447                 };
448         };
449 };