/*
	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
