/******************************************************************************
 *
 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 *******************************************************************************/
#ifndef __RTL8723A_SPEC_H__
#define __RTL8723A_SPEC_H__

/*  */
/*  */
/*	0x0000h ~ 0x00FFh	System Configuration */
/*  */
/*  */
#define REG_SYS_ISO_CTRL		0x0000
#define REG_SYS_FUNC_EN			0x0002
#define REG_APS_FSMCO			0x0004
#define REG_SYS_CLKR			0x0008
#define REG_9346CR			0x000A
#define REG_EE_VPD			0x000C
#define REG_AFE_MISC			0x0010
#define REG_SPS0_CTRL			0x0011
#define REG_SPS_OCP_CFG			0x0018
#define REG_RSV_CTRL			0x001C
#define REG_RF_CTRL			0x001F
#define REG_LDOA15_CTRL			0x0020
#define REG_LDOV12D_CTRL		0x0021
#define REG_LDOHCI12_CTRL		0x0022
#define REG_LPLDO_CTRL			0x0023
#define REG_AFE_XTAL_CTRL		0x0024
#define REG_AFE_PLL_CTRL		0x0028
#define REG_MAC_PHY_CTRL		0x002c
#define REG_EFUSE_CTRL			0x0030
#define REG_EFUSE_TEST			0x0034
#define REG_PWR_DATA			0x0038
#define REG_CAL_TIMER			0x003C
#define REG_ACLK_MON			0x003E
#define REG_GPIO_MUXCFG			0x0040
#define REG_GPIO_IO_SEL			0x0042
#define REG_MAC_PINMUX_CFG		0x0043
#define REG_GPIO_PIN_CTRL		0x0044
#define REG_GPIO_INTM			0x0048
#define REG_LEDCFG0			0x004C
#define REG_LEDCFG1			0x004D
#define REG_LEDCFG2			0x004E
#define REG_LEDCFG3			0x004F
#define REG_LEDCFG			REG_LEDCFG2
#define REG_FSIMR			0x0050
#define REG_FSISR			0x0054
#define REG_HSIMR			0x0058
#define REG_HSISR			0x005c
 /*  RTL8723 WIFI/BT/GPS Multi-Function GPIO Pin Control. */
#define REG_GPIO_PIN_CTRL_2		0x0060
 /*  RTL8723 WIFI/BT/GPS Multi-Function GPIO Select. */
#define REG_GPIO_IO_SEL_2		0x0062
 /*  RTL8723 WIFI/BT/GPS Multi-Function control source. */
#define REG_MULTI_FUNC_CTRL		0x0068
#define REG_MCUFWDL			0x0080
#define REG_HMEBOX_EXT_0		0x0088
#define REG_HMEBOX_EXT_1		0x008A
#define REG_HMEBOX_EXT_2		0x008C
#define REG_HMEBOX_EXT_3		0x008E
	/*  Host suspend counter on FPGA platform */
#define REG_HOST_SUSP_CNT		0x00BC
	/*  Efuse access protection for RTL8723 */
#define REG_EFUSE_ACCESS		0x00CF
#define REG_BIST_SCAN			0x00D0
#define REG_BIST_RPT			0x00D4
#define REG_BIST_ROM_RPT		0x00D8
#define REG_USB_SIE_INTF		0x00E0
#define REG_PCIE_MIO_INTF		0x00E4
#define REG_PCIE_MIO_INTD		0x00E8
#define REG_HPON_FSM			0x00EC
#define REG_SYS_CFG			0x00F0
#define REG_GPIO_OUTSTS			0x00F4	/*  For RTL8723 only. */

/*  */
/*  */
/*	0x0100h ~ 0x01FFh	MACTOP General Configuration */
/*  */
/*  */
#define REG_CR				0x0100
#define REG_PBP				0x0104
#define REG_TRXDMA_CTRL			0x010C
#define REG_TRXFF_BNDY			0x0114
#define REG_TRXFF_STATUS		0x0118
#define REG_RXFF_PTR			0x011C
#define REG_HIMR			0x0120
#define REG_HISR			0x0124
#define REG_HIMRE			0x0128
#define REG_HISRE			0x012C
#define REG_CPWM			0x012F
#define REG_FWIMR			0x0130
#define REG_FWISR			0x0134
#define REG_PKTBUF_DBG_CTRL		0x0140
#define REG_PKTBUF_DBG_DATA_L		0x0144
#define REG_PKTBUF_DBG_DATA_H		0x0148

#define REG_TC0_CTRL			0x0150
#define REG_TC1_CTRL			0x0154
#define REG_TC2_CTRL			0x0158
#define REG_TC3_CTRL			0x015C
#define REG_TC4_CTRL			0x0160
#define REG_TCUNIT_BASE			0x0164
#define REG_MBIST_START			0x0174
#define REG_MBIST_DONE			0x0178
#define REG_MBIST_FAIL			0x017C
#define REG_C2HEVT_MSG_NORMAL		0x01A0
#define REG_C2HEVT_CLEAR		0x01AF
#define REG_C2HEVT_MSG_TEST		0x01B8
#define REG_MCUTST_1			0x01c0
#define REG_FMETHR			0x01C8
#define REG_HMETFR			0x01CC
#define REG_HMEBOX_0			0x01D0
#define REG_HMEBOX_1			0x01D4
#define REG_HMEBOX_2			0x01D8
#define REG_HMEBOX_3			0x01DC

#define REG_LLT_INIT			0x01E0
#define REG_BB_ACCEESS_CTRL		0x01E8
#define REG_BB_ACCESS_DATA		0x01EC


/*  */
/*  */
/*	0x0200h ~ 0x027Fh	TXDMA Configuration */
/*  */
/*  */
#define REG_RQPN			0x0200
#define REG_FIFOPAGE			0x0204
#define REG_TDECTRL			0x0208
#define REG_TXDMA_OFFSET_CHK		0x020C
#define REG_TXDMA_STATUS		0x0210
#define REG_RQPN_NPQ			0x0214

/*  */
/*  */
/*	0x0280h ~ 0x02FFh	RXDMA Configuration */
/*  */
/*  */
#define REG_RXDMA_AGG_PG_TH		0x0280
#define REG_RXPKT_NUM			0x0284
#define REG_RXDMA_STATUS		0x0288


/*  */
/*  */
/*	0x0300h ~ 0x03FFh	PCIe */
/*  */
/*  */
#define	REG_PCIE_CTRL_REG		0x0300
#define	REG_INT_MIG			0x0304	/*  Interrupt Migration */
	/*  TX Beacon Descriptor Address */
#define	REG_BCNQ_DESA			0x0308
	/*  TX High Queue Descriptor Address */
#define	REG_HQ_DESA			0x0310
	/*  TX Manage Queue Descriptor Address */
#define	REG_MGQ_DESA			0x0318
	/*  TX VO Queue Descriptor Address */
#define	REG_VOQ_DESA			0x0320
	/*  TX VI Queue Descriptor Address */
#define	REG_VIQ_DESA			0x0328
	/*  TX BE Queue Descriptor Address */
#define	REG_BEQ_DESA			0x0330
	/*  TX BK Queue Descriptor Address */
#define	REG_BKQ_DESA			0x0338
	/*  RX Queue	Descriptor Address */
#define	REG_RX_DESA			0x0340
	/*  Backdoor REG for Access Configuration */
#define	REG_DBI				0x0348
	/*  MDIO for Access PCIE PHY */
#define	REG_MDIO			0x0354
	/*  Debug Selection Register */
#define	REG_DBG_SEL			0x0360
	/* PCIe RPWM */
#define	REG_PCIE_HRPWM			0x0361
	/* PCIe CPWM */
#define	REG_PCIE_HCPWM			0x0363
	/*  UART	Control */
#define	REG_UART_CTRL			0x0364
	/*  UART TX Descriptor Address */
#define	REG_UART_TX_DESA		0x0370
	/*  UART Rx Descriptor Address */
#define	REG_UART_RX_DESA		0x0378


/*  spec version 11 */
/*  */
/*  */
/*	0x0400h ~ 0x047Fh	Protocol Configuration */
/*  */
/*  */
#define REG_VOQ_INFORMATION		0x0400
#define REG_VIQ_INFORMATION		0x0404
#define REG_BEQ_INFORMATION		0x0408
#define REG_BKQ_INFORMATION		0x040C
#define REG_MGQ_INFORMATION		0x0410
#define REG_HGQ_INFORMATION		0x0414
#define REG_BCNQ_INFORMATION		0x0418


#define REG_CPU_MGQ_INFORMATION		0x041C
#define REG_FWHW_TXQ_CTRL		0x0420
#define REG_HWSEQ_CTRL			0x0423
#define REG_TXPKTBUF_BCNQ_BDNY		0x0424
#define REG_TXPKTBUF_MGQ_BDNY		0x0425
#define REG_LIFETIME_EN			0x0426
#define REG_MULTI_BCNQ_OFFSET		0x0427
#define REG_SPEC_SIFS			0x0428
#define REG_RL				0x042A
#define REG_DARFRC			0x0430
#define REG_RARFRC			0x0438
#define REG_RRSR			0x0440
#define REG_ARFR0			0x0444
#define REG_ARFR1			0x0448
#define REG_ARFR2			0x044C
#define REG_ARFR3			0x0450
#define REG_AGGLEN_LMT			0x0458
#define REG_AMPDU_MIN_SPACE		0x045C
#define REG_TXPKTBUF_WMAC_LBK_BF_HD	0x045D
#define REG_FAST_EDCA_CTRL		0x0460
#define REG_RD_RESP_PKT_TH		0x0463
#define REG_INIRTS_RATE_SEL		0x0480
#define REG_INIDATA_RATE_SEL		0x0484


#define REG_POWER_STATUS		0x04A4
#define REG_POWER_STAGE1		0x04B4
#define REG_POWER_STAGE2		0x04B8
#define REG_PKT_VO_VI_LIFE_TIME		0x04C0
#define REG_PKT_BE_BK_LIFE_TIME		0x04C2
#define REG_STBC_SETTING		0x04C4
#define REG_PROT_MODE_CTRL		0x04C8
#define REG_MAX_AGGR_NUM		0x04CA
#define REG_RTS_MAX_AGGR_NUM		0x04CB
#define REG_BAR_MODE_CTRL		0x04CC
#define REG_RA_TRY_RATE_AGG_LMT		0x04CF
#define REG_NQOS_SEQ			0x04DC
#define REG_QOS_SEQ			0x04DE
#define REG_NEED_CPU_HANDLE		0x04E0
#define REG_PKT_LOSE_RPT		0x04E1
#define REG_PTCL_ERR_STATUS		0x04E2
#define REG_DUMMY			0x04FC



