/*
	This is part of rtl8180 OpenSource driver.
	Copyright (C) Andrea Merello 2004-2005  <andreamrl@tiscali.it>
	Released under the terms of GPL (General Public Licence)

	Parts of this driver are based on the GPL part of the
	official Realtek driver.
	Parts of this driver are based on the rtl8180 driver skeleton
	from Patric Schenke & Andres Salomon.
	Parts of this driver are based on the Intel Pro Wireless
	2100 GPL driver.

	We want to tanks the Authors of those projects
	and the Ndiswrapper project Authors.
*/

/* Mariusz Matuszek added full registers definition with Realtek's name */

/* this file contains register definitions for the rtl8180 MAC controller */
#ifndef R8180_HW
#define R8180_HW


#define BIT0	0x00000001
#define BIT1	0x00000002
#define BIT2	0x00000004
#define BIT3	0x00000008
#define BIT4	0x00000010
#define BIT5	0x00000020
#define BIT6	0x00000040
#define BIT7	0x00000080
#define BIT9	0x00000200
#define BIT11	0x00000800
#define BIT13	0x00002000
#define BIT15	0x00008000
#define BIT20	0x00100000
#define BIT21	0x00200000
#define BIT22	0x00400000
#define BIT23	0x00800000
#define BIT24	0x01000000
#define BIT25	0x02000000
#define BIT26	0x04000000
#define BIT27	0x08000000
#define BIT28	0x10000000
#define BIT29	0x20000000
#define BIT30	0x40000000
#define BIT31	0x80000000

#define MAX_SLEEP_TIME (10000)
#define MIN_SLEEP_TIME (50)

#define BB_HOST_BANG_EN (1<<2)
#define BB_HOST_BANG_CLK (1<<1)

#define MAC0 0
#define MAC4 4

#define CMD 0x37
#define CMD_RST_SHIFT 4
#define CMD_RX_ENABLE_SHIFT 3
#define CMD_TX_ENABLE_SHIFT 2

#define EPROM_CMD 0x50
#define EPROM_CMD_RESERVED_MASK ((1<<5)|(1<<4))
#define EPROM_CMD_OPERATING_MODE_SHIFT 6
#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6))
#define EPROM_CMD_CONFIG 0x3
#define EPROM_CMD_NORMAL 0
#define EPROM_CMD_LOAD 1
#define EPROM_CMD_PROGRAM 2
#define EPROM_CS_SHIFT 3
#define EPROM_CK_SHIFT 2
#define EPROM_W_SHIFT 1
#define EPROM_R_SHIFT 0
#define CONFIG2_DMA_POLLING_MODE_SHIFT 3

#define INTA_TXOVERFLOW (1<<15)
#define INTA_TIMEOUT (1<<14)
#define INTA_HIPRIORITYDESCERR (1<<9)
#define INTA_HIPRIORITYDESCOK (1<<8)
#define INTA_NORMPRIORITYDESCERR (1<<7)
#define INTA_NORMPRIORITYDESCOK (1<<6)
#define INTA_RXOVERFLOW (1<<5)
#define INTA_RXDESCERR (1<<4)
#define INTA_LOWPRIORITYDESCERR (1<<3)
#define INTA_LOWPRIORITYDESCOK (1<<2)
#define INTA_RXOK (1)
#define INTA_MASK 0x3c

#define RXRING_ADDR 0xe4 /* page 0 */
#define PGSELECT 0x5e
#define PGSELECT_PG_SHIFT 0
#define RX_CONF 0x44
#define MAC_FILTER_MASK ((1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<5) | \
(1<<12) | (1<<18) | (1<<19) | (1<<20) | (1<<21) | (1<<22) | (1<<23))
#define RX_CHECK_BSSID_SHIFT 23
#define ACCEPT_PWR_FRAME_SHIFT 22
#define ACCEPT_MNG_FRAME_SHIFT 20
#define ACCEPT_CTL_FRAME_SHIFT 19
#define ACCEPT_DATA_FRAME_SHIFT 18
#define ACCEPT_ICVERR_FRAME_SHIFT 12
#define ACCEPT_CRCERR_FRAME_SHIFT 5
#define ACCEPT_BCAST_FRAME_SHIFT 3
#define ACCEPT_MCAST_FRAME_SHIFT 2
#define ACCEPT_ALLMAC_FRAME_SHIFT 0
#define ACCEPT_NICMAC_FRAME_SHIFT 1

