Merge tag 'nfs-for-4.6-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[sfrench/cifs-2.6.git] / arch / arm / boot / dts / dm816x.dtsi
1 /*
2  * This file is licensed under the terms of the GNU General Public License
3  * version 2.  This program is licensed "as is" without any warranty of any
4  * kind, whether express or implied.
5  */
6
7 #include <dt-bindings/gpio/gpio.h>
8 #include <dt-bindings/pinctrl/omap.h>
9
10 #include "skeleton.dtsi"
11
12 / {
13         compatible = "ti,dm816";
14         interrupt-parent = <&intc>;
15
16         aliases {
17                 i2c0 = &i2c1;
18                 i2c1 = &i2c2;
19                 serial0 = &uart1;
20                 serial1 = &uart2;
21                 serial2 = &uart3;
22                 ethernet0 = &eth0;
23                 ethernet1 = &eth1;
24         };
25
26         cpus {
27                 #address-cells = <1>;
28                 #size-cells = <0>;
29                 cpu@0 {
30                         compatible = "arm,cortex-a8";
31                         device_type = "cpu";
32                         reg = <0>;
33                 };
34         };
35
36         pmu {
37                 compatible = "arm,cortex-a8-pmu";
38                 interrupts = <3>;
39         };
40
41         /*
42          * The soc node represents the soc top level view. It is used for IPs
43          * that are not memory mapped in the MPU view or for the MPU itself.
44          */
45         soc {
46                 compatible = "ti,omap-infra";
47                 mpu {
48                         compatible = "ti,omap3-mpu";
49                         ti,hwmods = "mpu";
50                 };
51         };
52
53         /*
54          * XXX: Use a flat representation of the dm816x interconnect.
55          * The real dm816x interconnect network is quite complex. Since
56          * it will not bring real advantage to represent that in DT
57          * for the moment, just use a fake OCP bus entry to represent
58          * the whole bus hierarchy.
59          */
60         ocp {
61                 compatible = "simple-bus";
62                 reg = <0x44000000 0x10000>;
63                 interrupts = <9 10>;
64                 #address-cells = <1>;
65                 #size-cells = <1>;
66                 ranges;
67
68                 prcm: prcm@48180000 {
69                         compatible = "ti,dm816-prcm";
70                         reg = <0x48180000 0x4000>;
71
72                         prcm_clocks: clocks {
73                                 #address-cells = <1>;
74                                 #size-cells = <0>;
75                         };
76
77                         prcm_clockdomains: clockdomains {
78                         };
79                 };
80
81                 scrm: scrm@48140000 {
82                         compatible = "ti,dm816-scrm", "simple-bus";
83                         reg = <0x48140000 0x21000>;
84                         #address-cells = <1>;
85                         #size-cells = <1>;
86                         ranges = <0 0x48140000 0x21000>;
87
88                         dm816x_pinmux: pinmux@800 {
89                                 compatible = "pinctrl-single";
90                                 reg = <0x800 0x50a>;
91                                 #address-cells = <1>;
92                                 #size-cells = <0>;
93                                 pinctrl-single,register-width = <16>;
94                                 pinctrl-single,function-mask = <0xf>;
95                         };
96
97                         /* Device Configuration Registers */
98                         scm_conf: syscon@600 {
99                                 compatible = "syscon", "simple-bus";
100                                 reg = <0x600 0x110>;
101                                 #address-cells = <1>;
102                                 #size-cells = <1>;
103                                 ranges = <0 0x600 0x110>;
104
105                                 usb_phy0: usb-phy@20 {
106                                         compatible = "ti,dm8168-usb-phy";
107                                         reg = <0x20 0x8>;
108                                         reg-names = "phy";
109                                         clocks = <&main_fapll 6>;
110                                         clock-names = "refclk";
111                                         #phy-cells = <0>;
112                                         syscon = <&scm_conf>;
113                                 };
114
115                                 usb_phy1: usb-phy@28 {
116                                         compatible = "ti,dm8168-usb-phy";
117                                         reg = <0x28 0x8>;
118                                         reg-names = "phy";
119                                         clocks = <&main_fapll 6>;
120                                         clock-names = "refclk";
121                                         #phy-cells = <0>;
122                                         syscon = <&scm_conf>;
123                                 };
124                         };
125
126                         scrm_clocks: clocks {
127                                 #address-cells = <1>;
128                                 #size-cells = <0>;
129                         };
130
131                         scrm_clockdomains: clockdomains {
132                         };
133                 };
134
135                 edma: edma@49000000 {
136                         compatible = "ti,edma3";
137                         ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3";
138                         reg =   <0x49000000 0x10000>,
139                                 <0x44e10f90 0x40>;
140                         interrupts = <12 13 14>;
141                         #dma-cells = <1>;
142                 };
143
144                 elm: elm@48080000 {
145                         compatible = "ti,816-elm";
146                         ti,hwmods = "elm";
147                         reg = <0x48080000 0x2000>;
148                         interrupts = <4>;
149                 };
150
151                 gpio1: gpio@48032000 {
152                         compatible = "ti,omap4-gpio";
153                         ti,hwmods = "gpio1";
154                         ti,gpio-always-on;
155                         reg = <0x48032000 0x1000>;
156                         interrupts = <96>;
157                         gpio-controller;
158                         #gpio-cells = <2>;
159                         interrupt-controller;
160                         #interrupt-cells = <2>;
161                 };
162
163                 gpio2: gpio@4804c000 {
164                         compatible = "ti,omap4-gpio";
165                         ti,hwmods = "gpio2";
166                         ti,gpio-always-on;
167                         reg = <0x4804c000 0x1000>;
168                         interrupts = <98>;
169                         gpio-controller;
170                         #gpio-cells = <2>;
171                         interrupt-controller;
172                         #interrupt-cells = <2>;
173                 };
174
175                 gpmc: gpmc@50000000 {
176                         compatible = "ti,am3352-gpmc";
177                         ti,hwmods = "gpmc";
178                         reg = <0x50000000 0x2000>;
179                         #address-cells = <2>;
180                         #size-cells = <1>;
181                         interrupts = <100>;
182                         dmas = <&edma 52>;
183                         dma-names = "rxtx";
184                         gpmc,num-cs = <6>;
185                         gpmc,num-waitpins = <2>;
186                         interrupt-controller;
187                         #interrupt-cells = <2>;
188                 };
189
190                 i2c1: i2c@48028000 {
191                         compatible = "ti,omap4-i2c";
192                         ti,hwmods = "i2c1";
193                         reg = <0x48028000 0x1000>;
194                         #address-cells = <1>;
195                         #size-cells = <0>;
196                         interrupts = <70>;
197                         dmas = <&edma 58 &edma 59>;
198                         dma-names = "tx", "rx";
199                 };
200
201                 i2c2: i2c@4802a000 {
202                         compatible = "ti,omap4-i2c";
203                         ti,hwmods = "i2c2";
204                         reg = <0x4802a000 0x1000>;
205                         #address-cells = <1>;
206                         #size-cells = <0>;
207                         interrupts = <71>;
208                         dmas = <&edma 60 &edma 61>;
209                         dma-names = "tx", "rx";
210                 };
211
212                 intc: interrupt-controller@48200000 {
213                         compatible = "ti,dm816-intc";
214                         interrupt-controller;
215                         #interrupt-cells = <1>;
216                         reg = <0x48200000 0x1000>;
217                 };
218
219                 rtc: rtc@480c0000 {
220                         compatible = "ti,am3352-rtc", "ti,da830-rtc";
221                         reg = <0x480c0000 0x1000>;
222                         interrupts = <75 76>;
223                         ti,hwmods = "rtc";
224                 };
225
226                 mailbox: mailbox@480c8000 {
227                         compatible = "ti,omap4-mailbox";
228                         reg = <0x480c8000 0x2000>;
229                         interrupts = <77>;
230                         ti,hwmods = "mailbox";
231                         #mbox-cells = <1>;
232                         ti,mbox-num-users = <4>;
233                         ti,mbox-num-fifos = <12>;
234                         mbox_dsp: mbox_dsp {
235                                 ti,mbox-tx = <3 0 0>;
236                                 ti,mbox-rx = <0 0 0>;
237                         };
238                 };
239
240                 spinbox: spinbox@480ca000 {
241                         compatible = "ti,omap4-hwspinlock";
242                         reg = <0x480ca000 0x2000>;
243                         ti,hwmods = "spinbox";
244                         #hwlock-cells = <1>;
245                 };
246
247                 mdio: mdio@4a100800 {
248                         compatible = "ti,davinci_mdio";
249                         #address-cells = <1>;
250                         #size-cells = <0>;
251                         reg = <0x4a100800 0x100>;
252                         ti,hwmods = "davinci_mdio";
253                         bus_freq = <1000000>;
254                         phy0: ethernet-phy@0 {
255                                 reg = <1>;
256                         };
257                         phy1: ethernet-phy@1 {
258                                 reg = <2>;
259                         };
260                 };
261
262                 eth0: ethernet@4a100000 {
263                         compatible = "ti,dm816-emac";
264                         ti,hwmods = "emac0";
265                         reg = <0x4a100000 0x800
266                                0x4a100900 0x3700>;
267                         clocks = <&sysclk24_ck>;
268                         syscon = <&scm_conf>;
269                         ti,davinci-ctrl-reg-offset = <0>;
270                         ti,davinci-ctrl-mod-reg-offset = <0x900>;
271                         ti,davinci-ctrl-ram-offset = <0x2000>;
272                         ti,davinci-ctrl-ram-size = <0x2000>;
273                         interrupts = <40 41 42 43>;
274                         phy-handle = <&phy0>;
275                 };
276
277                 eth1: ethernet@4a120000 {
278                         compatible = "ti,dm816-emac";
279                         ti,hwmods = "emac1";
280                         reg = <0x4a120000 0x4000>;
281                         clocks = <&sysclk24_ck>;
282                         syscon = <&scm_conf>;
283                         ti,davinci-ctrl-reg-offset = <0>;
284                         ti,davinci-ctrl-mod-reg-offset = <0x900>;
285                         ti,davinci-ctrl-ram-offset = <0x2000>;
286                         ti,davinci-ctrl-ram-size = <0x2000>;
287                         interrupts = <44 45 46 47>;
288                         phy-handle = <&phy1>;
289                 };
290
291                 mcspi1: spi@48030000 {
292                         compatible = "ti,omap4-mcspi";
293                         reg = <0x48030000 0x1000>;
294                         #address-cells = <1>;
295                         #size-cells = <0>;
296                         interrupts = <65>;
297                         ti,spi-num-cs = <4>;
298                         ti,hwmods = "mcspi1";
299                         dmas = <&edma 16 &edma 17
300                                 &edma 18 &edma 19
301                                 &edma 20 &edma 21
302                                 &edma 22 &edma 23>;
303                         dma-names = "tx0", "rx0", "tx1", "rx1",
304                                     "tx2", "rx2", "tx3", "rx3";
305                 };
306
307                 mmc1: mmc@48060000 {
308                         compatible = "ti,omap4-hsmmc";
309                         reg = <0x48060000 0x11000>;
310                         ti,hwmods = "mmc1";
311                         interrupts = <64>;
312                         dmas = <&edma 24 &edma 25>;
313                         dma-names = "tx", "rx";
314                 };
315
316                 timer1: timer@4802e000 {
317                         compatible = "ti,dm816-timer";
318                         reg = <0x4802e000 0x2000>;
319                         interrupts = <67>;
320                         ti,hwmods = "timer1";
321                         ti,timer-alwon;
322                 };
323
324                 timer2: timer@48040000 {
325                         compatible = "ti,dm816-timer";
326                         reg = <0x48040000 0x2000>;
327                         interrupts = <68>;
328                         ti,hwmods = "timer2";
329                 };
330
331                 timer3: timer@48042000 {
332                         compatible = "ti,dm816-timer";
333                         reg = <0x48042000 0x2000>;
334                         interrupts = <69>;
335                         ti,hwmods = "timer3";
336                 };
337
338                 timer4: timer@48044000 {
339                         compatible = "ti,dm816-timer";
340                         reg = <0x48044000 0x2000>;
341                         interrupts = <92>;
342                         ti,hwmods = "timer4";
343                         ti,timer-pwm;
344                 };
345
346                 timer5: timer@48046000 {
347                         compatible = "ti,dm816-timer";
348                         reg = <0x48046000 0x2000>;
349                         interrupts = <93>;
350                         ti,hwmods = "timer5";
351                         ti,timer-pwm;
352                 };
353
354                 timer6: timer@48048000 {
355                         compatible = "ti,dm816-timer";
356                         reg = <0x48048000 0x2000>;
357                         interrupts = <94>;
358                         ti,hwmods = "timer6";
359                         ti,timer-pwm;
360                 };
361
362                 timer7: timer@4804a000 {
363                         compatible = "ti,dm816-timer";
364                         reg = <0x4804a000 0x2000>;
365                         interrupts = <95>;
366                         ti,hwmods = "timer7";
367                         ti,timer-pwm;
368                 };
369
370                 uart1: uart@48020000 {
371                         compatible = "ti,omap3-uart";
372                         ti,hwmods = "uart1";
373                         reg = <0x48020000 0x2000>;
374                         clock-frequency = <48000000>;
375                         interrupts = <72>;
376                         dmas = <&edma 26 &edma 27>;
377                         dma-names = "tx", "rx";
378                 };
379
380                 uart2: uart@48022000 {
381                         compatible = "ti,omap3-uart";
382                         ti,hwmods = "uart2";
383                         reg = <0x48022000 0x2000>;
384                         clock-frequency = <48000000>;
385                         interrupts = <73>;
386                         dmas = <&edma 28 &edma 29>;
387                         dma-names = "tx", "rx";
388                 };
389
390                 uart3: uart@48024000 {
391                         compatible = "ti,omap3-uart";
392                         ti,hwmods = "uart3";
393                         reg = <0x48024000 0x2000>;
394                         clock-frequency = <48000000>;
395                         interrupts = <74>;
396                         dmas = <&edma 30 &edma 31>;
397                         dma-names = "tx", "rx";
398                 };
399
400                 /* NOTE: USB needs a transceiver driver for phys to work */
401                 usb: usb_otg_hs@47401000 {
402                         compatible = "ti,am33xx-usb";
403                         reg = <0x47401000 0x400000>;
404                         ranges;
405                         #address-cells = <1>;
406                         #size-cells = <1>;
407                         ti,hwmods = "usb_otg_hs";
408
409                         usb0: usb@47401000 {
410                                 compatible = "ti,musb-dm816";
411                                 reg = <0x47401400 0x400
412                                        0x47401000 0x200>;
413                                 reg-names = "mc", "control";
414                                 interrupts = <18>;
415                                 interrupt-names = "mc";
416                                 dr_mode = "host";
417                                 interface-type = <0>;
418                                 phys = <&usb_phy0>;
419                                 phy-names = "usb2-phy";
420                                 mentor,multipoint = <1>;
421                                 mentor,num-eps = <16>;
422                                 mentor,ram-bits = <12>;
423                                 mentor,power = <500>;
424
425                                 dmas = <&cppi41dma  0 0 &cppi41dma  1 0
426                                         &cppi41dma  2 0 &cppi41dma  3 0
427                                         &cppi41dma  4 0 &cppi41dma  5 0
428                                         &cppi41dma  6 0 &cppi41dma  7 0
429                                         &cppi41dma  8 0 &cppi41dma  9 0
430                                         &cppi41dma 10 0 &cppi41dma 11 0
431                                         &cppi41dma 12 0 &cppi41dma 13 0
432                                         &cppi41dma 14 0 &cppi41dma  0 1
433                                         &cppi41dma  1 1 &cppi41dma  2 1
434                                         &cppi41dma  3 1 &cppi41dma  4 1
435                                         &cppi41dma  5 1 &cppi41dma  6 1
436                                         &cppi41dma  7 1 &cppi41dma  8 1
437                                         &cppi41dma  9 1 &cppi41dma 10 1
438                                         &cppi41dma 11 1 &cppi41dma 12 1
439                                         &cppi41dma 13 1 &cppi41dma 14 1>;
440                                 dma-names =
441                                         "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
442                                         "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
443                                         "rx14", "rx15",
444                                         "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
445                                         "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
446                                         "tx14", "tx15";
447                         };
448
449                         usb1: usb@47401800 {
450                                 compatible = "ti,musb-dm816";
451                                 reg = <0x47401c00 0x400
452                                        0x47401800 0x200>;
453                                 reg-names = "mc", "control";
454                                 interrupts = <19>;
455                                 interrupt-names = "mc";
456                                 dr_mode = "host";
457                                 interface-type = <0>;
458                                 phys = <&usb_phy1>;
459                                 phy-names = "usb2-phy";
460                                 mentor,multipoint = <1>;
461                                 mentor,num-eps = <16>;
462                                 mentor,ram-bits = <12>;
463                                 mentor,power = <500>;
464
465                                 dmas = <&cppi41dma 15 0 &cppi41dma 16 0
466                                         &cppi41dma 17 0 &cppi41dma 18 0
467                                         &cppi41dma 19 0 &cppi41dma 20 0
468                                         &cppi41dma 21 0 &cppi41dma 22 0
469                                         &cppi41dma 23 0 &cppi41dma 24 0
470                                         &cppi41dma 25 0 &cppi41dma 26 0
471                                         &cppi41dma 27 0 &cppi41dma 28 0
472                                         &cppi41dma 29 0 &cppi41dma 15 1
473                                         &cppi41dma 16 1 &cppi41dma 17 1
474                                         &cppi41dma 18 1 &cppi41dma 19 1
475                                         &cppi41dma 20 1 &cppi41dma 21 1
476                                         &cppi41dma 22 1 &cppi41dma 23 1
477                                         &cppi41dma 24 1 &cppi41dma 25 1
478                                         &cppi41dma 26 1 &cppi41dma 27 1
479                                         &cppi41dma 28 1 &cppi41dma 29 1>;
480                                 dma-names =
481                                         "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7",
482                                         "rx8", "rx9", "rx10", "rx11", "rx12", "rx13",
483                                         "rx14", "rx15",
484                                         "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7",
485                                         "tx8", "tx9", "tx10", "tx11", "tx12", "tx13",
486                                         "tx14", "tx15";
487                         };
488
489                         cppi41dma: dma-controller@47402000 {
490                                 compatible = "ti,am3359-cppi41";
491                                 reg =  <0x47400000 0x1000
492                                         0x47402000 0x1000
493                                         0x47403000 0x1000
494                                         0x47404000 0x4000>;
495                                 reg-names = "glue", "controller", "scheduler", "queuemgr";
496                                 interrupts = <17>;
497                                 interrupt-names = "glue";
498                                 #dma-cells = <2>;
499                                 #dma-channels = <30>;
500                                 #dma-requests = <256>;
501                         };
502                 };
503
504                 wd_timer2: wd_timer@480c2000 {
505                         compatible = "ti,omap3-wdt";
506                         ti,hwmods = "wd_timer";
507                         reg = <0x480c2000 0x1000>;
508                         interrupts = <0>;
509                 };
510         };
511 };
512
513 #include "dm816x-clocks.dtsi"