/*  */
/*  */
/*	0x0500h ~ 0x05FFh	EDCA Configuration */
/*  */
/*  */
#define REG_EDCA_VO_PARAM		0x0500
#define REG_EDCA_VI_PARAM		0x0504
#define REG_EDCA_BE_PARAM		0x0508
#define REG_EDCA_BK_PARAM		0x050C
#define REG_BCNTCFG			0x0510
#define REG_PIFS			0x0512
#define REG_RDG_PIFS			0x0513
#define REG_SIFS_CCK			0x0514
#define REG_SIFS_OFDM			0x0516
#define REG_SIFS_CTX			0x0514
#define REG_SIFS_TRX			0x0516
#define REG_TSFTR_SYN_OFFSET		0x0518
#define REG_AGGR_BREAK_TIME		0x051A
#define REG_SLOT			0x051B
#define REG_TX_PTCL_CTRL		0x0520
#define REG_TXPAUSE			0x0522
#define REG_DIS_TXREQ_CLR		0x0523
#define REG_RD_CTRL			0x0524
#define REG_TBTT_PROHIBIT		0x0540
#define REG_RD_NAV_NXT			0x0544
#define REG_NAV_PROT_LEN		0x0546
#define REG_BCN_CTRL			0x0550
#define REG_BCN_CTRL_1			0x0551
#define REG_MBID_NUM			0x0552
#define REG_DUAL_TSF_RST		0x0553
	/*  The same as REG_MBSSID_BCN_SPACE */
#define REG_BCN_INTERVAL		0x0554
#define REG_MBSSID_BCN_SPACE		0x0554
#define REG_DRVERLYINT			0x0558
#define REG_BCNDMATIM			0x0559
#define REG_ATIMWND			0x055A
#define REG_BCN_MAX_ERR			0x055D
#define REG_RXTSF_OFFSET_CCK		0x055E
#define REG_RXTSF_OFFSET_OFDM		0x055F
#define REG_TSFTR			0x0560
#define REG_TSFTR1			0x0568
#define REG_INIT_TSFTR			0x0564
#define REG_ATIMWND_1			0x0570
#define REG_PSTIMER			0x0580
#define REG_TIMER0			0x0584
#define REG_TIMER1			0x0588
#define REG_ACMHWCTRL			0x05C0
#define REG_ACMRSTCTRL			0x05C1
#define REG_ACMAVG			0x05C2
#define REG_VO_ADMTIME			0x05C4
#define REG_VI_ADMTIME			0x05C6
#define REG_BE_ADMTIME			0x05C8
#define REG_EDCA_RANDOM_GEN		0x05CC
#define REG_SCH_TXCMD			0x05D0

/* define REG_FW_TSF_SYNC_CNT		0x04A0 */
#define REG_FW_RESET_TSF_CNT_1		0x05FC
#define REG_FW_RESET_TSF_CNT_0		0x05FD
#define REG_FW_BCN_DIS_CNT		0x05FE

/*  */
/*  */
/*	0x0600h ~ 0x07FFh	WMAC Configuration */
/*  */
/*  */
#define REG_APSD_CTRL			0x0600
#define REG_BWOPMODE			0x0603
#define REG_TCR				0x0604
#define REG_RCR				0x0608
#define REG_RX_PKT_LIMIT		0x060C
#define REG_RX_DLK_TIME			0x060D
#define REG_RX_DRVINFO_SZ		0x060F

#define REG_MACID			0x0610
#define REG_BSSID			0x0618
#define REG_MAR				0x0620
#define REG_MBIDCAMCFG			0x0628

#define REG_USTIME_EDCA			0x0638
#define REG_MAC_SPEC_SIFS		0x063A

/*  20100719 Joseph: Hardware register definition change. (HW datasheet v54) */
	/*  [15:8]SIFS_R2T_OFDM, [7:0]SIFS_R2T_CCK */
#define REG_R2T_SIFS			0x063C
	/*  [15:8]SIFS_T2T_OFDM, [7:0]SIFS_T2T_CCK */
#define REG_T2T_SIFS			0x063E
#define REG_ACKTO			0x0640
#define REG_CTS2TO			0x0641
#define REG_EIFS			0x0642

/* WMA, BA, CCX */
#define REG_NAV_CTRL			0x0650
#define REG_BACAMCMD			0x0654
#define REG_BACAMCONTENT		0x0658
#define REG_LBDLY			0x0660
#define REG_FWDLY			0x0661
#define REG_RXERR_RPT			0x0664
#define REG_WMAC_TRXPTCL_CTL		0x0668


/*  Security */
#define REG_CAMCMD			0x0670
#define REG_CAMWRITE			0x0674
#define REG_CAMREAD			0x0678
#define REG_CAMDBG			0x067C
#define REG_SECCFG			0x0680

/*  Power */
#define REG_WOW_CTRL			0x0690
#define REG_PSSTATUS			0x0691
#define REG_PS_RX_INFO			0x0692
#define REG_LPNAV_CTRL			0x0694
#define REG_WKFMCAM_CMD			0x0698
#define REG_WKFMCAM_RWD			0x069C
#define REG_RXFLTMAP0			0x06A0
#define REG_RXFLTMAP1			0x06A2
#define REG_RXFLTMAP2			0x06A4
#define REG_BCN_PSR_RPT			0x06A8
#define REG_CALB32K_CTRL		0x06AC
#define REG_PKT_MON_CTRL		0x06B4
#define REG_BT_COEX_TABLE		0x06C0
#define REG_WMAC_RESP_TXINFO		0x06D8

#define REG_MACID1			0x0700
#define REG_BSSID1			0x0708


/*  */
/*  */
/*	0xFE00h ~ 0xFE55h	USB Configuration */
/*  */
/*  */
#define REG_USB_INFO			0xFE17
#define REG_USB_SPECIAL_OPTION		0xFE55
#define REG_USB_DMA_AGG_TO		0xFE5B
#define REG_USB_AGG_TO			0xFE5C
#define REG_USB_AGG_TH			0xFE5D

/*  For test chip */
#define REG_TEST_USB_TXQS		0xFE48
#define REG_TEST_SIE_VID		0xFE60		/*  0xFE60~0xFE61 */
#define REG_TEST_SIE_PID		0xFE62		/*  0xFE62~0xFE63 */
#define REG_TEST_SIE_OPTIONAL		0xFE64
#define REG_TEST_SIE_CHIRP_K		0xFE65
#define REG_TEST_SIE_PHY		0xFE66		/*  0xFE66~0xFE6B */
#define REG_TEST_SIE_MAC_ADDR		0xFE70		/*  0xFE70~0xFE75 */
#define REG_TEST_SIE_STRING		0xFE80		/*  0xFE80~0xFEB9 */


/*  For normal chip */
#define REG_NORMAL_SIE_VID		0xFE60		/*  0xFE60~0xFE61 */
#define REG_NORMAL_SIE_PID		0xFE62		/*  0xFE62~0xFE63 */
#define REG_NORMAL_SIE_OPTIONAL		0xFE64
#define REG_NORMAL_SIE_EP		0xFE65		/*  0xFE65~0xFE67 */
#define REG_NORMAL_SIE_PHY		0xFE68		/*  0xFE68~0xFE6B */
#define REG_NORMAL_SIE_OPTIONAL2	0xFE6C
#define REG_NORMAL_SIE_GPS_EP		0xFE6D		/*  RTL8723 only */
#define REG_NORMAL_SIE_MAC_ADDR		0xFE70		/*  0xFE70~0xFE75 */
#define REG_NORMAL_SIE_STRING		0xFE80		/*  0xFE80~0xFEDF */


/*  */
/*  */
/*	Redifine 8192C register definition for compatibility */
/*  */
/*  */

/*  TODO: use these definition when using REG_xxx naming rule. */
/*  NOTE: DO NOT Remove these definition. Use later. */

	/*  System Isolation Interface Control. */
#define	SYS_ISO_CTRL			REG_SYS_ISO_CTRL
	/*  System Function Enable. */
#define	SYS_FUNC_EN			REG_SYS_FUNC_EN
#define	SYS_CLK				REG_SYS_CLKR
	/*  93C46/93C56 Command Register. */
#define	CR9346				REG_9346CR
	/*  E-Fuse Control. */
#define	EFUSE_CTRL			REG_EFUSE_CTRL
	/*  E-Fuse Test. */
#define	EFUSE_TEST			REG_EFUSE_TEST
	/*  Media Status register */
#define	MSR				(REG_CR + 2)
#define	ISR				REG_HISR
	/*  Timing Sync Function Timer Register. */
#define	TSFR				REG_TSFTR

	/*  MAC ID Register, Offset 0x0050-0x0053 */
#define	MACIDR0				REG_MACID
	/*  MAC ID Register, Offset 0x0054-0x0055 */
#define	MACIDR4				(REG_MACID + 4)

#define	PBP				REG_PBP

	/*  Redifine MACID register, to compatible prior ICs. */
#define	IDR0				MACIDR0
#define	IDR4				MACIDR4


/*  */
/*  9. Security Control Registers	(Offset: ) */
/*  */
	/* IN 8190 Data Sheet is called CAMcmd */
#define	RWCAM				REG_CAMCMD
	/*  Software write CAM input content */
#define	WCAMI				REG_CAMWRITE
	/*  Software read/write CAM config */
#define	RCAMO				REG_CAMREAD
#define	CAMDBG				REG_CAMDBG
	/* Security Configuration Register */
#define	SECR				REG_SECCFG

/*  Unused register */
#define	UnusedRegister			0x1BF
#define	DCAM				UnusedRegister
#define	PSR				UnusedRegister
#define	BBAddr				UnusedRegister
#define	PhyDataR			UnusedRegister

#define	InvalidBBRFValue		0x12345678

/*  Min Spacing related settings. */
#define	MAX_MSS_DENSITY_2T		0x13
#define	MAX_MSS_DENSITY_1T		0x0A

/*  */
/* 8192C Cmd9346CR bits			(Offset 0xA, 16bit) */
/*  */
	 /*  EEPROM enable when set 1 */
#define	CmdEEPROM_En			BIT(5)
	/*  System EEPROM select, 0: boot from E-FUSE,
	    1: The EEPROM used is 9346 */
#define	CmdEERPOMSEL			BIT(4)
#define	Cmd9346CR_9356SEL		BIT(4)
#define	AutoLoadEEPROM			(CmdEEPROM_En|CmdEERPOMSEL)
#define	AutoLoadEFUSE			CmdEEPROM_En

/*  */
/* 8192C GPIO MUX Configuration Register (offset 0x40, 4 byte) */
/*  */
#define	GPIOSEL_GPIO			0
#define	GPIOSEL_ENBT			BIT(5)

/*  */
/*        8192C GPIO PIN Control Register (offset 0x44, 4 byte) */
/*  */
	/*  GPIO pins input value */
#define	GPIO_IN				REG_GPIO_PIN_CTRL
	/*  GPIO pins output value */
#define	GPIO_OUT			(REG_GPIO_PIN_CTRL+1)
	/*  GPIO pins output enable when a bit is set to "1";
	    otherwise, input is configured. */
