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