Merge remote-tracking branches 'asoc/topic/tegra', 'asoc/topic/tlv320aic23', 'asoc...
[sfrench/cifs-2.6.git] / arch / arc / boot / dts / abilis_tb10x.dtsi
1 /*
2  * Abilis Systems TB10X SOC device tree
3  *
4  * Copyright (C) Abilis Systems 2013
5  *
6  * Author: Christian Ruppert <christian.ruppert@abilis.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
20  */
21
22
23 / {
24         compatible              = "abilis,arc-tb10x";
25         #address-cells          = <1>;
26         #size-cells             = <1>;
27
28         cpus {
29                 #address-cells = <1>;
30                 #size-cells = <0>;
31                 cpu@0 {
32                         device_type = "cpu";
33                         compatible = "snps,arc770d";
34                         reg = <0>;
35                 };
36         };
37
38         /* TIMER0 with interrupt for clockevent */
39         timer0 {
40                 compatible = "snps,arc-timer";
41                 interrupts = <3>;
42                 interrupt-parent = <&intc>;
43                 clocks = <&cpu_clk>;
44         };
45
46         /* TIMER1 for free running clocksource */
47         timer1 {
48                 compatible = "snps,arc-timer";
49                 clocks = <&cpu_clk>;
50         };
51
52         soc100 {
53                 #address-cells  = <1>;
54                 #size-cells     = <1>;
55                 device_type     = "soc";
56                 ranges          = <0xfe000000 0xfe000000 0x02000000
57                                 0x000F0000 0x000F0000 0x00010000>;
58                 compatible      = "abilis,tb10x", "simple-bus";
59
60                 pll0: oscillator {
61                         compatible = "fixed-clock";
62                         #clock-cells = <0>;
63                         clock-output-names = "pll0";
64                 };
65                 cpu_clk: clkdiv_cpu {
66                         compatible = "fixed-factor-clock";
67                         #clock-cells = <0>;
68                         clocks = <&pll0>;
69                         clock-output-names = "cpu_clk";
70                 };
71                 ahb_clk: clkdiv_ahb {
72                         compatible = "fixed-factor-clock";
73                         #clock-cells = <0>;
74                         clocks = <&pll0>;
75                         clock-output-names = "ahb_clk";
76                 };
77
78                 iomux: iomux@FF10601c {
79                         compatible = "abilis,tb10x-iomux";
80                         #gpio-range-cells = <3>;
81                         reg = <0xFF10601c 0x4>;
82                 };
83
84                 intc: interrupt-controller {
85                         compatible = "snps,arc700-intc";
86                         interrupt-controller;
87                         #interrupt-cells = <1>;
88                 };
89                 tb10x_ictl: pic@fe002000 {
90                         compatible = "abilis,tb10x-ictl";
91                         reg = <0xFE002000 0x20>;
92                         interrupt-controller;
93                         #interrupt-cells = <2>;
94                         interrupt-parent = <&intc>;
95                         interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
96                                         20 21 22 23 24 25 26 27 28 29 30 31>;
97                 };
98
99                 uart@FF100000 {
100                         compatible = "snps,dw-apb-uart";
101                         reg = <0xFF100000 0x100>;
102                         clock-frequency = <166666666>;
103                         interrupts = <25 8>;
104                         reg-shift = <2>;
105                         reg-io-width = <4>;
106                         interrupt-parent = <&tb10x_ictl>;
107                 };
108                 ethernet@FE100000 {
109                         compatible = "snps,dwmac-3.70a","snps,dwmac";
110                         reg = <0xFE100000 0x1058>;
111                         interrupt-parent = <&tb10x_ictl>;
112                         interrupts = <6 8>;
113                         interrupt-names = "macirq";
114                         clocks = <&ahb_clk>;
115                         clock-names = "stmmaceth";
116                 };
117                 dma@FE000000 {
118                         compatible = "snps,dma-spear1340";
119                         reg = <0xFE000000 0x400>;
120                         interrupt-parent = <&tb10x_ictl>;
121                         interrupts = <14 8>;
122                         dma-channels = <6>;
123                         dma-requests = <0>;
124                         dma-masters = <1>;
125                         #dma-cells = <3>;
126                         chan_allocation_order = <0>;
127                         chan_priority = <1>;
128                         block_size = <0x7ff>;
129                         data-width = <4>;
130                         clocks = <&ahb_clk>;
131                         clock-names = "hclk";
132                         multi-block = <1 1 1 1 1 1>;
133                 };
134
135                 i2c0: i2c@FF120000 {
136                         #address-cells = <1>;
137                         #size-cells = <0>;
138                         compatible = "snps,designware-i2c";
139                         reg = <0xFF120000 0x1000>;
140                         interrupt-parent = <&tb10x_ictl>;
141                         interrupts = <12 8>;
142                         clocks = <&ahb_clk>;
143                 };
144                 i2c1: i2c@FF121000 {
145                         #address-cells = <1>;
146                         #size-cells = <0>;
147                         compatible = "snps,designware-i2c";
148                         reg = <0xFF121000 0x1000>;
149                         interrupt-parent = <&tb10x_ictl>;
150                         interrupts = <12 8>;
151                         clocks = <&ahb_clk>;
152                 };
153                 i2c2: i2c@FF122000 {
154                         #address-cells = <1>;
155                         #size-cells = <0>;
156                         compatible = "snps,designware-i2c";
157                         reg = <0xFF122000 0x1000>;
158                         interrupt-parent = <&tb10x_ictl>;
159                         interrupts = <12 8>;
160                         clocks = <&ahb_clk>;
161                 };
162                 i2c3: i2c@FF123000 {
163                         #address-cells = <1>;
164                         #size-cells = <0>;
165                         compatible = "snps,designware-i2c";
166                         reg = <0xFF123000 0x1000>;
167                         interrupt-parent = <&tb10x_ictl>;
168                         interrupts = <12 8>;
169                         clocks = <&ahb_clk>;
170                 };
171                 i2c4: i2c@FF124000 {
172                         #address-cells = <1>;
173                         #size-cells = <0>;
174                         compatible = "snps,designware-i2c";
175                         reg = <0xFF124000 0x1000>;
176                         interrupt-parent = <&tb10x_ictl>;
177                         interrupts = <12 8>;
178                         clocks = <&ahb_clk>;
179                 };
180
181                 spi0: spi@0xFE010000 {
182                         #address-cells = <1>;
183                         #size-cells = <0>;
184                         cell-index = <0>;
185                         compatible = "abilis,tb100-spi";
186                         num-cs = <1>;
187                         reg = <0xFE010000 0x20>;
188                         interrupt-parent = <&tb10x_ictl>;
189                         interrupts = <26 8>;
190                         clocks = <&ahb_clk>;
191                 };
192                 spi1: spi@0xFE011000 {
193                         #address-cells = <1>;
194                         #size-cells = <0>;
195                         cell-index = <1>;
196                         compatible = "abilis,tb100-spi";
197                         num-cs = <2>;
198                         reg = <0xFE011000 0x20>;
199                         interrupt-parent = <&tb10x_ictl>;
200                         interrupts = <10 8>;
201                         clocks = <&ahb_clk>;
202                 };
203
204                 tb10x_tsm: tb10x-tsm@ff316000 {
205                         compatible = "abilis,tb100-tsm";
206                         reg = <0xff316000 0x400>;
207                         interrupt-parent = <&tb10x_ictl>;
208                         interrupts = <17 8>;
209                         output-clkdiv = <4>;
210                         global-packet-delay = <0x21>;
211                         port-packet-delay = <0>;
212                 };
213                 tb10x_stream_proc: tb10x-stream-proc {
214                         compatible = "abilis,tb100-streamproc";
215                         reg =   <0xfff00000 0x200>,
216                                 <0x000f0000 0x10000>,
217                                 <0xfff00200 0x105>,
218                                 <0xff10600c 0x1>,
219                                 <0xfe001018 0x1>;
220                         reg-names =     "mbox",
221                                         "sp_iccm",
222                                         "mbox_irq",
223                                         "cpuctrl",
224                                         "a6it_int_force";
225                         interrupt-parent = <&tb10x_ictl>;
226                         interrupts = <20 2>, <19 2>;
227                         interrupt-names = "cmd_irq", "event_irq";
228                 };
229                 tb10x_mdsc0: tb10x-mdscr@FF300000 {
230                         compatible = "abilis,tb100-mdscr";
231                         reg = <0xFF300000 0x7000>;
232                         tb100-mdscr-manage-tsin;
233                 };
234                 tb10x_mscr0: tb10x-mdscr@FF307000 {
235                         compatible = "abilis,tb100-mdscr";
236                         reg = <0xFF307000 0x7000>;
237                 };
238                 tb10x_scr0: tb10x-mdscr@ff30e000 {
239                         compatible = "abilis,tb100-mdscr";
240                         reg = <0xFF30e000 0x4000>;
241                         tb100-mdscr-manage-tsin;
242                 };
243                 tb10x_scr1: tb10x-mdscr@ff312000 {
244                         compatible = "abilis,tb100-mdscr";
245                         reg = <0xFF312000 0x4000>;
246                         tb100-mdscr-manage-tsin;
247                 };
248                 tb10x_wfb: tb10x-wfb@ff319000 {
249                         compatible = "abilis,tb100-wfb";
250                         reg = <0xff319000 0x1000>;
251                         interrupt-parent = <&tb10x_ictl>;
252                         interrupts = <16 8>;
253                 };
254         };
255 };