#define	GPIO_IO_SEL			(REG_GPIO_PIN_CTRL+2)
#define	GPIO_MOD			(REG_GPIO_PIN_CTRL+3)

/*  */
/* 8192C (MSR) Media Status Register	(Offset 0x4C, 8 bits) */
/*  */
/*
Network Type
00: No link
01: Link in ad hoc network
10: Link in infrastructure network
11: AP mode
Default: 00b.
*/
#define	MSR_NOLINK			0x00
#define	MSR_ADHOC			0x01
#define	MSR_INFRA			0x02
#define	MSR_AP				0x03

/*  */
/*  6. Adaptive Control Registers  (Offset: 0x0160 - 0x01CF) */
/*  */
/*  */
/* 8192C Response Rate Set Register	(offset 0x181, 24bits) */
/*  */
#define	RRSR_RSC_OFFSET			21
#define	RRSR_SHORT_OFFSET		23
#define	RRSR_RSC_BW_40M			0x600000
#define	RRSR_RSC_UPSUBCHNL		0x400000
#define	RRSR_RSC_LOWSUBCHNL		0x200000
#define	RRSR_SHORT			0x800000
#define	RRSR_1M				BIT(0)
#define	RRSR_2M				BIT(1)
#define	RRSR_5_5M			BIT(2)
#define	RRSR_11M			BIT(3)
#define	RRSR_6M				BIT(4)
#define	RRSR_9M				BIT(5)
#define	RRSR_12M			BIT(6)
#define	RRSR_18M			BIT(7)
#define	RRSR_24M			BIT(8)
#define	RRSR_36M			BIT(9)
#define	RRSR_48M			BIT(10)
#define	RRSR_54M			BIT(11)
#define	RRSR_MCS0			BIT(12)
#define	RRSR_MCS1			BIT(13)
#define	RRSR_MCS2			BIT(14)
#define	RRSR_MCS3			BIT(15)
#define	RRSR_MCS4			BIT(16)
#define	RRSR_MCS5			BIT(17)
#define	RRSR_MCS6			BIT(18)
#define	RRSR_MCS7			BIT(19)
#define	BRSR_AckShortPmb		BIT(23)
/*  CCK ACK: use Short Preamble or not */

/*  */
/* 8192C BW_OPMODE bits			(Offset 0x203, 8bit) */
/*  */
#define	BW_OPMODE_20MHZ			BIT(2)
#define	BW_OPMODE_5G			BIT(1)
#define	BW_OPMODE_11J			BIT(0)


/*  */
/* 8192C CAM Config Setting (offset 0x250, 1 byte) */
/*  */
#define	CAM_VALID			BIT(15)
#define	CAM_NOTVALID			0x0000
#define	CAM_USEDK			BIT(5)

#define	CAM_CONTENT_COUNT		8

#define	CAM_NONE			0x0
#define	CAM_WEP40			0x01
#define	CAM_TKIP			0x02
#define	CAM_AES				0x04
#define	CAM_WEP104			0x05

#define	TOTAL_CAM_ENTRY			32
#define	HALF_CAM_ENTRY			16

#define	CAM_CONFIG_USEDK		true
#define	CAM_CONFIG_NO_USEDK		false

#define	CAM_WRITE			BIT(16)
#define	CAM_READ			0x00000000
#define	CAM_POLLINIG			BIT(31)

#define	SCR_UseDK			0x01
#define	SCR_TxSecEnable			0x02
#define	SCR_RxSecEnable			0x04


/*  */
/*  12. Host Interrupt Status Registers	 (Offset: 0x0300 - 0x030F) */
/*  */
/*  */
/* 8190 IMR/ISR bits			(offset 0xfd,  8bits) */
/*  */
#define	IMR8190_DISABLED		0x0
/*  IMR DW0 Bit 0-31 */

#define	IMR_BCNDMAINT6			BIT(31)	/*  Beacon DMA Interrupt 6 */
#define	IMR_BCNDMAINT5			BIT(30)	/*  Beacon DMA Interrupt 5 */
#define	IMR_BCNDMAINT4			BIT(29)	/*  Beacon DMA Interrupt 4 */
#define	IMR_BCNDMAINT3			BIT(28)	/*  Beacon DMA Interrupt 3 */
#define	IMR_BCNDMAINT2			BIT(27)	/*  Beacon DMA Interrupt 2 */
#define	IMR_BCNDMAINT1			BIT(26)	/*  Beacon DMA Interrupt 1 */
#define	IMR_BCNDOK8			BIT(25)	/*  Beacon Queue DMA OK
						    Interrupt 8 */
#define	IMR_BCNDOK7			BIT(24)	/*  Beacon Queue DMA OK
						    Interrupt 7 */
#define	IMR_BCNDOK6			BIT(23)	/*  Beacon Queue DMA OK
						    Interrupt 6 */
#define	IMR_BCNDOK5			BIT(22)	/*  Beacon Queue DMA OK
						    Interrupt 5 */
#define	IMR_BCNDOK4			BIT(21)	/*  Beacon Queue DMA OK
						    Interrupt 4 */
#define	IMR_BCNDOK3			BIT(20)	/*  Beacon Queue DMA OK
						    Interrupt 3 */
#define	IMR_BCNDOK2			BIT(19)	/*  Beacon Queue DMA OK
						    Interrupt 2 */
#define	IMR_BCNDOK1			BIT(18)	/*  Beacon Queue DMA OK
						    Interrupt 1 */
#define	IMR_TIMEOUT2			BIT(17)	/*  Timeout interrupt 2 */
#define	IMR_TIMEOUT1			BIT(16)	/*  Timeout interrupt 1 */
#define	IMR_TXFOVW			BIT(15)	/*  Transmit FIFO Overflow */
#define	IMR_PSTIMEOUT			BIT(14)	/*  Power save time out
						    interrupt */
#define	IMR_BcnInt			BIT(13)	/*  Beacon DMA Interrupt 0 */
#define	IMR_RXFOVW			BIT(12)	/*  Receive FIFO Overflow */
#define	IMR_RDU				BIT(11)	/*  Receive Descriptor
						    Unavailable */
#define	IMR_ATIMEND			BIT(10)	/*  For 92C,ATIM Window
						    End Interrupt */
#define	IMR_BDOK			BIT(9)	/*  Beacon Queue DMA OK
						    Interrup */
#define	IMR_HIGHDOK			BIT(8)	/*  High Queue DMA OK
						    Interrupt */
#define	IMR_TBDOK			BIT(7)	/*  Transmit Beacon OK
						    interrup */
#define	IMR_MGNTDOK			BIT(6)	/*  Management Queue DMA OK
						    Interrupt */
#define	IMR_TBDER			BIT(5)	/*  For 92C,Transmit Beacon
						    Error Interrupt */
#define	IMR_BKDOK			BIT(4)	/*  AC_BK DMA OK Interrupt */
#define	IMR_BEDOK			BIT(3)	/*  AC_BE DMA OK Interrupt */
#define	IMR_VIDOK			BIT(2)	/*  AC_VI DMA OK Interrupt */
#define	IMR_VODOK			BIT(1)	/*  AC_VO DMA Interrupt */
#define	IMR_ROK				BIT(0)	/*  Receive DMA OK Interrupt */

#define	IMR_RX_MASK			(IMR_ROK|IMR_RDU|IMR_RXFOVW)
#define	IMR_TX_MASK			(IMR_VODOK|IMR_VIDOK|IMR_BEDOK| \
					 IMR_BKDOK|IMR_MGNTDOK|IMR_HIGHDOK| \
					 IMR_BDOK)

/*  13. Host Interrupt Status Extension Register (Offset: 0x012C-012Eh) */
#define	IMR_BcnInt_E			BIT(12)
#define	IMR_TXERR			BIT(11)
#define	IMR_RXERR			BIT(10)
#define	IMR_C2HCMD			BIT(9)
#define	IMR_CPWM			BIT(8)
/* RSVD [2-7] */
#define	IMR_OCPINT			BIT(1)
#define	IMR_WLANOFF			BIT(0)


/*        8192C EEPROM/EFUSE share register definition. */

/*  Default Value for EEPROM or EFUSE!!! */
#define EEPROM_Default_TSSI			0x0
#define EEPROM_Default_TxPowerDiff		0x0
#define EEPROM_Default_CrystalCap		0x5
 /*  Default: 2X2, RTL8192CE(QFPN68) */
#define EEPROM_Default_BoardType		0x02
#define EEPROM_Default_TxPower			0x1010
#define EEPROM_Default_HT2T_TxPwr		0x10

#define EEPROM_Default_LegacyHTTxPowerDiff	0x3
#define EEPROM_Default_ThermalMeter		0x12

#define EEPROM_Default_AntTxPowerDiff		0x0
#define EEPROM_Default_TxPwDiff_CrystalCap	0x5
#define EEPROM_Default_TxPowerLevel		0x22
#define EEPROM_Default_HT40_2SDiff		0x0
	/*  HT20<->40 default Tx Power Index Difference */
#define EEPROM_Default_HT20_Diff		2
#define EEPROM_Default_LegacyHTTxPowerDiff	0x3
#define EEPROM_Default_HT40_PwrMaxOffset	0
#define EEPROM_Default_HT20_PwrMaxOffset	0

/*  For debug */
#define EEPROM_Default_PID			0x1234
#define EEPROM_Default_VID			0x5678
#define EEPROM_Default_CustomerID		0xAB
#define EEPROM_Default_SubCustomerID		0xCD
#define EEPROM_Default_Version			0

#define EEPROM_CHANNEL_PLAN_FCC			0x0
#define EEPROM_CHANNEL_PLAN_IC			0x1
#define EEPROM_CHANNEL_PLAN_ETSI		0x2
#define EEPROM_CHANNEL_PLAN_SPAIN		0x3
#define EEPROM_CHANNEL_PLAN_FRANCE		0x4
#define EEPROM_CHANNEL_PLAN_MKK			0x5
#define EEPROM_CHANNEL_PLAN_MKK1		0x6
#define EEPROM_CHANNEL_PLAN_ISRAEL		0x7
#define EEPROM_CHANNEL_PLAN_TELEC		0x8
#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN	0x9
#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13	0xA
#define EEPROM_CHANNEL_PLAN_NCC			0xB
#define EEPROM_USB_OPTIONAL1			0xE
#define EEPROM_CHANNEL_PLAN_BY_HW_MASK		0x80


#define EEPROM_CID_DEFAULT			0x0
#define EEPROM_CID_TOSHIBA			0x4
 /*  CCX test. By Bruce, 2009-02-25. */
#define EEPROM_CID_CCX				0x10
#define EEPROM_CID_QMI				0x0D
 /*  added by chiyoko for dtm, 20090108 */
#define EEPROM_CID_WHQL				0xFE


#define	RTL_EEPROM_ID				0x8129