#define RX_FIFO_THRESHOLD_MASK ((1<<13) | (1<<14) | (1<<15))
#define RX_FIFO_THRESHOLD_SHIFT 13
#define RX_FIFO_THRESHOLD_NONE 7
#define RX_AUTORESETPHY_SHIFT 28

#define TX_CONF 0x40
#define TX_CONF_HEADER_AUTOICREMENT_SHIFT 30
#define TX_LOOPBACK_SHIFT 17
#define TX_LOOPBACK_NONE 0
#define TX_LOOPBACK_CONTINUE 3
#define TX_LOOPBACK_MASK ((1<<17)|(1<<18))
#define TX_DPRETRY_SHIFT 0
#define R8180_MAX_RETRY 255
#define TX_RTSRETRY_SHIFT 8
#define TX_NOICV_SHIFT 19
#define TX_NOCRC_SHIFT 16
#define TX_DMA_POLLING 0xd9
#define TX_DMA_POLLING_BEACON_SHIFT 7
#define TX_DMA_POLLING_HIPRIORITY_SHIFT 6
#define TX_DMA_POLLING_NORMPRIORITY_SHIFT 5
#define TX_DMA_POLLING_LOWPRIORITY_SHIFT 4
#define TX_MANAGEPRIORITY_RING_ADDR 0x0C
#define TX_BKPRIORITY_RING_ADDR 0x10
#define TX_BEPRIORITY_RING_ADDR 0x14
#define TX_VIPRIORITY_RING_ADDR 0x20
#define TX_VOPRIORITY_RING_ADDR 0x24
#define TX_HIGHPRIORITY_RING_ADDR 0x28
#define MAX_RX_DMA_MASK ((1<<8) | (1<<9) | (1<<10))
#define MAX_RX_DMA_2048 7
#define MAX_RX_DMA_1024	6
#define MAX_RX_DMA_SHIFT 10
#define INT_TIMEOUT 0x48
#define CONFIG3_CLKRUN_SHIFT 2
#define CONFIG3_ANAPARAM_W_SHIFT 6
#define ANAPARAM 0x54
#define BEACON_INTERVAL 0x70
#define BEACON_INTERVAL_MASK ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)| \
(1<<6)|(1<<7)|(1<<8)|(1<<9))
#define ATIM_MASK ((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)| \
(1<<8)|(1<<9))
#define ATIM 0x72
#define EPROM_CS_SHIFT 3
#define EPROM_CK_SHIFT 2
#define PHY_ADR 0x7c
#define SECURITY 0x5f /* 1209 this is sth wrong */
#define SECURITY_WEP_TX_ENABLE_SHIFT 1
#define SECURITY_WEP_RX_ENABLE_SHIFT 0
#define SECURITY_ENCRYP_104 1
#define SECURITY_ENCRYP_SHIFT 4
#define SECURITY_ENCRYP_MASK ((1<<4)|(1<<5))
#define KEY0 0x90  /* 1209 this is sth wrong */
#define CONFIG2_ANTENNA_SHIFT 6
#define TX_BEACON_RING_ADDR 0x4c
#define CONFIG0_WEP40_SHIFT 7
#define CONFIG0_WEP104_SHIFT 6
#define AGCRESET_SHIFT 5



/*
 * Operational registers offsets in PCI (I/O) space.
 * RealTek names are used.
 */

#define TSFTR 0x0018

#define TLPDA 0x0020

#define BSSID 0x002E

#define CR 0x0037

#define RF_SW_CONFIG	        0x8			/* store data which is transmitted to RF for driver	*/
#define RF_SW_CFG_SI		BIT1
#define EIFS			0x2D			/* Extended InterFrame Space Timer, in unit of 4 us.	*/

#define BRSR			0x34			/* Basic rate set										*/

#define IMR 0x006C
#define ISR 0x003C

#define TCR 0x0040

#define RCR 0x0044

#define TimerInt 0x0048

#define CR9346 0x0050

#define CONFIG0 0x0051
#define CONFIG2 0x0053

#define MSR 0x0058

