Go to the documentation of this file.
31 #ifndef _LAN9646_DRIVER_H
32 #define _LAN9646_DRIVER_H
38 #define LAN9646_PORT1 1
39 #define LAN9646_PORT2 2
40 #define LAN9646_PORT3 3
41 #define LAN9646_PORT4 4
42 #define LAN9646_PORT5 5
43 #define LAN9646_PORT6 6
44 #define LAN9646_PORT7 7
47 #define LAN9646_PORT_MASK 0x6F
48 #define LAN9646_PORT1_MASK 0x01
49 #define LAN9646_PORT2_MASK 0x02
50 #define LAN9646_PORT3_MASK 0x04
51 #define LAN9646_PORT4_MASK 0x08
52 #define LAN9646_PORT6_MASK 0x20
53 #define LAN9646_PORT7_MASK 0x40
56 #define LAN9646_SPI_CMD_WRITE 0x40000000
57 #define LAN9646_SPI_CMD_READ 0x60000000
58 #define LAN9646_SPI_CMD_ADDR 0x001FFFE0
61 #define LAN9646_STATIC_MAC_TABLE_SIZE 16
62 #define LAN9646_DYNAMIC_MAC_TABLE_SIZE 4096
65 #define LAN9646_TAIL_TAG_NORMAL_ADDR_LOOKUP 0x0400
66 #define LAN9646_TAIL_TAG_PORT_BLOCKING_OVERRIDE 0x0200
67 #define LAN9646_TAIL_TAG_PRIORITY 0x0180
68 #define LAN9646_TAIL_TAG_DEST_PORT7 0x0040
69 #define LAN9646_TAIL_TAG_DEST_PORT6 0x0020
70 #define LAN9646_TAIL_TAG_DEST_PORT4 0x0008
71 #define LAN9646_TAIL_TAG_DEST_PORT3 0x0004
72 #define LAN9646_TAIL_TAG_DEST_PORT2 0x0002
73 #define LAN9646_TAIL_TAG_DEST_PORT1 0x0001
76 #define LAN9646_TAIL_TAG_PTP_MSG 0x80
77 #define LAN9646_TAIL_TAG_SRC_PORT 0x07
80 #define LAN9646_BMCR 0x00
81 #define LAN9646_BMSR 0x01
82 #define LAN9646_PHYID1 0x02
83 #define LAN9646_PHYID2 0x03
84 #define LAN9646_ANAR 0x04
85 #define LAN9646_ANLPAR 0x05
86 #define LAN9646_ANER 0x06
87 #define LAN9646_ANNPR 0x07
88 #define LAN9646_ANLPNPR 0x08
89 #define LAN9646_GBCR 0x09
90 #define LAN9646_GBSR 0x0A
91 #define LAN9646_MMDACR 0x0D
92 #define LAN9646_MMDAADR 0x0E
93 #define LAN9646_GBESR 0x0F
94 #define LAN9646_RLB 0x11
95 #define LAN9646_LINKMD 0x12
96 #define LAN9646_DPMAPCSS 0x13
97 #define LAN9646_RXERCTR 0x15
98 #define LAN9646_ICSR 0x1B
99 #define LAN9646_AUTOMDI 0x1C
100 #define LAN9646_PHYCON 0x1F
103 #define LAN9646_MMD_LED_MODE 0x02, 0x00
104 #define LAN9646_MMD_EEE_ADV 0x07, 0x3C
107 #define LAN9646_SGMII_CTRL 0x1F0000
108 #define LAN9646_SGMII_STATUS 0x1F0001
109 #define LAN9646_SGMII_PHYID1 0x1F0002
110 #define LAN9646_SGMII_PHYID2 0x1F0003
111 #define LAN9646_SGMII_ANAR 0x1F0004
112 #define LAN9646_SGMII_ANLPAR 0x1F0005
113 #define LAN9646_SGMII_ANER 0x1F0006
114 #define LAN9646_SGMII_DIGITAL_CTRL 0x1F8000
115 #define LAN9646_SGMII_AN_CTRL 0x1F8001
116 #define LAN9646_SGMII_AN_STATUS 0x1F8002
119 #define LAN9646_CHIP_ID0 0x0000
120 #define LAN9646_CHIP_ID1 0x0001
121 #define LAN9646_CHIP_ID2 0x0002
122 #define LAN9646_CHIP_ID3 0x0003
123 #define LAN9646_PME_PIN_CTRL 0x0006
124 #define LAN9646_GLOBAL_INT_STAT 0x0010
125 #define LAN9646_GLOBAL_INT_MASK 0x0014
126 #define LAN9646_GLOBAL_PORT_INT_STAT 0x0018
127 #define LAN9646_GLOBAL_PORT_INT_MASK 0x001C
128 #define LAN9646_SERIAL_IO_CTRL 0x0100
129 #define LAN9646_OUT_CLK_CTRL 0x0103
130 #define LAN9646_IBA_CTRL 0x0104
131 #define LAN9646_IO_DRIVE_STRENGTH 0x010D
132 #define LAN9646_IBA_OP_STAT1 0x0110
133 #define LAN9646_LED_OVERRIDE 0x0120
134 #define LAN9646_LED_OUTPUT 0x0124
135 #define LAN9646_PWR_DOWN_CTRL0 0x0201
136 #define LAN9646_LED_STRAP_IN 0x0210
137 #define LAN9646_SWITCH_OP 0x0300
138 #define LAN9646_SWITCH_MAC_ADDR0 0x0302
139 #define LAN9646_SWITCH_MAC_ADDR1 0x0303
140 #define LAN9646_SWITCH_MAC_ADDR2 0x0304
141 #define LAN9646_SWITCH_MAC_ADDR3 0x0305
142 #define LAN9646_SWITCH_MAC_ADDR4 0x0306
143 #define LAN9646_SWITCH_MAC_ADDR5 0x0307
144 #define LAN9646_SWITCH_MTU 0x0308
145 #define LAN9646_SWITCH_ISP_TPID 0x030A
146 #define LAN9646_SWITCH_LUE_CTRL0 0x0310
147 #define LAN9646_SWITCH_LUE_CTRL1 0x0311
148 #define LAN9646_SWITCH_LUE_CTRL2 0x0312
149 #define LAN9646_SWITCH_LUE_CTRL3 0x0313
150 #define LAN9646_ALU_TABLE_INT 0x0314
151 #define LAN9646_ALU_TABLE_MASK 0x0315
152 #define LAN9646_ALU_TABLE_ENTRY_INDEX0 0x0316
153 #define LAN9646_ALU_TABLE_ENTRY_INDEX1 0x0318
154 #define LAN9646_ALU_TABLE_ENTRY_INDEX2 0x031A
155 #define LAN9646_UNKNOWN_UNICAST_CTRL 0x0320
156 #define LAN9646_UNKONWN_MULTICAST_CTRL 0x0324
157 #define LAN9646_UNKNOWN_VLAN_ID_CTRL 0x0328
158 #define LAN9646_SWITCH_MAC_CTRL0 0x0330
159 #define LAN9646_SWITCH_MAC_CTRL1 0x0331
160 #define LAN9646_SWITCH_MAC_CTRL2 0x0332
161 #define LAN9646_SWITCH_MAC_CTRL3 0x0333
162 #define LAN9646_SWITCH_MAC_CTRL4 0x0334
163 #define LAN9646_SWITCH_MAC_CTRL5 0x0335
164 #define LAN9646_SWITCH_MIB_CTRL 0x0336
165 #define LAN9646_802_1P_PRIO_MAPPING0 0x0338
166 #define LAN9646_802_1P_PRIO_MAPPING1 0x0339
167 #define LAN9646_802_1P_PRIO_MAPPING2 0x033A
168 #define LAN9646_802_1P_PRIO_MAPPING3 0x033B
169 #define LAN9646_IP_DIFFSERV_PRIO_EN 0x033E
170 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING0 0x0340
171 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING1 0x0341
172 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING2 0x0342
173 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING3 0x0343
174 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING4 0x0344
175 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING5 0x0345
176 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING6 0x0346
177 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING7 0x0347
178 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING8 0x0348
179 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING9 0x0349
180 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING10 0x034A
181 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING11 0x034B
182 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING12 0x034C
183 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING13 0x034D
184 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING14 0x034E
185 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING15 0x034F
186 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING16 0x0350
187 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING17 0x0351
188 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING18 0x0352
189 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING19 0x0353
190 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING20 0x0354
191 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING21 0x0355
192 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING22 0x0356
193 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING23 0x0357
194 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING24 0x0358
195 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING25 0x0359
196 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING26 0x035A
197 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING27 0x035B
198 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING28 0x035C
199 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING29 0x035D
200 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING30 0x035E
201 #define LAN9646_IP_DIFFSERV_PRIO_MAPPING31 0x035F
202 #define LAN9646_GLOBAL_PORT_MIRROR_SNOOP_CTRL 0x0370
203 #define LAN9646_WRED_DIFFSERV_COLOR_MAPPING 0x0378
204 #define LAN9646_QUEUE_MGMT_CTRL0 0x0390
205 #define LAN9646_VLAN_TABLE_ENTRY0 0x0400
206 #define LAN9646_VLAN_TABLE_ENTRY1 0x0404
207 #define LAN9646_VLAN_TABLE_ENTRY2 0x0408
208 #define LAN9646_VLAN_TABLE_INDEX 0x040C
209 #define LAN9646_VLAN_TABLE_ACCESS_CTRL 0x040E
210 #define LAN9646_ALU_TABLE_INDEX0 0x0410
211 #define LAN9646_ALU_TABLE_INDEX1 0x0414
212 #define LAN9646_ALU_TABLE_CTRL 0x0418
213 #define LAN9646_STATIC_MCAST_TABLE_CTRL 0x041C
214 #define LAN9646_ALU_TABLE_ENTRY1 0x0420
215 #define LAN9646_STATIC_TABLE_ENTRY1 0x0420
216 #define LAN9646_ALU_TABLE_ENTRY2 0x0424
217 #define LAN9646_STATIC_TABLE_ENTRY2 0x0424
218 #define LAN9646_RES_MCAST_TABLE_ENTRY2 0x0424
219 #define LAN9646_ALU_TABLE_ENTRY3 0x0428
220 #define LAN9646_STATIC_TABLE_ENTRY3 0x0428
221 #define LAN9646_ALU_TABLE_ENTRY4 0x042C
222 #define LAN9646_STATIC_TABLE_ENTRY4 0x042C
223 #define LAN9646_PORT1_DEFAULT_TAG0 0x1000
224 #define LAN9646_PORT1_DEFAULT_TAG1 0x1001
225 #define LAN9646_PORT1_PME_WOL_EVENT 0x1013
226 #define LAN9646_PORT1_PME_WOL_EN 0x1017
227 #define LAN9646_PORT1_INT_STATUS 0x101B
228 #define LAN9646_PORT1_INT_MASK 0x101F
229 #define LAN9646_PORT1_OP_CTRL0 0x1020
230 #define LAN9646_PORT1_STATUS 0x1030
231 #define LAN9646_PORT1_MAC_CTRL0 0x1400
232 #define LAN9646_PORT1_MAC_CTRL1 0x1401
233 #define LAN9646_PORT1_IG_RATE_LIMIT_CTRL 0x1403
234 #define LAN9646_PORT1_PRIO0_IG_LIMIT_CTRL 0x1410
235 #define LAN9646_PORT1_PRIO1_IG_LIMIT_CTRL 0x1411
236 #define LAN9646_PORT1_PRIO2_IG_LIMIT_CTRL 0x1412
237 #define LAN9646_PORT1_PRIO3_IG_LIMIT_CTRL 0x1413
238 #define LAN9646_PORT1_PRIO4_IG_LIMIT_CTRL 0x1414
239 #define LAN9646_PORT1_PRIO5_IG_LIMIT_CTRL 0x1415
240 #define LAN9646_PORT1_PRIO6_IG_LIMIT_CTRL 0x1416
241 #define LAN9646_PORT1_PRIO7_IG_LIMIT_CTRL 0x1417
242 #define LAN9646_PORT1_QUEUE0_EG_LIMIT_CTRL 0x1420
243 #define LAN9646_PORT1_QUEUE1_EG_LIMIT_CTRL 0x1421
244 #define LAN9646_PORT1_QUEUE2_EG_LIMIT_CTRL 0x1422
245 #define LAN9646_PORT1_QUEUE3_EG_LIMIT_CTRL 0x1423
246 #define LAN9646_PORT1_MIB_CTRL_STAT 0x1500
247 #define LAN9646_PORT1_MIB_DATA 0x1504
248 #define LAN9646_PORT1_ACL_ACCESS0 0x1600
249 #define LAN9646_PORT1_ACL_ACCESS1 0x1601
250 #define LAN9646_PORT1_ACL_ACCESS2 0x1602
251 #define LAN9646_PORT1_ACL_ACCESS3 0x1603
252 #define LAN9646_PORT1_ACL_ACCESS4 0x1604
253 #define LAN9646_PORT1_ACL_ACCESS5 0x1605
254 #define LAN9646_PORT1_ACL_ACCESS6 0x1606
255 #define LAN9646_PORT1_ACL_ACCESS7 0x1607
256 #define LAN9646_PORT1_ACL_ACCESS8 0x1608
257 #define LAN9646_PORT1_ACL_ACCESS9 0x1609
258 #define LAN9646_PORT1_ACL_ACCESS10 0x160A
259 #define LAN9646_PORT1_ACL_ACCESS11 0x160B
260 #define LAN9646_PORT1_ACL_ACCESS12 0x160C
261 #define LAN9646_PORT1_ACL_ACCESS13 0x160D
262 #define LAN9646_PORT1_ACL_ACCESS14 0x160E
263 #define LAN9646_PORT1_ACL_ACCESS15 0x160F
264 #define LAN9646_PORT1_ACL_BYTE_EN_MSB 0x1610
265 #define LAN9646_PORT1_ACL_BYTE_EN_LSB 0x1611
266 #define LAN9646_PORT1_ACL_ACCESS_CTRL0 0x1612
267 #define LAN9646_PORT1_MIRRORING_CTRL 0x1800
268 #define LAN9646_PORT1_PRIO_CTRL 0x1801
269 #define LAN9646_PORT1_IG_MAC_CTRL 0x1802
270 #define LAN9646_PORT1_AUTH_CTRL 0x1803
271 #define LAN9646_PORT1_PTR 0x1804
272 #define LAN9646_PORT1_PRIO_TO_QUEUE_MAPPING 0x1808
273 #define LAN9646_PORT1_POLICE_CTRL 0x180C
274 #define LAN9646_PORT1_POLICE_QUEUE_RATE 0x1820
275 #define LAN9646_PORT1_POLICE_QUEUE_BURST_SIZE 0x1824
276 #define LAN9646_PORT1_WRED_PKT_MEM_CTRL0 0x1830
277 #define LAN9646_PORT1_WRED_PKT_MEM_CTRL1 0x1834
278 #define LAN9646_PORT1_WRED_QUEUE_CTRL0 0x1840
279 #define LAN9646_PORT1_WRED_QUEUE_CTRL1 0x1844
280 #define LAN9646_PORT1_WRED_QUEUE_PERF_MON_CTRL 0x1848
281 #define LAN9646_PORT1_TX_QUEUE_INDEX 0x1900
282 #define LAN9646_PORT1_TX_QUEUE_PVID 0x1904
283 #define LAN9646_PORT1_TX_QUEUE_CTRL0 0x1914
284 #define LAN9646_PORT1_TX_QUEUE_CTRL1 0x1915
285 #define LAN9646_PORT1_CTRL0 0x1A00
286 #define LAN9646_PORT1_CTRL1 0x1A04
287 #define LAN9646_PORT1_CTRL2 0x1B00
288 #define LAN9646_PORT1_MSTP_PTR 0x1B01
289 #define LAN9646_PORT1_MSTP_STATE 0x1B04
290 #define LAN9646_PORT2_DEFAULT_TAG0 0x2000
291 #define LAN9646_PORT2_DEFAULT_TAG1 0x2001
292 #define LAN9646_PORT2_PME_WOL_EVENT 0x2013
293 #define LAN9646_PORT2_PME_WOL_EN 0x2017
294 #define LAN9646_PORT2_INT_STATUS 0x201B
295 #define LAN9646_PORT2_INT_MASK 0x201F
296 #define LAN9646_PORT2_OP_CTRL0 0x2020
297 #define LAN9646_PORT2_STATUS 0x2030
298 #define LAN9646_PORT2_MAC_CTRL0 0x2400
299 #define LAN9646_PORT2_MAC_CTRL1 0x2401
300 #define LAN9646_PORT2_IG_RATE_LIMIT_CTRL 0x2403
301 #define LAN9646_PORT2_PRIO0_IG_LIMIT_CTRL 0x2410
302 #define LAN9646_PORT2_PRIO1_IG_LIMIT_CTRL 0x2411
303 #define LAN9646_PORT2_PRIO2_IG_LIMIT_CTRL 0x2412
304 #define LAN9646_PORT2_PRIO3_IG_LIMIT_CTRL 0x2413
305 #define LAN9646_PORT2_PRIO4_IG_LIMIT_CTRL 0x2414
306 #define LAN9646_PORT2_PRIO5_IG_LIMIT_CTRL 0x2415
307 #define LAN9646_PORT2_PRIO6_IG_LIMIT_CTRL 0x2416
308 #define LAN9646_PORT2_PRIO7_IG_LIMIT_CTRL 0x2417
309 #define LAN9646_PORT2_QUEUE0_EG_LIMIT_CTRL 0x2420
310 #define LAN9646_PORT2_QUEUE1_EG_LIMIT_CTRL 0x2421
311 #define LAN9646_PORT2_QUEUE2_EG_LIMIT_CTRL 0x2422
312 #define LAN9646_PORT2_QUEUE3_EG_LIMIT_CTRL 0x2423
313 #define LAN9646_PORT2_MIB_CTRL_STAT 0x2500
314 #define LAN9646_PORT2_MIB_DATA 0x2504
315 #define LAN9646_PORT2_ACL_ACCESS0 0x2600
316 #define LAN9646_PORT2_ACL_ACCESS1 0x2601
317 #define LAN9646_PORT2_ACL_ACCESS2 0x2602
318 #define LAN9646_PORT2_ACL_ACCESS3 0x2603
319 #define LAN9646_PORT2_ACL_ACCESS4 0x2604
320 #define LAN9646_PORT2_ACL_ACCESS5 0x2605
321 #define LAN9646_PORT2_ACL_ACCESS6 0x2606
322 #define LAN9646_PORT2_ACL_ACCESS7 0x2607
323 #define LAN9646_PORT2_ACL_ACCESS8 0x2608
324 #define LAN9646_PORT2_ACL_ACCESS9 0x2609
325 #define LAN9646_PORT2_ACL_ACCESS10 0x260A
326 #define LAN9646_PORT2_ACL_ACCESS11 0x260B
327 #define LAN9646_PORT2_ACL_ACCESS12 0x260C
328 #define LAN9646_PORT2_ACL_ACCESS13 0x260D
329 #define LAN9646_PORT2_ACL_ACCESS14 0x260E
330 #define LAN9646_PORT2_ACL_ACCESS15 0x260F
331 #define LAN9646_PORT2_ACL_BYTE_EN_MSB 0x2610
332 #define LAN9646_PORT2_ACL_BYTE_EN_LSB 0x2611
333 #define LAN9646_PORT2_ACL_ACCESS_CTRL0 0x2612
334 #define LAN9646_PORT2_MIRRORING_CTRL 0x2800
335 #define LAN9646_PORT2_PRIO_CTRL 0x2801
336 #define LAN9646_PORT2_IG_MAC_CTRL 0x2802
337 #define LAN9646_PORT2_AUTH_CTRL 0x2803
338 #define LAN9646_PORT2_PTR 0x2804
339 #define LAN9646_PORT2_PRIO_TO_QUEUE_MAPPING 0x2808
340 #define LAN9646_PORT2_POLICE_CTRL 0x280C
341 #define LAN9646_PORT2_POLICE_QUEUE_RATE 0x2820
342 #define LAN9646_PORT2_POLICE_QUEUE_BURST_SIZE 0x2824
343 #define LAN9646_PORT2_WRED_PKT_MEM_CTRL0 0x2830
344 #define LAN9646_PORT2_WRED_PKT_MEM_CTRL1 0x2834
345 #define LAN9646_PORT2_WRED_QUEUE_CTRL0 0x2840
346 #define LAN9646_PORT2_WRED_QUEUE_CTRL1 0x2844
347 #define LAN9646_PORT2_WRED_QUEUE_PERF_MON_CTRL 0x2848
348 #define LAN9646_PORT2_TX_QUEUE_INDEX 0x2900
349 #define LAN9646_PORT2_TX_QUEUE_PVID 0x2904
350 #define LAN9646_PORT2_TX_QUEUE_CTRL0 0x2914
351 #define LAN9646_PORT2_TX_QUEUE_CTRL1 0x2915
352 #define LAN9646_PORT2_CTRL0 0x2A00
353 #define LAN9646_PORT2_CTRL1 0x2A04
354 #define LAN9646_PORT2_CTRL2 0x2B00
355 #define LAN9646_PORT2_MSTP_PTR 0x2B01
356 #define LAN9646_PORT2_MSTP_STATE 0x2B04
357 #define LAN9646_PORT3_DEFAULT_TAG0 0x3000
358 #define LAN9646_PORT3_DEFAULT_TAG1 0x3001
359 #define LAN9646_PORT3_PME_WOL_EVENT 0x3013
360 #define LAN9646_PORT3_PME_WOL_EN 0x3017
361 #define LAN9646_PORT3_INT_STATUS 0x301B
362 #define LAN9646_PORT3_INT_MASK 0x301F
363 #define LAN9646_PORT3_OP_CTRL0 0x3020
364 #define LAN9646_PORT3_STATUS 0x3030
365 #define LAN9646_PORT3_MAC_CTRL0 0x3400
366 #define LAN9646_PORT3_MAC_CTRL1 0x3401
367 #define LAN9646_PORT3_IG_RATE_LIMIT_CTRL 0x3403
368 #define LAN9646_PORT3_PRIO0_IG_LIMIT_CTRL 0x3410
369 #define LAN9646_PORT3_PRIO1_IG_LIMIT_CTRL 0x3411
370 #define LAN9646_PORT3_PRIO2_IG_LIMIT_CTRL 0x3412
371 #define LAN9646_PORT3_PRIO3_IG_LIMIT_CTRL 0x3413
372 #define LAN9646_PORT3_PRIO4_IG_LIMIT_CTRL 0x3414
373 #define LAN9646_PORT3_PRIO5_IG_LIMIT_CTRL 0x3415
374 #define LAN9646_PORT3_PRIO6_IG_LIMIT_CTRL 0x3416
375 #define LAN9646_PORT3_PRIO7_IG_LIMIT_CTRL 0x3417
376 #define LAN9646_PORT3_QUEUE0_EG_LIMIT_CTRL 0x3420
377 #define LAN9646_PORT3_QUEUE1_EG_LIMIT_CTRL 0x3421
378 #define LAN9646_PORT3_QUEUE2_EG_LIMIT_CTRL 0x3422
379 #define LAN9646_PORT3_QUEUE3_EG_LIMIT_CTRL 0x3423
380 #define LAN9646_PORT3_MIB_CTRL_STAT 0x3500
381 #define LAN9646_PORT3_MIB_DATA 0x3504
382 #define LAN9646_PORT3_ACL_ACCESS0 0x3600
383 #define LAN9646_PORT3_ACL_ACCESS1 0x3601
384 #define LAN9646_PORT3_ACL_ACCESS2 0x3602
385 #define LAN9646_PORT3_ACL_ACCESS3 0x3603
386 #define LAN9646_PORT3_ACL_ACCESS4 0x3604
387 #define LAN9646_PORT3_ACL_ACCESS5 0x3605
388 #define LAN9646_PORT3_ACL_ACCESS6 0x3606
389 #define LAN9646_PORT3_ACL_ACCESS7 0x3607
390 #define LAN9646_PORT3_ACL_ACCESS8 0x3608
391 #define LAN9646_PORT3_ACL_ACCESS9 0x3609
392 #define LAN9646_PORT3_ACL_ACCESS10 0x360A
393 #define LAN9646_PORT3_ACL_ACCESS11 0x360B
394 #define LAN9646_PORT3_ACL_ACCESS12 0x360C
395 #define LAN9646_PORT3_ACL_ACCESS13 0x360D
396 #define LAN9646_PORT3_ACL_ACCESS14 0x360E
397 #define LAN9646_PORT3_ACL_ACCESS15 0x360F
398 #define LAN9646_PORT3_ACL_BYTE_EN_MSB 0x3610
399 #define LAN9646_PORT3_ACL_BYTE_EN_LSB 0x3611
400 #define LAN9646_PORT3_ACL_ACCESS_CTRL0 0x3612
401 #define LAN9646_PORT3_MIRRORING_CTRL 0x3800
402 #define LAN9646_PORT3_PRIO_CTRL 0x3801
403 #define LAN9646_PORT3_IG_MAC_CTRL 0x3802
404 #define LAN9646_PORT3_AUTH_CTRL 0x3803
405 #define LAN9646_PORT3_PTR 0x3804
406 #define LAN9646_PORT3_PRIO_TO_QUEUE_MAPPING 0x3808
407 #define LAN9646_PORT3_POLICE_CTRL 0x380C
408 #define LAN9646_PORT3_POLICE_QUEUE_RATE 0x3820
409 #define LAN9646_PORT3_POLICE_QUEUE_BURST_SIZE 0x3824
410 #define LAN9646_PORT3_WRED_PKT_MEM_CTRL0 0x3830
411 #define LAN9646_PORT3_WRED_PKT_MEM_CTRL1 0x3834
412 #define LAN9646_PORT3_WRED_QUEUE_CTRL0 0x3840
413 #define LAN9646_PORT3_WRED_QUEUE_CTRL1 0x3844
414 #define LAN9646_PORT3_WRED_QUEUE_PERF_MON_CTRL 0x3848
415 #define LAN9646_PORT3_TX_QUEUE_INDEX 0x3900
416 #define LAN9646_PORT3_TX_QUEUE_PVID 0x3904
417 #define LAN9646_PORT3_TX_QUEUE_CTRL0 0x3914
418 #define LAN9646_PORT3_TX_QUEUE_CTRL1 0x3915
419 #define LAN9646_PORT3_CTRL0 0x3A00
420 #define LAN9646_PORT3_CTRL1 0x3A04
421 #define LAN9646_PORT3_CTRL2 0x3B00
422 #define LAN9646_PORT3_MSTP_PTR 0x3B01
423 #define LAN9646_PORT3_MSTP_STATE 0x3B04
424 #define LAN9646_PORT4_DEFAULT_TAG0 0x4000
425 #define LAN9646_PORT4_DEFAULT_TAG1 0x4001
426 #define LAN9646_PORT4_PME_WOL_EVENT 0x4013
427 #define LAN9646_PORT4_PME_WOL_EN 0x4017
428 #define LAN9646_PORT4_INT_STATUS 0x401B
429 #define LAN9646_PORT4_INT_MASK 0x401F
430 #define LAN9646_PORT4_OP_CTRL0 0x4020
431 #define LAN9646_PORT4_STATUS 0x4030
432 #define LAN9646_PORT4_MAC_CTRL0 0x4400
433 #define LAN9646_PORT4_MAC_CTRL1 0x4401
434 #define LAN9646_PORT4_IG_RATE_LIMIT_CTRL 0x4403
435 #define LAN9646_PORT4_PRIO0_IG_LIMIT_CTRL 0x4410
436 #define LAN9646_PORT4_PRIO1_IG_LIMIT_CTRL 0x4411
437 #define LAN9646_PORT4_PRIO2_IG_LIMIT_CTRL 0x4412
438 #define LAN9646_PORT4_PRIO3_IG_LIMIT_CTRL 0x4413
439 #define LAN9646_PORT4_PRIO4_IG_LIMIT_CTRL 0x4414
440 #define LAN9646_PORT4_PRIO5_IG_LIMIT_CTRL 0x4415
441 #define LAN9646_PORT4_PRIO6_IG_LIMIT_CTRL 0x4416
442 #define LAN9646_PORT4_PRIO7_IG_LIMIT_CTRL 0x4417
443 #define LAN9646_PORT4_QUEUE0_EG_LIMIT_CTRL 0x4420
444 #define LAN9646_PORT4_QUEUE1_EG_LIMIT_CTRL 0x4421
445 #define LAN9646_PORT4_QUEUE2_EG_LIMIT_CTRL 0x4422
446 #define LAN9646_PORT4_QUEUE3_EG_LIMIT_CTRL 0x4423
447 #define LAN9646_PORT4_MIB_CTRL_STAT 0x4500
448 #define LAN9646_PORT4_MIB_DATA 0x4504
449 #define LAN9646_PORT4_ACL_ACCESS0 0x4600
450 #define LAN9646_PORT4_ACL_ACCESS1 0x4601
451 #define LAN9646_PORT4_ACL_ACCESS2 0x4602
452 #define LAN9646_PORT4_ACL_ACCESS3 0x4603
453 #define LAN9646_PORT4_ACL_ACCESS4 0x4604
454 #define LAN9646_PORT4_ACL_ACCESS5 0x4605
455 #define LAN9646_PORT4_ACL_ACCESS6 0x4606
456 #define LAN9646_PORT4_ACL_ACCESS7 0x4607
457 #define LAN9646_PORT4_ACL_ACCESS8 0x4608
458 #define LAN9646_PORT4_ACL_ACCESS9 0x4609
459 #define LAN9646_PORT4_ACL_ACCESS10 0x460A
460 #define LAN9646_PORT4_ACL_ACCESS11 0x460B
461 #define LAN9646_PORT4_ACL_ACCESS12 0x460C
462 #define LAN9646_PORT4_ACL_ACCESS13 0x460D
463 #define LAN9646_PORT4_ACL_ACCESS14 0x460E
464 #define LAN9646_PORT4_ACL_ACCESS15 0x460F
465 #define LAN9646_PORT4_ACL_BYTE_EN_MSB 0x4610
466 #define LAN9646_PORT4_ACL_BYTE_EN_LSB 0x4611
467 #define LAN9646_PORT4_ACL_ACCESS_CTRL0 0x4612
468 #define LAN9646_PORT4_MIRRORING_CTRL 0x4800
469 #define LAN9646_PORT4_PRIO_CTRL 0x4801
470 #define LAN9646_PORT4_IG_MAC_CTRL 0x4802
471 #define LAN9646_PORT4_AUTH_CTRL 0x4803
472 #define LAN9646_PORT4_PTR 0x4804
473 #define LAN9646_PORT4_PRIO_TO_QUEUE_MAPPING 0x4808
474 #define LAN9646_PORT4_POLICE_CTRL 0x480C
475 #define LAN9646_PORT4_POLICE_QUEUE_RATE 0x4820
476 #define LAN9646_PORT4_POLICE_QUEUE_BURST_SIZE 0x4824
477 #define LAN9646_PORT4_WRED_PKT_MEM_CTRL0 0x4830
478 #define LAN9646_PORT4_WRED_PKT_MEM_CTRL1 0x4834
479 #define LAN9646_PORT4_WRED_QUEUE_CTRL0 0x4840
480 #define LAN9646_PORT4_WRED_QUEUE_CTRL1 0x4844
481 #define LAN9646_PORT4_WRED_QUEUE_PERF_MON_CTRL 0x4848
482 #define LAN9646_PORT4_TX_QUEUE_INDEX 0x4900
483 #define LAN9646_PORT4_TX_QUEUE_PVID 0x4904
484 #define LAN9646_PORT4_TX_QUEUE_CTRL0 0x4914
485 #define LAN9646_PORT4_TX_QUEUE_CTRL1 0x4915
486 #define LAN9646_PORT4_CTRL0 0x4A00
487 #define LAN9646_PORT4_CTRL1 0x4A04
488 #define LAN9646_PORT4_CTRL2 0x4B00
489 #define LAN9646_PORT4_MSTP_PTR 0x4B01
490 #define LAN9646_PORT4_MSTP_STATE 0x4B04
491 #define LAN9646_PORT6_DEFAULT_TAG0 0x6000
492 #define LAN9646_PORT6_DEFAULT_TAG1 0x6001
493 #define LAN9646_PORT6_PME_WOL_EVENT 0x6013
494 #define LAN9646_PORT6_PME_WOL_EN 0x6017
495 #define LAN9646_PORT6_INT_STATUS 0x601B
496 #define LAN9646_PORT6_INT_MASK 0x601F
497 #define LAN9646_PORT6_OP_CTRL0 0x6020
498 #define LAN9646_PORT6_STATUS 0x6030
499 #define LAN9646_PORT6_XMII_CTRL0 0x6300
500 #define LAN9646_PORT6_XMII_CTRL1 0x6301
501 #define LAN9646_PORT6_MAC_CTRL0 0x6400
502 #define LAN9646_PORT6_MAC_CTRL1 0x6401
503 #define LAN9646_PORT6_IG_RATE_LIMIT_CTRL 0x6403
504 #define LAN9646_PORT6_PRIO0_IG_LIMIT_CTRL 0x6410
505 #define LAN9646_PORT6_PRIO1_IG_LIMIT_CTRL 0x6411
506 #define LAN9646_PORT6_PRIO2_IG_LIMIT_CTRL 0x6412
507 #define LAN9646_PORT6_PRIO3_IG_LIMIT_CTRL 0x6413
508 #define LAN9646_PORT6_PRIO4_IG_LIMIT_CTRL 0x6414
509 #define LAN9646_PORT6_PRIO5_IG_LIMIT_CTRL 0x6415
510 #define LAN9646_PORT6_PRIO6_IG_LIMIT_CTRL 0x6416
511 #define LAN9646_PORT6_PRIO7_IG_LIMIT_CTRL 0x6417
512 #define LAN9646_PORT6_QUEUE0_EG_LIMIT_CTRL 0x6420
513 #define LAN9646_PORT6_QUEUE1_EG_LIMIT_CTRL 0x6421
514 #define LAN9646_PORT6_QUEUE2_EG_LIMIT_CTRL 0x6422
515 #define LAN9646_PORT6_QUEUE3_EG_LIMIT_CTRL 0x6423
516 #define LAN9646_PORT6_MIB_CTRL_STAT 0x6500
517 #define LAN9646_PORT6_MIB_DATA 0x6504
518 #define LAN9646_PORT6_ACL_ACCESS0 0x6600
519 #define LAN9646_PORT6_ACL_ACCESS1 0x6601
520 #define LAN9646_PORT6_ACL_ACCESS2 0x6602
521 #define LAN9646_PORT6_ACL_ACCESS3 0x6603
522 #define LAN9646_PORT6_ACL_ACCESS4 0x6604
523 #define LAN9646_PORT6_ACL_ACCESS5 0x6605
524 #define LAN9646_PORT6_ACL_ACCESS6 0x6606
525 #define LAN9646_PORT6_ACL_ACCESS7 0x6607
526 #define LAN9646_PORT6_ACL_ACCESS8 0x6608
527 #define LAN9646_PORT6_ACL_ACCESS9 0x6609
528 #define LAN9646_PORT6_ACL_ACCESS10 0x660A
529 #define LAN9646_PORT6_ACL_ACCESS11 0x660B
530 #define LAN9646_PORT6_ACL_ACCESS12 0x660C
531 #define LAN9646_PORT6_ACL_ACCESS13 0x660D
532 #define LAN9646_PORT6_ACL_ACCESS14 0x660E
533 #define LAN9646_PORT6_ACL_ACCESS15 0x660F
534 #define LAN9646_PORT6_ACL_BYTE_EN_MSB 0x6610
535 #define LAN9646_PORT6_ACL_BYTE_EN_LSB 0x6611
536 #define LAN9646_PORT6_ACL_ACCESS_CTRL0 0x6612
537 #define LAN9646_PORT6_MIRRORING_CTRL 0x6800
538 #define LAN9646_PORT6_PRIO_CTRL 0x6801
539 #define LAN9646_PORT6_IG_MAC_CTRL 0x6802
540 #define LAN9646_PORT6_AUTH_CTRL 0x6803
541 #define LAN9646_PORT6_PTR 0x6804
542 #define LAN9646_PORT6_PRIO_TO_QUEUE_MAPPING 0x6808
543 #define LAN9646_PORT6_POLICE_CTRL 0x680C
544 #define LAN9646_PORT6_POLICE_QUEUE_RATE 0x6820
545 #define LAN9646_PORT6_POLICE_QUEUE_BURST_SIZE 0x6824
546 #define LAN9646_PORT6_WRED_PKT_MEM_CTRL0 0x6830
547 #define LAN9646_PORT6_WRED_PKT_MEM_CTRL1 0x6834
548 #define LAN9646_PORT6_WRED_QUEUE_CTRL0 0x6840
549 #define LAN9646_PORT6_WRED_QUEUE_CTRL1 0x6844
550 #define LAN9646_PORT6_WRED_QUEUE_PERF_MON_CTRL 0x6848
551 #define LAN9646_PORT6_TX_QUEUE_INDEX 0x6900
552 #define LAN9646_PORT6_TX_QUEUE_PVID 0x6904
553 #define LAN9646_PORT6_TX_QUEUE_CTRL0 0x6914
554 #define LAN9646_PORT6_TX_QUEUE_CTRL1 0x6915
555 #define LAN9646_PORT6_CTRL0 0x6A00
556 #define LAN9646_PORT6_CTRL1 0x6A04
557 #define LAN9646_PORT6_CTRL2 0x6B00
558 #define LAN9646_PORT6_MSTP_PTR 0x6B01
559 #define LAN9646_PORT6_MSTP_STATE 0x6B04
560 #define LAN9646_PORT7_DEFAULT_TAG0 0x7000
561 #define LAN9646_PORT7_DEFAULT_TAG1 0x7001
562 #define LAN9646_PORT7_PME_WOL_EVENT 0x7013
563 #define LAN9646_PORT7_PME_WOL_EN 0x7017
564 #define LAN9646_PORT7_INT_STATUS 0x701B
565 #define LAN9646_PORT7_INT_MASK 0x701F
566 #define LAN9646_PORT7_OP_CTRL0 0x7020
567 #define LAN9646_PORT7_STATUS 0x7030
568 #define LAN9646_PORT7_SGMII_ADDR 0x7200
569 #define LAN9646_PORT7_SGMII_DATA 0x7206
570 #define LAN9646_PORT7_XMII_CTRL0 0x7300
571 #define LAN9646_PORT7_XMII_CTRL1 0x7301
572 #define LAN9646_PORT7_MAC_CTRL0 0x7400
573 #define LAN9646_PORT7_MAC_CTRL1 0x7401
574 #define LAN9646_PORT7_IG_RATE_LIMIT_CTRL 0x7403
575 #define LAN9646_PORT7_PRIO0_IG_LIMIT_CTRL 0x7410
576 #define LAN9646_PORT7_PRIO1_IG_LIMIT_CTRL 0x7411
577 #define LAN9646_PORT7_PRIO2_IG_LIMIT_CTRL 0x7412
578 #define LAN9646_PORT7_PRIO3_IG_LIMIT_CTRL 0x7413
579 #define LAN9646_PORT7_PRIO4_IG_LIMIT_CTRL 0x7414
580 #define LAN9646_PORT7_PRIO5_IG_LIMIT_CTRL 0x7415
581 #define LAN9646_PORT7_PRIO6_IG_LIMIT_CTRL 0x7416
582 #define LAN9646_PORT7_PRIO7_IG_LIMIT_CTRL 0x7417
583 #define LAN9646_PORT7_QUEUE0_EG_LIMIT_CTRL 0x7420
584 #define LAN9646_PORT7_QUEUE1_EG_LIMIT_CTRL 0x7421
585 #define LAN9646_PORT7_QUEUE2_EG_LIMIT_CTRL 0x7422
586 #define LAN9646_PORT7_QUEUE3_EG_LIMIT_CTRL 0x7423
587 #define LAN9646_PORT7_MIB_CTRL_STAT 0x7500
588 #define LAN9646_PORT7_MIB_DATA 0x7504
589 #define LAN9646_PORT7_ACL_ACCESS0 0x7600
590 #define LAN9646_PORT7_ACL_ACCESS1 0x7601
591 #define LAN9646_PORT7_ACL_ACCESS2 0x7602
592 #define LAN9646_PORT7_ACL_ACCESS3 0x7603
593 #define LAN9646_PORT7_ACL_ACCESS4 0x7604
594 #define LAN9646_PORT7_ACL_ACCESS5 0x7605
595 #define LAN9646_PORT7_ACL_ACCESS6 0x7606
596 #define LAN9646_PORT7_ACL_ACCESS7 0x7607
597 #define LAN9646_PORT7_ACL_ACCESS8 0x7608
598 #define LAN9646_PORT7_ACL_ACCESS9 0x7609
599 #define LAN9646_PORT7_ACL_ACCESS10 0x760A
600 #define LAN9646_PORT7_ACL_ACCESS11 0x760B
601 #define LAN9646_PORT7_ACL_ACCESS12 0x760C
602 #define LAN9646_PORT7_ACL_ACCESS13 0x760D
603 #define LAN9646_PORT7_ACL_ACCESS14 0x760E
604 #define LAN9646_PORT7_ACL_ACCESS15 0x760F
605 #define LAN9646_PORT7_ACL_BYTE_EN_MSB 0x7610
606 #define LAN9646_PORT7_ACL_BYTE_EN_LSB 0x7611
607 #define LAN9646_PORT7_ACL_ACCESS_CTRL0 0x7612
608 #define LAN9646_PORT7_MIRRORING_CTRL 0x7800
609 #define LAN9646_PORT7_PRIO_CTRL 0x7801
610 #define LAN9646_PORT7_IG_MAC_CTRL 0x7802
611 #define LAN9646_PORT7_AUTH_CTRL 0x7803
612 #define LAN9646_PORT7_PTR 0x7804
613 #define LAN9646_PORT7_PRIO_TO_QUEUE_MAPPING 0x7808
614 #define LAN9646_PORT7_POLICE_CTRL 0x780C
615 #define LAN9646_PORT7_POLICE_QUEUE_RATE 0x7820
616 #define LAN9646_PORT7_POLICE_QUEUE_BURST_SIZE 0x7824
617 #define LAN9646_PORT7_WRED_PKT_MEM_CTRL0 0x7830
618 #define LAN9646_PORT7_WRED_PKT_MEM_CTRL1 0x7834
619 #define LAN9646_PORT7_WRED_QUEUE_CTRL0 0x7840
620 #define LAN9646_PORT7_WRED_QUEUE_CTRL1 0x7844
621 #define LAN9646_PORT7_WRED_QUEUE_PERF_MON_CTRL 0x7848
622 #define LAN9646_PORT7_TX_QUEUE_INDEX 0x7900
623 #define LAN9646_PORT7_TX_QUEUE_PVID 0x7904
624 #define LAN9646_PORT7_TX_QUEUE_CTRL0 0x7914
625 #define LAN9646_PORT7_TX_QUEUE_CTRL1 0x7915
626 #define LAN9646_PORT7_CTRL0 0x7A00
627 #define LAN9646_PORT7_CTRL1 0x7A04
628 #define LAN9646_PORT7_CTRL2 0x7B00
629 #define LAN9646_PORT7_MSTP_PTR 0x7B01
630 #define LAN9646_PORT7_MSTP_STATE 0x7B04
633 #define LAN9646_PORTn_DEFAULT_TAG0(port) (0x0000 + ((port) * 0x1000))
634 #define LAN9646_PORTn_DEFAULT_TAG1(port) (0x0001 + ((port) * 0x1000))
635 #define LAN9646_PORTn_PME_WOL_EVENT(port) (0x0013 + ((port) * 0x1000))
636 #define LAN9646_PORTn_PME_WOL_EN(port) (0x0017 + ((port) * 0x1000))
637 #define LAN9646_PORTn_INT_STATUS(port) (0x001B + ((port) * 0x1000))
638 #define LAN9646_PORTn_INT_MASK(port) (0x001F + ((port) * 0x1000))
639 #define LAN9646_PORTn_OP_CTRL0(port) (0x0020 + ((port) * 0x1000))
640 #define LAN9646_PORTn_STATUS(port) (0x0030 + ((port) * 0x1000))
641 #define LAN9646_PORTn_XMII_CTRL0(port) (0x0300 + ((port) * 0x1000))
642 #define LAN9646_PORTn_XMII_CTRL1(port) (0x0301 + ((port) * 0x1000))
643 #define LAN9646_PORTn_MAC_CTRL0(port) (0x0400 + ((port) * 0x1000))
644 #define LAN9646_PORTn_MAC_CTRL1(port) (0x0401 + ((port) * 0x1000))
645 #define LAN9646_PORTn_IG_RATE_LIMIT_CTRL(port) (0x0403 + ((port) * 0x1000))
646 #define LAN9646_PORTn_PRIO0_IG_LIMIT_CTRL(port) (0x0410 + ((port) * 0x1000))
647 #define LAN9646_PORTn_PRIO1_IG_LIMIT_CTRL(port) (0x0411 + ((port) * 0x1000))
648 #define LAN9646_PORTn_PRIO2_IG_LIMIT_CTRL(port) (0x0412 + ((port) * 0x1000))
649 #define LAN9646_PORTn_PRIO3_IG_LIMIT_CTRL(port) (0x0413 + ((port) * 0x1000))
650 #define LAN9646_PORTn_PRIO4_IG_LIMIT_CTRL(port) (0x0414 + ((port) * 0x1000))
651 #define LAN9646_PORTn_PRIO5_IG_LIMIT_CTRL(port) (0x0415 + ((port) * 0x1000))
652 #define LAN9646_PORTn_PRIO6_IG_LIMIT_CTRL(port) (0x0416 + ((port) * 0x1000))
653 #define LAN9646_PORTn_PRIO7_IG_LIMIT_CTRL(port) (0x0417 + ((port) * 0x1000))
654 #define LAN9646_PORTn_QUEUE0_EG_LIMIT_CTRL(port) (0x0420 + ((port) * 0x1000))
655 #define LAN9646_PORTn_QUEUE1_EG_LIMIT_CTRL(port) (0x0421 + ((port) * 0x1000))
656 #define LAN9646_PORTn_QUEUE2_EG_LIMIT_CTRL(port) (0x0422 + ((port) * 0x1000))
657 #define LAN9646_PORTn_QUEUE3_EG_LIMIT_CTRL(port) (0x0423 + ((port) * 0x1000))
658 #define LAN9646_PORTn_MIB_CTRL_STAT(port) (0x0500 + ((port) * 0x1000))
659 #define LAN9646_PORTn_MIB_DATA(port) (0x0504 + ((port) * 0x1000))
660 #define LAN9646_PORTn_ACL_ACCESS0(port) (0x0600 + ((port) * 0x1000))
661 #define LAN9646_PORTn_ACL_ACCESS1(port) (0x0601 + ((port) * 0x1000))
662 #define LAN9646_PORTn_ACL_ACCESS2(port) (0x0602 + ((port) * 0x1000))
663 #define LAN9646_PORTn_ACL_ACCESS3(port) (0x0603 + ((port) * 0x1000))
664 #define LAN9646_PORTn_ACL_ACCESS4(port) (0x0604 + ((port) * 0x1000))
665 #define LAN9646_PORTn_ACL_ACCESS5(port) (0x0605 + ((port) * 0x1000))
666 #define LAN9646_PORTn_ACL_ACCESS6(port) (0x0606 + ((port) * 0x1000))
667 #define LAN9646_PORTn_ACL_ACCESS7(port) (0x0607 + ((port) * 0x1000))
668 #define LAN9646_PORTn_ACL_ACCESS8(port) (0x0608 + ((port) * 0x1000))
669 #define LAN9646_PORTn_ACL_ACCESS9(port) (0x0609 + ((port) * 0x1000))
670 #define LAN9646_PORTn_ACL_ACCESS10(port) (0x060A + ((port) * 0x1000))
671 #define LAN9646_PORTn_ACL_ACCESS11(port) (0x060B + ((port) * 0x1000))
672 #define LAN9646_PORTn_ACL_ACCESS12(port) (0x060C + ((port) * 0x1000))
673 #define LAN9646_PORTn_ACL_ACCESS13(port) (0x060D + ((port) * 0x1000))
674 #define LAN9646_PORTn_ACL_ACCESS14(port) (0x060E + ((port) * 0x1000))
675 #define LAN9646_PORTn_ACL_ACCESS15(port) (0x060F + ((port) * 0x1000))
676 #define LAN9646_PORTn_ACL_BYTE_EN_MSB(port) (0x0610 + ((port) * 0x1000))
677 #define LAN9646_PORTn_ACL_BYTE_EN_LSB(port) (0x0611 + ((port) * 0x1000))
678 #define LAN9646_PORTn_ACL_ACCESS_CTRL0(port) (0x0612 + ((port) * 0x1000))
679 #define LAN9646_PORTn_MIRRORING_CTRL(port) (0x0800 + ((port) * 0x1000))
680 #define LAN9646_PORTn_PRIO_CTRL(port) (0x0801 + ((port) * 0x1000))
681 #define LAN9646_PORTn_IG_MAC_CTRL(port) (0x0802 + ((port) * 0x1000))
682 #define LAN9646_PORTn_AUTH_CTRL(port) (0x0803 + ((port) * 0x1000))
683 #define LAN9646_PORTn_PTR(port) (0x0804 + ((port) * 0x1000))
684 #define LAN9646_PORTn_PRIO_TO_QUEUE_MAPPING(port) (0x0808 + ((port) * 0x1000))
685 #define LAN9646_PORTn_POLICE_CTRL(port) (0x080C + ((port) * 0x1000))
686 #define LAN9646_PORTn_POLICE_QUEUE_RATE(port) (0x0820 + ((port) * 0x1000))
687 #define LAN9646_PORTn_POLICE_QUEUE_BURST_SIZE(port) (0x0824 + ((port) * 0x1000))
688 #define LAN9646_PORTn_WRED_PKT_MEM_CTRL0(port) (0x0830 + ((port) * 0x1000))
689 #define LAN9646_PORTn_WRED_PKT_MEM_CTRL1(port) (0x0834 + ((port) * 0x1000))
690 #define LAN9646_PORTn_WRED_QUEUE_CTRL0(port) (0x0840 + ((port) * 0x1000))
691 #define LAN9646_PORTn_WRED_QUEUE_CTRL1(port) (0x0844 + ((port) * 0x1000))
692 #define LAN9646_PORTn_WRED_QUEUE_PERF_MON_CTRL(port) (0x0848 + ((port) * 0x1000))
693 #define LAN9646_PORTn_TX_QUEUE_INDEX(port) (0x0900 + ((port) * 0x1000))
694 #define LAN9646_PORTn_TX_QUEUE_PVID(port) (0x0904 + ((port) * 0x1000))
695 #define LAN9646_PORTn_TX_QUEUE_CTRL0(port) (0x0914 + ((port) * 0x1000))
696 #define LAN9646_PORTn_TX_QUEUE_CTRL1(port) (0x0915 + ((port) * 0x1000))
697 #define LAN9646_PORTn_CTRL0(port) (0x0A00 + ((port) * 0x1000))
698 #define LAN9646_PORTn_CTRL1(port) (0x0A04 + ((port) * 0x1000))
699 #define LAN9646_PORTn_CTRL2(port) (0x0B00 + ((port) * 0x1000))
700 #define LAN9646_PORTn_MSTP_PTR(port) (0x0B01 + ((port) * 0x1000))
701 #define LAN9646_PORTn_MSTP_STATE(port) (0x0B04 + ((port) * 0x1000))
702 #define LAN9646_PORTn_ETH_PHY_REG(port, addr) (0x0100 + ((port) * 0x1000) + ((addr) * 2))
705 #define LAN9646_BMCR_RESET 0x8000
706 #define LAN9646_BMCR_LOOPBACK 0x4000
707 #define LAN9646_BMCR_SPEED_SEL_LSB 0x2000
708 #define LAN9646_BMCR_AN_EN 0x1000
709 #define LAN9646_BMCR_POWER_DOWN 0x0800
710 #define LAN9646_BMCR_ISOLATE 0x0400
711 #define LAN9646_BMCR_RESTART_AN 0x0200
712 #define LAN9646_BMCR_DUPLEX_MODE 0x0100
713 #define LAN9646_BMCR_COL_TEST 0x0080
714 #define LAN9646_BMCR_SPEED_SEL_MSB 0x0040
717 #define LAN9646_BMSR_100BT4 0x8000
718 #define LAN9646_BMSR_100BTX_FD 0x4000
719 #define LAN9646_BMSR_100BTX_HD 0x2000
720 #define LAN9646_BMSR_10BT_FD 0x1000
721 #define LAN9646_BMSR_10BT_HD 0x0800
722 #define LAN9646_BMSR_EXTENDED_STATUS 0x0100
723 #define LAN9646_BMSR_MF_PREAMBLE_SUPPR 0x0040
724 #define LAN9646_BMSR_AN_COMPLETE 0x0020
725 #define LAN9646_BMSR_REMOTE_FAULT 0x0010
726 #define LAN9646_BMSR_AN_CAPABLE 0x0008
727 #define LAN9646_BMSR_LINK_STATUS 0x0004
728 #define LAN9646_BMSR_JABBER_DETECT 0x0002
729 #define LAN9646_BMSR_EXTENDED_CAPABLE 0x0001
732 #define LAN9646_PHYID1_DEFAULT 0x0022
735 #define LAN9646_PHYID2_DEFAULT 0x1631
738 #define LAN9646_ANAR_NEXT_PAGE 0x8000
739 #define LAN9646_ANAR_REMOTE_FAULT 0x2000
740 #define LAN9646_ANAR_PAUSE 0x0C00
741 #define LAN9646_ANAR_100BT4 0x0200
742 #define LAN9646_ANAR_100BTX_FD 0x0100
743 #define LAN9646_ANAR_100BTX_HD 0x0080
744 #define LAN9646_ANAR_10BT_FD 0x0040
745 #define LAN9646_ANAR_10BT_HD 0x0020
746 #define LAN9646_ANAR_SELECTOR 0x001F
747 #define LAN9646_ANAR_SELECTOR_DEFAULT 0x0001
750 #define LAN9646_ANLPAR_NEXT_PAGE 0x8000
751 #define LAN9646_ANLPAR_ACK 0x4000
752 #define LAN9646_ANLPAR_REMOTE_FAULT 0x2000
753 #define LAN9646_ANLPAR_PAUSE 0x0C00
754 #define LAN9646_ANLPAR_100BT4 0x0200
755 #define LAN9646_ANLPAR_100BTX_FD 0x0100
756 #define LAN9646_ANLPAR_100BTX_HD 0x0080
757 #define LAN9646_ANLPAR_10BT_FD 0x0040
758 #define LAN9646_ANLPAR_10BT_HD 0x0020
759 #define LAN9646_ANLPAR_SELECTOR 0x001F
760 #define LAN9646_ANLPAR_SELECTOR_DEFAULT 0x0001
763 #define LAN9646_ANER_PAR_DETECT_FAULT 0x0010
764 #define LAN9646_ANER_LP_NEXT_PAGE_ABLE 0x0008
765 #define LAN9646_ANER_NEXT_PAGE_ABLE 0x0004
766 #define LAN9646_ANER_PAGE_RECEIVED 0x0002
767 #define LAN9646_ANER_LP_AN_ABLE 0x0001
770 #define LAN9646_ANNPR_NEXT_PAGE 0x8000
771 #define LAN9646_ANNPR_MSG_PAGE 0x2000
772 #define LAN9646_ANNPR_ACK2 0x1000
773 #define LAN9646_ANNPR_TOGGLE 0x0800
774 #define LAN9646_ANNPR_MESSAGE 0x07FF
777 #define LAN9646_ANLPNPR_NEXT_PAGE 0x8000
778 #define LAN9646_ANLPNPR_ACK 0x4000
779 #define LAN9646_ANLPNPR_MSG_PAGE 0x2000
780 #define LAN9646_ANLPNPR_ACK2 0x1000
781 #define LAN9646_ANLPNPR_TOGGLE 0x0800
782 #define LAN9646_ANLPNPR_MESSAGE 0x07FF
785 #define LAN9646_GBCR_TEST_MODE 0xE000
786 #define LAN9646_GBCR_MS_MAN_CONF_EN 0x1000
787 #define LAN9646_GBCR_MS_MAN_CONF_VAL 0x0800
788 #define LAN9646_GBCR_PORT_TYPE 0x0400
789 #define LAN9646_GBCR_1000BT_FD 0x0200
790 #define LAN9646_GBCR_1000BT_HD 0x0100
793 #define LAN9646_GBSR_MS_CONF_FAULT 0x8000
794 #define LAN9646_GBSR_MS_CONF_RES 0x4000
795 #define LAN9646_GBSR_LOCAL_RECEIVER_STATUS 0x2000
796 #define LAN9646_GBSR_REMOTE_RECEIVER_STATUS 0x1000
797 #define LAN9646_GBSR_LP_1000BT_FD 0x0800
798 #define LAN9646_GBSR_LP_1000BT_HD 0x0400
799 #define LAN9646_GBSR_IDLE_ERR_COUNT 0x00FF
802 #define LAN9646_MMDACR_FUNC 0xC000
803 #define LAN9646_MMDACR_FUNC_ADDR 0x0000
804 #define LAN9646_MMDACR_FUNC_DATA_NO_POST_INC 0x4000
805 #define LAN9646_MMDACR_FUNC_DATA_POST_INC_RW 0x8000
806 #define LAN9646_MMDACR_FUNC_DATA_POST_INC_W 0xC000
807 #define LAN9646_MMDACR_DEVAD 0x001F
810 #define LAN9646_GBESR_1000BX_FD 0x8000
811 #define LAN9646_GBESR_1000BX_HD 0x4000
812 #define LAN9646_GBESR_1000BT_FD 0x2000
813 #define LAN9646_GBESR_1000BT_HD 0x1000
816 #define LAN9646_RLB_REMOTE_LOOPBACK 0x0100
819 #define LAN9646_LINKMD_TEST_EN 0x8000
820 #define LAN9646_LINKMD_PAIR 0x3000
821 #define LAN9646_LINKMD_PAIR_A 0x0000
822 #define LAN9646_LINKMD_PAIR_B 0x1000
823 #define LAN9646_LINKMD_PAIR_C 0x2000
824 #define LAN9646_LINKMD_PAIR_D 0x3000
825 #define LAN9646_LINKMD_STATUS 0x0300
826 #define LAN9646_LINKMD_STATUS_NORMAL 0x0000
827 #define LAN9646_LINKMD_STATUS_OPEN 0x0100
828 #define LAN9646_LINKMD_STATUS_SHORT 0x0200
829 #define LAN9646_LINKMD_RESULT 0x00FF
832 #define LAN9646_DPMAPCSS_1000BT_LINK_STATUS 0x0002
833 #define LAN9646_DPMAPCSS_100BTX_LINK_STATUS 0x0001
836 #define LAN9646_ICSR_JABBER_IE 0x8000
837 #define LAN9646_ICSR_RECEIVE_ERROR_IE 0x4000
838 #define LAN9646_ICSR_PAGE_RECEIVED_IE 0x2000
839 #define LAN9646_ICSR_PAR_DETECT_FAULT_IE 0x1000
840 #define LAN9646_ICSR_LP_ACK_IE 0x0800
841 #define LAN9646_ICSR_LINK_DOWN_IE 0x0400
842 #define LAN9646_ICSR_REMOTE_FAULT_IE 0x0200
843 #define LAN9646_ICSR_LINK_UP_IE 0x0100
844 #define LAN9646_ICSR_JABBER_IF 0x0080
845 #define LAN9646_ICSR_RECEIVE_ERROR_IF 0x0040
846 #define LAN9646_ICSR_PAGE_RECEIVED_IF 0x0020
847 #define LAN9646_ICSR_PAR_DETECT_FAULT_IF 0x0010
848 #define LAN9646_ICSR_LP_ACK_IF 0x0008
849 #define LAN9646_ICSR_LINK_DOWN_IF 0x0004
850 #define LAN9646_ICSR_REMOTE_FAULT_IF 0x0002
851 #define LAN9646_ICSR_LINK_UP_IF 0x0001
854 #define LAN9646_AUTOMDI_MDI_SET 0x0080
855 #define LAN9646_AUTOMDI_SWAP_OFF 0x0040
858 #define LAN9646_PHYCON_JABBER_EN 0x0200
859 #define LAN9646_PHYCON_SPEED_1000BT 0x0040
860 #define LAN9646_PHYCON_SPEED_100BTX 0x0020
861 #define LAN9646_PHYCON_SPEED_10BT 0x0010
862 #define LAN9646_PHYCON_DUPLEX_STATUS 0x0008
863 #define LAN9646_PHYCON_1000BT_MS_STATUS 0x0004
866 #define LAN9646_MMD_LED_MODE_LED_MODE 0x0010
867 #define LAN9646_MMD_LED_MODE_LED_MODE_TRI_COLOR_DUAL 0x0000
868 #define LAN9646_MMD_LED_MODE_LED_MODE_SINGLE 0x0010
869 #define LAN9646_MMD_LED_MODE_RESERVED 0x000F
870 #define LAN9646_MMD_LED_MODE_RESERVED_DEFAULT 0x0001
873 #define LAN9646_MMD_EEE_ADV_1000BT_EEE_EN 0x0004
874 #define LAN9646_MMD_EEE_ADV_100BT_EEE_EN 0x0002
877 #define LAN9646_SGMII_CTRL_SOFT_RESET 0x8000
878 #define LAN9646_SGMII_CTRL_LOCAL_LOOPBACK 0x4000
879 #define LAN9646_SGMII_CTRL_SPEED_SEL_LSB 0x2000
880 #define LAN9646_SGMII_CTRL_AN_EN 0x1000
881 #define LAN9646_SGMII_CTRL_POWER_DOWN 0x0800
882 #define LAN9646_SGMII_CTRL_RESTART_AN 0x0200
883 #define LAN9646_SGMII_CTRL_DUPLEX_MODE 0x0100
884 #define LAN9646_SGMII_CTRL_SPEED_SEL_MSB 0x0040
887 #define LAN9646_SGMII_STATUS_AN_COMPLETE 0x0020
888 #define LAN9646_SGMII_STATUS_REMOTE_FAULT 0x0010
889 #define LAN9646_SGMII_STATUS_LINK_STATUS 0x0004
892 #define LAN9646_SGMII_PHYID1_DEFAULT 0x7996
895 #define LAN9646_SGMII_PHYID2_DEFAULT 0xCED0
898 #define LAN9646_SGMII_ANAR_NEXT_PAGE 0x8000
899 #define LAN9646_SGMII_ANAR_REMOTE_FAULT 0x3000
900 #define LAN9646_SGMII_ANAR_REMOTE_FAULT_NO_ERROR 0x0000
901 #define LAN9646_SGMII_ANAR_REMOTE_FAULT_OFFINE 0x1000
902 #define LAN9646_SGMII_ANAR_REMOTE_FAULT_LINK_FAILURE 0x2000
903 #define LAN9646_SGMII_ANAR_REMOTE_FAULT_AN_ERROR 0x3000
904 #define LAN9646_SGMII_ANAR_PAUSE 0x0180
905 #define LAN9646_SGMII_ANAR_HALF_DUPLEX 0x0040
906 #define LAN9646_SGMII_ANAR_FULL_DUPLEX 0x0020
909 #define LAN9646_SGMII_ANLPAR_NEXT_PAGE 0x8000
910 #define LAN9646_SGMII_ANLPAR_ACK 0x4000
911 #define LAN9646_SGMII_ANLPAR_REMOTE_FAULT 0x3000
912 #define LAN9646_SGMII_ANLPAR_REMOTE_FAULT_NO_ERROR 0x0000
913 #define LAN9646_SGMII_ANLPAR_REMOTE_FAULT_OFFINE 0x1000
914 #define LAN9646_SGMII_ANLPAR_REMOTE_FAULT_LINK_FAILURE 0x2000
915 #define LAN9646_SGMII_ANLPAR_REMOTE_FAULT_AN_ERROR 0x3000
916 #define LAN9646_SGMII_ANLPAR_PAUSE 0x0180
917 #define LAN9646_SGMII_ANLPAR_HALF_DUPLEX 0x0040
918 #define LAN9646_SGMII_ANLPAR_FULL_DUPLEX 0x0020
921 #define LAN9646_SGMII_ANER_PAGE_RECEIVED 0x0002
924 #define LAN9646_SGMII_DIGITAL_CTRL_REMOTE_LOOPBACK 0x4000
925 #define LAN9646_SGMII_DIGITAL_CTRL_POWER_SAVE 0x0800
928 #define LAN9646_SGMII_AN_CTRL_LINK_STATUS 0x0010
929 #define LAN9646_SGMII_AN_CTRL_TX_CONFIG_MASTER 0x0008
930 #define LAN9646_SGMII_AN_CTRL_PCS_MODE 0x0006
931 #define LAN9646_SGMII_AN_CTRL_PCS_MODE_SERDES 0x0000
932 #define LAN9646_SGMII_AN_CTRL_PCS_MODE_SGMII 0x0004
933 #define LAN9646_SGMII_AN_CTRL_AN_COMPLETE_INT_EN 0x0001
936 #define LAN9646_SGMII_AN_STATUS_LINK_STATUS 0x0010
937 #define LAN9646_SGMII_AN_STATUS_LINK_SPEED 0x000C
938 #define LAN9646_SGMII_AN_STATUS_LINK_SPEED_10MBPS 0x0000
939 #define LAN9646_SGMII_AN_STATUS_LINK_SPEED_100MBPS 0x0004
940 #define LAN9646_SGMII_AN_STATUS_LINK_SPEED_1000MBPS 0x0008
941 #define LAN9646_SGMII_AN_STATUS_FULL_DUPLEX 0x0002
942 #define LAN9646_SGMII_AN_STATUS_AN_COMPLETE_INT 0x0001
945 #define LAN9646_CHIP_ID0_DEFAULT 0x00
948 #define LAN9646_CHIP_ID1_DEFAULT 0x94
951 #define LAN9646_CHIP_ID2_DEFAULT 0x77
954 #define LAN9646_CHIP_ID3_REVISION_ID 0xF0
955 #define LAN9646_CHIP_ID3_GLOBAL_SOFT_RESET 0x01
958 #define LAN9646_PME_PIN_CTRL_PME_PIN_OUT_EN 0x02
959 #define LAN9646_PME_PIN_CTRL_PME_PIN_OUT_POL 0x01
962 #define LAN9646_GLOBAL_INT_STAT_LUE 0x80000000
965 #define LAN9646_GLOBAL_INT_MASK_LUE 0x80000000
968 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT7 0x00000040
969 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT6 0x00000020
970 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT4 0x00000008
971 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT3 0x00000004
972 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT2 0x00000002
973 #define LAN9646_GLOBAL_PORT_INT_STAT_PORT1 0x00000001
976 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT7 0x00000040
977 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT6 0x00000020
978 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT4 0x00000008
979 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT3 0x00000004
980 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT2 0x00000002
981 #define LAN9646_GLOBAL_PORT_INT_MASK_PORT1 0x00000001
984 #define LAN9646_SERIAL_IO_CTRL_MIIM_PREAMBLE_SUPPR 0x04
985 #define LAN9646_SERIAL_IO_CTRL_AUTO_SPI_DATA_OUT_EDGE_SEL 0x02
986 #define LAN9646_SERIAL_IO_CTRL_SPI_DATA_OUT_EDGE_SEL 0x01
987 #define LAN9646_SERIAL_IO_CTRL_SPI_DATA_OUT_EDGE_SEL_FALLING 0x00
988 #define LAN9646_SERIAL_IO_CTRL_SPI_DATA_OUT_EDGE_SEL_RISING 0x01
991 #define LAN9646_OUT_CLK_CTRL_CLKO_25_125_EN 0x02
992 #define LAN9646_OUT_CLK_CTRL_CLKO_25_125_FREQ 0x01
993 #define LAN9646_OUT_CLK_CTRL_CLKO_25_125_FREQ_25MHZ 0x00
994 #define LAN9646_OUT_CLK_CTRL_CLKO_25_125_FREQ_125MHZ 0x01
997 #define LAN9646_IBA_CTRL_IBA_EN 0x80000000
998 #define LAN9646_IBA_CTRL_DEST_MAC_ADDR_MATCH_EN 0x40000000
999 #define LAN9646_IBA_CTRL_IBA_RESET 0x20000000
1000 #define LAN9646_IBA_CTRL_RESP_PRIO_QUEUE 0x00C00000
1001 #define LAN9646_IBA_CTRL_RESP_PRIO_QUEUE_DEFAULT 0x00400000
1002 #define LAN9646_IBA_CTRL_IBA_COMM 0x00070000
1003 #define LAN9646_IBA_CTRL_IBA_COMM_PORT1 0x00000000
1004 #define LAN9646_IBA_CTRL_IBA_COMM_PORT2 0x00010000
1005 #define LAN9646_IBA_CTRL_IBA_COMM_PORT3 0x00020000
1006 #define LAN9646_IBA_CTRL_IBA_COMM_PORT4 0x00030000
1007 #define LAN9646_IBA_CTRL_IBA_COMM_PORT6 0x00050000
1008 #define LAN9646_IBA_CTRL_IBA_COMM_PORT7 0x00060000
1009 #define LAN9646_IBA_CTRL_TPID 0x0000FFFF
1010 #define LAN9646_IBA_CTRL_TPID_DEFAULT 0x000040FE
1013 #define LAN9646_IO_DRIVE_STRENGTH_HIGH_SPEED_DRIVE_STRENGTH 0x70
1014 #define LAN9646_IO_DRIVE_STRENGTH_LOW_SPEED_DRIVE_STRENGTH 0x07
1017 #define LAN9646_IBA_OP_STAT1_GOOD_PKT_DETECT 0x80000000
1018 #define LAN9646_IBA_OP_STAT1_RESP_PKT_TX_DONE 0x40000000
1019 #define LAN9646_IBA_OP_STAT1_EXEC_DONE 0x20000000
1020 #define LAN9646_IBA_OP_STAT1_MAC_ADDR_MISMATCH_ERR 0x00004000
1021 #define LAN9646_IBA_OP_STAT1_ACCESS_FORMAT_ERR 0x00002000
1022 #define LAN9646_IBA_OP_STAT1_ACCESS_CODE_ERR 0x00001000
1023 #define LAN9646_IBA_OP_STAT1_ACCESS_CMD_ERR 0x00000800
1024 #define LAN9646_IBA_OP_STAT1_OVERSIZE_PKT_ERR 0x00000400
1025 #define LAN9646_IBA_OP_STAT1_ACCESS_CODE_ERR_LOC 0x0000007F
1028 #define LAN9646_LED_OVERRIDE_OVERRIDE 0x000003FF
1029 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED1_0 0x00000001
1030 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED1_1 0x00000002
1031 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED2_0 0x00000004
1032 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED2_1 0x00000008
1033 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED3_0 0x00000010
1034 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED3_1 0x00000020
1035 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED4_0 0x00000040
1036 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED4_1 0x00000080
1037 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED5_0 0x00000100
1038 #define LAN9646_LED_OVERRIDE_OVERRIDE_LED5_1 0x00000200
1041 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL 0x000003FF
1042 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED1_0 0x00000001
1043 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED1_1 0x00000002
1044 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED2_0 0x00000004
1045 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED2_1 0x00000008
1046 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED3_0 0x00000010
1047 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED3_1 0x00000020
1048 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED4_0 0x00000040
1049 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED4_1 0x00000080
1050 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED5_0 0x00000100
1051 #define LAN9646_LED_OUTPUT_GPIO_OUT_CTRL_LED5_1 0x00000200
1054 #define LAN9646_PWR_DOWN_CTRL0_PLL_PWR_DOWN 0x20
1055 #define LAN9646_PWR_DOWN_CTRL0_PWR_MGMT_MODE 0x18
1056 #define LAN9646_PWR_DOWN_CTRL0_PWR_MGMT_MODE_NORMAL 0x00
1057 #define LAN9646_PWR_DOWN_CTRL0_PWR_MGMT_MODE_EDPD 0x08
1058 #define LAN9646_PWR_DOWN_CTRL0_PWR_MGMT_MODE_SOFT_PWR_DOWN 0x10
1061 #define LAN9646_LED_STRAP_IN_STRAP_IN 0x000003FF
1062 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED1_0 0x00000001
1063 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED1_1 0x00000002
1064 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED2_0 0x00000004
1065 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED2_1 0x00000008
1066 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED3_0 0x00000010
1067 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED3_1 0x00000020
1068 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED4_0 0x00000040
1069 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED4_1 0x00000080
1070 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED5_0 0x00000100
1071 #define LAN9646_LED_STRAP_IN_STRAP_IN_LED5_1 0x00000200
1074 #define LAN9646_SWITCH_OP_DOUBLE_TAG_EN 0x80
1075 #define LAN9646_SWITCH_OP_SOFT_HARD_RESET 0x02
1076 #define LAN9646_SWITCH_OP_START_SWITCH 0x01
1079 #define LAN9646_SWITCH_MTU_MTU 0x3FFF
1080 #define LAN9646_SWITCH_MTU_MTU_DEFAULT 0x07D0
1083 #define LAN9646_SWITCH_LUE_CTRL0_VLAN_EN 0x80
1084 #define LAN9646_SWITCH_LUE_CTRL0_DROP_INVALID_VID 0x40
1085 #define LAN9646_SWITCH_LUE_CTRL0_AGE_COUNT 0x38
1086 #define LAN9646_SWITCH_LUE_CTRL0_AGE_COUNT_DEFAULT 0x20
1087 #define LAN9646_SWITCH_LUE_CTRL0_RESERVED_MCAST_LOOKUP_EN 0x04
1088 #define LAN9646_SWITCH_LUE_CTRL0_HASH_OPTION 0x03
1089 #define LAN9646_SWITCH_LUE_CTRL0_HASH_OPTION_NONE 0x00
1090 #define LAN9646_SWITCH_LUE_CTRL0_HASH_OPTION_CRC 0x01
1091 #define LAN9646_SWITCH_LUE_CTRL0_HASH_OPTION_XOR 0x02
1094 #define LAN9646_SWITCH_LUE_CTRL1_UNICAST_LEARNING_DIS 0x80
1095 #define LAN9646_SWITCH_LUE_CTRL1_SELF_ADDR_FILT 0x40
1096 #define LAN9646_SWITCH_LUE_CTRL1_FLUSH_ALU_TABLE 0x20
1097 #define LAN9646_SWITCH_LUE_CTRL1_FLUSH_MSTP_ENTRIES 0x10
1098 #define LAN9646_SWITCH_LUE_CTRL1_MCAST_SRC_ADDR_FILT 0x08
1099 #define LAN9646_SWITCH_LUE_CTRL1_AGING_EN 0x04
1100 #define LAN9646_SWITCH_LUE_CTRL1_FAST_AGING 0x02
1101 #define LAN9646_SWITCH_LUE_CTRL1_LINK_DOWN_FLUSH 0x01
1104 #define LAN9646_SWITCH_LUE_CTRL2_DOUBLE_TAG_MCAST_TRAP 0x40
1105 #define LAN9646_SWITCH_LUE_CTRL2_DYNAMIC_ENTRY_EG_VLAN_FILT 0x20
1106 #define LAN9646_SWITCH_LUE_CTRL2_STATIC_ENTRY_EG_VLAN_FILT 0x10
1107 #define LAN9646_SWITCH_LUE_CTRL2_FLUSH_OPTION 0x0C
1108 #define LAN9646_SWITCH_LUE_CTRL2_FLUSH_OPTION_NONE 0x00
1109 #define LAN9646_SWITCH_LUE_CTRL2_FLUSH_OPTION_DYNAMIC 0x04
1110 #define LAN9646_SWITCH_LUE_CTRL2_FLUSH_OPTION_STATIC 0x08
1111 #define LAN9646_SWITCH_LUE_CTRL2_FLUSH_OPTION_BOTH 0x0C
1112 #define LAN9646_SWITCH_LUE_CTRL2_MAC_ADDR_PRIORITY 0x03
1115 #define LAN9646_SWITCH_LUE_CTRL3_AGE_PERIOD 0xFF
1116 #define LAN9646_SWITCH_LUE_CTRL3_AGE_PERIOD_DEFAULT 0x4B
1119 #define LAN9646_ALU_TABLE_INT_LEARN_FAIL 0x04
1120 #define LAN9646_ALU_TABLE_INT_ALMOST_FULL 0x02
1121 #define LAN9646_ALU_TABLE_INT_WRITE_FAIL 0x01
1124 #define LAN9646_ALU_TABLE_MASK_LEARN_FAIL 0x04
1125 #define LAN9646_ALU_TABLE_MASK_ALMOST_FULL 0x02
1126 #define LAN9646_ALU_TABLE_MASK_WRITE_FAIL 0x01
1129 #define LAN9646_ALU_TABLE_ENTRY_INDEX0_ALMOST_FULL_ENTRY_INDEX 0x0FFF
1130 #define LAN9646_ALU_TABLE_ENTRY_INDEX0_FAIL_WRITE_INDEX 0x03FF
1133 #define LAN9646_ALU_TABLE_ENTRY_INDEX1_FAIL_LEARN_INDEX 0x03FF
1136 #define LAN9646_ALU_TABLE_ENTRY_INDEX2_CPU_ACCESS_INDEX 0x03FF
1139 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD 0x80000000
1140 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP 0x0000007F
1141 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT1 0x00000001
1142 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT2 0x00000002
1143 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT3 0x00000004
1144 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT4 0x00000008
1145 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT6 0x00000020
1146 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_PORT7 0x00000040
1147 #define LAN9646_UNKNOWN_UNICAST_CTRL_FWD_MAP_ALL 0x0000007F
1150 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD 0x80000000
1151 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP 0x0000007F
1152 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT1 0x00000001
1153 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT2 0x00000002
1154 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT3 0x00000004
1155 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT4 0x00000008
1156 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT6 0x00000020
1157 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_PORT7 0x00000040
1158 #define LAN9646_UNKONWN_MULTICAST_CTRL_FWD_MAP_ALL 0x0000007F
1161 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD 0x80000000
1162 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP 0x0000007F
1163 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT1 0x00000001
1164 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT2 0x00000002
1165 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT3 0x00000004
1166 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT4 0x00000008
1167 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT6 0x00000020
1168 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_PORT7 0x00000040
1169 #define LAN9646_UNKNOWN_VLAN_ID_CTRL_FWD_MAP_ALL 0x0000007F
1172 #define LAN9646_SWITCH_MAC_CTRL0_ALT_BACK_OFF_MODE 0x80
1173 #define LAN9646_SWITCH_MAC_CTRL0_FRAME_LEN_CHECK_EN 0x08
1174 #define LAN9646_SWITCH_MAC_CTRL0_FLOW_CTRL_PKT_DROP_MODE 0x02
1175 #define LAN9646_SWITCH_MAC_CTRL0_AGGRESSIVE_BACK_OFF_EN 0x01
1178 #define LAN9646_SWITCH_MAC_CTRL1_MCAST_STORM_PROTECT_DIS 0x40
1179 #define LAN9646_SWITCH_MAC_CTRL1_BACK_PRESSURE_MODE 0x20
1180 #define LAN9646_SWITCH_MAC_CTRL1_FLOW_CTRL_FAIR_MODE 0x10
1181 #define LAN9646_SWITCH_MAC_CTRL1_NO_EXCESSIVE_COL_DROP 0x08
1182 #define LAN9646_SWITCH_MAC_CTRL1_JUMBO_PKT_SUPPORT 0x04
1183 #define LAN9646_SWITCH_MAC_CTRL1_MAX_PKT_SIZE_CHECK_DIS 0x02
1184 #define LAN9646_SWITCH_MAC_CTRL1_PASS_SHORT_PKT 0x01
1187 #define LAN9646_SWITCH_MAC_CTRL2_NULL_VID_REPLACEMENT 0x08
1188 #define LAN9646_SWITCH_MAC_CTRL2_BCAST_STORM_PROTECT_RATE_MSB 0x07
1191 #define LAN9646_SWITCH_MAC_CTRL3_BCAST_STORM_PROTECT_RATE_LSB 0xFF
1194 #define LAN9646_SWITCH_MAC_CTRL4_PASS_FLOW_CTRL_PKT 0x01
1197 #define LAN9646_SWITCH_MAC_CTRL5_IG_RATE_LIMIT_PERIOD 0x30
1198 #define LAN9646_SWITCH_MAC_CTRL5_IG_RATE_LIMIT_PERIOD_16MS 0x00
1199 #define LAN9646_SWITCH_MAC_CTRL5_IG_RATE_LIMIT_PERIOD_64MS 0x10
1200 #define LAN9646_SWITCH_MAC_CTRL5_IG_RATE_LIMIT_PERIOD_256MS 0x20
1201 #define LAN9646_SWITCH_MAC_CTRL5_QUEUE_BASED_EG_RATE_LIMITE_EN 0x08
1204 #define LAN9646_SWITCH_MIB_CTRL_FLUSH 0x80
1205 #define LAN9646_SWITCH_MIB_CTRL_FREEZE 0x40
1208 #define LAN9646_GLOBAL_PORT_MIRROR_SNOOP_CTRL_IGMP_SNOOP_EN 0x40
1209 #define LAN9646_GLOBAL_PORT_MIRROR_SNOOP_CTRL_MLD_SNOOP_OPT 0x08
1210 #define LAN9646_GLOBAL_PORT_MIRROR_SNOOP_CTRL_MLD_SNOOP_EN 0x04
1211 #define LAN9646_GLOBAL_PORT_MIRROR_SNOOP_CTRL_SNIFF_MODE_SEL 0x01
1214 #define LAN9646_WRED_DIFFSERV_COLOR_MAPPING_RED 0x30
1215 #define LAN9646_WRED_DIFFSERV_COLOR_MAPPING_YELLOW 0x0C
1216 #define LAN9646_WRED_DIFFSERV_COLOR_MAPPING_GREEN 0x03
1219 #define LAN9646_QUEUE_MGMT_CTRL0_PRIORITY_2Q 0x000000C0
1220 #define LAN9646_QUEUE_MGMT_CTRL0_UNICAST_PORT_VLAN_DISCARD 0x00000002
1223 #define LAN9646_VLAN_TABLE_ENTRY0_VALID 0x80000000
1224 #define LAN9646_VLAN_TABLE_ENTRY0_FORWARD_OPTION 0x08000000
1225 #define LAN9646_VLAN_TABLE_ENTRY0_PRIORITY 0x07000000
1226 #define LAN9646_VLAN_TABLE_ENTRY0_MSTP_INDEX 0x00007000
1227 #define LAN9646_VLAN_TABLE_ENTRY0_FID 0x0000007F
1230 #define LAN9646_VLAN_TABLE_ENTRY1_PORT_UNTAG 0x0000007F
1231 #define LAN9646_VLAN_TABLE_ENTRY1_PORT7_UNTAG 0x00000040
1232 #define LAN9646_VLAN_TABLE_ENTRY1_PORT6_UNTAG 0x00000020
1233 #define LAN9646_VLAN_TABLE_ENTRY1_PORT4_UNTAG 0x00000008
1234 #define LAN9646_VLAN_TABLE_ENTRY1_PORT3_UNTAG 0x00000004
1235 #define LAN9646_VLAN_TABLE_ENTRY1_PORT2_UNTAG 0x00000002
1236 #define LAN9646_VLAN_TABLE_ENTRY1_PORT1_UNTAG 0x00000001
1239 #define LAN9646_VLAN_TABLE_ENTRY2_PORT_FORWARD 0x0000007F
1240 #define LAN9646_VLAN_TABLE_ENTRY2_PORT7_FORWARD 0x00000040
1241 #define LAN9646_VLAN_TABLE_ENTRY2_PORT6_FORWARD 0x00000020
1242 #define LAN9646_VLAN_TABLE_ENTRY2_PORT4_FORWARD 0x00000008
1243 #define LAN9646_VLAN_TABLE_ENTRY2_PORT3_FORWARD 0x00000004
1244 #define LAN9646_VLAN_TABLE_ENTRY2_PORT2_FORWARD 0x00000002
1245 #define LAN9646_VLAN_TABLE_ENTRY2_PORT1_FORWARD 0x00000001
1248 #define LAN9646_VLAN_TABLE_INDEX_VLAN_INDEX 0x0FFF
1251 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_START_FINISH 0x80
1252 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_ACTION 0x03
1253 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_ACTION_NOP 0x00
1254 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_ACTION_WRITE 0x01
1255 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_ACTION_READ 0x02
1256 #define LAN9646_VLAN_TABLE_ACCESS_CTRL_ACTION_CLEAR 0x03
1259 #define LAN9646_ALU_TABLE_INDEX0_FID_INDEX 0x007F0000
1260 #define LAN9646_ALU_TABLE_INDEX0_MAC_INDEX_MSB 0x0000FFFF
1263 #define LAN9646_ALU_TABLE_INDEX1_MAC_INDEX_LSB 0xFFFFFFFF
1266 #define LAN9646_ALU_TABLE_CTRL_VALID_COUNT 0x3FFF0000
1267 #define LAN9646_ALU_TABLE_CTRL_START_FINISH 0x00000080
1268 #define LAN9646_ALU_TABLE_CTRL_VALID 0x00000040
1269 #define LAN9646_ALU_TABLE_CTRL_VALID_ENTRY_OR_SEARCH_END 0x00000020
1270 #define LAN9646_ALU_TABLE_CTRL_DIRECT 0x00000004
1271 #define LAN9646_ALU_TABLE_CTRL_ACTION 0x00000003
1272 #define LAN9646_ALU_TABLE_CTRL_ACTION_NOP 0x00000000
1273 #define LAN9646_ALU_TABLE_CTRL_ACTION_WRITE 0x00000001
1274 #define LAN9646_ALU_TABLE_CTRL_ACTION_READ 0x00000002
1275 #define LAN9646_ALU_TABLE_CTRL_ACTION_SEARCH 0x00000003
1278 #define LAN9646_STATIC_MCAST_TABLE_CTRL_TABLE_INDEX 0x003F0000
1279 #define LAN9646_STATIC_MCAST_TABLE_CTRL_START_FINISH 0x00000080
1280 #define LAN9646_STATIC_MCAST_TABLE_CTRL_TABLE_SELECT 0x00000002
1281 #define LAN9646_STATIC_MCAST_TABLE_CTRL_ACTION 0x00000001
1282 #define LAN9646_STATIC_MCAST_TABLE_CTRL_ACTION_READ 0x00000000
1283 #define LAN9646_STATIC_MCAST_TABLE_CTRL_ACTION_WRITE 0x00000001
1286 #define LAN9646_ALU_TABLE_ENTRY1_STATIC 0x80000000
1287 #define LAN9646_ALU_TABLE_ENTRY1_SRC_FILTER 0x40000000
1288 #define LAN9646_ALU_TABLE_ENTRY1_DES_FILTER 0x20000000
1289 #define LAN9646_ALU_TABLE_ENTRY1_PRIORITY 0x1C000000
1290 #define LAN9646_ALU_TABLE_ENTRY1_AGE_COUNT 0x1C000000
1291 #define LAN9646_ALU_TABLE_ENTRY1_MSTP 0x00000007
1294 #define LAN9646_ALU_TABLE_ENTRY2_OVERRIDE 0x80000000
1295 #define LAN9646_ALU_TABLE_ENTRY2_PORT_FORWARD 0x0000007F
1296 #define LAN9646_ALU_TABLE_ENTRY2_PORT7_FORWARD 0x00000040
1297 #define LAN9646_ALU_TABLE_ENTRY2_PORT6_FORWARD 0x00000020
1298 #define LAN9646_ALU_TABLE_ENTRY2_PORT4_FORWARD 0x00000008
1299 #define LAN9646_ALU_TABLE_ENTRY2_PORT3_FORWARD 0x00000004
1300 #define LAN9646_ALU_TABLE_ENTRY2_PORT2_FORWARD 0x00000002
1301 #define LAN9646_ALU_TABLE_ENTRY2_PORT1_FORWARD 0x00000001
1304 #define LAN9646_ALU_TABLE_ENTRY3_FID 0x007F0000
1305 #define LAN9646_ALU_TABLE_ENTRY3_MAC_ADDR_MSB 0x0000FFFF
1308 #define LAN9646_ALU_TABLE_ENTRY4_MAC_ADDR_LSB 0xFFFFFFFF
1311 #define LAN9646_STATIC_TABLE_ENTRY1_VALID 0x80000000
1312 #define LAN9646_STATIC_TABLE_ENTRY1_SRC_FILTER 0x40000000
1313 #define LAN9646_STATIC_TABLE_ENTRY1_DES_FILTER 0x20000000
1314 #define LAN9646_STATIC_TABLE_ENTRY1_PRIORITY 0x1C000000
1315 #define LAN9646_STATIC_TABLE_ENTRY1_MSTP 0x00000007
1318 #define LAN9646_STATIC_TABLE_ENTRY2_OVERRIDE 0x80000000
1319 #define LAN9646_STATIC_TABLE_ENTRY2_USE_FID 0x40000000
1320 #define LAN9646_STATIC_TABLE_ENTRY2_PORT_FORWARD 0x0000007F
1321 #define LAN9646_STATIC_TABLE_ENTRY2_PORT7_FORWARD 0x00000040
1322 #define LAN9646_STATIC_TABLE_ENTRY2_PORT6_FORWARD 0x00000020
1323 #define LAN9646_STATIC_TABLE_ENTRY2_PORT4_FORWARD 0x00000008
1324 #define LAN9646_STATIC_TABLE_ENTRY2_PORT3_FORWARD 0x00000004
1325 #define LAN9646_STATIC_TABLE_ENTRY2_PORT2_FORWARD 0x00000002
1326 #define LAN9646_STATIC_TABLE_ENTRY2_PORT1_FORWARD 0x00000001
1329 #define LAN9646_STATIC_TABLE_ENTRY3_FID 0x007F0000
1330 #define LAN9646_STATIC_TABLE_ENTRY3_MAC_ADDR_MSB 0x0000FFFF
1333 #define LAN9646_STATIC_TABLE_ENTRY4_MAC_ADDR_LSB 0xFFFFFFFF
1336 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT_FORWARD 0x0000007F
1337 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT7_FORWARD 0x00000040
1338 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT6_FORWARD 0x00000020
1339 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT4_FORWARD 0x00000008
1340 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT3_FORWARD 0x00000004
1341 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT2_FORWARD 0x00000002
1342 #define LAN9646_RES_MCAST_TABLE_ENTRY2_PORT1_FORWARD 0x00000001
1345 #define LAN9646_PORTn_DEFAULT_TAG0_PCP 0xE0
1346 #define LAN9646_PORTn_DEFAULT_TAG0_DEI 0x10
1347 #define LAN9646_PORTn_DEFAULT_TAG0_VID_MSB 0x0F
1350 #define LAN9646_PORTn_DEFAULT_TAG1_VID_LSB 0xFF
1353 #define LAN9646_PORTn_INT_STATUS_SGMII_AN_DONE 0x08
1354 #define LAN9646_PORTn_INT_STATUS_PHY 0x02
1355 #define LAN9646_PORTn_INT_STATUS_ACL 0x01
1358 #define LAN9646_PORTn_INT_MASK_SGMII_AN_DONE 0x08
1359 #define LAN9646_PORTn_INT_MASK_PHY 0x02
1360 #define LAN9646_PORTn_INT_MASK_ACL 0x01
1363 #define LAN9646_PORTn_OP_CTRL0_LOCAL_LOOPBACK 0x80
1364 #define LAN9646_PORTn_OP_CTRL0_REMOTE_LOOPBACK 0x40
1365 #define LAN9646_PORTn_OP_CTRL0_TAIL_TAG_EN 0x04
1366 #define LAN9646_PORTn_OP_CTRL0_TX_QUEUE_SPLIT_EN 0x03
1369 #define LAN9646_PORTn_STATUS_SPEED 0x18
1370 #define LAN9646_PORTn_STATUS_SPEED_10MBPS 0x00
1371 #define LAN9646_PORTn_STATUS_SPEED_100MBPS 0x08
1372 #define LAN9646_PORTn_STATUS_SPEED_1000MBPS 0x10
1373 #define LAN9646_PORTn_STATUS_DUPLEX 0x04
1374 #define LAN9646_PORTn_STATUS_TX_FLOW_CTRL_EN 0x02
1375 #define LAN9646_PORTn_STATUS_RX_FLOW_CTRL_EN 0x01
1378 #define LAN9646_PORT7_SGMII_ADDR_AUTO_INC_ENB 0x00800000
1379 #define LAN9646_PORT7_SGMII_ADDR_SGMII_ADDR 0x001FFFFF
1382 #define LAN9646_PORT7_SGMII_DATA_SGMII_DATA 0xFFFF
1385 #define LAN9646_PORTn_XMII_CTRL0_DUPLEX 0x40
1386 #define LAN9646_PORTn_XMII_CTRL0_TX_FLOW_CTRL_EN 0x20
1387 #define LAN9646_PORTn_XMII_CTRL0_SPEED_10_100 0x10
1388 #define LAN9646_PORTn_XMII_CTRL0_RX_FLOW_CTRL_EN 0x08
1391 #define LAN9646_PORTn_XMII_CTRL1_SPEED_1000 0x40
1392 #define LAN9646_PORTn_XMII_CTRL1_RGMII_ID_IG 0x10
1393 #define LAN9646_PORTn_XMII_CTRL1_RGMII_ID_EG 0x08
1394 #define LAN9646_PORTn_XMII_CTRL1_MII_RMII_MODE 0x04
1395 #define LAN9646_PORTn_XMII_CTRL1_IF_TYPE 0x03
1396 #define LAN9646_PORTn_XMII_CTRL1_IF_TYPE_RGMII 0x00
1397 #define LAN9646_PORTn_XMII_CTRL1_IF_TYPE_RMII 0x01
1398 #define LAN9646_PORTn_XMII_CTRL1_IF_TYPE_MII 0x03
1401 #define LAN9646_PORTn_MAC_CTRL0_BCAST_STORM_PROTECT_EN 0x02
1404 #define LAN9646_PORTn_MAC_CTRL1_BACK_PRESSURE_EN 0x08
1405 #define LAN9646_PORTn_MAC_CTRL1_PASS_ALL_FRAMES 0x01
1408 #define LAN9646_PORTn_MIB_CTRL_STAT_MIB_COUNTER_OVERFLOW 0x80000000
1409 #define LAN9646_PORTn_MIB_CTRL_STAT_MIB_READ 0x02000000
1410 #define LAN9646_PORTn_MIB_CTRL_STAT_MIB_FLUSH_FREEZE 0x01000000
1411 #define LAN9646_PORTn_MIB_CTRL_STAT_MIB_INDEX 0x00FF0000
1412 #define LAN9646_PORTn_MIB_CTRL_STAT_MIB_COUNTER_VALUE_35_32 0x0000000F
1415 #define LAN9646_PORTn_MIB_DATA_MIB_COUNTER_VALUE_31_0 0xFFFFFFFF
1418 #define LAN9646_PORTn_ACL_ACCESS_CTRL0_WRITE_STATUS 0x40
1419 #define LAN9646_PORTn_ACL_ACCESS_CTRL0_READ_STATUS 0x20
1420 #define LAN9646_PORTn_ACL_ACCESS_CTRL0_READ 0x00
1421 #define LAN9646_PORTn_ACL_ACCESS_CTRL0_WRITE 0x10
1422 #define LAN9646_PORTn_ACL_ACCESS_CTRL0_ACL_INDEX 0x0F
1425 #define LAN9646_PORTn_MIRRORING_CTRL_RECEIVE_SNIFF 0x40
1426 #define LAN9646_PORTn_MIRRORING_CTRL_TRANSMIT_SNIFF 0x20
1427 #define LAN9646_PORTn_MIRRORING_CTRL_SNIFFER_PORT 0x02
1430 #define LAN9646_PORTn_AUTH_CTRL_ACL_EN 0x04
1431 #define LAN9646_PORTn_AUTH_CTRL_AUTH_MODE 0x03
1432 #define LAN9646_PORTn_AUTH_CTRL_AUTH_MODE_PASS 0x00
1433 #define LAN9646_PORTn_AUTH_CTRL_AUTH_MODE_BLOCK 0x01
1434 #define LAN9646_PORTn_AUTH_CTRL_AUTH_MODE_TRAP 0x02
1437 #define LAN9646_PORTn_PTR_PORT_INDEX 0x00070000
1438 #define LAN9646_PORTn_PTR_QUEUE_PTR 0x00000003
1441 #define LAN9646_PORTn_CTRL1_PORT_VLAN_MEMBERSHIP 0x0000007F
1442 #define LAN9646_PORTn_CTRL1_PORT7_VLAN_MEMBERSHIP 0x00000040
1443 #define LAN9646_PORTn_CTRL1_PORT6_VLAN_MEMBERSHIP 0x00000020
1444 #define LAN9646_PORTn_CTRL1_PORT4_VLAN_MEMBERSHIP 0x00000008
1445 #define LAN9646_PORTn_CTRL1_PORT3_VLAN_MEMBERSHIP 0x00000004
1446 #define LAN9646_PORTn_CTRL1_PORT2_VLAN_MEMBERSHIP 0x00000002
1447 #define LAN9646_PORTn_CTRL1_PORT1_VLAN_MEMBERSHIP 0x00000001
1450 #define LAN9646_PORTn_CTRL2_NULL_VID_LOOKUP_EN 0x80
1451 #define LAN9646_PORTn_CTRL2_INGRESS_VLAN_FILT 0x40
1452 #define LAN9646_PORTn_CTRL2_DISCARD_NON_PVID_PKT 0x20
1453 #define LAN9646_PORTn_CTRL2_802_1X_EN 0x10
1454 #define LAN9646_PORTn_CTRL2_SELF_ADDR_FILT 0x08
1457 #define LAN9646_PORTn_MSTP_PTR_MSTP_PTR 0x07
1460 #define LAN9646_PORTn_MSTP_STATE_TRANSMIT_EN 0x04
1461 #define LAN9646_PORTn_MSTP_STATE_RECEIVE_EN 0x02
1462 #define LAN9646_PORTn_MSTP_STATE_LEARNING_DIS 0x01
1525 bool_t enable, uint32_t forwardPorts);
1536 uint8_t devAddr, uint16_t
regAddr, uint16_t
data);
1539 uint8_t devAddr, uint16_t
regAddr);
void lan9646WritePhyReg(NetInterface *interface, uint8_t port, uint8_t address, uint16_t data)
Write PHY register.
bool_t lan9646GetPort7LinkState(NetInterface *interface)
Get port 7 link state.
void lan9646WriteSwitchReg16(NetInterface *interface, uint16_t address, uint16_t data)
Write switch register (16 bits)
void lan9646EnableIgmpSnooping(NetInterface *interface, bool_t enable)
Enable IGMP snooping.
void lan9646FlushStaticFdbTable(NetInterface *interface)
Flush static MAC table.
uint16_t lan9646ReadMmdReg(NetInterface *interface, uint8_t port, uint8_t devAddr, uint16_t regAddr)
Read MMD register.
void lan9646EventHandler(NetInterface *interface)
LAN9646 event handler.
bool_t lan9646GetLinkState(NetInterface *interface, uint8_t port)
Get link state.
void lan9646DisableIrq(NetInterface *interface)
Disable interrupts.
Structure describing a buffer that spans multiple chunks.
error_t lan9646DeleteStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Remove an entry from the static MAC table.
uint16_t lan9646ReadSwitchReg16(NetInterface *interface, uint16_t address)
Read switch register (16 bits)
void lan9646InitHook(NetInterface *interface)
LAN9646 custom configuration.
uint32_t lan9646GetPort7LinkSpeed(NetInterface *interface)
Get port 7 link speed.
error_t lan9646TagFrame(NetInterface *interface, NetBuffer *buffer, size_t *offset, NetTxAncillary *ancillary)
Add tail tag to Ethernet frame.
uint8_t lan9646ReadSwitchReg8(NetInterface *interface, uint16_t address)
Read switch register (8 bits)
void lan9646Tick(NetInterface *interface)
LAN9646 timer handler.
void lan9646EnableIrq(NetInterface *interface)
Enable interrupts.
error_t lan9646GetStaticFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the static MAC table.
uint16_t lan9646ReadPhyReg(NetInterface *interface, uint8_t port, uint8_t address)
Read PHY register.
void lan9646DumpPhyReg(NetInterface *interface, uint8_t port)
Dump PHY registers for debugging purpose.
void lan9646WriteSgmiiReg(NetInterface *interface, uint32_t address, uint16_t data)
Write SGMII register.
void lan9646EnableMldSnooping(NetInterface *interface, bool_t enable)
Enable MLD snooping.
uint32_t lan9646ReadSwitchReg32(NetInterface *interface, uint16_t address)
Read switch register (32 bits)
SwitchPortState
Switch port state.
error_t lan9646GetDynamicFdbEntry(NetInterface *interface, uint_t index, SwitchFdbEntry *entry)
Read an entry from the dynamic MAC table.
void lan9646WriteSwitchReg8(NetInterface *interface, uint16_t address, uint8_t data)
Write switch register (8 bits)
void lan9646FlushDynamicFdbTable(NetInterface *interface, uint8_t port)
Flush dynamic MAC table.
void lan9646WriteSwitchReg32(NetInterface *interface, uint16_t address, uint32_t data)
Write switch register (32 bits)
void lan9646EnableRsvdMcastTable(NetInterface *interface, bool_t enable)
Enable reserved multicast table.
NicDuplexMode lan9646GetPort7DuplexMode(NetInterface *interface)
Get port 7 duplex mode.
void lan9646SetUnknownMcastFwdPorts(NetInterface *interface, bool_t enable, uint32_t forwardPorts)
Set forward ports for unknown multicast packets.
NicDuplexMode
Duplex mode.
Network interface controller abstraction layer.
uint16_t lan9646ReadSgmiiReg(NetInterface *interface, uint32_t address)
Read SGMII register.
uint32_t lan9646GetLinkSpeed(NetInterface *interface, uint8_t port)
Get link speed.
error_t lan9646UntagFrame(NetInterface *interface, uint8_t **frame, size_t *length, NetRxAncillary *ancillary)
Decode tail tag from incoming Ethernet frame.
SwitchPortState lan9646GetPortState(NetInterface *interface, uint8_t port)
Get port state.
NicDuplexMode lan9646GetDuplexMode(NetInterface *interface, uint8_t port)
Get duplex mode.
error_t lan9646AddStaticFdbEntry(NetInterface *interface, const SwitchFdbEntry *entry)
Add a new entry to the static MAC table.
const SwitchDriver lan9646SwitchDriver
LAN9646 Ethernet switch driver.
void lan9646SetAgingTime(NetInterface *interface, uint32_t agingTime)
Set aging time for dynamic filtering entries.
error_t lan9646Init(NetInterface *interface)
LAN9646 Ethernet switch initialization.
Forwarding database entry.
void lan9646WriteMmdReg(NetInterface *interface, uint8_t port, uint8_t devAddr, uint16_t regAddr, uint16_t data)
Write MMD register.
void lan9646SetPortState(NetInterface *interface, uint8_t port, SwitchPortState state)
Set port state.