#define	SUPPORT_HW_RADIO_DETECT(pHalData)		\
	(pHalData->BoardType == BOARD_MINICARD ||	\
	pHalData->BoardType == BOARD_USB_SOLO ||	\
	pHalData->BoardType == BOARD_USB_COMBO)

/*  */
/*  EEPROM address for Test chip */
/*  */
#define EEPROM_TEST_USB_OPT		0x0E
#define EEPROM_TEST_CHIRP_K		0x0F
#define EEPROM_TEST_EP_SETTING		0x0E
#define EEPROM_TEST_USB_PHY		0x10


/*  */
/*  EEPROM address for Normal chip */
/*  */
#define EEPROM_NORMAL_USB_OPT		0x0E
#define EEPROM_NORMAL_CHIRP_K		0x0E	/*  Changed */
#define EEPROM_NORMAL_EP_SETTING	0x0F	/*  Changed */
#define EEPROM_NORMAL_USB_PHY		0x12	/*  Changed */

enum {
	BOARD_USB_DONGLE = 0,	/*  USB dongle */
	BOARD_USB_High_PA = 1,	/*  USB dongle with high power PA */
	BOARD_MINICARD = 2,	/*  Minicard */
	BOARD_USB_SOLO = 3,	/*  USB solo-Slim module */
	BOARD_USB_COMBO = 4,	/*  USB Combo-Slim module */
};

/*  Test chip and normal chip common define */
/*  */
/*  EEPROM address for both */
/*  */
#define EEPROM_ID0			0x00
#define EEPROM_ID1			0x01
#define EEPROM_RTK_RSV1			0x02
#define EEPROM_RTK_RSV2			0x03
#define EEPROM_RTK_RSV3			0x04
#define EEPROM_RTK_RSV4			0x05
#define EEPROM_RTK_RSV5			0x06
#define EEPROM_DBG_SEL			0x07
#define EEPROM_RTK_RSV6			0x08
#define EEPROM_VID			0x0A
#define EEPROM_PID			0x0C

#define EEPROM_MAC_ADDR			0x16
#define EEPROM_STRING			0x1C
#define EEPROM_SUBCUSTOMER_ID		0x59
#define EEPROM_CCK_TX_PWR_INX		0x5A
#define EEPROM_HT40_1S_TX_PWR_INX	0x60
#define EEPROM_HT40_2S_TX_PWR_INX_DIFF	0x66
#define EEPROM_HT20_TX_PWR_INX_DIFF	0x69
#define EEPROM_OFDM_TX_PWR_INX_DIFF	0x6C
#define EEPROM_HT40_MAX_PWR_OFFSET	0x6F
#define EEPROM_HT20_MAX_PWR_OFFSET	0x72

#define EEPROM_CHANNEL_PLAN		0x75
#define EEPROM_TSSI_A			0x76
#define EEPROM_TSSI_B			0x77
#define EEPROM_THERMAL_METER		0x78
#define EEPROM_RF_OPT1			0x79
#define EEPROM_RF_OPT2			0x7A
#define EEPROM_RF_OPT3			0x7B
#define EEPROM_RF_OPT4			0x7C
#define EEPROM_VERSION			0x7E
#define EEPROM_CUSTOMER_ID		0x7F

	 /* 0x0: RTL8188SU, 0x1: RTL8191SU, 0x2: RTL8192SU, 0x3: RTL8191GU */
#define EEPROM_BoardType		0x54
	/* 0x5C-0x76, Tx Power index. */
#define EEPROM_TxPwIndex		0x5C
	/*  Difference of gain index between legacy and high throughput OFDM. */
#define EEPROM_PwDiff			0x67
	/*  CCK Tx Power */
#define EEPROM_TxPowerCCK		0x5A

/*  2009/02/09 Cosa Add for SD3 requirement */
	/*  HT20 Tx Power Index Difference */
#define EEPROM_TX_PWR_HT20_DIFF		0x6e
	/*  HT20<->40 default Tx Power Index Difference */
#define DEFAULT_HT20_TXPWR_DIFF		2
	/*  OFDM Tx Power Index Difference */
#define EEPROM_TX_PWR_OFDM_DIFF		0x71

	/*  Power diff for channel group */
#define EEPROM_TxPWRGroup		0x73
	/*  Check if power safety is need */
#define EEPROM_Regulatory		0x79

	/*  92cu, 0x7E[4] */
#define EEPROM_BLUETOOTH_COEXIST	0x7E
#define EEPROM_NORMAL_BoardType		EEPROM_RF_OPT1	/* 7:5] */
#define BOARD_TYPE_NORMAL_MASK		0xE0
#define BOARD_TYPE_TEST_MASK		0x0F
	/* BIT0 1 for build-in module, 0 for external dongle */
#define EEPROM_EASY_REPLACEMENT		0x50
/*  */
/* EPROM content definitions */
/*  */
#define OS_LINK_SPEED			BIT(5)

#define BOARD_TYPE_MASK			0xF

#define BT_COEXISTENCE			BIT(4)
#define BT_CO_SHIFT			4

#define EP_NUMBER_MASK			0x30	/* bit 4:5 0Eh */
#define EP_NUMBER_SHIFT			4


#define USB_PHY_PARA_SIZE		5


/*  */
/*	EEPROM default value definitions */
/*  */
/*  Use 0xABCD instead of 0x8192 for debug */
#define EEPROM_DEF_ID_0			0xCD	/*  Byte 0x00 */
#define EEPROM_DEF_ID_1			0xAB	/*  Byte 0x01 */

#define EEPROM_DEF_RTK_RSV_A3		0x74	/*  Byte 0x03 */
#define EEPROM_DEF_RTK_RSV_A4		0x6D	/*  Byte 0x04 */
#define EEPROM_DEF_RTK_RSV_A8		0xFF	/*  Byte 0x08 */

#define EEPROM_DEF_VID_0		0x0A	/*  Byte 0x0A */
#define EEPROM_DEF_VID_1		0x0B

#define EEPROM_DEF_PID_0		0x92	/*  Byte 0x0C */
#define EEPROM_DEF_PID_1		0x81


#define EEPROM_TEST_DEF_USB_OPT		0x80	/*  Byte 0x0E */
#define EEPROM_NORMAL_DEF_USB_OPT	0x00	/*  Byte 0x0E */

#define EEPROM_DEF_CHIRPK		0x15	/*  Byte 0x0F */

#define EEPROM_DEF_USB_PHY_0		0x85	/*  Byte 0x10 */
#define EEPROM_DEF_USB_PHY_1		0x62	/*  Byte 0x11 */
#define EEPROM_DEF_USB_PHY_2		0x9E	/*  Byte 0x12 */
#define EEPROM_DEF_USB_PHY_3		0x06	/*  Byte 0x13 */

#define EEPROM_DEF_TSSI_A		0x09	/*  Byte 0x78 */
#define EEPROM_DEF_TSSI_B		0x09	/*  Byte 0x79 */


#define EEPROM_DEF_THERMAL_METER	0x12	/*  Byte 0x7A */

	/*  Check if power safety spec is need */
#define RF_OPTION1			0x79
#define RF_OPTION2			0x7A
#define RF_OPTION3			0x7B
#define RF_OPTION4			0x7C


#define	EEPROM_USB_SN			BIT(0)
#define	EEPROM_USB_REMOTE_WAKEUP	BIT(1)
#define	EEPROM_USB_DEVICE_PWR		BIT(2)
#define	EEPROM_EP_NUMBER		(BIT(3)|BIT(4))

/*===================================================================
=====================================================================
Here the register defines are for 92C. When the define is as same with 92C,
we will use the 92C's define for the consistency
So the following defines for 92C is not entire!!!!!!
=====================================================================
=====================================================================*/
/*
Based on Datasheet V33---090401
Register Summary
Current IOREG MAP
0x0000h ~ 0x00FFh   System Configuration (256 Bytes)
0x0100h ~ 0x01FFh   MACTOP General Configuration (256 Bytes)
0x0200h ~ 0x027Fh   TXDMA Configuration (128 Bytes)
0x0280h ~ 0x02FFh   RXDMA Configuration (128 Bytes)
0x0300h ~ 0x03FFh   PCIE EMAC Reserved Region (256 Bytes)
0x0400h ~ 0x04FFh   Protocol Configuration (256 Bytes)
0x0500h ~ 0x05FFh   EDCA Configuration (256 Bytes)
0x0600h ~ 0x07FFh   WMAC Configuration (512 Bytes)
0x2000h ~ 0x3FFFh   8051 FW Download Region (8196 Bytes)
*/

/*  */
/* 8192C (RCR) Receive Configuration Register	(Offset 0x608, 32 bits) */
/*  */
#define	RCR_APPFCS			BIT(31) /* WMAC append FCS after payload*/
#define	RCR_APP_MIC			BIT(30)
#define	RCR_APP_PHYSTS			BIT(28)
#define	RCR_APP_ICV			BIT(29)
#define	RCR_APP_PHYST_RXFF		BIT(28)
#define	RCR_APP_BA_SSN			BIT(27) /* Accept BA SSN */
#define	RCR_ENMBID			BIT(24) /* Enable Multiple BssId. */
#define	RCR_LSIGEN			BIT(23)
#define	RCR_MFBEN			BIT(22)
#define	RCR_HTC_LOC_CTRL		BIT(14) /* MFC<--HTC=1 MFC-->HTC=0 */
#define	RCR_AMF				BIT(13) /* Accept management type frame */
#define	RCR_ACF				BIT(12) /* Accept control type frame */
#define	RCR_ADF				BIT(11) /* Accept data type frame */
#define	RCR_AICV			BIT(9)  /* Accept ICV error packet */
#define	RCR_ACRC32			BIT(8)  /* Accept CRC32 error packet */
#define	RCR_CBSSID_BCN			BIT(7)  /* Accept BSSID match packet
						 (Rx beacon, probe rsp) */
#define	RCR_CBSSID_DATA			BIT(6)  /* Accept BSSID match packet
						 (Data) */
#define	RCR_CBSSID			RCR_CBSSID_DATA	/* Accept BSSID match
							   packet */
#define	RCR_APWRMGT			BIT(5)  /* Accept power management
						 packet */
#define	RCR_ADD3			BIT(4)  /* Accept address 3 match
						 packet */
#define	RCR_AB				BIT(3)  /* Accept broadcast packet */
#define	RCR_AM				BIT(2)  /* Accept multicast packet */
#define	RCR_APM				BIT(1)  /* Accept physical match packet */
#define	RCR_AAP				BIT(0)  /* Accept all unicast packet */
#define	RCR_MXDMA_OFFSET		8
#define	RCR_FIFO_OFFSET			13



/*  */
/* 8192c USB specific Regsiter Offset and Content definition, */
/* 2009.08.18, added by vivi. for merge 92c and 92C into one driver */
/*  */
/* define APS_FSMCO			0x0004  same with 92Ce */
#define RSV_CTRL			0x001C
#define RD_CTRL				0x0524