#define CONFIG3 0x0059
#define CONFIG4 0x005A
	/* SD3 szuyitasi: Mac0x57= CC -> B0 Mac0x60= D1 -> C6	*/
	/* Mac0x60 = 0x000004C6 power save parameters			*/
	#define ANAPARM_ASIC_ON    0xB0054D00
	#define ANAPARM2_ASIC_ON  0x000004C6

	#define ANAPARM_ON ANAPARM_ASIC_ON
	#define ANAPARM2_ON ANAPARM2_ASIC_ON

#define TESTR 0x005B

#define PSR 0x005E

#define BcnItv 0x0070

#define AtimWnd 0x0072

#define BintrItv 0x0074

#define PhyAddr 0x007C
#define PhyDataR 0x007E

/* following are for rtl8185 */
#define RFPinsOutput 0x80
#define RFPinsEnable 0x82
#define RF_TIMING 0x8c
#define RFPinsSelect 0x84
#define ANAPARAM2 0x60
#define RF_PARA 0x88
#define RFPinsInput 0x86
#define GP_ENABLE 0x90
#define GPIO 0x91
#define SW_CONTROL_GPIO 0x400
#define TX_ANTENNA 0x9f
#define TX_GAIN_OFDM 0x9e
#define TX_GAIN_CCK 0x9d
#define WPA_CONFIG 0xb0
#define TX_AGC_CTL 0x9c
#define TX_AGC_CTL_PERPACKET_GAIN_SHIFT 0
#define TX_AGC_CTL_PERPACKET_ANTSEL_SHIFT 1
#define TX_AGC_CTL_FEEDBACK_ANT 2
#define RESP_RATE 0x34
#define SIFS 0xb4
#define DIFS 0xb5

#define SLOT 0xb6
#define CW_CONF 0xbc
#define CW_CONF_PERPACKET_RETRY_SHIFT 1
#define CW_CONF_PERPACKET_CW_SHIFT 0
#define CW_VAL 0xbd
#define MAX_RESP_RATE_SHIFT 4
#define MIN_RESP_RATE_SHIFT 0
#define RATE_FALLBACK 0xbe

#define CONFIG5 0x00D8

#define PHYPR			0xDA			/* 0xDA - 0x0B PHY Parameter Register.	*/

#define FEMR			0x1D4	/* Function Event Mask register	*/

#define FFER 0x00FC
#define FFER_END 0x00FF



/*
 * Bitmasks for specific register functions.
 * Names are derived from the register name and function name.
 *
 * <REGISTER>_<FUNCTION>[<bit>]
 *
 * this leads to some awkward names...
 */

#define BRSR_BPLCP  ((1 << 8))
#define BRSR_MBR    ((1 << 1)|(1 << 0))
#define BRSR_MBR_8185 ((1 << 11)|(1 << 10)|(1 << 9)|(1 << 8)|(1 << 7)|(1 << 6)|(1 << 5)|(1 << 4)|(1 << 3)|(1 << 2)|(1 << 1)|(1 << 0))
#define BRSR_MBR0   ((1 << 0))
#define BRSR_MBR1   ((1 << 1))

#define CR_RST      ((1 << 4))
#define CR_RE       ((1 << 3))
#define CR_TE       ((1 << 2))
#define CR_MulRW    ((1 << 0))

