xref: /onnv-gate/usr/src/uts/common/io/arn/arn_reg.h (revision 11377:e0a7b374d710)
19999SWang.Lin@Sun.COM /*
29999SWang.Lin@Sun.COM  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
39999SWang.Lin@Sun.COM  * Use is subject to license terms.
49999SWang.Lin@Sun.COM  */
59999SWang.Lin@Sun.COM 
69999SWang.Lin@Sun.COM /*
79999SWang.Lin@Sun.COM  * Copyright (c) 2008 Atheros Communications Inc.
89999SWang.Lin@Sun.COM  *
99999SWang.Lin@Sun.COM  * Permission to use, copy, modify, and/or distribute this software for any
109999SWang.Lin@Sun.COM  * purpose with or without fee is hereby granted, provided that the above
119999SWang.Lin@Sun.COM  * copyright notice and this permission notice appear in all copies.
129999SWang.Lin@Sun.COM  *
139999SWang.Lin@Sun.COM  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
149999SWang.Lin@Sun.COM  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
159999SWang.Lin@Sun.COM  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
169999SWang.Lin@Sun.COM  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
179999SWang.Lin@Sun.COM  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
189999SWang.Lin@Sun.COM  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
199999SWang.Lin@Sun.COM  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
209999SWang.Lin@Sun.COM  */
219999SWang.Lin@Sun.COM 
229999SWang.Lin@Sun.COM #ifndef _ARN_REG_H
239999SWang.Lin@Sun.COM #define	_ARN_REG_H
249999SWang.Lin@Sun.COM 
259999SWang.Lin@Sun.COM #ifdef __cplusplus
269999SWang.Lin@Sun.COM extern "C" {
279999SWang.Lin@Sun.COM #endif
289999SWang.Lin@Sun.COM 
299999SWang.Lin@Sun.COM #define	AR_CR		0x0008
309999SWang.Lin@Sun.COM #define	AR_CR_RXE	0x00000004
319999SWang.Lin@Sun.COM #define	AR_CR_RXD	0x00000020
329999SWang.Lin@Sun.COM #define	AR_CR_SWI	0x00000040
339999SWang.Lin@Sun.COM 
349999SWang.Lin@Sun.COM #define	AR_RXDP		0x000C
359999SWang.Lin@Sun.COM 
369999SWang.Lin@Sun.COM #define	AR_CFG				0x0014
379999SWang.Lin@Sun.COM #define	AR_CFG_SWTD			0x00000001
389999SWang.Lin@Sun.COM #define	AR_CFG_SWTB			0x00000002
399999SWang.Lin@Sun.COM #define	AR_CFG_SWRD			0x00000004
409999SWang.Lin@Sun.COM #define	AR_CFG_SWRB			0x00000008
419999SWang.Lin@Sun.COM #define	AR_CFG_SWRG			0x00000010
429999SWang.Lin@Sun.COM #define	AR_CFG_AP_ADHOC_INDICATION	0x00000020
439999SWang.Lin@Sun.COM #define	AR_CFG_PHOK			0x00000100
449999SWang.Lin@Sun.COM #define	AR_CFG_CLK_GATE_DIS		0x00000400
459999SWang.Lin@Sun.COM #define	AR_CFG_EEBS			0x00000200
469999SWang.Lin@Sun.COM #define	AR_CFG_PCI_MASTER_REQ_Q_THRESH	0x00060000
479999SWang.Lin@Sun.COM #define	AR_CFG_PCI_MASTER_REQ_Q_THRESH_S	17
489999SWang.Lin@Sun.COM 
499999SWang.Lin@Sun.COM #define	AR_MIRT			0x0020
509999SWang.Lin@Sun.COM #define	AR_MIRT_VAL		0x0000ffff
519999SWang.Lin@Sun.COM #define	AR_MIRT_VAL_S		16
529999SWang.Lin@Sun.COM 
539999SWang.Lin@Sun.COM #define	AR_IER			0x0024
549999SWang.Lin@Sun.COM #define	AR_IER_ENABLE		0x00000001
559999SWang.Lin@Sun.COM #define	AR_IER_DISABLE		0x00000000
569999SWang.Lin@Sun.COM 
579999SWang.Lin@Sun.COM #define	AR_TIMT			0x0028
589999SWang.Lin@Sun.COM #define	AR_TIMT_LAST		0x0000ffff
599999SWang.Lin@Sun.COM #define	AR_TIMT_LAST_S		0
609999SWang.Lin@Sun.COM #define	AR_TIMT_FIRST		0xffff0000
619999SWang.Lin@Sun.COM #define	AR_TIMT_FIRST_S		16
629999SWang.Lin@Sun.COM 
639999SWang.Lin@Sun.COM #define	AR_RIMT			0x002C
649999SWang.Lin@Sun.COM #define	AR_RIMT_LAST		0x0000ffff
659999SWang.Lin@Sun.COM #define	AR_RIMT_LAST_S		0
669999SWang.Lin@Sun.COM #define	AR_RIMT_FIRST		0xffff0000
679999SWang.Lin@Sun.COM #define	AR_RIMT_FIRST_S		16
689999SWang.Lin@Sun.COM 
699999SWang.Lin@Sun.COM #define	AR_DMASIZE_4B		0x00000000
709999SWang.Lin@Sun.COM #define	AR_DMASIZE_8B		0x00000001
719999SWang.Lin@Sun.COM #define	AR_DMASIZE_16B		0x00000002
729999SWang.Lin@Sun.COM #define	AR_DMASIZE_32B		0x00000003
739999SWang.Lin@Sun.COM #define	AR_DMASIZE_64B		0x00000004
749999SWang.Lin@Sun.COM #define	AR_DMASIZE_128B		0x00000005
759999SWang.Lin@Sun.COM #define	AR_DMASIZE_256B		0x00000006
769999SWang.Lin@Sun.COM #define	AR_DMASIZE_512B		0x00000007
779999SWang.Lin@Sun.COM 
789999SWang.Lin@Sun.COM #define	AR_TXCFG		0x0030
799999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_MASK	0x00000003
809999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_4B	0
819999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_8B	1
829999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_16B	2
839999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_32B	3
849999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_64B	4
859999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_128B	5
869999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_256B	6
879999SWang.Lin@Sun.COM #define	AR_TXCFG_DMASZ_512B	7
889999SWang.Lin@Sun.COM #define	AR_FTRIG		0x000003F0
899999SWang.Lin@Sun.COM #define	AR_FTRIG_S		4
909999SWang.Lin@Sun.COM #define	AR_FTRIG_IMMED		0x00000000
919999SWang.Lin@Sun.COM #define	AR_FTRIG_64B		0x00000010
929999SWang.Lin@Sun.COM #define	AR_FTRIG_128B		0x00000020
939999SWang.Lin@Sun.COM #define	AR_FTRIG_192B		0x00000030
949999SWang.Lin@Sun.COM #define	AR_FTRIG_256B		0x00000040
959999SWang.Lin@Sun.COM #define	AR_FTRIG_512B		0x00000080
969999SWang.Lin@Sun.COM #define	AR_TXCFG_ADHOC_BEACON_ATIM_TX_POLICY	0x00000800
979999SWang.Lin@Sun.COM 
989999SWang.Lin@Sun.COM #define	AR_RXCFG		0x0034
999999SWang.Lin@Sun.COM #define	AR_RXCFG_CHIRP		0x00000008
1009999SWang.Lin@Sun.COM #define	AR_RXCFG_ZLFDMA		0x00000010
1019999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_MASK	0x00000007
1029999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_4B	0
1039999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_8B	1
1049999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_16B	2
1059999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_32B	3
1069999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_64B	4
1079999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_128B	5
1089999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_256B	6
1099999SWang.Lin@Sun.COM #define	AR_RXCFG_DMASZ_512B	7
1109999SWang.Lin@Sun.COM 
1119999SWang.Lin@Sun.COM #define	AR_MIBC			0x0040
1129999SWang.Lin@Sun.COM #define	AR_MIBC_COW		0x00000001
1139999SWang.Lin@Sun.COM #define	AR_MIBC_FMC		0x00000002
1149999SWang.Lin@Sun.COM #define	AR_MIBC_CMC		0x00000004
1159999SWang.Lin@Sun.COM #define	AR_MIBC_MCS		0x00000008
1169999SWang.Lin@Sun.COM 
1179999SWang.Lin@Sun.COM #define	AR_TOPS			0x0044
1189999SWang.Lin@Sun.COM #define	AR_TOPS_MASK		0x0000FFFF
1199999SWang.Lin@Sun.COM 
1209999SWang.Lin@Sun.COM #define	AR_RXNPTO		0x0048
1219999SWang.Lin@Sun.COM #define	AR_RXNPTO_MASK		0x000003FF
1229999SWang.Lin@Sun.COM 
1239999SWang.Lin@Sun.COM #define	AR_TXNPTO		0x004C
1249999SWang.Lin@Sun.COM #define	AR_TXNPTO_MASK		0x000003FF
1259999SWang.Lin@Sun.COM #define	AR_TXNPTO_QCU_MASK	0x000FFC00
1269999SWang.Lin@Sun.COM 
1279999SWang.Lin@Sun.COM #define	AR_RPGTO		0x0050
1289999SWang.Lin@Sun.COM #define	AR_RPGTO_MASK		0x000003FF
1299999SWang.Lin@Sun.COM 
1309999SWang.Lin@Sun.COM #define	AR_RPCNT		0x0054
1319999SWang.Lin@Sun.COM #define	AR_RPCNT_MASK		0x0000001F
1329999SWang.Lin@Sun.COM 
1339999SWang.Lin@Sun.COM #define	AR_MACMISC			0x0058
1349999SWang.Lin@Sun.COM #define	AR_MACMISC_PCI_EXT_FORCE	0x00000010
1359999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS		0x000001E0
1369999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_S		5
1379999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_0	0
1389999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_1	1
1399999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_2	2
1409999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_3	3
1419999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_4	4
1429999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_5	5
1439999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_6	6
1449999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_7	7
1459999SWang.Lin@Sun.COM #define	AR_MACMISC_DMA_OBS_LINE_8	8
1469999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS		0x00000E00
1479999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_S		9
1489999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_BUS_LSB	0x00007000
1499999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_BUS_LSB_S	12
1509999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_BUS_MSB	0x00038000
1519999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_BUS_MSB_S	15
1529999SWang.Lin@Sun.COM #define	AR_MACMISC_MISC_OBS_BUS_1	1
1539999SWang.Lin@Sun.COM 
1549999SWang.Lin@Sun.COM #define	AR_GTXTO			0x0064
1559999SWang.Lin@Sun.COM #define	AR_GTXTO_TIMEOUT_COUNTER	0x0000FFFF
1569999SWang.Lin@Sun.COM #define	AR_GTXTO_TIMEOUT_LIMIT		0xFFFF0000
1579999SWang.Lin@Sun.COM #define	AR_GTXTO_TIMEOUT_LIMIT_S	16
1589999SWang.Lin@Sun.COM 
1599999SWang.Lin@Sun.COM #define	AR_GTTM				0x0068
1609999SWang.Lin@Sun.COM #define	AR_GTTM_USEC			0x00000001
1619999SWang.Lin@Sun.COM #define	AR_GTTM_IGNORE_IDLE		0x00000002
1629999SWang.Lin@Sun.COM #define	AR_GTTM_RESET_IDLE		0x00000004
1639999SWang.Lin@Sun.COM #define	AR_GTTM_CST_USEC		0x00000008
1649999SWang.Lin@Sun.COM 
1659999SWang.Lin@Sun.COM #define	AR_CST				0x006C
1669999SWang.Lin@Sun.COM #define	AR_CST_TIMEOUT_COUNTER		0x0000FFFF
1679999SWang.Lin@Sun.COM #define	AR_CST_TIMEOUT_LIMIT		0xFFFF0000
1689999SWang.Lin@Sun.COM #define	AR_CST_TIMEOUT_LIMIT_S		16
1699999SWang.Lin@Sun.COM 
1709999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_9100		0x014
1719999SWang.Lin@Sun.COM 
1729999SWang.Lin@Sun.COM #define	AR_SREV_5416_V20_OR_LATER(_ah) \
1739999SWang.Lin@Sun.COM 	(AR_SREV_9100((_ah)) || AR_SREV_5416_20_OR_LATER(_ah))
1749999SWang.Lin@Sun.COM #define	AR_SREV_5416_V22_OR_LATER(_ah) \
1759999SWang.Lin@Sun.COM 	(AR_SREV_9100((_ah)) || AR_SREV_5416_22_OR_LATER(_ah))
1769999SWang.Lin@Sun.COM 
1779999SWang.Lin@Sun.COM #define	AR_ISR			0x0080
1789999SWang.Lin@Sun.COM #define	AR_ISR_RXOK		0x00000001
1799999SWang.Lin@Sun.COM #define	AR_ISR_RXDESC		0x00000002
1809999SWang.Lin@Sun.COM #define	AR_ISR_RXERR		0x00000004
1819999SWang.Lin@Sun.COM #define	AR_ISR_RXNOPKT		0x00000008
1829999SWang.Lin@Sun.COM #define	AR_ISR_RXEOL		0x00000010
1839999SWang.Lin@Sun.COM #define	AR_ISR_RXORN		0x00000020
1849999SWang.Lin@Sun.COM #define	AR_ISR_TXOK		0x00000040
1859999SWang.Lin@Sun.COM #define	AR_ISR_TXDESC		0x00000080
1869999SWang.Lin@Sun.COM #define	AR_ISR_TXERR		0x00000100
1879999SWang.Lin@Sun.COM #define	AR_ISR_TXNOPKT		0x00000200
1889999SWang.Lin@Sun.COM #define	AR_ISR_TXEOL		0x00000400
1899999SWang.Lin@Sun.COM #define	AR_ISR_TXURN		0x00000800
1909999SWang.Lin@Sun.COM #define	AR_ISR_MIB		0x00001000
1919999SWang.Lin@Sun.COM #define	AR_ISR_SWI		0x00002000
1929999SWang.Lin@Sun.COM #define	AR_ISR_RXPHY		0x00004000
1939999SWang.Lin@Sun.COM #define	AR_ISR_RXKCM		0x00008000
1949999SWang.Lin@Sun.COM #define	AR_ISR_SWBA		0x00010000
1959999SWang.Lin@Sun.COM #define	AR_ISR_BRSSI		0x00020000
1969999SWang.Lin@Sun.COM #define	AR_ISR_BMISS		0x00040000
1979999SWang.Lin@Sun.COM #define	AR_ISR_BNR		0x00100000
1989999SWang.Lin@Sun.COM #define	AR_ISR_RXCHIRP		0x00200000
1999999SWang.Lin@Sun.COM #define	AR_ISR_BCNMISC		0x00800000
2009999SWang.Lin@Sun.COM #define	AR_ISR_TIM		0x00800000
2019999SWang.Lin@Sun.COM #define	AR_ISR_QCBROVF		0x02000000
2029999SWang.Lin@Sun.COM #define	AR_ISR_QCBRURN		0x04000000
2039999SWang.Lin@Sun.COM #define	AR_ISR_QTRIG		0x08000000
2049999SWang.Lin@Sun.COM #define	AR_ISR_GENTMR		0x10000000
2059999SWang.Lin@Sun.COM 
2069999SWang.Lin@Sun.COM #define	AR_ISR_TXMINTR		0x00080000
2079999SWang.Lin@Sun.COM #define	AR_ISR_RXMINTR		0x01000000
2089999SWang.Lin@Sun.COM #define	AR_ISR_TXINTM		0x40000000
2099999SWang.Lin@Sun.COM #define	AR_ISR_RXINTM		0x80000000
2109999SWang.Lin@Sun.COM 
2119999SWang.Lin@Sun.COM #define	AR_ISR_S0		0x0084
2129999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXOK	0x000003FF
2139999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXOK_S	0
2149999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXDESC	0x03FF0000
2159999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXDESC_S	16
2169999SWang.Lin@Sun.COM 
2179999SWang.Lin@Sun.COM #define	AR_ISR_S1		0x0088
2189999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXERR	0x000003FF
2199999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXERR_S	0
2209999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXEOL	0x03FF0000
2219999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXEOL_S	16
2229999SWang.Lin@Sun.COM 
2239999SWang.Lin@Sun.COM #define	AR_ISR_S2		0x008c
2249999SWang.Lin@Sun.COM #define	AR_ISR_S2_QCU_TXURN	0x000003FF
2259999SWang.Lin@Sun.COM #define	AR_ISR_S2_CST		0x00400000
2269999SWang.Lin@Sun.COM #define	AR_ISR_S2_GTT		0x00800000
2279999SWang.Lin@Sun.COM #define	AR_ISR_S2_TIM		0x01000000
2289999SWang.Lin@Sun.COM #define	AR_ISR_S2_CABEND	0x02000000
2299999SWang.Lin@Sun.COM #define	AR_ISR_S2_DTIMSYNC	0x04000000
2309999SWang.Lin@Sun.COM #define	AR_ISR_S2_BCNTO		0x08000000
2319999SWang.Lin@Sun.COM #define	AR_ISR_S2_CABTO		0x10000000
2329999SWang.Lin@Sun.COM #define	AR_ISR_S2_DTIM		0x20000000
2339999SWang.Lin@Sun.COM #define	AR_ISR_S2_TSFOOR	0x40000000
2349999SWang.Lin@Sun.COM #define	AR_ISR_S2_TBTT_TIME	0x80000000
2359999SWang.Lin@Sun.COM 
2369999SWang.Lin@Sun.COM #define	AR_ISR_S3		0x0090
2379999SWang.Lin@Sun.COM #define	AR_ISR_S3_QCU_QCBROVF	0x000003FF
2389999SWang.Lin@Sun.COM #define	AR_ISR_S3_QCU_QCBRURN	0x03FF0000
2399999SWang.Lin@Sun.COM 
2409999SWang.Lin@Sun.COM #define	AR_ISR_S4		0x0094
2419999SWang.Lin@Sun.COM #define	AR_ISR_S4_QCU_QTRIG	0x000003FF
2429999SWang.Lin@Sun.COM #define	AR_ISR_S4_RESV0		0xFFFFFC00
2439999SWang.Lin@Sun.COM 
2449999SWang.Lin@Sun.COM #define	AR_ISR_S5		0x0098
2459999SWang.Lin@Sun.COM #define	AR_ISR_S5_TIMER_TRIG	0x000000FF
2469999SWang.Lin@Sun.COM #define	AR_ISR_S5_TIMER_THRESH	0x0007FE00
2479999SWang.Lin@Sun.COM #define	AR_ISR_S5_TIM_TIMER	0x00000010
2489999SWang.Lin@Sun.COM #define	AR_ISR_S5_DTIM_TIMER	0x00000020
2499999SWang.Lin@Sun.COM #define	AR_ISR_S5_S		0x00d8
2509999SWang.Lin@Sun.COM #define	AR_IMR_S5		0x00b8
2519999SWang.Lin@Sun.COM #define	AR_IMR_S5_TIM_TIMER	0x00000010
2529999SWang.Lin@Sun.COM #define	AR_IMR_S5_DTIM_TIMER	0x00000020
2539999SWang.Lin@Sun.COM 
2549999SWang.Lin@Sun.COM 
2559999SWang.Lin@Sun.COM #define	AR_IMR			0x00a0
2569999SWang.Lin@Sun.COM #define	AR_IMR_RXOK		0x00000001
2579999SWang.Lin@Sun.COM #define	AR_IMR_RXDESC		0x00000002
2589999SWang.Lin@Sun.COM #define	AR_IMR_RXERR		0x00000004
2599999SWang.Lin@Sun.COM #define	AR_IMR_RXNOPKT		0x00000008
2609999SWang.Lin@Sun.COM #define	AR_IMR_RXEOL		0x00000010
2619999SWang.Lin@Sun.COM #define	AR_IMR_RXORN		0x00000020
2629999SWang.Lin@Sun.COM #define	AR_IMR_TXOK		0x00000040
2639999SWang.Lin@Sun.COM #define	AR_IMR_TXDESC		0x00000080
2649999SWang.Lin@Sun.COM #define	AR_IMR_TXERR		0x00000100
2659999SWang.Lin@Sun.COM #define	AR_IMR_TXNOPKT		0x00000200
2669999SWang.Lin@Sun.COM #define	AR_IMR_TXEOL		0x00000400
2679999SWang.Lin@Sun.COM #define	AR_IMR_TXURN		0x00000800
2689999SWang.Lin@Sun.COM #define	AR_IMR_MIB		0x00001000
2699999SWang.Lin@Sun.COM #define	AR_IMR_SWI		0x00002000
2709999SWang.Lin@Sun.COM #define	AR_IMR_RXPHY		0x00004000
2719999SWang.Lin@Sun.COM #define	AR_IMR_RXKCM		0x00008000
2729999SWang.Lin@Sun.COM #define	AR_IMR_SWBA		0x00010000
2739999SWang.Lin@Sun.COM #define	AR_IMR_BRSSI		0x00020000
2749999SWang.Lin@Sun.COM #define	AR_IMR_BMISS		0x00040000
2759999SWang.Lin@Sun.COM #define	AR_IMR_BNR		0x00100000
2769999SWang.Lin@Sun.COM #define	AR_IMR_RXCHIRP		0x00200000
2779999SWang.Lin@Sun.COM #define	AR_IMR_BCNMISC		0x00800000
2789999SWang.Lin@Sun.COM #define	AR_IMR_TIM		0x00800000
2799999SWang.Lin@Sun.COM #define	AR_IMR_QCBROVF		0x02000000
2809999SWang.Lin@Sun.COM #define	AR_IMR_QCBRURN		0x04000000
2819999SWang.Lin@Sun.COM #define	AR_IMR_QTRIG		0x08000000
2829999SWang.Lin@Sun.COM #define	AR_IMR_GENTMR		0x10000000
2839999SWang.Lin@Sun.COM 
2849999SWang.Lin@Sun.COM #define	AR_IMR_TXMINTR		0x00080000
2859999SWang.Lin@Sun.COM #define	AR_IMR_RXMINTR		0x01000000
2869999SWang.Lin@Sun.COM #define	AR_IMR_TXINTM		0x40000000
2879999SWang.Lin@Sun.COM #define	AR_IMR_RXINTM		0x80000000
2889999SWang.Lin@Sun.COM 
2899999SWang.Lin@Sun.COM #define	AR_IMR_S0		0x00a4
2909999SWang.Lin@Sun.COM #define	AR_IMR_S0_QCU_TXOK	0x000003FF
2919999SWang.Lin@Sun.COM #define	AR_IMR_S0_QCU_TXOK_S	0
2929999SWang.Lin@Sun.COM #define	AR_IMR_S0_QCU_TXDESC	0x03FF0000
2939999SWang.Lin@Sun.COM #define	AR_IMR_S0_QCU_TXDESC_S	16
2949999SWang.Lin@Sun.COM 
2959999SWang.Lin@Sun.COM #define	AR_IMR_S1		0x00a8
2969999SWang.Lin@Sun.COM #define	AR_IMR_S1_QCU_TXERR	0x000003FF
2979999SWang.Lin@Sun.COM #define	AR_IMR_S1_QCU_TXERR_S	0
2989999SWang.Lin@Sun.COM #define	AR_IMR_S1_QCU_TXEOL	0x03FF0000
2999999SWang.Lin@Sun.COM #define	AR_IMR_S1_QCU_TXEOL_S	16
3009999SWang.Lin@Sun.COM 
3019999SWang.Lin@Sun.COM #define	AR_IMR_S2		0x00ac
3029999SWang.Lin@Sun.COM #define	AR_IMR_S2_QCU_TXURN	0x000003FF
3039999SWang.Lin@Sun.COM #define	AR_IMR_S2_QCU_TXURN_S	0
3049999SWang.Lin@Sun.COM #define	AR_IMR_S2_CST		0x00400000
3059999SWang.Lin@Sun.COM #define	AR_IMR_S2_GTT		0x00800000
3069999SWang.Lin@Sun.COM #define	AR_IMR_S2_TIM		0x01000000
3079999SWang.Lin@Sun.COM #define	AR_IMR_S2_CABEND	0x02000000
3089999SWang.Lin@Sun.COM #define	AR_IMR_S2_DTIMSYNC	0x04000000
3099999SWang.Lin@Sun.COM #define	AR_IMR_S2_BCNTO		0x08000000
3109999SWang.Lin@Sun.COM #define	AR_IMR_S2_CABTO		0x10000000
3119999SWang.Lin@Sun.COM #define	AR_IMR_S2_DTIM		0x20000000
3129999SWang.Lin@Sun.COM #define	AR_IMR_S2_TSFOOR	0x40000000
3139999SWang.Lin@Sun.COM 
3149999SWang.Lin@Sun.COM #define	AR_IMR_S3		0x00b0
3159999SWang.Lin@Sun.COM #define	AR_IMR_S3_QCU_QCBROVF	0x000003FF
3169999SWang.Lin@Sun.COM #define	AR_IMR_S3_QCU_QCBRURN	0x03FF0000
3179999SWang.Lin@Sun.COM #define	AR_IMR_S3_QCU_QCBRURN_S	16
3189999SWang.Lin@Sun.COM 
3199999SWang.Lin@Sun.COM #define	AR_IMR_S4		0x00b4
3209999SWang.Lin@Sun.COM #define	AR_IMR_S4_QCU_QTRIG	0x000003FF
3219999SWang.Lin@Sun.COM #define	AR_IMR_S4_RESV0		0xFFFFFC00
3229999SWang.Lin@Sun.COM 
3239999SWang.Lin@Sun.COM #define	AR_IMR_S5		0x00b8
3249999SWang.Lin@Sun.COM #define	AR_IMR_S5_TIMER_TRIG	0x000000FF
3259999SWang.Lin@Sun.COM #define	AR_IMR_S5_TIMER_THRESH	0x0000FF00
3269999SWang.Lin@Sun.COM 
3279999SWang.Lin@Sun.COM 
3289999SWang.Lin@Sun.COM #define	AR_ISR_RAC		0x00c0
3299999SWang.Lin@Sun.COM #define	AR_ISR_S0_S		0x00c4
3309999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXOK	0x000003FF
3319999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXOK_S	0
3329999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXDESC	0x03FF0000
3339999SWang.Lin@Sun.COM #define	AR_ISR_S0_QCU_TXDESC_S	16
3349999SWang.Lin@Sun.COM 
3359999SWang.Lin@Sun.COM #define	AR_ISR_S1_S		0x00c8
3369999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXERR	0x000003FF
3379999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXERR_S	0
3389999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXEOL	0x03FF0000
3399999SWang.Lin@Sun.COM #define	AR_ISR_S1_QCU_TXEOL_S	16
3409999SWang.Lin@Sun.COM 
3419999SWang.Lin@Sun.COM #define	AR_ISR_S2_S	0x00cc
3429999SWang.Lin@Sun.COM #define	AR_ISR_S3_S	0x00d0
3439999SWang.Lin@Sun.COM #define	AR_ISR_S4_S	0x00d4
3449999SWang.Lin@Sun.COM #define	AR_ISR_S5_S	0x00d8
3459999SWang.Lin@Sun.COM #define	AR_DMADBG_0	0x00e0
3469999SWang.Lin@Sun.COM #define	AR_DMADBG_1	0x00e4
3479999SWang.Lin@Sun.COM #define	AR_DMADBG_2	0x00e8
3489999SWang.Lin@Sun.COM #define	AR_DMADBG_3	0x00ec
3499999SWang.Lin@Sun.COM #define	AR_DMADBG_4	0x00f0
3509999SWang.Lin@Sun.COM #define	AR_DMADBG_5	0x00f4
3519999SWang.Lin@Sun.COM #define	AR_DMADBG_6	0x00f8
3529999SWang.Lin@Sun.COM #define	AR_DMADBG_7	0x00fc
3539999SWang.Lin@Sun.COM 
3549999SWang.Lin@Sun.COM #define	AR_NUM_QCU	10
3559999SWang.Lin@Sun.COM #define	AR_QCU_0	0x0001
3569999SWang.Lin@Sun.COM #define	AR_QCU_1	0x0002
3579999SWang.Lin@Sun.COM #define	AR_QCU_2	0x0004
3589999SWang.Lin@Sun.COM #define	AR_QCU_3	0x0008
3599999SWang.Lin@Sun.COM #define	AR_QCU_4	0x0010
3609999SWang.Lin@Sun.COM #define	AR_QCU_5	0x0020
3619999SWang.Lin@Sun.COM #define	AR_QCU_6	0x0040
3629999SWang.Lin@Sun.COM #define	AR_QCU_7	0x0080
3639999SWang.Lin@Sun.COM #define	AR_QCU_8	0x0100
3649999SWang.Lin@Sun.COM #define	AR_QCU_9	0x0200
3659999SWang.Lin@Sun.COM 
3669999SWang.Lin@Sun.COM #define	AR_Q0_TXDP	0x0800
3679999SWang.Lin@Sun.COM #define	AR_Q1_TXDP	0x0804
3689999SWang.Lin@Sun.COM #define	AR_Q2_TXDP	0x0808
3699999SWang.Lin@Sun.COM #define	AR_Q3_TXDP	0x080c
3709999SWang.Lin@Sun.COM #define	AR_Q4_TXDP	0x0810
3719999SWang.Lin@Sun.COM #define	AR_Q5_TXDP	0x0814
3729999SWang.Lin@Sun.COM #define	AR_Q6_TXDP	0x0818
3739999SWang.Lin@Sun.COM #define	AR_Q7_TXDP	0x081c
3749999SWang.Lin@Sun.COM #define	AR_Q8_TXDP	0x0820
3759999SWang.Lin@Sun.COM #define	AR_Q9_TXDP	0x0824
3769999SWang.Lin@Sun.COM #define	AR_QTXDP(_i)	(AR_Q0_TXDP + ((_i)<<2))
3779999SWang.Lin@Sun.COM 
3789999SWang.Lin@Sun.COM #define	AR_Q_TXE	0x0840
3799999SWang.Lin@Sun.COM #define	AR_Q_TXE_M	0x000003FF
3809999SWang.Lin@Sun.COM 
3819999SWang.Lin@Sun.COM #define	AR_Q_TXD	0x0880
3829999SWang.Lin@Sun.COM #define	AR_Q_TXD_M	0x000003FF
3839999SWang.Lin@Sun.COM 
3849999SWang.Lin@Sun.COM #define	AR_Q0_CBRCFG	0x08c0
3859999SWang.Lin@Sun.COM #define	AR_Q1_CBRCFG	0x08c4
3869999SWang.Lin@Sun.COM #define	AR_Q2_CBRCFG	0x08c8
3879999SWang.Lin@Sun.COM #define	AR_Q3_CBRCFG	0x08cc
3889999SWang.Lin@Sun.COM #define	AR_Q4_CBRCFG	0x08d0
3899999SWang.Lin@Sun.COM #define	AR_Q5_CBRCFG	0x08d4
3909999SWang.Lin@Sun.COM #define	AR_Q6_CBRCFG	0x08d8
3919999SWang.Lin@Sun.COM #define	AR_Q7_CBRCFG	0x08dc
3929999SWang.Lin@Sun.COM #define	AR_Q8_CBRCFG	0x08e0
3939999SWang.Lin@Sun.COM #define	AR_Q9_CBRCFG	0x08e4
3949999SWang.Lin@Sun.COM #define	AR_QCBRCFG(_i)	(AR_Q0_CBRCFG + ((_i)<<2))
3959999SWang.Lin@Sun.COM #define	AR_Q_CBRCFG_INTERVAL		0x00FFFFFF
3969999SWang.Lin@Sun.COM #define	AR_Q_CBRCFG_INTERVAL_S		0
3979999SWang.Lin@Sun.COM #define	AR_Q_CBRCFG_OVF_THRESH		0xFF000000
3989999SWang.Lin@Sun.COM #define	AR_Q_CBRCFG_OVF_THRESH_S	24
3999999SWang.Lin@Sun.COM 
4009999SWang.Lin@Sun.COM #define	AR_Q0_RDYTIMECFG		0x0900
4019999SWang.Lin@Sun.COM #define	AR_Q1_RDYTIMECFG		0x0904
4029999SWang.Lin@Sun.COM #define	AR_Q2_RDYTIMECFG		0x0908
4039999SWang.Lin@Sun.COM #define	AR_Q3_RDYTIMECFG		0x090c
4049999SWang.Lin@Sun.COM #define	AR_Q4_RDYTIMECFG		0x0910
4059999SWang.Lin@Sun.COM #define	AR_Q5_RDYTIMECFG		0x0914
4069999SWang.Lin@Sun.COM #define	AR_Q6_RDYTIMECFG		0x0918
4079999SWang.Lin@Sun.COM #define	AR_Q7_RDYTIMECFG		0x091c
4089999SWang.Lin@Sun.COM #define	AR_Q8_RDYTIMECFG		0x0920
4099999SWang.Lin@Sun.COM #define	AR_Q9_RDYTIMECFG		0x0924
4109999SWang.Lin@Sun.COM #define	AR_QRDYTIMECFG(_i)		(AR_Q0_RDYTIMECFG + ((_i)<<2))
4119999SWang.Lin@Sun.COM #define	AR_Q_RDYTIMECFG_DURATION	0x00FFFFFF
4129999SWang.Lin@Sun.COM #define	AR_Q_RDYTIMECFG_DURATION_S	0
4139999SWang.Lin@Sun.COM #define	AR_Q_RDYTIMECFG_EN		0x01000000
4149999SWang.Lin@Sun.COM 
4159999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_SC		0x0940
4169999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_SC_M		0x000003FF
4179999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_SC_RESV0	0xFFFFFC00
4189999SWang.Lin@Sun.COM 
4199999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_CC		0x0980
4209999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_CC_M		0x000003FF
4219999SWang.Lin@Sun.COM #define	AR_Q_ONESHOTARM_CC_RESV0	0xFFFFFC00
4229999SWang.Lin@Sun.COM 
4239999SWang.Lin@Sun.COM #define	AR_Q0_MISC			0x09c0
4249999SWang.Lin@Sun.COM #define	AR_Q1_MISC			0x09c4
4259999SWang.Lin@Sun.COM #define	AR_Q2_MISC			0x09c8
4269999SWang.Lin@Sun.COM #define	AR_Q3_MISC			0x09cc
4279999SWang.Lin@Sun.COM #define	AR_Q4_MISC			0x09d0
4289999SWang.Lin@Sun.COM #define	AR_Q5_MISC			0x09d4
4299999SWang.Lin@Sun.COM #define	AR_Q6_MISC			0x09d8
4309999SWang.Lin@Sun.COM #define	AR_Q7_MISC			0x09dc
4319999SWang.Lin@Sun.COM #define	AR_Q8_MISC			0x09e0
4329999SWang.Lin@Sun.COM #define	AR_Q9_MISC			0x09e4
4339999SWang.Lin@Sun.COM #define	AR_QMISC(_i)			(AR_Q0_MISC + ((_i)<<2))
4349999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP			0x0000000F
4359999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_ASAP		0
4369999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_CBR		1
4379999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_DBA_GATED		2
4389999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_TIM_GATED		3
4399999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_BEACON_SENT_GATED	4
4409999SWang.Lin@Sun.COM #define	AR_Q_MISC_FSP_BEACON_RCVD_GATED	5
4419999SWang.Lin@Sun.COM #define	AR_Q_MISC_ONE_SHOT_EN		0x00000010
4429999SWang.Lin@Sun.COM #define	AR_Q_MISC_CBR_INCR_DIS1		0x00000020
4439999SWang.Lin@Sun.COM #define	AR_Q_MISC_CBR_INCR_DIS0		0x00000040
4449999SWang.Lin@Sun.COM #define	AR_Q_MISC_BEACON_USE		0x00000080
4459999SWang.Lin@Sun.COM #define	AR_Q_MISC_CBR_EXP_CNTR_LIMIT_EN	0x00000100
4469999SWang.Lin@Sun.COM #define	AR_Q_MISC_RDYTIME_EXP_POLICY	0x00000200
4479999SWang.Lin@Sun.COM #define	AR_Q_MISC_RESET_CBR_EXP_CTR	0x00000400
4489999SWang.Lin@Sun.COM #define	AR_Q_MISC_DCU_EARLY_TERM_REQ	0x00000800
4499999SWang.Lin@Sun.COM #define	AR_Q_MISC_RESV0			0xFFFFF000
4509999SWang.Lin@Sun.COM 
4519999SWang.Lin@Sun.COM #define	AR_Q0_STS		0x0a00
4529999SWang.Lin@Sun.COM #define	AR_Q1_STS		0x0a04
4539999SWang.Lin@Sun.COM #define	AR_Q2_STS		0x0a08
4549999SWang.Lin@Sun.COM #define	AR_Q3_STS		0x0a0c
4559999SWang.Lin@Sun.COM #define	AR_Q4_STS		0x0a10
4569999SWang.Lin@Sun.COM #define	AR_Q5_STS		0x0a14
4579999SWang.Lin@Sun.COM #define	AR_Q6_STS		0x0a18
4589999SWang.Lin@Sun.COM #define	AR_Q7_STS		0x0a1c
4599999SWang.Lin@Sun.COM #define	AR_Q8_STS		0x0a20
4609999SWang.Lin@Sun.COM #define	AR_Q9_STS		0x0a24
4619999SWang.Lin@Sun.COM #define	AR_QSTS(_i)		(AR_Q0_STS + ((_i)<<2))
4629999SWang.Lin@Sun.COM #define	AR_Q_STS_PEND_FR_CNT	0x00000003
4639999SWang.Lin@Sun.COM #define	AR_Q_STS_RESV0		0x000000FC
4649999SWang.Lin@Sun.COM #define	AR_Q_STS_CBR_EXP_CNT	0x0000FF00
4659999SWang.Lin@Sun.COM #define	AR_Q_STS_RESV1		0xFFFF0000
4669999SWang.Lin@Sun.COM 
4679999SWang.Lin@Sun.COM #define	AR_Q_RDYTIMESHDN	0x0a40
4689999SWang.Lin@Sun.COM #define	AR_Q_RDYTIMESHDN_M	0x000003FF
4699999SWang.Lin@Sun.COM 
4709999SWang.Lin@Sun.COM 
4719999SWang.Lin@Sun.COM #define	AR_NUM_DCU	10
4729999SWang.Lin@Sun.COM #define	AR_DCU_0	0x0001
4739999SWang.Lin@Sun.COM #define	AR_DCU_1	0x0002
4749999SWang.Lin@Sun.COM #define	AR_DCU_2	0x0004
4759999SWang.Lin@Sun.COM #define	AR_DCU_3	0x0008
4769999SWang.Lin@Sun.COM #define	AR_DCU_4	0x0010
4779999SWang.Lin@Sun.COM #define	AR_DCU_5	0x0020
4789999SWang.Lin@Sun.COM #define	AR_DCU_6	0x0040
4799999SWang.Lin@Sun.COM #define	AR_DCU_7	0x0080
4809999SWang.Lin@Sun.COM #define	AR_DCU_8	0x0100
4819999SWang.Lin@Sun.COM #define	AR_DCU_9	0x0200
4829999SWang.Lin@Sun.COM 
4839999SWang.Lin@Sun.COM #define	AR_D0_QCUMASK		0x1000
4849999SWang.Lin@Sun.COM #define	AR_D1_QCUMASK		0x1004
4859999SWang.Lin@Sun.COM #define	AR_D2_QCUMASK		0x1008
4869999SWang.Lin@Sun.COM #define	AR_D3_QCUMASK		0x100c
4879999SWang.Lin@Sun.COM #define	AR_D4_QCUMASK		0x1010
4889999SWang.Lin@Sun.COM #define	AR_D5_QCUMASK		0x1014
4899999SWang.Lin@Sun.COM #define	AR_D6_QCUMASK		0x1018
4909999SWang.Lin@Sun.COM #define	AR_D7_QCUMASK		0x101c
4919999SWang.Lin@Sun.COM #define	AR_D8_QCUMASK		0x1020
4929999SWang.Lin@Sun.COM #define	AR_D9_QCUMASK		0x1024
4939999SWang.Lin@Sun.COM #define	AR_DQCUMASK(_i)		(AR_D0_QCUMASK + ((_i)<<2))
4949999SWang.Lin@Sun.COM #define	AR_D_QCUMASK		0x000003FF
4959999SWang.Lin@Sun.COM #define	AR_D_QCUMASK_RESV0	0xFFFFFC00
4969999SWang.Lin@Sun.COM 
4979999SWang.Lin@Sun.COM #define	AR_D_TXBLK_CMD		0x1038
4989999SWang.Lin@Sun.COM #define	AR_D_TXBLK_DATA(i)	(AR_D_TXBLK_CMD+(i))
4999999SWang.Lin@Sun.COM 
5009999SWang.Lin@Sun.COM #define	AR_D0_LCL_IFS		0x1040
5019999SWang.Lin@Sun.COM #define	AR_D1_LCL_IFS		0x1044
5029999SWang.Lin@Sun.COM #define	AR_D2_LCL_IFS		0x1048
5039999SWang.Lin@Sun.COM #define	AR_D3_LCL_IFS		0x104c
5049999SWang.Lin@Sun.COM #define	AR_D4_LCL_IFS		0x1050
5059999SWang.Lin@Sun.COM #define	AR_D5_LCL_IFS		0x1054
5069999SWang.Lin@Sun.COM #define	AR_D6_LCL_IFS		0x1058
5079999SWang.Lin@Sun.COM #define	AR_D7_LCL_IFS		0x105c
5089999SWang.Lin@Sun.COM #define	AR_D8_LCL_IFS		0x1060
5099999SWang.Lin@Sun.COM #define	AR_D9_LCL_IFS		0x1064
5109999SWang.Lin@Sun.COM #define	AR_DLCL_IFS(_i)		(AR_D0_LCL_IFS + ((_i)<<2))
5119999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_CWMIN	0x000003FF
5129999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_CWMIN_S	0
5139999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_CWMAX	0x000FFC00
5149999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_CWMAX_S	10
5159999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_AIFS	0x0FF00000
5169999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_AIFS_S	20
5179999SWang.Lin@Sun.COM 
5189999SWang.Lin@Sun.COM #define	AR_D_LCL_IFS_RESV0	0xF0000000
5199999SWang.Lin@Sun.COM 
5209999SWang.Lin@Sun.COM #define	AR_D0_RETRY_LIMIT		0x1080
5219999SWang.Lin@Sun.COM #define	AR_D1_RETRY_LIMIT		0x1084
5229999SWang.Lin@Sun.COM #define	AR_D2_RETRY_LIMIT		0x1088
5239999SWang.Lin@Sun.COM #define	AR_D3_RETRY_LIMIT		0x108c
5249999SWang.Lin@Sun.COM #define	AR_D4_RETRY_LIMIT		0x1090
5259999SWang.Lin@Sun.COM #define	AR_D5_RETRY_LIMIT		0x1094
5269999SWang.Lin@Sun.COM #define	AR_D6_RETRY_LIMIT		0x1098
5279999SWang.Lin@Sun.COM #define	AR_D7_RETRY_LIMIT		0x109c
5289999SWang.Lin@Sun.COM #define	AR_D8_RETRY_LIMIT		0x10a0
5299999SWang.Lin@Sun.COM #define	AR_D9_RETRY_LIMIT		0x10a4
5309999SWang.Lin@Sun.COM #define	AR_DRETRY_LIMIT(_i)		(AR_D0_RETRY_LIMIT + ((_i)<<2))
5319999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_FR_SH		0x0000000F
5329999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_FR_SH_S	0
5339999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_STA_SH		0x00003F00
5349999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_STA_SH_S	8
5359999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_STA_LG		0x000FC000
5369999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_STA_LG_S	14
5379999SWang.Lin@Sun.COM #define	AR_D_RETRY_LIMIT_RESV0		0xFFF00000
5389999SWang.Lin@Sun.COM 
5399999SWang.Lin@Sun.COM #define	AR_D0_CHNTIME		0x10c0
5409999SWang.Lin@Sun.COM #define	AR_D1_CHNTIME		0x10c4
5419999SWang.Lin@Sun.COM #define	AR_D2_CHNTIME		0x10c8
5429999SWang.Lin@Sun.COM #define	AR_D3_CHNTIME		0x10cc
5439999SWang.Lin@Sun.COM #define	AR_D4_CHNTIME		0x10d0
5449999SWang.Lin@Sun.COM #define	AR_D5_CHNTIME		0x10d4
5459999SWang.Lin@Sun.COM #define	AR_D6_CHNTIME		0x10d8
5469999SWang.Lin@Sun.COM #define	AR_D7_CHNTIME		0x10dc
5479999SWang.Lin@Sun.COM #define	AR_D8_CHNTIME		0x10e0
5489999SWang.Lin@Sun.COM #define	AR_D9_CHNTIME		0x10e4
5499999SWang.Lin@Sun.COM #define	AR_DCHNTIME(_i)		(AR_D0_CHNTIME + ((_i)<<2))
5509999SWang.Lin@Sun.COM #define	AR_D_CHNTIME_DUR	0x000FFFFF
5519999SWang.Lin@Sun.COM #define	AR_D_CHNTIME_DUR_S	0
5529999SWang.Lin@Sun.COM #define	AR_D_CHNTIME_EN		0x00100000
5539999SWang.Lin@Sun.COM #define	AR_D_CHNTIME_RESV0	0xFFE00000
5549999SWang.Lin@Sun.COM 
5559999SWang.Lin@Sun.COM #define	AR_D0_MISC	0x1100
5569999SWang.Lin@Sun.COM #define	AR_D1_MISC	0x1104
5579999SWang.Lin@Sun.COM #define	AR_D2_MISC	0x1108
5589999SWang.Lin@Sun.COM #define	AR_D3_MISC	0x110c
5599999SWang.Lin@Sun.COM #define	AR_D4_MISC	0x1110
5609999SWang.Lin@Sun.COM #define	AR_D5_MISC	0x1114
5619999SWang.Lin@Sun.COM #define	AR_D6_MISC	0x1118
5629999SWang.Lin@Sun.COM #define	AR_D7_MISC	0x111c
5639999SWang.Lin@Sun.COM #define	AR_D8_MISC	0x1120
5649999SWang.Lin@Sun.COM #define	AR_D9_MISC	0x1124
5659999SWang.Lin@Sun.COM #define	AR_DMISC(_i)	(AR_D0_MISC + ((_i)<<2))
5669999SWang.Lin@Sun.COM #define	AR_D_MISC_BKOFF_THRESH		0x0000003F
5679999SWang.Lin@Sun.COM #define	AR_D_MISC_RETRY_CNT_RESET_EN	0x00000040
5689999SWang.Lin@Sun.COM #define	AR_D_MISC_CW_RESET_EN		0x00000080
5699999SWang.Lin@Sun.COM #define	AR_D_MISC_FRAG_WAIT_EN		0x00000100
5709999SWang.Lin@Sun.COM #define	AR_D_MISC_FRAG_BKOFF_EN		0x00000200
5719999SWang.Lin@Sun.COM #define	AR_D_MISC_CW_BKOFF_EN		0x00001000
5729999SWang.Lin@Sun.COM #define	AR_D_MISC_VIR_COL_HANDLING	0x0000C000
5739999SWang.Lin@Sun.COM #define	AR_D_MISC_VIR_COL_HANDLING_S	14
5749999SWang.Lin@Sun.COM #define	AR_D_MISC_VIR_COL_HANDLING_DEFAULT	0
5759999SWang.Lin@Sun.COM #define	AR_D_MISC_VIR_COL_HANDLING_IGNORE	1
5769999SWang.Lin@Sun.COM #define	AR_D_MISC_BEACON_USE		0x00010000
5779999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_CNTRL	0x00060000
5789999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_CNTRL_S	17
5799999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_CNTRL_NONE	0
5809999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_CNTRL_INTRA_FR	1
5819999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_CNTRL_GLOBAL	2
5829999SWang.Lin@Sun.COM #define	AR_D_MISC_ARB_LOCKOUT_IGNORE	0x00080000
5839999SWang.Lin@Sun.COM #define	AR_D_MISC_SEQ_NUM_INCR_DIS	0x00100000
5849999SWang.Lin@Sun.COM #define	AR_D_MISC_POST_FR_BKOFF_DIS	0x00200000
5859999SWang.Lin@Sun.COM #define	AR_D_MISC_VIT_COL_CW_BKOFF_EN	0x00400000
5869999SWang.Lin@Sun.COM #define	AR_D_MISC_BLOWN_IFS_RETRY_EN	0x00800000
5879999SWang.Lin@Sun.COM #define	AR_D_MISC_RESV0			0xFF000000
5889999SWang.Lin@Sun.COM 
5899999SWang.Lin@Sun.COM #define	AR_D_SEQNUM	0x1140
5909999SWang.Lin@Sun.COM 
5919999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SIFS		0x1030
5929999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SIFS_M		0x0000FFFF
5939999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SIFS_RESV0		0xFFFFFFFF
5949999SWang.Lin@Sun.COM 
5959999SWang.Lin@Sun.COM #define	AR_D_TXBLK_BASE			0x1038
5969999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_BITMASK	0x0000FFFF
5979999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_BITMASK_S	0
5989999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_SLICE		0x000F0000
5999999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_SLICE_S	16
6009999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_DCU		0x00F00000
6019999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_DCU_S		20
6029999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_COMMAND	0x0F000000
6039999SWang.Lin@Sun.COM #define	AR_D_TXBLK_WRITE_COMMAND_S	24
6049999SWang.Lin@Sun.COM 
6059999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SLOT	0x1070
6069999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SLOT_M	0x0000FFFF
6079999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_SLOT_RESV0	0xFFFF0000
6089999SWang.Lin@Sun.COM 
6099999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_EIFS	0x10b0
6109999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_EIFS_M	0x0000FFFF
6119999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_EIFS_RESV0	0xFFFF0000
6129999SWang.Lin@Sun.COM 
6139999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC			0x10f0
6149999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_LFSR_SLICE_SEL	0x00000007
6159999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_TURBO_MODE		0x00000008
6169999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_USEC_DURATION		0x000FFC00
6179999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_DCU_ARBITER_DLY	0x00300000
6189999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_RANDOM_LFSR_SLICE_DIS	0x01000000
6199999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_SLOT_XMIT_WIND_LEN	0x06000000
6209999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_FORCE_XMIT_SLOT_BOUND	0x08000000
6219999SWang.Lin@Sun.COM #define	AR_D_GBL_IFS_MISC_IGNORE_BACKOFF	0x10000000
6229999SWang.Lin@Sun.COM 
6239999SWang.Lin@Sun.COM #define	AR_D_FPCTL			0x1230
6249999SWang.Lin@Sun.COM #define	AR_D_FPCTL_DCU			0x0000000F
6259999SWang.Lin@Sun.COM #define	AR_D_FPCTL_DCU_S		0
6269999SWang.Lin@Sun.COM #define	AR_D_FPCTL_PREFETCH_EN		0x00000010
6279999SWang.Lin@Sun.COM #define	AR_D_FPCTL_BURST_PREFETCH	0x00007FE0
6289999SWang.Lin@Sun.COM #define	AR_D_FPCTL_BURST_PREFETCH_S	5
6299999SWang.Lin@Sun.COM 
6309999SWang.Lin@Sun.COM #define	AR_D_TXPSE			0x1270
6319999SWang.Lin@Sun.COM #define	AR_D_TXPSE_CTRL			0x000003FF
6329999SWang.Lin@Sun.COM #define	AR_D_TXPSE_RESV0		0x0000FC00
6339999SWang.Lin@Sun.COM #define	AR_D_TXPSE_STATUS		0x00010000
6349999SWang.Lin@Sun.COM #define	AR_D_TXPSE_RESV1		0xFFFE0000
6359999SWang.Lin@Sun.COM 
6369999SWang.Lin@Sun.COM #define	AR_D_TXSLOTMASK			0x12f0
6379999SWang.Lin@Sun.COM #define	AR_D_TXSLOTMASK_NUM		0x0000000F
6389999SWang.Lin@Sun.COM 
6399999SWang.Lin@Sun.COM #define	AR_CFG_LED			0x1f04
6409999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_RATE_IND		0x00000003
6419999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_RATE_IND_S		0
6429999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_32MHZ		0x00000000
6439999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_4MHZ		0x00000001
6449999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_1MHZ		0x00000002
6459999SWang.Lin@Sun.COM #define	AR_CFG_SCLK_32KHZ		0x00000003
6469999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_SLOW		0x00000008
6479999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_THRESH_SEL	0x00000070
6489999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_SEL		0x00000380
6499999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_SEL_S		7
6509999SWang.Lin@Sun.COM #define	AR_CFG_LED_POWER		0x00000280
6519999SWang.Lin@Sun.COM #define	AR_CFG_LED_POWER_S		7
6529999SWang.Lin@Sun.COM #define	AR_CFG_LED_NETWORK		0x00000300
6539999SWang.Lin@Sun.COM #define	AR_CFG_LED_NETWORK_S		7
6549999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_PROP		0x0
6559999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_RPROP		0x1
6569999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_SPLIT		0x2
6579999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_RAND		0x3
6589999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_POWER_OFF	0x4
6599999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_POWER_ON	0x5
6609999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_NETWORK_OFF	0x4
6619999SWang.Lin@Sun.COM #define	AR_CFG_LED_MODE_NETWORK_ON	0x6
6629999SWang.Lin@Sun.COM #define	AR_CFG_LED_ASSOC_CTL		0x00000c00
6639999SWang.Lin@Sun.COM #define	AR_CFG_LED_ASSOC_CTL_S		10
6649999SWang.Lin@Sun.COM #define	AR_CFG_LED_ASSOC_NONE		0x0
6659999SWang.Lin@Sun.COM #define	AR_CFG_LED_ASSOC_ACTIVE		0x1
6669999SWang.Lin@Sun.COM #define	AR_CFG_LED_ASSOC_PENDING	0x2
6679999SWang.Lin@Sun.COM 
6689999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_SLOW		0x00000008
6699999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_SLOW_S		3
6709999SWang.Lin@Sun.COM 
6719999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_THRESH_SEL	0x00000070
6729999SWang.Lin@Sun.COM #define	AR_CFG_LED_BLINK_THRESH_SEL_S	4
6739999SWang.Lin@Sun.COM 
6749999SWang.Lin@Sun.COM #define	AR_MAC_SLEEP			0x1f00
6759999SWang.Lin@Sun.COM #define	AR_MAC_SLEEP_MAC_AWAKE		0x00000000
6769999SWang.Lin@Sun.COM #define	AR_MAC_SLEEP_MAC_ASLEEP		0x00000001
6779999SWang.Lin@Sun.COM 
6789999SWang.Lin@Sun.COM #define	AR_RC		0x4000
6799999SWang.Lin@Sun.COM #define	AR_RC_AHB	0x00000001
6809999SWang.Lin@Sun.COM #define	AR_RC_APB	0x00000002
6819999SWang.Lin@Sun.COM #define	AR_RC_HOSTIF	0x00000100
6829999SWang.Lin@Sun.COM 
6839999SWang.Lin@Sun.COM #define	AR_WA		0x4004
6849999SWang.Lin@Sun.COM #define	AR9285_WA_DEFAULT		0x004a05cb
6859999SWang.Lin@Sun.COM #define	AR9280_WA_DEFAULT		0x0040073f
6869999SWang.Lin@Sun.COM #define	AR_WA_DEFAULT			0x0000073f
6879999SWang.Lin@Sun.COM 
6889999SWang.Lin@Sun.COM #define	AR_PM_STATE			0x4008
6899999SWang.Lin@Sun.COM #define	AR_PM_STATE_PME_D3COLD_VAUX	0x00100000
6909999SWang.Lin@Sun.COM 
6919999SWang.Lin@Sun.COM #define	AR_HOST_TIMEOUT			0x4018
6929999SWang.Lin@Sun.COM #define	AR_HOST_TIMEOUT_APB_CNTR	0x0000FFFF
6939999SWang.Lin@Sun.COM #define	AR_HOST_TIMEOUT_APB_CNTR_S	0
6949999SWang.Lin@Sun.COM #define	AR_HOST_TIMEOUT_LCL_CNTR	0xFFFF0000
6959999SWang.Lin@Sun.COM #define	AR_HOST_TIMEOUT_LCL_CNTR_S	16
6969999SWang.Lin@Sun.COM 
6979999SWang.Lin@Sun.COM #define	AR_EEPROM			0x401c
6989999SWang.Lin@Sun.COM #define	AR_EEPROM_ABSENT		0x00000100
6999999SWang.Lin@Sun.COM #define	AR_EEPROM_CORRUPT		0x00000200
7009999SWang.Lin@Sun.COM #define	AR_EEPROM_PROT_MASK		0x03FFFC00
7019999SWang.Lin@Sun.COM #define	AR_EEPROM_PROT_MASK_S		10
7029999SWang.Lin@Sun.COM 
7039999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_0_31		0x0001
7049999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_0_31		0x0002
7059999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_32_63		0x0004
7069999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_32_63		0x0008
7079999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_64_127	0x0010
7089999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_64_127	0x0020
7099999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_128_191	0x0040
7109999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_128_191	0x0080
7119999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_192_255	0x0100
7129999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_192_255	0x0200
7139999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_256_511	0x0400
7149999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_256_511	0x0800
7159999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_512_1023	0x1000
7169999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_512_1023	0x2000
7179999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_RP_1024_2047	0x4000
7189999SWang.Lin@Sun.COM #define	EEPROM_PROTECT_WP_1024_2047	0x8000
7199999SWang.Lin@Sun.COM 
7209999SWang.Lin@Sun.COM #define	AR_SREV \
7219999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? 0x0600 : 0x4020)
7229999SWang.Lin@Sun.COM 
7239999SWang.Lin@Sun.COM #define	AR_SREV_ID \
7249999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? 0x00000FFF : 0x000000FF)
7259999SWang.Lin@Sun.COM #define	AR_SREV_VERSION			0x000000F0
7269999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_S		4
7279999SWang.Lin@Sun.COM #define	AR_SREV_REVISION		0x00000007
7289999SWang.Lin@Sun.COM 
7299999SWang.Lin@Sun.COM #define	AR_SREV_ID2			0xFFFFFFFF
7309999SWang.Lin@Sun.COM #define	AR_SREV_VERSION2		0xFFFC0000
7319999SWang.Lin@Sun.COM #define	AR_SREV_VERSION2_S		18
7329999SWang.Lin@Sun.COM #define	AR_SREV_TYPE2			0x0003F000
7339999SWang.Lin@Sun.COM #define	AR_SREV_TYPE2_S			12
7349999SWang.Lin@Sun.COM #define	AR_SREV_TYPE2_CHAIN		0x00001000
7359999SWang.Lin@Sun.COM #define	AR_SREV_TYPE2_HOST_MODE		0x00002000
7369999SWang.Lin@Sun.COM #define	AR_SREV_REVISION2		0x00000F00
7379999SWang.Lin@Sun.COM #define	AR_SREV_REVISION2_S		8
7389999SWang.Lin@Sun.COM 
7399999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_5416_PCI	0xD
7409999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_5416_PCIE	0xC
7419999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_5416_10	0
7429999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_5416_20	1
7439999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_5416_22	2
7449999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_9160		0x40
7459999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9160_10	0
7469999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9160_11	1
7479999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_9280		0x80
7489999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9280_10	0
7499999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9280_20	1
7509999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9280_21	2
7519999SWang.Lin@Sun.COM #define	AR_SREV_VERSION_9285		0xC0
7529999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9285_10	0
7539999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9285_11	1
7549999SWang.Lin@Sun.COM #define	AR_SREV_REVISION_9285_12	2
7559999SWang.Lin@Sun.COM 
7569999SWang.Lin@Sun.COM #define	AR_SREV_9100_OR_LATER(_ah) \
7579999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_5416_PCIE))
7589999SWang.Lin@Sun.COM #define	AR_SREV_5416_20_OR_LATER(_ah) \
7599999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_9160) || \
7609999SWang.Lin@Sun.COM 		((_ah)->ah_macRev >= AR_SREV_REVISION_5416_20))
7619999SWang.Lin@Sun.COM #define	AR_SREV_5416_22_OR_LATER(_ah) \
7629999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_9160) || \
7639999SWang.Lin@Sun.COM 		((_ah)->ah_macRev >= AR_SREV_REVISION_5416_22))
7649999SWang.Lin@Sun.COM #define	AR_SREV_9160(_ah) \
7659999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion == AR_SREV_VERSION_9160))
7669999SWang.Lin@Sun.COM #define	AR_SREV_9160_10_OR_LATER(_ah) \
7679999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_9160))
7689999SWang.Lin@Sun.COM #define	AR_SREV_9160_11(_ah) \
7699999SWang.Lin@Sun.COM 	(AR_SREV_9160(_ah) && ((_ah)->ah_macRev == AR_SREV_REVISION_9160_11))
7709999SWang.Lin@Sun.COM #define	AR_SREV_9280(_ah) \
7719999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion == AR_SREV_VERSION_9280))
7729999SWang.Lin@Sun.COM #define	AR_SREV_9280_10_OR_LATER(_ah) \
7739999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_9280))
7749999SWang.Lin@Sun.COM #define	AR_SREV_9280_20(_ah) \
7759999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion == AR_SREV_VERSION_9280) && \
7769999SWang.Lin@Sun.COM 		((_ah)->ah_macRev >= AR_SREV_REVISION_9280_20))
7779999SWang.Lin@Sun.COM #define	AR_SREV_9280_20_OR_LATER(_ah) \
7789999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion > AR_SREV_VERSION_9280) || \
7799999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion == AR_SREV_VERSION_9280) && \
7809999SWang.Lin@Sun.COM 	((_ah)->ah_macRev >= AR_SREV_REVISION_9280_20)))
7819999SWang.Lin@Sun.COM 
7829999SWang.Lin@Sun.COM #define	AR_SREV_9285(_ah)	(((_ah)->ah_macVersion == AR_SREV_VERSION_9285))
7839999SWang.Lin@Sun.COM #define	AR_SREV_9285_10_OR_LATER(_ah)	\
7849999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion >= AR_SREV_VERSION_9285))
7859999SWang.Lin@Sun.COM #define	AR_SREV_9285_11(_ah) \
7869999SWang.Lin@Sun.COM 	(AR_SREV_9280(ah) && ((_ah)->ah_macRev == AR_SREV_REVISION_9285_11))
7879999SWang.Lin@Sun.COM #define	AR_SREV_9285_11_OR_LATER(_ah)	\
7889999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion > AR_SREV_VERSION_9285) || \
7899999SWang.Lin@Sun.COM 	(AR_SREV_9285(ah) && ((_ah)->ah_macRev >= AR_SREV_REVISION_9285_11)))
7909999SWang.Lin@Sun.COM #define	AR_SREV_9285_12(_ah)	\
7919999SWang.Lin@Sun.COM 	(AR_SREV_9280(ah) && ((_ah)->ah_macRev == AR_SREV_REVISION_9285_12))
7929999SWang.Lin@Sun.COM #define	AR_SREV_9285_12_OR_LATER(_ah)	\
7939999SWang.Lin@Sun.COM 	(((_ah)->ah_macVersion > AR_SREV_VERSION_9285) || \
7949999SWang.Lin@Sun.COM 	(AR_SREV_9285(ah) && ((_ah)->ah_macRev >= AR_SREV_REVISION_9285_12)))
7959999SWang.Lin@Sun.COM 
7969999SWang.Lin@Sun.COM #define	AR_RADIO_SREV_MAJOR		0xf0
7979999SWang.Lin@Sun.COM #define	AR_RAD5133_SREV_MAJOR		0xc0
7989999SWang.Lin@Sun.COM #define	AR_RAD2133_SREV_MAJOR		0xd0
7999999SWang.Lin@Sun.COM #define	AR_RAD5122_SREV_MAJOR		0xe0
8009999SWang.Lin@Sun.COM #define	AR_RAD2122_SREV_MAJOR		0xf0
8019999SWang.Lin@Sun.COM 
8029999SWang.Lin@Sun.COM #define	AR_AHB_MODE			0x4024
8039999SWang.Lin@Sun.COM #define	AR_AHB_EXACT_WR_EN		0x00000000
8049999SWang.Lin@Sun.COM #define	AR_AHB_BUF_WR_EN		0x00000001
8059999SWang.Lin@Sun.COM #define	AR_AHB_EXACT_RD_EN		0x00000000
8069999SWang.Lin@Sun.COM #define	AR_AHB_CACHELINE_RD_EN		0x00000002
8079999SWang.Lin@Sun.COM #define	AR_AHB_PREFETCH_RD_EN		0x00000004
8089999SWang.Lin@Sun.COM #define	AR_AHB_PAGE_SIZE_1K		0x00000000
8099999SWang.Lin@Sun.COM #define	AR_AHB_PAGE_SIZE_2K		0x00000008
8109999SWang.Lin@Sun.COM #define	AR_AHB_PAGE_SIZE_4K		0x00000010
8119999SWang.Lin@Sun.COM 
8129999SWang.Lin@Sun.COM #define	AR_INTR_RTC_IRQ			0x00000001
8139999SWang.Lin@Sun.COM #define	AR_INTR_MAC_IRQ			0x00000002
8149999SWang.Lin@Sun.COM #define	AR_INTR_EEP_PROT_ACCESS		0x00000004
8159999SWang.Lin@Sun.COM #define	AR_INTR_MAC_AWAKE		0x00020000
8169999SWang.Lin@Sun.COM #define	AR_INTR_MAC_ASLEEP		0x00040000
8179999SWang.Lin@Sun.COM #define	AR_INTR_SPURIOUS		0xFFFFFFFF
8189999SWang.Lin@Sun.COM 
8199999SWang.Lin@Sun.COM 
8209999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_CAUSE_CLR		0x4028
8219999SWang.Lin@Sun.COM 
8229999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_CAUSE		0x4028
8239999SWang.Lin@Sun.COM 
8249999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_ENABLE		0x402c
8259999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_ENABLE_GPIO	0xFFFC0000
8269999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_ENABLE_GPIO_S	18
8279999SWang.Lin@Sun.COM 
8289999SWang.Lin@Sun.COM enum {
8299999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RTC_IRQ = 0x00000001,
8309999SWang.Lin@Sun.COM 	AR_INTR_SYNC_MAC_IRQ = 0x00000002,
8319999SWang.Lin@Sun.COM 	AR_INTR_SYNC_EEPROM_ILLEGAL_ACCESS = 0x00000004,
8329999SWang.Lin@Sun.COM 	AR_INTR_SYNC_APB_TIMEOUT = 0x00000008,
8339999SWang.Lin@Sun.COM 	AR_INTR_SYNC_PCI_MODE_CONFLICT = 0x00000010,
8349999SWang.Lin@Sun.COM 	AR_INTR_SYNC_HOST1_FATAL = 0x00000020,
8359999SWang.Lin@Sun.COM 	AR_INTR_SYNC_HOST1_PERR = 0x00000040,
8369999SWang.Lin@Sun.COM 	AR_INTR_SYNC_TRCV_FIFO_PERR = 0x00000080,
8379999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RADM_CPL_EP = 0x00000100,
8389999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RADM_CPL_DLLP_ABORT = 0x00000200,
8399999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RADM_CPL_TLP_ABORT = 0x00000400,
8409999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RADM_CPL_ECRC_ERR = 0x00000800,
8419999SWang.Lin@Sun.COM 	AR_INTR_SYNC_RADM_CPL_TIMEOUT = 0x00001000,
8429999SWang.Lin@Sun.COM 	AR_INTR_SYNC_LOCAL_TIMEOUT = 0x00002000,
8439999SWang.Lin@Sun.COM 	AR_INTR_SYNC_PM_ACCESS = 0x00004000,
8449999SWang.Lin@Sun.COM 	AR_INTR_SYNC_MAC_AWAKE = 0x00008000,
8459999SWang.Lin@Sun.COM 	AR_INTR_SYNC_MAC_ASLEEP = 0x00010000,
8469999SWang.Lin@Sun.COM 	AR_INTR_SYNC_MAC_SLEEP_ACCESS = 0x00020000,
8479999SWang.Lin@Sun.COM 	AR_INTR_SYNC_ALL = 0x0003FFFF,
8489999SWang.Lin@Sun.COM 
8499999SWang.Lin@Sun.COM 
8509999SWang.Lin@Sun.COM 	AR_INTR_SYNC_DEFAULT = (AR_INTR_SYNC_HOST1_FATAL |
8519999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_HOST1_PERR |
8529999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_RADM_CPL_EP |
8539999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_RADM_CPL_DLLP_ABORT |
8549999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_RADM_CPL_TLP_ABORT |
8559999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_RADM_CPL_ECRC_ERR |
8569999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_RADM_CPL_TIMEOUT |
8579999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_LOCAL_TIMEOUT |
8589999SWang.Lin@Sun.COM 	    AR_INTR_SYNC_MAC_SLEEP_ACCESS),
8599999SWang.Lin@Sun.COM 
8609999SWang.Lin@Sun.COM 	/* AR_INTR_SYNC_SPURIOUS = 0xFFFFFFFF, */
8619999SWang.Lin@Sun.COM 	AR_INTR_SYNC_SPURIOUS = -1,
8629999SWang.Lin@Sun.COM 
8639999SWang.Lin@Sun.COM };
8649999SWang.Lin@Sun.COM 
8659999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_MASK		0x4030
8669999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_MASK_GPIO		0xFFFC0000
8679999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_MASK_GPIO_S	18
8689999SWang.Lin@Sun.COM 
8699999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_MASK		0x4034
8709999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_MASK_GPIO		0xFFFC0000
8719999SWang.Lin@Sun.COM #define	AR_INTR_SYNC_MASK_GPIO_S	18
8729999SWang.Lin@Sun.COM 
8739999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_CAUSE_CLR		0x4038
8749999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_CAUSE		0x4038
8759999SWang.Lin@Sun.COM 
8769999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_ENABLE		0x403c
8779999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_ENABLE_GPIO	0xFFFC0000
8789999SWang.Lin@Sun.COM #define	AR_INTR_ASYNC_ENABLE_GPIO_S	18
8799999SWang.Lin@Sun.COM 
8809999SWang.Lin@Sun.COM #define	AR_PCIE_SERDES		0x4040
8819999SWang.Lin@Sun.COM #define	AR_PCIE_SERDES2		0x4044
8829999SWang.Lin@Sun.COM #define	AR_PCIE_PM_CTRL		0x4014
8839999SWang.Lin@Sun.COM #define	AR_PCIE_PM_CTRL_ENA	0x00080000
8849999SWang.Lin@Sun.COM 
8859999SWang.Lin@Sun.COM #define	AR_NUM_GPIO	14
8869999SWang.Lin@Sun.COM #define	AR928X_NUM_GPIO	10
8879999SWang.Lin@Sun.COM 
8889999SWang.Lin@Sun.COM #define	AR_GPIO_IN_OUT		0x4048
8899999SWang.Lin@Sun.COM #define	AR_GPIO_IN_VAL		0x0FFFC000
8909999SWang.Lin@Sun.COM #define	AR_GPIO_IN_VAL_S	14
8919999SWang.Lin@Sun.COM #define	AR928X_GPIO_IN_VAL	0x000FFC00
8929999SWang.Lin@Sun.COM #define	AR928X_GPIO_IN_VAL_S	10
8939999SWang.Lin@Sun.COM 
8949999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT		0x404c
8959999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT_DRV	0x3
8969999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT_DRV_NO	0x0
8979999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT_DRV_LOW	0x1
8989999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT_DRV_HI	0x2
8999999SWang.Lin@Sun.COM #define	AR_GPIO_OE_OUT_DRV_ALL	0x3
9009999SWang.Lin@Sun.COM 
9019999SWang.Lin@Sun.COM #define	AR_GPIO_INTR_POL	0x4050
9029999SWang.Lin@Sun.COM #define	AR_GPIO_INTR_POL_VAL	0x00001FFF
9039999SWang.Lin@Sun.COM #define	AR_GPIO_INTR_POL_VAL_S	0
9049999SWang.Lin@Sun.COM 
9059999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_EN_VAL			0x4054
9069999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_EN_VAL_RFSILENT_DEF	0x00000080
9079999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_EN_VAL_RFSILENT_DEF_S	7
9089999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_EN_VAL_RFSILENT_BB	0x00008000
9099999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_EN_VAL_RFSILENT_BB_S	15
9109999SWang.Lin@Sun.COM #define	AR_GPIO_RTC_RESET_OVERRIDE_ENABLE	0x00010000
9119999SWang.Lin@Sun.COM #define	AR_GPIO_JTAG_DISABLE			0x00020000
9129999SWang.Lin@Sun.COM 
9139999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX1	0x4058
9149999SWang.Lin@Sun.COM 
9159999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2		0x405c
9169999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_CLK25	0x0000000f
9179999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_CLK25_S	0
9189999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_RFSILENT	0x000000f0
9199999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_RFSILENT_S	4
9209999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_RTC_RESET	0x00000f00
9219999SWang.Lin@Sun.COM #define	AR_GPIO_INPUT_MUX2_RTC_RESET_S	8
9229999SWang.Lin@Sun.COM 
9239999SWang.Lin@Sun.COM #define	AR_GPIO_OUTPUT_MUX1	0x4060
9249999SWang.Lin@Sun.COM #define	AR_GPIO_OUTPUT_MUX2	0x4064
9259999SWang.Lin@Sun.COM #define	AR_GPIO_OUTPUT_MUX3	0x4068
9269999SWang.Lin@Sun.COM 
9279999SWang.Lin@Sun.COM #define	AR_INPUT_STATE		0x406c
9289999SWang.Lin@Sun.COM 
9299999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA			0x407c
9309999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_VAL		0x0000ffff
9319999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_VAL_S		0
9329999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_BUSY		0x00010000
9339999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_BUSY_ACCESS	0x00020000
9349999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_PROT_ACCESS	0x00040000
9359999SWang.Lin@Sun.COM #define	AR_EEPROM_STATUS_DATA_ABSENT_ACCESS	0x00080000
9369999SWang.Lin@Sun.COM 
9379999SWang.Lin@Sun.COM #define	AR_OBS	0x4080
9389999SWang.Lin@Sun.COM 
9399999SWang.Lin@Sun.COM #define	AR_PCIE_MSI		0x4094
9409999SWang.Lin@Sun.COM #define	AR_PCIE_MSI_ENABLE	0x00000001
9419999SWang.Lin@Sun.COM 
9429999SWang.Lin@Sun.COM 
9439999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_DIV		0x000003ff
9449999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_DIV_S		0
9459999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_REFDIV		0x00003C00
9469999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_REFDIV_S	10
9479999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_CLKSEL		0x0000C000
9489999SWang.Lin@Sun.COM #define	AR_RTC_9160_PLL_CLKSEL_S	14
9499999SWang.Lin@Sun.COM 
9509999SWang.Lin@Sun.COM #define	AR_RTC_BASE	0x00020000
9519999SWang.Lin@Sun.COM #define	AR_RTC_RC \
9529999SWang.Lin@Sun.COM 	(AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0000) : 0x7000
9539999SWang.Lin@Sun.COM #define	AR_RTC_RC_M		0x00000003
9549999SWang.Lin@Sun.COM #define	AR_RTC_RC_MAC_WARM	0x00000001
9559999SWang.Lin@Sun.COM #define	AR_RTC_RC_MAC_COLD	0x00000002
9569999SWang.Lin@Sun.COM #define	AR_RTC_RC_COLD_RESET	0x00000004
9579999SWang.Lin@Sun.COM #define	AR_RTC_RC_WARM_RESET	0x00000008
9589999SWang.Lin@Sun.COM 
9599999SWang.Lin@Sun.COM #define	AR_RTC_PLL_CONTROL \
9609999SWang.Lin@Sun.COM 	(AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0014) : 0x7014
9619999SWang.Lin@Sun.COM 
9629999SWang.Lin@Sun.COM #define	AR_RTC_PLL_DIV		0x0000001f
9639999SWang.Lin@Sun.COM #define	AR_RTC_PLL_DIV_S	0
9649999SWang.Lin@Sun.COM #define	AR_RTC_PLL_DIV2		0x00000020
9659999SWang.Lin@Sun.COM #define	AR_RTC_PLL_REFDIV_5	0x000000c0
9669999SWang.Lin@Sun.COM #define	AR_RTC_PLL_CLKSEL	0x00000300
9679999SWang.Lin@Sun.COM #define	AR_RTC_PLL_CLKSEL_S	8
9689999SWang.Lin@Sun.COM 
9699999SWang.Lin@Sun.COM 
9709999SWang.Lin@Sun.COM 
9719999SWang.Lin@Sun.COM #define	AR_RTC_RESET \
9729999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0040) : 0x7040)
9739999SWang.Lin@Sun.COM #define	AR_RTC_RESET_EN		(0x00000001)
9749999SWang.Lin@Sun.COM 
9759999SWang.Lin@Sun.COM #define	AR_RTC_STATUS \
9769999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0044) : 0x7044)
9779999SWang.Lin@Sun.COM 
9789999SWang.Lin@Sun.COM #define	AR_RTC_STATUS_M \
9799999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? 0x0000003f : 0x0000000f)
9809999SWang.Lin@Sun.COM 
9819999SWang.Lin@Sun.COM #define	AR_RTC_PM_STATUS_M	0x0000000f
9829999SWang.Lin@Sun.COM 
9839999SWang.Lin@Sun.COM #define	AR_RTC_STATUS_SHUTDOWN	0x00000001
9849999SWang.Lin@Sun.COM #define	AR_RTC_STATUS_ON	0x00000002
9859999SWang.Lin@Sun.COM #define	AR_RTC_STATUS_SLEEP	0x00000004
9869999SWang.Lin@Sun.COM #define	AR_RTC_STATUS_WAKEUP	0x00000008
9879999SWang.Lin@Sun.COM 
9889999SWang.Lin@Sun.COM #define	AR_RTC_SLEEP_CLK \
9899999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0048) : 0x7048)
9909999SWang.Lin@Sun.COM #define	AR_RTC_FORCE_DERIVED_CLK    0x2
9919999SWang.Lin@Sun.COM 
9929999SWang.Lin@Sun.COM #define	AR_RTC_FORCE_WAKE \
9939999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x004c) : 0x704c)
9949999SWang.Lin@Sun.COM #define	AR_RTC_FORCE_WAKE_EN		0x00000001
9959999SWang.Lin@Sun.COM #define	AR_RTC_FORCE_WAKE_ON_INT	0x00000002
9969999SWang.Lin@Sun.COM 
9979999SWang.Lin@Sun.COM 
9989999SWang.Lin@Sun.COM #define	AR_RTC_INTR_CAUSE \
9999999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0050) : 0x7050)
10009999SWang.Lin@Sun.COM 
10019999SWang.Lin@Sun.COM #define	AR_RTC_INTR_ENABLE \
10029999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0054) : 0x7054)
10039999SWang.Lin@Sun.COM 
10049999SWang.Lin@Sun.COM #define	AR_RTC_INTR_MASK \
10059999SWang.Lin@Sun.COM 	((AR_SREV_9100(ah)) ? (AR_RTC_BASE + 0x0058) : 0x7058)
10069999SWang.Lin@Sun.COM 
10079999SWang.Lin@Sun.COM #define	AR_SEQ_MASK		0x8060
10089999SWang.Lin@Sun.COM 
10099999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH0		0x7810
10109999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH0_OB	0x03800000
10119999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH0_OB_S	23
10129999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH0_DB	0x1C000000
10139999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH0_DB_S	26
10149999SWang.Lin@Sun.COM 
10159999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH0		0x7818
10169999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH0_OB5	0x00070000
10179999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH0_OB5_S	16
10189999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH0_DB5	0x00380000
10199999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH0_DB5_S	19
10209999SWang.Lin@Sun.COM 
10219999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH1		0x7834
10229999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH1_OB	0x03800000
10239999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH1_OB_S	23
10249999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH1_DB	0x1C000000
10259999SWang.Lin@Sun.COM #define	AR_AN_RF2G1_CH1_DB_S	26
10269999SWang.Lin@Sun.COM 
10279999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH1		0x783C
10289999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH1_OB5	0x00070000
10299999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH1_OB5_S	16
10309999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH1_DB5	0x00380000
10319999SWang.Lin@Sun.COM #define	AR_AN_RF5G1_CH1_DB5_S	19
10329999SWang.Lin@Sun.COM 
10339999SWang.Lin@Sun.COM #define	AR_AN_TOP2			0x7894
10349999SWang.Lin@Sun.COM #define	AR_AN_TOP2_XPABIAS_LVL		0xC0000000
10359999SWang.Lin@Sun.COM #define	AR_AN_TOP2_XPABIAS_LVL_S	30
10369999SWang.Lin@Sun.COM #define	AR_AN_TOP2_LOCALBIAS		0x00200000
10379999SWang.Lin@Sun.COM #define	AR_AN_TOP2_LOCALBIAS_S		21
10389999SWang.Lin@Sun.COM #define	AR_AN_TOP2_PWDCLKIND		0x00400000
10399999SWang.Lin@Sun.COM #define	AR_AN_TOP2_PWDCLKIND_S		22
10409999SWang.Lin@Sun.COM 
10419999SWang.Lin@Sun.COM #define	AR_AN_SYNTH9		0x7868
10429999SWang.Lin@Sun.COM #define	AR_AN_SYNTH9_REFDIVA	0xf8000000
10439999SWang.Lin@Sun.COM #define	AR_AN_SYNTH9_REFDIVA_S	27
10449999SWang.Lin@Sun.COM 
10459999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1			0x7820
10469999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_ENPACAL		0x00000800
10479999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_ENPACAL_S	11
10489999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPADRV1	0x02000000
10499999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPADRV1_S	25
10509999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPADRV2	0x01000000
10519999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPADRV2_S	24
10529999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPAOUT		0x00800000
10539999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G1_PDPAOUT_S	23
10549999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G2			0x7824
10559999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G2_OFFCAL		0x00001000
10569999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G2_OFFCAL_S	12
10579999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3			0x7828
10589999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_PDVCCOMP	0x02000000
10599999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_PDVCCOMP_S	25
10609999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_0		0x00E00000
10619999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_0_S		21
10629999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_1		0x001C0000
10639999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_1_S		18
10649999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_2		0x00038000
10659999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_2_S		15
10669999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_3		0x00007000
10679999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_3_S		12
10689999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_4		0x00000E00
10699999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_OB_4_S		9
10709999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_0		0x000001C0
10719999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_0_S		6
10729999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_1		0x00000038
10739999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_1_S		3
10749999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_2		0x00000007
10759999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G3_DB1_2_S		0
10769999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4			0x782C
10779999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB1_3		0xE0000000
10789999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB1_3_S		29
10799999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB1_4		0x1C000000
10809999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB1_4_S		26
10819999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_0		0x03800000
10829999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_0_S		23
10839999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_1		0x00700000
10849999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_1_S		20
10859999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_2		0x000E0000
10869999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_2_S		17
10879999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_3		0x0001C000
10889999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_3_S		14
10899999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_4		0x00003800
10909999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G4_DB2_4_S		11
10919999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G6			0x7834
10929999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G6_CCOMP		0x00007800
10939999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G6_CCOMP_S		11
10949999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G6_OFFS		0x03f00000
10959999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G6_OFFS_S		20
10969999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G7			0x7838
10979999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G7_PWDDB		0x00000002
10989999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G7_PWDDB_S		1
10999999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G7_PADRVGN2TAB0	0xE0000000
11009999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G7_PADRVGN2TAB0_S	29
11019999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G8			0x783C
11029999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G8_PADRVGN2TAB0	0x0001C000
11039999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G8_PADRVGN2TAB0_S	14
11049999SWang.Lin@Sun.COM #define	AR9285_AN_RF2G9		0x7840
11059999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1	0x7854
11069999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDRXTXBB1	0x00000020
11079999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDRXTXBB1_S	5
11089999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDV2I	0x00000080
11099999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDV2I_S	7
11109999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDDACIF	0x00000100
11119999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_PDDACIF_S	8
11129999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_SPARE9	0x00000001
11139999SWang.Lin@Sun.COM #define	AR9285_AN_RXTXBB1_SPARE9_S	0
11149999SWang.Lin@Sun.COM #define	AR9285_AN_TOP2	0x7868
11159999SWang.Lin@Sun.COM #define	AR9285_AN_TOP3	0x786c
11169999SWang.Lin@Sun.COM #define	AR9285_AN_TOP3_XPABIAS_LVL	0x0000000C
11179999SWang.Lin@Sun.COM #define	AR9285_AN_TOP3_XPABIAS_LVL_S	2
11189999SWang.Lin@Sun.COM #define	AR9285_AN_TOP3_PWDDAC	0x00800000
11199999SWang.Lin@Sun.COM #define	AR9285_AN_TOP3_PWDDAC_S	23
11209999SWang.Lin@Sun.COM #define	AR9285_AN_TOP4	0x7870
11219999SWang.Lin@Sun.COM #define	AR9285_AN_TOP4_DEFAULT	0x10142c00
11229999SWang.Lin@Sun.COM #define	AR_STA_ID0			0x8000
11239999SWang.Lin@Sun.COM #define	AR_STA_ID1			0x8004
11249999SWang.Lin@Sun.COM #define	AR_STA_ID1_SADH_MASK		0x0000FFFF
11259999SWang.Lin@Sun.COM #define	AR_STA_ID1_STA_AP		0x00010000
11269999SWang.Lin@Sun.COM #define	AR_STA_ID1_ADHOC		0x00020000
11279999SWang.Lin@Sun.COM #define	AR_STA_ID1_PWR_SAV		0x00040000
11289999SWang.Lin@Sun.COM #define	AR_STA_ID1_KSRCHDIS		0x00080000
11299999SWang.Lin@Sun.COM #define	AR_STA_ID1_PCF			0x00100000
11309999SWang.Lin@Sun.COM #define	AR_STA_ID1_USE_DEFANT		0x00200000
11319999SWang.Lin@Sun.COM #define	AR_STA_ID1_DEFANT_UPDATE	0x00400000
11329999SWang.Lin@Sun.COM #define	AR_STA_ID1_RTS_USE_DEF		0x00800000
11339999SWang.Lin@Sun.COM #define	AR_STA_ID1_ACKCTS_6MB		0x01000000
11349999SWang.Lin@Sun.COM #define	AR_STA_ID1_BASE_RATE_11B	0x02000000
11359999SWang.Lin@Sun.COM #define	AR_STA_ID1_SECTOR_SELF_GEN	0x04000000
11369999SWang.Lin@Sun.COM #define	AR_STA_ID1_CRPT_MIC_ENABLE	0x08000000
11379999SWang.Lin@Sun.COM #define	AR_STA_ID1_KSRCH_MODE		0x10000000
11389999SWang.Lin@Sun.COM #define	AR_STA_ID1_PRESERVE_SEQNUM	0x20000000
11399999SWang.Lin@Sun.COM #define	AR_STA_ID1_CBCIV_ENDIAN		0x40000000
11409999SWang.Lin@Sun.COM #define	AR_STA_ID1_MCAST_KSRCH		0x80000000
11419999SWang.Lin@Sun.COM 
11429999SWang.Lin@Sun.COM #define	AR_BSS_ID0		0x8008
11439999SWang.Lin@Sun.COM #define	AR_BSS_ID1		0x800C
11449999SWang.Lin@Sun.COM #define	AR_BSS_ID1_U16	0x0000FFFF
11459999SWang.Lin@Sun.COM #define	AR_BSS_ID1_AID		0x07FF0000
11469999SWang.Lin@Sun.COM #define	AR_BSS_ID1_AID_S	16
11479999SWang.Lin@Sun.COM 
11489999SWang.Lin@Sun.COM #define	AR_BCN_RSSI_AVE		0x8010
11499999SWang.Lin@Sun.COM #define	AR_BCN_RSSI_AVE_MASK	0x00000FFF
11509999SWang.Lin@Sun.COM 
11519999SWang.Lin@Sun.COM #define	AR_TIME_OUT		0x8014
11529999SWang.Lin@Sun.COM #define	AR_TIME_OUT_ACK		0x00003FFF
11539999SWang.Lin@Sun.COM #define	AR_TIME_OUT_ACK_S	0
11549999SWang.Lin@Sun.COM #define	AR_TIME_OUT_CTS		0x3FFF0000
11559999SWang.Lin@Sun.COM #define	AR_TIME_OUT_CTS_S	16
11569999SWang.Lin@Sun.COM 
11579999SWang.Lin@Sun.COM #define	AR_RSSI_THR		0x8018
11589999SWang.Lin@Sun.COM #define	AR_RSSI_THR_MASK	0x000000FF
11599999SWang.Lin@Sun.COM #define	AR_RSSI_THR_BM_THR	0x0000FF00
11609999SWang.Lin@Sun.COM #define	AR_RSSI_THR_BM_THR_S	8
11619999SWang.Lin@Sun.COM #define	AR_RSSI_BCN_WEIGHT	0x1F000000
11629999SWang.Lin@Sun.COM #define	AR_RSSI_BCN_WEIGHT_S	24
11639999SWang.Lin@Sun.COM #define	AR_RSSI_BCN_RSSI_RST	0x20000000
11649999SWang.Lin@Sun.COM 
11659999SWang.Lin@Sun.COM #define	AR_USEC			0x801c
11669999SWang.Lin@Sun.COM #define	AR_USEC_USEC		0x0000007F
11679999SWang.Lin@Sun.COM #define	AR_USEC_TX_LAT		0x007FC000
11689999SWang.Lin@Sun.COM #define	AR_USEC_TX_LAT_S	14
11699999SWang.Lin@Sun.COM #define	AR_USEC_RX_LAT		0x1F800000
11709999SWang.Lin@Sun.COM #define	AR_USEC_RX_LAT_S	23
11719999SWang.Lin@Sun.COM 
11729999SWang.Lin@Sun.COM #define	AR_RESET_TSF		0x8020
11739999SWang.Lin@Sun.COM #define	AR_RESET_TSF_ONCE	0x01000000
11749999SWang.Lin@Sun.COM 
11759999SWang.Lin@Sun.COM #define	AR_MAX_CFP_DUR		0x8038
11769999SWang.Lin@Sun.COM #define	AR_CFP_VAL		0x0000FFFF
11779999SWang.Lin@Sun.COM 
11789999SWang.Lin@Sun.COM #define	AR_RX_FILTER		0x803C
11799999SWang.Lin@Sun.COM #define	AR_RX_FILTER_ALL	0x00000000
11809999SWang.Lin@Sun.COM #define	AR_RX_UCAST		0x00000001
11819999SWang.Lin@Sun.COM #define	AR_RX_MCAST		0x00000002
11829999SWang.Lin@Sun.COM #define	AR_RX_BCAST		0x00000004
11839999SWang.Lin@Sun.COM #define	AR_RX_CONTROL		0x00000008
11849999SWang.Lin@Sun.COM #define	AR_RX_BEACON		0x00000010
11859999SWang.Lin@Sun.COM #define	AR_RX_PROM		0x00000020
11869999SWang.Lin@Sun.COM #define	AR_RX_PROBE_REQ		0x00000080
11879999SWang.Lin@Sun.COM #define	AR_RX_MY_BEACON		0x00000200
11889999SWang.Lin@Sun.COM #define	AR_RX_COMPR_BAR		0x00000400
11899999SWang.Lin@Sun.COM #define	AR_RX_COMPR_BA		0x00000800
11909999SWang.Lin@Sun.COM #define	AR_RX_UNCOM_BA_BAR	0x00001000
11919999SWang.Lin@Sun.COM 
11929999SWang.Lin@Sun.COM #define	AR_MCAST_FIL0		0x8040
11939999SWang.Lin@Sun.COM #define	AR_MCAST_FIL1		0x8044
11949999SWang.Lin@Sun.COM 
11959999SWang.Lin@Sun.COM #define	AR_DIAG_SW			0x8048
11969999SWang.Lin@Sun.COM #define	AR_DIAG_CACHE_ACK		0x00000001
11979999SWang.Lin@Sun.COM #define	AR_DIAG_ACK_DIS			0x00000002
11989999SWang.Lin@Sun.COM #define	AR_DIAG_CTS_DIS			0x00000004
11999999SWang.Lin@Sun.COM #define	AR_DIAG_ENCRYPT_DIS		0x00000008
12009999SWang.Lin@Sun.COM #define	AR_DIAG_DECRYPT_DIS		0x00000010
12019999SWang.Lin@Sun.COM #define	AR_DIAG_RX_DIS			0x00000020
12029999SWang.Lin@Sun.COM #define	AR_DIAG_LOOP_BACK		0x00000040
12039999SWang.Lin@Sun.COM #define	AR_DIAG_CORR_FCS		0x00000080
12049999SWang.Lin@Sun.COM #define	AR_DIAG_CHAN_INFO		0x00000100
12059999SWang.Lin@Sun.COM #define	AR_DIAG_SCRAM_SEED		0x0001FE00
12069999SWang.Lin@Sun.COM #define	AR_DIAG_SCRAM_SEED_S		8
12079999SWang.Lin@Sun.COM #define	AR_DIAG_FRAME_NV0		0x00020000
12089999SWang.Lin@Sun.COM #define	AR_DIAG_OBS_PT_SEL1		0x000C0000
12099999SWang.Lin@Sun.COM #define	AR_DIAG_OBS_PT_SEL1_S		18
12109999SWang.Lin@Sun.COM #define	AR_DIAG_FORCE_RX_CLEAR		0x00100000
12119999SWang.Lin@Sun.COM #define	AR_DIAG_IGNORE_VIRT_CS		0x00200000
12129999SWang.Lin@Sun.COM #define	AR_DIAG_FORCE_CH_IDLE_HIGH	0x00400000
12139999SWang.Lin@Sun.COM #define	AR_DIAG_EIFS_CTRL_ENA		0x00800000
12149999SWang.Lin@Sun.COM #define	AR_DIAG_DUAL_CHAIN_INFO		0x01000000
12159999SWang.Lin@Sun.COM #define	AR_DIAG_RX_ABORT		0x02000000
12169999SWang.Lin@Sun.COM #define	AR_DIAG_SATURATE_CYCLE_CNT	0x04000000
12179999SWang.Lin@Sun.COM #define	AR_DIAG_OBS_PT_SEL2		0x08000000
12189999SWang.Lin@Sun.COM #define	AR_DIAG_RX_CLEAR_CTL_LOW	0x10000000
12199999SWang.Lin@Sun.COM #define	AR_DIAG_RX_CLEAR_EXT_LOW	0x20000000
12209999SWang.Lin@Sun.COM 
12219999SWang.Lin@Sun.COM #define	AR_TSF_L32	0x804c
12229999SWang.Lin@Sun.COM #define	AR_TSF_U32	0x8050
12239999SWang.Lin@Sun.COM 
12249999SWang.Lin@Sun.COM #define	AR_TST_ADDAC	0x8054
12259999SWang.Lin@Sun.COM #define	AR_DEF_ANTENNA	0x8058
12269999SWang.Lin@Sun.COM 
12279999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK0	0x805c
12289999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK0_FC	0x0000FFFF
12299999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK0_QOS	0xFFFF0000
12309999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK0_QOS_S	16
12319999SWang.Lin@Sun.COM 
12329999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK1	0x8060
12339999SWang.Lin@Sun.COM #define	AR_AES_MUTE_MASK1_SEQ	0x0000FFFF
12349999SWang.Lin@Sun.COM 
12359999SWang.Lin@Sun.COM #define	AR_GATED_CLKS		0x8064
12369999SWang.Lin@Sun.COM #define	AR_GATED_CLKS_TX	0x00000002
12379999SWang.Lin@Sun.COM #define	AR_GATED_CLKS_RX	0x00000004
12389999SWang.Lin@Sun.COM #define	AR_GATED_CLKS_REG	0x00000008
12399999SWang.Lin@Sun.COM 
12409999SWang.Lin@Sun.COM #define	AR_OBS_BUS_CTRL		0x8068
12419999SWang.Lin@Sun.COM #define	AR_OBS_BUS_SEL_1	0x00040000
12429999SWang.Lin@Sun.COM #define	AR_OBS_BUS_SEL_2	0x00080000
12439999SWang.Lin@Sun.COM #define	AR_OBS_BUS_SEL_3	0x000C0000
12449999SWang.Lin@Sun.COM #define	AR_OBS_BUS_SEL_4	0x08040000
12459999SWang.Lin@Sun.COM #define	AR_OBS_BUS_SEL_5	0x08080000
12469999SWang.Lin@Sun.COM 
12479999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1			0x806c
12489999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_PCU		0x00000001
12499999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_END		0x00000002
12509999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_WEP		0x00000004
12519999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_BEACON		0x00000008
12529999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_FILTER		0x00000010
12539999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_TX_HCF		0x00000020
12549999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_QUIET_TIME		0x00000040
12559999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_CHAN_IDLE		0x00000080
12569999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_TX_HOLD 		0x00000100
12579999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_TX_FRAME		0x00000200
12589999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_FRAME		0x00000400
12599999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_CLEAR		0x00000800
12609999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_WEP_STATE		0x0003F000
12619999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_WEP_STATE_S	12
12629999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_STATE		0x01F00000
12639999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_RX_STATE_S		20
12649999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_TX_STATE		0x7E000000
12659999SWang.Lin@Sun.COM #define	AR_OBS_BUS_1_TX_STATE_S		25
12669999SWang.Lin@Sun.COM 
12679999SWang.Lin@Sun.COM #define	AR_LAST_TSTP	0x8080
12689999SWang.Lin@Sun.COM #define	AR_NAV		0x8084
12699999SWang.Lin@Sun.COM #define	AR_RTS_OK	0x8088
12709999SWang.Lin@Sun.COM #define	AR_RTS_FAIL	0x808c
12719999SWang.Lin@Sun.COM #define	AR_ACK_FAIL	0x8090
12729999SWang.Lin@Sun.COM #define	AR_FCS_FAIL	0x8094
12739999SWang.Lin@Sun.COM #define	AR_BEACON_CNT	0x8098
12749999SWang.Lin@Sun.COM 
12759999SWang.Lin@Sun.COM #define	AR_SLEEP1		0x80d4
12769999SWang.Lin@Sun.COM #define	AR_SLEEP1_ASSUME_DTIM	0x00080000
12779999SWang.Lin@Sun.COM #define	AR_SLEEP1_CAB_TIMEOUT	0xFFE00000
12789999SWang.Lin@Sun.COM #define	AR_SLEEP1_CAB_TIMEOUT_S	21
12799999SWang.Lin@Sun.COM 
12809999SWang.Lin@Sun.COM #define	AR_SLEEP2			0x80d8
12819999SWang.Lin@Sun.COM #define	AR_SLEEP2_BEACON_TIMEOUT	0xFFE00000
12829999SWang.Lin@Sun.COM #define	AR_SLEEP2_BEACON_TIMEOUT_S	21
12839999SWang.Lin@Sun.COM 
12849999SWang.Lin@Sun.COM #define	AR_BSSMSKL	0x80e0
12859999SWang.Lin@Sun.COM #define	AR_BSSMSKU	0x80e4
12869999SWang.Lin@Sun.COM 
12879999SWang.Lin@Sun.COM #define	AR_TPC		0x80e8
12889999SWang.Lin@Sun.COM #define	AR_TPC_ACK	0x0000003f
12899999SWang.Lin@Sun.COM #define	AR_TPC_ACK_S	0x00
12909999SWang.Lin@Sun.COM #define	AR_TPC_CTS	0x00003f00
12919999SWang.Lin@Sun.COM #define	AR_TPC_CTS_S	0x08
12929999SWang.Lin@Sun.COM #define	AR_TPC_CHIRP	0x003f0000
12939999SWang.Lin@Sun.COM #define	AR_TPC_CHIRP_S	0x16
12949999SWang.Lin@Sun.COM 
12959999SWang.Lin@Sun.COM #define	AR_TFCNT	0x80ec
12969999SWang.Lin@Sun.COM #define	AR_RFCNT	0x80f0
12979999SWang.Lin@Sun.COM #define	AR_RCCNT	0x80f4
12989999SWang.Lin@Sun.COM #define	AR_CCCNT	0x80f8
12999999SWang.Lin@Sun.COM 
13009999SWang.Lin@Sun.COM #define	AR_QUIET1			0x80fc
13019999SWang.Lin@Sun.COM #define	AR_QUIET1_NEXT_QUIET_S		0
13029999SWang.Lin@Sun.COM #define	AR_QUIET1_NEXT_QUIET_M		0x0000ffff
13039999SWang.Lin@Sun.COM #define	AR_QUIET1_QUIET_ENABLE		0x00010000
13049999SWang.Lin@Sun.COM #define	AR_QUIET1_QUIET_ACK_CTS_ENABLE	0x00020000
13059999SWang.Lin@Sun.COM #define	AR_QUIET2			0x8100
13069999SWang.Lin@Sun.COM #define	AR_QUIET2_QUIET_PERIOD_S	0
13079999SWang.Lin@Sun.COM #define	AR_QUIET2_QUIET_PERIOD_M	0x0000ffff
13089999SWang.Lin@Sun.COM #define	AR_QUIET2_QUIET_DUR_S		16
13099999SWang.Lin@Sun.COM #define	AR_QUIET2_QUIET_DUR		0xffff0000
13109999SWang.Lin@Sun.COM 
13119999SWang.Lin@Sun.COM #define	AR_TSF_PARM		0x8104
13129999SWang.Lin@Sun.COM #define	AR_TSF_INCREMENT_M	0x000000ff
13139999SWang.Lin@Sun.COM #define	AR_TSF_INCREMENT_S	0x00
13149999SWang.Lin@Sun.COM 
13159999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK			0x8108
13169999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_TWO_BIT		0x0000000f
13179999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_TWO_BIT_S		0
13189999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_BIT_OFF		0x00000070
13199999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_BIT_OFF_S		4
13209999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_BYTE_OFF		0x00000180
13219999SWang.Lin@Sun.COM #define	AR_QOS_NO_ACK_BYTE_OFF_S	7
13229999SWang.Lin@Sun.COM 
13239999SWang.Lin@Sun.COM #define	AR_PHY_ERR	0x810c
13249999SWang.Lin@Sun.COM 
13259999SWang.Lin@Sun.COM #define	AR_PHY_ERR_DCHIRP	0x00000008
13269999SWang.Lin@Sun.COM #define	AR_PHY_ERR_RADAR	0x00000020
13279999SWang.Lin@Sun.COM #define	AR_PHY_ERR_OFDM_TIMING	0x00020000
13289999SWang.Lin@Sun.COM #define	AR_PHY_ERR_CCK_TIMING	0x02000000
13299999SWang.Lin@Sun.COM 
13309999SWang.Lin@Sun.COM #define	AR_RXFIFO_CFG	0x8114
13319999SWang.Lin@Sun.COM 
13329999SWang.Lin@Sun.COM 
13339999SWang.Lin@Sun.COM #define	AR_MIC_QOS_CONTROL	0x8118
13349999SWang.Lin@Sun.COM #define	AR_MIC_QOS_SELECT	0x811c
13359999SWang.Lin@Sun.COM 
13369999SWang.Lin@Sun.COM #define	AR_PCU_MISC			0x8120
13379999SWang.Lin@Sun.COM #define	AR_PCU_FORCE_BSSID_MATCH	0x00000001
13389999SWang.Lin@Sun.COM #define	AR_PCU_MIC_NEW_LOC_ENA		0x00000004
13399999SWang.Lin@Sun.COM #define	AR_PCU_TX_ADD_TSF		0x00000008
13409999SWang.Lin@Sun.COM #define	AR_PCU_CCK_SIFS_MODE		0x00000010
13419999SWang.Lin@Sun.COM #define	AR_PCU_RX_ANT_UPDT		0x00000800
13429999SWang.Lin@Sun.COM #define	AR_PCU_TXOP_TBTT_LIMIT_ENA	0x00001000
13439999SWang.Lin@Sun.COM #define	AR_PCU_MISS_BCN_IN_SLEEP	0x00004000
13449999SWang.Lin@Sun.COM #define	AR_PCU_BUG_12306_FIX_ENA	0x00020000
13459999SWang.Lin@Sun.COM #define	AR_PCU_FORCE_QUIET_COLL		0x00040000
13469999SWang.Lin@Sun.COM #define	AR_PCU_TBTT_PROTECT		0x00200000
13479999SWang.Lin@Sun.COM #define	AR_PCU_CLEAR_VMF		0x01000000
13489999SWang.Lin@Sun.COM #define	AR_PCU_CLEAR_BA_VALID		0x04000000
13499999SWang.Lin@Sun.COM 
13509999SWang.Lin@Sun.COM 
13519999SWang.Lin@Sun.COM #define	AR_FILT_OFDM		0x8124
13529999SWang.Lin@Sun.COM #define	AR_FILT_OFDM_COUNT	0x00FFFFFF
13539999SWang.Lin@Sun.COM 
13549999SWang.Lin@Sun.COM #define	AR_FILT_CCK		0x8128
13559999SWang.Lin@Sun.COM #define	AR_FILT_CCK_COUNT	0x00FFFFFF
13569999SWang.Lin@Sun.COM 
13579999SWang.Lin@Sun.COM #define	AR_PHY_ERR_1		0x812c
13589999SWang.Lin@Sun.COM #define	AR_PHY_ERR_1_COUNT	0x00FFFFFF
13599999SWang.Lin@Sun.COM #define	AR_PHY_ERR_MASK_1	0x8130
13609999SWang.Lin@Sun.COM 
13619999SWang.Lin@Sun.COM #define	AR_PHY_ERR_2		0x8134
13629999SWang.Lin@Sun.COM #define	AR_PHY_ERR_2_COUNT	0x00FFFFFF
13639999SWang.Lin@Sun.COM #define	AR_PHY_ERR_MASK_2	0x8138
13649999SWang.Lin@Sun.COM 
13659999SWang.Lin@Sun.COM #define	AR_PHY_COUNTMAX		(3 << 22)
13669999SWang.Lin@Sun.COM #define	AR_MIBCNT_INTRMASK	(3 << 22)
13679999SWang.Lin@Sun.COM 
1368*11377SWang.Lin@Sun.COM #define	AR_TSFOOR_THRESHOLD	0x813c
1369*11377SWang.Lin@Sun.COM #define	AR_TSFOOR_THRESHOLD_VAL	0x0000FFFF
13709999SWang.Lin@Sun.COM 
13719999SWang.Lin@Sun.COM #define	AR_PHY_ERR_EIFS_MASK	8144
13729999SWang.Lin@Sun.COM 
13739999SWang.Lin@Sun.COM #define	AR_PHY_ERR_3		0x8168
13749999SWang.Lin@Sun.COM #define	AR_PHY_ERR_3_COUNT	0x00FFFFFF
13759999SWang.Lin@Sun.COM #define	AR_PHY_ERR_MASK_3	0x816c
13769999SWang.Lin@Sun.COM 
13779999SWang.Lin@Sun.COM #define	AR_TXSIFS		0x81d0
13789999SWang.Lin@Sun.COM #define	AR_TXSIFS_TIME		0x000000FF
13799999SWang.Lin@Sun.COM #define	AR_TXSIFS_TX_LATENCY	0x00000F00
13809999SWang.Lin@Sun.COM #define	AR_TXSIFS_TX_LATENCY_S	8
13819999SWang.Lin@Sun.COM #define	AR_TXSIFS_ACK_SHIFT	0x00007000
13829999SWang.Lin@Sun.COM #define	AR_TXSIFS_ACK_SHIFT_S	12
13839999SWang.Lin@Sun.COM 
13849999SWang.Lin@Sun.COM #define	AR_TXOP_X		0x81ec
13859999SWang.Lin@Sun.COM #define	AR_TXOP_X_VAL		0x000000FF
13869999SWang.Lin@Sun.COM 
13879999SWang.Lin@Sun.COM 
13889999SWang.Lin@Sun.COM #define	AR_TXOP_0_3	0x81f0
13899999SWang.Lin@Sun.COM #define	AR_TXOP_4_7	0x81f4
13909999SWang.Lin@Sun.COM #define	AR_TXOP_8_11	0x81f8
13919999SWang.Lin@Sun.COM #define	AR_TXOP_12_15	0x81fc
13929999SWang.Lin@Sun.COM 
13939999SWang.Lin@Sun.COM 
13949999SWang.Lin@Sun.COM #define	AR_NEXT_TBTT_TIMER		0x8200
13959999SWang.Lin@Sun.COM #define	AR_NEXT_DMA_BEACON_ALERT	0x8204
13969999SWang.Lin@Sun.COM #define	AR_NEXT_SWBA			0x8208
13979999SWang.Lin@Sun.COM #define	AR_NEXT_CFP			0x8208
13989999SWang.Lin@Sun.COM #define	AR_NEXT_HCF			0x820C
13999999SWang.Lin@Sun.COM #define	AR_NEXT_TIM			0x8210
14009999SWang.Lin@Sun.COM #define	AR_NEXT_DTIM			0x8214
14019999SWang.Lin@Sun.COM #define	AR_NEXT_QUIET_TIMER		0x8218
14029999SWang.Lin@Sun.COM #define	AR_NEXT_NDP_TIMER		0x821C
14039999SWang.Lin@Sun.COM 
14049999SWang.Lin@Sun.COM #define	AR_BEACON_PERIOD		0x8220
14059999SWang.Lin@Sun.COM #define	AR_DMA_BEACON_PERIOD		0x8224
14069999SWang.Lin@Sun.COM #define	AR_SWBA_PERIOD			0x8228
14079999SWang.Lin@Sun.COM #define	AR_HCF_PERIOD			0x822C
14089999SWang.Lin@Sun.COM #define	AR_TIM_PERIOD			0x8230
14099999SWang.Lin@Sun.COM #define	AR_DTIM_PERIOD			0x8234
14109999SWang.Lin@Sun.COM #define	AR_QUIET_PERIOD			0x8238
14119999SWang.Lin@Sun.COM #define	AR_NDP_PERIOD			0x823C
14129999SWang.Lin@Sun.COM 
14139999SWang.Lin@Sun.COM #define	AR_TIMER_MODE			0x8240
14149999SWang.Lin@Sun.COM #define	AR_TBTT_TIMER_EN		0x00000001
14159999SWang.Lin@Sun.COM #define	AR_DBA_TIMER_EN			0x00000002
14169999SWang.Lin@Sun.COM #define	AR_SWBA_TIMER_EN		0x00000004
14179999SWang.Lin@Sun.COM #define	AR_HCF_TIMER_EN			0x00000008
14189999SWang.Lin@Sun.COM #define	AR_TIM_TIMER_EN			0x00000010
14199999SWang.Lin@Sun.COM #define	AR_DTIM_TIMER_EN		0x00000020
14209999SWang.Lin@Sun.COM #define	AR_QUIET_TIMER_EN		0x00000040
14219999SWang.Lin@Sun.COM #define	AR_NDP_TIMER_EN			0x00000080
14229999SWang.Lin@Sun.COM #define	AR_TIMER_OVERFLOW_INDEX		0x00000700
14239999SWang.Lin@Sun.COM #define	AR_TIMER_OVERFLOW_INDEX_S	8
14249999SWang.Lin@Sun.COM #define	AR_TIMER_THRESH			0xFFFFF000
14259999SWang.Lin@Sun.COM #define	AR_TIMER_THRESH_S		12
14269999SWang.Lin@Sun.COM 
14279999SWang.Lin@Sun.COM #define	AR_SLP32_MODE			0x8244
14289999SWang.Lin@Sun.COM #define	AR_SLP32_HALF_CLK_LATENCY	0x000FFFFF
14299999SWang.Lin@Sun.COM #define	AR_SLP32_ENA			0x00100000
14309999SWang.Lin@Sun.COM #define	AR_SLP32_TSF_WRITE_STATUS	0x00200000
14319999SWang.Lin@Sun.COM 
14329999SWang.Lin@Sun.COM #define	AR_SLP32_WAKE			0x8248
14339999SWang.Lin@Sun.COM #define	AR_SLP32_WAKE_XTL_TIME		0x0000FFFF
14349999SWang.Lin@Sun.COM 
14359999SWang.Lin@Sun.COM #define	AR_SLP32_INC		0x824c
14369999SWang.Lin@Sun.COM #define	AR_SLP32_TST_INC	0x000FFFFF
14379999SWang.Lin@Sun.COM 
14389999SWang.Lin@Sun.COM #define	AR_SLP_CNT		0x8250
14399999SWang.Lin@Sun.COM #define	AR_SLP_CYCLE_CNT	0x8254
14409999SWang.Lin@Sun.COM 
14419999SWang.Lin@Sun.COM #define	AR_SLP_MIB_CTRL		0x8258
14429999SWang.Lin@Sun.COM #define	AR_SLP_MIB_CLEAR	0x00000001
14439999SWang.Lin@Sun.COM #define	AR_SLP_MIB_PENDING	0x00000002
14449999SWang.Lin@Sun.COM 
14459999SWang.Lin@Sun.COM #define	AR_2040_MODE		0x8318
14469999SWang.Lin@Sun.COM #define	AR_2040_JOINED_RX_CLEAR	0x00000001
14479999SWang.Lin@Sun.COM 
14489999SWang.Lin@Sun.COM 
14499999SWang.Lin@Sun.COM #define	AR_EXTRCCNT		0x8328
14509999SWang.Lin@Sun.COM 
14519999SWang.Lin@Sun.COM #define	AR_SELFGEN_MASK		0x832c
14529999SWang.Lin@Sun.COM 
14539999SWang.Lin@Sun.COM #define	AR_PCU_TXBUF_CTRL		0x8340
14549999SWang.Lin@Sun.COM #define	AR_PCU_TXBUF_CTRL_SIZE_MASK	0x7FF
14559999SWang.Lin@Sun.COM #define	AR_PCU_TXBUF_CTRL_USABLE_SIZE   0x700
14569999SWang.Lin@Sun.COM #define	AR_9285_PCU_TXBUF_CTRL_USABLE_SIZE   0x380
14579999SWang.Lin@Sun.COM 
14589999SWang.Lin@Sun.COM #define	AR_KEYTABLE_0		0x8800
14599999SWang.Lin@Sun.COM #define	AR_KEYTABLE(_n)		(AR_KEYTABLE_0 + ((_n)*32))
14609999SWang.Lin@Sun.COM #define	AR_KEY_CACHE_SIZE	128
14619999SWang.Lin@Sun.COM #define	AR_RSVD_KEYTABLE_ENTRIES	4
14629999SWang.Lin@Sun.COM #define	AR_KEY_TYPE		0x00000007
14639999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_40	0x00000000
14649999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_104	0x00000001
14659999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_128	0x00000003
14669999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_TKIP	0x00000004
14679999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_AES	0x00000005
14689999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_CCM	0x00000006
14699999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE_CLR	0x00000007
14709999SWang.Lin@Sun.COM #define	AR_KEYTABLE_ANT		0x00000008
14719999SWang.Lin@Sun.COM #define	AR_KEYTABLE_VALID	0x00008000
14729999SWang.Lin@Sun.COM #define	AR_KEYTABLE_KEY0(_n)	(AR_KEYTABLE(_n) + 0)
14739999SWang.Lin@Sun.COM #define	AR_KEYTABLE_KEY1(_n)	(AR_KEYTABLE(_n) + 4)
14749999SWang.Lin@Sun.COM #define	AR_KEYTABLE_KEY2(_n)	(AR_KEYTABLE(_n) + 8)
14759999SWang.Lin@Sun.COM #define	AR_KEYTABLE_KEY3(_n)	(AR_KEYTABLE(_n) + 12)
14769999SWang.Lin@Sun.COM #define	AR_KEYTABLE_KEY4(_n)	(AR_KEYTABLE(_n) + 16)
14779999SWang.Lin@Sun.COM #define	AR_KEYTABLE_TYPE(_n)	(AR_KEYTABLE(_n) + 20)
14789999SWang.Lin@Sun.COM #define	AR_KEYTABLE_MAC0(_n)	(AR_KEYTABLE(_n) + 24)
14799999SWang.Lin@Sun.COM #define	AR_KEYTABLE_MAC1(_n)	(AR_KEYTABLE(_n) + 28)
14809999SWang.Lin@Sun.COM 
14819999SWang.Lin@Sun.COM #ifdef __cplusplus
14829999SWang.Lin@Sun.COM }
14839999SWang.Lin@Sun.COM #endif
14849999SWang.Lin@Sun.COM 
14859999SWang.Lin@Sun.COM #endif /* _ARN_REG_H */
1486