/*  */
/*  */
/*	0xFE00h ~ 0xFE55h	USB Configuration */
/*  */
/*  */
#define REG_USB_INFO			0xFE17
#define REG_USB_SPECIAL_OPTION		0xFE55
#define REG_USB_DMA_AGG_TO		0xFE5B
#define REG_USB_AGG_TO			0xFE5C
#define REG_USB_AGG_TH			0xFE5D

#define REG_USB_VID			0xFE60
#define REG_USB_PID			0xFE62
#define REG_USB_OPTIONAL		0xFE64
#define REG_USB_CHIRP_K			0xFE65
#define REG_USB_PHY			0xFE66
#define REG_USB_MAC_ADDR		0xFE70

#define REG_USB_HRPWM			0xFE58
#define REG_USB_HCPWM			0xFE57

#define	InvalidBBRFValue		0x12345678

/*  */
/*        8192C Regsiter Bit and Content definition */
/*  */
/*  */
/*  */
/*	0x0000h ~ 0x00FFh	System Configuration */
/*  */
/*  */

/* 2 SPS0_CTRL */
#define SW18_FPWM			BIT(3)


/* 2 SYS_ISO_CTRL */
#define ISO_MD2PP			BIT(0)
#define ISO_UA2USB			BIT(1)
#define ISO_UD2CORE			BIT(2)
#define ISO_PA2PCIE			BIT(3)
#define ISO_PD2CORE			BIT(4)
#define ISO_IP2MAC			BIT(5)
#define ISO_DIOP			BIT(6)
#define ISO_DIOE			BIT(7)
#define ISO_EB2CORE			BIT(8)
#define ISO_DIOR			BIT(9)

#define PWC_EV25V			BIT(14)
#define PWC_EV12V			BIT(15)


/* 2 SYS_FUNC_EN */
#define FEN_BBRSTB			BIT(0)
#define FEN_BB_GLB_RSTn			BIT(1)
#define FEN_USBA			BIT(2)
#define FEN_UPLL			BIT(3)
#define FEN_USBD			BIT(4)
#define FEN_DIO_PCIE			BIT(5)
#define FEN_PCIEA			BIT(6)
#define FEN_PPLL			BIT(7)
#define FEN_PCIED			BIT(8)
#define FEN_DIOE			BIT(9)
#define FEN_CPUEN			BIT(10)
#define FEN_DCORE			BIT(11)
#define FEN_ELDR			BIT(12)
#define FEN_DIO_RF			BIT(13)
#define FEN_HWPDN			BIT(14)
#define FEN_MREGEN			BIT(15)

/* 2 APS_FSMCO */
#define PFM_LDALL			BIT(0)
#define PFM_ALDN			BIT(1)
#define PFM_LDKP			BIT(2)
#define PFM_WOWL			BIT(3)
#define EnPDN				BIT(4)
#define PDN_PL				BIT(5)
#define APFM_ONMAC			BIT(8)
#define APFM_OFF			BIT(9)
#define APFM_RSM			BIT(10)
#define AFSM_HSUS			BIT(11)
#define AFSM_PCIE			BIT(12)
#define APDM_MAC			BIT(13)
#define APDM_HOST			BIT(14)
#define APDM_HPDN			BIT(15)
#define RDY_MACON			BIT(16)
#define SUS_HOST			BIT(17)
#define ROP_ALD				BIT(20)
#define ROP_PWR				BIT(21)
#define ROP_SPS				BIT(22)
#define SOP_MRST			BIT(25)
#define SOP_FUSE			BIT(26)
#define SOP_ABG				BIT(27)
#define SOP_AMB				BIT(28)
#define SOP_RCK				BIT(29)
#define SOP_A8M				BIT(30)
#define XOP_BTCK			BIT(31)

/* 2 SYS_CLKR */
#define ANAD16V_EN			BIT(0)
#define ANA8M				BIT(1)
#define MACSLP				BIT(4)
#define LOADER_CLK_EN			BIT(5)
#define _80M_SSC_DIS			BIT(7)
#define _80M_SSC_EN_HO			BIT(8)
#define PHY_SSC_RSTB			BIT(9)
#define SEC_CLK_EN			BIT(10)
#define MAC_CLK_EN			BIT(11)
#define SYS_CLK_EN			BIT(12)
#define RING_CLK_EN			BIT(13)


/* 2 9346CR */


#define		EEDO			BIT(0)
#define		EEDI			BIT(1)
#define		EESK			BIT(2)
#define		EECS			BIT(3)
/* define	EERPROMSEL		BIT(4) */
/* define	EEPROM_EN		BIT(5) */
#define		BOOT_FROM_EEPROM	BIT(4)
#define		EEPROM_EN		BIT(5)
#define		EEM0			BIT(6)
#define		EEM1			BIT(7)


/* 2 AFE_MISC */
#define AFE_BGEN			BIT(0)
#define AFE_MBEN			BIT(1)
#define MAC_ID_EN			BIT(7)


/* 2 SPS0_CTRL */


/* 2 SPS_OCP_CFG */


/* 2 RSV_CTRL */
#define WLOCK_ALL			BIT(0)
#define WLOCK_00			BIT(1)
#define WLOCK_04			BIT(2)
#define WLOCK_08			BIT(3)
#define WLOCK_40			BIT(4)
#define R_DIS_PRST_0			BIT(5)
#define R_DIS_PRST_1			BIT(6)
#define LOCK_ALL_EN			BIT(7)

/* 2 RF_CTRL */
#define RF_EN				BIT(0)
#define RF_RSTB				BIT(1)
#define RF_SDMRSTB			BIT(2)



/* 2 LDOA15_CTRL */
#define LDA15_EN			BIT(0)
#define LDA15_STBY			BIT(1)
#define LDA15_OBUF			BIT(2)
#define LDA15_REG_VOS			BIT(3)
#define _LDA15_VOADJ(x)			(((x) & 0x7) << 4)



/* 2 LDOV12D_CTRL */
#define LDV12_EN			BIT(0)
#define LDV12_SDBY			BIT(1)
#define LPLDO_HSM			BIT(2)
#define LPLDO_LSM_DIS			BIT(3)
#define _LDV12_VADJ(x)			(((x) & 0xF) << 4)


/* 2 AFE_XTAL_CTRL */
#define XTAL_EN				BIT(0)
#define XTAL_BSEL			BIT(1)
#define _XTAL_BOSC(x)			(((x) & 0x3) << 2)
#define _XTAL_CADJ(x)			(((x) & 0xF) << 4)
#define XTAL_GATE_USB			BIT(8)
#define _XTAL_USB_DRV(x)		(((x) & 0x3) << 9)
#define XTAL_GATE_AFE			BIT(11)
#define _XTAL_AFE_DRV(x)		(((x) & 0x3) << 12)
#define XTAL_RF_GATE			BIT(14)
#define _XTAL_RF_DRV(x)			(((x) & 0x3) << 15)
#define XTAL_GATE_DIG			BIT(17)
#define _XTAL_DIG_DRV(x)		(((x) & 0x3) << 18)
#define XTAL_BT_GATE			BIT(20)
#define _XTAL_BT_DRV(x)			(((x) & 0x3) << 21)
#define _XTAL_GPIO(x)			(((x) & 0x7) << 23)


#define CKDLY_AFE			BIT(26)
#define CKDLY_USB			BIT(27)
#define CKDLY_DIG			BIT(28)
#define CKDLY_BT			BIT(29)


/* 2 AFE_PLL_CTRL */
#define APLL_EN				BIT(0)
#define APLL_320_EN			BIT(1)
#define APLL_FREF_SEL			BIT(2)
#define APLL_EDGE_SEL			BIT(3)
#define APLL_WDOGB			BIT(4)
#define APLL_LPFEN			BIT(5)

#define APLL_REF_CLK_13MHZ		0x1
#define APLL_REF_CLK_19_2MHZ		0x2
#define APLL_REF_CLK_20MHZ		0x3
#define APLL_REF_CLK_25MHZ		0x4
#define APLL_REF_CLK_26MHZ		0x5
#define APLL_REF_CLK_38_4MHZ		0x6
#define APLL_REF_CLK_40MHZ		0x7

#define APLL_320EN			BIT(14)
#define APLL_80EN			BIT(15)
#define APLL_1MEN			BIT(24)


/* 2 EFUSE_CTRL */
#define ALD_EN				BIT(18)
#define EF_PD				BIT(19)
#define EF_FLAG				BIT(31)

/* 2 EFUSE_TEST (For RTL8723 partially) */
#define EF_TRPT				BIT(7)
	/*  00: Wifi Efuse, 01: BT Efuse0, 10: BT Efuse1, 11: BT Efuse2 */
#define EF_CELL_SEL			(BIT(8)|BIT(9))
#define LDOE25_EN			BIT(31)
#define EFUSE_SEL(x)			(((x) & 0x3) << 8)
#define EFUSE_SEL_MASK			0x300
#define EFUSE_WIFI_SEL_0		0x0
#define EFUSE_BT_SEL_0			0x1
#define EFUSE_BT_SEL_1			0x2
#define EFUSE_BT_SEL_2			0x3

#define EFUSE_ACCESS_ON			0x69	/*  For RTL8723 only. */
#define EFUSE_ACCESS_OFF		0x00	/*  For RTL8723 only. */

/* 2 PWR_DATA */

/* 2 CAL_TIMER */

/* 2 ACLK_MON */
#define RSM_EN				BIT(0)
#define Timer_EN			BIT(4)


/* 2 GPIO_MUXCFG */
#define TRSW0EN				BIT(2)
#define TRSW1EN				BIT(3)
#define EROM_EN				BIT(4)
#define EnBT				BIT(5)
#define EnUart				BIT(8)
#define Uart_910			BIT(9)
#define EnPMAC				BIT(10)
#define SIC_SWRST			BIT(11)
#define EnSIC				BIT(12)
#define SIC_23				BIT(13)
#define EnHDP				BIT(14)
#define SIC_LBK				BIT(15)

/* 2 GPIO_PIN_CTRL */

/*  GPIO BIT */
#define HAL_8192C_HW_GPIO_WPS_BIT	BIT(2)

/* 2 GPIO_INTM */

/* 2 LEDCFG */
#define LED0PL				BIT(4)
#define LED0DIS				BIT(7)
#define LED1DIS				BIT(15)
#define LED1PL				BIT(12)

#define  SECCAM_CLR			BIT(30)


/* 2 FSIMR */

/* 2 FSISR */


/* 2 8051FWDL */
/* 2 MCUFWDL */
#define MCUFWDL_EN			BIT(0)
#define MCUFWDL_RDY			BIT(1)
#define FWDL_ChkSum_rpt			BIT(2)
#define MACINI_RDY			BIT(3)
#define BBINI_RDY			BIT(4)
#define RFINI_RDY			BIT(5)
#define WINTINI_RDY			BIT(6)
#define CPRST				BIT(23)