#define IMR_Dot11hInt	((1 << 25))			/*802.11h Measurement Interrupt					*/
#define IMR_BcnDmaInt	((1 << 24))			/*Beacon DMA Interrupt */ /*What differenct between BcnDmaInt and BcnInt???	*/
#define IMR_WakeInt		((1 << 23))			/*Wake Up Interrupt								*/
#define IMR_TXFOVW		((1 << 22))			/*Tx FIFO Overflow Interrupt					*/
#define IMR_TimeOut1	((1 << 21))			/*Time Out Interrupt 1							*/
#define IMR_BcnInt		((1 << 20))			/*Beacon Time out Interrupt						*/
#define IMR_ATIMInt		((1 << 19))			/*ATIM Time Out Interrupt						*/
#define IMR_TBDER		((1 << 18))			/*Tx Beacon Descriptor Error Interrupt			*/
#define IMR_TBDOK		((1 << 17))			/*Tx Beacon Descriptor OK Interrupt				*/
#define IMR_THPDER		((1 << 16))			/*Tx High Priority Descriptor Error Interrupt	*/
#define IMR_THPDOK		((1 << 15))			/*Tx High Priority Descriptor OK Interrupt		*/
#define IMR_TVODER		((1 << 14))			/*Tx AC_VO Descriptor Error Interrupt			*/
#define IMR_TVODOK		((1 << 13))			/*Tx AC_VO Descriptor OK Interrupt				*/
#define IMR_FOVW		((1 << 12))			/*Rx FIFO Overflow Interrupt					*/
#define IMR_RDU			((1 << 11))			/*Rx Descriptor Unavailable Interrupt			*/
#define IMR_TVIDER		((1 << 10))			/*Tx AC_VI Descriptor Error Interrupt			*/
#define IMR_TVIDOK		((1 << 9))			/*Tx AC_VI Descriptor OK Interrupt				*/
#define IMR_RER			((1 << 8))			/*Rx Error Interrupt							*/
#define IMR_ROK			((1 << 7))			/*Receive OK Interrupt							*/
#define IMR_TBEDER		((1 << 6))			/*Tx AC_BE Descriptor Error Interrupt			*/
#define IMR_TBEDOK		((1 << 5))			/*Tx AC_BE Descriptor OK Interrupt				*/
#define IMR_TBKDER		((1 << 4))			/*Tx AC_BK Descriptor Error Interrupt			*/
#define IMR_TBKDOK		((1 << 3))			/*Tx AC_BK Descriptor OK Interrupt				*/
#define IMR_RQoSOK		((1 << 2))			/*Rx QoS OK Interrupt							*/
#define IMR_TimeOut2	((1 << 1))			/*Time Out Interrupt 2							*/
#define IMR_TimeOut3	((1 << 0))			/*Time Out Interrupt 3							*/
#define IMR_TMGDOK      ((1 << 30))
#define ISR_Dot11hInt	((1 << 25))			/*802.11h Measurement Interrupt					*/
#define ISR_BcnDmaInt	((1 << 24))			/*Beacon DMA Interrupt	*/ /*What differenct between BcnDmaInt and BcnInt???	*/
#define ISR_WakeInt		((1 << 23))			/*Wake Up Interrupt								*/
#define ISR_TXFOVW		((1 << 22))			/*Tx FIFO Overflow Interrupt					*/
#define ISR_TimeOut1	((1 << 21))			/*Time Out Interrupt 1							*/
#define ISR_BcnInt		((1 << 20))			/*Beacon Time out Interrupt						*/
#define ISR_ATIMInt		((1 << 19))			/*ATIM Time Out Interrupt						*/
#define ISR_TBDER		((1 << 18))			/*Tx Beacon Descriptor Error Interrupt			*/
#define ISR_TBDOK		((1 << 17))			/*Tx Beacon Descriptor OK Interrupt				*/
#define ISR_THPDER		((1 << 16))			/*Tx High Priority Descriptor Error Interrupt	*/
#define ISR_THPDOK		((1 << 15))			/*Tx High Priority Descriptor OK Interrupt		*/
#define ISR_TVODER		((1 << 14))			/*Tx AC_VO Descriptor Error Interrupt			*/
#define ISR_TVODOK		((1 << 13))			/*Tx AC_VO Descriptor OK Interrupt				*/
#define ISR_FOVW		((1 << 12))			/*Rx FIFO Overflow Interrupt					*/
#define ISR_RDU			((1 << 11))			/*Rx Descriptor Unavailable Interrupt			*/
#define ISR_TVIDER		((1 << 10))			/*Tx AC_VI Descriptor Error Interrupt			*/
#define ISR_TVIDOK		((1 << 9))			/*Tx AC_VI Descriptor OK Interrupt				*/
#define ISR_RER			((1 << 8))			/*Rx Error Interrupt							*/
#define ISR_ROK			((1 << 7))			/*Receive OK Interrupt							*/
#define ISR_TBEDER		((1 << 6))			/*Tx AC_BE Descriptor Error Interrupt			*/
#define ISR_TBEDOK		((1 << 5))			/*Tx AC_BE Descriptor OK Interrupt				*/
#define ISR_TBKDER		((1 << 4))			/*Tx AC_BK Descriptor Error Interrupt			*/
#define ISR_TBKDOK		((1 << 3))			/*Tx AC_BK Descriptor OK Interrupt				*/
#define ISR_RQoSOK		((1 << 2))			/*Rx QoS OK Interrupt							*/
#define ISR_TimeOut2	((1 << 1))			/*Time Out Interrupt 2							*/
#define ISR_TimeOut3	((1 << 0))			/*Time Out Interrupt 3							*/

