1 1.1.1.2 jmcneill // SPDX-License-Identifier: GPL-2.0 2 1.1 jmcneill /* 3 1.1 jmcneill * Device Tree Source for Keystone 2 Hawking Netcp driver 4 1.1 jmcneill * 5 1.1.1.2 jmcneill * Copyright (C) 2015-2017 Texas Instruments Incorporated - http://www.ti.com/ 6 1.1 jmcneill */ 7 1.1 jmcneill 8 1.1 jmcneill qmss: qmss@2a40000 { 9 1.1 jmcneill compatible = "ti,keystone-navigator-qmss"; 10 1.1 jmcneill dma-coherent; 11 1.1 jmcneill #address-cells = <1>; 12 1.1 jmcneill #size-cells = <1>; 13 1.1 jmcneill clocks = <&chipclk13>; 14 1.1 jmcneill ranges; 15 1.1 jmcneill queue-range = <0 0x4000>; 16 1.1 jmcneill linkram0 = <0x100000 0x8000>; 17 1.1 jmcneill linkram1 = <0x0 0x10000>; 18 1.1 jmcneill 19 1.1 jmcneill qmgrs { 20 1.1 jmcneill #address-cells = <1>; 21 1.1 jmcneill #size-cells = <1>; 22 1.1 jmcneill ranges; 23 1.1 jmcneill qmgr0 { 24 1.1 jmcneill managed-queues = <0 0x2000>; 25 1.1 jmcneill reg = <0x2a40000 0x20000>, 26 1.1 jmcneill <0x2a06000 0x400>, 27 1.1 jmcneill <0x2a02000 0x1000>, 28 1.1 jmcneill <0x2a03000 0x1000>, 29 1.1 jmcneill <0x23a80000 0x20000>, 30 1.1 jmcneill <0x2a80000 0x20000>; 31 1.1 jmcneill reg-names = "peek", "status", "config", 32 1.1 jmcneill "region", "push", "pop"; 33 1.1 jmcneill }; 34 1.1 jmcneill 35 1.1 jmcneill qmgr1 { 36 1.1 jmcneill managed-queues = <0x2000 0x2000>; 37 1.1 jmcneill reg = <0x2a60000 0x20000>, 38 1.1 jmcneill <0x2a06400 0x400>, 39 1.1 jmcneill <0x2a04000 0x1000>, 40 1.1 jmcneill <0x2a05000 0x1000>, 41 1.1 jmcneill <0x23aa0000 0x20000>, 42 1.1 jmcneill <0x2aa0000 0x20000>; 43 1.1 jmcneill reg-names = "peek", "status", "config", 44 1.1 jmcneill "region", "push", "pop"; 45 1.1 jmcneill }; 46 1.1 jmcneill }; 47 1.1 jmcneill 48 1.1 jmcneill queue-pools { 49 1.1 jmcneill qpend { 50 1.1 jmcneill qpend-0 { 51 1.1 jmcneill qrange = <658 8>; 52 1.1 jmcneill interrupts =<0 40 0xf04 0 41 0xf04 0 42 0xf04 53 1.1 jmcneill 0 43 0xf04 0 44 0xf04 0 45 0xf04 54 1.1 jmcneill 0 46 0xf04 0 47 0xf04>; 55 1.1 jmcneill }; 56 1.1 jmcneill qpend-1 { 57 1.1 jmcneill qrange = <8704 16>; 58 1.1 jmcneill interrupts = <0 48 0xf04 0 49 0xf04 0 50 0xf04 59 1.1 jmcneill 0 51 0xf04 0 52 0xf04 0 53 0xf04 60 1.1 jmcneill 0 54 0xf04 0 55 0xf04 0 56 0xf04 61 1.1 jmcneill 0 57 0xf04 0 58 0xf04 0 59 0xf04 62 1.1 jmcneill 0 60 0xf04 0 61 0xf04 0 62 0xf04 63 1.1 jmcneill 0 63 0xf04>; 64 1.1 jmcneill qalloc-by-id; 65 1.1 jmcneill }; 66 1.1 jmcneill qpend-2 { 67 1.1 jmcneill qrange = <8720 16>; 68 1.1 jmcneill interrupts = <0 64 0xf04 0 65 0xf04 0 66 0xf04 69 1.1 jmcneill 0 59 0xf04 0 68 0xf04 0 69 0xf04 70 1.1 jmcneill 0 70 0xf04 0 71 0xf04 0 72 0xf04 71 1.1 jmcneill 0 73 0xf04 0 74 0xf04 0 75 0xf04 72 1.1 jmcneill 0 76 0xf04 0 77 0xf04 0 78 0xf04 73 1.1 jmcneill 0 79 0xf04>; 74 1.1 jmcneill }; 75 1.1 jmcneill }; 76 1.1 jmcneill general-purpose { 77 1.1 jmcneill gp-0 { 78 1.1 jmcneill qrange = <4000 64>; 79 1.1 jmcneill }; 80 1.1 jmcneill netcp-tx { 81 1.1 jmcneill qrange = <640 9>; 82 1.1 jmcneill qalloc-by-id; 83 1.1 jmcneill }; 84 1.1 jmcneill netcpx-tx { 85 1.1 jmcneill qrange = <8752 8>; 86 1.1 jmcneill qalloc-by-id; 87 1.1 jmcneill }; 88 1.1 jmcneill }; 89 1.1 jmcneill accumulator { 90 1.1 jmcneill acc-low-0 { 91 1.1 jmcneill qrange = <480 32>; 92 1.1 jmcneill accumulator = <0 47 16 2 50>; 93 1.1 jmcneill interrupts = <0 226 0xf01>; 94 1.1 jmcneill multi-queue; 95 1.1 jmcneill qalloc-by-id; 96 1.1 jmcneill }; 97 1.1 jmcneill }; 98 1.1 jmcneill }; 99 1.1 jmcneill 100 1.1 jmcneill descriptor-regions { 101 1.1 jmcneill #address-cells = <1>; 102 1.1 jmcneill #size-cells = <1>; 103 1.1 jmcneill ranges; 104 1.1 jmcneill region-12 { 105 1.1 jmcneill id = <12>; 106 1.1 jmcneill region-spec = <8192 128>; /* num_desc desc_size */ 107 1.1 jmcneill link-index = <0x4000>; 108 1.1 jmcneill }; 109 1.1 jmcneill }; 110 1.1 jmcneill 111 1.1 jmcneill pdsps { 112 1.1 jmcneill #address-cells = <1>; 113 1.1 jmcneill #size-cells = <1>; 114 1.1 jmcneill ranges; 115 1.1.1.5 jmcneill pdsp0@2a10000 { 116 1.1 jmcneill reg = <0x2a10000 0x1000 /*iram */ 117 1.1 jmcneill 0x2a0f000 0x100 /*reg*/ 118 1.1 jmcneill 0x2a0c000 0x3c8 /*intd */ 119 1.1 jmcneill 0x2a20000 0x4000>; /*cmd*/ 120 1.1 jmcneill id = <0>; 121 1.1 jmcneill }; 122 1.1 jmcneill }; 123 1.1 jmcneill }; /* qmss */ 124 1.1 jmcneill 125 1.1 jmcneill knav_dmas: knav_dmas@0 { 126 1.1 jmcneill compatible = "ti,keystone-navigator-dma"; 127 1.1 jmcneill clocks = <&papllclk>; 128 1.1 jmcneill #address-cells = <1>; 129 1.1 jmcneill #size-cells = <1>; 130 1.1 jmcneill ranges; 131 1.1 jmcneill ti,navigator-cloud-address = <0x23a80000 0x23a90000 132 1.1 jmcneill 0x23aa0000 0x23ab0000>; 133 1.1 jmcneill 134 1.1 jmcneill dma_gbe: dma_gbe@0 { 135 1.1 jmcneill reg = <0x2004000 0x100>, 136 1.1 jmcneill <0x2004400 0x120>, 137 1.1 jmcneill <0x2004800 0x300>, 138 1.1 jmcneill <0x2004c00 0x120>, 139 1.1 jmcneill <0x2005000 0x400>; 140 1.1 jmcneill reg-names = "global", "txchan", "rxchan", 141 1.1 jmcneill "txsched", "rxflow"; 142 1.1 jmcneill }; 143 1.1 jmcneill }; 144 1.1 jmcneill 145 1.1 jmcneill netcp: netcp@2000000 { 146 1.1 jmcneill reg = <0x2620110 0x8>; 147 1.1 jmcneill reg-names = "efuse"; 148 1.1 jmcneill compatible = "ti,netcp-1.0"; 149 1.1 jmcneill #address-cells = <1>; 150 1.1 jmcneill #size-cells = <1>; 151 1.1 jmcneill 152 1.1 jmcneill /* NetCP address range */ 153 1.1 jmcneill ranges = <0 0x2000000 0x100000>; 154 1.1 jmcneill 155 1.1.1.4 skrll clocks = <&clkpa>, <&clkcpgmac>; 156 1.1.1.4 skrll clock-names = "pa_clk", "ethss_clk"; 157 1.1 jmcneill dma-coherent; 158 1.1 jmcneill 159 1.1 jmcneill ti,navigator-dmas = <&dma_gbe 22>, 160 1.1 jmcneill <&dma_gbe 23>, 161 1.1 jmcneill <&dma_gbe 8>; 162 1.1 jmcneill ti,navigator-dma-names = "netrx0", "netrx1", "nettx"; 163 1.1 jmcneill 164 1.1 jmcneill netcp-devices { 165 1.1 jmcneill ranges; 166 1.1 jmcneill #address-cells = <1>; 167 1.1 jmcneill #size-cells = <1>; 168 1.1 jmcneill gbe@90000 { /* ETHSS */ 169 1.1 jmcneill #address-cells = <1>; 170 1.1 jmcneill #size-cells = <1>; 171 1.1 jmcneill label = "netcp-gbe"; 172 1.1 jmcneill compatible = "ti,netcp-gbe"; 173 1.1 jmcneill reg = <0x90000 0x300>, <0x90400 0x400>, <0x90800 0x700>; 174 1.1 jmcneill /* enable-ale; */ 175 1.1 jmcneill tx-queue = <648>; 176 1.1 jmcneill tx-channel = "nettx"; 177 1.1 jmcneill 178 1.1.1.4 skrll cpts { 179 1.1.1.4 skrll clocks = <&cpts_refclk_mux>; 180 1.1.1.4 skrll clock-names = "cpts"; 181 1.1.1.4 skrll 182 1.1.1.4 skrll cpts_refclk_mux: cpts-refclk-mux { 183 1.1.1.4 skrll #clock-cells = <0>; 184 1.1.1.4 skrll clocks = <&chipclk12>, <&chipclk13>, 185 1.1.1.4 skrll <&timi0>, <&timi1>, 186 1.1.1.4 skrll <&tsrefclk>; 187 1.1.1.4 skrll ti,mux-tbl = <0x0>, <0x1>, <0x2>, 188 1.1.1.4 skrll <0x3>, <0x8>; 189 1.1.1.4 skrll assigned-clocks = <&cpts_refclk_mux>; 190 1.1.1.4 skrll assigned-clock-parents = <&chipclk12>; 191 1.1.1.4 skrll }; 192 1.1.1.4 skrll }; 193 1.1.1.4 skrll 194 1.1 jmcneill interfaces { 195 1.1 jmcneill gbe0: interface-0 { 196 1.1 jmcneill slave-port = <0>; 197 1.1 jmcneill link-interface = <1>; 198 1.1 jmcneill phy-handle = <ðphy0>; 199 1.1 jmcneill }; 200 1.1 jmcneill gbe1: interface-1 { 201 1.1 jmcneill slave-port = <1>; 202 1.1 jmcneill link-interface = <1>; 203 1.1 jmcneill phy-handle = <ðphy1>; 204 1.1 jmcneill }; 205 1.1 jmcneill }; 206 1.1 jmcneill 207 1.1 jmcneill secondary-slave-ports { 208 1.1 jmcneill port-2 { 209 1.1 jmcneill slave-port = <2>; 210 1.1 jmcneill link-interface = <2>; 211 1.1 jmcneill }; 212 1.1 jmcneill port-3 { 213 1.1 jmcneill slave-port = <3>; 214 1.1 jmcneill link-interface = <2>; 215 1.1 jmcneill }; 216 1.1 jmcneill }; 217 1.1 jmcneill }; 218 1.1 jmcneill }; 219 1.1 jmcneill 220 1.1 jmcneill netcp-interfaces { 221 1.1 jmcneill interface-0 { 222 1.1 jmcneill rx-channel = "netrx0"; 223 1.1 jmcneill rx-pool = <1024 12>; 224 1.1 jmcneill tx-pool = <1024 12>; 225 1.1 jmcneill rx-queue-depth = <128 128 0 0>; 226 1.1 jmcneill rx-buffer-size = <1518 4096 0 0>; 227 1.1 jmcneill rx-queue = <8704>; 228 1.1 jmcneill tx-completion-queue = <8706>; 229 1.1 jmcneill efuse-mac = <1>; 230 1.1 jmcneill netcp-gbe = <&gbe0>; 231 1.1 jmcneill 232 1.1 jmcneill }; 233 1.1 jmcneill interface-1 { 234 1.1 jmcneill rx-channel = "netrx1"; 235 1.1 jmcneill rx-pool = <1024 12>; 236 1.1 jmcneill tx-pool = <1024 12>; 237 1.1 jmcneill rx-queue-depth = <128 128 0 0>; 238 1.1 jmcneill rx-buffer-size = <1518 4096 0 0>; 239 1.1 jmcneill rx-queue = <8705>; 240 1.1 jmcneill tx-completion-queue = <8707>; 241 1.1 jmcneill efuse-mac = <0>; 242 1.1 jmcneill local-mac-address = [02 18 31 7e 3e 6f]; 243 1.1 jmcneill netcp-gbe = <&gbe1>; 244 1.1 jmcneill }; 245 1.1 jmcneill }; 246 1.1 jmcneill }; 247 1.1.1.3 jmcneill 248 1.1.1.3 jmcneill sa_subsys: subsys@20c0000 { 249 1.1.1.3 jmcneill compatible = "simple-bus"; 250 1.1.1.3 jmcneill #address-cells = <1>; 251 1.1.1.3 jmcneill #size-cells = <1>; 252 1.1.1.3 jmcneill ranges = <0 0x20c0000 0x40000>; 253 1.1.1.3 jmcneill 254 1.1.1.3 jmcneill sa_config: subsys@0 { 255 1.1.1.3 jmcneill compatible = "syscon"; 256 1.1.1.3 jmcneill reg = <0x0 0x100>; 257 1.1.1.3 jmcneill }; 258 1.1.1.3 jmcneill 259 1.1.1.3 jmcneill rng@24000 { 260 1.1.1.3 jmcneill compatible = "ti,keystone-rng"; 261 1.1.1.3 jmcneill reg = <0x24000 0x1000>; 262 1.1.1.3 jmcneill ti,syscon-sa-cfg = <&sa_config>; 263 1.1.1.3 jmcneill clocks = <&clksa>; 264 1.1.1.3 jmcneill clock-names = "fck"; 265 1.1.1.3 jmcneill }; 266 1.1.1.3 jmcneill }; 267