/* 2REG_HPON_FSM */
#define BOND92CE_1T2R_CFG		BIT(22)


/* 2 REG_SYS_CFG */
#define XCLK_VLD			BIT(0)
#define ACLK_VLD			BIT(1)
#define UCLK_VLD			BIT(2)
#define PCLK_VLD			BIT(3)
#define PCIRSTB				BIT(4)
#define V15_VLD				BIT(5)
#define TRP_B15V_EN			BIT(7)
#define SIC_IDLE			BIT(8)
#define BD_MAC2				BIT(9)
#define BD_MAC1				BIT(10)
#define IC_MACPHY_MODE			BIT(11)
#define CHIP_VER			(BIT(12)|BIT(13)|BIT(14)|BIT(15))
#define BT_FUNC				BIT(16)
#define VENDOR_ID			BIT(19)
#define PAD_HWPD_IDN			BIT(22)
#define TRP_VAUX_EN			BIT(23)
#define TRP_BT_EN			BIT(24)
#define BD_PKG_SEL			BIT(25)
#define BD_HCI_SEL			BIT(26)
#define TYPE_ID				BIT(27)

#define CHIP_VER_RTL_MASK		0xF000	/* Bit 12 ~ 15 */
#define CHIP_VER_RTL_SHIFT		12

/* 2REG_GPIO_OUTSTS (For RTL8723 only) */
#define	EFS_HCI_SEL			(BIT(0)|BIT(1))
#define	PAD_HCI_SEL			(BIT(2)|BIT(3))
#define	HCI_SEL				(BIT(4)|BIT(5))
#define	PKG_SEL_HCI			BIT(6)
#define	FEN_GPS				BIT(7)
#define	FEN_BT				BIT(8)
#define	FEN_WL				BIT(9)
#define	FEN_PCI				BIT(10)
#define	FEN_USB				BIT(11)
#define	BTRF_HWPDN_N			BIT(12)
#define	WLRF_HWPDN_N			BIT(13)
#define	PDN_BT_N			BIT(14)
#define	PDN_GPS_N			BIT(15)
#define	BT_CTL_HWPDN			BIT(16)
#define	GPS_CTL_HWPDN			BIT(17)
#define	PPHY_SUSB			BIT(20)
#define	UPHY_SUSB			BIT(21)
#define	PCI_SUSEN			BIT(22)
#define	USB_SUSEN			BIT(23)
#define	RF_RL_ID			(BIT(31)|BIT(30)|BIT(29)|BIT(28))

/*  */
/*  */
/*	0x0100h ~ 0x01FFh	MACTOP General Configuration */
/*  */
/*  */


/* 2 Function Enable Registers */
/* 2 CR */

#define REG_LBMODE			(REG_CR + 3)


#define HCI_TXDMA_EN			BIT(0)
#define HCI_RXDMA_EN			BIT(1)
#define TXDMA_EN			BIT(2)
#define RXDMA_EN			BIT(3)
#define PROTOCOL_EN			BIT(4)
#define SCHEDULE_EN			BIT(5)
#define MACTXEN				BIT(6)
#define MACRXEN				BIT(7)
#define ENSWBCN				BIT(8)
#define ENSEC				BIT(9)

/*  Network type */
#define _NETTYPE(x)			(((x) & 0x3) << 16)
#define MASK_NETTYPE			0x30000
#define NT_NO_LINK			0x0
#define NT_LINK_AD_HOC			0x1
#define NT_LINK_AP			0x2
#define NT_AS_AP			0x3

#define _LBMODE(x)			(((x) & 0xF) << 24)
#define MASK_LBMODE			0xF000000
#define LOOPBACK_NORMAL			0x0
#define LOOPBACK_IMMEDIATELY		0xB
#define LOOPBACK_MAC_DELAY		0x3
#define LOOPBACK_PHY			0x1
#define LOOPBACK_DMA			0x7


/* 2 PBP - Page Size Register */
#define GET_RX_PAGE_SIZE(value)		((value) & 0xF)
#define GET_TX_PAGE_SIZE(value)		(((value) & 0xF0) >> 4)
#define _PSRX_MASK			0xF
#define _PSTX_MASK			0xF0
#define _PSRX(x)			(x)
#define _PSTX(x)			((x) << 4)

#define PBP_64				0x0
#define PBP_128				0x1
#define PBP_256				0x2
#define PBP_512				0x3
#define PBP_1024			0x4


/* 2 TX/RXDMA */
#define RXDMA_ARBBW_EN			BIT(0)
#define RXSHFT_EN			BIT(1)
#define RXDMA_AGG_EN			BIT(2)
#define QS_VO_QUEUE			BIT(8)
#define QS_VI_QUEUE			BIT(9)
#define QS_BE_QUEUE			BIT(10)
#define QS_BK_QUEUE			BIT(11)
#define QS_MANAGER_QUEUE		BIT(12)
#define QS_HIGH_QUEUE			BIT(13)

#define HQSEL_VOQ			BIT(0)
#define HQSEL_VIQ			BIT(1)
#define HQSEL_BEQ			BIT(2)
#define HQSEL_BKQ			BIT(3)
#define HQSEL_MGTQ			BIT(4)
#define HQSEL_HIQ			BIT(5)

/*  For normal driver, 0x10C */
#define _TXDMA_HIQ_MAP(x)		(((x)&0x3) << 14)
#define _TXDMA_MGQ_MAP(x)		(((x)&0x3) << 12)
#define _TXDMA_BKQ_MAP(x)		(((x)&0x3) << 10)
#define _TXDMA_BEQ_MAP(x)		(((x)&0x3) << 8 )
#define _TXDMA_VIQ_MAP(x)		(((x)&0x3) << 6 )
#define _TXDMA_VOQ_MAP(x)		(((x)&0x3) << 4 )

#define QUEUE_LOW			1
#define QUEUE_NORMAL			2
#define QUEUE_HIGH			3



/* 2 TRXFF_BNDY */


/* 2 LLT_INIT */
#define _LLT_NO_ACTIVE			0x0
#define _LLT_WRITE_ACCESS		0x1
#define _LLT_READ_ACCESS		0x2

#define _LLT_INIT_DATA(x)		((x) & 0xFF)
#define _LLT_INIT_ADDR(x)		(((x) & 0xFF) << 8)
#define _LLT_OP(x)			(((x) & 0x3) << 30)
#define _LLT_OP_VALUE(x)		(((x) >> 30) & 0x3)


/* 2 BB_ACCESS_CTRL */
#define BB_WRITE_READ_MASK		(BIT(31) | BIT(30))
#define BB_WRITE_EN			BIT(30)
#define BB_READ_EN			BIT(31)
/* define BB_ADDR_MASK			0xFFF */
/* define _BB_ADDR(x)			((x) & BB_ADDR_MASK) */

/*  */
/*  */
/*	0x0200h ~ 0x027Fh	TXDMA Configuration */
/*  */
/*  */
/* 2 RQPN */
#define _HPQ(x)				((x) & 0xFF)
#define _LPQ(x)				(((x) & 0xFF) << 8)
#define _PUBQ(x)			(((x) & 0xFF) << 16)
	/*  NOTE: in RQPN_NPQ register */
#define _NPQ(x)				((x) & 0xFF)


#define HPQ_PUBLIC_DIS			BIT(24)
#define LPQ_PUBLIC_DIS			BIT(25)
#define LD_RQPN				BIT(31)


/* 2 TDECTRL */
#define BCN_VALID			BIT(16)
#define BCN_HEAD(x)			(((x) & 0xFF) << 8)
#define	BCN_HEAD_MASK			0xFF00

/* 2 TDECTL */
#define BLK_DESC_NUM_SHIFT		4
#define BLK_DESC_NUM_MASK		0xF


/* 2 TXDMA_OFFSET_CHK */
#define DROP_DATA_EN			BIT(9)

/*  */
/*  */
/*	0x0400h ~ 0x047Fh	Protocol Configuration */
/*  */
/*  */
/* 2 FWHW_TXQ_CTRL */
#define EN_AMPDU_RTY_NEW		BIT(7)

/* 2 INIRTSMCS_SEL */
#define _INIRTSMCS_SEL(x)		((x) & 0x3F)


/* 2 SPEC SIFS */
#define _SPEC_SIFS_CCK(x)		((x) & 0xFF)
#define _SPEC_SIFS_OFDM(x)		(((x) & 0xFF) << 8)


/* 2 RRSR */

#define RATE_REG_BITMAP_ALL		0xFFFFF

#define _RRSC_BITMAP(x)			((x) & 0xFFFFF)

#define _RRSR_RSC(x)			(((x) & 0x3) << 21)
#define RRSR_RSC_RESERVED		0x0
#define RRSR_RSC_UPPER_SUBCHANNEL	0x1
#define RRSR_RSC_LOWER_SUBCHANNEL	0x2
#define RRSR_RSC_DUPLICATE_MODE		0x3


/* 2 ARFR */
#define USE_SHORT_G1			BIT(20)

/* 2 AGGLEN_LMT_L */
#define _AGGLMT_MCS0(x)			((x) & 0xF)
#define _AGGLMT_MCS1(x)			(((x) & 0xF) << 4)
#define _AGGLMT_MCS2(x)			(((x) & 0xF) << 8)
#define _AGGLMT_MCS3(x)			(((x) & 0xF) << 12)
#define _AGGLMT_MCS4(x)			(((x) & 0xF) << 16)
#define _AGGLMT_MCS5(x)			(((x) & 0xF) << 20)
#define _AGGLMT_MCS6(x)			(((x) & 0xF) << 24)
#define _AGGLMT_MCS7(x)			(((x) & 0xF) << 28)


/* 2 RL */
#define	RETRY_LIMIT_SHORT_SHIFT		8
#define	RETRY_LIMIT_LONG_SHIFT		0


/* 2 DARFRC */
#define _DARF_RC1(x)			((x) & 0x1F)
#define _DARF_RC2(x)			(((x) & 0x1F) << 8)
#define _DARF_RC3(x)			(((x) & 0x1F) << 16)
#define _DARF_RC4(x)			(((x) & 0x1F) << 24)
/*  NOTE: shift starting from address (DARFRC + 4) */
#define _DARF_RC5(x)			((x) & 0x1F)
#define _DARF_RC6(x)			(((x) & 0x1F) << 8)
#define _DARF_RC7(x)			(((x) & 0x1F) << 16)
#define _DARF_RC8(x)			(((x) & 0x1F) << 24)