/* these definition is used for Tx/Rx test temporarily */
#define ISR_TLPDER  ISR_TVIDER
#define ISR_TLPDOK  ISR_TVIDOK
#define ISR_TNPDER  ISR_TVODER
#define ISR_TNPDOK  ISR_TVODOK
#define ISR_TimeOut ISR_TimeOut1
#define ISR_RXFOVW ISR_FOVW


#define HW_VERID_R8180_F 3
#define HW_VERID_R8180_ABCD 2
#define HW_VERID_R8185_ABC 4
#define HW_VERID_R8185_D 5
#define HW_VERID_R8185B_B 6

#define TCR_CWMIN   ((1 << 31))
#define TCR_SWSEQ   ((1 << 30))
#define TCR_HWVERID_MASK ((1 << 27)|(1 << 26)|(1 << 25))
#define TCR_HWVERID_SHIFT 25
#define TCR_SAT     ((1 << 24))
#define TCR_PLCP_LEN TCR_SAT /* rtl8180 */
#define TCR_MXDMA_MASK   ((1 << 23)|(1 << 22)|(1 << 21))
#define TCR_MXDMA_1024 6
#define TCR_MXDMA_2048 7
#define TCR_MXDMA_SHIFT  21
#define TCR_DISCW   ((1 << 20))
#define TCR_ICV     ((1 << 19))
#define TCR_LBK     ((1 << 18)|(1 << 17))
#define TCR_LBK1    ((1 << 18))
#define TCR_LBK0    ((1 << 17))
#define TCR_CRC     ((1 << 16))
#define TCR_DPRETRY_MASK   ((1 << 15)|(1 << 14)|(1 << 13)|(1 << 12)|(1 << 11)|(1 << 10)|(1 << 9)|(1 << 8))
#define TCR_RTSRETRY_MASK   ((1 << 0)|(1 << 1)|(1 << 2)|(1 << 3)|(1 << 4)|(1 << 5)|(1 << 6)|(1 << 7))
#define TCR_PROBE_NOTIMESTAMP_SHIFT 29 /* rtl8185 */

#define RCR_ONLYERLPKT ((1 << 31))
#define RCR_CS_SHIFT   29
#define RCR_CS_MASK    ((1 << 30) | (1 << 29))
#define RCR_ENMARP     ((1 << 28))
#define RCR_CBSSID     ((1 << 23))
#define RCR_APWRMGT    ((1 << 22))
#define RCR_ADD3       ((1 << 21))
#define RCR_AMF        ((1 << 20))
#define RCR_ACF        ((1 << 19))
#define RCR_ADF        ((1 << 18))
#define RCR_RXFTH      ((1 << 15)|(1 << 14)|(1 << 13))
#define RCR_RXFTH2     ((1 << 15))
#define RCR_RXFTH1     ((1 << 14))
#define RCR_RXFTH0     ((1 << 13))
#define RCR_AICV       ((1 << 12))
#define RCR_MXDMA      ((1 << 10)|(1 << 9)|(1 << 8))
#define RCR_MXDMA2     ((1 << 10))
#define RCR_MXDMA1     ((1 << 9))
#define RCR_MXDMA0     ((1 << 8))
#define RCR_9356SEL    ((1 << 6))
#define RCR_ACRC32     ((1 << 5))
#define RCR_AB         ((1 << 3))
#define RCR_AM         ((1 << 2))
#define RCR_APM        ((1 << 1))
#define RCR_AAP        ((1 << 0))

#define CR9346_EEM     ((1 << 7)|(1 << 6))
#define CR9346_EEM1    ((1 << 7))
#define CR9346_EEM0    ((1 << 6))
#define CR9346_EECS    ((1 << 3))
#define CR9346_EESK    ((1 << 2))
#define CR9346_EED1    ((1 << 1))
#define CR9346_EED0    ((1 << 0))

#define CONFIG3_PARM_En    ((1 << 6))
#define CONFIG3_FuncRegEn  ((1 << 1))

#define CONFIG4_PWRMGT     ((1 << 5))

#define MSR_LINK_MASK      ((1 << 2)|(1 << 3))
#define MSR_LINK_MANAGED   2
#define MSR_LINK_NONE      0
#define MSR_LINK_SHIFT     2
#define MSR_LINK_ADHOC     1
#define MSR_LINK_MASTER    3

