]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/arm/boot/dts/k2hk-netcp.dtsi
Merge remote-tracking branch 'tip/auto-latest'
[karo-tx-linux.git] / arch / arm / boot / dts / k2hk-netcp.dtsi
1 /*
2  * Device Tree Source for Keystone 2 Hawking Netcp driver
3  *
4  * Copyright 2015 Texas Instruments, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10
11 qmss: qmss@2a40000 {
12         compatible = "ti,keystone-navigator-qmss";
13         dma-coherent;
14         #address-cells = <1>;
15         #size-cells = <1>;
16         clocks = <&chipclk13>;
17         ranges;
18         queue-range     = <0 0x4000>;
19         linkram0        = <0x100000 0x8000>;
20         linkram1        = <0x0 0x10000>;
21
22         qmgrs {
23                 #address-cells = <1>;
24                 #size-cells = <1>;
25                 ranges;
26                 qmgr0 {
27                         managed-queues = <0 0x2000>;
28                         reg = <0x2a40000 0x20000>,
29                               <0x2a06000 0x400>,
30                               <0x2a02000 0x1000>,
31                               <0x2a03000 0x1000>,
32                               <0x23a80000 0x20000>,
33                               <0x2a80000 0x20000>;
34                         reg-names = "peek", "status", "config",
35                                     "region", "push", "pop";
36                 };
37
38                 qmgr1 {
39                         managed-queues = <0x2000 0x2000>;
40                         reg = <0x2a60000 0x20000>,
41                               <0x2a06400 0x400>,
42                               <0x2a04000 0x1000>,
43                               <0x2a05000 0x1000>,
44                               <0x23aa0000 0x20000>,
45                               <0x2aa0000 0x20000>;
46                         reg-names = "peek", "status", "config",
47                                     "region", "push", "pop";
48                 };
49         };
50
51         queue-pools {
52                 qpend {
53                         qpend-0 {
54                                 qrange = <658 8>;
55                                 interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04
56                                              0 43 0xf04 0 44 0xf04 0 45 0xf04
57                                              0 46 0xf04 0 47 0xf04>;
58                         };
59                         qpend-1 {
60                                 qrange = <8704 16>;
61                                 interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04
62                                               0 51 0xf04 0 52 0xf04 0 53 0xf04
63                                               0 54 0xf04 0 55 0xf04 0 56 0xf04
64                                               0 57 0xf04 0 58 0xf04 0 59 0xf04
65                                               0 60 0xf04 0 61 0xf04 0 62 0xf04
66                                               0 63 0xf04>;
67                                 qalloc-by-id;
68                         };
69                         qpend-2 {
70                                 qrange = <8720 16>;
71                                 interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04
72                                               0 59 0xf04 0 68 0xf04 0 69 0xf04
73                                               0 70 0xf04 0 71 0xf04 0 72 0xf04
74                                               0 73 0xf04 0 74 0xf04 0 75 0xf04
75                                               0 76 0xf04 0 77 0xf04 0 78 0xf04
76                                               0 79 0xf04>;
77                         };
78                 };
79                 general-purpose {
80                         gp-0 {
81                                 qrange = <4000 64>;
82                         };
83                         netcp-tx {
84                                 qrange = <640 9>;
85                                 qalloc-by-id;
86                         };
87                         netcpx-tx {
88                                 qrange = <8752 8>;
89                                 qalloc-by-id;
90                         };
91                 };
92                 accumulator {
93                         acc-low-0 {
94                                 qrange = <480 32>;
95                                 accumulator = <0 47 16 2 50>;
96                                 interrupts = <0 226 0xf01>;
97                                 multi-queue;
98                                 qalloc-by-id;
99                         };
100                 };
101         };
102
103         descriptor-regions {
104                 #address-cells = <1>;
105                 #size-cells = <1>;
106                 ranges;
107                 region-12 {
108                         id = <12>;
109                         region-spec = <8192 128>;       /* num_desc desc_size */
110                         link-index = <0x4000>;
111                 };
112         };
113
114         pdsps {
115                 #address-cells = <1>;
116                 #size-cells = <1>;
117                 ranges;
118                 pdsp0@0x2a10000 {
119                         reg = <0x2a10000 0x1000    /*iram */
120                                0x2a0f000 0x100     /*reg*/
121                                0x2a0c000 0x3c8     /*intd */
122                                0x2a20000 0x4000>;  /*cmd*/
123                         id = <0>;
124                 };
125         };
126 }; /* qmss */
127
128 knav_dmas: knav_dmas@0 {
129         compatible = "ti,keystone-navigator-dma";
130         clocks = <&papllclk>;
131         #address-cells = <1>;
132         #size-cells = <1>;
133         ranges;
134         ti,navigator-cloud-address = <0x23a80000 0x23a90000
135                                    0x23aa0000 0x23ab0000>;
136
137         dma_gbe: dma_gbe@0 {
138                 reg = <0x2004000 0x100>,
139                           <0x2004400 0x120>,
140                           <0x2004800 0x300>,
141                           <0x2004c00 0x120>,
142                           <0x2005000 0x400>;
143                 reg-names = "global", "txchan", "rxchan",
144                                 "txsched", "rxflow";
145         };
146 };
147
148 netcp: netcp@2000000 {
149         reg = <0x2620110 0x8>;
150         reg-names = "efuse";
151         compatible = "ti,netcp-1.0";
152         #address-cells = <1>;
153         #size-cells = <1>;
154
155         /* NetCP address range */
156         ranges  = <0 0x2000000 0x100000>;
157
158         clocks = <&papllclk>, <&clkcpgmac>, <&chipclk12>;
159         dma-coherent;
160
161         ti,navigator-dmas = <&dma_gbe 22>,
162                         <&dma_gbe 23>,
163                         <&dma_gbe 8>;
164         ti,navigator-dma-names = "netrx0", "netrx1", "nettx";
165
166         netcp-devices {
167                 ranges;
168                 #address-cells = <1>;
169                 #size-cells = <1>;
170                 gbe@90000 { /* ETHSS */
171                         #address-cells = <1>;
172                         #size-cells = <1>;
173                         label = "netcp-gbe";
174                         compatible = "ti,netcp-gbe";
175                         reg = <0x90000 0x300>, <0x90400 0x400>, <0x90800 0x700>;
176                         /* enable-ale; */
177                         tx-queue = <648>;
178                         tx-channel = "nettx";
179
180                         interfaces {
181                                 gbe0: interface-0 {
182                                         slave-port = <0>;
183                                         link-interface = <1>;
184                                         phy-handle = <&ethphy0>;
185                                 };
186                                 gbe1: interface-1 {
187                                         slave-port = <1>;
188                                         link-interface = <1>;
189                                         phy-handle = <&ethphy1>;
190                                 };
191                         };
192
193                         secondary-slave-ports {
194                                 port-2 {
195                                         slave-port = <2>;
196                                         link-interface  = <2>;
197                                 };
198                                 port-3 {
199                                         slave-port = <3>;
200                                         link-interface  = <2>;
201                                 };
202                         };
203                 };
204         };
205
206         netcp-interfaces {
207                 interface-0 {
208                         rx-channel = "netrx0";
209                         rx-pool = <1024 12>;
210                         tx-pool = <1024 12>;
211                         rx-queue-depth = <128 128 0 0>;
212                         rx-buffer-size = <1518 4096 0 0>;
213                         rx-queue = <8704>;
214                         tx-completion-queue = <8706>;
215                         efuse-mac = <1>;
216                         netcp-gbe = <&gbe0>;
217
218                 };
219                 interface-1 {
220                         rx-channel = "netrx1";
221                         rx-pool = <1024 12>;
222                         tx-pool = <1024 12>;
223                         rx-queue-depth = <128 128 0 0>;
224                         rx-buffer-size = <1518 4096 0 0>;
225                         rx-queue = <8705>;
226                         tx-completion-queue = <8707>;
227                         efuse-mac = <0>;
228                         local-mac-address = [02 18 31 7e 3e 6f];
229                         netcp-gbe = <&gbe1>;
230                 };
231         };
232 };