/* 2 RARFRC */
#define _RARF_RC1(x)			((x) & 0x1F)
#define _RARF_RC2(x)			(((x) & 0x1F) << 8)
#define _RARF_RC3(x)			(((x) & 0x1F) << 16)
#define _RARF_RC4(x)			(((x) & 0x1F) << 24)
/*  NOTE: shift starting from address (RARFRC + 4) */
#define _RARF_RC5(x)			((x) & 0x1F)
#define _RARF_RC6(x)			(((x) & 0x1F) << 8)
#define _RARF_RC7(x)			(((x) & 0x1F) << 16)
#define _RARF_RC8(x)			(((x) & 0x1F) << 24)


/*  */
/*  */
/*	0x0500h ~ 0x05FFh	EDCA Configuration */
/*  */
/*  */



/* 2 EDCA setting */
#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


/* 2 EDCA_VO_PARAM */
#define _AIFS(x)			(x)
#define _ECW_MAX_MIN(x)			((x) << 8)
#define _TXOP_LIMIT(x)			((x) << 16)


#define _BCNIFS(x)			((x) & 0xFF)
#define _BCNECW(x)			(((x) & 0xF))<< 8)


#define _LRL(x)				((x) & 0x3F)
#define _SRL(x)				(((x) & 0x3F) << 8)


/* 2 SIFS_CCK */
#define _SIFS_CCK_CTX(x)		((x) & 0xFF)
#define _SIFS_CCK_TRX(x)		(((x) & 0xFF) << 8);


/* 2 SIFS_OFDM */
#define _SIFS_OFDM_CTX(x)		((x) & 0xFF)
#define _SIFS_OFDM_TRX(x)		(((x) & 0xFF) << 8);


/* 2 TBTT PROHIBIT */
#define _TBTT_PROHIBIT_HOLD(x)		(((x) & 0xFF) << 8)


/* 2 REG_RD_CTRL */
#define DIS_EDCA_CNT_DWN		BIT(11)


/* 2 BCN_CTRL */
#define EN_MBSSID			BIT(1)
#define EN_TXBCN_RPT			BIT(2)
#define	EN_BCN_FUNCTION			BIT(3)
#define DIS_TSF_UPDATE			BIT(3)

/*  The same function but different bit field. */
#define	DIS_TSF_UDT0_NORMAL_CHIP	BIT(4)
#define	DIS_TSF_UDT0_TEST_CHIP		BIT(5)

/* 2 ACMHWCTRL */
#define	AcmHw_HwEn			BIT(0)
#define	AcmHw_BeqEn			BIT(1)
#define	AcmHw_ViqEn			BIT(2)
#define	AcmHw_VoqEn			BIT(3)
#define	AcmHw_BeqStatus			BIT(4)
#define	AcmHw_ViqStatus			BIT(5)
#define	AcmHw_VoqStatus			BIT(6)



/*  */
/*  */
/*	0x0600h ~ 0x07FFh	WMAC Configuration */
/*  */
/*  */

/* 2 APSD_CTRL */
#define APSDOFF				BIT(6)
#define APSDOFF_STATUS			BIT(7)


/* 2 BWOPMODE */
#define BW_20MHZ			BIT(2)


#define RATE_BITMAP_ALL			0xFFFFF

/*  Only use CCK 1M rate for ACK */
#define RATE_RRSR_CCK_ONLY_1M		0xFFFF1

/* 2 TCR */
#define TSFRST				BIT(0)
#define DIS_GCLK			BIT(1)
#define PAD_SEL				BIT(2)
#define PWR_ST				BIT(6)
#define PWRBIT_OW_EN			BIT(7)
#define ACRC				BIT(8)
#define CFENDFORM			BIT(9)
#define ICV				BIT(10)



/* 2 RCR */
#define AAP				BIT(0)
#define APM				BIT(1)
#define AM				BIT(2)
#define AB				BIT(3)
#define ADD3				BIT(4)
#define APWRMGT				BIT(5)
#define CBSSID				BIT(6)
#define CBSSID_BCN			BIT(7)
#define ACRC32				BIT(8)
#define AICV				BIT(9)
#define ADF				BIT(11)
#define ACF				BIT(12)
#define AMF				BIT(13)
#define HTC_LOC_CTRL			BIT(14)
#define UC_DATA_EN			BIT(16)
#define BM_DATA_EN			BIT(17)
#define MFBEN				BIT(22)
#define LSIGEN				BIT(23)
#define EnMBID				BIT(24)
#define APP_BASSN			BIT(27)
#define APP_PHYSTS			BIT(28)
#define APP_ICV				BIT(29)
#define APP_MIC				BIT(30)
#define APP_FCS				BIT(31)

/* 2 RX_PKT_LIMIT */

/* 2 RX_DLK_TIME */

/* 2 MBIDCAMCFG */



/* 2 AMPDU_MIN_SPACE */
#define _MIN_SPACE(x)			((x) & 0x7)
#define _SHORT_GI_PADDING(x)		(((x) & 0x1F) << 3)


/* 2 RXERR_RPT */
#define RXERR_TYPE_OFDM_PPDU		0
#define RXERR_TYPE_OFDMfalse_ALARM	1
#define	RXERR_TYPE_OFDM_MPDU_OK		2
#define RXERR_TYPE_OFDM_MPDU_FAIL	3
#define RXERR_TYPE_CCK_PPDU		4
#define RXERR_TYPE_CCKfalse_ALARM	5
#define RXERR_TYPE_CCK_MPDU_OK		6
#define RXERR_TYPE_CCK_MPDU_FAIL	7
#define RXERR_TYPE_HT_PPDU		8
#define RXERR_TYPE_HTfalse_ALARM	9
#define RXERR_TYPE_HT_MPDU_TOTAL	10
#define RXERR_TYPE_HT_MPDU_OK		11
#define RXERR_TYPE_HT_MPDU_FAIL		12
#define RXERR_TYPE_RX_FULL_DROP		15

#define RXERR_COUNTER_MASK		0xFFFFF
#define RXERR_RPT_RST			BIT(27)
#define _RXERR_RPT_SEL(type)		((type) << 28)


/* 2 SECCFG */
#define	SCR_TxUseDK			BIT(0)	/* Force Tx Use Default Key */
#define	SCR_RxUseDK			BIT(1)	/* Force Rx Use Default Key */
#define	SCR_TxEncEnable			BIT(2)	/* Enable Tx Encryption */
#define	SCR_RxDecEnable			BIT(3)	/* Enable Rx Decryption */
#define	SCR_SKByA2			BIT(4)	/* Search kEY BY A2 */
#define	SCR_NoSKMC			BIT(5)	/* No Key Search Multicast */



/*  */
/*  */
/*	0xFE00h ~ 0xFE55h	USB Configuration */
/*  */
/*  */

/* 2 USB Information (0xFE17) */
#define USB_IS_HIGH_SPEED		0
#define USB_IS_FULL_SPEED		1
#define USB_SPEED_MASK			BIT(5)

#define USB_NORMAL_SIE_EP_MASK		0xF
#define USB_NORMAL_SIE_EP_SHIFT		4

#define USB_TEST_EP_MASK		0x30
#define USB_TEST_EP_SHIFT		4

/* 2 Special Option */
#define USB_AGG_EN			BIT(3)


/* 2REG_C2HEVT_CLEAR */
	/*  Set by driver and notify FW that the driver has read the
	    C2H command message */
#define C2H_EVT_HOST_CLOSE		0x00
	/*  Set by FW indicating that FW had set the C2H command message
	    and it's not yet read by driver. */
#define C2H_EVT_FW_CLOSE		0xFF


/* 2REG_MULTI_FUNC_CTRL(For RTL8723 Only) */
	/*  Enable GPIO[9] as WiFi HW PDn source */
#define	WL_HWPDN_EN			BIT(0)
	/*  WiFi HW PDn polarity control */
#define	WL_HWPDN_SL			BIT(1)
	/*  WiFi function enable */
#define	WL_FUNC_EN			BIT(2)
	/*  Enable GPIO[9] as WiFi RF HW PDn source */
#define	WL_HWROF_EN			BIT(3)
	/*  Enable GPIO[11] as BT HW PDn source */
#define	BT_HWPDN_EN			BIT(16)
	/*  BT HW PDn polarity control */
#define	BT_HWPDN_SL			BIT(17)
	/*  BT function enable */
#define	BT_FUNC_EN			BIT(18)
	/*  Enable GPIO[11] as BT/GPS RF HW PDn source */
#define	BT_HWROF_EN			BIT(19)
	/*  Enable GPIO[10] as GPS HW PDn source */
#define	GPS_HWPDN_EN			BIT(20)
	/*  GPS HW PDn polarity control */
#define	GPS_HWPDN_SL			BIT(21)
	/*  GPS function enable */
#define	GPS_FUNC_EN			BIT(22)

/* 3 REG_LIFECTRL_CTRL */
#define	HAL92C_EN_PKT_LIFE_TIME_BK	BIT(3)
#define	HAL92C_EN_PKT_LIFE_TIME_BE	BIT(2)
#define	HAL92C_EN_PKT_LIFE_TIME_VI	BIT(1)
#define	HAL92C_EN_PKT_LIFE_TIME_VO	BIT(0)

#define	HAL92C_MSDU_LIFE_TIME_UNIT	128	/*  in us, said by Tim. */

/*  */
/*  General definitions */
/*  */

#define LAST_ENTRY_OF_TX_PKT_BUFFER	255

#define POLLING_LLT_THRESHOLD		20
#define POLLING_READY_TIMEOUT_COUNT	1000

/*  Min Spacing related settings. */
#define	MAX_MSS_DENSITY_2T		0x13
#define	MAX_MSS_DENSITY_1T		0x0A

/*  */
/*	8723A Regsiter offset definition */
/*  */
#define HAL_8723A_NAV_UPPER_UNIT	128		/*  micro-second */

/*  */
/*  */
/*	0x0000h ~ 0x00FFh	System Configuration */
/*  */
/*  */
#define REG_SYSON_REG_LOCK		0x001C


/*  */
/*  */
/*	0x0100h ~ 0x01FFh	MACTOP General Configuration */
/*  */
/*  */
#define REG_FTIMR			0x0138


/*  */
/*  */
/*	0x0200h ~ 0x027Fh	TXDMA Configuration */
/*  */
/*  */


/*  */
/*  */
/*	0x0280h ~ 0x02FFh	RXDMA Configuration */
/*  */
/*  */


/*  */
/*  */
/*	0x0300h ~ 0x03FFh	PCIe */
/*  */
/*  */


/*  */
/*  */
/*	0x0400h ~ 0x047Fh	Protocol Configuration */
/*  */
/*  */
#define REG_EARLY_MODE_CONTROL		0x4D0


/*  */
/*  */
/*	0x0500h ~ 0x05FFh	EDCA Configuration */
/*  */
/*  */

/* 2 BCN_CTRL */
#define DIS_ATIM			BIT(0)
#define DIS_BCNQ_SUB			BIT(1)
#define DIS_TSF_UDT			BIT(4)