#define BcnItv_BcnItv      (0x01FF)

#define AtimWnd_AtimWnd    (0x01FF)

#define BintrItv_BintrItv  (0x01FF)

#define FEMR_INTR    ((1 << 15))
#define FEMR_WKUP    ((1 << 14))
#define FEMR_GWAKE   ((1 << 4))

#define FFER_INTR    ((1 << 15))
#define FFER_GWAKE   ((1 << 4))

/* Three wire mode.					*/
#define SW_THREE_WIRE			0
#define HW_THREE_WIRE			2
/* RTL8187S by amy					*/
#define HW_THREE_WIRE_PI		5
#define HW_THREE_WIRE_SI		6
/* by amy							*/
#define TCR_LRL_OFFSET		0
#define TCR_SRL_OFFSET		8
#define TCR_MXDMA_OFFSET	21
#define TCR_DISReqQsize_OFFSET		28
#define TCR_DurProcMode_OFFSET		30

#define RCR_MXDMA_OFFSET				8
#define RCR_FIFO_OFFSET					13

#define AckTimeOutReg	0x79		/* ACK timeout register, in unit of 4 us. */

#define RFTiming			0x8C

#define TPPollStop		0x93

#define TXAGC_CTL		0x9C			/*< RJ_TODO_8185B> TX_AGC_CONTROL (0x9C seems be removed at 8185B, see p37). */
#define CCK_TXAGC		0x9D
#define OFDM_TXAGC		0x9E
#define ANTSEL			0x9F

#define ACM_CONTROL             0x00BF      /* ACM Control Registe */

#define	IntMig			0xE2			/* Interrupt Migration (0xE2 ~ 0xE3)	*/

#define TID_AC_MAP		0xE8			/* TID to AC Mapping Register			*/

#define ANAPARAM3		0xEE			/* <RJ_TODO_8185B> How to use it?		*/

#define AC_VO_PARAM		0xF0			/* AC_VO Parameters Record				*/
#define AC_VI_PARAM		0xF4			/* AC_VI Parameters Record				*/
#define AC_BE_PARAM		0xF8			/* AC_BE Parameters Record				*/
#define AC_BK_PARAM		0xFC			/* AC_BK Parameters Record				*/

#define GPIOCtrl			0x16B			/*GPIO Control Register.			*/
#define ARFR			0x1E0	/* Auto Rate Fallback Register (0x1e0 ~ 0x1e2)	*/

#define RFSW_CTRL			0x272	/* 0x272-0x273.								*/
#define SW_3W_DB0			0x274	/* Software 3-wire data buffer bit 31~0.		*/
#define SW_3W_DB1			0x278	/* Software 3-wire data buffer bit 63~32.	*/
#define SW_3W_CMD0			0x27C	/* Software 3-wire Control/Status Register.	*/
#define SW_3W_CMD1			0x27D	/* Software 3-wire Control/Status Register.	*/

#define PI_DATA_READ		0X360	/* 0x360 - 0x361  Parallel Interface Data Register.	*/
#define SI_DATA_READ		0x362	/* 0x362 - 0x363  Serial Interface Data Register.	*/

/*
----------------------------------------------------------------------------
		8185B TPPollStop bits					(offset 0x93, 1 byte)
----------------------------------------------------------------------------
*/
#define TPPOLLSTOP_BQ			(0x01 << 7)
#define TPPOLLSTOP_AC_VIQ		(0x01 << 4)

#define MSR_LINK_ENEDCA	   (1<<4)

/*
----------------------------------------------------------------------------
		8187B AC_XX_PARAM bits
----------------------------------------------------------------------------
*/
#define AC_PARAM_TXOP_LIMIT_OFFSET		16
#define AC_PARAM_ECW_MAX_OFFSET			12
#define AC_PARAM_ECW_MIN_OFFSET			8
#define AC_PARAM_AIFS_OFFSET			0

