Merge branch 'master' of git://git.denx.de/u-boot
[oweals/u-boot.git] / arch / arm / dts / keystone-k2g-netcp.dtsi
1 /*
2  * Device Tree Source for K2G 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@4020000 {
12         compatible = "ti,keystone-navigator-qmss-l";
13         dma-coherent;
14         #address-cells = <1>;
15         #size-cells = <1>;
16         /* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
17         /* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_VCLK>; */
18         clock-names = "nss_vclk";
19         ranges;
20         queue-range     = <0 0x80>;
21         linkram0        = <0x4020000 0x7ff>;
22
23         qmgrs {
24                 #address-cells = <1>;
25                 #size-cells = <1>;
26                 ranges;
27                 qmgr0 {
28                         managed-queues = <0 0x80>;
29                         reg = <0x4100000 0x800>,
30                               <0x4040000 0x100>,
31                               <0x4080000 0x800>,
32                               <0x40c0000 0x800>;
33                         reg-names = "peek", "config",
34                                     "region", "push";
35                 };
36
37         };
38         queue-pools {
39                 qpend {
40                         qpend-0 {
41                                 qrange = <77 8>;
42                                 interrupts =<0 308 0xf04 0 309 0xf04 0 310 0xf04
43                                              0 311 0xf04 0 312 0xf04 0 313 0xf04
44                                              0 314 0xf04 0 315 0xf04>;
45                                 qalloc-by-id;
46                         };
47                 };
48                 general-purpose {
49                         gp-0 {
50                                 qrange = <112 8>;
51                         };
52                         netcp-tx {
53                                 qrange = <5 8>;
54                                 qalloc-by-id;
55                         };
56                 };
57         };
58
59         descriptor-regions {
60                 #address-cells = <1>;
61                 #size-cells = <1>;
62                 ranges;
63                 region-12 {
64                         id = <12>;
65                         region-spec = <1023 128>; /* num_desc desc_size */
66                         link-index = <0x400>;
67                 };
68         };
69 }; /* qmss */
70
71 knav_dmas: knav_dmas@0 {
72         compatible = "ti,keystone-navigator-dma";
73         #address-cells = <1>;
74         #size-cells = <1>;
75         /* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
76         /* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_VCLK>; */
77         clock-names = "nss_vclk";
78         ranges;
79         ti,navigator-cloud-address = <0x40c0000 0x40c0000 0x40c0000 0x40c0000>;
80
81         dma_gbe: dma_gbe@0 {
82                 reg = <0x4010000 0x100>,
83                           <0x4011000 0x2a0>, /* 21 Tx channels */
84                           <0x4012000 0x400>, /* 32 Rx channels */
85                           <0x4010100 0x80>,
86                           <0x4013000 0x400>; /* 32 Rx flows */
87                 reg-names = "global", "txchan", "rxchan",
88                                 "txsched", "rxflow";
89         };
90
91 };
92
93 gbe_subsys: subsys@4200000 {
94         compatible = "syscon";
95         reg = <0x4200000 0x100>;
96 };
97
98 netcp: netcp@4000000 {
99         reg = <0x2620110 0x8>;
100         reg-names = "efuse";
101         compatible = "ti,netcp-1.0";
102         status = "disabled";
103         #address-cells = <1>;
104         #size-cells = <1>;
105         /* power-domains = <&k2g_pds K2G_DEV_NSS0>; */
106         /* clocks = <&k2g_clks K2G_DEV_NSS0 K2G_DEV_NSS_ESW_CLK>; */
107         clock-names = "ethss_clk";
108
109         /* NetCP address range */
110         ranges = <0 0x4000000 0x1000000>;
111
112         dma-coherent;
113
114         ti,navigator-dmas = <&dma_gbe 0>, <&dma_gbe 5>;
115         ti,navigator-dma-names = "netrx0", "nettx";
116
117         netcp-devices {
118                 #address-cells = <1>;
119                 #size-cells = <1>;
120                 ranges;
121                 gbe@200000 {
122                         label = "netcp-gbe";
123                         compatible = "ti,netcp-gbe-2";
124                         syscon-subsys = <&gbe_subsys>;
125                         reg = <0x200100 0xe00>, <0x220000 0x20000>;
126                         /* enable-ale; */
127                         tx-queue = <5>;
128                         tx-channel = "nettx";
129
130                         interfaces {
131                                 gbe0: interface-0 {
132                                         slave-port = <0>;
133                                         link-interface  = <5>;
134                                 };
135                         };
136                 };
137         };
138
139         netcp-interfaces {
140                 interface-0 {
141                         rx-channel = "netrx0";
142                         rx-pool = <512 12>;
143                         tx-pool = <511 12>;
144                         rx-queue-depth = <128 128 0 0>;
145                         rx-buffer-size = <1518 4096 0 0>;
146                         rx-queue = <77>;
147                         tx-completion-queue = <78>;
148                         efuse-mac = <1>;
149                         netcp-gbe = <&gbe0>;
150                 };
151         };
152 };