/*  */
/*  */
/*	0x0600h ~ 0x07FFh	WMAC Configuration */
/*  */
/*  */
/*  */
/*  Note: */
/*	The NAV upper value is very important to WiFi 11n 5.2.3 NAV test.
 *	The default value is always too small, but the WiFi TestPlan test
 *	by 25,000 microseconds of NAV through sending CTS in the air. We
 *	must update this value greater than 25,000 microseconds to pass the
 *	item.
*	The offset of NAV_UPPER in 8192C Spec is incorrect, and the offset
*	should be 0x0652. Commented by SD1 Scott. */
/*  By Bruce, 2011-07-18. */
/*  */
#define	REG_NAV_UPPER			0x0652	/*  unit of 128 */


/*  */
/*	8723 Regsiter Bit and Content definition */
/*  */

/*  */
/*  */
/*	0x0000h ~ 0x00FFh	System Configuration */
/*  */
/*  */

/* 2 SPS0_CTRL */

/* 2 SYS_ISO_CTRL */

/* 2 SYS_FUNC_EN */

/* 2 APS_FSMCO */
#define EN_WLON				BIT(16)

/* 2 SYS_CLKR */

/* 2 9346CR */

/* 2 AFE_MISC */

/* 2 SPS0_CTRL */

/* 2 SPS_OCP_CFG */

/* 2 SYSON_REG_LOCK */
#define WLOCK_ALL			BIT(0)
#define WLOCK_00			BIT(1)
#define WLOCK_04			BIT(2)
#define WLOCK_08			BIT(3)
#define WLOCK_40			BIT(4)
#define WLOCK_1C_B6			BIT(5)
#define R_DIS_PRST_1			BIT(6)
#define LOCK_ALL_EN			BIT(7)

/* 2 RF_CTRL */

/* 2 LDOA15_CTRL */

/* 2 LDOV12D_CTRL */

/* 2 AFE_XTAL_CTRL */

/* 2 AFE_PLL_CTRL */

/* 2 EFUSE_CTRL */

/* 2 EFUSE_TEST (For RTL8723 partially) */

/* 2 PWR_DATA */

/* 2 CAL_TIMER */

/* 2 ACLK_MON */

/* 2 GPIO_MUXCFG */

/* 2 GPIO_PIN_CTRL */

/* 2 GPIO_INTM */

/* 2 LEDCFG */

/* 2 FSIMR */

/* 2 FSISR */

/* 2 HSIMR */
/*  8723 Host System Interrupt Mask Register (offset 0x58, 32 byte) */
#define HSIMR_GPIO12_0_INT_EN		BIT(0)
#define HSIMR_SPS_OCP_INT_EN		BIT(5)
#define HSIMR_RON_INT_EN		BIT(6)
#define HSIMR_PDNINT_EN			BIT(7)
#define HSIMR_GPIO9_INT_EN		BIT(25)

/* 2 HSISR */
/*  8723 Host System Interrupt Status Register (offset 0x5C, 32 byte) */
#define HSISR_GPIO12_0_INT		BIT(0)
#define HSISR_SPS_OCP_INT		BIT(5)
#define HSISR_RON_INT			BIT(6)
#define HSISR_PDNINT			BIT(7)
#define	HSISR_GPIO9_INT			BIT(25)

/*  interrupt mask which needs to clear */
#define MASK_HSISR_CLEAR		(HSISR_GPIO12_0_INT | \
					 HSISR_SPS_OCP_INT | \
					 HSISR_RON_INT | \
					 HSISR_PDNINT |	\
					 HSISR_GPIO9_INT)

/* 2 MCUFWDL */
#define RAM_DL_SEL			BIT(7)	/*  1:RAM, 0:ROM */

/* 2 HPON_FSM */

/* 2 SYS_CFG */
#define RTL_ID				BIT(23)	/*  TestChip ID,
						    1:Test(RLE); 0:MP(RL) */
#define SPS_SEL				BIT(24) /*  1:LDO regulator mode;
						    0:Switching regulator mode*/


/*  */
/*  */
/*	0x0100h ~ 0x01FFh	MACTOP General Configuration */
/*  */
/*  */

/* 2 Function Enable Registers */

/* 2 CR */
#define CALTMR_EN			BIT(10)

/* 2 PBP - Page Size Register */

/* 2 TX/RXDMA */

/* 2 TRXFF_BNDY */

/* 2 LLT_INIT */

/* 2 BB_ACCESS_CTRL */


/*  */
/*  */
/*	0x0200h ~ 0x027Fh	TXDMA Configuration */
/*  */
/*  */

/* 2 RQPN */

/* 2 TDECTRL */

/* 2 TDECTL */

/* 2 TXDMA_OFFSET_CHK */


/*  */
/*  */
/*	0x0400h ~ 0x047Fh	Protocol Configuration */
/*  */
/*  */

/* 2 FWHW_TXQ_CTRL */

/* 2 INIRTSMCS_SEL */

/* 2 SPEC SIFS */

/* 2 RRSR */

/* 2 ARFR */

/* 2 AGGLEN_LMT_L */

/* 2 RL */

/* 2 DARFRC */

/* 2 RARFRC */


/*  */
/*  */
/*	0x0500h ~ 0x05FFh	EDCA Configuration */
/*  */
/*  */

/* 2 EDCA setting */

/* 2 EDCA_VO_PARAM */

/* 2 SIFS_CCK */

/* 2 SIFS_OFDM */

/* 2 TBTT PROHIBIT */

/* 2 REG_RD_CTRL */

/* 2 BCN_CTRL */

/* 2 ACMHWCTRL */


/*  */
/*  */
/*	0x0600h ~ 0x07FFh	WMAC Configuration */
/*  */
/*  */

/* 2 APSD_CTRL */

/* 2 BWOPMODE */

/* 2 TCR */

/* 2 RCR */

/* 2 RX_PKT_LIMIT */

/* 2 RX_DLK_TIME */

/* 2 MBIDCAMCFG */

/* 2 AMPDU_MIN_SPACE */

/* 2 RXERR_RPT */

/* 2 SECCFG */


/*  */
/*  */
/*	0xFE00h ~ 0xFE55h	RTL8723 SDIO Configuration */
/*  */
/*  */

/*  I/O bus domain address mapping */
#define WLAN_IOREG_BASE			0x10260000
#define FIRMWARE_FIFO_BASE		0x10270000
#define TX_HIQ_BASE			0x10310000
#define TX_MIQ_BASE			0x10320000
#define TX_LOQ_BASE			0x10330000
#define RX_RX0FF_BASE			0x10340000

/*  SDIO host local register space mapping. */
#define WLAN_IOREG_MSK			0x7FFF
#define WLAN_FIFO_MSK			0x1FFF	/*  Aggregation Length[12:0] */
#define WLAN_RX0FF_MSK			0x0003

#define WLAN_RX0FF_DEVICE_ID		7	/*  0b[16], 111b[15:13] */
#define WLAN_IOREG_DEVICE_ID		8	/*  1b[16] */

/*  8723 EFUSE */
#define HWSET_MAX_SIZE			256


/* USB interrupt */
#define	UHIMR_TIMEOUT2			BIT(31)
#define	UHIMR_TIMEOUT1			BIT(30)
#define	UHIMR_PSTIMEOUT			BIT(29)
#define	UHIMR_GTINT4			BIT(28)
#define	UHIMR_GTINT3			BIT(27)
#define	UHIMR_TXBCNERR			BIT(26)
#define	UHIMR_TXBCNOK			BIT(25)
#define	UHIMR_TSF_BIT32_TOGGLE		BIT(24)
#define	UHIMR_BCNDMAINT3		BIT(23)
#define	UHIMR_BCNDMAINT2		BIT(22)
#define	UHIMR_BCNDMAINT1		BIT(21)
#define	UHIMR_BCNDMAINT0		BIT(20)
#define	UHIMR_BCNDOK3			BIT(19)
#define	UHIMR_BCNDOK2			BIT(18)
#define	UHIMR_BCNDOK1			BIT(17)
#define	UHIMR_BCNDOK0			BIT(16)
#define	UHIMR_HSISR_IND			BIT(15)
#define	UHIMR_BCNDMAINT_E		BIT(14)
/* RSVD	BIT(13) */
#define	UHIMR_CTW_END			BIT(12)
/* RSVD	BIT(11) */
#define	UHIMR_C2HCMD			BIT(10)
#define	UHIMR_CPWM2			BIT(9)
#define	UHIMR_CPWM			BIT(8)
#define	UHIMR_HIGHDOK			BIT(7)	/*  High Queue DMA OK
						    Interrupt */
#define	UHIMR_MGNTDOK			BIT(6)	/*  Management Queue DMA OK
						    Interrupt */
#define	UHIMR_BKDOK			BIT(5)	/*  AC_BK DMA OK Interrupt */
#define	UHIMR_BEDOK			BIT(4)	/*  AC_BE DMA OK Interrupt */
#define	UHIMR_VIDOK			BIT(3)	/*  AC_VI DMA OK Interrupt */
#define	UHIMR_VODOK			BIT(2)	/*  AC_VO DMA Interrupt */
#define	UHIMR_RDU			BIT(1)	/*  Receive Descriptor
						    Unavailable */
#define	UHIMR_ROK			BIT(0)	/*  Receive DMA OK Interrupt */

/*  USB Host Interrupt Status Extension bit */
#define	UHIMR_BCNDMAINT7		BIT(23)
#define	UHIMR_BCNDMAINT6		BIT(22)
#define	UHIMR_BCNDMAINT5		BIT(21)
#define	UHIMR_BCNDMAINT4		BIT(20)
#define	UHIMR_BCNDOK7			BIT(19)
#define	UHIMR_BCNDOK6			BIT(18)
#define	UHIMR_BCNDOK5			BIT(17)
#define	UHIMR_BCNDOK4			BIT(16)
/*  bit14-15: RSVD */
#define	UHIMR_ATIMEND_E			BIT(13)
#define	UHIMR_ATIMEND			BIT(12)
#define	UHIMR_TXERR			BIT(11)
#define	UHIMR_RXERR			BIT(10)
#define	UHIMR_TXFOVW			BIT(9)
#define	UHIMR_RXFOVW			BIT(8)
/*  bit2-7: RSVD */
#define	UHIMR_OCPINT			BIT(1)
/*  bit0: RSVD */

#define	REG_USB_HIMR			0xFE38
#define	REG_USB_HIMRE			0xFE3C
#define	REG_USB_HISR			0xFE78
#define	REG_USB_HISRE			0xFE7C

#define	USB_INTR_CPWM_OFFSET		16
#define	USB_INTR_CONTENT_HISR_OFFSET	48
#define	USB_INTR_CONTENT_HISRE_OFFSET	52
#define	USB_INTR_CONTENT_LENGTH		56
#define	USB_C2H_CMDID_OFFSET		0
#define	USB_C2H_SEQ_OFFSET		1
#define	USB_C2H_EVENT_OFFSET		2
/*  */
/*	General definitions */
/*  */

#endif