/*
----------------------------------------------------------------------------
		8187B ACM_CONTROL bits					(Offset 0xBF, 1 Byte)
----------------------------------------------------------------------------
*/
#define VOQ_ACM_EN				(0x01 << 7)	/*BIT7	*/
#define VIQ_ACM_EN				(0x01 << 6)	/*BIT6	*/
#define BEQ_ACM_EN				(0x01 << 5)	/*BIT5	*/
#define ACM_HW_EN				(0x01 << 4)	/*BIT4	*/
#define VOQ_ACM_CTL				(0x01 << 2)	/*BIT2	*/	/* Set to 1 when AC_VO used time reaches or exceeds the admitted time	*/
#define VIQ_ACM_CTL				(0x01 << 1)	/*BIT1	*/	/* Set to 1 when AC_VI used time reaches or exceeds the admitted time	*/
#define BEQ_ACM_CTL				(0x01 << 0)	/*BIT0	*/	/* Set to 1 when AC_BE used time reaches or exceeds the admitted time	*/


/*
----------------------------------------------------------------------------
		8185B SW_3W_CMD bits					(Offset 0x27C-0x27D, 16bit)
----------------------------------------------------------------------------
*/
#define SW_3W_CMD0_HOLD		((1 << 7))
#define SW_3W_CMD1_RE		((1 << 0)) /* BIT8		*/
#define SW_3W_CMD1_WE		((1 << 1)) /* BIT9		*/
#define SW_3W_CMD1_DONE		((1 << 2)) /* BIT10		*/

#define BB_HOST_BANG_RW		(1 << 3)

/*
----------------------------------------------------------------------------
		8185B RATE_FALLBACK_CTL bits			(Offset 0xBE, 8bit)
----------------------------------------------------------------------------
*/
#define RATE_FALLBACK_CTL_ENABLE				((1 << 7))
#define RATE_FALLBACK_CTL_ENABLE_RTSCTS		((1 << 6))
/* Auto rate fallback per 2^n retry. */
#define RATE_FALLBACK_CTL_AUTO_STEP0	0x00
#define RATE_FALLBACK_CTL_AUTO_STEP1	0x01
#define RATE_FALLBACK_CTL_AUTO_STEP2	0x02
#define RATE_FALLBACK_CTL_AUTO_STEP3	0x03


#define RTL8225z2_ANAPARAM_OFF	0x55480658
#define RTL8225z2_ANAPARAM2_OFF	0x72003f70
/* by amy for power save		*/
#define RF_CHANGE_BY_HW BIT30
#define RF_CHANGE_BY_PS BIT29
#define RF_CHANGE_BY_IPS BIT28
/* by amy for power save		*/
/* by amy for antenna			*/
#define EEPROM_SW_REVD_OFFSET 0x3f
/*  BIT[8-9] is for SW Antenna Diversity. Only the value EEPROM_SW_AD_ENABLE means enable, other values are diable.					*/
#define EEPROM_SW_AD_MASK			0x0300
#define EEPROM_SW_AD_ENABLE			0x0100

/* BIT[10-11] determine if Antenna 1 is the Default Antenna. Only the value EEPROM_DEF_ANT_1 means TRUE, other values are FALSE.	*/
#define EEPROM_DEF_ANT_MASK			0x0C00
#define EEPROM_DEF_ANT_1			0x0400
/*by amy for antenna																				*/
/* {by amy 080312																					*/
/* 0x7C, 0x7D Crystal calibration and Tx Power tracking mechanism. Added by Roger. 2007.12.10.		*/
#define EEPROM_RSV						0x7C
#define EEPROM_XTAL_CAL_XOUT_MASK	0x0F	/* 0x7C[3:0], Crystal calibration for Xout.				*/
#define EEPROM_XTAL_CAL_XIN_MASK		0xF0	/* 0x7C[7:4], Crystal calibration for Xin.			*/
#define EEPROM_THERMAL_METER_MASK	0x0F00	/* 0x7D[3:0], Thermal meter reference level.			*/
#define EEPROM_XTAL_CAL_ENABLE		0x1000	/* 0x7D[4], Crystal calibration enabled/disabled BIT.	*/
#define EEPROM_THERMAL_METER_ENABLE	0x2000	/* 0x7D[5], Thermal meter enabled/disabled BIT.			*/
#define EN_LPF_CAL			0x238	/* Enable LPF Calibration.										*/
#define PWR_METER_EN		BIT1
/* <RJ_TODO_8185B> where are false alarm counters in 8185B? */
#define CCK_FALSE_ALARM		0xD0
/* by amy 080312} */

/* YJ,add for Country IE, 080630 */
#define EEPROM_COUNTRY_CODE  0x2E
/* YJ,add,080630,end */

#endif
