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