/******************************************************************************
 *
 * Copyright(c) 2016 - 2017 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 __RTL_WLAN_BITDEF_H__
#define __RTL_WLAN_BITDEF_H__

/*-------------------------Modification Log-----------------------------------
	Base on MAC_Register.doc SVN391
-------------------------Modification Log-----------------------------------*/

/*--------------------------Include File--------------------------------------*/
#include "halmac_hw_cfg.h"
/*--------------------------Include File--------------------------------------*/

/* 3 ============Programming guide Start===================== */
/*
	1. For all bit define, it should be prefixed by "BIT_"
	2. For all bit mask, it should be prefixed by "BIT_MASK_"
	3. For all bit shift, it should be prefixed by "BIT_SHIFT_"
	4. For other case, prefix is not needed

Example:
#define BIT_SHIFT_MAX_TXDMA		16
#define BIT_MASK_MAX_TXDMA		0x7
#define BIT_MAX_TXDMA(x)			(((x) & BIT_MASK_MAX_TXDMA)<<BIT_SHIFT_MAX_TXDMA)
#define BITS_MAX_TXDMA					(BIT_MASK_MAX_TXDMA << BIT_SHIFT_MAX_TXDMA)
#define BIT_CLEAR_MAX_TXDMA(x)				((x) & (~BITS_MAX_TXDMA))
#define BIT_GET_MAX_TXDMA(x)				(((x) >> BIT_SHIFT_MAX_TXDMA) & BIT_MASK_MAX_TXDMA)
#define BIT_SET_MAX_TXDMA(x, v)			(BIT_CLEAR_MAX_TXDMA(x) | BIT_MAX_TXDMA(v))


*/
/* 3 ============Programming guide End===================== */

#define CPU_OPT_WIDTH 0x1F




#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_QUEUE_MACID_AC_NOT_THE_SAME		BIT(31)

#define BIT_SHIFT_GTAB_ID				28
#define BIT_MASK_GTAB_ID				0x7
#define BIT_GTAB_ID(x)					(((x) & BIT_MASK_GTAB_ID) << BIT_SHIFT_GTAB_ID)
#define BITS_GTAB_ID					(BIT_MASK_GTAB_ID << BIT_SHIFT_GTAB_ID)
#define BIT_CLEAR_GTAB_ID(x)				((x) & (~BITS_GTAB_ID))
#define BIT_GET_GTAB_ID(x)				(((x) >> BIT_SHIFT_GTAB_ID) & BIT_MASK_GTAB_ID)
#define BIT_SET_GTAB_ID(x, v)				(BIT_CLEAR_GTAB_ID(x) | BIT_GTAB_ID(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_CPRST					BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


#define BIT_SHIFT_COUNTER_BASE				16
#define BIT_MASK_COUNTER_BASE				0x1fff
#define BIT_COUNTER_BASE(x)				(((x) & BIT_MASK_COUNTER_BASE) << BIT_SHIFT_COUNTER_BASE)
#define BITS_COUNTER_BASE				(BIT_MASK_COUNTER_BASE << BIT_SHIFT_COUNTER_BASE)
#define BIT_CLEAR_COUNTER_BASE(x)			((x) & (~BITS_COUNTER_BASE))
#define BIT_GET_COUNTER_BASE(x)			(((x) >> BIT_SHIFT_COUNTER_BASE) & BIT_MASK_COUNTER_BASE)
#define BIT_SET_COUNTER_BASE(x, v)			(BIT_CLEAR_COUNTER_BASE(x) | BIT_COUNTER_BASE(v))


#define BIT_SHIFT_AGG_VALUE2				16
#define BIT_MASK_AGG_VALUE2				0x7f
#define BIT_AGG_VALUE2(x)				(((x) & BIT_MASK_AGG_VALUE2) << BIT_SHIFT_AGG_VALUE2)
#define BITS_AGG_VALUE2				(BIT_MASK_AGG_VALUE2 << BIT_SHIFT_AGG_VALUE2)
#define BIT_CLEAR_AGG_VALUE2(x)			((x) & (~BITS_AGG_VALUE2))
#define BIT_GET_AGG_VALUE2(x)				(((x) >> BIT_SHIFT_AGG_VALUE2) & BIT_MASK_AGG_VALUE2)
#define BIT_SET_AGG_VALUE2(x, v)			(BIT_CLEAR_AGG_VALUE2(x) | BIT_AGG_VALUE2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_QUEUE_MACID_AC_NOT_THE_SAME_V1		BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_ATIMEND					BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


#define BIT_SHIFT_GTAB_ID_V1				12
#define BIT_MASK_GTAB_ID_V1				0x7
#define BIT_GTAB_ID_V1(x)				(((x) & BIT_MASK_GTAB_ID_V1) << BIT_SHIFT_GTAB_ID_V1)
#define BITS_GTAB_ID_V1				(BIT_MASK_GTAB_ID_V1 << BIT_SHIFT_GTAB_ID_V1)
#define BIT_CLEAR_GTAB_ID_V1(x)			((x) & (~BITS_GTAB_ID_V1))
#define BIT_GET_GTAB_ID_V1(x)				(((x) >> BIT_SHIFT_GTAB_ID_V1) & BIT_MASK_GTAB_ID_V1)
#define BIT_SET_GTAB_ID_V1(x, v)			(BIT_CLEAR_GTAB_ID_V1(x) | BIT_GTAB_ID_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


#define BIT_SHIFT_WATCH_DOG_RECORD_V1			10
#define BIT_MASK_WATCH_DOG_RECORD_V1			0x3fff
#define BIT_WATCH_DOG_RECORD_V1(x)			(((x) & BIT_MASK_WATCH_DOG_RECORD_V1) << BIT_SHIFT_WATCH_DOG_RECORD_V1)
#define BITS_WATCH_DOG_RECORD_V1			(BIT_MASK_WATCH_DOG_RECORD_V1 << BIT_SHIFT_WATCH_DOG_RECORD_V1)
#define BIT_CLEAR_WATCH_DOG_RECORD_V1(x)		((x) & (~BITS_WATCH_DOG_RECORD_V1))
#define BIT_GET_WATCH_DOG_RECORD_V1(x)			(((x) >> BIT_SHIFT_WATCH_DOG_RECORD_V1) & BIT_MASK_WATCH_DOG_RECORD_V1)
#define BIT_SET_WATCH_DOG_RECORD_V1(x, v)		(BIT_CLEAR_WATCH_DOG_RECORD_V1(x) | BIT_WATCH_DOG_RECORD_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_R_8051_SPD					BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_EN_RTS_REQ					BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_R_IO_TIMEOUT_FLAG_V1			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_EN_EDCA_REQ				BIT(8)

#define BIT_SHIFT_AGG_VALUE1				8
#define BIT_MASK_AGG_VALUE1				0x7f
#define BIT_AGG_VALUE1(x)				(((x) & BIT_MASK_AGG_VALUE1) << BIT_SHIFT_AGG_VALUE1)
#define BITS_AGG_VALUE1				(BIT_MASK_AGG_VALUE1 << BIT_SHIFT_AGG_VALUE1)
#define BIT_CLEAR_AGG_VALUE1(x)			((x) & (~BITS_AGG_VALUE1))
#define BIT_GET_AGG_VALUE1(x)				(((x) >> BIT_SHIFT_AGG_VALUE1) & BIT_MASK_AGG_VALUE1)
#define BIT_SET_AGG_VALUE1(x, v)			(BIT_CLEAR_AGG_VALUE1(x) | BIT_AGG_VALUE1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_EN_WATCH_DOG_V1				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_DIS_TXDMA_PRE				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_RAM_DL_SEL					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_EN_PTCL_REQ				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_DIS_RXDMA_PRE				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_WINTINI_RDY				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_EN_SCH_REQ					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_TXFLAG_EXIT_L1_EN				BIT(2)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_DATA_FW_STS_FILTER				BIT(2)
#define BIT_CTRL_FW_STS_FILTER				BIT(1)

#endif


#if (HALMAC_8881A_SUPPORT)

#define BIT_AFE_MBIAS					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)

#define BIT_MCUFWDL_EN					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


#define BIT_SHIFT_AGG_VALUE0				0
#define BIT_MASK_AGG_VALUE0				0x7f
#define BIT_AGG_VALUE0(x)				(((x) & BIT_MASK_AGG_VALUE0) << BIT_SHIFT_AGG_VALUE0)
#define BITS_AGG_VALUE0				(BIT_MASK_AGG_VALUE0 << BIT_SHIFT_AGG_VALUE0)
#define BIT_CLEAR_AGG_VALUE0(x)			((x) & (~BITS_AGG_VALUE0))
#define BIT_GET_AGG_VALUE0(x)				(((x) >> BIT_SHIFT_AGG_VALUE0) & BIT_MASK_AGG_VALUE0)
#define BIT_SET_AGG_VALUE0(x, v)			(BIT_CLEAR_AGG_VALUE0(x) | BIT_AGG_VALUE0(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)

#define BIT_MGNT_FW_STS_FILTER				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)

#define BIT_ISO_MD2PP					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */


#define BIT_SHIFT_SDIO_INT_TIMEOUT			16
#define BIT_MASK_SDIO_INT_TIMEOUT			0xffff
#define BIT_SDIO_INT_TIMEOUT(x)			(((x) & BIT_MASK_SDIO_INT_TIMEOUT) << BIT_SHIFT_SDIO_INT_TIMEOUT)
#define BITS_SDIO_INT_TIMEOUT				(BIT_MASK_SDIO_INT_TIMEOUT << BIT_SHIFT_SDIO_INT_TIMEOUT)
#define BIT_CLEAR_SDIO_INT_TIMEOUT(x)			((x) & (~BITS_SDIO_INT_TIMEOUT))
#define BIT_GET_SDIO_INT_TIMEOUT(x)			(((x) >> BIT_SHIFT_SDIO_INT_TIMEOUT) & BIT_MASK_SDIO_INT_TIMEOUT)
#define BIT_SET_SDIO_INT_TIMEOUT(x, v)			(BIT_CLEAR_SDIO_INT_TIMEOUT(x) | BIT_SDIO_INT_TIMEOUT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_PWC_EV12V					BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_PWC_EBCOEB					BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_IO_ERR_STATUS				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_PWC_EV25V					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_PA33V_EN					BIT(13)
#define BIT_PA12V_EN					BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_PC_A15V					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_UA33V_EN					BIT(11)
#define BIT_UA12V_EN					BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_AFE_OUTPUT_SIGNAL			BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_RFDIO					BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_REPLY_ERRCRC_IN_DATA			BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_EB2CORE				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_EN_CMD53_OVERLAP				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_DIOE					BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_REPLY_ERR_IN_R5				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_DIOP					BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_WLPON2PP				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_R18A_EN					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_IP2MAC_WA2PP				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_INIT_CMD_EN				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_PD2CORE				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_PA2PCIE				BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_EN_32K_TRANS				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_UD2CORE				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_EN_RXDMA_MASK_INT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_HD2CORE				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_UA2USB					BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_EN_MASK_TIMER				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_ISO_CTRL			(Offset 0x0000) */

#define BIT_ISO_WD2PP					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_TX_CTRL			(Offset 0x10250000) */

#define BIT_CMD_ERR_STOP_INT_EN			BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */

#define BIT_FEN_MREGEN					BIT(15)
#define BIT_FEN_HWPDN					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */

#define BIT_EN_25_1					BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */

#define BIT_FEN_ELDR					BIT(12)
#define BIT_FEN_DCORE					BIT(11)
#define BIT_FEN_CPUEN					BIT(10)
#define BIT_FEN_DIOE					BIT(9)
#define BIT_FEN_PCIED					BIT(8)
#define BIT_FEN_PPLL					BIT(7)
#define BIT_FEN_PCIEA					BIT(6)
#define BIT_FEN_DIO_PCIE				BIT(5)
#define BIT_FEN_USBD					BIT(4)
#define BIT_FEN_UPLL					BIT(3)
#define BIT_FEN_USBA					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_FUNC_EN				(Offset 0x0002) */

#define BIT_FEN_BB_GLB_RSTN				BIT(1)
#define BIT_FEN_BBRSTB					BIT(0)

/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_EABM					BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SKP_ALD					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_ACKF					BIT(30)
#define BIT_SOP_ERCK					BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_ESWR					BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_AFEP					BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_PWMM					BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_EPWM					BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_EECK					BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_ROP_ENXT					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_EXTL					BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_CHIPOFF_EN					BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SYM_OP_RING_12M				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_DIS_USB3_SUS_ALD				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_ROP_SWPR					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_DIS_HW_LPLDM				BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SOP_ALD					BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_OPT_SWRST_WLMCU				BIT(19)
#define BIT_RDY_SYSPWR					BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_EN_WLON					BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_APDM_HPDN					BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_HSUS					BIT(14)
#define BIT_PDN_SEL					BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_AFSM_PCIE_SUS_EN				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_AFSM_WLSUS_EN				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_APFM_SWLPS					BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_APFM_SWLPS_EN				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_APFM_OFFMAC				BIT(9)
#define BIT_APFN_ONMAC					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_CHIP_PDN_EN				BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_BT_SUSEN					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_RDY_MACDIS					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_PD_RF					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_RING_CLK_12M_EN				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_ENPDN					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_PFM_WOWL					BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_SW_WAKE					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_PFM_LDKP					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_WL_HCI_ALD					BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_PFM_ALDN					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_PW_CTRL				(Offset 0x0004) */

#define BIT_PFM_LDALL					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CPHY_LDO_CL_EN				BIT(19)
#define BIT_CPHY_LDO_OK				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_LDO_DUMMY					BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_ANA_CLK_EN					BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_DATA_CPU_CLK_EN				BIT(15)
#define BIT_DATA_CPU_PWC				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CPU_CLK_EN					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_SYMREG_CLK_EN				BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_RING_CLK_EN				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_HCI_CLK_EN					BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_SYS_CLK_EN					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_MAC_CLK_EN					BIT(11)
#define BIT_SEC_CLK_EN					BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CTRL_SPS_PWM_FREQ				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_PHY_SSC_RSTB				BIT(9)
#define BIT_EXT_32K_EN					BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_EXT32K_EN					BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_DISABLE_OPEN_SPS_LDO			BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_WL_CLK_TEST				BIT(7)
#define BIT_OP_SPS_PWM_EN				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */


#define BIT_SHIFT_MAC_CLK_SEL_V1			6
#define BIT_MASK_MAC_CLK_SEL_V1			0x3
#define BIT_MAC_CLK_SEL_V1(x)				(((x) & BIT_MASK_MAC_CLK_SEL_V1) << BIT_SHIFT_MAC_CLK_SEL_V1)
#define BITS_MAC_CLK_SEL_V1				(BIT_MASK_MAC_CLK_SEL_V1 << BIT_SHIFT_MAC_CLK_SEL_V1)
#define BIT_CLEAR_MAC_CLK_SEL_V1(x)			((x) & (~BITS_MAC_CLK_SEL_V1))
#define BIT_GET_MAC_CLK_SEL_V1(x)			(((x) >> BIT_SHIFT_MAC_CLK_SEL_V1) & BIT_MASK_MAC_CLK_SEL_V1)
#define BIT_SET_MAC_CLK_SEL_V1(x, v)			(BIT_CLEAR_MAC_CLK_SEL_V1(x) | BIT_MAC_CLK_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_LOADER_CLK_EN				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_POW_PC_LDO3				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_MACSLP					BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_POW_PC_LDO2				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_WAKEPAD_EN					BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_ENB_LDO_DIODE_L				BIT(3)
#define BIT_POW_PC_LDO1				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_ROMD16V_EN					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_AFE_BGEN_PCIE_OP				BIT(2)
#define BIT_POW_LDO15					BIT(2)
#define BIT_POW_PC_LDO0				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CKANA8M_EN					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CKANA12M_EN				BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_ANA8M_EN					BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_POW_SW					BIT(1)
#define BIT_POW_PLL_V1					BIT(1)
#define BIT_POW_XTAL					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_CNTD16V_EN					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CLK_CTRL			(Offset 0x0008) */

#define BIT_POW_LDO14					BIT(0)
#define BIT_LDOE25_POW_L				BIT(0)
#define BIT_POW_POWER_CUT				BIT(0)
#define BIT_POW_BG					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */


#define BIT_SHIFT_VPDIDX				8
#define BIT_MASK_VPDIDX				0xff
#define BIT_VPDIDX(x)					(((x) & BIT_MASK_VPDIDX) << BIT_SHIFT_VPDIDX)
#define BITS_VPDIDX					(BIT_MASK_VPDIDX << BIT_SHIFT_VPDIDX)
#define BIT_CLEAR_VPDIDX(x)				((x) & (~BITS_VPDIDX))
#define BIT_GET_VPDIDX(x)				(((x) >> BIT_SHIFT_VPDIDX) & BIT_MASK_VPDIDX)
#define BIT_SET_VPDIDX(x, v)				(BIT_CLEAR_VPDIDX(x) | BIT_VPDIDX(v))


#define BIT_SHIFT_EEM1_0				6
#define BIT_MASK_EEM1_0				0x3
#define BIT_EEM1_0(x)					(((x) & BIT_MASK_EEM1_0) << BIT_SHIFT_EEM1_0)
#define BITS_EEM1_0					(BIT_MASK_EEM1_0 << BIT_SHIFT_EEM1_0)
#define BIT_CLEAR_EEM1_0(x)				((x) & (~BITS_EEM1_0))
#define BIT_GET_EEM1_0(x)				(((x) >> BIT_SHIFT_EEM1_0) & BIT_MASK_EEM1_0)
#define BIT_SET_EEM1_0(x, v)				(BIT_CLEAR_EEM1_0(x) | BIT_EEM1_0(v))

#define BIT_AUTOLOAD_SUS				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */

#define BIT_EERPOMSEL					BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */

#define BIT_EEPROMSEL					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_EEPROM_CTRL			(Offset 0x000A) */

#define BIT_EECS_V1					BIT(3)
#define BIT_EESK_V1					BIT(2)
#define BIT_EEDI_V1					BIT(1)
#define BIT_EEDO_V1					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EE_VPD				(Offset 0x000C) */


#define BIT_SHIFT_VPD_DATA				0
#define BIT_MASK_VPD_DATA				0xffffffffL
#define BIT_VPD_DATA(x)				(((x) & BIT_MASK_VPD_DATA) << BIT_SHIFT_VPD_DATA)
#define BITS_VPD_DATA					(BIT_MASK_VPD_DATA << BIT_SHIFT_VPD_DATA)
#define BIT_CLEAR_VPD_DATA(x)				((x) & (~BITS_VPD_DATA))
#define BIT_GET_VPD_DATA(x)				(((x) >> BIT_SHIFT_VPD_DATA) & BIT_MASK_VPD_DATA)
#define BIT_SET_VPD_DATA(x, v)				(BIT_CLEAR_VPD_DATA(x) | BIT_VPD_DATA(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_EE_VPD				(Offset 0x000C) */


#define BIT_SHIFT_VDP_DATA				0
#define BIT_MASK_VDP_DATA				0xffffffffL
#define BIT_VDP_DATA(x)				(((x) & BIT_MASK_VDP_DATA) << BIT_SHIFT_VDP_DATA)
#define BITS_VDP_DATA					(BIT_MASK_VDP_DATA << BIT_SHIFT_VDP_DATA)
#define BIT_CLEAR_VDP_DATA(x)				((x) & (~BITS_VDP_DATA))
#define BIT_GET_VDP_DATA(x)				(((x) >> BIT_SHIFT_VDP_DATA) & BIT_MASK_VDP_DATA)
#define BIT_SET_VDP_DATA(x, v)				(BIT_CLEAR_VDP_DATA(x) | BIT_VDP_DATA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_SW18_C2_BIT0				BIT(31)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_C2_L_BIT0					BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_R1_L1_V1				30
#define BIT_MASK_R1_L1_V1				0x3
#define BIT_R1_L1_V1(x)				(((x) & BIT_MASK_R1_L1_V1) << BIT_SHIFT_R1_L1_V1)
#define BITS_R1_L1_V1					(BIT_MASK_R1_L1_V1 << BIT_SHIFT_R1_L1_V1)
#define BIT_CLEAR_R1_L1_V1(x)				((x) & (~BITS_R1_L1_V1))
#define BIT_GET_R1_L1_V1(x)				(((x) >> BIT_SHIFT_R1_L1_V1) & BIT_MASK_R1_L1_V1)
#define BIT_SET_R1_L1_V1(x, v)				(BIT_CLEAR_R1_L1_V1(x) | BIT_R1_L1_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_SW18_C1				29
#define BIT_MASK_SW18_C1				0x3
#define BIT_SW18_C1(x)					(((x) & BIT_MASK_SW18_C1) << BIT_SHIFT_SW18_C1)
#define BITS_SW18_C1					(BIT_MASK_SW18_C1 << BIT_SHIFT_SW18_C1)
#define BIT_CLEAR_SW18_C1(x)				((x) & (~BITS_SW18_C1))
#define BIT_GET_SW18_C1(x)				(((x) >> BIT_SHIFT_SW18_C1) & BIT_MASK_SW18_C1)
#define BIT_SET_SW18_C1(x, v)				(BIT_CLEAR_SW18_C1(x) | BIT_SW18_C1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_C1_L					29
#define BIT_MASK_C1_L					0x3
#define BIT_C1_L(x)					(((x) & BIT_MASK_C1_L) << BIT_SHIFT_C1_L)
#define BITS_C1_L					(BIT_MASK_C1_L << BIT_SHIFT_C1_L)
#define BIT_CLEAR_C1_L(x)				((x) & (~BITS_C1_L))
#define BIT_GET_C1_L(x)				(((x) >> BIT_SHIFT_C1_L) & BIT_MASK_C1_L)
#define BIT_SET_C1_L(x, v)				(BIT_CLEAR_C1_L(x) | BIT_C1_L(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_C3_L1_V1				28
#define BIT_MASK_C3_L1_V1				0x3
#define BIT_C3_L1_V1(x)				(((x) & BIT_MASK_C3_L1_V1) << BIT_SHIFT_C3_L1_V1)
#define BITS_C3_L1_V1					(BIT_MASK_C3_L1_V1 << BIT_SHIFT_C3_L1_V1)
#define BIT_CLEAR_C3_L1_V1(x)				((x) & (~BITS_C3_L1_V1))
#define BIT_GET_C3_L1_V1(x)				(((x) >> BIT_SHIFT_C3_L1_V1) & BIT_MASK_C3_L1_V1)
#define BIT_SET_C3_L1_V1(x, v)				(BIT_CLEAR_C3_L1_V1(x) | BIT_C3_L1_V1(v))


#define BIT_SHIFT_C2_L1_V1				26
#define BIT_MASK_C2_L1_V1				0x3
#define BIT_C2_L1_V1(x)				(((x) & BIT_MASK_C2_L1_V1) << BIT_SHIFT_C2_L1_V1)
#define BITS_C2_L1_V1					(BIT_MASK_C2_L1_V1 << BIT_SHIFT_C2_L1_V1)
#define BIT_CLEAR_C2_L1_V1(x)				((x) & (~BITS_C2_L1_V1))
#define BIT_GET_C2_L1_V1(x)				(((x) >> BIT_SHIFT_C2_L1_V1) & BIT_MASK_C2_L1_V1)
#define BIT_SET_C2_L1_V1(x, v)				(BIT_CLEAR_C2_L1_V1(x) | BIT_C2_L1_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_REG_FREQ_L				25
#define BIT_MASK_REG_FREQ_L				0x7
#define BIT_REG_FREQ_L(x)				(((x) & BIT_MASK_REG_FREQ_L) << BIT_SHIFT_REG_FREQ_L)
#define BITS_REG_FREQ_L				(BIT_MASK_REG_FREQ_L << BIT_SHIFT_REG_FREQ_L)
#define BIT_CLEAR_REG_FREQ_L(x)			((x) & (~BITS_REG_FREQ_L))
#define BIT_GET_REG_FREQ_L(x)				(((x) >> BIT_SHIFT_REG_FREQ_L) & BIT_MASK_REG_FREQ_L)
#define BIT_SET_REG_FREQ_L(x, v)			(BIT_CLEAR_REG_FREQ_L(x) | BIT_REG_FREQ_L(v))

#define BIT_REG_EN_DUTY				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_C1_L1_V1				24
#define BIT_MASK_C1_L1_V1				0x3
#define BIT_C1_L1_V1(x)				(((x) & BIT_MASK_C1_L1_V1) << BIT_SHIFT_C1_L1_V1)
#define BITS_C1_L1_V1					(BIT_MASK_C1_L1_V1 << BIT_SHIFT_C1_L1_V1)
#define BIT_CLEAR_C1_L1_V1(x)				((x) & (~BITS_C1_L1_V1))
#define BIT_GET_C1_L1_V1(x)				(((x) >> BIT_SHIFT_C1_L1_V1) & BIT_MASK_C1_L1_V1)
#define BIT_SET_C1_L1_V1(x, v)				(BIT_CLEAR_C1_L1_V1(x) | BIT_C1_L1_V1(v))

#define BIT_REG_TYPE_L_V3				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_REG_MODE				22
#define BIT_MASK_REG_MODE				0x3
#define BIT_REG_MODE(x)				(((x) & BIT_MASK_REG_MODE) << BIT_SHIFT_REG_MODE)
#define BITS_REG_MODE					(BIT_MASK_REG_MODE << BIT_SHIFT_REG_MODE)
#define BIT_CLEAR_REG_MODE(x)				((x) & (~BITS_REG_MODE))
#define BIT_GET_REG_MODE(x)				(((x) >> BIT_SHIFT_REG_MODE) & BIT_MASK_REG_MODE)
#define BIT_SET_REG_MODE(x, v)				(BIT_CLEAR_REG_MODE(x) | BIT_REG_MODE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_FPWM_L1_V1					BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_REG_EN_SP					BIT(21)
#define BIT_REG_AUTO_L					BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_SW18_SELD_BIT0				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_V15ADJ_L1				19
#define BIT_MASK_V15ADJ_L1				0x7
#define BIT_V15ADJ_L1(x)				(((x) & BIT_MASK_V15ADJ_L1) << BIT_SHIFT_V15ADJ_L1)
#define BITS_V15ADJ_L1					(BIT_MASK_V15ADJ_L1 << BIT_SHIFT_V15ADJ_L1)
#define BIT_CLEAR_V15ADJ_L1(x)				((x) & (~BITS_V15ADJ_L1))
#define BIT_GET_V15ADJ_L1(x)				(((x) >> BIT_SHIFT_V15ADJ_L1) & BIT_MASK_V15ADJ_L1)
#define BIT_SET_V15ADJ_L1(x, v)			(BIT_CLEAR_V15ADJ_L1(x) | BIT_V15ADJ_L1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_SW18_POWOCP				BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_IN_L1				16
#define BIT_MASK_IN_L1					0x7
#define BIT_IN_L1(x)					(((x) & BIT_MASK_IN_L1) << BIT_SHIFT_IN_L1)
#define BITS_IN_L1					(BIT_MASK_IN_L1 << BIT_SHIFT_IN_L1)
#define BIT_CLEAR_IN_L1(x)				((x) & (~BITS_IN_L1))
#define BIT_GET_IN_L1(x)				(((x) >> BIT_SHIFT_IN_L1) & BIT_MASK_IN_L1)
#define BIT_SET_IN_L1(x, v)				(BIT_CLEAR_IN_L1(x) | BIT_IN_L1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_SW18_OCP				15
#define BIT_MASK_SW18_OCP				0x7
#define BIT_SW18_OCP(x)				(((x) & BIT_MASK_SW18_OCP) << BIT_SHIFT_SW18_OCP)
#define BITS_SW18_OCP					(BIT_MASK_SW18_OCP << BIT_SHIFT_SW18_OCP)
#define BIT_CLEAR_SW18_OCP(x)				((x) & (~BITS_SW18_OCP))
#define BIT_GET_SW18_OCP(x)				(((x) >> BIT_SHIFT_SW18_OCP) & BIT_MASK_SW18_OCP)
#define BIT_SET_SW18_OCP(x, v)				(BIT_CLEAR_SW18_OCP(x) | BIT_SW18_OCP(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_OCP_L1				15
#define BIT_MASK_OCP_L1				0x7
#define BIT_OCP_L1(x)					(((x) & BIT_MASK_OCP_L1) << BIT_SHIFT_OCP_L1)
#define BITS_OCP_L1					(BIT_MASK_OCP_L1 << BIT_SHIFT_OCP_L1)
#define BIT_CLEAR_OCP_L1(x)				((x) & (~BITS_OCP_L1))
#define BIT_GET_OCP_L1(x)				(((x) >> BIT_SHIFT_OCP_L1) & BIT_MASK_OCP_L1)
#define BIT_SET_OCP_L1(x, v)				(BIT_CLEAR_OCP_L1(x) | BIT_OCP_L1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_STD_L1				14
#define BIT_MASK_STD_L1				0x3
#define BIT_STD_L1(x)					(((x) & BIT_MASK_STD_L1) << BIT_SHIFT_STD_L1)
#define BITS_STD_L1					(BIT_MASK_STD_L1 << BIT_SHIFT_STD_L1)
#define BIT_CLEAR_STD_L1(x)				((x) & (~BITS_STD_L1))
#define BIT_GET_STD_L1(x)				(((x) >> BIT_SHIFT_STD_L1) & BIT_MASK_STD_L1)
#define BIT_SET_STD_L1(x, v)				(BIT_CLEAR_STD_L1(x) | BIT_STD_L1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_CF_L_BIT0_TO_1			13
#define BIT_MASK_CF_L_BIT0_TO_1			0x3
#define BIT_CF_L_BIT0_TO_1(x)				(((x) & BIT_MASK_CF_L_BIT0_TO_1) << BIT_SHIFT_CF_L_BIT0_TO_1)
#define BITS_CF_L_BIT0_TO_1				(BIT_MASK_CF_L_BIT0_TO_1 << BIT_SHIFT_CF_L_BIT0_TO_1)
#define BIT_CLEAR_CF_L_BIT0_TO_1(x)			((x) & (~BITS_CF_L_BIT0_TO_1))
#define BIT_GET_CF_L_BIT0_TO_1(x)			(((x) >> BIT_SHIFT_CF_L_BIT0_TO_1) & BIT_MASK_CF_L_BIT0_TO_1)
#define BIT_SET_CF_L_BIT0_TO_1(x, v)			(BIT_CLEAR_CF_L_BIT0_TO_1(x) | BIT_CF_L_BIT0_TO_1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_CF_L					13
#define BIT_MASK_CF_L					0x3
#define BIT_CF_L(x)					(((x) & BIT_MASK_CF_L) << BIT_SHIFT_CF_L)
#define BITS_CF_L					(BIT_MASK_CF_L << BIT_SHIFT_CF_L)
#define BIT_CLEAR_CF_L(x)				((x) & (~BITS_CF_L))
#define BIT_GET_CF_L(x)				(((x) >> BIT_SHIFT_CF_L) & BIT_MASK_CF_L)
#define BIT_SET_CF_L(x, v)				(BIT_CLEAR_CF_L(x) | BIT_CF_L(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_SW18_FPWM					BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */


#define BIT_SHIFT_VOL_L1				10
#define BIT_MASK_VOL_L1				0xf
#define BIT_VOL_L1(x)					(((x) & BIT_MASK_VOL_L1) << BIT_SHIFT_VOL_L1)
#define BITS_VOL_L1					(BIT_MASK_VOL_L1 << BIT_SHIFT_VOL_L1)
#define BIT_CLEAR_VOL_L1(x)				((x) & (~BITS_VOL_L1))
#define BIT_GET_VOL_L1(x)				(((x) >> BIT_SHIFT_VOL_L1) & BIT_MASK_VOL_L1)
#define BIT_SET_VOL_L1(x, v)				(BIT_CLEAR_VOL_L1(x) | BIT_VOL_L1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_SW18_SWEN					BIT(9)
#define BIT_SW18_LDEN					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_MAC_ID_EN					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_WL_CTRL_XTAL_CADJ				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_LDO11_EN					BIT(6)
#define BIT_AFE_P3_PC					BIT(5)
#define BIT_AFE_P2_PC					BIT(4)
#define BIT_AFE_P1_PC					BIT(3)
#define BIT_AFE_P0_PC					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL1			(Offset 0x0010) */

#define BIT_AFE_BGEN					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_POW_ZCD_L					BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_IO_READY_SIGNAL_ERR_MSK			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_CRCERR_MSK				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_ENABLE_ZCDOUT_L				BIT(30)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_TX_CRC__MSK				BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_HSISR3_IND_MSK			BIT(30)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_AUTOZCD_L					BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_HSISR2_IND_MSK			BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_REG_DELAY				28
#define BIT_MASK_REG_DELAY				0x3
#define BIT_REG_DELAY(x)				(((x) & BIT_MASK_REG_DELAY) << BIT_SHIFT_REG_DELAY)
#define BITS_REG_DELAY					(BIT_MASK_REG_DELAY << BIT_SHIFT_REG_DELAY)
#define BIT_CLEAR_REG_DELAY(x)				((x) & (~BITS_REG_DELAY))
#define BIT_GET_REG_DELAY(x)				(((x) >> BIT_SHIFT_REG_DELAY) & BIT_MASK_REG_DELAY)
#define BIT_SET_REG_DELAY(x, v)			(BIT_CLEAR_REG_DELAY(x) | BIT_REG_DELAY(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_HEISR_IND_MSK				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_CTWEND_MSK				BIT(27)
#define BIT_SDIO_ATIMEND_E_MSK				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_ATIMEND_MSK				BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIIO_ATIMEND_MSK				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_V15ADJ				24
#define BIT_MASK_SW18_V15ADJ				0x7
#define BIT_SW18_V15ADJ(x)				(((x) & BIT_MASK_SW18_V15ADJ) << BIT_SHIFT_SW18_V15ADJ)
#define BITS_SW18_V15ADJ				(BIT_MASK_SW18_V15ADJ << BIT_SHIFT_SW18_V15ADJ)
#define BIT_CLEAR_SW18_V15ADJ(x)			((x) & (~BITS_SW18_V15ADJ))
#define BIT_GET_SW18_V15ADJ(x)				(((x) >> BIT_SHIFT_SW18_V15ADJ) & BIT_MASK_SW18_V15ADJ)
#define BIT_SET_SW18_V15ADJ(x, v)			(BIT_CLEAR_SW18_V15ADJ(x) | BIT_SW18_V15ADJ(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_OCPINT_MSK				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_OCPSL					BIT(24)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_V15ADJ_L1_V1				24
#define BIT_MASK_V15ADJ_L1_V1				0x7
#define BIT_V15ADJ_L1_V1(x)				(((x) & BIT_MASK_V15ADJ_L1_V1) << BIT_SHIFT_V15ADJ_L1_V1)
#define BITS_V15ADJ_L1_V1				(BIT_MASK_V15ADJ_L1_V1 << BIT_SHIFT_V15ADJ_L1_V1)
#define BIT_CLEAR_V15ADJ_L1_V1(x)			((x) & (~BITS_V15ADJ_L1_V1))
#define BIT_GET_V15ADJ_L1_V1(x)			(((x) >> BIT_SHIFT_V15ADJ_L1_V1) & BIT_MASK_V15ADJ_L1_V1)
#define BIT_SET_V15ADJ_L1_V1(x, v)			(BIT_CLEAR_V15ADJ_L1_V1(x) | BIT_V15ADJ_L1_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_PSTIMEOUT_MSK				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_REG_LDOF_L_V1				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_GTINT4_MSK				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_PARSW_DUMMY				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_GTINT3_MSK				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_CLAMP_MAX_DUTY				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_VOL				20
#define BIT_MASK_SW18_VOL				0xf
#define BIT_SW18_VOL(x)				(((x) & BIT_MASK_SW18_VOL) << BIT_SHIFT_SW18_VOL)
#define BITS_SW18_VOL					(BIT_MASK_SW18_VOL << BIT_SHIFT_SW18_VOL)
#define BIT_CLEAR_SW18_VOL(x)				((x) & (~BITS_SW18_VOL))
#define BIT_GET_SW18_VOL(x)				(((x) >> BIT_SHIFT_SW18_VOL) & BIT_MASK_SW18_VOL)
#define BIT_SET_SW18_VOL(x, v)				(BIT_CLEAR_SW18_VOL(x) | BIT_SW18_VOL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_HSISR_IND_MSK				BIT(20)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_VOL_L1_V1				20
#define BIT_MASK_VOL_L1_V1				0xf
#define BIT_VOL_L1_V1(x)				(((x) & BIT_MASK_VOL_L1_V1) << BIT_SHIFT_VOL_L1_V1)
#define BITS_VOL_L1_V1					(BIT_MASK_VOL_L1_V1 << BIT_SHIFT_VOL_L1_V1)
#define BIT_CLEAR_VOL_L1_V1(x)				((x) & (~BITS_VOL_L1_V1))
#define BIT_GET_VOL_L1_V1(x)				(((x) >> BIT_SHIFT_VOL_L1_V1) & BIT_MASK_VOL_L1_V1)
#define BIT_SET_VOL_L1_V1(x, v)			(BIT_CLEAR_VOL_L1_V1(x) | BIT_VOL_L1_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_CPWM2_MSK				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_TBOX_L1_V1				19
#define BIT_MASK_TBOX_L1_V1				0x3
#define BIT_TBOX_L1_V1(x)				(((x) & BIT_MASK_TBOX_L1_V1) << BIT_SHIFT_TBOX_L1_V1)
#define BITS_TBOX_L1_V1				(BIT_MASK_TBOX_L1_V1 << BIT_SHIFT_TBOX_L1_V1)
#define BIT_CLEAR_TBOX_L1_V1(x)			((x) & (~BITS_TBOX_L1_V1))
#define BIT_GET_TBOX_L1_V1(x)				(((x) >> BIT_SHIFT_TBOX_L1_V1) & BIT_MASK_TBOX_L1_V1)
#define BIT_SET_TBOX_L1_V1(x, v)			(BIT_CLEAR_TBOX_L1_V1(x) | BIT_TBOX_L1_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_CPWM1_MSK				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_IN				17
#define BIT_MASK_SW18_IN				0x7
#define BIT_SW18_IN(x)					(((x) & BIT_MASK_SW18_IN) << BIT_SHIFT_SW18_IN)
#define BITS_SW18_IN					(BIT_MASK_SW18_IN << BIT_SHIFT_SW18_IN)
#define BIT_CLEAR_SW18_IN(x)				((x) & (~BITS_SW18_IN))
#define BIT_GET_SW18_IN(x)				(((x) >> BIT_SHIFT_SW18_IN) & BIT_MASK_SW18_IN)
#define BIT_SET_SW18_IN(x, v)				(BIT_CLEAR_SW18_IN(x) | BIT_SW18_IN(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_C2HCMD_INT_MSK			BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_REG_DELAY_V3				17
#define BIT_MASK_REG_DELAY_V3				0x3
#define BIT_REG_DELAY_V3(x)				(((x) & BIT_MASK_REG_DELAY_V3) << BIT_SHIFT_REG_DELAY_V3)
#define BITS_REG_DELAY_V3				(BIT_MASK_REG_DELAY_V3 << BIT_SHIFT_REG_DELAY_V3)
#define BIT_CLEAR_REG_DELAY_V3(x)			((x) & (~BITS_REG_DELAY_V3))
#define BIT_GET_REG_DELAY_V3(x)			(((x) >> BIT_SHIFT_REG_DELAY_V3) & BIT_MASK_REG_DELAY_V3)
#define BIT_SET_REG_DELAY_V3(x, v)			(BIT_CLEAR_REG_DELAY_V3(x) | BIT_REG_DELAY_V3(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_IN_L1_V1				17
#define BIT_MASK_IN_L1_V1				0x7
#define BIT_IN_L1_V1(x)				(((x) & BIT_MASK_IN_L1_V1) << BIT_SHIFT_IN_L1_V1)
#define BITS_IN_L1_V1					(BIT_MASK_IN_L1_V1 << BIT_SHIFT_IN_L1_V1)
#define BIT_CLEAR_IN_L1_V1(x)				((x) & (~BITS_IN_L1_V1))
#define BIT_GET_IN_L1_V1(x)				(((x) >> BIT_SHIFT_IN_L1_V1) & BIT_MASK_IN_L1_V1)
#define BIT_SET_IN_L1_V1(x, v)				(BIT_CLEAR_IN_L1_V1(x) | BIT_IN_L1_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_BCNERLY_INT_MSK			BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_REG_CLAMP_D_L_V2				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_TBOX				15
#define BIT_MASK_SW18_TBOX				0x3
#define BIT_SW18_TBOX(x)				(((x) & BIT_MASK_SW18_TBOX) << BIT_SHIFT_SW18_TBOX)
#define BITS_SW18_TBOX					(BIT_MASK_SW18_TBOX << BIT_SHIFT_SW18_TBOX)
#define BIT_CLEAR_SW18_TBOX(x)				((x) & (~BITS_SW18_TBOX))
#define BIT_GET_SW18_TBOX(x)				(((x) >> BIT_SHIFT_SW18_TBOX) & BIT_MASK_SW18_TBOX)
#define BIT_SET_SW18_TBOX(x, v)			(BIT_CLEAR_SW18_TBOX(x) | BIT_SW18_TBOX(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_REG_BYPASS_L_V3				BIT(15)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_TBOX_L1				15
#define BIT_MASK_TBOX_L1				0x3
#define BIT_TBOX_L1(x)					(((x) & BIT_MASK_TBOX_L1) << BIT_SHIFT_TBOX_L1)
#define BITS_TBOX_L1					(BIT_MASK_TBOX_L1 << BIT_SHIFT_TBOX_L1)
#define BIT_CLEAR_TBOX_L1(x)				((x) & (~BITS_TBOX_L1))
#define BIT_GET_TBOX_L1(x)				(((x) >> BIT_SHIFT_TBOX_L1) & BIT_MASK_TBOX_L1)
#define BIT_SET_TBOX_L1(x, v)				(BIT_CLEAR_TBOX_L1(x) | BIT_TBOX_L1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_ENABLE_ZCDOUT_L_V3				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_SW18_SEL					BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_POW_ZCD_L_V3				BIT(13)
#define BIT_AREN_L1_V1					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_STD				11
#define BIT_MASK_SW18_STD				0x3
#define BIT_SW18_STD(x)				(((x) & BIT_MASK_SW18_STD) << BIT_SHIFT_SW18_STD)
#define BITS_SW18_STD					(BIT_MASK_SW18_STD << BIT_SHIFT_SW18_STD)
#define BIT_CLEAR_SW18_STD(x)				((x) & (~BITS_SW18_STD))
#define BIT_GET_SW18_STD(x)				(((x) >> BIT_SHIFT_SW18_STD) & BIT_MASK_SW18_STD)
#define BIT_SET_SW18_STD(x, v)				(BIT_CLEAR_SW18_STD(x) | BIT_SW18_STD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_SW18_SD					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_SW18_AREN					BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_OCP_V3				9
#define BIT_MASK_OCP_V3				0x7
#define BIT_OCP_V3(x)					(((x) & BIT_MASK_OCP_V3) << BIT_SHIFT_OCP_V3)
#define BITS_OCP_V3					(BIT_MASK_OCP_V3 << BIT_SHIFT_OCP_V3)
#define BIT_CLEAR_OCP_V3(x)				((x) & (~BITS_OCP_V3))
#define BIT_GET_OCP_V3(x)				(((x) >> BIT_SHIFT_OCP_V3) & BIT_MASK_OCP_V3)
#define BIT_SET_OCP_V3(x, v)				(BIT_CLEAR_OCP_V3(x) | BIT_OCP_V3(v))

#define BIT_POWOCP_V3					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_R3				7
#define BIT_MASK_SW18_R3				0x3
#define BIT_SW18_R3(x)					(((x) & BIT_MASK_SW18_R3) << BIT_SHIFT_SW18_R3)
#define BITS_SW18_R3					(BIT_MASK_SW18_R3 << BIT_SHIFT_SW18_R3)
#define BIT_CLEAR_SW18_R3(x)				((x) & (~BITS_SW18_R3))
#define BIT_GET_SW18_R3(x)				(((x) >> BIT_SHIFT_SW18_R3) & BIT_MASK_SW18_R3)
#define BIT_SET_SW18_R3(x, v)				(BIT_CLEAR_SW18_R3(x) | BIT_SW18_R3(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_TXBCNERR_MSK				BIT(7)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_R3_L					7
#define BIT_MASK_R3_L					0x3
#define BIT_R3_L(x)					(((x) & BIT_MASK_R3_L) << BIT_SHIFT_R3_L)
#define BITS_R3_L					(BIT_MASK_R3_L << BIT_SHIFT_R3_L)
#define BIT_CLEAR_R3_L(x)				((x) & (~BITS_R3_L))
#define BIT_GET_R3_L(x)				(((x) >> BIT_SHIFT_R3_L) & BIT_MASK_R3_L)
#define BIT_SET_R3_L(x, v)				(BIT_CLEAR_R3_L(x) | BIT_R3_L(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_TXBCNOK_MSK				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_CF_L_V3				6
#define BIT_MASK_CF_L_V3				0x3
#define BIT_CF_L_V3(x)					(((x) & BIT_MASK_CF_L_V3) << BIT_SHIFT_CF_L_V3)
#define BITS_CF_L_V3					(BIT_MASK_CF_L_V3 << BIT_SHIFT_CF_L_V3)
#define BIT_CLEAR_CF_L_V3(x)				((x) & (~BITS_CF_L_V3))
#define BIT_GET_CF_L_V3(x)				(((x) >> BIT_SHIFT_CF_L_V3) & BIT_MASK_CF_L_V3)
#define BIT_SET_CF_L_V3(x, v)				(BIT_CLEAR_CF_L_V3(x) | BIT_CF_L_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_R2				5
#define BIT_MASK_SW18_R2				0x3
#define BIT_SW18_R2(x)					(((x) & BIT_MASK_SW18_R2) << BIT_SHIFT_SW18_R2)
#define BITS_SW18_R2					(BIT_MASK_SW18_R2 << BIT_SHIFT_SW18_R2)
#define BIT_CLEAR_SW18_R2(x)				((x) & (~BITS_SW18_R2))
#define BIT_GET_SW18_R2(x)				(((x) >> BIT_SHIFT_SW18_R2) & BIT_MASK_SW18_R2)
#define BIT_SET_SW18_R2(x, v)				(BIT_CLEAR_SW18_R2(x) | BIT_SW18_R2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_RXFOVW_MSK				BIT(5)
#define BIT_SDIO_TXFOVW_MSK				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_CFC_L_BIT0_TO_1_V1			4
#define BIT_MASK_CFC_L_BIT0_TO_1_V1			0x3
#define BIT_CFC_L_BIT0_TO_1_V1(x)			(((x) & BIT_MASK_CFC_L_BIT0_TO_1_V1) << BIT_SHIFT_CFC_L_BIT0_TO_1_V1)
#define BITS_CFC_L_BIT0_TO_1_V1			(BIT_MASK_CFC_L_BIT0_TO_1_V1 << BIT_SHIFT_CFC_L_BIT0_TO_1_V1)
#define BIT_CLEAR_CFC_L_BIT0_TO_1_V1(x)		((x) & (~BITS_CFC_L_BIT0_TO_1_V1))
#define BIT_GET_CFC_L_BIT0_TO_1_V1(x)			(((x) >> BIT_SHIFT_CFC_L_BIT0_TO_1_V1) & BIT_MASK_CFC_L_BIT0_TO_1_V1)
#define BIT_SET_CFC_L_BIT0_TO_1_V1(x, v)		(BIT_CLEAR_CFC_L_BIT0_TO_1_V1(x) | BIT_CFC_L_BIT0_TO_1_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_R1				3
#define BIT_MASK_SW18_R1				0x3
#define BIT_SW18_R1(x)					(((x) & BIT_MASK_SW18_R1) << BIT_SHIFT_SW18_R1)
#define BITS_SW18_R1					(BIT_MASK_SW18_R1 << BIT_SHIFT_SW18_R1)
#define BIT_CLEAR_SW18_R1(x)				((x) & (~BITS_SW18_R1))
#define BIT_GET_SW18_R1(x)				(((x) >> BIT_SHIFT_SW18_R1) & BIT_MASK_SW18_R1)
#define BIT_SET_SW18_R1(x, v)				(BIT_CLEAR_SW18_R1(x) | BIT_SW18_R1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_RXERR_MSK				BIT(3)
#define BIT_SDIO_TXERR_MSK				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_R3_L1_V1				2
#define BIT_MASK_R3_L1_V1				0x3
#define BIT_R3_L1_V1(x)				(((x) & BIT_MASK_R3_L1_V1) << BIT_SHIFT_R3_L1_V1)
#define BITS_R3_L1_V1					(BIT_MASK_R3_L1_V1 << BIT_SHIFT_R3_L1_V1)
#define BIT_CLEAR_R3_L1_V1(x)				((x) & (~BITS_R3_L1_V1))
#define BIT_GET_R3_L1_V1(x)				(((x) >> BIT_SHIFT_R3_L1_V1) & BIT_MASK_R3_L1_V1)
#define BIT_SET_R3_L1_V1(x, v)				(BIT_CLEAR_R3_L1_V1(x) | BIT_R3_L1_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_SW18_C3				1
#define BIT_MASK_SW18_C3				0x3
#define BIT_SW18_C3(x)					(((x) & BIT_MASK_SW18_C3) << BIT_SHIFT_SW18_C3)
#define BITS_SW18_C3					(BIT_MASK_SW18_C3 << BIT_SHIFT_SW18_C3)
#define BIT_CLEAR_SW18_C3(x)				((x) & (~BITS_SW18_C3))
#define BIT_GET_SW18_C3(x)				(((x) >> BIT_SHIFT_SW18_C3) & BIT_MASK_SW18_C3)
#define BIT_SET_SW18_C3(x, v)				(BIT_CLEAR_SW18_C3(x) | BIT_SW18_C3(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_SDIO_AVAL_MSK				BIT(1)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_C3_L_C3				1
#define BIT_MASK_C3_L_C3				0x3
#define BIT_C3_L_C3(x)					(((x) & BIT_MASK_C3_L_C3) << BIT_SHIFT_C3_L_C3)
#define BITS_C3_L_C3					(BIT_MASK_C3_L_C3 << BIT_SHIFT_C3_L_C3)
#define BIT_CLEAR_C3_L_C3(x)				((x) & (~BITS_C3_L_C3))
#define BIT_GET_C3_L_C3(x)				(((x) >> BIT_SHIFT_C3_L_C3) & BIT_MASK_C3_L_C3)
#define BIT_SET_C3_L_C3(x, v)				(BIT_CLEAR_C3_L_C3(x) | BIT_C3_L_C3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_SW18_C2_BIT1				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HIMR				(Offset 0x10250014) */

#define BIT_RX_REQUEST_MSK				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */


#define BIT_SHIFT_R2_L1_V1				0
#define BIT_MASK_R2_L1_V1				0x3
#define BIT_R2_L1_V1(x)				(((x) & BIT_MASK_R2_L1_V1) << BIT_SHIFT_R2_L1_V1)
#define BITS_R2_L1_V1					(BIT_MASK_R2_L1_V1 << BIT_SHIFT_R2_L1_V1)
#define BIT_CLEAR_R2_L1_V1(x)				((x) & (~BITS_R2_L1_V1))
#define BIT_GET_R2_L1_V1(x)				(((x) >> BIT_SHIFT_R2_L1_V1) & BIT_MASK_R2_L1_V1)
#define BIT_SET_R2_L1_V1(x, v)				(BIT_CLEAR_R2_L1_V1(x) | BIT_R2_L1_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SWR_CTRL2			(Offset 0x0014) */

#define BIT_C2_L_BIT1					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */

#define BIT_SPS18_OCP_DIS				BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_IO_READY_SIGNAL_ERR			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_SDIO_CRCERR				BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_TX_CRC					BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_SDIO_HSISR3_IND				BIT(30)
#define BIT_SDIO_HSISR2_IND				BIT(29)
#define BIT_SDIO_HEISR_IND				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_SDIO_CTWEND				BIT(27)
#define BIT_SDIO_ATIMEND_E				BIT(26)
#define BIT_SDIO_ATIMEND				BIT(25)
#define BIT_SDIO_OCPINT				BIT(24)
#define BIT_SDIO_PSTIMEOUT				BIT(23)
#define BIT_SDIO_GTINT4				BIT(22)
#define BIT_SDIO_GTINT3				BIT(21)
#define BIT_SDIO_HSISR_IND				BIT(20)
#define BIT_SDIO_CPWM2					BIT(19)
#define BIT_SDIO_CPWM1					BIT(18)
#define BIT_SDIO_C2HCMD_INT				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */


#define BIT_SHIFT_SPS18_OCP_TH				16
#define BIT_MASK_SPS18_OCP_TH				0x7fff
#define BIT_SPS18_OCP_TH(x)				(((x) & BIT_MASK_SPS18_OCP_TH) << BIT_SHIFT_SPS18_OCP_TH)
#define BITS_SPS18_OCP_TH				(BIT_MASK_SPS18_OCP_TH << BIT_SHIFT_SPS18_OCP_TH)
#define BIT_CLEAR_SPS18_OCP_TH(x)			((x) & (~BITS_SPS18_OCP_TH))
#define BIT_GET_SPS18_OCP_TH(x)			(((x) >> BIT_SHIFT_SPS18_OCP_TH) & BIT_MASK_SPS18_OCP_TH)
#define BIT_SET_SPS18_OCP_TH(x, v)			(BIT_CLEAR_SPS18_OCP_TH(x) | BIT_SPS18_OCP_TH(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_SDIO_BCNERLY_INT				BIT(16)
#define BIT_SDIO_TXBCNERR				BIT(7)
#define BIT_SDIO_TXBCNOK				BIT(6)
#define BIT_SDIO_RXFOVW				BIT(5)
#define BIT_SDIO_TXFOVW				BIT(4)
#define BIT_SDIO_RXERR					BIT(3)
#define BIT_SDIO_TXERR					BIT(2)
#define BIT_SDIO_AVAL					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SWR_CTRL3			(Offset 0x0018) */


#define BIT_SHIFT_OCP_WINDOW				0
#define BIT_MASK_OCP_WINDOW				0xffff
#define BIT_OCP_WINDOW(x)				(((x) & BIT_MASK_OCP_WINDOW) << BIT_SHIFT_OCP_WINDOW)
#define BITS_OCP_WINDOW				(BIT_MASK_OCP_WINDOW << BIT_SHIFT_OCP_WINDOW)
#define BIT_CLEAR_OCP_WINDOW(x)			((x) & (~BITS_OCP_WINDOW))
#define BIT_GET_OCP_WINDOW(x)				(((x) >> BIT_SHIFT_OCP_WINDOW) & BIT_MASK_OCP_WINDOW)
#define BIT_SET_OCP_WINDOW(x, v)			(BIT_CLEAR_OCP_WINDOW(x) | BIT_OCP_WINDOW(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HISR				(Offset 0x10250018) */

#define BIT_RX_REQUEST					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_HREG_DBG					BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */


#define BIT_SHIFT_HREG_DBG_V1				12
#define BIT_MASK_HREG_DBG_V1				0xfff
#define BIT_HREG_DBG_V1(x)				(((x) & BIT_MASK_HREG_DBG_V1) << BIT_SHIFT_HREG_DBG_V1)
#define BITS_HREG_DBG_V1				(BIT_MASK_HREG_DBG_V1 << BIT_SHIFT_HREG_DBG_V1)
#define BIT_CLEAR_HREG_DBG_V1(x)			((x) & (~BITS_HREG_DBG_V1))
#define BIT_GET_HREG_DBG_V1(x)				(((x) >> BIT_SHIFT_HREG_DBG_V1) & BIT_MASK_HREG_DBG_V1)
#define BIT_SET_HREG_DBG_V1(x, v)			(BIT_CLEAR_HREG_DBG_V1(x) | BIT_HREG_DBG_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_MCU_RST					BIT(11)
#define BIT_WLOCK_90					BIT(10)
#define BIT_WLOCK_70					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_WLMCUIOIF					BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_WLOCK_78					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_LOCK_ALL_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_R_DIS_PRST					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_R_DIS_PRST_1				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_WLOCK_1C_B6				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_R_DIS_PRST_0				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RSV_CTRL				(Offset 0x001C) */

#define BIT_WLOCK_40					BIT(4)
#define BIT_WLOCK_08					BIT(3)
#define BIT_WLOCK_04					BIT(2)
#define BIT_WLOCK_00					BIT(1)
#define BIT_WLOCK_ALL					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_RX_REQ_LEN			(Offset 0x1025001C) */


#define BIT_SHIFT_RX_REQ_LEN_V1			0
#define BIT_MASK_RX_REQ_LEN_V1				0x3ffff
#define BIT_RX_REQ_LEN_V1(x)				(((x) & BIT_MASK_RX_REQ_LEN_V1) << BIT_SHIFT_RX_REQ_LEN_V1)
#define BITS_RX_REQ_LEN_V1				(BIT_MASK_RX_REQ_LEN_V1 << BIT_SHIFT_RX_REQ_LEN_V1)
#define BIT_CLEAR_RX_REQ_LEN_V1(x)			((x) & (~BITS_RX_REQ_LEN_V1))
#define BIT_GET_RX_REQ_LEN_V1(x)			(((x) >> BIT_SHIFT_RX_REQ_LEN_V1) & BIT_MASK_RX_REQ_LEN_V1)
#define BIT_SET_RX_REQ_LEN_V1(x, v)			(BIT_CLEAR_RX_REQ_LEN_V1(x) | BIT_RX_REQ_LEN_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RF_CTRL				(Offset 0x001F) */

#define BIT_RF_SDMRSTB					BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RF0_CTRL				(Offset 0x001F) */

#define BIT_RF0_SDMRSTB				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RF_CTRL				(Offset 0x001F) */

#define BIT_RF_RSTB					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RF0_CTRL				(Offset 0x001F) */

#define BIT_RF0_RSTB					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RF_CTRL				(Offset 0x001F) */

#define BIT_RF_EN					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RF0_CTRL				(Offset 0x001F) */

#define BIT_RF0_EN					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_FREE_TXPG_SEQ_V1		(Offset 0x1025001F) */


#define BIT_SHIFT_FREE_TXPG_SEQ			0
#define BIT_MASK_FREE_TXPG_SEQ				0xff
#define BIT_FREE_TXPG_SEQ(x)				(((x) & BIT_MASK_FREE_TXPG_SEQ) << BIT_SHIFT_FREE_TXPG_SEQ)
#define BITS_FREE_TXPG_SEQ				(BIT_MASK_FREE_TXPG_SEQ << BIT_SHIFT_FREE_TXPG_SEQ)
#define BIT_CLEAR_FREE_TXPG_SEQ(x)			((x) & (~BITS_FREE_TXPG_SEQ))
#define BIT_GET_FREE_TXPG_SEQ(x)			(((x) >> BIT_SHIFT_FREE_TXPG_SEQ) & BIT_MASK_FREE_TXPG_SEQ)
#define BIT_SET_FREE_TXPG_SEQ(x, v)			(BIT_CLEAR_FREE_TXPG_SEQ(x) | BIT_FREE_TXPG_SEQ(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_LPLDH12_RSV1				BIT(31)
#define BIT_LPLDH12_RSV0				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */


#define BIT_SHIFT_LPLDH12_RSV				29
#define BIT_MASK_LPLDH12_RSV				0x7
#define BIT_LPLDH12_RSV(x)				(((x) & BIT_MASK_LPLDH12_RSV) << BIT_SHIFT_LPLDH12_RSV)
#define BITS_LPLDH12_RSV				(BIT_MASK_LPLDH12_RSV << BIT_SHIFT_LPLDH12_RSV)
#define BIT_CLEAR_LPLDH12_RSV(x)			((x) & (~BITS_LPLDH12_RSV))
#define BIT_GET_LPLDH12_RSV(x)				(((x) >> BIT_SHIFT_LPLDH12_RSV) & BIT_MASK_LPLDH12_RSV)
#define BIT_SET_LPLDH12_RSV(x, v)			(BIT_CLEAR_LPLDH12_RSV(x) | BIT_LPLDH12_RSV(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_LPLDH12_SLP				BIT(28)

#define BIT_SHIFT_LPLDH12_VADJ				24
#define BIT_MASK_LPLDH12_VADJ				0xf
#define BIT_LPLDH12_VADJ(x)				(((x) & BIT_MASK_LPLDH12_VADJ) << BIT_SHIFT_LPLDH12_VADJ)
#define BITS_LPLDH12_VADJ				(BIT_MASK_LPLDH12_VADJ << BIT_SHIFT_LPLDH12_VADJ)
#define BIT_CLEAR_LPLDH12_VADJ(x)			((x) & (~BITS_LPLDH12_VADJ))
#define BIT_GET_LPLDH12_VADJ(x)			(((x) >> BIT_SHIFT_LPLDH12_VADJ) & BIT_MASK_LPLDH12_VADJ)
#define BIT_SET_LPLDH12_VADJ(x, v)			(BIT_CLEAR_LPLDH12_VADJ(x) | BIT_LPLDH12_VADJ(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_PCIE_CALIB_EN				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_LDH12_EN					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_FREE_TXPG			(Offset 0x10250020) */


#define BIT_SHIFT_MID_FREEPG_V1			16
#define BIT_MASK_MID_FREEPG_V1				0xfff
#define BIT_MID_FREEPG_V1(x)				(((x) & BIT_MASK_MID_FREEPG_V1) << BIT_SHIFT_MID_FREEPG_V1)
#define BITS_MID_FREEPG_V1				(BIT_MASK_MID_FREEPG_V1 << BIT_SHIFT_MID_FREEPG_V1)
#define BIT_CLEAR_MID_FREEPG_V1(x)			((x) & (~BITS_MID_FREEPG_V1))
#define BIT_GET_MID_FREEPG_V1(x)			(((x) >> BIT_SHIFT_MID_FREEPG_V1) & BIT_MASK_MID_FREEPG_V1)
#define BIT_SET_MID_FREEPG_V1(x, v)			(BIT_CLEAR_MID_FREEPG_V1(x) | BIT_MID_FREEPG_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_WLBBOFF_BIG_PWC_EN				BIT(14)
#define BIT_WLBBOFF_SMALL_PWC_EN			BIT(13)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_POW_REGU_P3				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_WLMACOFF_BIG_PWC_EN			BIT(12)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_POW_REGU_P2				BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_WLPON_PWC_EN				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_POW_REGU_P1				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_LDOV12W_EN					BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */


#define BIT_SHIFT_ANAPAR_RFC2				8
#define BIT_MASK_ANAPAR_RFC2				0xff
#define BIT_ANAPAR_RFC2(x)				(((x) & BIT_MASK_ANAPAR_RFC2) << BIT_SHIFT_ANAPAR_RFC2)
#define BITS_ANAPAR_RFC2				(BIT_MASK_ANAPAR_RFC2 << BIT_SHIFT_ANAPAR_RFC2)
#define BIT_CLEAR_ANAPAR_RFC2(x)			((x) & (~BITS_ANAPAR_RFC2))
#define BIT_GET_ANAPAR_RFC2(x)				(((x) >> BIT_SHIFT_ANAPAR_RFC2) & BIT_MASK_ANAPAR_RFC2)
#define BIT_SET_ANAPAR_RFC2(x, v)			(BIT_CLEAR_ANAPAR_RFC2(x) | BIT_ANAPAR_RFC2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_EX_XTAL_DRV_DIGI				BIT(7)
#define BIT_EX_XTAL_DRV_USB				BIT(6)
#define BIT_EX_XTAL_DRV_AFE				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */


#define BIT_SHIFT_LDA12_VOADJ				4
#define BIT_MASK_LDA12_VOADJ				0xf
#define BIT_LDA12_VOADJ(x)				(((x) & BIT_MASK_LDA12_VOADJ) << BIT_SHIFT_LDA12_VOADJ)
#define BITS_LDA12_VOADJ				(BIT_MASK_LDA12_VOADJ << BIT_SHIFT_LDA12_VOADJ)
#define BIT_CLEAR_LDA12_VOADJ(x)			((x) & (~BITS_LDA12_VOADJ))
#define BIT_GET_LDA12_VOADJ(x)				(((x) >> BIT_SHIFT_LDA12_VOADJ) & BIT_MASK_LDA12_VOADJ)
#define BIT_SET_LDA12_VOADJ(x, v)			(BIT_CLEAR_LDA12_VOADJ(x) | BIT_LDA12_VOADJ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_EX_XTAL_DRV_RF2				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_REG_VOS					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_EX_XTAL_DRV_RF1				BIT(3)
#define BIT_POW_REGU_P0				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_LDA12_EN					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */

#define BIT_POW_PLL_LDO				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_FREE_TXPG			(Offset 0x10250020) */


#define BIT_SHIFT_HIQ_FREEPG_V1			0
#define BIT_MASK_HIQ_FREEPG_V1				0xfff
#define BIT_HIQ_FREEPG_V1(x)				(((x) & BIT_MASK_HIQ_FREEPG_V1) << BIT_SHIFT_HIQ_FREEPG_V1)
#define BITS_HIQ_FREEPG_V1				(BIT_MASK_HIQ_FREEPG_V1 << BIT_SHIFT_HIQ_FREEPG_V1)
#define BIT_CLEAR_HIQ_FREEPG_V1(x)			((x) & (~BITS_HIQ_FREEPG_V1))
#define BIT_GET_HIQ_FREEPG_V1(x)			(((x) >> BIT_SHIFT_HIQ_FREEPG_V1) & BIT_MASK_HIQ_FREEPG_V1)
#define BIT_SET_HIQ_FREEPG_V1(x, v)			(BIT_CLEAR_HIQ_FREEPG_V1(x) | BIT_HIQ_FREEPG_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_LDO_CTRL			(Offset 0x0020) */


#define BIT_SHIFT_ANAPAR_RFC1				0
#define BIT_MASK_ANAPAR_RFC1				0xff
#define BIT_ANAPAR_RFC1(x)				(((x) & BIT_MASK_ANAPAR_RFC1) << BIT_SHIFT_ANAPAR_RFC1)
#define BITS_ANAPAR_RFC1				(BIT_MASK_ANAPAR_RFC1 << BIT_SHIFT_ANAPAR_RFC1)
#define BIT_CLEAR_ANAPAR_RFC1(x)			((x) & (~BITS_ANAPAR_RFC1))
#define BIT_GET_ANAPAR_RFC1(x)				(((x) >> BIT_SHIFT_ANAPAR_RFC1) & BIT_MASK_ANAPAR_RFC1)
#define BIT_SET_ANAPAR_RFC1(x, v)			(BIT_CLEAR_ANAPAR_RFC1(x) | BIT_ANAPAR_RFC1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_AGPIO_GPE					BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XQSEL_V3					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_REG_CC				30
#define BIT_MASK_REG_CC				0x3
#define BIT_REG_CC(x)					(((x) & BIT_MASK_REG_CC) << BIT_SHIFT_REG_CC)
#define BITS_REG_CC					(BIT_MASK_REG_CC << BIT_SHIFT_REG_CC)
#define BIT_CLEAR_REG_CC(x)				((x) & (~BITS_REG_CC))
#define BIT_GET_REG_CC(x)				(((x) >> BIT_SHIFT_REG_CC) & BIT_MASK_REG_CC)
#define BIT_SET_REG_CC(x, v)				(BIT_CLEAR_REG_CC(x) | BIT_REG_CC(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_CKDELAY_AFE_V1				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_CKDLY_DIG					BIT(28)
#define BIT_CKDLY_USB					BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GPIO_V1				27
#define BIT_MASK_XTAL_GPIO_V1				0x7
#define BIT_XTAL_GPIO_V1(x)				(((x) & BIT_MASK_XTAL_GPIO_V1) << BIT_SHIFT_XTAL_GPIO_V1)
#define BITS_XTAL_GPIO_V1				(BIT_MASK_XTAL_GPIO_V1 << BIT_SHIFT_XTAL_GPIO_V1)
#define BIT_CLEAR_XTAL_GPIO_V1(x)			((x) & (~BITS_XTAL_GPIO_V1))
#define BIT_GET_XTAL_GPIO_V1(x)			(((x) >> BIT_SHIFT_XTAL_GPIO_V1) & BIT_MASK_XTAL_GPIO_V1)
#define BIT_SET_XTAL_GPIO_V1(x, v)			(BIT_CLEAR_XTAL_GPIO_V1(x) | BIT_XTAL_GPIO_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_CKDLY_AFE					BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_CAP_XI				25
#define BIT_MASK_XTAL_CAP_XI				0x3f
#define BIT_XTAL_CAP_XI(x)				(((x) & BIT_MASK_XTAL_CAP_XI) << BIT_SHIFT_XTAL_CAP_XI)
#define BITS_XTAL_CAP_XI				(BIT_MASK_XTAL_CAP_XI << BIT_SHIFT_XTAL_CAP_XI)
#define BIT_CLEAR_XTAL_CAP_XI(x)			((x) & (~BITS_XTAL_CAP_XI))
#define BIT_GET_XTAL_CAP_XI(x)				(((x) >> BIT_SHIFT_XTAL_CAP_XI) & BIT_MASK_XTAL_CAP_XI)
#define BIT_SET_XTAL_CAP_XI(x, v)			(BIT_CLEAR_XTAL_CAP_XI(x) | BIT_XTAL_CAP_XI(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DIG_DRV_1_TO_0			25
#define BIT_MASK_XTAL_DIG_DRV_1_TO_0			0x3
#define BIT_XTAL_DIG_DRV_1_TO_0(x)			(((x) & BIT_MASK_XTAL_DIG_DRV_1_TO_0) << BIT_SHIFT_XTAL_DIG_DRV_1_TO_0)
#define BITS_XTAL_DIG_DRV_1_TO_0			(BIT_MASK_XTAL_DIG_DRV_1_TO_0 << BIT_SHIFT_XTAL_DIG_DRV_1_TO_0)
#define BIT_CLEAR_XTAL_DIG_DRV_1_TO_0(x)		((x) & (~BITS_XTAL_DIG_DRV_1_TO_0))
#define BIT_GET_XTAL_DIG_DRV_1_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_DIG_DRV_1_TO_0) & BIT_MASK_XTAL_DIG_DRV_1_TO_0)
#define BIT_SET_XTAL_DIG_DRV_1_TO_0(x, v)		(BIT_CLEAR_XTAL_DIG_DRV_1_TO_0(x) | BIT_XTAL_DIG_DRV_1_TO_0(v))

#define BIT_XTAL_GDIG					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GPIO				23
#define BIT_MASK_XTAL_GPIO				0x7
#define BIT_XTAL_GPIO(x)				(((x) & BIT_MASK_XTAL_GPIO) << BIT_SHIFT_XTAL_GPIO)
#define BITS_XTAL_GPIO					(BIT_MASK_XTAL_GPIO << BIT_SHIFT_XTAL_GPIO)
#define BIT_CLEAR_XTAL_GPIO(x)				((x) & (~BITS_XTAL_GPIO))
#define BIT_GET_XTAL_GPIO(x)				(((x) >> BIT_SHIFT_XTAL_GPIO) & BIT_MASK_XTAL_GPIO)
#define BIT_SET_XTAL_GPIO(x, v)			(BIT_CLEAR_XTAL_GPIO(x) | BIT_XTAL_GPIO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DRV_DIGI			23
#define BIT_MASK_XTAL_DRV_DIGI				0x3
#define BIT_XTAL_DRV_DIGI(x)				(((x) & BIT_MASK_XTAL_DRV_DIGI) << BIT_SHIFT_XTAL_DRV_DIGI)
#define BITS_XTAL_DRV_DIGI				(BIT_MASK_XTAL_DRV_DIGI << BIT_SHIFT_XTAL_DRV_DIGI)
#define BIT_CLEAR_XTAL_DRV_DIGI(x)			((x) & (~BITS_XTAL_DRV_DIGI))
#define BIT_GET_XTAL_DRV_DIGI(x)			(((x) >> BIT_SHIFT_XTAL_DRV_DIGI) & BIT_MASK_XTAL_DRV_DIGI)
#define BIT_SET_XTAL_DRV_DIGI(x, v)			(BIT_CLEAR_XTAL_DRV_DIGI(x) | BIT_XTAL_DRV_DIGI(v))

#define BIT_XTAL_DRV_USB_BIT1				BIT(22)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_DRV_RF_LATCH_V2			BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0			22
#define BIT_MASK_XTAL_RDRV_RF2_1_TO_0			0x3
#define BIT_XTAL_RDRV_RF2_1_TO_0(x)			(((x) & BIT_MASK_XTAL_RDRV_RF2_1_TO_0) << BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0)
#define BITS_XTAL_RDRV_RF2_1_TO_0			(BIT_MASK_XTAL_RDRV_RF2_1_TO_0 << BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0)
#define BIT_CLEAR_XTAL_RDRV_RF2_1_TO_0(x)		((x) & (~BITS_XTAL_RDRV_RF2_1_TO_0))
#define BIT_GET_XTAL_RDRV_RF2_1_TO_0(x)		(((x) >> BIT_SHIFT_XTAL_RDRV_RF2_1_TO_0) & BIT_MASK_XTAL_RDRV_RF2_1_TO_0)
#define BIT_SET_XTAL_RDRV_RF2_1_TO_0(x, v)		(BIT_CLEAR_XTAL_RDRV_RF2_1_TO_0(x) | BIT_XTAL_RDRV_RF2_1_TO_0(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GMN_4					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_MAC_CLK_SEL				20
#define BIT_MASK_MAC_CLK_SEL				0x3
#define BIT_MAC_CLK_SEL(x)				(((x) & BIT_MASK_MAC_CLK_SEL) << BIT_SHIFT_MAC_CLK_SEL)
#define BITS_MAC_CLK_SEL				(BIT_MASK_MAC_CLK_SEL << BIT_SHIFT_MAC_CLK_SEL)
#define BIT_CLEAR_MAC_CLK_SEL(x)			((x) & (~BITS_MAC_CLK_SEL))
#define BIT_GET_MAC_CLK_SEL(x)				(((x) >> BIT_SHIFT_MAC_CLK_SEL) & BIT_MASK_MAC_CLK_SEL)
#define BIT_SET_MAC_CLK_SEL(x, v)			(BIT_CLEAR_MAC_CLK_SEL(x) | BIT_MAC_CLK_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_DRV_USB_BIT0				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_RDRV_1_TO_0			19
#define BIT_MASK_XTAL_RDRV_1_TO_0			0x3
#define BIT_XTAL_RDRV_1_TO_0(x)			(((x) & BIT_MASK_XTAL_RDRV_1_TO_0) << BIT_SHIFT_XTAL_RDRV_1_TO_0)
#define BITS_XTAL_RDRV_1_TO_0				(BIT_MASK_XTAL_RDRV_1_TO_0 << BIT_SHIFT_XTAL_RDRV_1_TO_0)
#define BIT_CLEAR_XTAL_RDRV_1_TO_0(x)			((x) & (~BITS_XTAL_RDRV_1_TO_0))
#define BIT_GET_XTAL_RDRV_1_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_RDRV_1_TO_0) & BIT_MASK_XTAL_RDRV_1_TO_0)
#define BIT_SET_XTAL_RDRV_1_TO_0(x, v)			(BIT_CLEAR_XTAL_RDRV_1_TO_0(x) | BIT_XTAL_RDRV_1_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DIG_DRV				18
#define BIT_MASK_XTAL_DIG_DRV				0x3
#define BIT_XTAL_DIG_DRV(x)				(((x) & BIT_MASK_XTAL_DIG_DRV) << BIT_SHIFT_XTAL_DIG_DRV)
#define BITS_XTAL_DIG_DRV				(BIT_MASK_XTAL_DIG_DRV << BIT_SHIFT_XTAL_DIG_DRV)
#define BIT_CLEAR_XTAL_DIG_DRV(x)			((x) & (~BITS_XTAL_DIG_DRV))
#define BIT_GET_XTAL_DIG_DRV(x)			(((x) >> BIT_SHIFT_XTAL_DIG_DRV) & BIT_MASK_XTAL_DIG_DRV)
#define BIT_SET_XTAL_DIG_DRV(x, v)			(BIT_CLEAR_XTAL_DIG_DRV(x) | BIT_XTAL_DIG_DRV(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GMP_4					BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GATE_DIG				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DRV_AFE				17
#define BIT_MASK_XTAL_DRV_AFE				0x3
#define BIT_XTAL_DRV_AFE(x)				(((x) & BIT_MASK_XTAL_DRV_AFE) << BIT_SHIFT_XTAL_DRV_AFE)
#define BITS_XTAL_DRV_AFE				(BIT_MASK_XTAL_DRV_AFE << BIT_SHIFT_XTAL_DRV_AFE)
#define BIT_CLEAR_XTAL_DRV_AFE(x)			((x) & (~BITS_XTAL_DRV_AFE))
#define BIT_GET_XTAL_DRV_AFE(x)			(((x) >> BIT_SHIFT_XTAL_DRV_AFE) & BIT_MASK_XTAL_DRV_AFE)
#define BIT_SET_XTAL_DRV_AFE(x, v)			(BIT_CLEAR_XTAL_DRV_AFE(x) | BIT_XTAL_DRV_AFE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_FREE_TXPG2			(Offset 0x10250024) */


#define BIT_SHIFT_PUB_FREEPG_V1			16
#define BIT_MASK_PUB_FREEPG_V1				0xfff
#define BIT_PUB_FREEPG_V1(x)				(((x) & BIT_MASK_PUB_FREEPG_V1) << BIT_SHIFT_PUB_FREEPG_V1)
#define BITS_PUB_FREEPG_V1				(BIT_MASK_PUB_FREEPG_V1 << BIT_SHIFT_PUB_FREEPG_V1)
#define BIT_CLEAR_PUB_FREEPG_V1(x)			((x) & (~BITS_PUB_FREEPG_V1))
#define BIT_GET_PUB_FREEPG_V1(x)			(((x) >> BIT_SHIFT_PUB_FREEPG_V1) & BIT_MASK_PUB_FREEPG_V1)
#define BIT_SET_PUB_FREEPG_V1(x, v)			(BIT_CLEAR_PUB_FREEPG_V1(x) | BIT_PUB_FREEPG_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_ADRV_1_TO_0			16
#define BIT_MASK_XTAL_ADRV_1_TO_0			0x3
#define BIT_XTAL_ADRV_1_TO_0(x)			(((x) & BIT_MASK_XTAL_ADRV_1_TO_0) << BIT_SHIFT_XTAL_ADRV_1_TO_0)
#define BITS_XTAL_ADRV_1_TO_0				(BIT_MASK_XTAL_ADRV_1_TO_0 << BIT_SHIFT_XTAL_ADRV_1_TO_0)
#define BIT_CLEAR_XTAL_ADRV_1_TO_0(x)			((x) & (~BITS_XTAL_ADRV_1_TO_0))
#define BIT_GET_XTAL_ADRV_1_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_ADRV_1_TO_0) & BIT_MASK_XTAL_ADRV_1_TO_0)
#define BIT_SET_XTAL_ADRV_1_TO_0(x, v)			(BIT_CLEAR_XTAL_ADRV_1_TO_0(x) | BIT_XTAL_ADRV_1_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_RF_DRV				15
#define BIT_MASK_XTAL_RF_DRV				0x3
#define BIT_XTAL_RF_DRV(x)				(((x) & BIT_MASK_XTAL_RF_DRV) << BIT_SHIFT_XTAL_RF_DRV)
#define BITS_XTAL_RF_DRV				(BIT_MASK_XTAL_RF_DRV << BIT_SHIFT_XTAL_RF_DRV)
#define BIT_CLEAR_XTAL_RF_DRV(x)			((x) & (~BITS_XTAL_RF_DRV))
#define BIT_GET_XTAL_RF_DRV(x)				(((x) >> BIT_SHIFT_XTAL_RF_DRV) & BIT_MASK_XTAL_RF_DRV)
#define BIT_SET_XTAL_RF_DRV(x, v)			(BIT_CLEAR_XTAL_RF_DRV(x) | BIT_XTAL_RF_DRV(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DRV_RF2				15
#define BIT_MASK_XTAL_DRV_RF2				0x3
#define BIT_XTAL_DRV_RF2(x)				(((x) & BIT_MASK_XTAL_DRV_RF2) << BIT_SHIFT_XTAL_DRV_RF2)
#define BITS_XTAL_DRV_RF2				(BIT_MASK_XTAL_DRV_RF2 << BIT_SHIFT_XTAL_DRV_RF2)
#define BIT_CLEAR_XTAL_DRV_RF2(x)			((x) & (~BITS_XTAL_DRV_RF2))
#define BIT_GET_XTAL_DRV_RF2(x)			(((x) >> BIT_SHIFT_XTAL_DRV_RF2) & BIT_MASK_XTAL_DRV_RF2)
#define BIT_SET_XTAL_DRV_RF2(x, v)			(BIT_CLEAR_XTAL_DRV_RF2(x) | BIT_XTAL_DRV_RF2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GAFE					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_RF_GATE				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DRV_RF1				13
#define BIT_MASK_XTAL_DRV_RF1				0x3
#define BIT_XTAL_DRV_RF1(x)				(((x) & BIT_MASK_XTAL_DRV_RF1) << BIT_SHIFT_XTAL_DRV_RF1)
#define BITS_XTAL_DRV_RF1				(BIT_MASK_XTAL_DRV_RF1 << BIT_SHIFT_XTAL_DRV_RF1)
#define BIT_CLEAR_XTAL_DRV_RF1(x)			((x) & (~BITS_XTAL_DRV_RF1))
#define BIT_GET_XTAL_DRV_RF1(x)			(((x) >> BIT_SHIFT_XTAL_DRV_RF1) & BIT_MASK_XTAL_DRV_RF1)
#define BIT_SET_XTAL_DRV_RF1(x, v)			(BIT_CLEAR_XTAL_DRV_RF1(x) | BIT_XTAL_DRV_RF1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_DDRV_1_TO_0			13
#define BIT_MASK_XTAL_DDRV_1_TO_0			0x3
#define BIT_XTAL_DDRV_1_TO_0(x)			(((x) & BIT_MASK_XTAL_DDRV_1_TO_0) << BIT_SHIFT_XTAL_DDRV_1_TO_0)
#define BITS_XTAL_DDRV_1_TO_0				(BIT_MASK_XTAL_DDRV_1_TO_0 << BIT_SHIFT_XTAL_DDRV_1_TO_0)
#define BIT_CLEAR_XTAL_DDRV_1_TO_0(x)			((x) & (~BITS_XTAL_DDRV_1_TO_0))
#define BIT_GET_XTAL_DDRV_1_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_DDRV_1_TO_0) & BIT_MASK_XTAL_DDRV_1_TO_0)
#define BIT_SET_XTAL_DDRV_1_TO_0(x, v)			(BIT_CLEAR_XTAL_DDRV_1_TO_0(x) | BIT_XTAL_DDRV_1_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_AFE_DRV				12
#define BIT_MASK_XTAL_AFE_DRV				0x3
#define BIT_XTAL_AFE_DRV(x)				(((x) & BIT_MASK_XTAL_AFE_DRV) << BIT_SHIFT_XTAL_AFE_DRV)
#define BITS_XTAL_AFE_DRV				(BIT_MASK_XTAL_AFE_DRV << BIT_SHIFT_XTAL_AFE_DRV)
#define BIT_CLEAR_XTAL_AFE_DRV(x)			((x) & (~BITS_XTAL_AFE_DRV))
#define BIT_GET_XTAL_AFE_DRV(x)			(((x) >> BIT_SHIFT_XTAL_AFE_DRV) & BIT_MASK_XTAL_AFE_DRV)
#define BIT_SET_XTAL_AFE_DRV(x, v)			(BIT_CLEAR_XTAL_AFE_DRV(x) | BIT_XTAL_AFE_DRV(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_DELAY_DIGI				BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GUSB					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GATE_AFE				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_DELAY_USB				BIT(11)
#define BIT_XTAL_DELAY_AFE				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_USB_DRV				9
#define BIT_MASK_XTAL_USB_DRV				0x3
#define BIT_XTAL_USB_DRV(x)				(((x) & BIT_MASK_XTAL_USB_DRV) << BIT_SHIFT_XTAL_USB_DRV)
#define BITS_XTAL_USB_DRV				(BIT_MASK_XTAL_USB_DRV << BIT_SHIFT_XTAL_USB_DRV)
#define BIT_CLEAR_XTAL_USB_DRV(x)			((x) & (~BITS_XTAL_USB_DRV))
#define BIT_GET_XTAL_USB_DRV(x)			(((x) >> BIT_SHIFT_XTAL_USB_DRV) & BIT_MASK_XTAL_USB_DRV)
#define BIT_SET_XTAL_USB_DRV(x, v)			(BIT_CLEAR_XTAL_USB_DRV(x) | BIT_XTAL_USB_DRV(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_LP_V1					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GATE_USB				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_GM_SEP_V1				BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMN_3_TO_0			8
#define BIT_MASK_XTAL_GMN_3_TO_0			0xf
#define BIT_XTAL_GMN_3_TO_0(x)				(((x) & BIT_MASK_XTAL_GMN_3_TO_0) << BIT_SHIFT_XTAL_GMN_3_TO_0)
#define BITS_XTAL_GMN_3_TO_0				(BIT_MASK_XTAL_GMN_3_TO_0 << BIT_SHIFT_XTAL_GMN_3_TO_0)
#define BIT_CLEAR_XTAL_GMN_3_TO_0(x)			((x) & (~BITS_XTAL_GMN_3_TO_0))
#define BIT_GET_XTAL_GMN_3_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_GMN_3_TO_0) & BIT_MASK_XTAL_GMN_3_TO_0)
#define BIT_SET_XTAL_GMN_3_TO_0(x, v)			(BIT_CLEAR_XTAL_GMN_3_TO_0(x) | BIT_XTAL_GMN_3_TO_0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_LDO_VREF_V1				BIT(7)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_LDO_VREF			7
#define BIT_MASK_XTAL_LDO_VREF				0x7
#define BIT_XTAL_LDO_VREF(x)				(((x) & BIT_MASK_XTAL_LDO_VREF) << BIT_SHIFT_XTAL_LDO_VREF)
#define BITS_XTAL_LDO_VREF				(BIT_MASK_XTAL_LDO_VREF << BIT_SHIFT_XTAL_LDO_VREF)
#define BIT_CLEAR_XTAL_LDO_VREF(x)			((x) & (~BITS_XTAL_LDO_VREF))
#define BIT_GET_XTAL_LDO_VREF(x)			(((x) >> BIT_SHIFT_XTAL_LDO_VREF) & BIT_MASK_XTAL_LDO_VREF)
#define BIT_SET_XTAL_LDO_VREF(x, v)			(BIT_CLEAR_XTAL_LDO_VREF(x) | BIT_XTAL_LDO_VREF(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_XQSEL_RF				BIT(6)
#define BIT_XTAL_XQSEL					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMP				4
#define BIT_MASK_XTAL_GMP				0xf
#define BIT_XTAL_GMP(x)				(((x) & BIT_MASK_XTAL_GMP) << BIT_SHIFT_XTAL_GMP)
#define BITS_XTAL_GMP					(BIT_MASK_XTAL_GMP << BIT_SHIFT_XTAL_GMP)
#define BIT_CLEAR_XTAL_GMP(x)				((x) & (~BITS_XTAL_GMP))
#define BIT_GET_XTAL_GMP(x)				(((x) >> BIT_SHIFT_XTAL_GMP) & BIT_MASK_XTAL_GMP)
#define BIT_SET_XTAL_GMP(x, v)				(BIT_CLEAR_XTAL_GMP(x) | BIT_XTAL_GMP(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMP_3_TO_0			4
#define BIT_MASK_XTAL_GMP_3_TO_0			0xf
#define BIT_XTAL_GMP_3_TO_0(x)				(((x) & BIT_MASK_XTAL_GMP_3_TO_0) << BIT_SHIFT_XTAL_GMP_3_TO_0)
#define BITS_XTAL_GMP_3_TO_0				(BIT_MASK_XTAL_GMP_3_TO_0 << BIT_SHIFT_XTAL_GMP_3_TO_0)
#define BIT_CLEAR_XTAL_GMP_3_TO_0(x)			((x) & (~BITS_XTAL_GMP_3_TO_0))
#define BIT_GET_XTAL_GMP_3_TO_0(x)			(((x) >> BIT_SHIFT_XTAL_GMP_3_TO_0) & BIT_MASK_XTAL_GMP_3_TO_0)
#define BIT_SET_XTAL_GMP_3_TO_0(x, v)			(BIT_CLEAR_XTAL_GMP_3_TO_0(x) | BIT_XTAL_GMP_3_TO_0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMN_V1				3
#define BIT_MASK_XTAL_GMN_V1				0x3
#define BIT_XTAL_GMN_V1(x)				(((x) & BIT_MASK_XTAL_GMN_V1) << BIT_SHIFT_XTAL_GMN_V1)
#define BITS_XTAL_GMN_V1				(BIT_MASK_XTAL_GMN_V1 << BIT_SHIFT_XTAL_GMN_V1)
#define BIT_CLEAR_XTAL_GMN_V1(x)			((x) & (~BITS_XTAL_GMN_V1))
#define BIT_GET_XTAL_GMN_V1(x)				(((x) >> BIT_SHIFT_XTAL_GMN_V1) & BIT_MASK_XTAL_GMN_V1)
#define BIT_SET_XTAL_GMN_V1(x, v)			(BIT_CLEAR_XTAL_GMN_V1(x) | BIT_XTAL_GMN_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMN_V2				3
#define BIT_MASK_XTAL_GMN_V2				0x3
#define BIT_XTAL_GMN_V2(x)				(((x) & BIT_MASK_XTAL_GMN_V2) << BIT_SHIFT_XTAL_GMN_V2)
#define BITS_XTAL_GMN_V2				(BIT_MASK_XTAL_GMN_V2 << BIT_SHIFT_XTAL_GMN_V2)
#define BIT_CLEAR_XTAL_GMN_V2(x)			((x) & (~BITS_XTAL_GMN_V2))
#define BIT_GET_XTAL_GMN_V2(x)				(((x) >> BIT_SHIFT_XTAL_GMN_V2) & BIT_MASK_XTAL_GMN_V2)
#define BIT_SET_XTAL_GMN_V2(x, v)			(BIT_CLEAR_XTAL_GMN_V2(x) | BIT_XTAL_GMN_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_LDO_VCM				2
#define BIT_MASK_XTAL_LDO_VCM				0x3
#define BIT_XTAL_LDO_VCM(x)				(((x) & BIT_MASK_XTAL_LDO_VCM) << BIT_SHIFT_XTAL_LDO_VCM)
#define BITS_XTAL_LDO_VCM				(BIT_MASK_XTAL_LDO_VCM << BIT_SHIFT_XTAL_LDO_VCM)
#define BIT_CLEAR_XTAL_LDO_VCM(x)			((x) & (~BITS_XTAL_LDO_VCM))
#define BIT_GET_XTAL_LDO_VCM(x)			(((x) >> BIT_SHIFT_XTAL_LDO_VCM) & BIT_MASK_XTAL_LDO_VCM)
#define BIT_SET_XTAL_LDO_VCM(x, v)			(BIT_CLEAR_XTAL_LDO_VCM(x) | BIT_XTAL_LDO_VCM(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_DRV_LDO_VCM_1_TO_0			2
#define BIT_MASK_DRV_LDO_VCM_1_TO_0			0x3
#define BIT_DRV_LDO_VCM_1_TO_0(x)			(((x) & BIT_MASK_DRV_LDO_VCM_1_TO_0) << BIT_SHIFT_DRV_LDO_VCM_1_TO_0)
#define BITS_DRV_LDO_VCM_1_TO_0			(BIT_MASK_DRV_LDO_VCM_1_TO_0 << BIT_SHIFT_DRV_LDO_VCM_1_TO_0)
#define BIT_CLEAR_DRV_LDO_VCM_1_TO_0(x)		((x) & (~BITS_DRV_LDO_VCM_1_TO_0))
#define BIT_GET_DRV_LDO_VCM_1_TO_0(x)			(((x) >> BIT_SHIFT_DRV_LDO_VCM_1_TO_0) & BIT_MASK_DRV_LDO_VCM_1_TO_0)
#define BIT_SET_DRV_LDO_VCM_1_TO_0(x, v)		(BIT_CLEAR_DRV_LDO_VCM_1_TO_0(x) | BIT_DRV_LDO_VCM_1_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_DUMMY					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMP_V1				1
#define BIT_MASK_XTAL_GMP_V1				0x3
#define BIT_XTAL_GMP_V1(x)				(((x) & BIT_MASK_XTAL_GMP_V1) << BIT_SHIFT_XTAL_GMP_V1)
#define BITS_XTAL_GMP_V1				(BIT_MASK_XTAL_GMP_V1 << BIT_SHIFT_XTAL_GMP_V1)
#define BIT_CLEAR_XTAL_GMP_V1(x)			((x) & (~BITS_XTAL_GMP_V1))
#define BIT_GET_XTAL_GMP_V1(x)				(((x) >> BIT_SHIFT_XTAL_GMP_V1) & BIT_MASK_XTAL_GMP_V1)
#define BIT_SET_XTAL_GMP_V1(x, v)			(BIT_CLEAR_XTAL_GMP_V1(x) | BIT_XTAL_GMP_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XQSEL_RF_INITIAL_V1			BIT(1)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */


#define BIT_SHIFT_XTAL_GMP_V2				1
#define BIT_MASK_XTAL_GMP_V2				0x3
#define BIT_XTAL_GMP_V2(x)				(((x) & BIT_MASK_XTAL_GMP_V2) << BIT_SHIFT_XTAL_GMP_V2)
#define BITS_XTAL_GMP_V2				(BIT_MASK_XTAL_GMP_V2 << BIT_SHIFT_XTAL_GMP_V2)
#define BIT_CLEAR_XTAL_GMP_V2(x)			((x) & (~BITS_XTAL_GMP_V2))
#define BIT_GET_XTAL_GMP_V2(x)				(((x) >> BIT_SHIFT_XTAL_GMP_V2) & BIT_MASK_XTAL_GMP_V2)
#define BIT_SET_XTAL_GMP_V2(x, v)			(BIT_CLEAR_XTAL_GMP_V2(x) | BIT_XTAL_GMP_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL1				(Offset 0x0024) */

#define BIT_XTAL_EN					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_FREE_TXPG2			(Offset 0x10250024) */


#define BIT_SHIFT_LOW_FREEPG_V1			0
#define BIT_MASK_LOW_FREEPG_V1				0xfff
#define BIT_LOW_FREEPG_V1(x)				(((x) & BIT_MASK_LOW_FREEPG_V1) << BIT_SHIFT_LOW_FREEPG_V1)
#define BITS_LOW_FREEPG_V1				(BIT_MASK_LOW_FREEPG_V1 << BIT_SHIFT_LOW_FREEPG_V1)
#define BIT_CLEAR_LOW_FREEPG_V1(x)			((x) & (~BITS_LOW_FREEPG_V1))
#define BIT_GET_LOW_FREEPG_V1(x)			(((x) >> BIT_SHIFT_LOW_FREEPG_V1) & BIT_MASK_LOW_FREEPG_V1)
#define BIT_SET_LOW_FREEPG_V1(x, v)			(BIT_CLEAR_LOW_FREEPG_V1(x) | BIT_LOW_FREEPG_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_C3_V4				30
#define BIT_MASK_REG_C3_V4				0x3
#define BIT_REG_C3_V4(x)				(((x) & BIT_MASK_REG_C3_V4) << BIT_SHIFT_REG_C3_V4)
#define BITS_REG_C3_V4					(BIT_MASK_REG_C3_V4 << BIT_SHIFT_REG_C3_V4)
#define BIT_CLEAR_REG_C3_V4(x)				((x) & (~BITS_REG_C3_V4))
#define BIT_GET_REG_C3_V4(x)				(((x) >> BIT_SHIFT_REG_C3_V4) & BIT_MASK_REG_C3_V4)
#define BIT_SET_REG_C3_V4(x, v)			(BIT_CLEAR_REG_C3_V4(x) | BIT_REG_C3_V4(v))

#define BIT_REG_CP_BIT1				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_XTAL_GMN				28
#define BIT_MASK_XTAL_GMN				0xf
#define BIT_XTAL_GMN(x)				(((x) & BIT_MASK_XTAL_GMN) << BIT_SHIFT_XTAL_GMN)
#define BITS_XTAL_GMN					(BIT_MASK_XTAL_GMN << BIT_SHIFT_XTAL_GMN)
#define BIT_CLEAR_XTAL_GMN(x)				((x) & (~BITS_XTAL_GMN))
#define BIT_GET_XTAL_GMN(x)				(((x) >> BIT_SHIFT_XTAL_GMN) & BIT_MASK_XTAL_GMN)
#define BIT_SET_XTAL_GMN(x, v)				(BIT_CLEAR_XTAL_GMN(x) | BIT_XTAL_GMN(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_IOOFFSET_3_TO_0			28
#define BIT_MASK_IOOFFSET_3_TO_0			0xf
#define BIT_IOOFFSET_3_TO_0(x)				(((x) & BIT_MASK_IOOFFSET_3_TO_0) << BIT_SHIFT_IOOFFSET_3_TO_0)
#define BITS_IOOFFSET_3_TO_0				(BIT_MASK_IOOFFSET_3_TO_0 << BIT_SHIFT_IOOFFSET_3_TO_0)
#define BIT_CLEAR_IOOFFSET_3_TO_0(x)			((x) & (~BITS_IOOFFSET_3_TO_0))
#define BIT_GET_IOOFFSET_3_TO_0(x)			(((x) >> BIT_SHIFT_IOOFFSET_3_TO_0) & BIT_MASK_IOOFFSET_3_TO_0)
#define BIT_SET_IOOFFSET_3_TO_0(x, v)			(BIT_CLEAR_IOOFFSET_3_TO_0(x) | BIT_IOOFFSET_3_TO_0(v))

#define BIT_REG_FREF_SEL_BIT3_V1			BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_VO_AD				26
#define BIT_MASK_REG_VO_AD				0x3
#define BIT_REG_VO_AD(x)				(((x) & BIT_MASK_REG_VO_AD) << BIT_SHIFT_REG_VO_AD)
#define BITS_REG_VO_AD					(BIT_MASK_REG_VO_AD << BIT_SHIFT_REG_VO_AD)
#define BIT_CLEAR_REG_VO_AD(x)				((x) & (~BITS_REG_VO_AD))
#define BIT_GET_REG_VO_AD(x)				(((x) >> BIT_SHIFT_REG_VO_AD) & BIT_MASK_REG_VO_AD)
#define BIT_SET_REG_VO_AD(x, v)			(BIT_CLEAR_REG_VO_AD(x) | BIT_REG_VO_AD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_RS_SET_V2				26
#define BIT_MASK_RS_SET_V2				0x7
#define BIT_RS_SET_V2(x)				(((x) & BIT_MASK_RS_SET_V2) << BIT_SHIFT_RS_SET_V2)
#define BITS_RS_SET_V2					(BIT_MASK_RS_SET_V2 << BIT_SHIFT_RS_SET_V2)
#define BIT_CLEAR_RS_SET_V2(x)				((x) & (~BITS_RS_SET_V2))
#define BIT_GET_RS_SET_V2(x)				(((x) >> BIT_SHIFT_RS_SET_V2) & BIT_MASK_RS_SET_V2)
#define BIT_SET_RS_SET_V2(x, v)			(BIT_CLEAR_RS_SET_V2(x) | BIT_RS_SET_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_RS_V4				26
#define BIT_MASK_REG_RS_V4				0x7
#define BIT_REG_RS_V4(x)				(((x) & BIT_MASK_REG_RS_V4) << BIT_SHIFT_REG_RS_V4)
#define BITS_REG_RS_V4					(BIT_MASK_REG_RS_V4 << BIT_SHIFT_REG_RS_V4)
#define BIT_CLEAR_REG_RS_V4(x)				((x) & (~BITS_REG_RS_V4))
#define BIT_GET_REG_RS_V4(x)				(((x) >> BIT_SHIFT_REG_RS_V4) & BIT_MASK_REG_RS_V4)
#define BIT_SET_REG_RS_V4(x, v)			(BIT_CLEAR_REG_RS_V4(x) | BIT_REG_RS_V4(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_V12ADJ_V1				25
#define BIT_MASK_V12ADJ_V1				0x3
#define BIT_V12ADJ_V1(x)				(((x) & BIT_MASK_V12ADJ_V1) << BIT_SHIFT_V12ADJ_V1)
#define BITS_V12ADJ_V1					(BIT_MASK_V12ADJ_V1 << BIT_SHIFT_V12ADJ_V1)
#define BIT_CLEAR_V12ADJ_V1(x)				((x) & (~BITS_V12ADJ_V1))
#define BIT_GET_V12ADJ_V1(x)				(((x) >> BIT_SHIFT_V12ADJ_V1) & BIT_MASK_V12ADJ_V1)
#define BIT_SET_V12ADJ_V1(x, v)			(BIT_CLEAR_V12ADJ_V1(x) | BIT_V12ADJ_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */


#define BIT_SHIFT_NOAC_OQT_FREEPG_V1			24
#define BIT_MASK_NOAC_OQT_FREEPG_V1			0xff
#define BIT_NOAC_OQT_FREEPG_V1(x)			(((x) & BIT_MASK_NOAC_OQT_FREEPG_V1) << BIT_SHIFT_NOAC_OQT_FREEPG_V1)
#define BITS_NOAC_OQT_FREEPG_V1			(BIT_MASK_NOAC_OQT_FREEPG_V1 << BIT_SHIFT_NOAC_OQT_FREEPG_V1)
#define BIT_CLEAR_NOAC_OQT_FREEPG_V1(x)		((x) & (~BITS_NOAC_OQT_FREEPG_V1))
#define BIT_GET_NOAC_OQT_FREEPG_V1(x)			(((x) >> BIT_SHIFT_NOAC_OQT_FREEPG_V1) & BIT_MASK_NOAC_OQT_FREEPG_V1)
#define BIT_SET_NOAC_OQT_FREEPG_V1(x, v)		(BIT_CLEAR_NOAC_OQT_FREEPG_V1(x) | BIT_NOAC_OQT_FREEPG_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_PS_EN					BIT(24)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG__CS				24
#define BIT_MASK_REG__CS				0x3
#define BIT_REG__CS(x)					(((x) & BIT_MASK_REG__CS) << BIT_SHIFT_REG__CS)
#define BITS_REG__CS					(BIT_MASK_REG__CS << BIT_SHIFT_REG__CS)
#define BIT_CLEAR_REG__CS(x)				((x) & (~BITS_REG__CS))
#define BIT_GET_REG__CS(x)				(((x) >> BIT_SHIFT_REG__CS) & BIT_MASK_REG__CS)
#define BIT_SET_REG__CS(x, v)				(BIT_CLEAR_REG__CS(x) | BIT_REG__CS(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_EN_CK320M_V1				BIT(23)
#define BIT_AGPIO					BIT(22)
#define BIT_REG_EDGE_SEL_V1				BIT(21)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_CP_OFFSET			21
#define BIT_MASK_REG_CP_OFFSET				0x7
#define BIT_REG_CP_OFFSET(x)				(((x) & BIT_MASK_REG_CP_OFFSET) << BIT_SHIFT_REG_CP_OFFSET)
#define BITS_REG_CP_OFFSET				(BIT_MASK_REG_CP_OFFSET << BIT_SHIFT_REG_CP_OFFSET)
#define BIT_CLEAR_REG_CP_OFFSET(x)			((x) & (~BITS_REG_CP_OFFSET))
#define BIT_GET_REG_CP_OFFSET(x)			(((x) >> BIT_SHIFT_REG_CP_OFFSET) & BIT_MASK_REG_CP_OFFSET)
#define BIT_SET_REG_CP_OFFSET(x, v)			(BIT_CLEAR_REG_CP_OFFSET(x) | BIT_REG_CP_OFFSET(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_VCO_BIAS_0				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_CP_BIAS_V2				18
#define BIT_MASK_CP_BIAS_V2				0x7
#define BIT_CP_BIAS_V2(x)				(((x) & BIT_MASK_CP_BIAS_V2) << BIT_SHIFT_CP_BIAS_V2)
#define BITS_CP_BIAS_V2				(BIT_MASK_CP_BIAS_V2 << BIT_SHIFT_CP_BIAS_V2)
#define BIT_CLEAR_CP_BIAS_V2(x)			((x) & (~BITS_CP_BIAS_V2))
#define BIT_GET_CP_BIAS_V2(x)				(((x) >> BIT_SHIFT_CP_BIAS_V2) & BIT_MASK_CP_BIAS_V2)
#define BIT_SET_CP_BIAS_V2(x, v)			(BIT_CLEAR_CP_BIAS_V2(x) | BIT_CP_BIAS_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_CP_BIAS				18
#define BIT_MASK_CP_BIAS				0x7
#define BIT_CP_BIAS(x)					(((x) & BIT_MASK_CP_BIAS) << BIT_SHIFT_CP_BIAS)
#define BITS_CP_BIAS					(BIT_MASK_CP_BIAS << BIT_SHIFT_CP_BIAS)
#define BIT_CLEAR_CP_BIAS(x)				((x) & (~BITS_CP_BIAS))
#define BIT_GET_CP_BIAS(x)				(((x) >> BIT_SHIFT_CP_BIAS) & BIT_MASK_CP_BIAS)
#define BIT_SET_CP_BIAS(x, v)				(BIT_CLEAR_CP_BIAS(x) | BIT_CP_BIAS(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1		17
#define BIT_MASK_REG_PLLBIAS_2_TO_0_V1			0x7
#define BIT_REG_PLLBIAS_2_TO_0_V1(x)			(((x) & BIT_MASK_REG_PLLBIAS_2_TO_0_V1) << BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1)
#define BITS_REG_PLLBIAS_2_TO_0_V1			(BIT_MASK_REG_PLLBIAS_2_TO_0_V1 << BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1)
#define BIT_CLEAR_REG_PLLBIAS_2_TO_0_V1(x)		((x) & (~BITS_REG_PLLBIAS_2_TO_0_V1))
#define BIT_GET_REG_PLLBIAS_2_TO_0_V1(x)		(((x) >> BIT_SHIFT_REG_PLLBIAS_2_TO_0_V1) & BIT_MASK_REG_PLLBIAS_2_TO_0_V1)
#define BIT_SET_REG_PLLBIAS_2_TO_0_V1(x, v)		(BIT_CLEAR_REG_PLLBIAS_2_TO_0_V1(x) | BIT_REG_PLLBIAS_2_TO_0_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_IDOUBLE_V2				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_FREF_SEL					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_IDOUBLE_V1				BIT(16)

#define BIT_SHIFT_AC_OQT__FREEPG_V1			16
#define BIT_MASK_AC_OQT__FREEPG_V1			0xff
#define BIT_AC_OQT__FREEPG_V1(x)			(((x) & BIT_MASK_AC_OQT__FREEPG_V1) << BIT_SHIFT_AC_OQT__FREEPG_V1)
#define BITS_AC_OQT__FREEPG_V1				(BIT_MASK_AC_OQT__FREEPG_V1 << BIT_SHIFT_AC_OQT__FREEPG_V1)
#define BIT_CLEAR_AC_OQT__FREEPG_V1(x)			((x) & (~BITS_AC_OQT__FREEPG_V1))
#define BIT_GET_AC_OQT__FREEPG_V1(x)			(((x) >> BIT_SHIFT_AC_OQT__FREEPG_V1) & BIT_MASK_AC_OQT__FREEPG_V1)
#define BIT_SET_AC_OQT__FREEPG_V1(x, v)		(BIT_CLEAR_AC_OQT__FREEPG_V1(x) | BIT_AC_OQT__FREEPG_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */


#define BIT_SHIFT_AC_OQT_FREEPG_V1			16
#define BIT_MASK_AC_OQT_FREEPG_V1			0xff
#define BIT_AC_OQT_FREEPG_V1(x)			(((x) & BIT_MASK_AC_OQT_FREEPG_V1) << BIT_SHIFT_AC_OQT_FREEPG_V1)
#define BITS_AC_OQT_FREEPG_V1				(BIT_MASK_AC_OQT_FREEPG_V1 << BIT_SHIFT_AC_OQT_FREEPG_V1)
#define BIT_CLEAR_AC_OQT_FREEPG_V1(x)			((x) & (~BITS_AC_OQT_FREEPG_V1))
#define BIT_GET_AC_OQT_FREEPG_V1(x)			(((x) >> BIT_SHIFT_AC_OQT_FREEPG_V1) & BIT_MASK_AC_OQT_FREEPG_V1)
#define BIT_SET_AC_OQT_FREEPG_V1(x, v)			(BIT_CLEAR_AC_OQT_FREEPG_V1(x) | BIT_AC_OQT_FREEPG_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_EN_SYN					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_KVCO_V1				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_320_GATEB				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_MCCO_V2				14
#define BIT_MASK_MCCO_V2				0x3
#define BIT_MCCO_V2(x)					(((x) & BIT_MASK_MCCO_V2) << BIT_SHIFT_MCCO_V2)
#define BITS_MCCO_V2					(BIT_MASK_MCCO_V2 << BIT_SHIFT_MCCO_V2)
#define BIT_CLEAR_MCCO_V2(x)				((x) & (~BITS_MCCO_V2))
#define BIT_GET_MCCO_V2(x)				(((x) >> BIT_SHIFT_MCCO_V2) & BIT_MASK_MCCO_V2)
#define BIT_SET_MCCO_V2(x, v)				(BIT_CLEAR_MCCO_V2(x) | BIT_MCCO_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_VCO_BIAS_1_V1				BIT(14)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_MCCO					14
#define BIT_MASK_MCCO					0x3
#define BIT_MCCO(x)					(((x) & BIT_MASK_MCCO) << BIT_SHIFT_MCCO)
#define BITS_MCCO					(BIT_MASK_MCCO << BIT_SHIFT_MCCO)
#define BIT_CLEAR_MCCO(x)				((x) & (~BITS_MCCO))
#define BIT_GET_MCCO(x)				(((x) >> BIT_SHIFT_MCCO) & BIT_MASK_MCCO)
#define BIT_SET_MCCO(x, v)				(BIT_CLEAR_MCCO(x) | BIT_MCCO(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_DOGB_V1				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_CK320_EN				12
#define BIT_MASK_CK320_EN				0x3
#define BIT_CK320_EN(x)				(((x) & BIT_MASK_CK320_EN) << BIT_SHIFT_CK320_EN)
#define BITS_CK320_EN					(BIT_MASK_CK320_EN << BIT_SHIFT_CK320_EN)
#define BIT_CLEAR_CK320_EN(x)				((x) & (~BITS_CK320_EN))
#define BIT_GET_CK320_EN(x)				(((x) >> BIT_SHIFT_CK320_EN) & BIT_MASK_CK320_EN)
#define BIT_SET_CK320_EN(x, v)				(BIT_CLEAR_CK320_EN(x) | BIT_CK320_EN(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_LDO_SEL				12
#define BIT_MASK_REG_LDO_SEL				0x3
#define BIT_REG_LDO_SEL(x)				(((x) & BIT_MASK_REG_LDO_SEL) << BIT_SHIFT_REG_LDO_SEL)
#define BITS_REG_LDO_SEL				(BIT_MASK_REG_LDO_SEL << BIT_SHIFT_REG_LDO_SEL)
#define BIT_CLEAR_REG_LDO_SEL(x)			((x) & (~BITS_REG_LDO_SEL))
#define BIT_GET_REG_LDO_SEL(x)				(((x) >> BIT_SHIFT_REG_LDO_SEL) & BIT_MASK_REG_LDO_SEL)
#define BIT_SET_REG_LDO_SEL(x, v)			(BIT_CLEAR_REG_LDO_SEL(x) | BIT_REG_LDO_SEL(v))

#define BIT_REG_KVCO_V2				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_AGPIO_GPO					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_APLL_BIAS				8
#define BIT_MASK_APLL_BIAS				0x7
#define BIT_APLL_BIAS(x)				(((x) & BIT_MASK_APLL_BIAS) << BIT_SHIFT_APLL_BIAS)
#define BITS_APLL_BIAS					(BIT_MASK_APLL_BIAS << BIT_SHIFT_APLL_BIAS)
#define BIT_CLEAR_APLL_BIAS(x)				((x) & (~BITS_APLL_BIAS))
#define BIT_GET_APLL_BIAS(x)				(((x) >> BIT_SHIFT_APLL_BIAS) & BIT_MASK_APLL_BIAS)
#define BIT_SET_APLL_BIAS(x, v)			(BIT_CLEAR_APLL_BIAS(x) | BIT_APLL_BIAS(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_AGPIO_DRV				7
#define BIT_MASK_AGPIO_DRV				0x3
#define BIT_AGPIO_DRV(x)				(((x) & BIT_MASK_AGPIO_DRV) << BIT_SHIFT_AGPIO_DRV)
#define BITS_AGPIO_DRV					(BIT_MASK_AGPIO_DRV << BIT_SHIFT_AGPIO_DRV)
#define BIT_CLEAR_AGPIO_DRV(x)				((x) & (~BITS_AGPIO_DRV))
#define BIT_GET_AGPIO_DRV(x)				(((x) >> BIT_SHIFT_AGPIO_DRV) & BIT_MASK_AGPIO_DRV)
#define BIT_SET_AGPIO_DRV(x, v)			(BIT_CLEAR_AGPIO_DRV(x) | BIT_AGPIO_DRV(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_V15_3_TO_0_V1			7
#define BIT_MASK_REG_V15_3_TO_0_V1			0xf
#define BIT_REG_V15_3_TO_0_V1(x)			(((x) & BIT_MASK_REG_V15_3_TO_0_V1) << BIT_SHIFT_REG_V15_3_TO_0_V1)
#define BITS_REG_V15_3_TO_0_V1				(BIT_MASK_REG_V15_3_TO_0_V1 << BIT_SHIFT_REG_V15_3_TO_0_V1)
#define BIT_CLEAR_REG_V15_3_TO_0_V1(x)			((x) & (~BITS_REG_V15_3_TO_0_V1))
#define BIT_GET_REG_V15_3_TO_0_V1(x)			(((x) >> BIT_SHIFT_REG_V15_3_TO_0_V1) & BIT_MASK_REG_V15_3_TO_0_V1)
#define BIT_SET_REG_V15_3_TO_0_V1(x, v)		(BIT_CLEAR_REG_V15_3_TO_0_V1(x) | BIT_REG_V15_3_TO_0_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_KVCO					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_REG_SEL_LDO_PC				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_WDOGB					BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_REG_CC_1_TO_0_V1			4
#define BIT_MASK_REG_CC_1_TO_0_V1			0x3
#define BIT_REG_CC_1_TO_0_V1(x)			(((x) & BIT_MASK_REG_CC_1_TO_0_V1) << BIT_SHIFT_REG_CC_1_TO_0_V1)
#define BITS_REG_CC_1_TO_0_V1				(BIT_MASK_REG_CC_1_TO_0_V1 << BIT_SHIFT_REG_CC_1_TO_0_V1)
#define BIT_CLEAR_REG_CC_1_TO_0_V1(x)			((x) & (~BITS_REG_CC_1_TO_0_V1))
#define BIT_GET_REG_CC_1_TO_0_V1(x)			(((x) >> BIT_SHIFT_REG_CC_1_TO_0_V1) & BIT_MASK_REG_CC_1_TO_0_V1)
#define BIT_SET_REG_CC_1_TO_0_V1(x, v)			(BIT_CLEAR_REG_CC_1_TO_0_V1(x) | BIT_REG_CC_1_TO_0_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_EDGE_SEL				BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_CKDELAY_USB_V1				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_FREF_SEL_BIT0				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_CKDELAY_DIG_V1				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */


#define BIT_SHIFT_XTAL_CAP_XO				1
#define BIT_MASK_XTAL_CAP_XO				0x3f
#define BIT_XTAL_CAP_XO(x)				(((x) & BIT_MASK_XTAL_CAP_XO) << BIT_SHIFT_XTAL_CAP_XO)
#define BITS_XTAL_CAP_XO				(BIT_MASK_XTAL_CAP_XO << BIT_SHIFT_XTAL_CAP_XO)
#define BIT_CLEAR_XTAL_CAP_XO(x)			((x) & (~BITS_XTAL_CAP_XO))
#define BIT_GET_XTAL_CAP_XO(x)				(((x) >> BIT_SHIFT_XTAL_CAP_XO) & BIT_MASK_XTAL_CAP_XO)
#define BIT_SET_XTAL_CAP_XO(x, v)			(BIT_CLEAR_XTAL_CAP_XO(x) | BIT_XTAL_CAP_XO(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_MPLL_EN					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_APLL_EN					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL2				(Offset 0x0028) */

#define BIT_POW_PLL					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */


#define BIT_SHIFT_EXQ__FREEPG_V1			0
#define BIT_MASK_EXQ__FREEPG_V1			0xfff
#define BIT_EXQ__FREEPG_V1(x)				(((x) & BIT_MASK_EXQ__FREEPG_V1) << BIT_SHIFT_EXQ__FREEPG_V1)
#define BITS_EXQ__FREEPG_V1				(BIT_MASK_EXQ__FREEPG_V1 << BIT_SHIFT_EXQ__FREEPG_V1)
#define BIT_CLEAR_EXQ__FREEPG_V1(x)			((x) & (~BITS_EXQ__FREEPG_V1))
#define BIT_GET_EXQ__FREEPG_V1(x)			(((x) >> BIT_SHIFT_EXQ__FREEPG_V1) & BIT_MASK_EXQ__FREEPG_V1)
#define BIT_SET_EXQ__FREEPG_V1(x, v)			(BIT_CLEAR_EXQ__FREEPG_V1(x) | BIT_EXQ__FREEPG_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_OQT_FREE_TXPG_V1		(Offset 0x10250028) */


#define BIT_SHIFT_EXQ_FREEPG_V1			0
#define BIT_MASK_EXQ_FREEPG_V1				0xfff
#define BIT_EXQ_FREEPG_V1(x)				(((x) & BIT_MASK_EXQ_FREEPG_V1) << BIT_SHIFT_EXQ_FREEPG_V1)
#define BITS_EXQ_FREEPG_V1				(BIT_MASK_EXQ_FREEPG_V1 << BIT_SHIFT_EXQ_FREEPG_V1)
#define BIT_CLEAR_EXQ_FREEPG_V1(x)			((x) & (~BITS_EXQ_FREEPG_V1))
#define BIT_GET_EXQ_FREEPG_V1(x)			(((x) >> BIT_SHIFT_EXQ_FREEPG_V1) & BIT_MASK_EXQ_FREEPG_V1)
#define BIT_SET_EXQ_FREEPG_V1(x, v)			(BIT_CLEAR_EXQ_FREEPG_V1(x) | BIT_EXQ_FREEPG_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_XTAL_RF2_DRV				30
#define BIT_MASK_XTAL_RF2_DRV				0x3
#define BIT_XTAL_RF2_DRV(x)				(((x) & BIT_MASK_XTAL_RF2_DRV) << BIT_SHIFT_XTAL_RF2_DRV)
#define BITS_XTAL_RF2_DRV				(BIT_MASK_XTAL_RF2_DRV << BIT_SHIFT_XTAL_RF2_DRV)
#define BIT_CLEAR_XTAL_RF2_DRV(x)			((x) & (~BITS_XTAL_RF2_DRV))
#define BIT_GET_XTAL_RF2_DRV(x)			(((x) >> BIT_SHIFT_XTAL_RF2_DRV) & BIT_MASK_XTAL_RF2_DRV)
#define BIT_SET_XTAL_RF2_DRV(x, v)			(BIT_CLEAR_XTAL_RF2_DRV(x) | BIT_XTAL_RF2_DRV(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_REG_REF_SEL_V3				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_XTAL_GMN_BIT4				BIT(29)
#define BIT_XTAL_GMP_BIT4				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_XQSEL					BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_FREF_SEL_2_TO_0			27
#define BIT_MASK_REG_FREF_SEL_2_TO_0			0x7
#define BIT_REG_FREF_SEL_2_TO_0(x)			(((x) & BIT_MASK_REG_FREF_SEL_2_TO_0) << BIT_SHIFT_REG_FREF_SEL_2_TO_0)
#define BITS_REG_FREF_SEL_2_TO_0			(BIT_MASK_REG_FREF_SEL_2_TO_0 << BIT_SHIFT_REG_FREF_SEL_2_TO_0)
#define BIT_CLEAR_REG_FREF_SEL_2_TO_0(x)		((x) & (~BITS_REG_FREF_SEL_2_TO_0))
#define BIT_GET_REG_FREF_SEL_2_TO_0(x)			(((x) >> BIT_SHIFT_REG_FREF_SEL_2_TO_0) & BIT_MASK_REG_FREF_SEL_2_TO_0)
#define BIT_SET_REG_FREF_SEL_2_TO_0(x, v)		(BIT_CLEAR_REG_FREF_SEL_2_TO_0(x) | BIT_REG_FREF_SEL_2_TO_0(v))


#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_XQSEL_BIT0					BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_APLL_DUMMY					BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1		21
#define BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1		0x3f
#define BIT_XTAL_CADJ_XOUT_5_TO_0_V1(x)		(((x) & BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1) << BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1)
#define BITS_XTAL_CADJ_XOUT_5_TO_0_V1			(BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1 << BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1)
#define BIT_CLEAR_XTAL_CADJ_XOUT_5_TO_0_V1(x)		((x) & (~BITS_XTAL_CADJ_XOUT_5_TO_0_V1))
#define BIT_GET_XTAL_CADJ_XOUT_5_TO_0_V1(x)		(((x) >> BIT_SHIFT_XTAL_CADJ_XOUT_5_TO_0_V1) & BIT_MASK_XTAL_CADJ_XOUT_5_TO_0_V1)
#define BIT_SET_XTAL_CADJ_XOUT_5_TO_0_V1(x, v)	(BIT_CLEAR_XTAL_CADJ_XOUT_5_TO_0_V1(x) | BIT_XTAL_CADJ_XOUT_5_TO_0_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_XTAL_CADJ_XOUT			18
#define BIT_MASK_XTAL_CADJ_XOUT			0x3f
#define BIT_XTAL_CADJ_XOUT(x)				(((x) & BIT_MASK_XTAL_CADJ_XOUT) << BIT_SHIFT_XTAL_CADJ_XOUT)
#define BITS_XTAL_CADJ_XOUT				(BIT_MASK_XTAL_CADJ_XOUT << BIT_SHIFT_XTAL_CADJ_XOUT)
#define BIT_CLEAR_XTAL_CADJ_XOUT(x)			((x) & (~BITS_XTAL_CADJ_XOUT))
#define BIT_GET_XTAL_CADJ_XOUT(x)			(((x) >> BIT_SHIFT_XTAL_CADJ_XOUT) & BIT_MASK_XTAL_CADJ_XOUT)
#define BIT_SET_XTAL_CADJ_XOUT(x, v)			(BIT_CLEAR_XTAL_CADJ_XOUT(x) | BIT_XTAL_CADJ_XOUT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_XTAL_CADJ_XIN_V2			15
#define BIT_MASK_XTAL_CADJ_XIN_V2			0x3f
#define BIT_XTAL_CADJ_XIN_V2(x)			(((x) & BIT_MASK_XTAL_CADJ_XIN_V2) << BIT_SHIFT_XTAL_CADJ_XIN_V2)
#define BITS_XTAL_CADJ_XIN_V2				(BIT_MASK_XTAL_CADJ_XIN_V2 << BIT_SHIFT_XTAL_CADJ_XIN_V2)
#define BIT_CLEAR_XTAL_CADJ_XIN_V2(x)			((x) & (~BITS_XTAL_CADJ_XIN_V2))
#define BIT_GET_XTAL_CADJ_XIN_V2(x)			(((x) >> BIT_SHIFT_XTAL_CADJ_XIN_V2) & BIT_MASK_XTAL_CADJ_XIN_V2)
#define BIT_SET_XTAL_CADJ_XIN_V2(x, v)			(BIT_CLEAR_XTAL_CADJ_XIN_V2(x) | BIT_XTAL_CADJ_XIN_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_XTAL_CADJ_XIN			12
#define BIT_MASK_XTAL_CADJ_XIN				0x3f
#define BIT_XTAL_CADJ_XIN(x)				(((x) & BIT_MASK_XTAL_CADJ_XIN) << BIT_SHIFT_XTAL_CADJ_XIN)
#define BITS_XTAL_CADJ_XIN				(BIT_MASK_XTAL_CADJ_XIN << BIT_SHIFT_XTAL_CADJ_XIN)
#define BIT_CLEAR_XTAL_CADJ_XIN(x)			((x) & (~BITS_XTAL_CADJ_XIN))
#define BIT_GET_XTAL_CADJ_XIN(x)			(((x) >> BIT_SHIFT_XTAL_CADJ_XIN) & BIT_MASK_XTAL_CADJ_XIN)
#define BIT_SET_XTAL_CADJ_XIN(x, v)			(BIT_CLEAR_XTAL_CADJ_XIN(x) | BIT_XTAL_CADJ_XIN(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_RS_V3				12
#define BIT_MASK_REG_RS_V3				0x7
#define BIT_REG_RS_V3(x)				(((x) & BIT_MASK_REG_RS_V3) << BIT_SHIFT_REG_RS_V3)
#define BITS_REG_RS_V3					(BIT_MASK_REG_RS_V3 << BIT_SHIFT_REG_RS_V3)
#define BIT_CLEAR_REG_RS_V3(x)				((x) & (~BITS_REG_RS_V3))
#define BIT_GET_REG_RS_V3(x)				(((x) >> BIT_SHIFT_REG_RS_V3) & BIT_MASK_REG_RS_V3)
#define BIT_SET_REG_RS_V3(x, v)			(BIT_CLEAR_REG_RS_V3(x) | BIT_REG_RS_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_RS				9
#define BIT_MASK_REG_RS				0x7
#define BIT_REG_RS(x)					(((x) & BIT_MASK_REG_RS) << BIT_SHIFT_REG_RS)
#define BITS_REG_RS					(BIT_MASK_REG_RS << BIT_SHIFT_REG_RS)
#define BIT_CLEAR_REG_RS(x)				((x) & (~BITS_REG_RS))
#define BIT_GET_REG_RS(x)				(((x) >> BIT_SHIFT_REG_RS) & BIT_MASK_REG_RS)
#define BIT_SET_REG_RS(x, v)				(BIT_CLEAR_REG_RS(x) | BIT_REG_RS(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_R3_V3				9
#define BIT_MASK_REG_R3_V3				0x7
#define BIT_REG_R3_V3(x)				(((x) & BIT_MASK_REG_R3_V3) << BIT_SHIFT_REG_R3_V3)
#define BITS_REG_R3_V3					(BIT_MASK_REG_R3_V3 << BIT_SHIFT_REG_R3_V3)
#define BIT_CLEAR_REG_R3_V3(x)				((x) & (~BITS_REG_R3_V3))
#define BIT_GET_REG_R3_V3(x)				(((x) >> BIT_SHIFT_REG_R3_V3) & BIT_MASK_REG_R3_V3)
#define BIT_SET_REG_R3_V3(x, v)			(BIT_CLEAR_REG_R3_V3(x) | BIT_REG_R3_V3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_PS_V2				7
#define BIT_MASK_PS_V2					0x7
#define BIT_PS_V2(x)					(((x) & BIT_MASK_PS_V2) << BIT_SHIFT_PS_V2)
#define BITS_PS_V2					(BIT_MASK_PS_V2 << BIT_SHIFT_PS_V2)
#define BIT_CLEAR_PS_V2(x)				((x) & (~BITS_PS_V2))
#define BIT_GET_PS_V2(x)				(((x) >> BIT_SHIFT_PS_V2) & BIT_MASK_PS_V2)
#define BIT_SET_PS_V2(x, v)				(BIT_CLEAR_PS_V2(x) | BIT_PS_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_CS_V3				7
#define BIT_MASK_REG_CS_V3				0x3
#define BIT_REG_CS_V3(x)				(((x) & BIT_MASK_REG_CS_V3) << BIT_SHIFT_REG_CS_V3)
#define BITS_REG_CS_V3					(BIT_MASK_REG_CS_V3 << BIT_SHIFT_REG_CS_V3)
#define BIT_CLEAR_REG_CS_V3(x)				((x) & (~BITS_REG_CS_V3))
#define BIT_GET_REG_CS_V3(x)				(((x) >> BIT_SHIFT_REG_CS_V3) & BIT_MASK_REG_CS_V3)
#define BIT_SET_REG_CS_V3(x, v)			(BIT_CLEAR_REG_CS_V3(x) | BIT_REG_CS_V3(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_PS					7
#define BIT_MASK_PS					0x7
#define BIT_PS(x)					(((x) & BIT_MASK_PS) << BIT_SHIFT_PS)
#define BITS_PS					(BIT_MASK_PS << BIT_SHIFT_PS)
#define BIT_CLEAR_PS(x)				((x) & (~BITS_PS))
#define BIT_GET_PS(x)					(((x) >> BIT_SHIFT_PS) & BIT_MASK_PS)
#define BIT_SET_PS(x, v)				(BIT_CLEAR_PS(x) | BIT_PS(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_R3				6
#define BIT_MASK_REG_R3				0x7
#define BIT_REG_R3(x)					(((x) & BIT_MASK_REG_R3) << BIT_SHIFT_REG_R3)
#define BITS_REG_R3					(BIT_MASK_REG_R3 << BIT_SHIFT_REG_R3)
#define BIT_CLEAR_REG_R3(x)				((x) & (~BITS_REG_R3))
#define BIT_GET_REG_R3(x)				(((x) >> BIT_SHIFT_REG_R3) & BIT_MASK_REG_R3)
#define BIT_SET_REG_R3(x, v)				(BIT_CLEAR_REG_R3(x) | BIT_REG_R3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_PSEN					BIT(6)
#define BIT_DOGENB					BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_CP_V3				5
#define BIT_MASK_REG_CP_V3				0x3
#define BIT_REG_CP_V3(x)				(((x) & BIT_MASK_REG_CP_V3) << BIT_SHIFT_REG_CP_V3)
#define BITS_REG_CP_V3					(BIT_MASK_REG_CP_V3 << BIT_SHIFT_REG_CP_V3)
#define BIT_CLEAR_REG_CP_V3(x)				((x) & (~BITS_REG_CP_V3))
#define BIT_GET_REG_CP_V3(x)				(((x) >> BIT_SHIFT_REG_CP_V3) & BIT_MASK_REG_CP_V3)
#define BIT_SET_REG_CP_V3(x, v)			(BIT_CLEAR_REG_CP_V3(x) | BIT_REG_CP_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_CS				4
#define BIT_MASK_REG_CS				0x3
#define BIT_REG_CS(x)					(((x) & BIT_MASK_REG_CS) << BIT_SHIFT_REG_CS)
#define BITS_REG_CS					(BIT_MASK_REG_CS << BIT_SHIFT_REG_CS)
#define BIT_CLEAR_REG_CS(x)				((x) & (~BITS_REG_CS))
#define BIT_GET_REG_CS(x)				(((x) >> BIT_SHIFT_REG_CS) & BIT_MASK_REG_CS)
#define BIT_SET_REG_CS(x, v)				(BIT_CLEAR_REG_CS(x) | BIT_REG_CS(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_REG_MBIAS					BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_C3_V3				3
#define BIT_MASK_REG_C3_V3				0x3
#define BIT_REG_C3_V3(x)				(((x) & BIT_MASK_REG_C3_V3) << BIT_SHIFT_REG_C3_V3)
#define BITS_REG_C3_V3					(BIT_MASK_REG_C3_V3 << BIT_SHIFT_REG_C3_V3)
#define BIT_CLEAR_REG_C3_V3(x)				((x) & (~BITS_REG_C3_V3))
#define BIT_GET_REG_C3_V3(x)				(((x) >> BIT_SHIFT_REG_C3_V3) & BIT_MASK_REG_C3_V3)
#define BIT_SET_REG_C3_V3(x, v)			(BIT_CLEAR_REG_C3_V3(x) | BIT_REG_C3_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_CP				2
#define BIT_MASK_REG_CP				0x3
#define BIT_REG_CP(x)					(((x) & BIT_MASK_REG_CP) << BIT_SHIFT_REG_CP)
#define BITS_REG_CP					(BIT_MASK_REG_CP << BIT_SHIFT_REG_CP)
#define BIT_CLEAR_REG_CP(x)				((x) & (~BITS_REG_CP))
#define BIT_GET_REG_CP(x)				(((x) >> BIT_SHIFT_REG_CP) & BIT_MASK_REG_CP)
#define BIT_SET_REG_CP(x, v)				(BIT_CLEAR_REG_CP(x) | BIT_REG_CP(v))


#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_REG_320_SEL_V3				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_EN_SYN_V1					BIT(1)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_R3_V4				1
#define BIT_MASK_REG_R3_V4				0x7
#define BIT_REG_R3_V4(x)				(((x) & BIT_MASK_REG_R3_V4) << BIT_SHIFT_REG_R3_V4)
#define BITS_REG_R3_V4					(BIT_MASK_REG_R3_V4 << BIT_SHIFT_REG_R3_V4)
#define BIT_CLEAR_REG_R3_V4(x)				((x) & (~BITS_REG_R3_V4))
#define BIT_GET_REG_R3_V4(x)				(((x) >> BIT_SHIFT_REG_R3_V4) & BIT_MASK_REG_R3_V4)
#define BIT_SET_REG_R3_V4(x, v)			(BIT_CLEAR_REG_R3_V4(x) | BIT_REG_R3_V4(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */


#define BIT_SHIFT_REG_C3				0
#define BIT_MASK_REG_C3				0x3
#define BIT_REG_C3(x)					(((x) & BIT_MASK_REG_C3) << BIT_SHIFT_REG_C3)
#define BITS_REG_C3					(BIT_MASK_REG_C3 << BIT_SHIFT_REG_C3)
#define BIT_CLEAR_REG_C3(x)				((x) & (~BITS_REG_C3))
#define BIT_GET_REG_C3(x)				(((x) >> BIT_SHIFT_REG_C3) & BIT_MASK_REG_C3)
#define BIT_SET_REG_C3(x, v)				(BIT_CLEAR_REG_C3(x) | BIT_REG_C3(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_IOOFFSET_BIT4				BIT(0)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL3				(Offset 0x002C) */

#define BIT_REG_CP_BIT0				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */

#define BIT_EF_FLAG					BIT(31)

#define BIT_SHIFT_EF_PGPD				28
#define BIT_MASK_EF_PGPD				0x7
#define BIT_EF_PGPD(x)					(((x) & BIT_MASK_EF_PGPD) << BIT_SHIFT_EF_PGPD)
#define BITS_EF_PGPD					(BIT_MASK_EF_PGPD << BIT_SHIFT_EF_PGPD)
#define BIT_CLEAR_EF_PGPD(x)				((x) & (~BITS_EF_PGPD))
#define BIT_GET_EF_PGPD(x)				(((x) >> BIT_SHIFT_EF_PGPD) & BIT_MASK_EF_PGPD)
#define BIT_SET_EF_PGPD(x, v)				(BIT_CLEAR_EF_PGPD(x) | BIT_EF_PGPD(v))


#define BIT_SHIFT_EF_RDT				24
#define BIT_MASK_EF_RDT				0xf
#define BIT_EF_RDT(x)					(((x) & BIT_MASK_EF_RDT) << BIT_SHIFT_EF_RDT)
#define BITS_EF_RDT					(BIT_MASK_EF_RDT << BIT_SHIFT_EF_RDT)
#define BIT_CLEAR_EF_RDT(x)				((x) & (~BITS_EF_RDT))
#define BIT_GET_EF_RDT(x)				(((x) >> BIT_SHIFT_EF_RDT) & BIT_MASK_EF_RDT)
#define BIT_SET_EF_RDT(x, v)				(BIT_CLEAR_EF_RDT(x) | BIT_EF_RDT(v))


#define BIT_SHIFT_EF_PGTS				20
#define BIT_MASK_EF_PGTS				0xf
#define BIT_EF_PGTS(x)					(((x) & BIT_MASK_EF_PGTS) << BIT_SHIFT_EF_PGTS)
#define BITS_EF_PGTS					(BIT_MASK_EF_PGTS << BIT_SHIFT_EF_PGTS)
#define BIT_CLEAR_EF_PGTS(x)				((x) & (~BITS_EF_PGTS))
#define BIT_GET_EF_PGTS(x)				(((x) >> BIT_SHIFT_EF_PGTS) & BIT_MASK_EF_PGTS)
#define BIT_SET_EF_PGTS(x, v)				(BIT_CLEAR_EF_PGTS(x) | BIT_EF_PGTS(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */

#define BIT_EF_PDWN					BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */

#define BIT_EF_ALDEN					BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HTSFR_INFO			(Offset 0x10250030) */


#define BIT_SHIFT_HTSFR1				16
#define BIT_MASK_HTSFR1				0xffff
#define BIT_HTSFR1(x)					(((x) & BIT_MASK_HTSFR1) << BIT_SHIFT_HTSFR1)
#define BITS_HTSFR1					(BIT_MASK_HTSFR1 << BIT_SHIFT_HTSFR1)
#define BIT_CLEAR_HTSFR1(x)				((x) & (~BITS_HTSFR1))
#define BIT_GET_HTSFR1(x)				(((x) >> BIT_SHIFT_HTSFR1) & BIT_MASK_HTSFR1)
#define BIT_SET_HTSFR1(x, v)				(BIT_CLEAR_HTSFR1(x) | BIT_HTSFR1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EFUSE_CTRL				(Offset 0x0030) */


#define BIT_SHIFT_EF_ADDR				8
#define BIT_MASK_EF_ADDR				0x3ff
#define BIT_EF_ADDR(x)					(((x) & BIT_MASK_EF_ADDR) << BIT_SHIFT_EF_ADDR)
#define BITS_EF_ADDR					(BIT_MASK_EF_ADDR << BIT_SHIFT_EF_ADDR)
#define BIT_CLEAR_EF_ADDR(x)				((x) & (~BITS_EF_ADDR))
#define BIT_GET_EF_ADDR(x)				(((x) >> BIT_SHIFT_EF_ADDR) & BIT_MASK_EF_ADDR)
#define BIT_SET_EF_ADDR(x, v)				(BIT_CLEAR_EF_ADDR(x) | BIT_EF_ADDR(v))


#define BIT_SHIFT_EF_DATA				0
#define BIT_MASK_EF_DATA				0xff
#define BIT_EF_DATA(x)					(((x) & BIT_MASK_EF_DATA) << BIT_SHIFT_EF_DATA)
#define BITS_EF_DATA					(BIT_MASK_EF_DATA << BIT_SHIFT_EF_DATA)
#define BIT_CLEAR_EF_DATA(x)				((x) & (~BITS_EF_DATA))
#define BIT_GET_EF_DATA(x)				(((x) >> BIT_SHIFT_EF_DATA) & BIT_MASK_EF_DATA)
#define BIT_SET_EF_DATA(x, v)				(BIT_CLEAR_EF_DATA(x) | BIT_EF_DATA(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HTSFR_INFO			(Offset 0x10250030) */


#define BIT_SHIFT_HTSFR0				0
#define BIT_MASK_HTSFR0				0xffff
#define BIT_HTSFR0(x)					(((x) & BIT_MASK_HTSFR0) << BIT_SHIFT_HTSFR0)
#define BITS_HTSFR0					(BIT_MASK_HTSFR0 << BIT_SHIFT_HTSFR0)
#define BIT_CLEAR_HTSFR0(x)				((x) & (~BITS_HTSFR0))
#define BIT_GET_HTSFR0(x)				(((x) >> BIT_SHIFT_HTSFR0) & BIT_MASK_HTSFR0)
#define BIT_SET_HTSFR0(x, v)				(BIT_CLEAR_HTSFR0(x) | BIT_HTSFR0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_LDOE25_EN					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2		28
#define BIT_MASK_LDOE25_VADJ_BIT0_TO_2			0x7
#define BIT_LDOE25_VADJ_BIT0_TO_2(x)			(((x) & BIT_MASK_LDOE25_VADJ_BIT0_TO_2) << BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2)
#define BITS_LDOE25_VADJ_BIT0_TO_2			(BIT_MASK_LDOE25_VADJ_BIT0_TO_2 << BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2)
#define BIT_CLEAR_LDOE25_VADJ_BIT0_TO_2(x)		((x) & (~BITS_LDOE25_VADJ_BIT0_TO_2))
#define BIT_GET_LDOE25_VADJ_BIT0_TO_2(x)		(((x) >> BIT_SHIFT_LDOE25_VADJ_BIT0_TO_2) & BIT_MASK_LDOE25_VADJ_BIT0_TO_2)
#define BIT_SET_LDOE25_VADJ_BIT0_TO_2(x, v)		(BIT_CLEAR_LDOE25_VADJ_BIT0_TO_2(x) | BIT_LDOE25_VADJ_BIT0_TO_2(v))

#define BIT_LDOE25_VADJ_BIT3				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_LDOE25_V12ADJ_L			27
#define BIT_MASK_LDOE25_V12ADJ_L			0xf
#define BIT_LDOE25_V12ADJ_L(x)				(((x) & BIT_MASK_LDOE25_V12ADJ_L) << BIT_SHIFT_LDOE25_V12ADJ_L)
#define BITS_LDOE25_V12ADJ_L				(BIT_MASK_LDOE25_V12ADJ_L << BIT_SHIFT_LDOE25_V12ADJ_L)
#define BIT_CLEAR_LDOE25_V12ADJ_L(x)			((x) & (~BITS_LDOE25_V12ADJ_L))
#define BIT_GET_LDOE25_V12ADJ_L(x)			(((x) >> BIT_SHIFT_LDOE25_V12ADJ_L) & BIT_MASK_LDOE25_V12ADJ_L)
#define BIT_SET_LDOE25_V12ADJ_L(x, v)			(BIT_CLEAR_LDOE25_V12ADJ_L(x) | BIT_LDOE25_V12ADJ_L(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_LDOE25_VADJ_3_TO_0			27
#define BIT_MASK_LDOE25_VADJ_3_TO_0			0xf
#define BIT_LDOE25_VADJ_3_TO_0(x)			(((x) & BIT_MASK_LDOE25_VADJ_3_TO_0) << BIT_SHIFT_LDOE25_VADJ_3_TO_0)
#define BITS_LDOE25_VADJ_3_TO_0			(BIT_MASK_LDOE25_VADJ_3_TO_0 << BIT_SHIFT_LDOE25_VADJ_3_TO_0)
#define BIT_CLEAR_LDOE25_VADJ_3_TO_0(x)		((x) & (~BITS_LDOE25_VADJ_3_TO_0))
#define BIT_GET_LDOE25_VADJ_3_TO_0(x)			(((x) >> BIT_SHIFT_LDOE25_VADJ_3_TO_0) & BIT_MASK_LDOE25_VADJ_3_TO_0)
#define BIT_SET_LDOE25_VADJ_3_TO_0(x, v)		(BIT_CLEAR_LDOE25_VADJ_3_TO_0(x) | BIT_LDOE25_VADJ_3_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EFCRES_SEL					BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EF_CSER					BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EF_CRES_SEL				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_EF_SCAN_START			16
#define BIT_MASK_EF_SCAN_START				0x1ff
#define BIT_EF_SCAN_START(x)				(((x) & BIT_MASK_EF_SCAN_START) << BIT_SHIFT_EF_SCAN_START)
#define BITS_EF_SCAN_START				(BIT_MASK_EF_SCAN_START << BIT_SHIFT_EF_SCAN_START)
#define BIT_CLEAR_EF_SCAN_START(x)			((x) & (~BITS_EF_SCAN_START))
#define BIT_GET_EF_SCAN_START(x)			(((x) >> BIT_SHIFT_EF_SCAN_START) & BIT_MASK_EF_SCAN_START)
#define BIT_SET_EF_SCAN_START(x, v)			(BIT_CLEAR_EF_SCAN_START(x) | BIT_EF_SCAN_START(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_EF_SCAN_START_V1			16
#define BIT_MASK_EF_SCAN_START_V1			0x3ff
#define BIT_EF_SCAN_START_V1(x)			(((x) & BIT_MASK_EF_SCAN_START_V1) << BIT_SHIFT_EF_SCAN_START_V1)
#define BITS_EF_SCAN_START_V1				(BIT_MASK_EF_SCAN_START_V1 << BIT_SHIFT_EF_SCAN_START_V1)
#define BIT_CLEAR_EF_SCAN_START_V1(x)			((x) & (~BITS_EF_SCAN_START_V1))
#define BIT_GET_EF_SCAN_START_V1(x)			(((x) >> BIT_SHIFT_EF_SCAN_START_V1) & BIT_MASK_EF_SCAN_START_V1)
#define BIT_SET_EF_SCAN_START_V1(x, v)			(BIT_CLEAR_EF_SCAN_START_V1(x) | BIT_EF_SCAN_START_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_EF_SCAN_END				12
#define BIT_MASK_EF_SCAN_END				0xf
#define BIT_EF_SCAN_END(x)				(((x) & BIT_MASK_EF_SCAN_END) << BIT_SHIFT_EF_SCAN_END)
#define BITS_EF_SCAN_END				(BIT_MASK_EF_SCAN_END << BIT_SHIFT_EF_SCAN_END)
#define BIT_CLEAR_EF_SCAN_END(x)			((x) & (~BITS_EF_SCAN_END))
#define BIT_GET_EF_SCAN_END(x)				(((x) >> BIT_SHIFT_EF_SCAN_END) & BIT_MASK_EF_SCAN_END)
#define BIT_SET_EF_SCAN_END(x, v)			(BIT_CLEAR_EF_SCAN_END(x) | BIT_EF_SCAN_END(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EF_FORCE_PGMEN				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_SCAN_EN					BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EF_PD_DIS					BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_SW_PG_EN					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */


#define BIT_SHIFT_EF_CELL_SEL				8
#define BIT_MASK_EF_CELL_SEL				0x3
#define BIT_EF_CELL_SEL(x)				(((x) & BIT_MASK_EF_CELL_SEL) << BIT_SHIFT_EF_CELL_SEL)
#define BITS_EF_CELL_SEL				(BIT_MASK_EF_CELL_SEL << BIT_SHIFT_EF_CELL_SEL)
#define BIT_CLEAR_EF_CELL_SEL(x)			((x) & (~BITS_EF_CELL_SEL))
#define BIT_GET_EF_CELL_SEL(x)				(((x) >> BIT_SHIFT_EF_CELL_SEL) & BIT_MASK_EF_CELL_SEL)
#define BIT_SET_EF_CELL_SEL(x, v)			(BIT_CLEAR_EF_CELL_SEL(x) | BIT_EF_CELL_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_EFUSE_CTRL			(Offset 0x0034) */

#define BIT_EF_TRPT					BIT(7)

#define BIT_SHIFT_EF_TTHD				0
#define BIT_MASK_EF_TTHD				0x7f
#define BIT_EF_TTHD(x)					(((x) & BIT_MASK_EF_TTHD) << BIT_SHIFT_EF_TTHD)
#define BITS_EF_TTHD					(BIT_MASK_EF_TTHD << BIT_SHIFT_EF_TTHD)
#define BIT_CLEAR_EF_TTHD(x)				((x) & (~BITS_EF_TTHD))
#define BIT_GET_EF_TTHD(x)				(((x) >> BIT_SHIFT_EF_TTHD) & BIT_MASK_EF_TTHD)
#define BIT_SET_EF_TTHD(x, v)				(BIT_CLEAR_EF_TTHD(x) | BIT_EF_TTHD(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_AFE_USB_CURRENT_SEL			26
#define BIT_MASK_AFE_USB_CURRENT_SEL			0x7
#define BIT_AFE_USB_CURRENT_SEL(x)			(((x) & BIT_MASK_AFE_USB_CURRENT_SEL) << BIT_SHIFT_AFE_USB_CURRENT_SEL)
#define BITS_AFE_USB_CURRENT_SEL			(BIT_MASK_AFE_USB_CURRENT_SEL << BIT_SHIFT_AFE_USB_CURRENT_SEL)
#define BIT_CLEAR_AFE_USB_CURRENT_SEL(x)		((x) & (~BITS_AFE_USB_CURRENT_SEL))
#define BIT_GET_AFE_USB_CURRENT_SEL(x)			(((x) >> BIT_SHIFT_AFE_USB_CURRENT_SEL) & BIT_MASK_AFE_USB_CURRENT_SEL)
#define BIT_SET_AFE_USB_CURRENT_SEL(x, v)		(BIT_CLEAR_AFE_USB_CURRENT_SEL(x) | BIT_AFE_USB_CURRENT_SEL(v))


#define BIT_SHIFT_AFE_USB_PATH_SEL			24
#define BIT_MASK_AFE_USB_PATH_SEL			0x3
#define BIT_AFE_USB_PATH_SEL(x)			(((x) & BIT_MASK_AFE_USB_PATH_SEL) << BIT_SHIFT_AFE_USB_PATH_SEL)
#define BITS_AFE_USB_PATH_SEL				(BIT_MASK_AFE_USB_PATH_SEL << BIT_SHIFT_AFE_USB_PATH_SEL)
#define BIT_CLEAR_AFE_USB_PATH_SEL(x)			((x) & (~BITS_AFE_USB_PATH_SEL))
#define BIT_GET_AFE_USB_PATH_SEL(x)			(((x) >> BIT_SHIFT_AFE_USB_PATH_SEL) & BIT_MASK_AFE_USB_PATH_SEL)
#define BIT_SET_AFE_USB_PATH_SEL(x, v)			(BIT_CLEAR_AFE_USB_PATH_SEL(x) | BIT_AFE_USB_PATH_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_DBG_SEL_V1				16
#define BIT_MASK_DBG_SEL_V1				0xff
#define BIT_DBG_SEL_V1(x)				(((x) & BIT_MASK_DBG_SEL_V1) << BIT_SHIFT_DBG_SEL_V1)
#define BITS_DBG_SEL_V1				(BIT_MASK_DBG_SEL_V1 << BIT_SHIFT_DBG_SEL_V1)
#define BIT_CLEAR_DBG_SEL_V1(x)			((x) & (~BITS_DBG_SEL_V1))
#define BIT_GET_DBG_SEL_V1(x)				(((x) >> BIT_SHIFT_DBG_SEL_V1) & BIT_MASK_DBG_SEL_V1)
#define BIT_SET_DBG_SEL_V1(x, v)			(BIT_CLEAR_DBG_SEL_V1(x) | BIT_DBG_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_CLK_REQ_INPUT				BIT(15)
#define BIT_USB_XTAL_CLK_SEL				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_DBG_SEL_BYTE				14
#define BIT_MASK_DBG_SEL_BYTE				0x3
#define BIT_DBG_SEL_BYTE(x)				(((x) & BIT_MASK_DBG_SEL_BYTE) << BIT_SHIFT_DBG_SEL_BYTE)
#define BITS_DBG_SEL_BYTE				(BIT_MASK_DBG_SEL_BYTE << BIT_SHIFT_DBG_SEL_BYTE)
#define BIT_CLEAR_DBG_SEL_BYTE(x)			((x) & (~BITS_DBG_SEL_BYTE))
#define BIT_GET_DBG_SEL_BYTE(x)			(((x) >> BIT_SHIFT_DBG_SEL_BYTE) & BIT_MASK_DBG_SEL_BYTE)
#define BIT_SET_DBG_SEL_BYTE(x, v)			(BIT_CLEAR_DBG_SEL_BYTE(x) | BIT_DBG_SEL_BYTE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_USB_REG_XTAL_SEL				BIT(14)
#define BIT_SYSON_BTIO1POW_PAD_E2			BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_SPS0_STD_L1			12
#define BIT_MASK_SYSON_SPS0_STD_L1			0x3
#define BIT_SYSON_SPS0_STD_L1(x)			(((x) & BIT_MASK_SYSON_SPS0_STD_L1) << BIT_SHIFT_SYSON_SPS0_STD_L1)
#define BITS_SYSON_SPS0_STD_L1				(BIT_MASK_SYSON_SPS0_STD_L1 << BIT_SHIFT_SYSON_SPS0_STD_L1)
#define BIT_CLEAR_SYSON_SPS0_STD_L1(x)			((x) & (~BITS_SYSON_SPS0_STD_L1))
#define BIT_GET_SYSON_SPS0_STD_L1(x)			(((x) >> BIT_SHIFT_SYSON_SPS0_STD_L1) & BIT_MASK_SYSON_SPS0_STD_L1)
#define BIT_SET_SYSON_SPS0_STD_L1(x, v)		(BIT_CLEAR_SYSON_SPS0_STD_L1(x) | BIT_SYSON_SPS0_STD_L1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_STD_L1_V1				12
#define BIT_MASK_STD_L1_V1				0x3
#define BIT_STD_L1_V1(x)				(((x) & BIT_MASK_STD_L1_V1) << BIT_SHIFT_STD_L1_V1)
#define BITS_STD_L1_V1					(BIT_MASK_STD_L1_V1 << BIT_SHIFT_STD_L1_V1)
#define BIT_CLEAR_STD_L1_V1(x)				((x) & (~BITS_STD_L1_V1))
#define BIT_GET_STD_L1_V1(x)				(((x) >> BIT_SHIFT_STD_L1_V1) & BIT_MASK_STD_L1_V1)
#define BIT_SET_STD_L1_V1(x, v)			(BIT_CLEAR_STD_L1_V1(x) | BIT_STD_L1_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_BTIOPOW_PAD_E2			BIT(12)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_LDOA12V_WT			12
#define BIT_MASK_SYSON_LDOA12V_WT			0x3
#define BIT_SYSON_LDOA12V_WT(x)			(((x) & BIT_MASK_SYSON_LDOA12V_WT) << BIT_SHIFT_SYSON_LDOA12V_WT)
#define BITS_SYSON_LDOA12V_WT				(BIT_MASK_SYSON_LDOA12V_WT << BIT_SHIFT_SYSON_LDOA12V_WT)
#define BIT_CLEAR_SYSON_LDOA12V_WT(x)			((x) & (~BITS_SYSON_LDOA12V_WT))
#define BIT_GET_SYSON_LDOA12V_WT(x)			(((x) >> BIT_SHIFT_SYSON_LDOA12V_WT) & BIT_MASK_SYSON_LDOA12V_WT)
#define BIT_SET_SYSON_LDOA12V_WT(x, v)			(BIT_CLEAR_SYSON_LDOA12V_WT(x) | BIT_SYSON_LDOA12V_WT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_DBG_PAD_E2				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_SDIOPOW_PAD_E2			BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_LED_PAD_E2				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_GPEE_PAD_E2				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_GPEE_PAD_E2_V33			BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_SYSON_PCI_PAD_E2				BIT(8)

#define BIT_SHIFT_MATCH_CNT				8
#define BIT_MASK_MATCH_CNT				0xff
#define BIT_MATCH_CNT(x)				(((x) & BIT_MASK_MATCH_CNT) << BIT_SHIFT_MATCH_CNT)
#define BITS_MATCH_CNT					(BIT_MASK_MATCH_CNT << BIT_SHIFT_MATCH_CNT)
#define BIT_CLEAR_MATCH_CNT(x)				((x) & (~BITS_MATCH_CNT))
#define BIT_GET_MATCH_CNT(x)				(((x) >> BIT_SHIFT_MATCH_CNT) & BIT_MASK_MATCH_CNT)
#define BIT_SET_MATCH_CNT(x, v)			(BIT_CLEAR_MATCH_CNT(x) | BIT_MATCH_CNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_AUTO_SW_LDO_VOL_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_AUTO_SW_LDO_VOL_EN_V1			BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */

#define BIT_ADJ_LDO_VOLT				BIT(6)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_LDOHCI12_WT			6
#define BIT_MASK_SYSON_LDOHCI12_WT			0x3
#define BIT_SYSON_LDOHCI12_WT(x)			(((x) & BIT_MASK_SYSON_LDOHCI12_WT) << BIT_SHIFT_SYSON_LDOHCI12_WT)
#define BITS_SYSON_LDOHCI12_WT				(BIT_MASK_SYSON_LDOHCI12_WT << BIT_SHIFT_SYSON_LDOHCI12_WT)
#define BIT_CLEAR_SYSON_LDOHCI12_WT(x)			((x) & (~BITS_SYSON_LDOHCI12_WT))
#define BIT_GET_SYSON_LDOHCI12_WT(x)			(((x) >> BIT_SHIFT_SYSON_LDOHCI12_WT) & BIT_MASK_SYSON_LDOHCI12_WT)
#define BIT_SET_SYSON_LDOHCI12_WT(x, v)		(BIT_CLEAR_SYSON_LDOHCI12_WT(x) | BIT_SYSON_LDOHCI12_WT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_SPS0WWV_WT			4
#define BIT_MASK_SYSON_SPS0WWV_WT			0x3
#define BIT_SYSON_SPS0WWV_WT(x)			(((x) & BIT_MASK_SYSON_SPS0WWV_WT) << BIT_SHIFT_SYSON_SPS0WWV_WT)
#define BITS_SYSON_SPS0WWV_WT				(BIT_MASK_SYSON_SPS0WWV_WT << BIT_SHIFT_SYSON_SPS0WWV_WT)
#define BIT_CLEAR_SYSON_SPS0WWV_WT(x)			((x) & (~BITS_SYSON_SPS0WWV_WT))
#define BIT_GET_SYSON_SPS0WWV_WT(x)			(((x) >> BIT_SHIFT_SYSON_SPS0WWV_WT) & BIT_MASK_SYSON_SPS0WWV_WT)
#define BIT_SET_SYSON_SPS0WWV_WT(x, v)			(BIT_CLEAR_SYSON_SPS0WWV_WT(x) | BIT_SYSON_SPS0WWV_WT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_SPS0SPS_WT			4
#define BIT_MASK_SYSON_SPS0SPS_WT			0x3
#define BIT_SYSON_SPS0SPS_WT(x)			(((x) & BIT_MASK_SYSON_SPS0SPS_WT) << BIT_SHIFT_SYSON_SPS0SPS_WT)
#define BITS_SYSON_SPS0SPS_WT				(BIT_MASK_SYSON_SPS0SPS_WT << BIT_SHIFT_SYSON_SPS0SPS_WT)
#define BIT_CLEAR_SYSON_SPS0SPS_WT(x)			((x) & (~BITS_SYSON_SPS0SPS_WT))
#define BIT_GET_SYSON_SPS0SPS_WT(x)			(((x) >> BIT_SHIFT_SYSON_SPS0SPS_WT) & BIT_MASK_SYSON_SPS0SPS_WT)
#define BIT_SET_SYSON_SPS0SPS_WT(x, v)			(BIT_CLEAR_SYSON_SPS0SPS_WT(x) | BIT_SYSON_SPS0SPS_WT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_SPS0LDO_WT			2
#define BIT_MASK_SYSON_SPS0LDO_WT			0x3
#define BIT_SYSON_SPS0LDO_WT(x)			(((x) & BIT_MASK_SYSON_SPS0LDO_WT) << BIT_SHIFT_SYSON_SPS0LDO_WT)
#define BITS_SYSON_SPS0LDO_WT				(BIT_MASK_SYSON_SPS0LDO_WT << BIT_SHIFT_SYSON_SPS0LDO_WT)
#define BIT_CLEAR_SYSON_SPS0LDO_WT(x)			((x) & (~BITS_SYSON_SPS0LDO_WT))
#define BIT_GET_SYSON_SPS0LDO_WT(x)			(((x) >> BIT_SHIFT_SYSON_SPS0LDO_WT) & BIT_MASK_SYSON_SPS0LDO_WT)
#define BIT_SET_SYSON_SPS0LDO_WT(x, v)			(BIT_CLEAR_SYSON_SPS0LDO_WT(x) | BIT_SYSON_SPS0LDO_WT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_SPS11VLDO_WT			2
#define BIT_MASK_SYSON_SPS11VLDO_WT			0x3
#define BIT_SYSON_SPS11VLDO_WT(x)			(((x) & BIT_MASK_SYSON_SPS11VLDO_WT) << BIT_SHIFT_SYSON_SPS11VLDO_WT)
#define BITS_SYSON_SPS11VLDO_WT			(BIT_MASK_SYSON_SPS11VLDO_WT << BIT_SHIFT_SYSON_SPS11VLDO_WT)
#define BIT_CLEAR_SYSON_SPS11VLDO_WT(x)		((x) & (~BITS_SYSON_SPS11VLDO_WT))
#define BIT_GET_SYSON_SPS11VLDO_WT(x)			(((x) >> BIT_SHIFT_SYSON_SPS11VLDO_WT) & BIT_MASK_SYSON_SPS11VLDO_WT)
#define BIT_SET_SYSON_SPS11VLDO_WT(x, v)		(BIT_CLEAR_SYSON_SPS11VLDO_WT(x) | BIT_SYSON_SPS11VLDO_WT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PWR_OPTION_CTRL			(Offset 0x0038) */


#define BIT_SHIFT_SYSON_RCLK_SCALE			0
#define BIT_MASK_SYSON_RCLK_SCALE			0x3
#define BIT_SYSON_RCLK_SCALE(x)			(((x) & BIT_MASK_SYSON_RCLK_SCALE) << BIT_SHIFT_SYSON_RCLK_SCALE)
#define BITS_SYSON_RCLK_SCALE				(BIT_MASK_SYSON_RCLK_SCALE << BIT_SHIFT_SYSON_RCLK_SCALE)
#define BIT_CLEAR_SYSON_RCLK_SCALE(x)			((x) & (~BITS_SYSON_RCLK_SCALE))
#define BIT_GET_SYSON_RCLK_SCALE(x)			(((x) >> BIT_SHIFT_SYSON_RCLK_SCALE) & BIT_MASK_SYSON_RCLK_SCALE)
#define BIT_SET_SYSON_RCLK_SCALE(x, v)			(BIT_CLEAR_SYSON_RCLK_SCALE(x) | BIT_SYSON_RCLK_SCALE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HCPWM1_V2			(Offset 0x10250038) */

#define BIT_CUR_PS					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAL_TIMER				(Offset 0x003C) */


#define BIT_SHIFT_CAL_SCAL				0
#define BIT_MASK_CAL_SCAL				0xff
#define BIT_CAL_SCAL(x)				(((x) & BIT_MASK_CAL_SCAL) << BIT_SHIFT_CAL_SCAL)
#define BITS_CAL_SCAL					(BIT_MASK_CAL_SCAL << BIT_SHIFT_CAL_SCAL)
#define BIT_CLEAR_CAL_SCAL(x)				((x) & (~BITS_CAL_SCAL))
#define BIT_GET_CAL_SCAL(x)				(((x) >> BIT_SHIFT_CAL_SCAL) & BIT_MASK_CAL_SCAL)
#define BIT_SET_CAL_SCAL(x, v)				(BIT_CLEAR_CAL_SCAL(x) | BIT_CAL_SCAL(v))


/* 2 REG_ACLK_MON				(Offset 0x003E) */


#define BIT_SHIFT_RCLK_MON				5
#define BIT_MASK_RCLK_MON				0x7ff
#define BIT_RCLK_MON(x)				(((x) & BIT_MASK_RCLK_MON) << BIT_SHIFT_RCLK_MON)
#define BITS_RCLK_MON					(BIT_MASK_RCLK_MON << BIT_SHIFT_RCLK_MON)
#define BIT_CLEAR_RCLK_MON(x)				((x) & (~BITS_RCLK_MON))
#define BIT_GET_RCLK_MON(x)				(((x) >> BIT_SHIFT_RCLK_MON) & BIT_MASK_RCLK_MON)
#define BIT_SET_RCLK_MON(x, v)				(BIT_CLEAR_RCLK_MON(x) | BIT_RCLK_MON(v))

#define BIT_CAL_EN					BIT(4)

#define BIT_SHIFT_DPSTU				2
#define BIT_MASK_DPSTU					0x3
#define BIT_DPSTU(x)					(((x) & BIT_MASK_DPSTU) << BIT_SHIFT_DPSTU)
#define BITS_DPSTU					(BIT_MASK_DPSTU << BIT_SHIFT_DPSTU)
#define BIT_CLEAR_DPSTU(x)				((x) & (~BITS_DPSTU))
#define BIT_GET_DPSTU(x)				(((x) >> BIT_SHIFT_DPSTU) & BIT_MASK_DPSTU)
#define BIT_SET_DPSTU(x, v)				(BIT_CLEAR_DPSTU(x) | BIT_DPSTU(v))

#define BIT_SUS_16X					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ACLK_MON				(Offset 0x003E) */

#define BIT_RSM_EN					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_PAD_D_PAPE_2G_E				BIT(31)
#define BIT_PAD_D_PAPE_5G_E				BIT(30)
#define BIT_PAD_D_TRSW_E				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_SIC_LOWEST_PRIORITY			BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_PAD_D_TRSWB_E				BIT(28)
#define BIT_PAD_D_PAPE_2G_O				BIT(27)
#define BIT_PAD_D_PAPE_5G_O				BIT(26)
#define BIT_PAD_D_TRSW_O				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */


#define BIT_SHIFT_PIN_USECASE				24
#define BIT_MASK_PIN_USECASE				0xf
#define BIT_PIN_USECASE(x)				(((x) & BIT_MASK_PIN_USECASE) << BIT_SHIFT_PIN_USECASE)
#define BITS_PIN_USECASE				(BIT_MASK_PIN_USECASE << BIT_SHIFT_PIN_USECASE)
#define BIT_CLEAR_PIN_USECASE(x)			((x) & (~BITS_PIN_USECASE))
#define BIT_GET_PIN_USECASE(x)				(((x) >> BIT_SHIFT_PIN_USECASE) & BIT_MASK_PIN_USECASE)
#define BIT_SET_PIN_USECASE(x, v)			(BIT_CLEAR_PIN_USECASE(x) | BIT_PIN_USECASE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_PAD_D_TRSWB_O				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_DATACPU_GPIO2				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_A_ANTSEL				BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_DATACPU_GPIO				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_A_ANTSELB				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_DATACPU_UART				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_D_PAPE_2G				BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_DATACPU_FSPI_EN				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */

#define BIT_INDIRECT_REG_RDY				BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_D_PAPE_5G				BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_GPIO8_UART_OUT				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_FSPI_EN					BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */

#define BIT_INDIRECT_REG_R				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_WL_RTS_EXT_32K_SEL				BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */

#define BIT_INDIRECT_REG_W				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_CKOUT33_EN					BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_XTAL_OUT_EN				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_WLGP_SPI_EN				BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */


#define BIT_SHIFT_INDIRECT_REG_SIZE			16
#define BIT_MASK_INDIRECT_REG_SIZE			0x3
#define BIT_INDIRECT_REG_SIZE(x)			(((x) & BIT_MASK_INDIRECT_REG_SIZE) << BIT_SHIFT_INDIRECT_REG_SIZE)
#define BITS_INDIRECT_REG_SIZE				(BIT_MASK_INDIRECT_REG_SIZE << BIT_SHIFT_INDIRECT_REG_SIZE)
#define BIT_CLEAR_INDIRECT_REG_SIZE(x)			((x) & (~BITS_INDIRECT_REG_SIZE))
#define BIT_GET_INDIRECT_REG_SIZE(x)			(((x) >> BIT_SHIFT_INDIRECT_REG_SIZE) & BIT_MASK_INDIRECT_REG_SIZE)
#define BIT_SET_INDIRECT_REG_SIZE(x, v)		(BIT_CLEAR_INDIRECT_REG_SIZE(x) | BIT_INDIRECT_REG_SIZE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_SIC_LBK					BIT(15)
#define BIT_ENHTP					BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_WLPHY_DBG_EN				BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_SIC_23					BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_ENSIC					BIT(12)
#define BIT_SIC_SWRST					BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_PO_WIFI_PTA_PINS				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_ENPMAC					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_ENBTCMD					BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_BTCOEX_MBOX_EN				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_BTCMD_OUT_EN				BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_PO_BT_PTA_PINS				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_ENUART					BIT(8)

#define BIT_SHIFT_BTMODE				6
#define BIT_MASK_BTMODE				0x3
#define BIT_BTMODE(x)					(((x) & BIT_MASK_BTMODE) << BIT_SHIFT_BTMODE)
#define BITS_BTMODE					(BIT_MASK_BTMODE << BIT_SHIFT_BTMODE)
#define BIT_CLEAR_BTMODE(x)				((x) & (~BITS_BTMODE))
#define BIT_GET_BTMODE(x)				(((x) >> BIT_SHIFT_BTMODE) & BIT_MASK_BTMODE)
#define BIT_SET_BTMODE(x, v)				(BIT_CLEAR_BTMODE(x) | BIT_BTMODE(v))

#define BIT_ENBT					BIT(5)
#define BIT_EROM_EN					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_WLRFE_6_7_EN				BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_D_TRSW					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_WLRFE_4_5_EN				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */

#define BIT_EN_D_TRSWB					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_MUXCFG				(Offset 0x0040) */


#define BIT_SHIFT_GPIOSEL				0
#define BIT_MASK_GPIOSEL				0x3
#define BIT_GPIOSEL(x)					(((x) & BIT_MASK_GPIOSEL) << BIT_SHIFT_GPIOSEL)
#define BITS_GPIOSEL					(BIT_MASK_GPIOSEL << BIT_SHIFT_GPIOSEL)
#define BIT_CLEAR_GPIOSEL(x)				((x) & (~BITS_GPIOSEL))
#define BIT_GET_GPIOSEL(x)				(((x) >> BIT_SHIFT_GPIOSEL) & BIT_MASK_GPIOSEL)
#define BIT_SET_GPIOSEL(x, v)				(BIT_CLEAR_GPIOSEL(x) | BIT_GPIOSEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_CFG		(Offset 0x10250040) */


#define BIT_SHIFT_INDIRECT_REG_ADDR			0
#define BIT_MASK_INDIRECT_REG_ADDR			0xffff
#define BIT_INDIRECT_REG_ADDR(x)			(((x) & BIT_MASK_INDIRECT_REG_ADDR) << BIT_SHIFT_INDIRECT_REG_ADDR)
#define BITS_INDIRECT_REG_ADDR				(BIT_MASK_INDIRECT_REG_ADDR << BIT_SHIFT_INDIRECT_REG_ADDR)
#define BIT_CLEAR_INDIRECT_REG_ADDR(x)			((x) & (~BITS_INDIRECT_REG_ADDR))
#define BIT_GET_INDIRECT_REG_ADDR(x)			(((x) >> BIT_SHIFT_INDIRECT_REG_ADDR) & BIT_MASK_INDIRECT_REG_ADDR)
#define BIT_SET_INDIRECT_REG_ADDR(x, v)		(BIT_CLEAR_INDIRECT_REG_ADDR(x) | BIT_INDIRECT_REG_ADDR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_PIN_CTRL			(Offset 0x0044) */


#define BIT_SHIFT_GPIO_MOD_7_TO_0			24
#define BIT_MASK_GPIO_MOD_7_TO_0			0xff
#define BIT_GPIO_MOD_7_TO_0(x)				(((x) & BIT_MASK_GPIO_MOD_7_TO_0) << BIT_SHIFT_GPIO_MOD_7_TO_0)
#define BITS_GPIO_MOD_7_TO_0				(BIT_MASK_GPIO_MOD_7_TO_0 << BIT_SHIFT_GPIO_MOD_7_TO_0)
#define BIT_CLEAR_GPIO_MOD_7_TO_0(x)			((x) & (~BITS_GPIO_MOD_7_TO_0))
#define BIT_GET_GPIO_MOD_7_TO_0(x)			(((x) >> BIT_SHIFT_GPIO_MOD_7_TO_0) & BIT_MASK_GPIO_MOD_7_TO_0)
#define BIT_SET_GPIO_MOD_7_TO_0(x, v)			(BIT_CLEAR_GPIO_MOD_7_TO_0(x) | BIT_GPIO_MOD_7_TO_0(v))


#define BIT_SHIFT_GPIO_IO_SEL_7_TO_0			16
#define BIT_MASK_GPIO_IO_SEL_7_TO_0			0xff
#define BIT_GPIO_IO_SEL_7_TO_0(x)			(((x) & BIT_MASK_GPIO_IO_SEL_7_TO_0) << BIT_SHIFT_GPIO_IO_SEL_7_TO_0)
#define BITS_GPIO_IO_SEL_7_TO_0			(BIT_MASK_GPIO_IO_SEL_7_TO_0 << BIT_SHIFT_GPIO_IO_SEL_7_TO_0)
#define BIT_CLEAR_GPIO_IO_SEL_7_TO_0(x)		((x) & (~BITS_GPIO_IO_SEL_7_TO_0))
#define BIT_GET_GPIO_IO_SEL_7_TO_0(x)			(((x) >> BIT_SHIFT_GPIO_IO_SEL_7_TO_0) & BIT_MASK_GPIO_IO_SEL_7_TO_0)
#define BIT_SET_GPIO_IO_SEL_7_TO_0(x, v)		(BIT_CLEAR_GPIO_IO_SEL_7_TO_0(x) | BIT_GPIO_IO_SEL_7_TO_0(v))


#define BIT_SHIFT_GPIO_OUT_7_TO_0			8
#define BIT_MASK_GPIO_OUT_7_TO_0			0xff
#define BIT_GPIO_OUT_7_TO_0(x)				(((x) & BIT_MASK_GPIO_OUT_7_TO_0) << BIT_SHIFT_GPIO_OUT_7_TO_0)
#define BITS_GPIO_OUT_7_TO_0				(BIT_MASK_GPIO_OUT_7_TO_0 << BIT_SHIFT_GPIO_OUT_7_TO_0)
#define BIT_CLEAR_GPIO_OUT_7_TO_0(x)			((x) & (~BITS_GPIO_OUT_7_TO_0))
#define BIT_GET_GPIO_OUT_7_TO_0(x)			(((x) >> BIT_SHIFT_GPIO_OUT_7_TO_0) & BIT_MASK_GPIO_OUT_7_TO_0)
#define BIT_SET_GPIO_OUT_7_TO_0(x, v)			(BIT_CLEAR_GPIO_OUT_7_TO_0(x) | BIT_GPIO_OUT_7_TO_0(v))


#define BIT_SHIFT_GPIO_IN_7_TO_0			0
#define BIT_MASK_GPIO_IN_7_TO_0			0xff
#define BIT_GPIO_IN_7_TO_0(x)				(((x) & BIT_MASK_GPIO_IN_7_TO_0) << BIT_SHIFT_GPIO_IN_7_TO_0)
#define BITS_GPIO_IN_7_TO_0				(BIT_MASK_GPIO_IN_7_TO_0 << BIT_SHIFT_GPIO_IN_7_TO_0)
#define BIT_CLEAR_GPIO_IN_7_TO_0(x)			((x) & (~BITS_GPIO_IN_7_TO_0))
#define BIT_GET_GPIO_IN_7_TO_0(x)			(((x) >> BIT_SHIFT_GPIO_IN_7_TO_0) & BIT_MASK_GPIO_IN_7_TO_0)
#define BIT_SET_GPIO_IN_7_TO_0(x, v)			(BIT_CLEAR_GPIO_IN_7_TO_0(x) | BIT_GPIO_IN_7_TO_0(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_INDIRECT_REG_DATA		(Offset 0x10250044) */


#define BIT_SHIFT_INDIRECT_REG_DATA			0
#define BIT_MASK_INDIRECT_REG_DATA			0xffffffffL
#define BIT_INDIRECT_REG_DATA(x)			(((x) & BIT_MASK_INDIRECT_REG_DATA) << BIT_SHIFT_INDIRECT_REG_DATA)
#define BITS_INDIRECT_REG_DATA				(BIT_MASK_INDIRECT_REG_DATA << BIT_SHIFT_INDIRECT_REG_DATA)
#define BIT_CLEAR_INDIRECT_REG_DATA(x)			((x) & (~BITS_INDIRECT_REG_DATA))
#define BIT_GET_INDIRECT_REG_DATA(x)			(((x) >> BIT_SHIFT_INDIRECT_REG_DATA) & BIT_MASK_INDIRECT_REG_DATA)
#define BIT_SET_INDIRECT_REG_DATA(x, v)		(BIT_CLEAR_INDIRECT_REG_DATA(x) | BIT_INDIRECT_REG_DATA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */


#define BIT_SHIFT_MUXDBG_SEL				30
#define BIT_MASK_MUXDBG_SEL				0x3
#define BIT_MUXDBG_SEL(x)				(((x) & BIT_MASK_MUXDBG_SEL) << BIT_SHIFT_MUXDBG_SEL)
#define BITS_MUXDBG_SEL				(BIT_MASK_MUXDBG_SEL << BIT_SHIFT_MUXDBG_SEL)
#define BIT_CLEAR_MUXDBG_SEL(x)			((x) & (~BITS_MUXDBG_SEL))
#define BIT_GET_MUXDBG_SEL(x)				(((x) >> BIT_SHIFT_MUXDBG_SEL) & BIT_MASK_MUXDBG_SEL)
#define BIT_SET_MUXDBG_SEL(x, v)			(BIT_CLEAR_MUXDBG_SEL(x) | BIT_MUXDBG_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */


#define BIT_SHIFT_MUXDBG_SEL2				28
#define BIT_MASK_MUXDBG_SEL2				0x3
#define BIT_MUXDBG_SEL2(x)				(((x) & BIT_MASK_MUXDBG_SEL2) << BIT_SHIFT_MUXDBG_SEL2)
#define BITS_MUXDBG_SEL2				(BIT_MASK_MUXDBG_SEL2 << BIT_SHIFT_MUXDBG_SEL2)
#define BIT_CLEAR_MUXDBG_SEL2(x)			((x) & (~BITS_MUXDBG_SEL2))
#define BIT_GET_MUXDBG_SEL2(x)				(((x) >> BIT_SHIFT_MUXDBG_SEL2) & BIT_MASK_MUXDBG_SEL2)
#define BIT_SET_MUXDBG_SEL2(x, v)			(BIT_CLEAR_MUXDBG_SEL2(x) | BIT_MUXDBG_SEL2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_GPIO_EXT_EN				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_EXTWOL1_SEL				BIT(19)
#define BIT_EXTWOL1_EN					BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_EXTWOL0_SEL				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_EXTWOL_SEL					BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_EXTWOL0_EN					BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_EXTWOL_EN					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */


#define BIT_SHIFT_GPIO_EXT_WOL_V1			16
#define BIT_MASK_GPIO_EXT_WOL_V1			0xf
#define BIT_GPIO_EXT_WOL_V1(x)				(((x) & BIT_MASK_GPIO_EXT_WOL_V1) << BIT_SHIFT_GPIO_EXT_WOL_V1)
#define BITS_GPIO_EXT_WOL_V1				(BIT_MASK_GPIO_EXT_WOL_V1 << BIT_SHIFT_GPIO_EXT_WOL_V1)
#define BIT_CLEAR_GPIO_EXT_WOL_V1(x)			((x) & (~BITS_GPIO_EXT_WOL_V1))
#define BIT_GET_GPIO_EXT_WOL_V1(x)			(((x) >> BIT_SHIFT_GPIO_EXT_WOL_V1) & BIT_MASK_GPIO_EXT_WOL_V1)
#define BIT_SET_GPIO_EXT_WOL_V1(x, v)			(BIT_CLEAR_GPIO_EXT_WOL_V1(x) | BIT_GPIO_EXT_WOL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_INTM				(Offset 0x0048) */

#define BIT_GPIOF_INT_MD				BIT(15)
#define BIT_GPIOE_INT_MD				BIT(14)
#define BIT_GPIOD_INT_MD				BIT(13)
#define BIT_GPIOC_INT_MD				BIT(12)
#define BIT_GPIOB_INT_MD				BIT(11)
#define BIT_GPIOA_INT_MD				BIT(10)
#define BIT_GPIO9_INT_MD				BIT(9)
#define BIT_GPIO8_INT_MD				BIT(8)
#define BIT_GPIO7_INT_MD				BIT(7)
#define BIT_GPIO6_INT_MD				BIT(6)
#define BIT_GPIO5_INT_MD				BIT(5)
#define BIT_GPIO4_INT_MD				BIT(4)
#define BIT_GPIO3_INT_MD				BIT(3)
#define BIT_GPIO2_INT_MD				BIT(2)
#define BIT_GPIO1_INT_MD				BIT(1)
#define BIT_GPIO0_INT_MD				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_ANTSEL_I				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_ANT_SEL7_EN				BIT(30)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_ANTSELB_I				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_ANT_SEL46_EN				BIT(29)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_D_PAPE_2G_I				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_ANT_SEL3_EN				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_D_PAPE_5G_I				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_TRSW_SEL_EN				BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_D_TRSW_I				BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_GPIO3_WL_CTRL_EN				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAPE1_SEL_EN				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LNAON_SEL_EN				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAD_D_TRSWB_I				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAPE0_SEL_EN				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_PAPE_SEL_EN				BIT(25)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_DWH_EN					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_ANTSEL2_EN					BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_DPDT_WLBT_SEL				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_DHW_EN					BIT(24)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_RFE_ANT_EXT_SEL				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_ANTSEL_EN					BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_DPDT_SEL_EN				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_GPIO13_14_WL_CTRL_EN			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LED2DIS_V1					BIT(22)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_TRXIQ_DBG_EN				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LED2DIS					BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LED2EN					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LED2PL					BIT(20)
#define BIT_LED2SV					BIT(19)

#define BIT_SHIFT_LED2CM				16
#define BIT_MASK_LED2CM				0x7
#define BIT_LED2CM(x)					(((x) & BIT_MASK_LED2CM) << BIT_SHIFT_LED2CM)
#define BITS_LED2CM					(BIT_MASK_LED2CM << BIT_SHIFT_LED2CM)
#define BIT_CLEAR_LED2CM(x)				((x) & (~BITS_LED2CM))
#define BIT_GET_LED2CM(x)				(((x) >> BIT_SHIFT_LED2CM) & BIT_MASK_LED2CM)
#define BIT_SET_LED2CM(x, v)				(BIT_CLEAR_LED2CM(x) | BIT_LED2CM(v))

#define BIT_LED1DIS					BIT(15)
#define BIT_LED1PL					BIT(12)
#define BIT_LED1SV					BIT(11)

#define BIT_SHIFT_LED1CM				8
#define BIT_MASK_LED1CM				0x7
#define BIT_LED1CM(x)					(((x) & BIT_MASK_LED1CM) << BIT_SHIFT_LED1CM)
#define BITS_LED1CM					(BIT_MASK_LED1CM << BIT_SHIFT_LED1CM)
#define BIT_CLEAR_LED1CM(x)				((x) & (~BITS_LED1CM))
#define BIT_GET_LED1CM(x)				(((x) >> BIT_SHIFT_LED1CM) & BIT_MASK_LED1CM)
#define BIT_SET_LED1CM(x, v)				(BIT_CLEAR_LED1CM(x) | BIT_LED1CM(v))

#define BIT_LED0DIS					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */


#define BIT_SHIFT_AFE_LDO_SWR_CHECK			5
#define BIT_MASK_AFE_LDO_SWR_CHECK			0x3
#define BIT_AFE_LDO_SWR_CHECK(x)			(((x) & BIT_MASK_AFE_LDO_SWR_CHECK) << BIT_SHIFT_AFE_LDO_SWR_CHECK)
#define BITS_AFE_LDO_SWR_CHECK				(BIT_MASK_AFE_LDO_SWR_CHECK << BIT_SHIFT_AFE_LDO_SWR_CHECK)
#define BIT_CLEAR_AFE_LDO_SWR_CHECK(x)			((x) & (~BITS_AFE_LDO_SWR_CHECK))
#define BIT_GET_AFE_LDO_SWR_CHECK(x)			(((x) >> BIT_SHIFT_AFE_LDO_SWR_CHECK) & BIT_MASK_AFE_LDO_SWR_CHECK)
#define BIT_SET_AFE_LDO_SWR_CHECK(x, v)		(BIT_CLEAR_AFE_LDO_SWR_CHECK(x) | BIT_AFE_LDO_SWR_CHECK(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LED_CFG				(Offset 0x004C) */

#define BIT_LED0PL					BIT(4)
#define BIT_LED0SV					BIT(3)

#define BIT_SHIFT_LED0CM				0
#define BIT_MASK_LED0CM				0x7
#define BIT_LED0CM(x)					(((x) & BIT_MASK_LED0CM) << BIT_SHIFT_LED0CM)
#define BITS_LED0CM					(BIT_MASK_LED0CM << BIT_SHIFT_LED0CM)
#define BIT_CLEAR_LED0CM(x)				((x) & (~BITS_LED0CM))
#define BIT_GET_LED0CM(x)				(((x) >> BIT_SHIFT_LED0CM) & BIT_MASK_LED0CM)
#define BIT_SET_LED0CM(x, v)				(BIT_CLEAR_LED0CM(x) | BIT_LED0CM(v))


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_PDNINT_EN				BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_NFC_INT_PAD_EN				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_SPS_OCP_INT_EN				BIT(29)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_SW_SPS_OCP_INT_EN				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_PWMERR_INT_EN				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_PWM_HW_ERR_EN				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOF_INT_EN				BIT(27)
#define BIT_FS_GPIOE_INT_EN				BIT(26)
#define BIT_FS_GPIOD_INT_EN				BIT(25)
#define BIT_FS_GPIOC_INT_EN				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_ACT2RECOVERY_INT_EN			BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOB_INT_EN				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_PCIE_GEN12_SWITCH_EN			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOA_INT_EN				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_SUS_EN_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO9_INT_EN				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_RES_EN_V1				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO8_INT_EN				BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_RESET_EN_V1				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO7_INT_EN				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_32K_LEAVE_SETTING_EN			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO6_INT_EN				BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_32K_ENTER_SETTING_EN			BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO5_INT_EN				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_SIE_LPM_RSM_EN_V1			BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO4_INT_EN				BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_SIE_LPM_ACT_EN_V1			BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO3_INT_EN				BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOF_INT_EN_V1				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO2_INT_EN				BIT(14)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOE_INT_EN_V1				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO1_INT_EN				BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOD_INT_EN_V1				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO0_INT_EN				BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOC_INT_EN_V1				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_SUS_EN				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOB_INT_EN_V1				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_RES_EN				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIOA_INT_EN_V1				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_HCI_RESET_EN				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO9_INT_EN_V1				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_AXI_EXCEPT_FINT_EN				BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO8_INT_EN_V1				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_USB_SCSI_CMD_EN				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_BTON_STS_UPDATE_MSK_EN			BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO7_INT_EN_V1				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_ACT2RECOVERY_INT_EN_V1			BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO6_INT_EN_V1				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_TRPC_TO_INT_EN				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO5_INT_EN_V1				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_GEN1GEN2_SWITCH				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_RPC_O_T_INT_EN				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO4_INT_EN_V1				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_HCI_TXDMA_REQ_HIMR				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_32K_LEAVE_SETTING_MAK			BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO3_INT_EN_V1				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_32K_ENTER_SETTING_MAK			BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO2_INT_EN_V1				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_USB_LPMRSM_MSK				BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO1_INT_EN_V1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_USB_LPMINT_MSK				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSIMR				(Offset 0x0050) */

#define BIT_FS_GPIO0_INT_EN_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_PDNINT					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_SPS_OCP_INT				BIT(29)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_SW_SPS_OCP_INT				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_PWMERR_INT				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_PWM_HW_ERR				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOF_INT				BIT(27)
#define BIT_FS_GPIOE_INT				BIT(26)
#define BIT_FS_GPIOD_INT				BIT(25)
#define BIT_FS_GPIOC_INT				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_ACT2RECOVERY_INT				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOB_INT				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_PCIE_GEN12_SWITCH				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOA_INT				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_SUS_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO9_INT				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_RES_V1				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO8_INT				BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_RESET_V1				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO7_INT				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_32K_LEAVE_SETTING			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO6_INT				BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_32K_ENTER_SETTING			BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO5_INT				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_SIE_LPM_RSM_V1				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO4_INT				BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_SIE_LPM_ACT_V1				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO3_INT				BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOF_INT_V1				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO2_INT				BIT(14)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOE_INT_V1				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO1_INT				BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOD_INT_V1				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO0_INT				BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOC_INT_V1				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_SUS_INT				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOB_INT_V1				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_RES_INT				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIOA_INT_V1				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_HCI_RESET_INT				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO9_INT_V1				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_AXI_EXCEPT_FINT				BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO8_INT_V1				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_USB_SCSI_CMD_INT				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_BTON_STS_UPDATE_INT			BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO7_INT_V1				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_ACT2RECOVERY_INT_V1			BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO6_INT_V1				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_ACT2RECOVERY				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_TRPC_TO_INT_INT				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO5_INT_V1				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_RPC_O_T_INT_INT				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO4_INT_V1				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_HCI_TXDMA_REQ_HISR				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_32K_LEAVE_SETTING_INT			BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO3_INT_V1				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_32K_ENTER_SETTING_INT			BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO2_INT_V1				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_USB_LPMRSM_INT				BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO1_INT_V1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_USB_LPMINT_INT				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FSISR				(Offset 0x0054) */

#define BIT_FS_GPIO0_INT_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIOF_INT_EN				BIT(31)
#define BIT_GPIOE_INT_EN				BIT(30)
#define BIT_GPIOD_INT_EN				BIT(29)
#define BIT_GPIOC_INT_EN				BIT(28)
#define BIT_GPIOB_INT_EN				BIT(27)
#define BIT_GPIOA_INT_EN				BIT(26)
#define BIT_GPIO9_INT_EN				BIT(25)
#define BIT_GPIO8_INT_EN				BIT(24)
#define BIT_GPIO7_INT_EN				BIT(23)
#define BIT_GPIO6_INT_EN				BIT(22)
#define BIT_GPIO5_INT_EN				BIT(21)
#define BIT_GPIO4_INT_EN				BIT(20)
#define BIT_GPIO3_INT_EN				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIO2_INT_EN				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIO1_INT_EN				BIT(17)
#define BIT_GPIO0_INT_EN				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIO2_INT_EN_V1				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_AXI_EXCEPT_HINT_EN				BIT(9)
#define BIT_PDNINT_EN_V2				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_PDNINT_EN					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_PDNINT_EN_V1				BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_PDN_INT_EN					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_RON_INT_EN					BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_RON_INT_EN_V1				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_SPS_OCP_INT_EN				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_SPS_OCP_INT_EN_V1				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIO15_0_INT_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSIMR				(Offset 0x0058) */

#define BIT_GPIO15_0_INT_EN_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIOF_INT					BIT(31)
#define BIT_GPIOE_INT					BIT(30)
#define BIT_GPIOD_INT					BIT(29)
#define BIT_GPIOC_INT					BIT(28)
#define BIT_GPIOB_INT					BIT(27)
#define BIT_GPIOA_INT					BIT(26)
#define BIT_GPIO9_INT					BIT(25)
#define BIT_GPIO8_INT					BIT(24)
#define BIT_GPIO7_INT					BIT(23)
#define BIT_GPIO6_INT					BIT(22)
#define BIT_GPIO5_INT					BIT(21)
#define BIT_GPIO4_INT					BIT(20)
#define BIT_GPIO3_INT					BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIO2_INT					BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIO1_INT					BIT(17)
#define BIT_GPIO0_INT					BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIO2_INT_V1				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_AXI_EXCEPT_HINT				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_PDNINT					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_PDNINT_V1					BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_PDN_INT					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_RON_INT					BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_RON_INT_V1					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_SPS_OCP_INT				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_SPS_OCP_INT_V1				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIO15_0_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HSISR				(Offset 0x005C) */

#define BIT_GPIO15_0_INT_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_EXT_CTRL			(Offset 0x0060) */


#define BIT_SHIFT_GPIO_MOD_15_TO_8			24
#define BIT_MASK_GPIO_MOD_15_TO_8			0xff
#define BIT_GPIO_MOD_15_TO_8(x)			(((x) & BIT_MASK_GPIO_MOD_15_TO_8) << BIT_SHIFT_GPIO_MOD_15_TO_8)
#define BITS_GPIO_MOD_15_TO_8				(BIT_MASK_GPIO_MOD_15_TO_8 << BIT_SHIFT_GPIO_MOD_15_TO_8)
#define BIT_CLEAR_GPIO_MOD_15_TO_8(x)			((x) & (~BITS_GPIO_MOD_15_TO_8))
#define BIT_GET_GPIO_MOD_15_TO_8(x)			(((x) >> BIT_SHIFT_GPIO_MOD_15_TO_8) & BIT_MASK_GPIO_MOD_15_TO_8)
#define BIT_SET_GPIO_MOD_15_TO_8(x, v)			(BIT_CLEAR_GPIO_MOD_15_TO_8(x) | BIT_GPIO_MOD_15_TO_8(v))


#define BIT_SHIFT_GPIO_IO_SEL_15_TO_8			16
#define BIT_MASK_GPIO_IO_SEL_15_TO_8			0xff
#define BIT_GPIO_IO_SEL_15_TO_8(x)			(((x) & BIT_MASK_GPIO_IO_SEL_15_TO_8) << BIT_SHIFT_GPIO_IO_SEL_15_TO_8)
#define BITS_GPIO_IO_SEL_15_TO_8			(BIT_MASK_GPIO_IO_SEL_15_TO_8 << BIT_SHIFT_GPIO_IO_SEL_15_TO_8)
#define BIT_CLEAR_GPIO_IO_SEL_15_TO_8(x)		((x) & (~BITS_GPIO_IO_SEL_15_TO_8))
#define BIT_GET_GPIO_IO_SEL_15_TO_8(x)			(((x) >> BIT_SHIFT_GPIO_IO_SEL_15_TO_8) & BIT_MASK_GPIO_IO_SEL_15_TO_8)
#define BIT_SET_GPIO_IO_SEL_15_TO_8(x, v)		(BIT_CLEAR_GPIO_IO_SEL_15_TO_8(x) | BIT_GPIO_IO_SEL_15_TO_8(v))


#define BIT_SHIFT_GPIO_OUT_15_TO_8			8
#define BIT_MASK_GPIO_OUT_15_TO_8			0xff
#define BIT_GPIO_OUT_15_TO_8(x)			(((x) & BIT_MASK_GPIO_OUT_15_TO_8) << BIT_SHIFT_GPIO_OUT_15_TO_8)
#define BITS_GPIO_OUT_15_TO_8				(BIT_MASK_GPIO_OUT_15_TO_8 << BIT_SHIFT_GPIO_OUT_15_TO_8)
#define BIT_CLEAR_GPIO_OUT_15_TO_8(x)			((x) & (~BITS_GPIO_OUT_15_TO_8))
#define BIT_GET_GPIO_OUT_15_TO_8(x)			(((x) >> BIT_SHIFT_GPIO_OUT_15_TO_8) & BIT_MASK_GPIO_OUT_15_TO_8)
#define BIT_SET_GPIO_OUT_15_TO_8(x, v)			(BIT_CLEAR_GPIO_OUT_15_TO_8(x) | BIT_GPIO_OUT_15_TO_8(v))


#define BIT_SHIFT_GPIO_IN_15_TO_8			0
#define BIT_MASK_GPIO_IN_15_TO_8			0xff
#define BIT_GPIO_IN_15_TO_8(x)				(((x) & BIT_MASK_GPIO_IN_15_TO_8) << BIT_SHIFT_GPIO_IN_15_TO_8)
#define BITS_GPIO_IN_15_TO_8				(BIT_MASK_GPIO_IN_15_TO_8 << BIT_SHIFT_GPIO_IN_15_TO_8)
#define BIT_CLEAR_GPIO_IN_15_TO_8(x)			((x) & (~BITS_GPIO_IN_15_TO_8))
#define BIT_GET_GPIO_IN_15_TO_8(x)			(((x) >> BIT_SHIFT_GPIO_IN_15_TO_8) & BIT_MASK_GPIO_IN_15_TO_8)
#define BIT_SET_GPIO_IN_15_TO_8(x, v)			(BIT_CLEAR_GPIO_IN_15_TO_8(x) | BIT_GPIO_IN_15_TO_8(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_H2C				(Offset 0x10250060) */


#define BIT_SHIFT_SDIO_H2C_MSG				0
#define BIT_MASK_SDIO_H2C_MSG				0xffffffffL
#define BIT_SDIO_H2C_MSG(x)				(((x) & BIT_MASK_SDIO_H2C_MSG) << BIT_SHIFT_SDIO_H2C_MSG)
#define BITS_SDIO_H2C_MSG				(BIT_MASK_SDIO_H2C_MSG << BIT_SHIFT_SDIO_H2C_MSG)
#define BIT_CLEAR_SDIO_H2C_MSG(x)			((x) & (~BITS_SDIO_H2C_MSG))
#define BIT_GET_SDIO_H2C_MSG(x)			(((x) >> BIT_SHIFT_SDIO_H2C_MSG) & BIT_MASK_SDIO_H2C_MSG)
#define BIT_SET_SDIO_H2C_MSG(x, v)			(BIT_CLEAR_SDIO_H2C_MSG(x) | BIT_SDIO_H2C_MSG(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_DATA_CPU_JTAG				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAPE_WLBT_SEL				BIT(29)
#define BIT_LNAON_WLBT_SEL				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BDEN					BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_GPG3_FEN				BIT(26)
#define BIT_BTGP_GPG2_FEN				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_JTAG_EN				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BB2PP_ISO					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_XTAL_CLK_EXTARNAL_EN			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTBRI_UART_EN				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_UART0_EN				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_UART1_EN				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTCOEX_PU					BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_SPI_EN				BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_EEPROM_SEL_PD				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_GPIO_E2				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_TST_MOD_PD					BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTGP_GPIO_EN				BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BOOT_FLUSH_PD				BIT(18)
#define BIT_USB_XTAL_SEL1_PD				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */


#define BIT_SHIFT_BTGP_GPIO_SL				16
#define BIT_MASK_BTGP_GPIO_SL				0x3
#define BIT_BTGP_GPIO_SL(x)				(((x) & BIT_MASK_BTGP_GPIO_SL) << BIT_SHIFT_BTGP_GPIO_SL)
#define BITS_BTGP_GPIO_SL				(BIT_MASK_BTGP_GPIO_SL << BIT_SHIFT_BTGP_GPIO_SL)
#define BIT_CLEAR_BTGP_GPIO_SL(x)			((x) & (~BITS_BTGP_GPIO_SL))
#define BIT_GET_BTGP_GPIO_SL(x)			(((x) >> BIT_SHIFT_BTGP_GPIO_SL) & BIT_MASK_BTGP_GPIO_SL)
#define BIT_SET_BTGP_GPIO_SL(x, v)			(BIT_CLEAR_BTGP_GPIO_SL(x) | BIT_BTGP_GPIO_SL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_USB_XTAL_SEL0_PD				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_HST_WKE_DEV_SL				BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_BTSUSB_PL					BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_WL_JTAG					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_SDIO_SR				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_GPIO14_OUTPUT_PL				BIT(13)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_DEVWHOST_POLARITY			BIT(13)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_GPIO15_OUTPUT_PL				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_HOST_WAKE_PAD_PULL_EN			BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_HOST_WAKE_DEV_PLL_EN			BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_HOST_WAKE_PAD_SL				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_HOST_WAKE_DEV_POLARITY			BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_TRSW_SR				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_LNAON_SR				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_TRSW_E2				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_LNAON_E2				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_A_ANTSEL_SR				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_TRSW_P_SEL_DATA				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_LNAON_G_SEL_DATA			BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_A_ANTSEL_E2				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_TRSW_N_SEL_DATA				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_LNAON_A_SEL_DATA			BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_PAPE_2G_SR				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_PAPE_SR				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_PAPE_5G_SR				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_PAPE_E2				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_TRSW_SR					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_PAPE_1_SEL_DATA				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_PAPE_G_SEL_DATA				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_TRSWB_SR					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_PAPE_0_SEL_DATA				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_PAPE_A_SEL_DATA				BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_PAPE_2G_E2				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_ANTSEL_2_SEL_DATA			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_DPDT_SR				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_PAPE_5G_E2				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_ANTSEL_N_SEL_DATA			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_DPDT_PAD_E2				BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_TRSW_E2					BIT(1)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_PAD_DPDT_E2				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_ANTSEL_P_SEL_DATA			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_SW_DPDT_SEL_DATA				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL1				(Offset 0x0064) */

#define BIT_D_TRSWB_E2					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_C2H				(Offset 0x10250064) */


#define BIT_SHIFT_SDIO_C2H_MSG				0
#define BIT_MASK_SDIO_C2H_MSG				0xffffffffL
#define BIT_SDIO_C2H_MSG(x)				(((x) & BIT_MASK_SDIO_C2H_MSG) << BIT_SHIFT_SDIO_C2H_MSG)
#define BITS_SDIO_C2H_MSG				(BIT_MASK_SDIO_C2H_MSG << BIT_SHIFT_SDIO_C2H_MSG)
#define BIT_CLEAR_SDIO_C2H_MSG(x)			((x) & (~BITS_SDIO_C2H_MSG))
#define BIT_GET_SDIO_C2H_MSG(x)			(((x) >> BIT_SHIFT_SDIO_C2H_MSG) & BIT_MASK_SDIO_C2H_MSG)
#define BIT_SET_SDIO_C2H_MSG(x, v)			(BIT_CLEAR_SDIO_C2H_MSG(x) | BIT_SDIO_C2H_MSG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_ISO_BD2PP					BIT(31)
#define BIT_LDOV12B_EN					BIT(30)
#define BIT_CKEN_BTGPS					BIT(29)
#define BIT_FEN_BTGPS					BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_MULRW					BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BTCPU_BOOTSEL				BIT(27)
#define BIT_SPI_SPEEDUP				BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_SUS					BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_DEVWAKE_PAD_TYPE_SEL			BIT(24)
#define BIT_CLKREQ_PAD_TYPE_SEL			BIT(23)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_CKSL_BZSLP					BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_EN_CPL_TIMEOUT_PS				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_WAKE_HST_EN				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_ISO_BTPON2PP				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_REG_TXDMA_FAIL_PS				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WAKE_BT_EN					BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BTCOEX_CMD					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_EN_BT					BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_UART_INTF				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_EN_HWENTR_L1				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_SUSN_EN					BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_HWROF_EN				BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_S3_RF_HW_EN				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_EN_ADV_CLKGATE				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_FUNC_EN					BIT(18)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_S2_RF_HW_EN				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_HWPDN_SL				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_S1_RF_HW_EN				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_DISN_EN					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_S0_RF_HW_EN				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_PDN_PULL_EN				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WL_PDN_PULL_EN				BIT(14)
#define BIT_EXTERNAL_REQUEST_PL			BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_GPIO0_2_3_PULL_LOW_EN			BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_ISO_BA2PP					BIT(11)
#define BIT_BT_AFE_LDO_EN				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_PDN_PIN_SEL				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_GPIO11_PULL_LOW_EN				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_AFE_PLL_EN				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_GPIO4_PULL_LOW_EN				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_DIG_CLK_EN				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BT_WAKE_HST_SL				BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_ASSERT_SPS_EN				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_UART_BRIDGE				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WAKE_BT_SL					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_MASK_CHIPEN				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_OSC32K_CTRL_SEL				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WL_DRV_EXIST_IDX				BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_ASSERT_RF_EN				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_DOP_EHPAD					BIT(4)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_BIT_DOP_EHPAD				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WL_HWROF_EN				BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_SDIO_PAD_SHUTDOWNB				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WL_FUNC_EN					BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_SDIO_CLK_SMT				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WL_BT_PWR_CTRL			(Offset 0x0068) */

#define BIT_WL_HWPDN_SL				BIT(1)
#define BIT_WL_HWPDN_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SDM_DEBUG				(Offset 0x006C) */


#define BIT_SHIFT_F0N					23
#define BIT_MASK_F0N					0x7
#define BIT_F0N(x)					(((x) & BIT_MASK_F0N) << BIT_SHIFT_F0N)
#define BITS_F0N					(BIT_MASK_F0N << BIT_SHIFT_F0N)
#define BIT_CLEAR_F0N(x)				((x) & (~BITS_F0N))
#define BIT_GET_F0N(x)					(((x) >> BIT_SHIFT_F0N) & BIT_MASK_F0N)
#define BIT_SET_F0N(x, v)				(BIT_CLEAR_F0N(x) | BIT_F0N(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SDM_DEBUG				(Offset 0x006C) */

#define BIT_BT_WAKE_DEV_EN_V1				BIT(19)
#define BIT_BT_WAKE_HST_EN_V1				BIT(18)
#define BIT_BT_WAKE_HST_PL_V1				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GSSR				(Offset 0x006C) */


#define BIT_SHIFT_GPIO_15_TO_0_VAL			16
#define BIT_MASK_GPIO_15_TO_0_VAL			0xffff
#define BIT_GPIO_15_TO_0_VAL(x)			(((x) & BIT_MASK_GPIO_15_TO_0_VAL) << BIT_SHIFT_GPIO_15_TO_0_VAL)
#define BITS_GPIO_15_TO_0_VAL				(BIT_MASK_GPIO_15_TO_0_VAL << BIT_SHIFT_GPIO_15_TO_0_VAL)
#define BIT_CLEAR_GPIO_15_TO_0_VAL(x)			((x) & (~BITS_GPIO_15_TO_0_VAL))
#define BIT_GET_GPIO_15_TO_0_VAL(x)			(((x) >> BIT_SHIFT_GPIO_15_TO_0_VAL) & BIT_MASK_GPIO_15_TO_0_VAL)
#define BIT_SET_GPIO_15_TO_0_VAL(x, v)			(BIT_CLEAR_GPIO_15_TO_0_VAL(x) | BIT_GPIO_15_TO_0_VAL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SDM_DEBUG				(Offset 0x006C) */

#define BIT_BT_CLKREQ_EN_V1				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SDM_DEBUG				(Offset 0x006C) */


#define BIT_SHIFT_F0F					10
#define BIT_MASK_F0F					0x1fff
#define BIT_F0F(x)					(((x) & BIT_MASK_F0F) << BIT_SHIFT_F0F)
#define BITS_F0F					(BIT_MASK_F0F << BIT_SHIFT_F0F)
#define BIT_CLEAR_F0F(x)				((x) & (~BITS_F0F))
#define BIT_GET_F0F(x)					(((x) >> BIT_SHIFT_F0F) & BIT_MASK_F0F)
#define BIT_SET_F0F(x, v)				(BIT_CLEAR_F0F(x) | BIT_F0F(v))


#define BIT_SHIFT_DIVN					4
#define BIT_MASK_DIVN					0x3f
#define BIT_DIVN(x)					(((x) & BIT_MASK_DIVN) << BIT_SHIFT_DIVN)
#define BITS_DIVN					(BIT_MASK_DIVN << BIT_SHIFT_DIVN)
#define BIT_CLEAR_DIVN(x)				((x) & (~BITS_DIVN))
#define BIT_GET_DIVN(x)				(((x) >> BIT_SHIFT_DIVN) & BIT_MASK_DIVN)
#define BIT_SET_DIVN(x, v)				(BIT_CLEAR_DIVN(x) | BIT_DIVN(v))


#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM			0
#define BIT_MASK_BB_DBG_SEL_AFE_SDM			0xf
#define BIT_BB_DBG_SEL_AFE_SDM(x)			(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM) << BIT_SHIFT_BB_DBG_SEL_AFE_SDM)
#define BITS_BB_DBG_SEL_AFE_SDM			(BIT_MASK_BB_DBG_SEL_AFE_SDM << BIT_SHIFT_BB_DBG_SEL_AFE_SDM)
#define BIT_CLEAR_BB_DBG_SEL_AFE_SDM(x)		((x) & (~BITS_BB_DBG_SEL_AFE_SDM))
#define BIT_GET_BB_DBG_SEL_AFE_SDM(x)			(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM) & BIT_MASK_BB_DBG_SEL_AFE_SDM)
#define BIT_SET_BB_DBG_SEL_AFE_SDM(x, v)		(BIT_CLEAR_BB_DBG_SEL_AFE_SDM(x) | BIT_BB_DBG_SEL_AFE_SDM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDM_DEBUG				(Offset 0x006C) */


#define BIT_SHIFT_WLCLK_PHASE				0
#define BIT_MASK_WLCLK_PHASE				0x1f
#define BIT_WLCLK_PHASE(x)				(((x) & BIT_MASK_WLCLK_PHASE) << BIT_SHIFT_WLCLK_PHASE)
#define BITS_WLCLK_PHASE				(BIT_MASK_WLCLK_PHASE << BIT_SHIFT_WLCLK_PHASE)
#define BIT_CLEAR_WLCLK_PHASE(x)			((x) & (~BITS_WLCLK_PHASE))
#define BIT_GET_WLCLK_PHASE(x)				(((x) >> BIT_SHIFT_WLCLK_PHASE) & BIT_MASK_WLCLK_PHASE)
#define BIT_SET_WLCLK_PHASE(x, v)			(BIT_CLEAR_WLCLK_PHASE(x) | BIT_WLCLK_PHASE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_GSSR				(Offset 0x006C) */


#define BIT_SHIFT_GPIO_15_TO_0_EN			0
#define BIT_MASK_GPIO_15_TO_0_EN			0xffff
#define BIT_GPIO_15_TO_0_EN(x)				(((x) & BIT_MASK_GPIO_15_TO_0_EN) << BIT_SHIFT_GPIO_15_TO_0_EN)
#define BITS_GPIO_15_TO_0_EN				(BIT_MASK_GPIO_15_TO_0_EN << BIT_SHIFT_GPIO_15_TO_0_EN)
#define BIT_CLEAR_GPIO_15_TO_0_EN(x)			((x) & (~BITS_GPIO_15_TO_0_EN))
#define BIT_GET_GPIO_15_TO_0_EN(x)			(((x) >> BIT_SHIFT_GPIO_15_TO_0_EN) & BIT_MASK_GPIO_15_TO_0_EN)
#define BIT_SET_GPIO_15_TO_0_EN(x, v)			(BIT_CLEAR_GPIO_15_TO_0_EN(x) | BIT_GPIO_15_TO_0_EN(v))


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_BBRSTB_STANDBY_V1				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_DBG_GNT_WL_BT				BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_AFE_PORT3_ISO				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_LTE_MUX_CTRL_PATH				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_AFE_PORT2_ISO				BIT(26)
#define BIT_AFE_PORT1_ISO				BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_LTE_COEX_UART				BIT(25)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_AFE_PORT0_ISO				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_3W_LTE_WL_GPIO				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_USB_PWR_OFF_SEL				BIT(23)
#define BIT_USB_HOST_PWR_OFF_EN_V1			BIT(22)
#define BIT_SYM_LPS_BLOCK_EN_V1			BIT(21)
#define BIT_USB_LPM_ACT_EN_V1				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_SDIO_INT_POLARITY				BIT(19)
#define BIT_SDIO_INT					BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_SDIO_OFF_EN				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_SDIO_OFF_EN_V1				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_SDIO_ON_EN					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_SDIO_ON_EN_V1				BIT(16)
#define BIT_DIS_U3MB_INU2				BIT(13)
#define BIT_USB3_MDIO_EN				BIT(12)
#define BIT_USB3_BG_EN					BIT(11)
#define BIT_USB3_MB_EN					BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_PCIE_WAIT_TIMEOUT_EVENT			BIT(10)
#define BIT_PCIE_WAIT_TIME				BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */


#define BIT_SHIFT_USB3_CK_MD				8
#define BIT_MASK_USB3_CK_MD				0x3
#define BIT_USB3_CK_MD(x)				(((x) & BIT_MASK_USB3_CK_MD) << BIT_SHIFT_USB3_CK_MD)
#define BITS_USB3_CK_MD				(BIT_MASK_USB3_CK_MD << BIT_SHIFT_USB3_CK_MD)
#define BIT_CLEAR_USB3_CK_MD(x)			((x) & (~BITS_USB3_CK_MD))
#define BIT_GET_USB3_CK_MD(x)				(((x) >> BIT_SHIFT_USB3_CK_MD) & BIT_MASK_USB3_CK_MD)
#define BIT_SET_USB3_CK_MD(x, v)			(BIT_CLEAR_USB3_CK_MD(x) | BIT_USB3_CK_MD(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_MPCIE_REFCLK_XTAL_SEL			BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_USB3_CKBUF					BIT(7)
#define BIT_USB3_IBX_EN				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_BT_CLKREQ_EN				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_U3_MB_MASK					BIT(5)
#define BIT_U3_BG_MASK					BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */


#define BIT_SHIFT_USB_CKREF_CML_R			4
#define BIT_MASK_USB_CKREF_CML_R			0x3
#define BIT_USB_CKREF_CML_R(x)				(((x) & BIT_MASK_USB_CKREF_CML_R) << BIT_SHIFT_USB_CKREF_CML_R)
#define BITS_USB_CKREF_CML_R				(BIT_MASK_USB_CKREF_CML_R << BIT_SHIFT_USB_CKREF_CML_R)
#define BIT_CLEAR_USB_CKREF_CML_R(x)			((x) & (~BITS_USB_CKREF_CML_R))
#define BIT_GET_USB_CKREF_CML_R(x)			(((x) >> BIT_SHIFT_USB_CKREF_CML_R) & BIT_MASK_USB_CKREF_CML_R)
#define BIT_SET_USB_CKREF_CML_R(x, v)			(BIT_CLEAR_USB_CKREF_CML_R(x) | BIT_USB_CKREF_CML_R(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_DIS_USB3_MB_POLLING			BIT(3)
#define BIT_PDN_MASK					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */


#define BIT_SHIFT_USB_CKREF_D2S_I			2
#define BIT_MASK_USB_CKREF_D2S_I			0x3
#define BIT_USB_CKREF_D2S_I(x)				(((x) & BIT_MASK_USB_CKREF_D2S_I) << BIT_SHIFT_USB_CKREF_D2S_I)
#define BITS_USB_CKREF_D2S_I				(BIT_MASK_USB_CKREF_D2S_I << BIT_SHIFT_USB_CKREF_D2S_I)
#define BIT_CLEAR_USB_CKREF_D2S_I(x)			((x) & (~BITS_USB_CKREF_D2S_I))
#define BIT_GET_USB_CKREF_D2S_I(x)			(((x) >> BIT_SHIFT_USB_CKREF_D2S_I) & BIT_MASK_USB_CKREF_D2S_I)
#define BIT_SET_USB_CKREF_D2S_I(x, v)			(BIT_CLEAR_USB_CKREF_D2S_I(x) | BIT_USB_CKREF_D2S_I(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_NO_PDN_CHIPOFF				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_RES_USB_MASS_STORAGE_DESC			BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CLKR				(Offset 0x0070) */

#define BIT_PDN_HCOUNT					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */

#define BIT_USB_WAIT_TIME				BIT(0)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_SDIO_CTRL			(Offset 0x0070) */


#define BIT_SHIFT_SI_AUTHORIZATION			0
#define BIT_MASK_SI_AUTHORIZATION			0xff
#define BIT_SI_AUTHORIZATION(x)			(((x) & BIT_MASK_SI_AUTHORIZATION) << BIT_SHIFT_SI_AUTHORIZATION)
#define BITS_SI_AUTHORIZATION				(BIT_MASK_SI_AUTHORIZATION << BIT_SHIFT_SI_AUTHORIZATION)
#define BIT_CLEAR_SI_AUTHORIZATION(x)			((x) & (~BITS_SI_AUTHORIZATION))
#define BIT_GET_SI_AUTHORIZATION(x)			(((x) >> BIT_SHIFT_SI_AUTHORIZATION) & BIT_MASK_SI_AUTHORIZATION)
#define BIT_SET_SI_AUTHORIZATION(x, v)			(BIT_CLEAR_SI_AUTHORIZATION(x) | BIT_SI_AUTHORIZATION(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */


#define BIT_SHIFT_TSFT_SEL				29
#define BIT_MASK_TSFT_SEL				0x7
#define BIT_TSFT_SEL(x)				(((x) & BIT_MASK_TSFT_SEL) << BIT_SHIFT_TSFT_SEL)
#define BITS_TSFT_SEL					(BIT_MASK_TSFT_SEL << BIT_SHIFT_TSFT_SEL)
#define BIT_CLEAR_TSFT_SEL(x)				((x) & (~BITS_TSFT_SEL))
#define BIT_GET_TSFT_SEL(x)				(((x) >> BIT_SHIFT_TSFT_SEL) & BIT_MASK_TSFT_SEL)
#define BIT_SET_TSFT_SEL(x, v)				(BIT_CLEAR_TSFT_SEL(x) | BIT_TSFT_SEL(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */


#define BIT_SHIFT_XTAL_SEL_0_V1			28
#define BIT_MASK_XTAL_SEL_0_V1				0xf
#define BIT_XTAL_SEL_0_V1(x)				(((x) & BIT_MASK_XTAL_SEL_0_V1) << BIT_SHIFT_XTAL_SEL_0_V1)
#define BITS_XTAL_SEL_0_V1				(BIT_MASK_XTAL_SEL_0_V1 << BIT_SHIFT_XTAL_SEL_0_V1)
#define BIT_CLEAR_XTAL_SEL_0_V1(x)			((x) & (~BITS_XTAL_SEL_0_V1))
#define BIT_GET_XTAL_SEL_0_V1(x)			(((x) >> BIT_SHIFT_XTAL_SEL_0_V1) & BIT_MASK_XTAL_SEL_0_V1)
#define BIT_SET_XTAL_SEL_0_V1(x, v)			(BIT_CLEAR_XTAL_SEL_0_V1(x) | BIT_XTAL_SEL_0_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_TSFT_BAND_SEL				BIT(28)

#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_ISO_RFC2RF_3				BIT(27)
#define BIT_ISO_RFC2RF_2				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */


#define BIT_SHIFT_RPWM					24
#define BIT_MASK_RPWM					0xff
#define BIT_RPWM(x)					(((x) & BIT_MASK_RPWM) << BIT_SHIFT_RPWM)
#define BITS_RPWM					(BIT_MASK_RPWM << BIT_SHIFT_RPWM)
#define BIT_CLEAR_RPWM(x)				((x) & (~BITS_RPWM))
#define BIT_GET_RPWM(x)				(((x) >> BIT_SHIFT_RPWM) & BIT_MASK_RPWM)
#define BIT_SET_RPWM(x, v)				(BIT_CLEAR_RPWM(x) | BIT_RPWM(v))

#define BIT_ROM_DLEN					BIT(19)

#define BIT_SHIFT_ROM_PGE				16
#define BIT_MASK_ROM_PGE				0x7
#define BIT_ROM_PGE(x)					(((x) & BIT_MASK_ROM_PGE) << BIT_SHIFT_ROM_PGE)
#define BITS_ROM_PGE					(BIT_MASK_ROM_PGE << BIT_SHIFT_ROM_PGE)
#define BIT_CLEAR_ROM_PGE(x)				((x) & (~BITS_ROM_PGE))
#define BIT_GET_ROM_PGE(x)				(((x) >> BIT_SHIFT_ROM_PGE) & BIT_MASK_ROM_PGE)
#define BIT_SET_ROM_PGE(x, v)				(BIT_CLEAR_ROM_PGE(x) | BIT_ROM_PGE(v))


#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_R_FORCE_CLK_U3				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_USB_HOST_PWR_OFF_EN			BIT(12)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_R_USB2_AUTOLOAD				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_SYM_LPS_BLOCK_EN				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_FORCE_U2CK					BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_USB_LPM_ACT_EN				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_FORCE_CLK					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_USB_LPM_NY					BIT(9)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_U2_FORCE					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_USB_SUS_DIS				BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_U3_FORCE					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */


#define BIT_SHIFT_SDIO_PAD_E				5
#define BIT_MASK_SDIO_PAD_E				0x7
#define BIT_SDIO_PAD_E(x)				(((x) & BIT_MASK_SDIO_PAD_E) << BIT_SHIFT_SDIO_PAD_E)
#define BITS_SDIO_PAD_E				(BIT_MASK_SDIO_PAD_E << BIT_SHIFT_SDIO_PAD_E)
#define BIT_CLEAR_SDIO_PAD_E(x)			((x) & (~BITS_SDIO_PAD_E))
#define BIT_GET_SDIO_PAD_E(x)				(((x) >> BIT_SHIFT_SDIO_PAD_E) & BIT_MASK_SDIO_PAD_E)
#define BIT_SET_SDIO_PAD_E(x, v)			(BIT_CLEAR_SDIO_PAD_E(x) | BIT_SDIO_PAD_E(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_USB_LPPLL_EN				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_SDIO_H3L1					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_ROP_SW15					BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */


#define BIT_SHIFT_USB23_SW_MODE			2
#define BIT_MASK_USB23_SW_MODE				0x3
#define BIT_USB23_SW_MODE(x)				(((x) & BIT_MASK_USB23_SW_MODE) << BIT_SHIFT_USB23_SW_MODE)
#define BITS_USB23_SW_MODE				(BIT_MASK_USB23_SW_MODE << BIT_SHIFT_USB23_SW_MODE)
#define BIT_CLEAR_USB23_SW_MODE(x)			((x) & (~BITS_USB23_SW_MODE))
#define BIT_GET_USB23_SW_MODE(x)			(((x) >> BIT_SHIFT_USB23_SW_MODE) & BIT_MASK_USB23_SW_MODE)
#define BIT_SET_USB23_SW_MODE(x, v)			(BIT_CLEAR_USB23_SW_MODE(x) | BIT_USB23_SW_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_PCI_CKRDY_OPT				BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_PCLK_VLD_SEL				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_PCI_VAUX_EN				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_OPT_CTRL			(Offset 0x0074) */

#define BIT_VAUX_EN					BIT(0)

/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */

#define BIT_SDM_ORDER					BIT(30)
#define BIT_XTAL_DRV_RF_LATCH_V1			BIT(29)
#define BIT_XTAL_VDD_SEL_V1				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XTAL_DRV_RF_LATCH				BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */

#define BIT_XQSEL_RF_AWAKE_V1				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XTAL_VDD_SEL				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF1_SDMRSTB				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */

#define BIT_GATED_XTAL_OK0_V1				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XQSEL_RF					BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF1_RSTB					BIT(25)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XQSEL_RF_AWAKE				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XQSEL_RF_INITIAL				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF1_EN					BIT(24)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XQSEL_BIT1					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_REG_VREF_SEL				BIT(23)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_DITHER_SDM_BIT3				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */


#define BIT_SHIFT_F0N_2_TO_0				23
#define BIT_MASK_F0N_2_TO_0				0x7
#define BIT_F0N_2_TO_0(x)				(((x) & BIT_MASK_F0N_2_TO_0) << BIT_SHIFT_F0N_2_TO_0)
#define BITS_F0N_2_TO_0				(BIT_MASK_F0N_2_TO_0 << BIT_SHIFT_F0N_2_TO_0)
#define BIT_CLEAR_F0N_2_TO_0(x)			((x) & (~BITS_F0N_2_TO_0))
#define BIT_GET_F0N_2_TO_0(x)				(((x) >> BIT_SHIFT_F0N_2_TO_0) & BIT_MASK_F0N_2_TO_0)
#define BIT_SET_F0N_2_TO_0(x, v)			(BIT_CLEAR_F0N_2_TO_0(x) | BIT_F0N_2_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_REG_LPFEN					BIT(22)
#define BIT_REG_KVCO					BIT(21)
#define BIT_XTAL_DRV_AGPIO_BIT1			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */


#define BIT_SHIFT_XTAL_LDO				20
#define BIT_MASK_XTAL_LDO				0x7
#define BIT_XTAL_LDO(x)				(((x) & BIT_MASK_XTAL_LDO) << BIT_SHIFT_XTAL_LDO)
#define BITS_XTAL_LDO					(BIT_MASK_XTAL_LDO << BIT_SHIFT_XTAL_LDO)
#define BIT_CLEAR_XTAL_LDO(x)				((x) & (~BITS_XTAL_LDO))
#define BIT_GET_XTAL_LDO(x)				(((x) >> BIT_SHIFT_XTAL_LDO) & BIT_MASK_XTAL_LDO)
#define BIT_SET_XTAL_LDO(x, v)				(BIT_CLEAR_XTAL_LDO(x) | BIT_XTAL_LDO(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XTAL_DRV_AGPIO_BIT0			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_XTAL_GRF2					BIT(18)
#define BIT_REG_REF_SEL				BIT(17)
#define BIT_REG_320_SEL				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_ADC_CK_SYNC_EN				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_EN_SYM					BIT(15)

#define BIT_SHIFT_IOFFSET				10
#define BIT_MASK_IOFFSET				0x1f
#define BIT_IOFFSET(x)					(((x) & BIT_MASK_IOFFSET) << BIT_SHIFT_IOFFSET)
#define BITS_IOFFSET					(BIT_MASK_IOFFSET << BIT_SHIFT_IOFFSET)
#define BIT_CLEAR_IOFFSET(x)				((x) & (~BITS_IOFFSET))
#define BIT_GET_IOFFSET(x)				(((x) >> BIT_SHIFT_IOFFSET) & BIT_MASK_IOFFSET)
#define BIT_SET_IOFFSET(x, v)				(BIT_CLEAR_IOFFSET(x) | BIT_IOFFSET(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF2_SDMRSTB				BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */


#define BIT_SHIFT_F0F_12_TO_0				10
#define BIT_MASK_F0F_12_TO_0				0x1fff
#define BIT_F0F_12_TO_0(x)				(((x) & BIT_MASK_F0F_12_TO_0) << BIT_SHIFT_F0F_12_TO_0)
#define BITS_F0F_12_TO_0				(BIT_MASK_F0F_12_TO_0 << BIT_SHIFT_F0F_12_TO_0)
#define BIT_CLEAR_F0F_12_TO_0(x)			((x) & (~BITS_F0F_12_TO_0))
#define BIT_GET_F0F_12_TO_0(x)				(((x) >> BIT_SHIFT_F0F_12_TO_0) & BIT_MASK_F0F_12_TO_0)
#define BIT_SET_F0F_12_TO_0(x, v)			(BIT_CLEAR_F0F_12_TO_0(x) | BIT_F0F_12_TO_0(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF2_RSTB					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */


#define BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1		8
#define BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1		0x3
#define BIT_APLL_FREF_SEL_BIT_2_TO_1(x)		(((x) & BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1) << BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1)
#define BITS_APLL_FREF_SEL_BIT_2_TO_1			(BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1 << BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1)
#define BIT_CLEAR_APLL_FREF_SEL_BIT_2_TO_1(x)		((x) & (~BITS_APLL_FREF_SEL_BIT_2_TO_1))
#define BIT_GET_APLL_FREF_SEL_BIT_2_TO_1(x)		(((x) >> BIT_SHIFT_APLL_FREF_SEL_BIT_2_TO_1) & BIT_MASK_APLL_FREF_SEL_BIT_2_TO_1)
#define BIT_SET_APLL_FREF_SEL_BIT_2_TO_1(x, v)	(BIT_CLEAR_APLL_FREF_SEL_BIT_2_TO_1(x) | BIT_APLL_FREF_SEL_BIT_2_TO_1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF2_EN					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_APLL_FREF_SEL_BIT3				BIT(7)

#define BIT_SHIFT_APLL_LDO_V12ADJ			5
#define BIT_MASK_APLL_LDO_V12ADJ			0x3
#define BIT_APLL_LDO_V12ADJ(x)				(((x) & BIT_MASK_APLL_LDO_V12ADJ) << BIT_SHIFT_APLL_LDO_V12ADJ)
#define BITS_APLL_LDO_V12ADJ				(BIT_MASK_APLL_LDO_V12ADJ << BIT_SHIFT_APLL_LDO_V12ADJ)
#define BIT_CLEAR_APLL_LDO_V12ADJ(x)			((x) & (~BITS_APLL_LDO_V12ADJ))
#define BIT_GET_APLL_LDO_V12ADJ(x)			(((x) >> BIT_SHIFT_APLL_LDO_V12ADJ) & BIT_MASK_APLL_LDO_V12ADJ)
#define BIT_SET_APLL_LDO_V12ADJ(x, v)			(BIT_CLEAR_APLL_LDO_V12ADJ(x) | BIT_APLL_LDO_V12ADJ(v))

#define BIT_APLL_160_GATEB				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */


#define BIT_SHIFT_DIVN_5_TO_0				4
#define BIT_MASK_DIVN_5_TO_0				0x3f
#define BIT_DIVN_5_TO_0(x)				(((x) & BIT_MASK_DIVN_5_TO_0) << BIT_SHIFT_DIVN_5_TO_0)
#define BITS_DIVN_5_TO_0				(BIT_MASK_DIVN_5_TO_0 << BIT_SHIFT_DIVN_5_TO_0)
#define BIT_CLEAR_DIVN_5_TO_0(x)			((x) & (~BITS_DIVN_5_TO_0))
#define BIT_GET_DIVN_5_TO_0(x)				(((x) >> BIT_SHIFT_DIVN_5_TO_0) & BIT_MASK_DIVN_5_TO_0)
#define BIT_SET_DIVN_5_TO_0(x, v)			(BIT_CLEAR_DIVN_5_TO_0(x) | BIT_DIVN_5_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_AFE_DUMMY					BIT(3)
#define BIT_REG_IDOUBLE				BIT(2)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF3_SDMRSTB				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_REG_VCO_BIAS_BIT0				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF3_RSTB					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_REG_VCO_BIAS_BIT1				BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL4				(Offset 0x0078) */

#define BIT_RF3_EN					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_AFE_XTAL_CTRL_EXT			(Offset 0x0078) */


#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0		0
#define BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0		0xf
#define BIT_BB_DBG_SEL_AFE_SDM_3_TO_0(x)		(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0) << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0)
#define BITS_BB_DBG_SEL_AFE_SDM_3_TO_0			(BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0)
#define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_3_TO_0(x)	((x) & (~BITS_BB_DBG_SEL_AFE_SDM_3_TO_0))
#define BIT_GET_BB_DBG_SEL_AFE_SDM_3_TO_0(x)		(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_3_TO_0) & BIT_MASK_BB_DBG_SEL_AFE_SDM_3_TO_0)
#define BIT_SET_BB_DBG_SEL_AFE_SDM_3_TO_0(x, v)	(BIT_CLEAR_BB_DBG_SEL_AFE_SDM_3_TO_0(x) | BIT_BB_DBG_SEL_AFE_SDM_3_TO_0(v))


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REF_FREF_EDGE				BIT(29)
#define BIT_REG_VREF_SEL_V1				BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_ZCD_HW_AUTO_EN				BIT(27)
#define BIT_ZCD_REGSEL					BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_CP_OFFSET_4_TO_0			23
#define BIT_MASK_REG_CP_OFFSET_4_TO_0			0x1f
#define BIT_REG_CP_OFFSET_4_TO_0(x)			(((x) & BIT_MASK_REG_CP_OFFSET_4_TO_0) << BIT_SHIFT_REG_CP_OFFSET_4_TO_0)
#define BITS_REG_CP_OFFSET_4_TO_0			(BIT_MASK_REG_CP_OFFSET_4_TO_0 << BIT_SHIFT_REG_CP_OFFSET_4_TO_0)
#define BIT_CLEAR_REG_CP_OFFSET_4_TO_0(x)		((x) & (~BITS_REG_CP_OFFSET_4_TO_0))
#define BIT_GET_REG_CP_OFFSET_4_TO_0(x)		(((x) >> BIT_SHIFT_REG_CP_OFFSET_4_TO_0) & BIT_MASK_REG_CP_OFFSET_4_TO_0)
#define BIT_SET_REG_CP_OFFSET_4_TO_0(x, v)		(BIT_CLEAR_REG_CP_OFFSET_4_TO_0(x) | BIT_REG_CP_OFFSET_4_TO_0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_AUTO_ZCD_IN_CODE			21
#define BIT_MASK_AUTO_ZCD_IN_CODE			0x1f
#define BIT_AUTO_ZCD_IN_CODE(x)			(((x) & BIT_MASK_AUTO_ZCD_IN_CODE) << BIT_SHIFT_AUTO_ZCD_IN_CODE)
#define BITS_AUTO_ZCD_IN_CODE				(BIT_MASK_AUTO_ZCD_IN_CODE << BIT_SHIFT_AUTO_ZCD_IN_CODE)
#define BIT_CLEAR_AUTO_ZCD_IN_CODE(x)			((x) & (~BITS_AUTO_ZCD_IN_CODE))
#define BIT_GET_AUTO_ZCD_IN_CODE(x)			(((x) >> BIT_SHIFT_AUTO_ZCD_IN_CODE) & BIT_MASK_AUTO_ZCD_IN_CODE)
#define BIT_SET_AUTO_ZCD_IN_CODE(x, v)			(BIT_CLEAR_AUTO_ZCD_IN_CODE(x) | BIT_AUTO_ZCD_IN_CODE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_RS_SET_2_TO_0			20
#define BIT_MASK_REG_RS_SET_2_TO_0			0x7
#define BIT_REG_RS_SET_2_TO_0(x)			(((x) & BIT_MASK_REG_RS_SET_2_TO_0) << BIT_SHIFT_REG_RS_SET_2_TO_0)
#define BITS_REG_RS_SET_2_TO_0				(BIT_MASK_REG_RS_SET_2_TO_0 << BIT_SHIFT_REG_RS_SET_2_TO_0)
#define BIT_CLEAR_REG_RS_SET_2_TO_0(x)			((x) & (~BITS_REG_RS_SET_2_TO_0))
#define BIT_GET_REG_RS_SET_2_TO_0(x)			(((x) >> BIT_SHIFT_REG_RS_SET_2_TO_0) & BIT_MASK_REG_RS_SET_2_TO_0)
#define BIT_SET_REG_RS_SET_2_TO_0(x, v)		(BIT_CLEAR_REG_RS_SET_2_TO_0(x) | BIT_REG_RS_SET_2_TO_0(v))


#define BIT_SHIFT_REG_CS_SET_1_TO_0			18
#define BIT_MASK_REG_CS_SET_1_TO_0			0x3
#define BIT_REG_CS_SET_1_TO_0(x)			(((x) & BIT_MASK_REG_CS_SET_1_TO_0) << BIT_SHIFT_REG_CS_SET_1_TO_0)
#define BITS_REG_CS_SET_1_TO_0				(BIT_MASK_REG_CS_SET_1_TO_0 << BIT_SHIFT_REG_CS_SET_1_TO_0)
#define BIT_CLEAR_REG_CS_SET_1_TO_0(x)			((x) & (~BITS_REG_CS_SET_1_TO_0))
#define BIT_GET_REG_CS_SET_1_TO_0(x)			(((x) >> BIT_SHIFT_REG_CS_SET_1_TO_0) & BIT_MASK_REG_CS_SET_1_TO_0)
#define BIT_SET_REG_CS_SET_1_TO_0(x, v)		(BIT_CLEAR_REG_CS_SET_1_TO_0(x) | BIT_REG_CS_SET_1_TO_0(v))


#define BIT_SHIFT_REG_CP_SET_1_TO_0			16
#define BIT_MASK_REG_CP_SET_1_TO_0			0x3
#define BIT_REG_CP_SET_1_TO_0(x)			(((x) & BIT_MASK_REG_CP_SET_1_TO_0) << BIT_SHIFT_REG_CP_SET_1_TO_0)
#define BITS_REG_CP_SET_1_TO_0				(BIT_MASK_REG_CP_SET_1_TO_0 << BIT_SHIFT_REG_CP_SET_1_TO_0)
#define BIT_CLEAR_REG_CP_SET_1_TO_0(x)			((x) & (~BITS_REG_CP_SET_1_TO_0))
#define BIT_GET_REG_CP_SET_1_TO_0(x)			(((x) >> BIT_SHIFT_REG_CP_SET_1_TO_0) & BIT_MASK_REG_CP_SET_1_TO_0)
#define BIT_SET_REG_CP_SET_1_TO_0(x, v)		(BIT_CLEAR_REG_CP_SET_1_TO_0(x) | BIT_REG_CP_SET_1_TO_0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_ZCD_CODE_IN_L			16
#define BIT_MASK_ZCD_CODE_IN_L				0x1f
#define BIT_ZCD_CODE_IN_L(x)				(((x) & BIT_MASK_ZCD_CODE_IN_L) << BIT_SHIFT_ZCD_CODE_IN_L)
#define BITS_ZCD_CODE_IN_L				(BIT_MASK_ZCD_CODE_IN_L << BIT_SHIFT_ZCD_CODE_IN_L)
#define BIT_CLEAR_ZCD_CODE_IN_L(x)			((x) & (~BITS_ZCD_CODE_IN_L))
#define BIT_GET_ZCD_CODE_IN_L(x)			(((x) >> BIT_SHIFT_ZCD_CODE_IN_L) & BIT_MASK_ZCD_CODE_IN_L)
#define BIT_SET_ZCD_CODE_IN_L(x, v)			(BIT_CLEAR_ZCD_CODE_IN_L(x) | BIT_ZCD_CODE_IN_L(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_LPFEN					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_LDO_HV5_DUMMY			14
#define BIT_MASK_LDO_HV5_DUMMY				0x3
#define BIT_LDO_HV5_DUMMY(x)				(((x) & BIT_MASK_LDO_HV5_DUMMY) << BIT_SHIFT_LDO_HV5_DUMMY)
#define BITS_LDO_HV5_DUMMY				(BIT_MASK_LDO_HV5_DUMMY << BIT_SHIFT_LDO_HV5_DUMMY)
#define BIT_CLEAR_LDO_HV5_DUMMY(x)			((x) & (~BITS_LDO_HV5_DUMMY))
#define BIT_GET_LDO_HV5_DUMMY(x)			(((x) >> BIT_SHIFT_LDO_HV5_DUMMY) & BIT_MASK_LDO_HV5_DUMMY)
#define BIT_SET_LDO_HV5_DUMMY(x, v)			(BIT_CLEAR_LDO_HV5_DUMMY(x) | BIT_LDO_HV5_DUMMY(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_DOGENB					BIT(14)
#define BIT_REG_TEST_EN				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_VTUNE33				12
#define BIT_MASK_REG_VTUNE33				0x3
#define BIT_REG_VTUNE33(x)				(((x) & BIT_MASK_REG_VTUNE33) << BIT_SHIFT_REG_VTUNE33)
#define BITS_REG_VTUNE33				(BIT_MASK_REG_VTUNE33 << BIT_SHIFT_REG_VTUNE33)
#define BIT_CLEAR_REG_VTUNE33(x)			((x) & (~BITS_REG_VTUNE33))
#define BIT_GET_REG_VTUNE33(x)				(((x) >> BIT_SHIFT_REG_VTUNE33) & BIT_MASK_REG_VTUNE33)
#define BIT_SET_REG_VTUNE33(x, v)			(BIT_CLEAR_REG_VTUNE33(x) | BIT_REG_VTUNE33(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1		12
#define BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1		0x3
#define BIT_REG_VTUNE33_BIT0_TO_BIT1(x)		(((x) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1) << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1)
#define BITS_REG_VTUNE33_BIT0_TO_BIT1			(BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1 << BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1)
#define BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1(x)		((x) & (~BITS_REG_VTUNE33_BIT0_TO_BIT1))
#define BIT_GET_REG_VTUNE33_BIT0_TO_BIT1(x)		(((x) >> BIT_SHIFT_REG_VTUNE33_BIT0_TO_BIT1) & BIT_MASK_REG_VTUNE33_BIT0_TO_BIT1)
#define BIT_SET_REG_VTUNE33_BIT0_TO_BIT1(x, v)	(BIT_CLEAR_REG_VTUNE33_BIT0_TO_BIT1(x) | BIT_REG_VTUNE33_BIT0_TO_BIT1(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_STANDBY33			10
#define BIT_MASK_REG_STANDBY33				0x3
#define BIT_REG_STANDBY33(x)				(((x) & BIT_MASK_REG_STANDBY33) << BIT_SHIFT_REG_STANDBY33)
#define BITS_REG_STANDBY33				(BIT_MASK_REG_STANDBY33 << BIT_SHIFT_REG_STANDBY33)
#define BIT_CLEAR_REG_STANDBY33(x)			((x) & (~BITS_REG_STANDBY33))
#define BIT_GET_REG_STANDBY33(x)			(((x) >> BIT_SHIFT_REG_STANDBY33) & BIT_MASK_REG_STANDBY33)
#define BIT_SET_REG_STANDBY33(x, v)			(BIT_CLEAR_REG_STANDBY33(x) | BIT_REG_STANDBY33(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1		10
#define BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1		0x3
#define BIT_REG_STANDBY33_BIT0_TO_BIT1(x)		(((x) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1) << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1)
#define BITS_REG_STANDBY33_BIT0_TO_BIT1		(BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1 << BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1)
#define BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1(x)	((x) & (~BITS_REG_STANDBY33_BIT0_TO_BIT1))
#define BIT_GET_REG_STANDBY33_BIT0_TO_BIT1(x)		(((x) >> BIT_SHIFT_REG_STANDBY33_BIT0_TO_BIT1) & BIT_MASK_REG_STANDBY33_BIT0_TO_BIT1)
#define BIT_SET_REG_STANDBY33_BIT0_TO_BIT1(x, v)	(BIT_CLEAR_REG_STANDBY33_BIT0_TO_BIT1(x) | BIT_REG_STANDBY33_BIT0_TO_BIT1(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_LOAD33				8
#define BIT_MASK_REG_LOAD33				0x3
#define BIT_REG_LOAD33(x)				(((x) & BIT_MASK_REG_LOAD33) << BIT_SHIFT_REG_LOAD33)
#define BITS_REG_LOAD33				(BIT_MASK_REG_LOAD33 << BIT_SHIFT_REG_LOAD33)
#define BIT_CLEAR_REG_LOAD33(x)			((x) & (~BITS_REG_LOAD33))
#define BIT_GET_REG_LOAD33(x)				(((x) >> BIT_SHIFT_REG_LOAD33) & BIT_MASK_REG_LOAD33)
#define BIT_SET_REG_LOAD33(x, v)			(BIT_CLEAR_REG_LOAD33(x) | BIT_REG_LOAD33(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_DIV_SEL				8
#define BIT_MASK_REG_DIV_SEL				0x1f
#define BIT_REG_DIV_SEL(x)				(((x) & BIT_MASK_REG_DIV_SEL) << BIT_SHIFT_REG_DIV_SEL)
#define BITS_REG_DIV_SEL				(BIT_MASK_REG_DIV_SEL << BIT_SHIFT_REG_DIV_SEL)
#define BIT_CLEAR_REG_DIV_SEL(x)			((x) & (~BITS_REG_DIV_SEL))
#define BIT_GET_REG_DIV_SEL(x)				(((x) >> BIT_SHIFT_REG_DIV_SEL) & BIT_MASK_REG_DIV_SEL)
#define BIT_SET_REG_DIV_SEL(x, v)			(BIT_CLEAR_REG_DIV_SEL(x) | BIT_REG_DIV_SEL(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1		8
#define BIT_MASK_REG_LOAD33_BIT0_TO_BIT1		0x3
#define BIT_REG_LOAD33_BIT0_TO_BIT1(x)			(((x) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1) << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1)
#define BITS_REG_LOAD33_BIT0_TO_BIT1			(BIT_MASK_REG_LOAD33_BIT0_TO_BIT1 << BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1)
#define BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1(x)		((x) & (~BITS_REG_LOAD33_BIT0_TO_BIT1))
#define BIT_GET_REG_LOAD33_BIT0_TO_BIT1(x)		(((x) >> BIT_SHIFT_REG_LOAD33_BIT0_TO_BIT1) & BIT_MASK_REG_LOAD33_BIT0_TO_BIT1)
#define BIT_SET_REG_LOAD33_BIT0_TO_BIT1(x, v)		(BIT_CLEAR_REG_LOAD33_BIT0_TO_BIT1(x) | BIT_REG_LOAD33_BIT0_TO_BIT1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_BYPASS_L				BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_EN_CK200M					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_LDOF_L					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_OCPS_L					BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_KVCO_200M_1_TO_0			5
#define BIT_MASK_REG_KVCO_200M_1_TO_0			0x3
#define BIT_REG_KVCO_200M_1_TO_0(x)			(((x) & BIT_MASK_REG_KVCO_200M_1_TO_0) << BIT_SHIFT_REG_KVCO_200M_1_TO_0)
#define BITS_REG_KVCO_200M_1_TO_0			(BIT_MASK_REG_KVCO_200M_1_TO_0 << BIT_SHIFT_REG_KVCO_200M_1_TO_0)
#define BIT_CLEAR_REG_KVCO_200M_1_TO_0(x)		((x) & (~BITS_REG_KVCO_200M_1_TO_0))
#define BIT_GET_REG_KVCO_200M_1_TO_0(x)		(((x) >> BIT_SHIFT_REG_KVCO_200M_1_TO_0) & BIT_MASK_REG_KVCO_200M_1_TO_0)
#define BIT_SET_REG_KVCO_200M_1_TO_0(x, v)		(BIT_CLEAR_REG_KVCO_200M_1_TO_0(x) | BIT_REG_KVCO_200M_1_TO_0(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_TYPE_L_V1				BIT(5)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_ARENB_L					BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0		2
#define BIT_MASK_REG_CP_BIAS_200M_2_TO_0		0x7
#define BIT_REG_CP_BIAS_200M_2_TO_0(x)			(((x) & BIT_MASK_REG_CP_BIAS_200M_2_TO_0) << BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0)
#define BITS_REG_CP_BIAS_200M_2_TO_0			(BIT_MASK_REG_CP_BIAS_200M_2_TO_0 << BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0)
#define BIT_CLEAR_REG_CP_BIAS_200M_2_TO_0(x)		((x) & (~BITS_REG_CP_BIAS_200M_2_TO_0))
#define BIT_GET_REG_CP_BIAS_200M_2_TO_0(x)		(((x) >> BIT_SHIFT_REG_CP_BIAS_200M_2_TO_0) & BIT_MASK_REG_CP_BIAS_200M_2_TO_0)
#define BIT_SET_REG_CP_BIAS_200M_2_TO_0(x, v)		(BIT_CLEAR_REG_CP_BIAS_200M_2_TO_0(x) | BIT_REG_CP_BIAS_200M_2_TO_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_CFC_L_BIT_1_TO_0			1
#define BIT_MASK_CFC_L_BIT_1_TO_0			0x3
#define BIT_CFC_L_BIT_1_TO_0(x)			(((x) & BIT_MASK_CFC_L_BIT_1_TO_0) << BIT_SHIFT_CFC_L_BIT_1_TO_0)
#define BITS_CFC_L_BIT_1_TO_0				(BIT_MASK_CFC_L_BIT_1_TO_0 << BIT_SHIFT_CFC_L_BIT_1_TO_0)
#define BIT_CLEAR_CFC_L_BIT_1_TO_0(x)			((x) & (~BITS_CFC_L_BIT_1_TO_0))
#define BIT_GET_CFC_L_BIT_1_TO_0(x)			(((x) >> BIT_SHIFT_CFC_L_BIT_1_TO_0) & BIT_MASK_CFC_L_BIT_1_TO_0)
#define BIT_SET_CFC_L_BIT_1_TO_0(x, v)			(BIT_CLEAR_CFC_L_BIT_1_TO_0(x) | BIT_CFC_L_BIT_1_TO_0(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */


#define BIT_SHIFT_CFC_L				1
#define BIT_MASK_CFC_L					0x3
#define BIT_CFC_L(x)					(((x) & BIT_MASK_CFC_L) << BIT_SHIFT_CFC_L)
#define BITS_CFC_L					(BIT_MASK_CFC_L << BIT_SHIFT_CFC_L)
#define BIT_CLEAR_CFC_L(x)				((x) & (~BITS_CFC_L))
#define BIT_GET_CFC_L(x)				(((x) >> BIT_SHIFT_CFC_L) & BIT_MASK_CFC_L)
#define BIT_SET_CFC_L(x, v)				(BIT_CLEAR_CFC_L(x) | BIT_CFC_L(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_TYPE_L					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_XCK_OUT_EN					BIT(0)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_LDO_SWR_CTRL			(Offset 0x007C) */

#define BIT_REG_OCPS_L_V1				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_ANA_PORT_EN				BIT(22)
#define BIT_MAC_PORT_EN				BIT(21)
#define BIT_BOOT_FSPI_EN				BIT(20)
#define BIT_FW_INIT_RDY				BIT(15)
#define BIT_FW_DW_RDY					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_FWDL_RSVDPAGE_RDY				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */


#define BIT_SHIFT_CPU_CLK_SEL				12
#define BIT_MASK_CPU_CLK_SEL				0x3
#define BIT_CPU_CLK_SEL(x)				(((x) & BIT_MASK_CPU_CLK_SEL) << BIT_SHIFT_CPU_CLK_SEL)
#define BITS_CPU_CLK_SEL				(BIT_MASK_CPU_CLK_SEL << BIT_SHIFT_CPU_CLK_SEL)
#define BIT_CLEAR_CPU_CLK_SEL(x)			((x) & (~BITS_CPU_CLK_SEL))
#define BIT_GET_CPU_CLK_SEL(x)				(((x) >> BIT_SHIFT_CPU_CLK_SEL) & BIT_MASK_CPU_CLK_SEL)
#define BIT_SET_CPU_CLK_SEL(x, v)			(BIT_CLEAR_CPU_CLK_SEL(x) | BIT_CPU_CLK_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_R_8051_ROMDLFW_EN				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_CCLK_CHG_MASK				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_R_8051_INIT_RDY				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_FW_INIT_RDY_V1				BIT(10)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_EMEM__TXBUF_CHKSUM_OK			BIT(10)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_EMEM_TXBUF_CHKSUM_OK			BIT(10)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_EMEM_TXBUF_DW_RDY				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_R_8051_GAT					BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_MCU_CLK_EN					BIT(8)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_EMEM_CHKSUM_OK				BIT(8)
#define BIT_EMEM_DW_OK					BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HRPWM1				(Offset 0x10250080) */

#define BIT_TOGGLE					BIT(7)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_DMEM_CHKSUM_OK				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HRPWM1				(Offset 0x10250080) */

#define BIT_ACK					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_RFINI_RDY					BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_RF_INIT_RDY				BIT(5)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_DMEM_DW_OK					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_BBINI_RDY					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_BB_INIT_RDY				BIT(4)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_IMEM_CHKSUM_OK				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_MACINI_RDY					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_MAC_INIT_RDY				BIT(3)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_IMEM_DW_OK					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_FWDL_CHK_RPT				BIT(2)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_IMEM_BOOT_LOAD_CHKSUM_OK			BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_8051FW_CTRL				(Offset 0x0080) */

#define BIT_MCUFWDL_RDY				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_MCU_FWDL_RDY				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_IMEM_BOOT_LOAD_DW_OK			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MCUFW_CTRL				(Offset 0x0080) */

#define BIT_MCU_FWDL_EN				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HRPWM1				(Offset 0x10250080) */

#define BIT_REQ_PS					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MCU_TST_CFG				(Offset 0x0084) */


#define BIT_SHIFT_LBKTST				0
#define BIT_MASK_LBKTST				0xffff
#define BIT_LBKTST(x)					(((x) & BIT_MASK_LBKTST) << BIT_SHIFT_LBKTST)
#define BITS_LBKTST					(BIT_MASK_LBKTST << BIT_SHIFT_LBKTST)
#define BIT_CLEAR_LBKTST(x)				((x) & (~BITS_LBKTST))
#define BIT_GET_LBKTST(x)				(((x) >> BIT_SHIFT_LBKTST) & BIT_MASK_LBKTST)
#define BIT_SET_LBKTST(x, v)				(BIT_CLEAR_LBKTST(x) | BIT_LBKTST(v))


#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MCU_TST_CFG				(Offset 0x0084) */


#define BIT_SHIFT_C2H_MSG				0
#define BIT_MASK_C2H_MSG				0xffff
#define BIT_C2H_MSG(x)					(((x) & BIT_MASK_C2H_MSG) << BIT_SHIFT_C2H_MSG)
#define BITS_C2H_MSG					(BIT_MASK_C2H_MSG << BIT_SHIFT_C2H_MSG)
#define BIT_CLEAR_C2H_MSG(x)				((x) & (~BITS_C2H_MSG))
#define BIT_GET_C2H_MSG(x)				(((x) >> BIT_SHIFT_C2H_MSG) & BIT_MASK_C2H_MSG)
#define BIT_SET_C2H_MSG(x, v)				(BIT_CLEAR_C2H_MSG(x) | BIT_C2H_MSG(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_BUS_CTRL			(Offset 0x10250085) */

#define BIT_PAD_CLK_XHGE_EN				BIT(3)
#define BIT_INTER_CLK_EN				BIT(2)
#define BIT_EN_RPT_TXCRC				BIT(1)
#define BIT_DIS_RXDMA_STS				BIT(0)

/* 2 REG_SDIO_HSUS_CTRL			(Offset 0x10250086) */

#define BIT_INTR_CTRL					BIT(4)
#define BIT_SDIO_VOLTAGE				BIT(3)
#define BIT_BYPASS_INIT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HSUS_CTRL			(Offset 0x10250086) */

#define BIT_HCI_RESUME_RDY				BIT(1)
#define BIT_HCI_SUS_REQ				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HMEBOX_E0_E1			(Offset 0x0088) */


#define BIT_SHIFT_HOST_MSG_E1				16
#define BIT_MASK_HOST_MSG_E1				0xffff
#define BIT_HOST_MSG_E1(x)				(((x) & BIT_MASK_HOST_MSG_E1) << BIT_SHIFT_HOST_MSG_E1)
#define BITS_HOST_MSG_E1				(BIT_MASK_HOST_MSG_E1 << BIT_SHIFT_HOST_MSG_E1)
#define BIT_CLEAR_HOST_MSG_E1(x)			((x) & (~BITS_HOST_MSG_E1))
#define BIT_GET_HOST_MSG_E1(x)				(((x) >> BIT_SHIFT_HOST_MSG_E1) & BIT_MASK_HOST_MSG_E1)
#define BIT_SET_HOST_MSG_E1(x, v)			(BIT_CLEAR_HOST_MSG_E1(x) | BIT_HOST_MSG_E1(v))


#define BIT_SHIFT_HOST_MSG_E0				0
#define BIT_MASK_HOST_MSG_E0				0xffff
#define BIT_HOST_MSG_E0(x)				(((x) & BIT_MASK_HOST_MSG_E0) << BIT_SHIFT_HOST_MSG_E0)
#define BITS_HOST_MSG_E0				(BIT_MASK_HOST_MSG_E0 << BIT_SHIFT_HOST_MSG_E0)
#define BIT_CLEAR_HOST_MSG_E0(x)			((x) & (~BITS_HOST_MSG_E0))
#define BIT_GET_HOST_MSG_E0(x)				(((x) >> BIT_SHIFT_HOST_MSG_E0) & BIT_MASK_HOST_MSG_E0)
#define BIT_SET_HOST_MSG_E0(x, v)			(BIT_CLEAR_HOST_MSG_E0(x) | BIT_HOST_MSG_E0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_RESPONSE_TIMER			(Offset 0x10250088) */


#define BIT_SHIFT_CMDIN_2RESP_TIMER			0
#define BIT_MASK_CMDIN_2RESP_TIMER			0xffff
#define BIT_CMDIN_2RESP_TIMER(x)			(((x) & BIT_MASK_CMDIN_2RESP_TIMER) << BIT_SHIFT_CMDIN_2RESP_TIMER)
#define BITS_CMDIN_2RESP_TIMER				(BIT_MASK_CMDIN_2RESP_TIMER << BIT_SHIFT_CMDIN_2RESP_TIMER)
#define BIT_CLEAR_CMDIN_2RESP_TIMER(x)			((x) & (~BITS_CMDIN_2RESP_TIMER))
#define BIT_GET_CMDIN_2RESP_TIMER(x)			(((x) >> BIT_SHIFT_CMDIN_2RESP_TIMER) & BIT_MASK_CMDIN_2RESP_TIMER)
#define BIT_SET_CMDIN_2RESP_TIMER(x, v)		(BIT_CLEAR_CMDIN_2RESP_TIMER(x) | BIT_CMDIN_2RESP_TIMER(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SDIO_CMD_CRC			(Offset 0x1025008A) */


#define BIT_SHIFT_SDIO_CMD_CRC				1
#define BIT_MASK_SDIO_CMD_CRC				0x7f
#define BIT_SDIO_CMD_CRC(x)				(((x) & BIT_MASK_SDIO_CMD_CRC) << BIT_SHIFT_SDIO_CMD_CRC)
#define BITS_SDIO_CMD_CRC				(BIT_MASK_SDIO_CMD_CRC << BIT_SHIFT_SDIO_CMD_CRC)
#define BIT_CLEAR_SDIO_CMD_CRC(x)			((x) & (~BITS_SDIO_CMD_CRC))
#define BIT_GET_SDIO_CMD_CRC(x)			(((x) >> BIT_SHIFT_SDIO_CMD_CRC) & BIT_MASK_SDIO_CMD_CRC)
#define BIT_SET_SDIO_CMD_CRC(x, v)			(BIT_CLEAR_SDIO_CMD_CRC(x) | BIT_SDIO_CMD_CRC(v))

#define BIT_SDIO_CMD_E_BIT				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_CMD_CRC			(Offset 0x1025008A) */


#define BIT_SHIFT_SDIO_CMD_CRC_V1			0
#define BIT_MASK_SDIO_CMD_CRC_V1			0xff
#define BIT_SDIO_CMD_CRC_V1(x)				(((x) & BIT_MASK_SDIO_CMD_CRC_V1) << BIT_SHIFT_SDIO_CMD_CRC_V1)
#define BITS_SDIO_CMD_CRC_V1				(BIT_MASK_SDIO_CMD_CRC_V1 << BIT_SHIFT_SDIO_CMD_CRC_V1)
#define BIT_CLEAR_SDIO_CMD_CRC_V1(x)			((x) & (~BITS_SDIO_CMD_CRC_V1))
#define BIT_GET_SDIO_CMD_CRC_V1(x)			(((x) >> BIT_SHIFT_SDIO_CMD_CRC_V1) & BIT_MASK_SDIO_CMD_CRC_V1)
#define BIT_SET_SDIO_CMD_CRC_V1(x, v)			(BIT_CLEAR_SDIO_CMD_CRC_V1(x) | BIT_SDIO_CMD_CRC_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HMEBOX_E2_E3			(Offset 0x008C) */


#define BIT_SHIFT_HOST_MSG_E3				16
#define BIT_MASK_HOST_MSG_E3				0xffff
#define BIT_HOST_MSG_E3(x)				(((x) & BIT_MASK_HOST_MSG_E3) << BIT_SHIFT_HOST_MSG_E3)
#define BITS_HOST_MSG_E3				(BIT_MASK_HOST_MSG_E3 << BIT_SHIFT_HOST_MSG_E3)
#define BIT_CLEAR_HOST_MSG_E3(x)			((x) & (~BITS_HOST_MSG_E3))
#define BIT_GET_HOST_MSG_E3(x)				(((x) >> BIT_SHIFT_HOST_MSG_E3) & BIT_MASK_HOST_MSG_E3)
#define BIT_SET_HOST_MSG_E3(x, v)			(BIT_CLEAR_HOST_MSG_E3(x) | BIT_HOST_MSG_E3(v))


#define BIT_SHIFT_HOST_MSG_E2				0
#define BIT_MASK_HOST_MSG_E2				0xffff
#define BIT_HOST_MSG_E2(x)				(((x) & BIT_MASK_HOST_MSG_E2) << BIT_SHIFT_HOST_MSG_E2)
#define BITS_HOST_MSG_E2				(BIT_MASK_HOST_MSG_E2 << BIT_SHIFT_HOST_MSG_E2)
#define BIT_CLEAR_HOST_MSG_E2(x)			((x) & (~BITS_HOST_MSG_E2))
#define BIT_GET_HOST_MSG_E2(x)				(((x) >> BIT_SHIFT_HOST_MSG_E2) & BIT_MASK_HOST_MSG_E2)
#define BIT_SET_HOST_MSG_E2(x, v)			(BIT_CLEAR_HOST_MSG_E2(x) | BIT_HOST_MSG_E2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_EABM				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_ACKF				BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_TXFIFO_TH_INT				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_DLDM				BIT(29)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_AFEP				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_ESWR				BIT(28)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_LPS_DIS_SW					BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_PWMM				BIT(27)
#define BIT_WLLPSOP_EECK				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_ELDO				BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_WLMACOFF				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_EXTAL				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_LPS_BB_REG_EN				BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WL_SYNPON_VOLTSPDN				BIT(23)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_LPS_BB_PWR_EN				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_WLBBOFF				BIT(22)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_LPS_BB_GLB_EN				BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WLLPSOP_WLMEM_DS				BIT(21)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_SUS_DIS_SW					BIT(15)
#define BIT_SUS_SKP_PAGE0_ALD				BIT(14)
#define BIT_SUS_LDO_SLEEP				BIT(13)
#define BIT_PFM_EN_ZCD					BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */


#define BIT_SHIFT_LPLDH12_VADJ_STEP_DN			12
#define BIT_MASK_LPLDH12_VADJ_STEP_DN			0xf
#define BIT_LPLDH12_VADJ_STEP_DN(x)			(((x) & BIT_MASK_LPLDH12_VADJ_STEP_DN) << BIT_SHIFT_LPLDH12_VADJ_STEP_DN)
#define BITS_LPLDH12_VADJ_STEP_DN			(BIT_MASK_LPLDH12_VADJ_STEP_DN << BIT_SHIFT_LPLDH12_VADJ_STEP_DN)
#define BIT_CLEAR_LPLDH12_VADJ_STEP_DN(x)		((x) & (~BITS_LPLDH12_VADJ_STEP_DN))
#define BIT_GET_LPLDH12_VADJ_STEP_DN(x)		(((x) >> BIT_SHIFT_LPLDH12_VADJ_STEP_DN) & BIT_MASK_LPLDH12_VADJ_STEP_DN)
#define BIT_SET_LPLDH12_VADJ_STEP_DN(x, v)		(BIT_CLEAR_LPLDH12_VADJ_STEP_DN(x) | BIT_LPLDH12_VADJ_STEP_DN(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_KEEP_RFC_EN				BIT(11)
#define BIT_MACON_NO_RFCISO_RELEASE			BIT(10)
#define BIT_MACON_NO_AFEPORT_PWR			BIT(9)
#define BIT_MACON_NO_CPU_EN				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */


#define BIT_SHIFT_V15ADJ_L1_STEP_DN			8
#define BIT_MASK_V15ADJ_L1_STEP_DN			0x7
#define BIT_V15ADJ_L1_STEP_DN(x)			(((x) & BIT_MASK_V15ADJ_L1_STEP_DN) << BIT_SHIFT_V15ADJ_L1_STEP_DN)
#define BITS_V15ADJ_L1_STEP_DN				(BIT_MASK_V15ADJ_L1_STEP_DN << BIT_SHIFT_V15ADJ_L1_STEP_DN)
#define BIT_CLEAR_V15ADJ_L1_STEP_DN(x)			((x) & (~BITS_V15ADJ_L1_STEP_DN))
#define BIT_GET_V15ADJ_L1_STEP_DN(x)			(((x) >> BIT_SHIFT_V15ADJ_L1_STEP_DN) & BIT_MASK_V15ADJ_L1_STEP_DN)
#define BIT_SET_V15ADJ_L1_STEP_DN(x, v)		(BIT_CLEAR_V15ADJ_L1_STEP_DN(x) | BIT_V15ADJ_L1_STEP_DN(v))

#define BIT_REGU_32K_CLK_EN				BIT(1)
#define BIT_DRV_WLAN_INT_CLR				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WLLPS_CTRL				(Offset 0x0090) */

#define BIT_WL_LPS_EN					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_HSISR				(Offset 0x10250090) */

#define BIT_DRV_WLAN_INT				BIT(0)

/* 2 REG_SDIO_HSIMR				(Offset 0x10250091) */

#define BIT_HISR_MASK					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */

#define BIT_BB_DBG_SEL_AFE_SDM_V3			BIT(31)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */

#define BIT_BB_DBG_SEL_AFE_SDM_BIT0			BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */

#define BIT_ORDER_SDM					BIT(30)
#define BIT_RFE_SEL_SDM				BIT(29)

#define BIT_SHIFT_REF_SEL				25
#define BIT_MASK_REF_SEL				0xf
#define BIT_REF_SEL(x)					(((x) & BIT_MASK_REF_SEL) << BIT_SHIFT_REF_SEL)
#define BITS_REF_SEL					(BIT_MASK_REF_SEL << BIT_SHIFT_REF_SEL)
#define BIT_CLEAR_REF_SEL(x)				((x) & (~BITS_REF_SEL))
#define BIT_GET_REF_SEL(x)				(((x) >> BIT_SHIFT_REF_SEL) & BIT_MASK_REF_SEL)
#define BIT_SET_REF_SEL(x, v)				(BIT_CLEAR_REF_SEL(x) | BIT_REF_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_F0F_SDM_V2				12
#define BIT_MASK_F0F_SDM_V2				0x1fff
#define BIT_F0F_SDM_V2(x)				(((x) & BIT_MASK_F0F_SDM_V2) << BIT_SHIFT_F0F_SDM_V2)
#define BITS_F0F_SDM_V2				(BIT_MASK_F0F_SDM_V2 << BIT_SHIFT_F0F_SDM_V2)
#define BIT_CLEAR_F0F_SDM_V2(x)			((x) & (~BITS_F0F_SDM_V2))
#define BIT_GET_F0F_SDM_V2(x)				(((x) >> BIT_SHIFT_F0F_SDM_V2) & BIT_MASK_F0F_SDM_V2)
#define BIT_SET_F0F_SDM_V2(x, v)			(BIT_CLEAR_F0F_SDM_V2(x) | BIT_F0F_SDM_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_F0F_SDM				12
#define BIT_MASK_F0F_SDM				0x1fff
#define BIT_F0F_SDM(x)					(((x) & BIT_MASK_F0F_SDM) << BIT_SHIFT_F0F_SDM)
#define BITS_F0F_SDM					(BIT_MASK_F0F_SDM << BIT_SHIFT_F0F_SDM)
#define BIT_CLEAR_F0F_SDM(x)				((x) & (~BITS_F0F_SDM))
#define BIT_GET_F0F_SDM(x)				(((x) >> BIT_SHIFT_F0F_SDM) & BIT_MASK_F0F_SDM)
#define BIT_SET_F0F_SDM(x, v)				(BIT_CLEAR_F0F_SDM(x) | BIT_F0F_SDM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_F0N_SDM_V2				9
#define BIT_MASK_F0N_SDM_V2				0x7
#define BIT_F0N_SDM_V2(x)				(((x) & BIT_MASK_F0N_SDM_V2) << BIT_SHIFT_F0N_SDM_V2)
#define BITS_F0N_SDM_V2				(BIT_MASK_F0N_SDM_V2 << BIT_SHIFT_F0N_SDM_V2)
#define BIT_CLEAR_F0N_SDM_V2(x)			((x) & (~BITS_F0N_SDM_V2))
#define BIT_GET_F0N_SDM_V2(x)				(((x) >> BIT_SHIFT_F0N_SDM_V2) & BIT_MASK_F0N_SDM_V2)
#define BIT_SET_F0N_SDM_V2(x, v)			(BIT_CLEAR_F0N_SDM_V2(x) | BIT_F0N_SDM_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_F0N_SDM				9
#define BIT_MASK_F0N_SDM				0x7
#define BIT_F0N_SDM(x)					(((x) & BIT_MASK_F0N_SDM) << BIT_SHIFT_F0N_SDM)
#define BITS_F0N_SDM					(BIT_MASK_F0N_SDM << BIT_SHIFT_F0N_SDM)
#define BIT_CLEAR_F0N_SDM(x)				((x) & (~BITS_F0N_SDM))
#define BIT_GET_F0N_SDM(x)				(((x) >> BIT_SHIFT_F0N_SDM) & BIT_MASK_F0N_SDM)
#define BIT_SET_F0N_SDM(x, v)				(BIT_CLEAR_F0N_SDM(x) | BIT_F0N_SDM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_DIVN_SDM_V2				3
#define BIT_MASK_DIVN_SDM_V2				0x3f
#define BIT_DIVN_SDM_V2(x)				(((x) & BIT_MASK_DIVN_SDM_V2) << BIT_SHIFT_DIVN_SDM_V2)
#define BITS_DIVN_SDM_V2				(BIT_MASK_DIVN_SDM_V2 << BIT_SHIFT_DIVN_SDM_V2)
#define BIT_CLEAR_DIVN_SDM_V2(x)			((x) & (~BITS_DIVN_SDM_V2))
#define BIT_GET_DIVN_SDM_V2(x)				(((x) >> BIT_SHIFT_DIVN_SDM_V2) & BIT_MASK_DIVN_SDM_V2)
#define BIT_SET_DIVN_SDM_V2(x, v)			(BIT_CLEAR_DIVN_SDM_V2(x) | BIT_DIVN_SDM_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_DIVN_SDM				3
#define BIT_MASK_DIVN_SDM				0x3f
#define BIT_DIVN_SDM(x)				(((x) & BIT_MASK_DIVN_SDM) << BIT_SHIFT_DIVN_SDM)
#define BITS_DIVN_SDM					(BIT_MASK_DIVN_SDM << BIT_SHIFT_DIVN_SDM)
#define BIT_CLEAR_DIVN_SDM(x)				((x) & (~BITS_DIVN_SDM))
#define BIT_GET_DIVN_SDM(x)				(((x) >> BIT_SHIFT_DIVN_SDM) & BIT_MASK_DIVN_SDM)
#define BIT_SET_DIVN_SDM(x, v)				(BIT_CLEAR_DIVN_SDM(x) | BIT_DIVN_SDM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL5				(Offset 0x0094) */


#define BIT_SHIFT_DITHER_SDM_V2			0
#define BIT_MASK_DITHER_SDM_V2				0x7
#define BIT_DITHER_SDM_V2(x)				(((x) & BIT_MASK_DITHER_SDM_V2) << BIT_SHIFT_DITHER_SDM_V2)
#define BITS_DITHER_SDM_V2				(BIT_MASK_DITHER_SDM_V2 << BIT_SHIFT_DITHER_SDM_V2)
#define BIT_CLEAR_DITHER_SDM_V2(x)			((x) & (~BITS_DITHER_SDM_V2))
#define BIT_GET_DITHER_SDM_V2(x)			(((x) >> BIT_SHIFT_DITHER_SDM_V2) & BIT_MASK_DITHER_SDM_V2)
#define BIT_SET_DITHER_SDM_V2(x, v)			(BIT_CLEAR_DITHER_SDM_V2(x) | BIT_DITHER_SDM_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GPIO_DEBOUNCE_CTRL			(Offset 0x0098) */

#define BIT_WLGP_DBC1EN				BIT(15)

#define BIT_SHIFT_WLGP_DBC1				8
#define BIT_MASK_WLGP_DBC1				0xf
#define BIT_WLGP_DBC1(x)				(((x) & BIT_MASK_WLGP_DBC1) << BIT_SHIFT_WLGP_DBC1)
#define BITS_WLGP_DBC1					(BIT_MASK_WLGP_DBC1 << BIT_SHIFT_WLGP_DBC1)
#define BIT_CLEAR_WLGP_DBC1(x)				((x) & (~BITS_WLGP_DBC1))
#define BIT_GET_WLGP_DBC1(x)				(((x) >> BIT_SHIFT_WLGP_DBC1) & BIT_MASK_WLGP_DBC1)
#define BIT_SET_WLGP_DBC1(x, v)			(BIT_CLEAR_WLGP_DBC1(x) | BIT_WLGP_DBC1(v))

#define BIT_WLGP_DBC0EN				BIT(7)

#define BIT_SHIFT_WLGP_DBC0				0
#define BIT_MASK_WLGP_DBC0				0xf
#define BIT_WLGP_DBC0(x)				(((x) & BIT_MASK_WLGP_DBC0) << BIT_SHIFT_WLGP_DBC0)
#define BITS_WLGP_DBC0					(BIT_MASK_WLGP_DBC0 << BIT_SHIFT_WLGP_DBC0)
#define BIT_CLEAR_WLGP_DBC0(x)				((x) & (~BITS_WLGP_DBC0))
#define BIT_GET_WLGP_DBC0(x)				(((x) >> BIT_SHIFT_WLGP_DBC0) & BIT_MASK_WLGP_DBC0)
#define BIT_SET_WLGP_DBC0(x, v)			(BIT_CLEAR_WLGP_DBC0(x) | BIT_WLGP_DBC0(v))


/* 2 REG_RPWM2				(Offset 0x009C) */


#define BIT_SHIFT_RPWM2				16
#define BIT_MASK_RPWM2					0xffff
#define BIT_RPWM2(x)					(((x) & BIT_MASK_RPWM2) << BIT_SHIFT_RPWM2)
#define BITS_RPWM2					(BIT_MASK_RPWM2 << BIT_SHIFT_RPWM2)
#define BIT_CLEAR_RPWM2(x)				((x) & (~BITS_RPWM2))
#define BIT_GET_RPWM2(x)				(((x) >> BIT_SHIFT_RPWM2) & BIT_MASK_RPWM2)
#define BIT_SET_RPWM2(x, v)				(BIT_CLEAR_RPWM2(x) | BIT_RPWM2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYSON_FSM_MON			(Offset 0x00A0) */


#define BIT_SHIFT_FSM_MON_SEL				24
#define BIT_MASK_FSM_MON_SEL				0x7
#define BIT_FSM_MON_SEL(x)				(((x) & BIT_MASK_FSM_MON_SEL) << BIT_SHIFT_FSM_MON_SEL)
#define BITS_FSM_MON_SEL				(BIT_MASK_FSM_MON_SEL << BIT_SHIFT_FSM_MON_SEL)
#define BIT_CLEAR_FSM_MON_SEL(x)			((x) & (~BITS_FSM_MON_SEL))
#define BIT_GET_FSM_MON_SEL(x)				(((x) >> BIT_SHIFT_FSM_MON_SEL) & BIT_MASK_FSM_MON_SEL)
#define BIT_SET_FSM_MON_SEL(x, v)			(BIT_CLEAR_FSM_MON_SEL(x) | BIT_FSM_MON_SEL(v))

#define BIT_DOP_ELDO					BIT(23)
#define BIT_FSM_MON_UPD				BIT(15)

#define BIT_SHIFT_FSM_PAR				0
#define BIT_MASK_FSM_PAR				0x7fff
#define BIT_FSM_PAR(x)					(((x) & BIT_MASK_FSM_PAR) << BIT_SHIFT_FSM_PAR)
#define BITS_FSM_PAR					(BIT_MASK_FSM_PAR << BIT_SHIFT_FSM_PAR)
#define BIT_CLEAR_FSM_PAR(x)				((x) & (~BITS_FSM_PAR))
#define BIT_GET_FSM_PAR(x)				(((x) >> BIT_SHIFT_FSM_PAR) & BIT_MASK_FSM_PAR)
#define BIT_SET_FSM_PAR(x, v)				(BIT_CLEAR_FSM_PAR(x) | BIT_FSM_PAR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL6				(Offset 0x00A4) */


#define BIT_SHIFT_TSFT_SEL_V1				0
#define BIT_MASK_TSFT_SEL_V1				0x7
#define BIT_TSFT_SEL_V1(x)				(((x) & BIT_MASK_TSFT_SEL_V1) << BIT_SHIFT_TSFT_SEL_V1)
#define BITS_TSFT_SEL_V1				(BIT_MASK_TSFT_SEL_V1 << BIT_SHIFT_TSFT_SEL_V1)
#define BIT_CLEAR_TSFT_SEL_V1(x)			((x) & (~BITS_TSFT_SEL_V1))
#define BIT_GET_TSFT_SEL_V1(x)				(((x) >> BIT_SHIFT_TSFT_SEL_V1) & BIT_MASK_TSFT_SEL_V1)
#define BIT_SET_TSFT_SEL_V1(x, v)			(BIT_CLEAR_TSFT_SEL_V1(x) | BIT_TSFT_SEL_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL6				(Offset 0x00A4) */


#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1		0
#define BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1		0x7
#define BIT_BB_DBG_SEL_AFE_SDM_BIT3_1(x)		(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1) << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1)
#define BITS_BB_DBG_SEL_AFE_SDM_BIT3_1			(BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1)
#define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1(x)	((x) & (~BITS_BB_DBG_SEL_AFE_SDM_BIT3_1))
#define BIT_GET_BB_DBG_SEL_AFE_SDM_BIT3_1(x)		(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_BIT3_1) & BIT_MASK_BB_DBG_SEL_AFE_SDM_BIT3_1)
#define BIT_SET_BB_DBG_SEL_AFE_SDM_BIT3_1(x, v)	(BIT_CLEAR_BB_DBG_SEL_AFE_SDM_BIT3_1(x) | BIT_BB_DBG_SEL_AFE_SDM_BIT3_1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PMC_DBG_CTRL1			(Offset 0x00A8) */

#define BIT_BT_INT_EN					BIT(31)

#define BIT_SHIFT_RD_WR_WIFI_BT_INFO			16
#define BIT_MASK_RD_WR_WIFI_BT_INFO			0x7fff
#define BIT_RD_WR_WIFI_BT_INFO(x)			(((x) & BIT_MASK_RD_WR_WIFI_BT_INFO) << BIT_SHIFT_RD_WR_WIFI_BT_INFO)
#define BITS_RD_WR_WIFI_BT_INFO			(BIT_MASK_RD_WR_WIFI_BT_INFO << BIT_SHIFT_RD_WR_WIFI_BT_INFO)
#define BIT_CLEAR_RD_WR_WIFI_BT_INFO(x)		((x) & (~BITS_RD_WR_WIFI_BT_INFO))
#define BIT_GET_RD_WR_WIFI_BT_INFO(x)			(((x) >> BIT_SHIFT_RD_WR_WIFI_BT_INFO) & BIT_MASK_RD_WR_WIFI_BT_INFO)
#define BIT_SET_RD_WR_WIFI_BT_INFO(x, v)		(BIT_CLEAR_RD_WR_WIFI_BT_INFO(x) | BIT_RD_WR_WIFI_BT_INFO(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PMC_DBG_CTRL1			(Offset 0x00A8) */

#define BIT_PMC_WR_OVF					BIT(8)

#define BIT_SHIFT_WLPMC_ERRINT				0
#define BIT_MASK_WLPMC_ERRINT				0xff
#define BIT_WLPMC_ERRINT(x)				(((x) & BIT_MASK_WLPMC_ERRINT) << BIT_SHIFT_WLPMC_ERRINT)
#define BITS_WLPMC_ERRINT				(BIT_MASK_WLPMC_ERRINT << BIT_SHIFT_WLPMC_ERRINT)
#define BIT_CLEAR_WLPMC_ERRINT(x)			((x) & (~BITS_WLPMC_ERRINT))
#define BIT_GET_WLPMC_ERRINT(x)			(((x) >> BIT_SHIFT_WLPMC_ERRINT) & BIT_MASK_WLPMC_ERRINT)
#define BIT_SET_WLPMC_ERRINT(x, v)			(BIT_CLEAR_WLPMC_ERRINT(x) | BIT_WLPMC_ERRINT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */


#define BIT_SHIFT_SEL_V				30
#define BIT_MASK_SEL_V					0x3
#define BIT_SEL_V(x)					(((x) & BIT_MASK_SEL_V) << BIT_SHIFT_SEL_V)
#define BITS_SEL_V					(BIT_MASK_SEL_V << BIT_SHIFT_SEL_V)
#define BIT_CLEAR_SEL_V(x)				((x) & (~BITS_SEL_V))
#define BIT_GET_SEL_V(x)				(((x) >> BIT_SHIFT_SEL_V) & BIT_MASK_SEL_V)
#define BIT_SET_SEL_V(x, v)				(BIT_CLEAR_SEL_V(x) | BIT_SEL_V(v))

#define BIT_SEL_LDO_PC					BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */


#define BIT_SHIFT_CK_MON_SEL_V2			26
#define BIT_MASK_CK_MON_SEL_V2				0x7
#define BIT_CK_MON_SEL_V2(x)				(((x) & BIT_MASK_CK_MON_SEL_V2) << BIT_SHIFT_CK_MON_SEL_V2)
#define BITS_CK_MON_SEL_V2				(BIT_MASK_CK_MON_SEL_V2 << BIT_SHIFT_CK_MON_SEL_V2)
#define BIT_CLEAR_CK_MON_SEL_V2(x)			((x) & (~BITS_CK_MON_SEL_V2))
#define BIT_GET_CK_MON_SEL_V2(x)			(((x) >> BIT_SHIFT_CK_MON_SEL_V2) & BIT_MASK_CK_MON_SEL_V2)
#define BIT_SET_CK_MON_SEL_V2(x, v)			(BIT_CLEAR_CK_MON_SEL_V2(x) | BIT_CK_MON_SEL_V2(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */


#define BIT_SHIFT_CK_MON_SEL				26
#define BIT_MASK_CK_MON_SEL				0x7
#define BIT_CK_MON_SEL(x)				(((x) & BIT_MASK_CK_MON_SEL) << BIT_SHIFT_CK_MON_SEL)
#define BITS_CK_MON_SEL				(BIT_MASK_CK_MON_SEL << BIT_SHIFT_CK_MON_SEL)
#define BIT_CLEAR_CK_MON_SEL(x)			((x) & (~BITS_CK_MON_SEL))
#define BIT_GET_CK_MON_SEL(x)				(((x) >> BIT_SHIFT_CK_MON_SEL) & BIT_MASK_CK_MON_SEL)
#define BIT_SET_CK_MON_SEL(x, v)			(BIT_CLEAR_CK_MON_SEL(x) | BIT_CK_MON_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL7				(Offset 0x00AC) */

#define BIT_CK_MON_EN					BIT(25)
#define BIT_FREF_EDGE					BIT(24)
#define BIT_CK320M_EN					BIT(23)
#define BIT_CK_5M_EN					BIT(22)
#define BIT_TESTEN					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TIMEOUT_INTERRUPT2_MASK			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_PSTIMER_2_MSK				BIT(31)
#define BIT_PSTIMER_2					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TIMEOUT_INTERRUTP1_MASK			BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_PSTIMER_1_MSK				BIT(30)
#define BIT_PSTIMER_1					BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_PSTIMEOUT_MSK				BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_PSTIMER_0_MSK				BIT(29)
#define BIT_PSTIMER_0					BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_GTINT4_MSK					BIT(28)
#define BIT_GTINT4					BIT(28)
#define BIT_GTINT3_MSK					BIT(27)
#define BIT_GTINT3					BIT(27)
#define BIT_TXBCN0ERR_MSK				BIT(26)
#define BIT_TXBCN0ERR					BIT(26)
#define BIT_TXBCN0OK_MSK				BIT(25)
#define BIT_TXBCN0OK					BIT(25)
#define BIT_TSF_BIT32_TOGGLE_MSK			BIT(24)
#define BIT_TSF_BIT32_TOGGLE				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMA_START_INT_MSK			BIT(23)
#define BIT_TXDMA_START_INT				BIT(23)
#define BIT_TXDMA_STOP_INT_MSK				BIT(22)
#define BIT_TXDMA_STOP_INT				BIT(22)
#define BIT_HISR7_IND_MSK				BIT(21)
#define BIT_HISR7_IND					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_BCNDMAINT0_MSK				BIT(20)
#define BIT_BCNDMAINT0					BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR6_IND_MSK				BIT(19)
#define BIT_HISR6_IND					BIT(19)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR5_MSK					BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR5_IND_MSK				BIT(18)
#define BIT_HISR5_IND					BIT(18)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR4_MSK					BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR4_IND_MSK				BIT(17)
#define BIT_HISR4_IND					BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_BCNDERR0_MSK				BIT(16)
#define BIT_BCNDERR0					BIT(16)
#define BIT_HSISR_IND_ON_INT_MSK			BIT(15)
#define BIT_HSISR_IND_ON_INT				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_BCNDMAINT_E_MSK				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR3_IND_INT_MSK				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR3_IND_MSK				BIT(14)
#define BIT_HISR3_IND					BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR2_IND_INT_MSK				BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR2_IND_MSK				BIT(13)
#define BIT_HISR2_IND					BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_CTWEND_MSK					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR1_IND_MSK				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HISR1_IND_INT_MSK				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_C2HCMD_MSK					BIT(10)
#define BIT_C2HCMD					BIT(10)
#define BIT_CPWM2_MSK					BIT(9)
#define BIT_CPWM2					BIT(9)
#define BIT_CPWM_MSK					BIT(8)
#define BIT_CPWM					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_HIGHDOK_MSK				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL15_MSK			BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_MGTDOK_MSK					BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL14_MSK			BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_BKDOK_MSK					BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL3_MSK			BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_BEDOK_MSK					BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL2_MSK			BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_VIDOK_MSK					BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL1_MSK			BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_VODOK_MSK					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_TXDMAOK_CHANNEL0_MSK			BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR0				(Offset 0x00B0) */

#define BIT_RDU_MSK					BIT(1)
#define BIT_RDU					BIT(1)
#define BIT_RXOK_MSK					BIT(0)
#define BIT_RXOK					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_PSTIMEOUT2					BIT(31)
#define BIT_PSTIMEOUT1					BIT(30)
#define BIT_PSTIMEOUT					BIT(29)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_HISR5_IND_INT				BIT(18)
#define BIT_HISR4_IND_INT				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_BCNDMAINT_E				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_HISR3_IND_INT				BIT(14)
#define BIT_HISR2_IND_INT				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_CTWEND					BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HISR0				(Offset 0x00B4) */

#define BIT_HISR1_IND_INT				BIT(11)
#define BIT_HIGHDOK					BIT(7)
#define BIT_MGTDOK					BIT(6)
#define BIT_BKDOK					BIT(5)
#define BIT_BEDOK					BIT(4)
#define BIT_VIDOK					BIT(3)
#define BIT_VODOK					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PRE_TX_ERR_INT_MSK				BIT(31)
#define BIT_PRE_TX_ERR_INT				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BTON_STS_UPDATE_INT			BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BTON_STS_UPDATE_MSK			BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BTON_STS_UPDATE_MASK			BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_MCU_ERR_MASK				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT7					BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT7_MSK				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT7__MSK				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT6					BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT6_MSK				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT6__MSK				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT5					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT5_MSK				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT5__MSK				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT4					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT4_MSK				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT4__MSK				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BCNDMAINT3_MSK				BIT(23)
#define BIT_BCNDMAINT3					BIT(23)
#define BIT_BCNDMAINT2_MSK				BIT(22)
#define BIT_BCNDMAINT2					BIT(22)
#define BIT_BCNDMAINT1_MSK				BIT(21)
#define BIT_BCNDMAINT1					BIT(21)
#define BIT_BCNDERR7_MSK				BIT(20)
#define BIT_BCNDERR7					BIT(20)
#define BIT_BCNDERR6_MSK				BIT(19)
#define BIT_BCNDERR6					BIT(19)
#define BIT_BCNDERR5_MSK				BIT(18)
#define BIT_BCNDERR5					BIT(18)
#define BIT_BCNDERR4_MSK				BIT(17)
#define BIT_BCNDERR4					BIT(17)
#define BIT_BCNDERR3_MSK				BIT(16)
#define BIT_BCNDERR3					BIT(16)
#define BIT_BCNDERR2_MSK				BIT(15)
#define BIT_BCNDERR2					BIT(15)
#define BIT_BCNDERR1_MSK				BIT(14)
#define BIT_BCNDERR1					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_ATIMEND_E_MSK				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_ATIMEND_MSK				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_ATIMEND__MSK				BIT(12)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_ATIMEND_E_V1_MSK				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_TXERR_MSK					BIT(11)
#define BIT_TXERR_INT					BIT(11)
#define BIT_RXERR_MSK					BIT(10)
#define BIT_RXERR_INT					BIT(10)
#define BIT_TXFOVW_MSK					BIT(9)
#define BIT_TXFOVW					BIT(9)
#define BIT_FOVW_MSK					BIT(8)
#define BIT_FOVW					BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_LD_B12V_EN_V1				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_CPU_MGQ_EARLY_INT_MSK			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_CPU_MGQ_TXDONE_MSK				BIT(5)
#define BIT_CPU_MGQ_TXDONE				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PSTIMER_5_MSK				BIT(4)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PS_TIMER_C_MSK				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PSTIMER_4_MSK				BIT(3)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PS_TIMER_B_MSK				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PSTIMER_3_MSK				BIT(2)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_PS_TIMER_A_MSK				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_CPUMGQ_TX_TIMER_MSK			BIT(1)
#define BIT_CPUMGQ_TX_TIMER				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR1				(Offset 0x00B8) */

#define BIT_BB_STOPRX_INT_MSK				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HISR1				(Offset 0x00BC) */

#define BIT_MCU_ERR					BIT(28)
#define BIT_ATIMEND_E					BIT(13)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_HISR1				(Offset 0x00BC) */

#define BIT_ATIMEND_E_V1_INT				BIT(12)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HISR1				(Offset 0x00BC) */

#define BIT_PS_TIMER_C					BIT(4)
#define BIT_PS_TIMER_B					BIT(3)
#define BIT_PS_TIMER_A					BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_ERR_RPT			(Offset 0x102500C0) */

#define BIT_HR_FF_OVF					BIT(6)
#define BIT_HR_FF_UDN					BIT(5)
#define BIT_TXDMA_BUSY_ERR				BIT(4)
#define BIT_TXDMA_VLD_ERR				BIT(3)
#define BIT_QSEL_UNKNOWN_ERR				BIT(2)
#define BIT_QSEL_MIS_ERR				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DBG_PORT_SEL			(Offset 0x00C0) */


#define BIT_SHIFT_DEBUG_ST				0
#define BIT_MASK_DEBUG_ST				0xffffffffL
#define BIT_DEBUG_ST(x)				(((x) & BIT_MASK_DEBUG_ST) << BIT_SHIFT_DEBUG_ST)
#define BITS_DEBUG_ST					(BIT_MASK_DEBUG_ST << BIT_SHIFT_DEBUG_ST)
#define BIT_CLEAR_DEBUG_ST(x)				((x) & (~BITS_DEBUG_ST))
#define BIT_GET_DEBUG_ST(x)				(((x) >> BIT_SHIFT_DEBUG_ST) & BIT_MASK_DEBUG_ST)
#define BIT_SET_DEBUG_ST(x, v)				(BIT_CLEAR_DEBUG_ST(x) | BIT_DEBUG_ST(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_ERR_RPT			(Offset 0x102500C0) */

#define BIT_SDIO_OVERRD_ERR				BIT(0)

/* 2 REG_SDIO_CMD_ERRCNT			(Offset 0x102500C1) */


#define BIT_SHIFT_CMD_CRC_ERR_CNT			0
#define BIT_MASK_CMD_CRC_ERR_CNT			0xff
#define BIT_CMD_CRC_ERR_CNT(x)				(((x) & BIT_MASK_CMD_CRC_ERR_CNT) << BIT_SHIFT_CMD_CRC_ERR_CNT)
#define BITS_CMD_CRC_ERR_CNT				(BIT_MASK_CMD_CRC_ERR_CNT << BIT_SHIFT_CMD_CRC_ERR_CNT)
#define BIT_CLEAR_CMD_CRC_ERR_CNT(x)			((x) & (~BITS_CMD_CRC_ERR_CNT))
#define BIT_GET_CMD_CRC_ERR_CNT(x)			(((x) >> BIT_SHIFT_CMD_CRC_ERR_CNT) & BIT_MASK_CMD_CRC_ERR_CNT)
#define BIT_SET_CMD_CRC_ERR_CNT(x, v)			(BIT_CLEAR_CMD_CRC_ERR_CNT(x) | BIT_CMD_CRC_ERR_CNT(v))


/* 2 REG_SDIO_DATA_ERRCNT			(Offset 0x102500C2) */


#define BIT_SHIFT_DATA_CRC_ERR_CNT			0
#define BIT_MASK_DATA_CRC_ERR_CNT			0xff
#define BIT_DATA_CRC_ERR_CNT(x)			(((x) & BIT_MASK_DATA_CRC_ERR_CNT) << BIT_SHIFT_DATA_CRC_ERR_CNT)
#define BITS_DATA_CRC_ERR_CNT				(BIT_MASK_DATA_CRC_ERR_CNT << BIT_SHIFT_DATA_CRC_ERR_CNT)
#define BIT_CLEAR_DATA_CRC_ERR_CNT(x)			((x) & (~BITS_DATA_CRC_ERR_CNT))
#define BIT_GET_DATA_CRC_ERR_CNT(x)			(((x) >> BIT_SHIFT_DATA_CRC_ERR_CNT) & BIT_MASK_DATA_CRC_ERR_CNT)
#define BIT_SET_DATA_CRC_ERR_CNT(x, v)			(BIT_CLEAR_DATA_CRC_ERR_CNT(x) | BIT_DATA_CRC_ERR_CNT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_MAC_SOP					BIT(25)
#define BIT_LDO11_ST_EXT				BIT(24)
#define BIT_ANTSELB_S2					BIT(23)
#define BIT_ANTSELB_S1					BIT(22)
#define BIT_ANTSEL_S3					BIT(21)
#define BIT_ANTSEL_S2					BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_USB3_USB2_TRANSITION			BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_ANTSEL_S1					BIT(19)
#define BIT_FCSN_PU					BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */


#define BIT_SHIFT_USB23_SW_MODE_V1			18
#define BIT_MASK_USB23_SW_MODE_V1			0x3
#define BIT_USB23_SW_MODE_V1(x)			(((x) & BIT_MASK_USB23_SW_MODE_V1) << BIT_SHIFT_USB23_SW_MODE_V1)
#define BITS_USB23_SW_MODE_V1				(BIT_MASK_USB23_SW_MODE_V1 << BIT_SHIFT_USB23_SW_MODE_V1)
#define BIT_CLEAR_USB23_SW_MODE_V1(x)			((x) & (~BITS_USB23_SW_MODE_V1))
#define BIT_GET_USB23_SW_MODE_V1(x)			(((x) >> BIT_SHIFT_USB23_SW_MODE_V1) & BIT_MASK_USB23_SW_MODE_V1)
#define BIT_SET_USB23_SW_MODE_V1(x, v)			(BIT_CLEAR_USB23_SW_MODE_V1(x) | BIT_USB23_SW_MODE_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_KEEP_PAD					BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_NO_PDN_CHIPOFF_V1				BIT(17)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_PAD_ALD_SKP				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_RSM_EN_V1					BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_PAD_A_ANTSEL_E				BIT(11)
#define BIT_PAD_A_ANTSELB_E				BIT(10)
#define BIT_PAD_A_ANTSEL_O				BIT(9)
#define BIT_PAD_A_ANTSELB_O				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_LD_B12V_EN					BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_B15V_EN					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_IOSEL					BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_IOSEL_V1				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_DATA_O				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_DATA_O_V1				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_DATA_I				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_DATA_I_V1				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_IOSEL					BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_IOSEL_V1				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_DATA_O				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_DATA_O_V1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EECS_DATA_I				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PAD_CTRL2				(Offset 0x00C4) */

#define BIT_EESK_DATA_I_V1				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_CMD_ERR_CONTENT		(Offset 0x102500C4) */


#define BIT_SHIFT_SDIO_CMD_ERR_CONTENT			0
#define BIT_MASK_SDIO_CMD_ERR_CONTENT			0xffffffffffL
#define BIT_SDIO_CMD_ERR_CONTENT(x)			(((x) & BIT_MASK_SDIO_CMD_ERR_CONTENT) << BIT_SHIFT_SDIO_CMD_ERR_CONTENT)
#define BITS_SDIO_CMD_ERR_CONTENT			(BIT_MASK_SDIO_CMD_ERR_CONTENT << BIT_SHIFT_SDIO_CMD_ERR_CONTENT)
#define BIT_CLEAR_SDIO_CMD_ERR_CONTENT(x)		((x) & (~BITS_SDIO_CMD_ERR_CONTENT))
#define BIT_GET_SDIO_CMD_ERR_CONTENT(x)		(((x) >> BIT_SHIFT_SDIO_CMD_ERR_CONTENT) & BIT_MASK_SDIO_CMD_ERR_CONTENT)
#define BIT_SET_SDIO_CMD_ERR_CONTENT(x, v)		(BIT_CLEAR_SDIO_CMD_ERR_CONTENT(x) | BIT_SDIO_CMD_ERR_CONTENT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_MEM_RMC				(Offset 0x00C8) */

#define BIT_MEM_RMV_SIGN				BIT(31)
#define BIT_MEM_RMV_2PRF1				BIT(29)
#define BIT_MEM_RMV_2PRF0				BIT(28)
#define BIT_MEM_RMV_1PRF1				BIT(27)
#define BIT_MEM_RMV_1PRF0				BIT(26)
#define BIT_MEM_RMV_1PSR				BIT(25)
#define BIT_MEM_RMV_ROM				BIT(24)

#define BIT_SHIFT_MEM_RME_WL_V2			4
#define BIT_MASK_MEM_RME_WL_V2				0x3f
#define BIT_MEM_RME_WL_V2(x)				(((x) & BIT_MASK_MEM_RME_WL_V2) << BIT_SHIFT_MEM_RME_WL_V2)
#define BITS_MEM_RME_WL_V2				(BIT_MASK_MEM_RME_WL_V2 << BIT_SHIFT_MEM_RME_WL_V2)
#define BIT_CLEAR_MEM_RME_WL_V2(x)			((x) & (~BITS_MEM_RME_WL_V2))
#define BIT_GET_MEM_RME_WL_V2(x)			(((x) >> BIT_SHIFT_MEM_RME_WL_V2) & BIT_MASK_MEM_RME_WL_V2)
#define BIT_SET_MEM_RME_WL_V2(x, v)			(BIT_CLEAR_MEM_RME_WL_V2(x) | BIT_MEM_RME_WL_V2(v))


#define BIT_SHIFT_MEM_RME_HCI_V2			0
#define BIT_MASK_MEM_RME_HCI_V2			0x1f
#define BIT_MEM_RME_HCI_V2(x)				(((x) & BIT_MASK_MEM_RME_HCI_V2) << BIT_SHIFT_MEM_RME_HCI_V2)
#define BITS_MEM_RME_HCI_V2				(BIT_MASK_MEM_RME_HCI_V2 << BIT_SHIFT_MEM_RME_HCI_V2)
#define BIT_CLEAR_MEM_RME_HCI_V2(x)			((x) & (~BITS_MEM_RME_HCI_V2))
#define BIT_GET_MEM_RME_HCI_V2(x)			(((x) >> BIT_SHIFT_MEM_RME_HCI_V2) & BIT_MASK_MEM_RME_HCI_V2)
#define BIT_SET_MEM_RME_HCI_V2(x, v)			(BIT_CLEAR_MEM_RME_HCI_V2(x) | BIT_MEM_RME_HCI_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SDIO_CRC_ERR_IDX			(Offset 0x102500C9) */

#define BIT_D3_CRC_ERR					BIT(4)
#define BIT_D2_CRC_ERR					BIT(3)
#define BIT_D1_CRC_ERR					BIT(2)
#define BIT_D0_CRC_ERR					BIT(1)
#define BIT_CMD_CRC_ERR				BIT(0)

/* 2 REG_SDIO_DATA_CRC			(Offset 0x102500CA) */


#define BIT_SHIFT_SDIO_DATA_CRC			0
#define BIT_MASK_SDIO_DATA_CRC				0xff
#define BIT_SDIO_DATA_CRC(x)				(((x) & BIT_MASK_SDIO_DATA_CRC) << BIT_SHIFT_SDIO_DATA_CRC)
#define BITS_SDIO_DATA_CRC				(BIT_MASK_SDIO_DATA_CRC << BIT_SHIFT_SDIO_DATA_CRC)
#define BIT_CLEAR_SDIO_DATA_CRC(x)			((x) & (~BITS_SDIO_DATA_CRC))
#define BIT_GET_SDIO_DATA_CRC(x)			(((x) >> BIT_SHIFT_SDIO_DATA_CRC) & BIT_MASK_SDIO_DATA_CRC)
#define BIT_SET_SDIO_DATA_CRC(x, v)			(BIT_CLEAR_SDIO_DATA_CRC(x) | BIT_SDIO_DATA_CRC(v))


/* 2 REG_SDIO_DATA_REPLY_TIME		(Offset 0x102500CB) */


#define BIT_SHIFT_SDIO_DATA_REPLY_TIME			0
#define BIT_MASK_SDIO_DATA_REPLY_TIME			0x7
#define BIT_SDIO_DATA_REPLY_TIME(x)			(((x) & BIT_MASK_SDIO_DATA_REPLY_TIME) << BIT_SHIFT_SDIO_DATA_REPLY_TIME)
#define BITS_SDIO_DATA_REPLY_TIME			(BIT_MASK_SDIO_DATA_REPLY_TIME << BIT_SHIFT_SDIO_DATA_REPLY_TIME)
#define BIT_CLEAR_SDIO_DATA_REPLY_TIME(x)		((x) & (~BITS_SDIO_DATA_REPLY_TIME))
#define BIT_GET_SDIO_DATA_REPLY_TIME(x)		(((x) >> BIT_SHIFT_SDIO_DATA_REPLY_TIME) & BIT_MASK_SDIO_DATA_REPLY_TIME)
#define BIT_SET_SDIO_DATA_REPLY_TIME(x, v)		(BIT_CLEAR_SDIO_DATA_REPLY_TIME(x) | BIT_SDIO_DATA_REPLY_TIME(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */


#define BIT_SHIFT_EFUSE_BURN_GNT			24
#define BIT_MASK_EFUSE_BURN_GNT			0xff
#define BIT_EFUSE_BURN_GNT(x)				(((x) & BIT_MASK_EFUSE_BURN_GNT) << BIT_SHIFT_EFUSE_BURN_GNT)
#define BITS_EFUSE_BURN_GNT				(BIT_MASK_EFUSE_BURN_GNT << BIT_SHIFT_EFUSE_BURN_GNT)
#define BIT_CLEAR_EFUSE_BURN_GNT(x)			((x) & (~BITS_EFUSE_BURN_GNT))
#define BIT_GET_EFUSE_BURN_GNT(x)			(((x) >> BIT_SHIFT_EFUSE_BURN_GNT) & BIT_MASK_EFUSE_BURN_GNT)
#define BIT_SET_EFUSE_BURN_GNT(x, v)			(BIT_CLEAR_EFUSE_BURN_GNT(x) | BIT_EFUSE_BURN_GNT(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */


#define BIT_SHIFT_EFUSE_PG_PWD				24
#define BIT_MASK_EFUSE_PG_PWD				0xff
#define BIT_EFUSE_PG_PWD(x)				(((x) & BIT_MASK_EFUSE_PG_PWD) << BIT_SHIFT_EFUSE_PG_PWD)
#define BITS_EFUSE_PG_PWD				(BIT_MASK_EFUSE_PG_PWD << BIT_SHIFT_EFUSE_PG_PWD)
#define BIT_CLEAR_EFUSE_PG_PWD(x)			((x) & (~BITS_EFUSE_PG_PWD))
#define BIT_GET_EFUSE_PG_PWD(x)			(((x) >> BIT_SHIFT_EFUSE_PG_PWD) & BIT_MASK_EFUSE_PG_PWD)
#define BIT_SET_EFUSE_PG_PWD(x, v)			(BIT_CLEAR_EFUSE_PG_PWD(x) | BIT_EFUSE_PG_PWD(v))

#define BIT_DBG_READ_EN				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */

#define BIT_STOP_WL_PMC				BIT(9)
#define BIT_STOP_SYM_PMC				BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */


#define BIT_SHIFT_EDATA1_V1				8
#define BIT_MASK_EDATA1_V1				0xff
#define BIT_EDATA1_V1(x)				(((x) & BIT_MASK_EDATA1_V1) << BIT_SHIFT_EDATA1_V1)
#define BITS_EDATA1_V1					(BIT_MASK_EDATA1_V1 << BIT_SHIFT_EDATA1_V1)
#define BIT_CLEAR_EDATA1_V1(x)				((x) & (~BITS_EDATA1_V1))
#define BIT_GET_EDATA1_V1(x)				(((x) >> BIT_SHIFT_EDATA1_V1) & BIT_MASK_EDATA1_V1)
#define BIT_SET_EDATA1_V1(x, v)			(BIT_CLEAR_EDATA1_V1(x) | BIT_EDATA1_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */

#define BIT_BT_ACCESS_WL_PAGE0				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */

#define BIT_REG_RST_WLPMC				BIT(5)
#define BIT_REG_RST_PD12N				BIT(4)
#define BIT_SYSON_DIS_WLREG_WRMSK			BIT(3)
#define BIT_SYSON_DIS_PMCREG_WRMSK			BIT(2)

#define BIT_SHIFT_SYSON_REG_ARB			0
#define BIT_MASK_SYSON_REG_ARB				0x3
#define BIT_SYSON_REG_ARB(x)				(((x) & BIT_MASK_SYSON_REG_ARB) << BIT_SHIFT_SYSON_REG_ARB)
#define BITS_SYSON_REG_ARB				(BIT_MASK_SYSON_REG_ARB << BIT_SHIFT_SYSON_REG_ARB)
#define BIT_CLEAR_SYSON_REG_ARB(x)			((x) & (~BITS_SYSON_REG_ARB))
#define BIT_GET_SYSON_REG_ARB(x)			(((x) >> BIT_SHIFT_SYSON_REG_ARB) & BIT_MASK_SYSON_REG_ARB)
#define BIT_SET_SYSON_REG_ARB(x, v)			(BIT_CLEAR_SYSON_REG_ARB(x) | BIT_SYSON_REG_ARB(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PMC_DBG_CTRL2			(Offset 0x00CC) */


#define BIT_SHIFT_EDATA0_V1				0
#define BIT_MASK_EDATA0_V1				0xff
#define BIT_EDATA0_V1(x)				(((x) & BIT_MASK_EDATA0_V1) << BIT_SHIFT_EDATA0_V1)
#define BITS_EDATA0_V1					(BIT_MASK_EDATA0_V1 << BIT_SHIFT_EDATA0_V1)
#define BIT_CLEAR_EDATA0_V1(x)				((x) & (~BITS_EDATA0_V1))
#define BIT_GET_EDATA0_V1(x)				(((x) >> BIT_SHIFT_EDATA0_V1) & BIT_MASK_EDATA0_V1)
#define BIT_SET_EDATA0_V1(x, v)			(BIT_CLEAR_EDATA0_V1(x) | BIT_EDATA0_V1(v))


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_SCAN_PLL_BYPASS				BIT(30)
#define BIT_DRF_BIST_FAIL_V1				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_USB_DIS				BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_DRF_BIST_READY_V1				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_PCI_DIS				BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_FAIL_V1				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_BT_DIS				BIT(25)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_READY_V1				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_WL_DIS				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_START_PAUSE_V1			BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */


#define BIT_SHIFT_BIST_RPT_SEL				16
#define BIT_MASK_BIST_RPT_SEL				0xf
#define BIT_BIST_RPT_SEL(x)				(((x) & BIT_MASK_BIST_RPT_SEL) << BIT_SHIFT_BIST_RPT_SEL)
#define BITS_BIST_RPT_SEL				(BIT_MASK_BIST_RPT_SEL << BIT_SHIFT_BIST_RPT_SEL)
#define BIT_CLEAR_BIST_RPT_SEL(x)			((x) & (~BITS_BIST_RPT_SEL))
#define BIT_GET_BIST_RPT_SEL(x)			(((x) >> BIT_SHIFT_BIST_RPT_SEL) & BIT_MASK_BIST_RPT_SEL)
#define BIT_SET_BIST_RPT_SEL(x, v)			(BIT_CLEAR_BIST_RPT_SEL(x) | BIT_BIST_RPT_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */


#define BIT_SHIFT_MBIST_RSTNI				8
#define BIT_MASK_MBIST_RSTNI				0x3ff
#define BIT_MBIST_RSTNI(x)				(((x) & BIT_MASK_MBIST_RSTNI) << BIT_SHIFT_MBIST_RSTNI)
#define BITS_MBIST_RSTNI				(BIT_MASK_MBIST_RSTNI << BIT_SHIFT_MBIST_RSTNI)
#define BIT_CLEAR_MBIST_RSTNI(x)			((x) & (~BITS_MBIST_RSTNI))
#define BIT_GET_MBIST_RSTNI(x)				(((x) >> BIT_SHIFT_MBIST_RSTNI) & BIT_MASK_MBIST_RSTNI)
#define BIT_SET_MBIST_RSTNI(x, v)			(BIT_CLEAR_MBIST_RSTNI(x) | BIT_MBIST_RSTNI(v))

#define BIT_BIST_RESUME_PS_V1				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_RESUME_PS				BIT(4)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_RESUME_V1				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_RESUME				BIT(3)
#define BIT_BIST_NORMAL				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */


#define BIT_SHIFT_BIST_MODE				2
#define BIT_MASK_BIST_MODE				0x3
#define BIT_BIST_MODE(x)				(((x) & BIT_MASK_BIST_MODE) << BIT_SHIFT_BIST_MODE)
#define BITS_BIST_MODE					(BIT_MASK_BIST_MODE << BIT_SHIFT_BIST_MODE)
#define BIT_CLEAR_BIST_MODE(x)				((x) & (~BITS_BIST_MODE))
#define BIT_GET_BIST_MODE(x)				(((x) >> BIT_SHIFT_BIST_MODE) & BIT_MASK_BIST_MODE)
#define BIT_SET_BIST_MODE(x, v)			(BIT_CLEAR_BIST_MODE(x) | BIT_BIST_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_CTRL				(Offset 0x00D0) */

#define BIT_BIST_RSTN					BIT(1)
#define BIT_BIST_CLK_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BIST_RPT				(Offset 0x00D4) */


#define BIT_SHIFT_MBIST_REPORT				0
#define BIT_MASK_MBIST_REPORT				0xffffffffL
#define BIT_MBIST_REPORT(x)				(((x) & BIT_MASK_MBIST_REPORT) << BIT_SHIFT_MBIST_REPORT)
#define BITS_MBIST_REPORT				(BIT_MASK_MBIST_REPORT << BIT_SHIFT_MBIST_REPORT)
#define BIT_CLEAR_MBIST_REPORT(x)			((x) & (~BITS_MBIST_REPORT))
#define BIT_GET_MBIST_REPORT(x)			(((x) >> BIT_SHIFT_MBIST_REPORT) & BIT_MASK_MBIST_REPORT)
#define BIT_SET_MBIST_REPORT(x, v)			(BIT_CLEAR_MBIST_REPORT(x) | BIT_MBIST_REPORT(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */

#define BIT_RMV_SIGN					BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */

#define BIT_UMEM_RME					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */

#define BIT_RMV_2PRF1					BIT(29)
#define BIT_RMV_2PRF0					BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_BT_SPRAM				28
#define BIT_MASK_BT_SPRAM				0x3
#define BIT_BT_SPRAM(x)				(((x) & BIT_MASK_BT_SPRAM) << BIT_SHIFT_BT_SPRAM)
#define BITS_BT_SPRAM					(BIT_MASK_BT_SPRAM << BIT_SHIFT_BT_SPRAM)
#define BIT_CLEAR_BT_SPRAM(x)				((x) & (~BITS_BT_SPRAM))
#define BIT_GET_BT_SPRAM(x)				(((x) >> BIT_SHIFT_BT_SPRAM) & BIT_MASK_BT_SPRAM)
#define BIT_SET_BT_SPRAM(x, v)				(BIT_CLEAR_BT_SPRAM(x) | BIT_BT_SPRAM(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */

#define BIT_RMV_1PRF1					BIT(27)
#define BIT_RMV_1PRF0					BIT(26)
#define BIT_RMV_1PSR					BIT(25)
#define BIT_RMV_ROM					BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_BT_ROM				24
#define BIT_MASK_BT_ROM				0xf
#define BIT_BT_ROM(x)					(((x) & BIT_MASK_BT_ROM) << BIT_SHIFT_BT_ROM)
#define BITS_BT_ROM					(BIT_MASK_BT_ROM << BIT_SHIFT_BT_ROM)
#define BIT_CLEAR_BT_ROM(x)				((x) & (~BITS_BT_ROM))
#define BIT_GET_BT_ROM(x)				(((x) >> BIT_SHIFT_BT_ROM) & BIT_MASK_BT_ROM)
#define BIT_SET_BT_ROM(x, v)				(BIT_CLEAR_BT_ROM(x) | BIT_BT_ROM(v))


#define BIT_SHIFT_PCI_DPRAM				10
#define BIT_MASK_PCI_DPRAM				0x3
#define BIT_PCI_DPRAM(x)				(((x) & BIT_MASK_PCI_DPRAM) << BIT_SHIFT_PCI_DPRAM)
#define BITS_PCI_DPRAM					(BIT_MASK_PCI_DPRAM << BIT_SHIFT_PCI_DPRAM)
#define BIT_CLEAR_PCI_DPRAM(x)				((x) & (~BITS_PCI_DPRAM))
#define BIT_GET_PCI_DPRAM(x)				(((x) >> BIT_SHIFT_PCI_DPRAM) & BIT_MASK_PCI_DPRAM)
#define BIT_SET_PCI_DPRAM(x, v)			(BIT_CLEAR_PCI_DPRAM(x) | BIT_PCI_DPRAM(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_MEM_RME_BT				8
#define BIT_MASK_MEM_RME_BT				0xf
#define BIT_MEM_RME_BT(x)				(((x) & BIT_MASK_MEM_RME_BT) << BIT_SHIFT_MEM_RME_BT)
#define BITS_MEM_RME_BT				(BIT_MASK_MEM_RME_BT << BIT_SHIFT_MEM_RME_BT)
#define BIT_CLEAR_MEM_RME_BT(x)			((x) & (~BITS_MEM_RME_BT))
#define BIT_GET_MEM_RME_BT(x)				(((x) >> BIT_SHIFT_MEM_RME_BT) & BIT_MASK_MEM_RME_BT)
#define BIT_SET_MEM_RME_BT(x, v)			(BIT_CLEAR_MEM_RME_BT(x) | BIT_MEM_RME_BT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_PCI_SPRAM				8
#define BIT_MASK_PCI_SPRAM				0x3
#define BIT_PCI_SPRAM(x)				(((x) & BIT_MASK_PCI_SPRAM) << BIT_SHIFT_PCI_SPRAM)
#define BITS_PCI_SPRAM					(BIT_MASK_PCI_SPRAM << BIT_SHIFT_PCI_SPRAM)
#define BIT_CLEAR_PCI_SPRAM(x)				((x) & (~BITS_PCI_SPRAM))
#define BIT_GET_PCI_SPRAM(x)				(((x) >> BIT_SHIFT_PCI_SPRAM) & BIT_MASK_PCI_SPRAM)
#define BIT_SET_PCI_SPRAM(x, v)			(BIT_CLEAR_PCI_SPRAM(x) | BIT_PCI_SPRAM(v))


#define BIT_SHIFT_USB_SPRAM				6
#define BIT_MASK_USB_SPRAM				0x3
#define BIT_USB_SPRAM(x)				(((x) & BIT_MASK_USB_SPRAM) << BIT_SHIFT_USB_SPRAM)
#define BITS_USB_SPRAM					(BIT_MASK_USB_SPRAM << BIT_SHIFT_USB_SPRAM)
#define BIT_CLEAR_USB_SPRAM(x)				((x) & (~BITS_USB_SPRAM))
#define BIT_GET_USB_SPRAM(x)				(((x) >> BIT_SHIFT_USB_SPRAM) & BIT_MASK_USB_SPRAM)
#define BIT_SET_USB_SPRAM(x, v)			(BIT_CLEAR_USB_SPRAM(x) | BIT_USB_SPRAM(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_MEM_RME_WL				4
#define BIT_MASK_MEM_RME_WL				0xf
#define BIT_MEM_RME_WL(x)				(((x) & BIT_MASK_MEM_RME_WL) << BIT_SHIFT_MEM_RME_WL)
#define BITS_MEM_RME_WL				(BIT_MASK_MEM_RME_WL << BIT_SHIFT_MEM_RME_WL)
#define BIT_CLEAR_MEM_RME_WL(x)			((x) & (~BITS_MEM_RME_WL))
#define BIT_GET_MEM_RME_WL(x)				(((x) >> BIT_SHIFT_MEM_RME_WL) & BIT_MASK_MEM_RME_WL)
#define BIT_SET_MEM_RME_WL(x, v)			(BIT_CLEAR_MEM_RME_WL(x) | BIT_MEM_RME_WL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_USB_SPRF				4
#define BIT_MASK_USB_SPRF				0x3
#define BIT_USB_SPRF(x)				(((x) & BIT_MASK_USB_SPRF) << BIT_SHIFT_USB_SPRF)
#define BITS_USB_SPRF					(BIT_MASK_USB_SPRF << BIT_SHIFT_USB_SPRF)
#define BIT_CLEAR_USB_SPRF(x)				((x) & (~BITS_USB_SPRF))
#define BIT_GET_USB_SPRF(x)				(((x) >> BIT_SHIFT_USB_SPRF) & BIT_MASK_USB_SPRF)
#define BIT_SET_USB_SPRF(x, v)				(BIT_CLEAR_USB_SPRF(x) | BIT_USB_SPRF(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_MEM_RME_HCI				0
#define BIT_MASK_MEM_RME_HCI				0xf
#define BIT_MEM_RME_HCI(x)				(((x) & BIT_MASK_MEM_RME_HCI) << BIT_SHIFT_MEM_RME_HCI)
#define BITS_MEM_RME_HCI				(BIT_MASK_MEM_RME_HCI << BIT_SHIFT_MEM_RME_HCI)
#define BIT_CLEAR_MEM_RME_HCI(x)			((x) & (~BITS_MEM_RME_HCI))
#define BIT_GET_MEM_RME_HCI(x)				(((x) >> BIT_SHIFT_MEM_RME_HCI) & BIT_MASK_MEM_RME_HCI)
#define BIT_SET_MEM_RME_HCI(x, v)			(BIT_CLEAR_MEM_RME_HCI(x) | BIT_MEM_RME_HCI(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_MCU_ROM				0
#define BIT_MASK_MCU_ROM				0xf
#define BIT_MCU_ROM(x)					(((x) & BIT_MASK_MCU_ROM) << BIT_SHIFT_MCU_ROM)
#define BITS_MCU_ROM					(BIT_MASK_MCU_ROM << BIT_SHIFT_MCU_ROM)
#define BIT_CLEAR_MCU_ROM(x)				((x) & (~BITS_MCU_ROM))
#define BIT_GET_MCU_ROM(x)				(((x) >> BIT_SHIFT_MCU_ROM) & BIT_MASK_MCU_ROM)
#define BIT_SET_MCU_ROM(x, v)				(BIT_CLEAR_MCU_ROM(x) | BIT_MCU_ROM(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_MEM_CTRL				(Offset 0x00D8) */


#define BIT_SHIFT_BIST_ROM				0
#define BIT_MASK_BIST_ROM				0xffffffffL
#define BIT_BIST_ROM(x)				(((x) & BIT_MASK_BIST_ROM) << BIT_SHIFT_BIST_ROM)
#define BITS_BIST_ROM					(BIT_MASK_BIST_ROM << BIT_SHIFT_BIST_ROM)
#define BIT_CLEAR_BIST_ROM(x)				((x) & (~BITS_BIST_ROM))
#define BIT_GET_BIST_ROM(x)				(((x) >> BIT_SHIFT_BIST_ROM) & BIT_MASK_BIST_ROM)
#define BIT_SET_BIST_ROM(x, v)				(BIT_CLEAR_BIST_ROM(x) | BIT_BIST_ROM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */


#define BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4		26
#define BIT_MASK_BB_DBG_SEL_AFE_SDM_V4			0x7
#define BIT_BB_DBG_SEL_AFE_SDM_V4(x)			(((x) & BIT_MASK_BB_DBG_SEL_AFE_SDM_V4) << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4)
#define BITS_BB_DBG_SEL_AFE_SDM_V4			(BIT_MASK_BB_DBG_SEL_AFE_SDM_V4 << BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4)
#define BIT_CLEAR_BB_DBG_SEL_AFE_SDM_V4(x)		((x) & (~BITS_BB_DBG_SEL_AFE_SDM_V4))
#define BIT_GET_BB_DBG_SEL_AFE_SDM_V4(x)		(((x) >> BIT_SHIFT_BB_DBG_SEL_AFE_SDM_V4) & BIT_MASK_BB_DBG_SEL_AFE_SDM_V4)
#define BIT_SET_BB_DBG_SEL_AFE_SDM_V4(x, v)		(BIT_CLEAR_BB_DBG_SEL_AFE_SDM_V4(x) | BIT_BB_DBG_SEL_AFE_SDM_V4(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */

#define BIT_SYN_AGPIO					BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYN_RFC_CTRL			(Offset 0x00DC) */


#define BIT_SHIFT_SYN_RF1_CTRL				8
#define BIT_MASK_SYN_RF1_CTRL				0xff
#define BIT_SYN_RF1_CTRL(x)				(((x) & BIT_MASK_SYN_RF1_CTRL) << BIT_SHIFT_SYN_RF1_CTRL)
#define BITS_SYN_RF1_CTRL				(BIT_MASK_SYN_RF1_CTRL << BIT_SHIFT_SYN_RF1_CTRL)
#define BIT_CLEAR_SYN_RF1_CTRL(x)			((x) & (~BITS_SYN_RF1_CTRL))
#define BIT_GET_SYN_RF1_CTRL(x)			(((x) >> BIT_SHIFT_SYN_RF1_CTRL) & BIT_MASK_SYN_RF1_CTRL)
#define BIT_SET_SYN_RF1_CTRL(x, v)			(BIT_CLEAR_SYN_RF1_CTRL(x) | BIT_SYN_RF1_CTRL(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */

#define BIT_XTAL_LP					BIT(4)
#define BIT_XTAL_GM_SEP				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */


#define BIT_SHIFT_XTAL_SEL_TOK_V2			0
#define BIT_MASK_XTAL_SEL_TOK_V2			0x7
#define BIT_XTAL_SEL_TOK_V2(x)				(((x) & BIT_MASK_XTAL_SEL_TOK_V2) << BIT_SHIFT_XTAL_SEL_TOK_V2)
#define BITS_XTAL_SEL_TOK_V2				(BIT_MASK_XTAL_SEL_TOK_V2 << BIT_SHIFT_XTAL_SEL_TOK_V2)
#define BIT_CLEAR_XTAL_SEL_TOK_V2(x)			((x) & (~BITS_XTAL_SEL_TOK_V2))
#define BIT_GET_XTAL_SEL_TOK_V2(x)			(((x) >> BIT_SHIFT_XTAL_SEL_TOK_V2) & BIT_MASK_XTAL_SEL_TOK_V2)
#define BIT_SET_XTAL_SEL_TOK_V2(x, v)			(BIT_CLEAR_XTAL_SEL_TOK_V2(x) | BIT_XTAL_SEL_TOK_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WLAN_DBG				(Offset 0x00DC) */


#define BIT_SHIFT_WLAN_DBG				0
#define BIT_MASK_WLAN_DBG				0xffffffffL
#define BIT_WLAN_DBG(x)				(((x) & BIT_MASK_WLAN_DBG) << BIT_SHIFT_WLAN_DBG)
#define BITS_WLAN_DBG					(BIT_MASK_WLAN_DBG << BIT_SHIFT_WLAN_DBG)
#define BIT_CLEAR_WLAN_DBG(x)				((x) & (~BITS_WLAN_DBG))
#define BIT_GET_WLAN_DBG(x)				(((x) >> BIT_SHIFT_WLAN_DBG) & BIT_MASK_WLAN_DBG)
#define BIT_SET_WLAN_DBG(x, v)				(BIT_CLEAR_WLAN_DBG(x) | BIT_WLAN_DBG(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYN_RFC_CTRL			(Offset 0x00DC) */


#define BIT_SHIFT_SYN_RF0_CTRL				0
#define BIT_MASK_SYN_RF0_CTRL				0xff
#define BIT_SYN_RF0_CTRL(x)				(((x) & BIT_MASK_SYN_RF0_CTRL) << BIT_SHIFT_SYN_RF0_CTRL)
#define BITS_SYN_RF0_CTRL				(BIT_MASK_SYN_RF0_CTRL << BIT_SHIFT_SYN_RF0_CTRL)
#define BIT_CLEAR_SYN_RF0_CTRL(x)			((x) & (~BITS_SYN_RF0_CTRL))
#define BIT_GET_SYN_RF0_CTRL(x)			(((x) >> BIT_SHIFT_SYN_RF0_CTRL) & BIT_MASK_SYN_RF0_CTRL)
#define BIT_SET_SYN_RF0_CTRL(x, v)			(BIT_CLEAR_SYN_RF0_CTRL(x) | BIT_SYN_RF0_CTRL(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AFE_CTRL8				(Offset 0x00DC) */


#define BIT_SHIFT_XTAL_SEL_TOK				0
#define BIT_MASK_XTAL_SEL_TOK				0x7
#define BIT_XTAL_SEL_TOK(x)				(((x) & BIT_MASK_XTAL_SEL_TOK) << BIT_SHIFT_XTAL_SEL_TOK)
#define BITS_XTAL_SEL_TOK				(BIT_MASK_XTAL_SEL_TOK << BIT_SHIFT_XTAL_SEL_TOK)
#define BIT_CLEAR_XTAL_SEL_TOK(x)			((x) & (~BITS_XTAL_SEL_TOK))
#define BIT_GET_XTAL_SEL_TOK(x)			(((x) >> BIT_SHIFT_XTAL_SEL_TOK) & BIT_MASK_XTAL_SEL_TOK)
#define BIT_SET_XTAL_SEL_TOK(x, v)			(BIT_CLEAR_XTAL_SEL_TOK(x) | BIT_XTAL_SEL_TOK(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */

#define BIT_RD_SEL					BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */

#define BIT_CPU_REG_SEL				BIT(31)
#define BIT_USB3_REG_SEL				BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */

#define BIT_USB_SIE_INTF_WE_V1				BIT(30)
#define BIT_USB_SIE_INTF_BYIOREG_V1			BIT(29)
#define BIT_USB_SIE_SELECT				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */

#define BIT_USB_SIE_INTF_WE				BIT(25)
#define BIT_USB_SIE_INTF_BYIOREG			BIT(24)

#define BIT_SHIFT_USB_SIE_INTF_ADDR			16
#define BIT_MASK_USB_SIE_INTF_ADDR			0xff
#define BIT_USB_SIE_INTF_ADDR(x)			(((x) & BIT_MASK_USB_SIE_INTF_ADDR) << BIT_SHIFT_USB_SIE_INTF_ADDR)
#define BITS_USB_SIE_INTF_ADDR				(BIT_MASK_USB_SIE_INTF_ADDR << BIT_SHIFT_USB_SIE_INTF_ADDR)
#define BIT_CLEAR_USB_SIE_INTF_ADDR(x)			((x) & (~BITS_USB_SIE_INTF_ADDR))
#define BIT_GET_USB_SIE_INTF_ADDR(x)			(((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR) & BIT_MASK_USB_SIE_INTF_ADDR)
#define BIT_SET_USB_SIE_INTF_ADDR(x, v)		(BIT_CLEAR_USB_SIE_INTF_ADDR(x) | BIT_USB_SIE_INTF_ADDR(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */


#define BIT_SHIFT_USB_SIE_INTF_ADDR_V1			16
#define BIT_MASK_USB_SIE_INTF_ADDR_V1			0x1ff
#define BIT_USB_SIE_INTF_ADDR_V1(x)			(((x) & BIT_MASK_USB_SIE_INTF_ADDR_V1) << BIT_SHIFT_USB_SIE_INTF_ADDR_V1)
#define BITS_USB_SIE_INTF_ADDR_V1			(BIT_MASK_USB_SIE_INTF_ADDR_V1 << BIT_SHIFT_USB_SIE_INTF_ADDR_V1)
#define BIT_CLEAR_USB_SIE_INTF_ADDR_V1(x)		((x) & (~BITS_USB_SIE_INTF_ADDR_V1))
#define BIT_GET_USB_SIE_INTF_ADDR_V1(x)		(((x) >> BIT_SHIFT_USB_SIE_INTF_ADDR_V1) & BIT_MASK_USB_SIE_INTF_ADDR_V1)
#define BIT_SET_USB_SIE_INTF_ADDR_V1(x, v)		(BIT_CLEAR_USB_SIE_INTF_ADDR_V1(x) | BIT_USB_SIE_INTF_ADDR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */


#define BIT_SHIFT_USB_SIE_INTF_RD			8
#define BIT_MASK_USB_SIE_INTF_RD			0xff
#define BIT_USB_SIE_INTF_RD(x)				(((x) & BIT_MASK_USB_SIE_INTF_RD) << BIT_SHIFT_USB_SIE_INTF_RD)
#define BITS_USB_SIE_INTF_RD				(BIT_MASK_USB_SIE_INTF_RD << BIT_SHIFT_USB_SIE_INTF_RD)
#define BIT_CLEAR_USB_SIE_INTF_RD(x)			((x) & (~BITS_USB_SIE_INTF_RD))
#define BIT_GET_USB_SIE_INTF_RD(x)			(((x) >> BIT_SHIFT_USB_SIE_INTF_RD) & BIT_MASK_USB_SIE_INTF_RD)
#define BIT_SET_USB_SIE_INTF_RD(x, v)			(BIT_CLEAR_USB_SIE_INTF_RD(x) | BIT_USB_SIE_INTF_RD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */


#define BIT_SHIFT_NPQ_AVAL_PG				8
#define BIT_MASK_NPQ_AVAL_PG				0xff
#define BIT_NPQ_AVAL_PG(x)				(((x) & BIT_MASK_NPQ_AVAL_PG) << BIT_SHIFT_NPQ_AVAL_PG)
#define BITS_NPQ_AVAL_PG				(BIT_MASK_NPQ_AVAL_PG << BIT_SHIFT_NPQ_AVAL_PG)
#define BIT_CLEAR_NPQ_AVAL_PG(x)			((x) & (~BITS_NPQ_AVAL_PG))
#define BIT_GET_NPQ_AVAL_PG(x)				(((x) >> BIT_SHIFT_NPQ_AVAL_PG) & BIT_MASK_NPQ_AVAL_PG)
#define BIT_SET_NPQ_AVAL_PG(x, v)			(BIT_CLEAR_NPQ_AVAL_PG(x) | BIT_NPQ_AVAL_PG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USB_SIE_INTF			(Offset 0x00E0) */


#define BIT_SHIFT_USB_SIE_INTF_WD			0
#define BIT_MASK_USB_SIE_INTF_WD			0xff
#define BIT_USB_SIE_INTF_WD(x)				(((x) & BIT_MASK_USB_SIE_INTF_WD) << BIT_SHIFT_USB_SIE_INTF_WD)
#define BITS_USB_SIE_INTF_WD				(BIT_MASK_USB_SIE_INTF_WD << BIT_SHIFT_USB_SIE_INTF_WD)
#define BIT_CLEAR_USB_SIE_INTF_WD(x)			((x) & (~BITS_USB_SIE_INTF_WD))
#define BIT_GET_USB_SIE_INTF_WD(x)			(((x) >> BIT_SHIFT_USB_SIE_INTF_WD) & BIT_MASK_USB_SIE_INTF_WD)
#define BIT_SET_USB_SIE_INTF_WD(x, v)			(BIT_CLEAR_USB_SIE_INTF_WD(x) | BIT_USB_SIE_INTF_WD(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PCIE_MIO_INTF			(Offset 0x00E4) */

#define BIT_PCIE_MIO_EXIT_L1				BIT(19)
#define BIT_PCIE_MIO_EXT				BIT(18)
#define BIT_PCIE_MIO_ACK				BIT(17)
#define BIT_PCIE_MIO_IOREG				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_MIO_INTF			(Offset 0x00E4) */

#define BIT_PCIE_MIO_BYIOREG				BIT(13)
#define BIT_PCIE_MIO_RE				BIT(12)

#define BIT_SHIFT_PCIE_MIO_WE				8
#define BIT_MASK_PCIE_MIO_WE				0xf
#define BIT_PCIE_MIO_WE(x)				(((x) & BIT_MASK_PCIE_MIO_WE) << BIT_SHIFT_PCIE_MIO_WE)
#define BITS_PCIE_MIO_WE				(BIT_MASK_PCIE_MIO_WE << BIT_SHIFT_PCIE_MIO_WE)
#define BIT_CLEAR_PCIE_MIO_WE(x)			((x) & (~BITS_PCIE_MIO_WE))
#define BIT_GET_PCIE_MIO_WE(x)				(((x) >> BIT_SHIFT_PCIE_MIO_WE) & BIT_MASK_PCIE_MIO_WE)
#define BIT_SET_PCIE_MIO_WE(x, v)			(BIT_CLEAR_PCIE_MIO_WE(x) | BIT_PCIE_MIO_WE(v))


#define BIT_SHIFT_PCIE_MIO_ADDR			0
#define BIT_MASK_PCIE_MIO_ADDR				0xff
#define BIT_PCIE_MIO_ADDR(x)				(((x) & BIT_MASK_PCIE_MIO_ADDR) << BIT_SHIFT_PCIE_MIO_ADDR)
#define BITS_PCIE_MIO_ADDR				(BIT_MASK_PCIE_MIO_ADDR << BIT_SHIFT_PCIE_MIO_ADDR)
#define BIT_CLEAR_PCIE_MIO_ADDR(x)			((x) & (~BITS_PCIE_MIO_ADDR))
#define BIT_GET_PCIE_MIO_ADDR(x)			(((x) >> BIT_SHIFT_PCIE_MIO_ADDR) & BIT_MASK_PCIE_MIO_ADDR)
#define BIT_SET_PCIE_MIO_ADDR(x, v)			(BIT_CLEAR_PCIE_MIO_ADDR(x) | BIT_PCIE_MIO_ADDR(v))


/* 2 REG_PCIE_MIO_INTD			(Offset 0x00E8) */


#define BIT_SHIFT_PCIE_MIO_DATA			0
#define BIT_MASK_PCIE_MIO_DATA				0xffffffffL
#define BIT_PCIE_MIO_DATA(x)				(((x) & BIT_MASK_PCIE_MIO_DATA) << BIT_SHIFT_PCIE_MIO_DATA)
#define BITS_PCIE_MIO_DATA				(BIT_MASK_PCIE_MIO_DATA << BIT_SHIFT_PCIE_MIO_DATA)
#define BIT_CLEAR_PCIE_MIO_DATA(x)			((x) & (~BITS_PCIE_MIO_DATA))
#define BIT_GET_PCIE_MIO_DATA(x)			(((x) >> BIT_SHIFT_PCIE_MIO_DATA) & BIT_MASK_PCIE_MIO_DATA)
#define BIT_SET_PCIE_MIO_DATA(x, v)			(BIT_CLEAR_PCIE_MIO_DATA(x) | BIT_PCIE_MIO_DATA(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HPON_FSM				(Offset 0x00EC) */

#define BIT_SUSPEND_V1					BIT(31)
#define BIT_FSM_RESUME_V1				BIT(30)
#define BIT_HOST_RESUME_SYNC_V1			BIT(29)
#define BIT_CHIP_PDNB_V1				BIT(28)

#define BIT_SHIFT_FSM_SUSPEND_V1			25
#define BIT_MASK_FSM_SUSPEND_V1			0x7
#define BIT_FSM_SUSPEND_V1(x)				(((x) & BIT_MASK_FSM_SUSPEND_V1) << BIT_SHIFT_FSM_SUSPEND_V1)
#define BITS_FSM_SUSPEND_V1				(BIT_MASK_FSM_SUSPEND_V1 << BIT_SHIFT_FSM_SUSPEND_V1)
#define BIT_CLEAR_FSM_SUSPEND_V1(x)			((x) & (~BITS_FSM_SUSPEND_V1))
#define BIT_GET_FSM_SUSPEND_V1(x)			(((x) >> BIT_SHIFT_FSM_SUSPEND_V1) & BIT_MASK_FSM_SUSPEND_V1)
#define BIT_SET_FSM_SUSPEND_V1(x, v)			(BIT_CLEAR_FSM_SUSPEND_V1(x) | BIT_FSM_SUSPEND_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WLRF1				(Offset 0x00EC) */


#define BIT_SHIFT_XTAL_SEL				25
#define BIT_MASK_XTAL_SEL				0x3
#define BIT_XTAL_SEL(x)				(((x) & BIT_MASK_XTAL_SEL) << BIT_SHIFT_XTAL_SEL)
#define BITS_XTAL_SEL					(BIT_MASK_XTAL_SEL << BIT_SHIFT_XTAL_SEL)
#define BIT_CLEAR_XTAL_SEL(x)				((x) & (~BITS_XTAL_SEL))
#define BIT_GET_XTAL_SEL(x)				(((x) >> BIT_SHIFT_XTAL_SEL) & BIT_MASK_XTAL_SEL)
#define BIT_SET_XTAL_SEL(x, v)				(BIT_CLEAR_XTAL_SEL(x) | BIT_XTAL_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HPON_FSM				(Offset 0x00EC) */

#define BIT_PMC_ALD_V1					BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLRF1				(Offset 0x00EC) */


#define BIT_SHIFT_WLRF1_CTRL				24
#define BIT_MASK_WLRF1_CTRL				0xff
#define BIT_WLRF1_CTRL(x)				(((x) & BIT_MASK_WLRF1_CTRL) << BIT_SHIFT_WLRF1_CTRL)
#define BITS_WLRF1_CTRL				(BIT_MASK_WLRF1_CTRL << BIT_SHIFT_WLRF1_CTRL)
#define BIT_CLEAR_WLRF1_CTRL(x)			((x) & (~BITS_WLRF1_CTRL))
#define BIT_GET_WLRF1_CTRL(x)				(((x) >> BIT_SHIFT_WLRF1_CTRL) & BIT_MASK_WLRF1_CTRL)
#define BIT_SET_WLRF1_CTRL(x, v)			(BIT_CLEAR_WLRF1_CTRL(x) | BIT_WLRF1_CTRL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HPON_FSM				(Offset 0x00EC) */


#define BIT_SHIFT_HCI_SEL_1				22
#define BIT_MASK_HCI_SEL_1				0x3
#define BIT_HCI_SEL_1(x)				(((x) & BIT_MASK_HCI_SEL_1) << BIT_SHIFT_HCI_SEL_1)
#define BITS_HCI_SEL_1					(BIT_MASK_HCI_SEL_1 << BIT_SHIFT_HCI_SEL_1)
#define BIT_CLEAR_HCI_SEL_1(x)				((x) & (~BITS_HCI_SEL_1))
#define BIT_GET_HCI_SEL_1(x)				(((x) >> BIT_SHIFT_HCI_SEL_1) & BIT_MASK_HCI_SEL_1)
#define BIT_SET_HCI_SEL_1(x, v)			(BIT_CLEAR_HCI_SEL_1(x) | BIT_HCI_SEL_1(v))

#define BIT_LOAD_DONE_V1				BIT(21)
#define BIT_CNT_MATCH					BIT(20)
#define BIT_TIMEUP_V1					BIT(19)
#define BIT_SPS_12V_VLD				BIT(18)
#define BIT_PCIERST_V1					BIT(17)
#define BIT_HOST_CLK_VLD				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WLRF1				(Offset 0x00EC) */


#define BIT_SHIFT_WLRF2_CTRL				16
#define BIT_MASK_WLRF2_CTRL				0xff
#define BIT_WLRF2_CTRL(x)				(((x) & BIT_MASK_WLRF2_CTRL) << BIT_SHIFT_WLRF2_CTRL)
#define BITS_WLRF2_CTRL				(BIT_MASK_WLRF2_CTRL << BIT_SHIFT_WLRF2_CTRL)
#define BIT_CLEAR_WLRF2_CTRL(x)			((x) & (~BITS_WLRF2_CTRL))
#define BIT_GET_WLRF2_CTRL(x)				(((x) >> BIT_SHIFT_WLRF2_CTRL) & BIT_MASK_WLRF2_CTRL)
#define BIT_SET_WLRF2_CTRL(x, v)			(BIT_CLEAR_WLRF2_CTRL(x) | BIT_WLRF2_CTRL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HPON_FSM				(Offset 0x00EC) */

#define BIT_PMC_WR_V1					BIT(15)
#define BIT_PMC_DATA_V1				BIT(14)

#define BIT_SHIFT_PMC_ADDR_V1				8
#define BIT_MASK_PMC_ADDR_V1				0x3f
#define BIT_PMC_ADDR_V1(x)				(((x) & BIT_MASK_PMC_ADDR_V1) << BIT_SHIFT_PMC_ADDR_V1)
#define BITS_PMC_ADDR_V1				(BIT_MASK_PMC_ADDR_V1 << BIT_SHIFT_PMC_ADDR_V1)
#define BIT_CLEAR_PMC_ADDR_V1(x)			((x) & (~BITS_PMC_ADDR_V1))
#define BIT_GET_PMC_ADDR_V1(x)				(((x) >> BIT_SHIFT_PMC_ADDR_V1) & BIT_MASK_PMC_ADDR_V1)
#define BIT_SET_PMC_ADDR_V1(x, v)			(BIT_CLEAR_PMC_ADDR_V1(x) | BIT_PMC_ADDR_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WLRF1				(Offset 0x00EC) */


#define BIT_SHIFT_WLRF3_CTRL				8
#define BIT_MASK_WLRF3_CTRL				0xff
#define BIT_WLRF3_CTRL(x)				(((x) & BIT_MASK_WLRF3_CTRL) << BIT_SHIFT_WLRF3_CTRL)
#define BITS_WLRF3_CTRL				(BIT_MASK_WLRF3_CTRL << BIT_SHIFT_WLRF3_CTRL)
#define BIT_CLEAR_WLRF3_CTRL(x)			((x) & (~BITS_WLRF3_CTRL))
#define BIT_GET_WLRF3_CTRL(x)				(((x) >> BIT_SHIFT_WLRF3_CTRL) & BIT_MASK_WLRF3_CTRL)
#define BIT_SET_WLRF3_CTRL(x, v)			(BIT_CLEAR_WLRF3_CTRL(x) | BIT_WLRF3_CTRL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HPON_FSM				(Offset 0x00EC) */

#define BIT_PMC_COUNT_EN_V1				BIT(7)

#define BIT_SHIFT_FSM_STATE_V1				0
#define BIT_MASK_FSM_STATE_V1				0x7f
#define BIT_FSM_STATE_V1(x)				(((x) & BIT_MASK_FSM_STATE_V1) << BIT_SHIFT_FSM_STATE_V1)
#define BITS_FSM_STATE_V1				(BIT_MASK_FSM_STATE_V1 << BIT_SHIFT_FSM_STATE_V1)
#define BIT_CLEAR_FSM_STATE_V1(x)			((x) & (~BITS_FSM_STATE_V1))
#define BIT_GET_FSM_STATE_V1(x)			(((x) >> BIT_SHIFT_FSM_STATE_V1) & BIT_MASK_FSM_STATE_V1)
#define BIT_SET_FSM_STATE_V1(x, v)			(BIT_CLEAR_FSM_STATE_V1(x) | BIT_FSM_STATE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_TRP_ICFG				28
#define BIT_MASK_TRP_ICFG				0xf
#define BIT_TRP_ICFG(x)				(((x) & BIT_MASK_TRP_ICFG) << BIT_SHIFT_TRP_ICFG)
#define BITS_TRP_ICFG					(BIT_MASK_TRP_ICFG << BIT_SHIFT_TRP_ICFG)
#define BIT_CLEAR_TRP_ICFG(x)				((x) & (~BITS_TRP_ICFG))
#define BIT_GET_TRP_ICFG(x)				(((x) >> BIT_SHIFT_TRP_ICFG) & BIT_MASK_TRP_ICFG)
#define BIT_SET_TRP_ICFG(x, v)				(BIT_CLEAR_TRP_ICFG(x) | BIT_TRP_ICFG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_RF_TYPE_ID					BIT(27)
#define BIT_BD_HCI_SEL					BIT(26)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_BD_HCI_SEL_V1			26
#define BIT_MASK_BD_HCI_SEL_V1				0x3
#define BIT_BD_HCI_SEL_V1(x)				(((x) & BIT_MASK_BD_HCI_SEL_V1) << BIT_SHIFT_BD_HCI_SEL_V1)
#define BITS_BD_HCI_SEL_V1				(BIT_MASK_BD_HCI_SEL_V1 << BIT_SHIFT_BD_HCI_SEL_V1)
#define BIT_CLEAR_BD_HCI_SEL_V1(x)			((x) & (~BITS_BD_HCI_SEL_V1))
#define BIT_GET_BD_HCI_SEL_V1(x)			(((x) >> BIT_SHIFT_BD_HCI_SEL_V1) & BIT_MASK_BD_HCI_SEL_V1)
#define BIT_SET_BD_HCI_SEL_V1(x, v)			(BIT_CLEAR_BD_HCI_SEL_V1(x) | BIT_BD_HCI_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_BD_PKG_SEL					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_SPSLDO_SEL					BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_LDO_SPS_SEL				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_RTL_ID					BIT(23)
#define BIT_PAD_HWPD_IDN				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_TESTMODE					BIT(20)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_PSC_TESTCFG				20
#define BIT_MASK_PSC_TESTCFG				0x3
#define BIT_PSC_TESTCFG(x)				(((x) & BIT_MASK_PSC_TESTCFG) << BIT_SHIFT_PSC_TESTCFG)
#define BITS_PSC_TESTCFG				(BIT_MASK_PSC_TESTCFG << BIT_SHIFT_PSC_TESTCFG)
#define BIT_CLEAR_PSC_TESTCFG(x)			((x) & (~BITS_PSC_TESTCFG))
#define BIT_GET_PSC_TESTCFG(x)				(((x) >> BIT_SHIFT_PSC_TESTCFG) & BIT_MASK_PSC_TESTCFG)
#define BIT_SET_PSC_TESTCFG(x, v)			(BIT_CLEAR_PSC_TESTCFG(x) | BIT_PSC_TESTCFG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_VENDOR_ID				16
#define BIT_MASK_VENDOR_ID				0xf
#define BIT_VENDOR_ID(x)				(((x) & BIT_MASK_VENDOR_ID) << BIT_SHIFT_VENDOR_ID)
#define BITS_VENDOR_ID					(BIT_MASK_VENDOR_ID << BIT_SHIFT_VENDOR_ID)
#define BIT_CLEAR_VENDOR_ID(x)				((x) & (~BITS_VENDOR_ID))
#define BIT_GET_VENDOR_ID(x)				(((x) >> BIT_SHIFT_VENDOR_ID) & BIT_MASK_VENDOR_ID)
#define BIT_SET_VENDOR_ID(x, v)			(BIT_CLEAR_VENDOR_ID(x) | BIT_VENDOR_ID(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_CHIP_VER_V2				16
#define BIT_MASK_CHIP_VER_V2				0xf
#define BIT_CHIP_VER_V2(x)				(((x) & BIT_MASK_CHIP_VER_V2) << BIT_SHIFT_CHIP_VER_V2)
#define BITS_CHIP_VER_V2				(BIT_MASK_CHIP_VER_V2 << BIT_SHIFT_CHIP_VER_V2)
#define BIT_CLEAR_CHIP_VER_V2(x)			((x) & (~BITS_CHIP_VER_V2))
#define BIT_GET_CHIP_VER_V2(x)				(((x) >> BIT_SHIFT_CHIP_VER_V2) & BIT_MASK_CHIP_VER_V2)
#define BIT_SET_CHIP_VER_V2(x, v)			(BIT_CLEAR_CHIP_VER_V2(x) | BIT_CHIP_VER_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */


#define BIT_SHIFT_CHIP_VER				12
#define BIT_MASK_CHIP_VER				0xf
#define BIT_CHIP_VER(x)				(((x) & BIT_MASK_CHIP_VER) << BIT_SHIFT_CHIP_VER)
#define BITS_CHIP_VER					(BIT_MASK_CHIP_VER << BIT_SHIFT_CHIP_VER)
#define BIT_CLEAR_CHIP_VER(x)				((x) & (~BITS_CHIP_VER))
#define BIT_GET_CHIP_VER(x)				(((x) >> BIT_SHIFT_CHIP_VER) & BIT_MASK_CHIP_VER)
#define BIT_SET_CHIP_VER(x, v)				(BIT_CLEAR_CHIP_VER(x) | BIT_CHIP_VER(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_IC_MACPHY_MODE				BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_BD_MAC3					BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_BD_MAC1					BIT(10)
#define BIT_BD_MAC2					BIT(9)
#define BIT_SIC_IDLE					BIT(8)
#define BIT_SW_OFFLOAD_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_OCP_SHUTDN					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_OCP_SHUTDN_1				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_V15_VLD					BIT(5)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_V12_VLD					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_PCIRSTB					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_PCLK_VLD					BIT(3)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_PCLK_VLD_1					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_UCLK_VLD					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_ACLK_VLD					BIT(1)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_M200CLK_VLD_V1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG1				(Offset 0x00F0) */

#define BIT_XCLK_VLD					BIT(0)

/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_RF_RL_ID				28
#define BIT_MASK_RF_RL_ID				0xf
#define BIT_RF_RL_ID(x)				(((x) & BIT_MASK_RF_RL_ID) << BIT_SHIFT_RF_RL_ID)
#define BITS_RF_RL_ID					(BIT_MASK_RF_RL_ID << BIT_SHIFT_RF_RL_ID)
#define BIT_CLEAR_RF_RL_ID(x)				((x) & (~BITS_RF_RL_ID))
#define BIT_GET_RF_RL_ID(x)				(((x) >> BIT_SHIFT_RF_RL_ID) & BIT_MASK_RF_RL_ID)
#define BIT_SET_RF_RL_ID(x, v)				(BIT_CLEAR_RF_RL_ID(x) | BIT_RF_RL_ID(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_U3_CLK_VLD					BIT(27)
#define BIT_PRST_VLD_V1				BIT(26)
#define BIT_PDN					BIT(25)
#define BIT_OCP_SHUTDN_V1				BIT(24)
#define BIT_PCLK_VLD_V1				BIT(23)
#define BIT_U2_CLK_VLD					BIT(22)
#define BIT_PLL_CLK_VLD				BIT(21)
#define BIT_XCK_VLD					BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_HPHY_ICFG					BIT(19)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_CK200M_VLD					BIT(19)
#define BIT_BTEN_TRAP					BIT(18)
#define BIT_PKG_EN_V1					BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_SEL_0XC0				16
#define BIT_MASK_SEL_0XC0				0x3
#define BIT_SEL_0XC0(x)				(((x) & BIT_MASK_SEL_0XC0) << BIT_SHIFT_SEL_0XC0)
#define BITS_SEL_0XC0					(BIT_MASK_SEL_0XC0 << BIT_SHIFT_SEL_0XC0)
#define BIT_CLEAR_SEL_0XC0(x)				((x) & (~BITS_SEL_0XC0))
#define BIT_GET_SEL_0XC0(x)				(((x) >> BIT_SHIFT_SEL_0XC0) & BIT_MASK_SEL_0XC0)
#define BIT_SET_SEL_0XC0(x, v)				(BIT_CLEAR_SEL_0XC0(x) | BIT_SEL_0XC0(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_TRAP_LDO_SPS_V1				BIT(16)
#define BIT_MACRDY					BIT(15)
#define BIT_12V_VLD					BIT(14)
#define BIT_U3PHY_RST					BIT(13)
#define BIT_USB2_SEL_V1				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_HCI_SEL_V4				12
#define BIT_MASK_HCI_SEL_V4				0x3
#define BIT_HCI_SEL_V4(x)				(((x) & BIT_MASK_HCI_SEL_V4) << BIT_SHIFT_HCI_SEL_V4)
#define BITS_HCI_SEL_V4				(BIT_MASK_HCI_SEL_V4 << BIT_SHIFT_HCI_SEL_V4)
#define BIT_CLEAR_HCI_SEL_V4(x)			((x) & (~BITS_HCI_SEL_V4))
#define BIT_GET_HCI_SEL_V4(x)				(((x) >> BIT_SHIFT_HCI_SEL_V4) & BIT_MASK_HCI_SEL_V4)
#define BIT_SET_HCI_SEL_V4(x, v)			(BIT_CLEAR_HCI_SEL_V4(x) | BIT_HCI_SEL_V4(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_HCI_SEL_V3				12
#define BIT_MASK_HCI_SEL_V3				0x7
#define BIT_HCI_SEL_V3(x)				(((x) & BIT_MASK_HCI_SEL_V3) << BIT_SHIFT_HCI_SEL_V3)
#define BITS_HCI_SEL_V3				(BIT_MASK_HCI_SEL_V3 << BIT_SHIFT_HCI_SEL_V3)
#define BIT_CLEAR_HCI_SEL_V3(x)			((x) & (~BITS_HCI_SEL_V3))
#define BIT_GET_HCI_SEL_V3(x)				(((x) >> BIT_SHIFT_HCI_SEL_V3) & BIT_MASK_HCI_SEL_V3)
#define BIT_SET_HCI_SEL_V3(x, v)			(BIT_CLEAR_HCI_SEL_V3(x) | BIT_HCI_SEL_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_USB_OPERATION_MODE				BIT(10)
#define BIT_BT_PDN					BIT(9)
#define BIT_AUTO_WLPON					BIT(8)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_TRAP_ICFG				8
#define BIT_MASK_TRAP_ICFG				0xf
#define BIT_TRAP_ICFG(x)				(((x) & BIT_MASK_TRAP_ICFG) << BIT_SHIFT_TRAP_ICFG)
#define BITS_TRAP_ICFG					(BIT_MASK_TRAP_ICFG << BIT_SHIFT_TRAP_ICFG)
#define BIT_CLEAR_TRAP_ICFG(x)				((x) & (~BITS_TRAP_ICFG))
#define BIT_GET_TRAP_ICFG(x)				(((x) >> BIT_SHIFT_TRAP_ICFG) & BIT_MASK_TRAP_ICFG)
#define BIT_SET_TRAP_ICFG(x, v)			(BIT_CLEAR_TRAP_ICFG(x) | BIT_TRAP_ICFG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_WL_MODE					BIT(7)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_WLAN_ID					BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_PKG_SEL_HCI				BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_ALDN					BIT(6)
#define BIT_BTCOEX_CMDEN				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_HCI_SEL				4
#define BIT_MASK_HCI_SEL				0x3
#define BIT_HCI_SEL(x)					(((x) & BIT_MASK_HCI_SEL) << BIT_SHIFT_HCI_SEL)
#define BITS_HCI_SEL					(BIT_MASK_HCI_SEL << BIT_SHIFT_HCI_SEL)
#define BIT_CLEAR_HCI_SEL(x)				((x) & (~BITS_HCI_SEL))
#define BIT_GET_HCI_SEL(x)				(((x) >> BIT_SHIFT_HCI_SEL) & BIT_MASK_HCI_SEL)
#define BIT_SET_HCI_SEL(x, v)				(BIT_CLEAR_HCI_SEL(x) | BIT_HCI_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_BT_EN					BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_PAD_HCI_SEL_V2			3
#define BIT_MASK_PAD_HCI_SEL_V2			0x3
#define BIT_PAD_HCI_SEL_V2(x)				(((x) & BIT_MASK_PAD_HCI_SEL_V2) << BIT_SHIFT_PAD_HCI_SEL_V2)
#define BITS_PAD_HCI_SEL_V2				(BIT_MASK_PAD_HCI_SEL_V2 << BIT_SHIFT_PAD_HCI_SEL_V2)
#define BIT_CLEAR_PAD_HCI_SEL_V2(x)			((x) & (~BITS_PAD_HCI_SEL_V2))
#define BIT_GET_PAD_HCI_SEL_V2(x)			(((x) >> BIT_SHIFT_PAD_HCI_SEL_V2) & BIT_MASK_PAD_HCI_SEL_V2)
#define BIT_SET_PAD_HCI_SEL_V2(x, v)			(BIT_CLEAR_PAD_HCI_SEL_V2(x) | BIT_PAD_HCI_SEL_V2(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_PAD_HCI_SEL_V1			3
#define BIT_MASK_PAD_HCI_SEL_V1			0x7
#define BIT_PAD_HCI_SEL_V1(x)				(((x) & BIT_MASK_PAD_HCI_SEL_V1) << BIT_SHIFT_PAD_HCI_SEL_V1)
#define BITS_PAD_HCI_SEL_V1				(BIT_MASK_PAD_HCI_SEL_V1 << BIT_SHIFT_PAD_HCI_SEL_V1)
#define BIT_CLEAR_PAD_HCI_SEL_V1(x)			((x) & (~BITS_PAD_HCI_SEL_V1))
#define BIT_GET_PAD_HCI_SEL_V1(x)			(((x) >> BIT_SHIFT_PAD_HCI_SEL_V1) & BIT_MASK_PAD_HCI_SEL_V1)
#define BIT_SET_PAD_HCI_SEL_V1(x, v)			(BIT_CLEAR_PAD_HCI_SEL_V1(x) | BIT_PAD_HCI_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_PAD_HCI_SEL				2
#define BIT_MASK_PAD_HCI_SEL				0x3
#define BIT_PAD_HCI_SEL(x)				(((x) & BIT_MASK_PAD_HCI_SEL) << BIT_SHIFT_PAD_HCI_SEL)
#define BITS_PAD_HCI_SEL				(BIT_MASK_PAD_HCI_SEL << BIT_SHIFT_PAD_HCI_SEL)
#define BIT_CLEAR_PAD_HCI_SEL(x)			((x) & (~BITS_PAD_HCI_SEL))
#define BIT_GET_PAD_HCI_SEL(x)				(((x) >> BIT_SHIFT_PAD_HCI_SEL) & BIT_MASK_PAD_HCI_SEL)
#define BIT_SET_PAD_HCI_SEL(x, v)			(BIT_CLEAR_PAD_HCI_SEL(x) | BIT_PAD_HCI_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_HCI_SEL_V2				2
#define BIT_MASK_HCI_SEL_V2				0x3
#define BIT_HCI_SEL_V2(x)				(((x) & BIT_MASK_HCI_SEL_V2) << BIT_SHIFT_HCI_SEL_V2)
#define BITS_HCI_SEL_V2				(BIT_MASK_HCI_SEL_V2 << BIT_SHIFT_HCI_SEL_V2)
#define BIT_CLEAR_HCI_SEL_V2(x)			((x) & (~BITS_HCI_SEL_V2))
#define BIT_GET_HCI_SEL_V2(x)				(((x) >> BIT_SHIFT_HCI_SEL_V2) & BIT_MASK_HCI_SEL_V2)
#define BIT_SET_HCI_SEL_V2(x, v)			(BIT_CLEAR_HCI_SEL_V2(x) | BIT_HCI_SEL_V2(v))

#define BIT_TST_MOD_SEL				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_EFS_HCI_SEL				0
#define BIT_MASK_EFS_HCI_SEL				0x3
#define BIT_EFS_HCI_SEL(x)				(((x) & BIT_MASK_EFS_HCI_SEL) << BIT_SHIFT_EFS_HCI_SEL)
#define BITS_EFS_HCI_SEL				(BIT_MASK_EFS_HCI_SEL << BIT_SHIFT_EFS_HCI_SEL)
#define BIT_CLEAR_EFS_HCI_SEL(x)			((x) & (~BITS_EFS_HCI_SEL))
#define BIT_GET_EFS_HCI_SEL(x)				(((x) >> BIT_SHIFT_EFS_HCI_SEL) & BIT_MASK_EFS_HCI_SEL)
#define BIT_SET_EFS_HCI_SEL(x, v)			(BIT_CLEAR_EFS_HCI_SEL(x) | BIT_EFS_HCI_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */

#define BIT_PAD_HWPDB					BIT(0)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_STATUS1				(Offset 0x00F4) */


#define BIT_SHIFT_EFS_HCI_SEL_V1			0
#define BIT_MASK_EFS_HCI_SEL_V1			0x7
#define BIT_EFS_HCI_SEL_V1(x)				(((x) & BIT_MASK_EFS_HCI_SEL_V1) << BIT_SHIFT_EFS_HCI_SEL_V1)
#define BITS_EFS_HCI_SEL_V1				(BIT_MASK_EFS_HCI_SEL_V1 << BIT_SHIFT_EFS_HCI_SEL_V1)
#define BIT_CLEAR_EFS_HCI_SEL_V1(x)			((x) & (~BITS_EFS_HCI_SEL_V1))
#define BIT_GET_EFS_HCI_SEL_V1(x)			(((x) >> BIT_SHIFT_EFS_HCI_SEL_V1) & BIT_MASK_EFS_HCI_SEL_V1)
#define BIT_SET_EFS_HCI_SEL_V1(x, v)			(BIT_CLEAR_EFS_HCI_SEL_V1(x) | BIT_EFS_HCI_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_STATUS2				(Offset 0x00F8) */

#define BIT_SIO_ALDN					BIT(19)
#define BIT_USB_ALDN					BIT(18)
#define BIT_PCI_ALDN					BIT(17)
#define BIT_SYS_ALDN					BIT(16)

#define BIT_SHIFT_EPVID1				8
#define BIT_MASK_EPVID1				0xff
#define BIT_EPVID1(x)					(((x) & BIT_MASK_EPVID1) << BIT_SHIFT_EPVID1)
#define BITS_EPVID1					(BIT_MASK_EPVID1 << BIT_SHIFT_EPVID1)
#define BIT_CLEAR_EPVID1(x)				((x) & (~BITS_EPVID1))
#define BIT_GET_EPVID1(x)				(((x) >> BIT_SHIFT_EPVID1) & BIT_MASK_EPVID1)
#define BIT_SET_EPVID1(x, v)				(BIT_CLEAR_EPVID1(x) | BIT_EPVID1(v))


#define BIT_SHIFT_EPVID0				0
#define BIT_MASK_EPVID0				0xff
#define BIT_EPVID0(x)					(((x) & BIT_MASK_EPVID0) << BIT_SHIFT_EPVID0)
#define BITS_EPVID0					(BIT_MASK_EPVID0 << BIT_SHIFT_EPVID0)
#define BIT_CLEAR_EPVID0(x)				((x) & (~BITS_EPVID0))
#define BIT_GET_EPVID0(x)				(((x) >> BIT_SHIFT_EPVID0) & BIT_MASK_EPVID0)
#define BIT_SET_EPVID0(x, v)				(BIT_CLEAR_EPVID0(x) | BIT_EPVID0(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_USB2_SEL_1					BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_USB2_SEL					BIT(31)
#define BIT_FEN_WLMAC_OFF				BIT(31)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_USB3PHY_RST				BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_U3PHY_RST_V1				BIT(30)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_U3_TERM_DET				BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_U3_TERM_DETECT				BIT(29)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_USB23_DBG_SEL				BIT(24)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_HCI_SEL_EMBEDDED				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */

#define BIT_ISO_BB2PP					BIT(7)
#define BIT_ISO_DENG2PP				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */


#define BIT_SHIFT_HW_ID				0
#define BIT_MASK_HW_ID					0xff
#define BIT_HW_ID(x)					(((x) & BIT_MASK_HW_ID) << BIT_SHIFT_HW_ID)
#define BITS_HW_ID					(BIT_MASK_HW_ID << BIT_SHIFT_HW_ID)
#define BIT_CLEAR_HW_ID(x)				((x) & (~BITS_HW_ID))
#define BIT_GET_HW_ID(x)				(((x) >> BIT_SHIFT_HW_ID) & BIT_MASK_HW_ID)
#define BIT_SET_HW_ID(x, v)				(BIT_CLEAR_HW_ID(x) | BIT_HW_ID(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG2				(Offset 0x00FC) */


#define BIT_SHIFT_CHIPID				0
#define BIT_MASK_CHIPID				0xff
#define BIT_CHIPID(x)					(((x) & BIT_MASK_CHIPID) << BIT_SHIFT_CHIPID)
#define BITS_CHIPID					(BIT_MASK_CHIPID << BIT_SHIFT_CHIPID)
#define BIT_CLEAR_CHIPID(x)				((x) & (~BITS_CHIPID))
#define BIT_GET_CHIPID(x)				(((x) >> BIT_SHIFT_CHIPID) & BIT_MASK_CHIPID)
#define BIT_SET_CHIPID(x, v)				(BIT_CLEAR_CHIPID(x) | BIT_CHIPID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_MACIO_TIMEOUT_EN				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */


#define BIT_SHIFT_LBMODE				24
#define BIT_MASK_LBMODE				0x1f
#define BIT_LBMODE(x)					(((x) & BIT_MASK_LBMODE) << BIT_SHIFT_LBMODE)
#define BITS_LBMODE					(BIT_MASK_LBMODE << BIT_SHIFT_LBMODE)
#define BIT_CLEAR_LBMODE(x)				((x) & (~BITS_LBMODE))
#define BIT_GET_LBMODE(x)				(((x) >> BIT_SHIFT_LBMODE) & BIT_MASK_LBMODE)
#define BIT_SET_LBMODE(x, v)				(BIT_CLEAR_LBMODE(x) | BIT_LBMODE(v))


#define BIT_SHIFT_NETYPE1				18
#define BIT_MASK_NETYPE1				0x3
#define BIT_NETYPE1(x)					(((x) & BIT_MASK_NETYPE1) << BIT_SHIFT_NETYPE1)
#define BITS_NETYPE1					(BIT_MASK_NETYPE1 << BIT_SHIFT_NETYPE1)
#define BIT_CLEAR_NETYPE1(x)				((x) & (~BITS_NETYPE1))
#define BIT_GET_NETYPE1(x)				(((x) >> BIT_SHIFT_NETYPE1) & BIT_MASK_NETYPE1)
#define BIT_SET_NETYPE1(x, v)				(BIT_CLEAR_NETYPE1(x) | BIT_NETYPE1(v))


#define BIT_SHIFT_NETYPE0				16
#define BIT_MASK_NETYPE0				0x3
#define BIT_NETYPE0(x)					(((x) & BIT_MASK_NETYPE0) << BIT_SHIFT_NETYPE0)
#define BITS_NETYPE0					(BIT_MASK_NETYPE0 << BIT_SHIFT_NETYPE0)
#define BIT_CLEAR_NETYPE0(x)				((x) & (~BITS_NETYPE0))
#define BIT_GET_NETYPE0(x)				(((x) >> BIT_SHIFT_NETYPE0) & BIT_MASK_NETYPE0)
#define BIT_SET_NETYPE0(x, v)				(BIT_CLEAR_NETYPE0(x) | BIT_NETYPE0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_STAT_FUNC_RST				BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_COUNTER_STS_EN				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_PTA_I2C_MBOX_EN				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_I2C_MAILBOX_EN				BIT(12)
#define BIT_SHCUT_EN					BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CR					(Offset 0x0100) */

#define BIT_32K_CAL_TMR_EN				BIT(10)
#define BIT_MAC_SEC_EN					BIT(9)
#define BIT_ENSWBCN					BIT(8)
#define BIT_MACRXEN					BIT(7)
#define BIT_MACTXEN					BIT(6)
#define BIT_SCHEDULE_EN				BIT(5)
#define BIT_PROTOCOL_EN				BIT(4)
#define BIT_RXDMA_EN					BIT(3)
#define BIT_TXDMA_EN					BIT(2)
#define BIT_HCI_RXDMA_EN				BIT(1)
#define BIT_HCI_TXDMA_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_PG_SIZE				(Offset 0x0104) */


#define BIT_SHIFT_DBG_FIFO_SEL				16
#define BIT_MASK_DBG_FIFO_SEL				0xff
#define BIT_DBG_FIFO_SEL(x)				(((x) & BIT_MASK_DBG_FIFO_SEL) << BIT_SHIFT_DBG_FIFO_SEL)
#define BITS_DBG_FIFO_SEL				(BIT_MASK_DBG_FIFO_SEL << BIT_SHIFT_DBG_FIFO_SEL)
#define BIT_CLEAR_DBG_FIFO_SEL(x)			((x) & (~BITS_DBG_FIFO_SEL))
#define BIT_GET_DBG_FIFO_SEL(x)			(((x) >> BIT_SHIFT_DBG_FIFO_SEL) & BIT_MASK_DBG_FIFO_SEL)
#define BIT_SET_DBG_FIFO_SEL(x, v)			(BIT_CLEAR_DBG_FIFO_SEL(x) | BIT_DBG_FIFO_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKT_BUFF_ACCESS_CTRL		(Offset 0x0106) */


#define BIT_SHIFT_PKT_BUFF_ACCESS_CTRL			0
#define BIT_MASK_PKT_BUFF_ACCESS_CTRL			0xff
#define BIT_PKT_BUFF_ACCESS_CTRL(x)			(((x) & BIT_MASK_PKT_BUFF_ACCESS_CTRL) << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL)
#define BITS_PKT_BUFF_ACCESS_CTRL			(BIT_MASK_PKT_BUFF_ACCESS_CTRL << BIT_SHIFT_PKT_BUFF_ACCESS_CTRL)
#define BIT_CLEAR_PKT_BUFF_ACCESS_CTRL(x)		((x) & (~BITS_PKT_BUFF_ACCESS_CTRL))
#define BIT_GET_PKT_BUFF_ACCESS_CTRL(x)		(((x) >> BIT_SHIFT_PKT_BUFF_ACCESS_CTRL) & BIT_MASK_PKT_BUFF_ACCESS_CTRL)
#define BIT_SET_PKT_BUFF_ACCESS_CTRL(x, v)		(BIT_CLEAR_PKT_BUFF_ACCESS_CTRL(x) | BIT_PKT_BUFF_ACCESS_CTRL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSF_CLK_STATE			(Offset 0x0108) */

#define BIT_TSF_CLK_IDX				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TSF_CLK_STATE			(Offset 0x0108) */

#define BIT_TSF_CLK_STABLE				BIT(15)

#define BIT_SHIFT_I2C_M_BUS_GNT_FW			4
#define BIT_MASK_I2C_M_BUS_GNT_FW			0x7
#define BIT_I2C_M_BUS_GNT_FW(x)			(((x) & BIT_MASK_I2C_M_BUS_GNT_FW) << BIT_SHIFT_I2C_M_BUS_GNT_FW)
#define BITS_I2C_M_BUS_GNT_FW				(BIT_MASK_I2C_M_BUS_GNT_FW << BIT_SHIFT_I2C_M_BUS_GNT_FW)
#define BIT_CLEAR_I2C_M_BUS_GNT_FW(x)			((x) & (~BITS_I2C_M_BUS_GNT_FW))
#define BIT_GET_I2C_M_BUS_GNT_FW(x)			(((x) >> BIT_SHIFT_I2C_M_BUS_GNT_FW) & BIT_MASK_I2C_M_BUS_GNT_FW)
#define BIT_SET_I2C_M_BUS_GNT_FW(x, v)			(BIT_CLEAR_I2C_M_BUS_GNT_FW(x) | BIT_I2C_M_BUS_GNT_FW(v))

#define BIT_I2C_M_GNT_FW				BIT(3)

#define BIT_SHIFT_I2C_M_SPEED				1
#define BIT_MASK_I2C_M_SPEED				0x3
#define BIT_I2C_M_SPEED(x)				(((x) & BIT_MASK_I2C_M_SPEED) << BIT_SHIFT_I2C_M_SPEED)
#define BITS_I2C_M_SPEED				(BIT_MASK_I2C_M_SPEED << BIT_SHIFT_I2C_M_SPEED)
#define BIT_CLEAR_I2C_M_SPEED(x)			((x) & (~BITS_I2C_M_SPEED))
#define BIT_GET_I2C_M_SPEED(x)				(((x) >> BIT_SHIFT_I2C_M_SPEED) & BIT_MASK_I2C_M_SPEED)
#define BIT_SET_I2C_M_SPEED(x, v)			(BIT_CLEAR_I2C_M_SPEED(x) | BIT_I2C_M_SPEED(v))

#define BIT_I2C_M_UNLOCK				BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_HIQ_MAP_V1			19
#define BIT_MASK_TXDMA_HIQ_MAP_V1			0x7
#define BIT_TXDMA_HIQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_HIQ_MAP_V1) << BIT_SHIFT_TXDMA_HIQ_MAP_V1)
#define BITS_TXDMA_HIQ_MAP_V1				(BIT_MASK_TXDMA_HIQ_MAP_V1 << BIT_SHIFT_TXDMA_HIQ_MAP_V1)
#define BIT_CLEAR_TXDMA_HIQ_MAP_V1(x)			((x) & (~BITS_TXDMA_HIQ_MAP_V1))
#define BIT_GET_TXDMA_HIQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_HIQ_MAP_V1) & BIT_MASK_TXDMA_HIQ_MAP_V1)
#define BIT_SET_TXDMA_HIQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_HIQ_MAP_V1(x) | BIT_TXDMA_HIQ_MAP_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_CMQ_MAP			16
#define BIT_MASK_TXDMA_CMQ_MAP				0x3
#define BIT_TXDMA_CMQ_MAP(x)				(((x) & BIT_MASK_TXDMA_CMQ_MAP) << BIT_SHIFT_TXDMA_CMQ_MAP)
#define BITS_TXDMA_CMQ_MAP				(BIT_MASK_TXDMA_CMQ_MAP << BIT_SHIFT_TXDMA_CMQ_MAP)
#define BIT_CLEAR_TXDMA_CMQ_MAP(x)			((x) & (~BITS_TXDMA_CMQ_MAP))
#define BIT_GET_TXDMA_CMQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_CMQ_MAP) & BIT_MASK_TXDMA_CMQ_MAP)
#define BIT_SET_TXDMA_CMQ_MAP(x, v)			(BIT_CLEAR_TXDMA_CMQ_MAP(x) | BIT_TXDMA_CMQ_MAP(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_MGQ_MAP_V1			16
#define BIT_MASK_TXDMA_MGQ_MAP_V1			0x7
#define BIT_TXDMA_MGQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_MGQ_MAP_V1) << BIT_SHIFT_TXDMA_MGQ_MAP_V1)
#define BITS_TXDMA_MGQ_MAP_V1				(BIT_MASK_TXDMA_MGQ_MAP_V1 << BIT_SHIFT_TXDMA_MGQ_MAP_V1)
#define BIT_CLEAR_TXDMA_MGQ_MAP_V1(x)			((x) & (~BITS_TXDMA_MGQ_MAP_V1))
#define BIT_GET_TXDMA_MGQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_MGQ_MAP_V1) & BIT_MASK_TXDMA_MGQ_MAP_V1)
#define BIT_SET_TXDMA_MGQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_MGQ_MAP_V1(x) | BIT_TXDMA_MGQ_MAP_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_H2C_MAP			16
#define BIT_MASK_TXDMA_H2C_MAP				0x3
#define BIT_TXDMA_H2C_MAP(x)				(((x) & BIT_MASK_TXDMA_H2C_MAP) << BIT_SHIFT_TXDMA_H2C_MAP)
#define BITS_TXDMA_H2C_MAP				(BIT_MASK_TXDMA_H2C_MAP << BIT_SHIFT_TXDMA_H2C_MAP)
#define BIT_CLEAR_TXDMA_H2C_MAP(x)			((x) & (~BITS_TXDMA_H2C_MAP))
#define BIT_GET_TXDMA_H2C_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_H2C_MAP) & BIT_MASK_TXDMA_H2C_MAP)
#define BIT_SET_TXDMA_H2C_MAP(x, v)			(BIT_CLEAR_TXDMA_H2C_MAP(x) | BIT_TXDMA_H2C_MAP(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_HIQ_MAP			14
#define BIT_MASK_TXDMA_HIQ_MAP				0x3
#define BIT_TXDMA_HIQ_MAP(x)				(((x) & BIT_MASK_TXDMA_HIQ_MAP) << BIT_SHIFT_TXDMA_HIQ_MAP)
#define BITS_TXDMA_HIQ_MAP				(BIT_MASK_TXDMA_HIQ_MAP << BIT_SHIFT_TXDMA_HIQ_MAP)
#define BIT_CLEAR_TXDMA_HIQ_MAP(x)			((x) & (~BITS_TXDMA_HIQ_MAP))
#define BIT_GET_TXDMA_HIQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_HIQ_MAP) & BIT_MASK_TXDMA_HIQ_MAP)
#define BIT_SET_TXDMA_HIQ_MAP(x, v)			(BIT_CLEAR_TXDMA_HIQ_MAP(x) | BIT_TXDMA_HIQ_MAP(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_BKQ_MAP_V1			13
#define BIT_MASK_TXDMA_BKQ_MAP_V1			0x7
#define BIT_TXDMA_BKQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_BKQ_MAP_V1) << BIT_SHIFT_TXDMA_BKQ_MAP_V1)
#define BITS_TXDMA_BKQ_MAP_V1				(BIT_MASK_TXDMA_BKQ_MAP_V1 << BIT_SHIFT_TXDMA_BKQ_MAP_V1)
#define BIT_CLEAR_TXDMA_BKQ_MAP_V1(x)			((x) & (~BITS_TXDMA_BKQ_MAP_V1))
#define BIT_GET_TXDMA_BKQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_BKQ_MAP_V1) & BIT_MASK_TXDMA_BKQ_MAP_V1)
#define BIT_SET_TXDMA_BKQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_BKQ_MAP_V1(x) | BIT_TXDMA_BKQ_MAP_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_MGQ_MAP			12
#define BIT_MASK_TXDMA_MGQ_MAP				0x3
#define BIT_TXDMA_MGQ_MAP(x)				(((x) & BIT_MASK_TXDMA_MGQ_MAP) << BIT_SHIFT_TXDMA_MGQ_MAP)
#define BITS_TXDMA_MGQ_MAP				(BIT_MASK_TXDMA_MGQ_MAP << BIT_SHIFT_TXDMA_MGQ_MAP)
#define BIT_CLEAR_TXDMA_MGQ_MAP(x)			((x) & (~BITS_TXDMA_MGQ_MAP))
#define BIT_GET_TXDMA_MGQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_MGQ_MAP) & BIT_MASK_TXDMA_MGQ_MAP)
#define BIT_SET_TXDMA_MGQ_MAP(x, v)			(BIT_CLEAR_TXDMA_MGQ_MAP(x) | BIT_TXDMA_MGQ_MAP(v))


#define BIT_SHIFT_TXDMA_BKQ_MAP			10
#define BIT_MASK_TXDMA_BKQ_MAP				0x3
#define BIT_TXDMA_BKQ_MAP(x)				(((x) & BIT_MASK_TXDMA_BKQ_MAP) << BIT_SHIFT_TXDMA_BKQ_MAP)
#define BITS_TXDMA_BKQ_MAP				(BIT_MASK_TXDMA_BKQ_MAP << BIT_SHIFT_TXDMA_BKQ_MAP)
#define BIT_CLEAR_TXDMA_BKQ_MAP(x)			((x) & (~BITS_TXDMA_BKQ_MAP))
#define BIT_GET_TXDMA_BKQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_BKQ_MAP) & BIT_MASK_TXDMA_BKQ_MAP)
#define BIT_SET_TXDMA_BKQ_MAP(x, v)			(BIT_CLEAR_TXDMA_BKQ_MAP(x) | BIT_TXDMA_BKQ_MAP(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_BEQ_MAP_V1			10
#define BIT_MASK_TXDMA_BEQ_MAP_V1			0x7
#define BIT_TXDMA_BEQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_BEQ_MAP_V1) << BIT_SHIFT_TXDMA_BEQ_MAP_V1)
#define BITS_TXDMA_BEQ_MAP_V1				(BIT_MASK_TXDMA_BEQ_MAP_V1 << BIT_SHIFT_TXDMA_BEQ_MAP_V1)
#define BIT_CLEAR_TXDMA_BEQ_MAP_V1(x)			((x) & (~BITS_TXDMA_BEQ_MAP_V1))
#define BIT_GET_TXDMA_BEQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_BEQ_MAP_V1) & BIT_MASK_TXDMA_BEQ_MAP_V1)
#define BIT_SET_TXDMA_BEQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_BEQ_MAP_V1(x) | BIT_TXDMA_BEQ_MAP_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_BEQ_MAP			8
#define BIT_MASK_TXDMA_BEQ_MAP				0x3
#define BIT_TXDMA_BEQ_MAP(x)				(((x) & BIT_MASK_TXDMA_BEQ_MAP) << BIT_SHIFT_TXDMA_BEQ_MAP)
#define BITS_TXDMA_BEQ_MAP				(BIT_MASK_TXDMA_BEQ_MAP << BIT_SHIFT_TXDMA_BEQ_MAP)
#define BIT_CLEAR_TXDMA_BEQ_MAP(x)			((x) & (~BITS_TXDMA_BEQ_MAP))
#define BIT_GET_TXDMA_BEQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_BEQ_MAP) & BIT_MASK_TXDMA_BEQ_MAP)
#define BIT_SET_TXDMA_BEQ_MAP(x, v)			(BIT_CLEAR_TXDMA_BEQ_MAP(x) | BIT_TXDMA_BEQ_MAP(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_VIQ_MAP_V1			7
#define BIT_MASK_TXDMA_VIQ_MAP_V1			0x7
#define BIT_TXDMA_VIQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_VIQ_MAP_V1) << BIT_SHIFT_TXDMA_VIQ_MAP_V1)
#define BITS_TXDMA_VIQ_MAP_V1				(BIT_MASK_TXDMA_VIQ_MAP_V1 << BIT_SHIFT_TXDMA_VIQ_MAP_V1)
#define BIT_CLEAR_TXDMA_VIQ_MAP_V1(x)			((x) & (~BITS_TXDMA_VIQ_MAP_V1))
#define BIT_GET_TXDMA_VIQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_VIQ_MAP_V1) & BIT_MASK_TXDMA_VIQ_MAP_V1)
#define BIT_SET_TXDMA_VIQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_VIQ_MAP_V1(x) | BIT_TXDMA_VIQ_MAP_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_VIQ_MAP			6
#define BIT_MASK_TXDMA_VIQ_MAP				0x3
#define BIT_TXDMA_VIQ_MAP(x)				(((x) & BIT_MASK_TXDMA_VIQ_MAP) << BIT_SHIFT_TXDMA_VIQ_MAP)
#define BITS_TXDMA_VIQ_MAP				(BIT_MASK_TXDMA_VIQ_MAP << BIT_SHIFT_TXDMA_VIQ_MAP)
#define BIT_CLEAR_TXDMA_VIQ_MAP(x)			((x) & (~BITS_TXDMA_VIQ_MAP))
#define BIT_GET_TXDMA_VIQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_VIQ_MAP) & BIT_MASK_TXDMA_VIQ_MAP)
#define BIT_SET_TXDMA_VIQ_MAP(x, v)			(BIT_CLEAR_TXDMA_VIQ_MAP(x) | BIT_TXDMA_VIQ_MAP(v))


#define BIT_SHIFT_TXDMA_VOQ_MAP			4
#define BIT_MASK_TXDMA_VOQ_MAP				0x3
#define BIT_TXDMA_VOQ_MAP(x)				(((x) & BIT_MASK_TXDMA_VOQ_MAP) << BIT_SHIFT_TXDMA_VOQ_MAP)
#define BITS_TXDMA_VOQ_MAP				(BIT_MASK_TXDMA_VOQ_MAP << BIT_SHIFT_TXDMA_VOQ_MAP)
#define BIT_CLEAR_TXDMA_VOQ_MAP(x)			((x) & (~BITS_TXDMA_VOQ_MAP))
#define BIT_GET_TXDMA_VOQ_MAP(x)			(((x) >> BIT_SHIFT_TXDMA_VOQ_MAP) & BIT_MASK_TXDMA_VOQ_MAP)
#define BIT_SET_TXDMA_VOQ_MAP(x, v)			(BIT_CLEAR_TXDMA_VOQ_MAP(x) | BIT_TXDMA_VOQ_MAP(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */


#define BIT_SHIFT_TXDMA_VOQ_MAP_V1			4
#define BIT_MASK_TXDMA_VOQ_MAP_V1			0x7
#define BIT_TXDMA_VOQ_MAP_V1(x)			(((x) & BIT_MASK_TXDMA_VOQ_MAP_V1) << BIT_SHIFT_TXDMA_VOQ_MAP_V1)
#define BITS_TXDMA_VOQ_MAP_V1				(BIT_MASK_TXDMA_VOQ_MAP_V1 << BIT_SHIFT_TXDMA_VOQ_MAP_V1)
#define BIT_CLEAR_TXDMA_VOQ_MAP_V1(x)			((x) & (~BITS_TXDMA_VOQ_MAP_V1))
#define BIT_GET_TXDMA_VOQ_MAP_V1(x)			(((x) >> BIT_SHIFT_TXDMA_VOQ_MAP_V1) & BIT_MASK_TXDMA_VOQ_MAP_V1)
#define BIT_SET_TXDMA_VOQ_MAP_V1(x, v)			(BIT_CLEAR_TXDMA_VOQ_MAP_V1(x) | BIT_TXDMA_VOQ_MAP_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_PQ_MAP			(Offset 0x010C) */

#define BIT_RXDMA_AGG_EN				BIT(2)
#define BIT_RXSHFT_EN					BIT(1)
#define BIT_RXDMA_ARBBW_EN				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFFOVFL_RSV_V1			28
#define BIT_MASK_RXFFOVFL_RSV_V1			0xf
#define BIT_RXFFOVFL_RSV_V1(x)				(((x) & BIT_MASK_RXFFOVFL_RSV_V1) << BIT_SHIFT_RXFFOVFL_RSV_V1)
#define BITS_RXFFOVFL_RSV_V1				(BIT_MASK_RXFFOVFL_RSV_V1 << BIT_SHIFT_RXFFOVFL_RSV_V1)
#define BIT_CLEAR_RXFFOVFL_RSV_V1(x)			((x) & (~BITS_RXFFOVFL_RSV_V1))
#define BIT_GET_RXFFOVFL_RSV_V1(x)			(((x) >> BIT_SHIFT_RXFFOVFL_RSV_V1) & BIT_MASK_RXFFOVFL_RSV_V1)
#define BIT_SET_RXFFOVFL_RSV_V1(x, v)			(BIT_CLEAR_RXFFOVFL_RSV_V1(x) | BIT_RXFFOVFL_RSV_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFF0_BNDY				16
#define BIT_MASK_RXFF0_BNDY				0xffff
#define BIT_RXFF0_BNDY(x)				(((x) & BIT_MASK_RXFF0_BNDY) << BIT_SHIFT_RXFF0_BNDY)
#define BITS_RXFF0_BNDY				(BIT_MASK_RXFF0_BNDY << BIT_SHIFT_RXFF0_BNDY)
#define BIT_CLEAR_RXFF0_BNDY(x)			((x) & (~BITS_RXFF0_BNDY))
#define BIT_GET_RXFF0_BNDY(x)				(((x) >> BIT_SHIFT_RXFF0_BNDY) & BIT_MASK_RXFF0_BNDY)
#define BIT_SET_RXFF0_BNDY(x, v)			(BIT_CLEAR_RXFF0_BNDY(x) | BIT_RXFF0_BNDY(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_FWFFOVFL_RSV				16
#define BIT_MASK_FWFFOVFL_RSV				0xf
#define BIT_FWFFOVFL_RSV(x)				(((x) & BIT_MASK_FWFFOVFL_RSV) << BIT_SHIFT_FWFFOVFL_RSV)
#define BITS_FWFFOVFL_RSV				(BIT_MASK_FWFFOVFL_RSV << BIT_SHIFT_FWFFOVFL_RSV)
#define BIT_CLEAR_FWFFOVFL_RSV(x)			((x) & (~BITS_FWFFOVFL_RSV))
#define BIT_GET_FWFFOVFL_RSV(x)			(((x) >> BIT_SHIFT_FWFFOVFL_RSV) & BIT_MASK_FWFFOVFL_RSV)
#define BIT_SET_FWFFOVFL_RSV(x, v)			(BIT_CLEAR_FWFFOVFL_RSV(x) | BIT_FWFFOVFL_RSV(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFFOVFL_RSV				8
#define BIT_MASK_RXFFOVFL_RSV				0xf
#define BIT_RXFFOVFL_RSV(x)				(((x) & BIT_MASK_RXFFOVFL_RSV) << BIT_SHIFT_RXFFOVFL_RSV)
#define BITS_RXFFOVFL_RSV				(BIT_MASK_RXFFOVFL_RSV << BIT_SHIFT_RXFFOVFL_RSV)
#define BIT_CLEAR_RXFFOVFL_RSV(x)			((x) & (~BITS_RXFFOVFL_RSV))
#define BIT_GET_RXFFOVFL_RSV(x)			(((x) >> BIT_SHIFT_RXFFOVFL_RSV) & BIT_MASK_RXFFOVFL_RSV)
#define BIT_SET_RXFFOVFL_RSV(x, v)			(BIT_CLEAR_RXFFOVFL_RSV(x) | BIT_RXFFOVFL_RSV(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFFOVFL_RSV_V2			8
#define BIT_MASK_RXFFOVFL_RSV_V2			0xf
#define BIT_RXFFOVFL_RSV_V2(x)				(((x) & BIT_MASK_RXFFOVFL_RSV_V2) << BIT_SHIFT_RXFFOVFL_RSV_V2)
#define BITS_RXFFOVFL_RSV_V2				(BIT_MASK_RXFFOVFL_RSV_V2 << BIT_SHIFT_RXFFOVFL_RSV_V2)
#define BIT_CLEAR_RXFFOVFL_RSV_V2(x)			((x) & (~BITS_RXFFOVFL_RSV_V2))
#define BIT_GET_RXFFOVFL_RSV_V2(x)			(((x) >> BIT_SHIFT_RXFFOVFL_RSV_V2) & BIT_MASK_RXFFOVFL_RSV_V2)
#define BIT_SET_RXFFOVFL_RSV_V2(x, v)			(BIT_CLEAR_RXFFOVFL_RSV_V2(x) | BIT_RXFFOVFL_RSV_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFF0_BNDY_V1			8
#define BIT_MASK_RXFF0_BNDY_V1				0x3ffff
#define BIT_RXFF0_BNDY_V1(x)				(((x) & BIT_MASK_RXFF0_BNDY_V1) << BIT_SHIFT_RXFF0_BNDY_V1)
#define BITS_RXFF0_BNDY_V1				(BIT_MASK_RXFF0_BNDY_V1 << BIT_SHIFT_RXFF0_BNDY_V1)
#define BIT_CLEAR_RXFF0_BNDY_V1(x)			((x) & (~BITS_RXFF0_BNDY_V1))
#define BIT_GET_RXFF0_BNDY_V1(x)			(((x) >> BIT_SHIFT_RXFF0_BNDY_V1) & BIT_MASK_RXFF0_BNDY_V1)
#define BIT_SET_RXFF0_BNDY_V1(x, v)			(BIT_CLEAR_RXFF0_BNDY_V1(x) | BIT_RXFF0_BNDY_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_TXPKTBUF_PGBNDY			0
#define BIT_MASK_TXPKTBUF_PGBNDY			0xff
#define BIT_TXPKTBUF_PGBNDY(x)				(((x) & BIT_MASK_TXPKTBUF_PGBNDY) << BIT_SHIFT_TXPKTBUF_PGBNDY)
#define BITS_TXPKTBUF_PGBNDY				(BIT_MASK_TXPKTBUF_PGBNDY << BIT_SHIFT_TXPKTBUF_PGBNDY)
#define BIT_CLEAR_TXPKTBUF_PGBNDY(x)			((x) & (~BITS_TXPKTBUF_PGBNDY))
#define BIT_GET_TXPKTBUF_PGBNDY(x)			(((x) >> BIT_SHIFT_TXPKTBUF_PGBNDY) & BIT_MASK_TXPKTBUF_PGBNDY)
#define BIT_SET_TXPKTBUF_PGBNDY(x, v)			(BIT_CLEAR_TXPKTBUF_PGBNDY(x) | BIT_TXPKTBUF_PGBNDY(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRXFF_BNDY				(Offset 0x0114) */


#define BIT_SHIFT_RXFF0_BNDY_V2			0
#define BIT_MASK_RXFF0_BNDY_V2				0x3ffff
#define BIT_RXFF0_BNDY_V2(x)				(((x) & BIT_MASK_RXFF0_BNDY_V2) << BIT_SHIFT_RXFF0_BNDY_V2)
#define BITS_RXFF0_BNDY_V2				(BIT_MASK_RXFF0_BNDY_V2 << BIT_SHIFT_RXFF0_BNDY_V2)
#define BIT_CLEAR_RXFF0_BNDY_V2(x)			((x) & (~BITS_RXFF0_BNDY_V2))
#define BIT_GET_RXFF0_BNDY_V2(x)			(((x) >> BIT_SHIFT_RXFF0_BNDY_V2) & BIT_MASK_RXFF0_BNDY_V2)
#define BIT_SET_RXFF0_BNDY_V2(x, v)			(BIT_CLEAR_RXFF0_BNDY_V2(x) | BIT_RXFF0_BNDY_V2(v))


#define BIT_SHIFT_RXFF0_RDPTR_V2			0
#define BIT_MASK_RXFF0_RDPTR_V2			0x3ffff
#define BIT_RXFF0_RDPTR_V2(x)				(((x) & BIT_MASK_RXFF0_RDPTR_V2) << BIT_SHIFT_RXFF0_RDPTR_V2)
#define BITS_RXFF0_RDPTR_V2				(BIT_MASK_RXFF0_RDPTR_V2 << BIT_SHIFT_RXFF0_RDPTR_V2)
#define BIT_CLEAR_RXFF0_RDPTR_V2(x)			((x) & (~BITS_RXFF0_RDPTR_V2))
#define BIT_GET_RXFF0_RDPTR_V2(x)			(((x) >> BIT_SHIFT_RXFF0_RDPTR_V2) & BIT_MASK_RXFF0_RDPTR_V2)
#define BIT_SET_RXFF0_RDPTR_V2(x, v)			(BIT_CLEAR_RXFF0_RDPTR_V2(x) | BIT_RXFF0_RDPTR_V2(v))


#define BIT_SHIFT_RXFF0_WTPTR_V2			0
#define BIT_MASK_RXFF0_WTPTR_V2			0x3ffff
#define BIT_RXFF0_WTPTR_V2(x)				(((x) & BIT_MASK_RXFF0_WTPTR_V2) << BIT_SHIFT_RXFF0_WTPTR_V2)
#define BITS_RXFF0_WTPTR_V2				(BIT_MASK_RXFF0_WTPTR_V2 << BIT_SHIFT_RXFF0_WTPTR_V2)
#define BIT_CLEAR_RXFF0_WTPTR_V2(x)			((x) & (~BITS_RXFF0_WTPTR_V2))
#define BIT_GET_RXFF0_WTPTR_V2(x)			(((x) >> BIT_SHIFT_RXFF0_WTPTR_V2) & BIT_MASK_RXFF0_WTPTR_V2)
#define BIT_SET_RXFF0_WTPTR_V2(x, v)			(BIT_CLEAR_RXFF0_WTPTR_V2(x) | BIT_RXFF0_WTPTR_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_FF_STATUS				(Offset 0x0118) */


#define BIT_SHIFT_RXFF0_RDPTR_V1			13
#define BIT_MASK_RXFF0_RDPTR_V1			0x3ffff
#define BIT_RXFF0_RDPTR_V1(x)				(((x) & BIT_MASK_RXFF0_RDPTR_V1) << BIT_SHIFT_RXFF0_RDPTR_V1)
#define BITS_RXFF0_RDPTR_V1				(BIT_MASK_RXFF0_RDPTR_V1 << BIT_SHIFT_RXFF0_RDPTR_V1)
#define BIT_CLEAR_RXFF0_RDPTR_V1(x)			((x) & (~BITS_RXFF0_RDPTR_V1))
#define BIT_GET_RXFF0_RDPTR_V1(x)			(((x) >> BIT_SHIFT_RXFF0_RDPTR_V1) & BIT_MASK_RXFF0_RDPTR_V1)
#define BIT_SET_RXFF0_RDPTR_V1(x, v)			(BIT_CLEAR_RXFF0_RDPTR_V1(x) | BIT_RXFF0_RDPTR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTA_I2C_MBOX			(Offset 0x0118) */


#define BIT_SHIFT_I2C_M_STATUS				8
#define BIT_MASK_I2C_M_STATUS				0xf
#define BIT_I2C_M_STATUS(x)				(((x) & BIT_MASK_I2C_M_STATUS) << BIT_SHIFT_I2C_M_STATUS)
#define BITS_I2C_M_STATUS				(BIT_MASK_I2C_M_STATUS << BIT_SHIFT_I2C_M_STATUS)
#define BIT_CLEAR_I2C_M_STATUS(x)			((x) & (~BITS_I2C_M_STATUS))
#define BIT_GET_I2C_M_STATUS(x)			(((x) >> BIT_SHIFT_I2C_M_STATUS) & BIT_MASK_I2C_M_STATUS)
#define BIT_SET_I2C_M_STATUS(x, v)			(BIT_CLEAR_I2C_M_STATUS(x) | BIT_I2C_M_STATUS(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTA_I2C_MBOX			(Offset 0x0118) */


#define BIT_SHIFT_I2C_M_BUS_GNT			4
#define BIT_MASK_I2C_M_BUS_GNT				0x7
#define BIT_I2C_M_BUS_GNT(x)				(((x) & BIT_MASK_I2C_M_BUS_GNT) << BIT_SHIFT_I2C_M_BUS_GNT)
#define BITS_I2C_M_BUS_GNT				(BIT_MASK_I2C_M_BUS_GNT << BIT_SHIFT_I2C_M_BUS_GNT)
#define BIT_CLEAR_I2C_M_BUS_GNT(x)			((x) & (~BITS_I2C_M_BUS_GNT))
#define BIT_GET_I2C_M_BUS_GNT(x)			(((x) >> BIT_SHIFT_I2C_M_BUS_GNT) & BIT_MASK_I2C_M_BUS_GNT)
#define BIT_SET_I2C_M_BUS_GNT(x, v)			(BIT_CLEAR_I2C_M_BUS_GNT(x) | BIT_I2C_M_BUS_GNT(v))

#define BIT_I2C_GNT_FW					BIT(3)

#define BIT_SHIFT_I2C_DATA_RATE			1
#define BIT_MASK_I2C_DATA_RATE				0x3
#define BIT_I2C_DATA_RATE(x)				(((x) & BIT_MASK_I2C_DATA_RATE) << BIT_SHIFT_I2C_DATA_RATE)
#define BITS_I2C_DATA_RATE				(BIT_MASK_I2C_DATA_RATE << BIT_SHIFT_I2C_DATA_RATE)
#define BIT_CLEAR_I2C_DATA_RATE(x)			((x) & (~BITS_I2C_DATA_RATE))
#define BIT_GET_I2C_DATA_RATE(x)			(((x) >> BIT_SHIFT_I2C_DATA_RATE) & BIT_MASK_I2C_DATA_RATE)
#define BIT_SET_I2C_DATA_RATE(x, v)			(BIT_CLEAR_I2C_DATA_RATE(x) | BIT_I2C_DATA_RATE(v))

#define BIT_I2C_SW_CONTROL_UNLOCK			BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_FF_STATUS				(Offset 0x0118) */


#define BIT_SHIFT_RXFF0_WTPTR_V1			0
#define BIT_MASK_RXFF0_WTPTR_V1			0x3ffff
#define BIT_RXFF0_WTPTR_V1(x)				(((x) & BIT_MASK_RXFF0_WTPTR_V1) << BIT_SHIFT_RXFF0_WTPTR_V1)
#define BITS_RXFF0_WTPTR_V1				(BIT_MASK_RXFF0_WTPTR_V1 << BIT_SHIFT_RXFF0_WTPTR_V1)
#define BIT_CLEAR_RXFF0_WTPTR_V1(x)			((x) & (~BITS_RXFF0_WTPTR_V1))
#define BIT_GET_RXFF0_WTPTR_V1(x)			(((x) >> BIT_SHIFT_RXFF0_WTPTR_V1) & BIT_MASK_RXFF0_WTPTR_V1)
#define BIT_SET_RXFF0_WTPTR_V1(x, v)			(BIT_CLEAR_RXFF0_WTPTR_V1(x) | BIT_RXFF0_WTPTR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFF_PTR				(Offset 0x011C) */


#define BIT_SHIFT_RXFF0_RDPTR				16
#define BIT_MASK_RXFF0_RDPTR				0xffff
#define BIT_RXFF0_RDPTR(x)				(((x) & BIT_MASK_RXFF0_RDPTR) << BIT_SHIFT_RXFF0_RDPTR)
#define BITS_RXFF0_RDPTR				(BIT_MASK_RXFF0_RDPTR << BIT_SHIFT_RXFF0_RDPTR)
#define BIT_CLEAR_RXFF0_RDPTR(x)			((x) & (~BITS_RXFF0_RDPTR))
#define BIT_GET_RXFF0_RDPTR(x)				(((x) >> BIT_SHIFT_RXFF0_RDPTR) & BIT_MASK_RXFF0_RDPTR)
#define BIT_SET_RXFF0_RDPTR(x, v)			(BIT_CLEAR_RXFF0_RDPTR(x) | BIT_RXFF0_RDPTR(v))


#define BIT_SHIFT_RXFF0_WTPTR				0
#define BIT_MASK_RXFF0_WTPTR				0xffff
#define BIT_RXFF0_WTPTR(x)				(((x) & BIT_MASK_RXFF0_WTPTR) << BIT_SHIFT_RXFF0_WTPTR)
#define BITS_RXFF0_WTPTR				(BIT_MASK_RXFF0_WTPTR << BIT_SHIFT_RXFF0_WTPTR)
#define BIT_CLEAR_RXFF0_WTPTR(x)			((x) & (~BITS_RXFF0_WTPTR))
#define BIT_GET_RXFF0_WTPTR(x)				(((x) >> BIT_SHIFT_RXFF0_WTPTR) & BIT_MASK_RXFF0_WTPTR)
#define BIT_SET_RXFF0_WTPTR(x, v)			(BIT_CLEAR_RXFF0_WTPTR(x) | BIT_RXFF0_WTPTR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_CPUMGQ_DROP_BY_HOLD_TIME_INT_EN		BIT(31)
#define BIT_FWFF_FULL_INT_EN				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_BB_STOP_RX_INT_EN				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_RXDMA2_DONE_INT_EN			BIT(28)
#define BIT_FS_RXDONE3_INT_EN				BIT(27)
#define BIT_FS_RXDONE2_INT_EN				BIT(26)
#define BIT_FS_RX_BCN_P4_INT_EN			BIT(25)
#define BIT_FS_RX_BCN_P3_INT_EN			BIT(24)
#define BIT_FS_RX_BCN_P2_INT_EN			BIT(23)
#define BIT_FS_RX_BCN_P1_INT_EN			BIT(22)
#define BIT_FS_RX_BCN_P0_INT_EN			BIT(21)
#define BIT_FS_RX_UMD0_INT_EN				BIT(20)
#define BIT_FS_RX_UMD1_INT_EN				BIT(19)
#define BIT_FS_RX_BMD0_INT_EN				BIT(18)
#define BIT_FS_RX_BMD1_INT_EN				BIT(17)
#define BIT_FS_RXDONE_INT_EN				BIT(16)
#define BIT_FS_WWLAN_INT_EN				BIT(15)
#define BIT_FS_SOUND_DONE_INT_EN			BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_LP_STBY_INT_EN				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_TRL_MTR_INT_EN				BIT(12)
#define BIT_FS_BF1_PRETO_INT_EN			BIT(11)
#define BIT_FS_BF0_PRETO_INT_EN			BIT(10)
#define BIT_FS_PTCL_RELEASE_MACID_INT_EN		BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_PRETX_ERRHLD_INT_EN			BIT(8)
#define BIT_FS_GTRD_INT_EN				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_LTE_COEX_EN				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_WLACTOFF_INT_EN				BIT(5)
#define BIT_FS_WLACTON_INT_EN				BIT(4)
#define BIT_FS_BTCMD_INT_EN				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_FEIMR				(Offset 0x0120) */

#define BIT_REG_MAILBOX_TO_I2C_INT			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_REG_MAILBOX_TO_I2C_INT_EN		BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FEIMR				(Offset 0x0120) */

#define BIT_TRPC_TO_INT_EN				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_TRPC_TO_INT_EN_V1			BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FEIMR				(Offset 0x0120) */

#define BIT_BIT_RPC_O_T_INT_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1IMR				(Offset 0x0120) */

#define BIT_FS_RPC_O_T_INT_EN_V1			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_CPUMGQ_DROP_BY_HOLD_TIME_INT		BIT(31)
#define BIT_FWFF_FULL_INT				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_BB_STOP_RX_INT				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_RXDMA2_DONE_INT				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_RXDONE3_INT				BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_RXDONE3_INT_INT				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_RXDONE2_INT				BIT(26)
#define BIT_FS_RX_BCN_P4_INT				BIT(25)
#define BIT_FS_RX_BCN_P3_INT				BIT(24)
#define BIT_FS_RX_BCN_P2_INT				BIT(23)
#define BIT_FS_RX_BCN_P1_INT				BIT(22)
#define BIT_FS_RX_BCN_P0_INT				BIT(21)
#define BIT_FS_RX_UMD0_INT				BIT(20)
#define BIT_FS_RX_UMD1_INT				BIT(19)
#define BIT_FS_RX_BMD0_INT				BIT(18)
#define BIT_FS_RX_BMD1_INT				BIT(17)
#define BIT_FS_RXDONE_INT				BIT(16)
#define BIT_FS_WWLAN_INT				BIT(15)
#define BIT_FS_SOUND_DONE_INT				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_LP_STBY_INT				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_TRL_MTR_INT				BIT(12)
#define BIT_FS_BF1_PRETO_INT				BIT(11)
#define BIT_FS_BF0_PRETO_INT				BIT(10)
#define BIT_FS_PTCL_RELEASE_MACID_INT			BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_PRETX_ERRHLD_INT				BIT(8)
#define BIT_SND_RDY_INT				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_LTE_COEX_INT				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_WLACTOFF_INT				BIT(5)
#define BIT_FS_WLACTON_INT				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_BCN_RX_INT_INT				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_BT_CMD_INT					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_FEISR				(Offset 0x0124) */

#define BIT_MAILBOX_TO_I2C				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_MAILBOX_TO_I2C_INT			BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FEISR				(Offset 0x0124) */

#define BIT_TRPC_TO_INT				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_TRPC_TO_INT				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FEISR				(Offset 0x0124) */

#define BIT_RPC_O_T_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE1ISR				(Offset 0x0124) */

#define BIT_FS_RPC_O_T_INT				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CPWM				(Offset 0x012C) */

#define BIT_CPWM_TOGGLING				BIT(31)

#define BIT_SHIFT_CPWM_MOD				24
#define BIT_MASK_CPWM_MOD				0x7f
#define BIT_CPWM_MOD(x)				(((x) & BIT_MASK_CPWM_MOD) << BIT_SHIFT_CPWM_MOD)
#define BITS_CPWM_MOD					(BIT_MASK_CPWM_MOD << BIT_SHIFT_CPWM_MOD)
#define BIT_CLEAR_CPWM_MOD(x)				((x) & (~BITS_CPWM_MOD))
#define BIT_GET_CPWM_MOD(x)				(((x) >> BIT_SHIFT_CPWM_MOD) & BIT_MASK_CPWM_MOD)
#define BIT_SET_CPWM_MOD(x, v)				(BIT_CLEAR_CPWM_MOD(x) | BIT_CPWM_MOD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB7_INT_EN			BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_SOUND_DONE_MSK				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB6_INT_EN			BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TRY_DONE_MSK				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB5_INT_EN			BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXRPT_CNT_FULL_MSK				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB4_INT_EN			BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_WLACTOFF_INT_EN				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB3_INT_EN			BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_WLACTON_INT_EN				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB2_INT_EN			BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXPKTIN_INT_EN				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB1_INT_EN			BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXBCNOK_MSK				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNOK_MB0_INT_EN			BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXBCNERR_MSK				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB7_INT_EN			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_RX_UMD0_EN					BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB6_INT_EN			BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_RX_UMD1_EN					BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB5_INT_EN			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_RX_BMD0_EN					BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB4_INT_EN			BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_RX_BMD1_EN					BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB3_INT_EN			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCN_RX_INT_EN				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB2_INT_EN			BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TBTTINT_MSK				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB1_INT_EN			BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNERLY_MSK				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXBCNERR_MB0_INT_EN			BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA7_MSK				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_CPUMGN_POLLED_PKT_DONE_INT_EN		BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_CPU_MGQ_TXDONE_INT_EN			BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA6_MSK				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_SIFS_OVERSPEC_INT_EN			BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA5_MSK				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_MGNTQ_RPTR_RELEASE_INT_EN		BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA4_MSK				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_MGNTQFF_TO_INT_EN			BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA3_MSK				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_DDMA1_LP_INT_ENBIT_CPUMGN_POLLED_PKT_BUSY_ERR_INT_EN	BIT(11)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_CPUMGQ_ERR_INT_EN			BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_DDMA1_LP_INT_EN				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA2_MSK				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_DDMA1_HP_INT_EN				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA1_MSK				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_DDMA0_LP_INT_EN				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_BCNDMA0_MSK				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_DDMA0_HP_INT_EN				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_LP_STBY_MSK				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TRXRPT_INT_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_CTWENDINT_MSK				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_C2H_W_READY_INT_EN			BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_HRCV_MSK					BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_HRCV_INT_EN				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_H2CCMD_MSK					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_H2CCMD_INT_EN				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_RXDONE_MSK					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXPKTIN_INT_EN				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_ERRORHDL_MSK				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_ERRORHDL_INT_EN				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXCCX_MSK_FW				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXCCX_INT_EN				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_TXCLOSE_MSK				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWIMR				(Offset 0x0130) */

#define BIT_FS_TXCLOSE_INT_EN				BIT(0)

/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB7_INT				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_SOUND_DONE_INT				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB6_INT				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TRY_DONE_INT				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB5_INT				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXRPT_CNT_FULL_INT				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB4_INT				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_WLACTOFF_INT				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB3_INT				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_WLACTON_INT				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB2_INT				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXPKTIN_INT				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB1_INT				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXBCNOK_INT				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNOK_MB0_INT				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXBCNERR_INT				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB7_INT			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_RX_UMD0_INT				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB6_INT			BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_RX_UMD1_INT				BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB5_INT			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_RX_BMD0_INT				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB4_INT			BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_RX_BMD1_INT				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB3_INT			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCN_RX_INT_INT				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB2_INT			BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TBTTINT_INT				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB1_INT			BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNERLY_INT				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXBCNERR_MB0_INT			BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA7_INT				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_CPUMGN_POLLED_PKT_DONE_INT			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_CPU_MGQ_TXDONE_INT				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA6_INT				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_SIFS_OVERSPEC_INT				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA5_INT				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_MGNTQ_RPTR_RELEASE_INT			BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA4_INT				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_MGNTQFF_TO_INT				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA3_INT				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_DDMA1_LP_INTBIT_CPUMGN_POLLED_PKT_BUSY_ERR_INT	BIT(11)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_CPUMGQ_ERR_INT				BIT(11)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_DDMA1_LP_INT				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA2_INT				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_DDMA1_HP_INT				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FWCMD_PKTIN_INT				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA1_INT				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_DDMA0_LP_INT				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_BCNDMA0_INT				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_DDMA0_HP_INT				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_LP_STBY_INT				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TRXRPT_INT				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_CTWENDINT_INT				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_C2H_W_READY_INT				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_HRCV_INT					BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_HRCV_INT				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_H2CCMD_INT					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_H2CCMD_INT				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_RXDONE_INT					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXPKTIN_INT				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_ERRORHDL_INT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_ERRORHDL_INT				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXCCX_INT					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXCCX_INT				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_TXCLOSE_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWISR				(Offset 0x0134) */

#define BIT_FS_TXCLOSE_INT				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_GTINT6_MSK					BIT(31)
#define BIT_TX_NULL1_INT_MSK				BIT(30)
#define BIT_TX_NULL0_INT_MSK				BIT(29)
#define BIT_MTI_BCNIVLEAR_INT_MSK			BIT(28)
#define BIT_ATIMINT_MSK				BIT(27)
#define BIT_WWLAN_INT_EN				BIT(26)
#define BIT_C2H_W_READY_EN				BIT(25)
#define BIT_TRL_MTR_EN					BIT(24)
#define BIT_CLR_PS_STATUS_MSK				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_C_EARLY_INT_EN			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_RETRIEVE_BUFFERED_MSK			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_B_EARLY_INT_EN			BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_RPWMINT2_MSK				BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_A_EARLY_INT_EN			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TSF_BIT32_TOGGLE_MSK_V1			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_CPUMGQ_TX_TIMER_EARLY_INT_EN		BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TRIGGER_PKT_MSK				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_C_INT_EN				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FW_BTCMD_INTMSK				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_B_INT_EN				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_P2P_RFOFF_INTMSK				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PS_TIMER_A_INT_EN				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_P2P_RFON_INTMSK				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_CPUMGQ_TX_TIMER_INT_EN			BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TXBCN1ERR_MSK				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_PS_TIMEOUT2_EN				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TXBCN1OK_MSK				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_PS_TIMEOUT1_EN				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FT_ATIMEND_EMSK				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_PS_TIMEOUT0_EN				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_BCNDMAINT_EMSK				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT12_EN				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_GTINT5_MSK					BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT11_EN				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_EOSP_INT_MSK				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT10_EN				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_RX_BCN_E_MSK				BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT9_EN				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_RPWM_INT_EN				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT8_EN				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_PSTIMER_MSK				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT7_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TIMEOUT1_MSK				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT6_EN				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_TIMEOUT0_MSK				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT5_EN				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FT_GTINT4_MSK				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT4_EN				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FT_GTINT3_MSK				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT3_EN				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_GTINT2_MSK					BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT2_EN				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_GTINT1_MSK					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT1_EN				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_GTINT0_MSK					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTIMR				(Offset 0x0138) */

#define BIT_FS_GTINT0_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_GT6INT					BIT(31)
#define BIT_TX_NULL1_INT				BIT(30)
#define BIT_TX_NULL0_INT				BIT(29)
#define BIT_MTI_BCNIVLEAR_INT				BIT(28)
#define BIT_ATIM_INT					BIT(27)
#define BIT_WWLAN_INT					BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_5_EARLY__INT			BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_C2H_W_READY				BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_4_EARLY__INT			BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TRL_MTR_INT				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_3_EARLY__INT			BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_CLR_PS_STATUS				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_C_EARLY__INT			BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_2_EARLY__INT			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_RETRIEVE_BUFFERED_INT			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_B_EARLY__INT			BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_1_EARLY__INT			BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_RPWM2INT					BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_A_EARLY__INT			BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_0_EARLY__INT			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TSF_BIT32_TOGGLE_INT_V1			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_CPUMGQ_TX_TIMER_EARLY_INT			BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TRIGGER_PKT				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_C_INT				BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_5_INT				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FW_BTCMD_INT				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_B_INT				BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_4_INT				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_P2P_RFOFF_INT				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_A_INT				BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_3_INT				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_P2P_RFON_INT				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_CPUMGQ_TX_TIMER_INT			BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TX_BCN1ERR_INT				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_PS_TIMEOUT2_INT				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_2_INT				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TX_BCN1OK_INT				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_PS_TIMEOUT1_INT				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_1_INT				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FT_ATIMEND_E				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_PS_TIMEOUT0_INT				BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PS_TIMER_0_INT				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_BCNDMAINT_E_V1				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT12_INT				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_GT5INT					BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT11_INT				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_EOSP_INT					BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT10_INT				BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_RX_BCN_E_INT				BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT9_INT				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_RPWMINT					BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT8_INT				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_PSTIMER_INT				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT7_INT				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TIMEOUT1_INT				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT6_INT				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_TIMEOUT0_INT				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT5_INT				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FT_GT4INT					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT4_INT				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FT_GT3INT					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT3_INT				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_GT2INT					BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT2_INT				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_GT1INT					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT1_INT				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_GT0INT					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FTISR				(Offset 0x013C) */

#define BIT_FS_GTINT0_INT				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */


#define BIT_SHIFT_PKTBUF_WRITE_EN			24
#define BIT_MASK_PKTBUF_WRITE_EN			0xff
#define BIT_PKTBUF_WRITE_EN(x)				(((x) & BIT_MASK_PKTBUF_WRITE_EN) << BIT_SHIFT_PKTBUF_WRITE_EN)
#define BITS_PKTBUF_WRITE_EN				(BIT_MASK_PKTBUF_WRITE_EN << BIT_SHIFT_PKTBUF_WRITE_EN)
#define BIT_CLEAR_PKTBUF_WRITE_EN(x)			((x) & (~BITS_PKTBUF_WRITE_EN))
#define BIT_GET_PKTBUF_WRITE_EN(x)			(((x) >> BIT_SHIFT_PKTBUF_WRITE_EN) & BIT_MASK_PKTBUF_WRITE_EN)
#define BIT_SET_PKTBUF_WRITE_EN(x, v)			(BIT_CLEAR_PKTBUF_WRITE_EN(x) | BIT_PKTBUF_WRITE_EN(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_TXPKT_BUF_READ_EN				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_TXRPTBUF_DBG				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_TXRPT_BUF_READ_EN				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_TXPKTBUF_DBG_V2				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_RXPKT_BUF_READ_EN				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */

#define BIT_RXPKTBUF_DBG				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */


#define BIT_SHIFT_PKTBUF_ADDR				0
#define BIT_MASK_PKTBUF_ADDR				0x1fff
#define BIT_PKTBUF_ADDR(x)				(((x) & BIT_MASK_PKTBUF_ADDR) << BIT_SHIFT_PKTBUF_ADDR)
#define BITS_PKTBUF_ADDR				(BIT_MASK_PKTBUF_ADDR << BIT_SHIFT_PKTBUF_ADDR)
#define BIT_CLEAR_PKTBUF_ADDR(x)			((x) & (~BITS_PKTBUF_ADDR))
#define BIT_GET_PKTBUF_ADDR(x)				(((x) >> BIT_SHIFT_PKTBUF_ADDR) & BIT_MASK_PKTBUF_ADDR)
#define BIT_SET_PKTBUF_ADDR(x, v)			(BIT_CLEAR_PKTBUF_ADDR(x) | BIT_PKTBUF_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PKTBUF_DBG_CTRL			(Offset 0x0140) */


#define BIT_SHIFT_PKTBUF_DBG_ADDR			0
#define BIT_MASK_PKTBUF_DBG_ADDR			0x1fff
#define BIT_PKTBUF_DBG_ADDR(x)				(((x) & BIT_MASK_PKTBUF_DBG_ADDR) << BIT_SHIFT_PKTBUF_DBG_ADDR)
#define BITS_PKTBUF_DBG_ADDR				(BIT_MASK_PKTBUF_DBG_ADDR << BIT_SHIFT_PKTBUF_DBG_ADDR)
#define BIT_CLEAR_PKTBUF_DBG_ADDR(x)			((x) & (~BITS_PKTBUF_DBG_ADDR))
#define BIT_GET_PKTBUF_DBG_ADDR(x)			(((x) >> BIT_SHIFT_PKTBUF_DBG_ADDR) & BIT_MASK_PKTBUF_DBG_ADDR)
#define BIT_SET_PKTBUF_DBG_ADDR(x, v)			(BIT_CLEAR_PKTBUF_DBG_ADDR(x) | BIT_PKTBUF_DBG_ADDR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKTBUF_DBG_DATA_L			(Offset 0x0144) */


#define BIT_SHIFT_PKTBUF_DBG_DATA_L			0
#define BIT_MASK_PKTBUF_DBG_DATA_L			0xffffffffL
#define BIT_PKTBUF_DBG_DATA_L(x)			(((x) & BIT_MASK_PKTBUF_DBG_DATA_L) << BIT_SHIFT_PKTBUF_DBG_DATA_L)
#define BITS_PKTBUF_DBG_DATA_L				(BIT_MASK_PKTBUF_DBG_DATA_L << BIT_SHIFT_PKTBUF_DBG_DATA_L)
#define BIT_CLEAR_PKTBUF_DBG_DATA_L(x)			((x) & (~BITS_PKTBUF_DBG_DATA_L))
#define BIT_GET_PKTBUF_DBG_DATA_L(x)			(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_L) & BIT_MASK_PKTBUF_DBG_DATA_L)
#define BIT_SET_PKTBUF_DBG_DATA_L(x, v)		(BIT_CLEAR_PKTBUF_DBG_DATA_L(x) | BIT_PKTBUF_DBG_DATA_L(v))


/* 2 REG_PKTBUF_DBG_DATA_H			(Offset 0x0148) */


#define BIT_SHIFT_PKTBUF_DBG_DATA_H			0
#define BIT_MASK_PKTBUF_DBG_DATA_H			0xffffffffL
#define BIT_PKTBUF_DBG_DATA_H(x)			(((x) & BIT_MASK_PKTBUF_DBG_DATA_H) << BIT_SHIFT_PKTBUF_DBG_DATA_H)
#define BITS_PKTBUF_DBG_DATA_H				(BIT_MASK_PKTBUF_DBG_DATA_H << BIT_SHIFT_PKTBUF_DBG_DATA_H)
#define BIT_CLEAR_PKTBUF_DBG_DATA_H(x)			((x) & (~BITS_PKTBUF_DBG_DATA_H))
#define BIT_GET_PKTBUF_DBG_DATA_H(x)			(((x) >> BIT_SHIFT_PKTBUF_DBG_DATA_H) & BIT_MASK_PKTBUF_DBG_DATA_H)
#define BIT_SET_PKTBUF_DBG_DATA_H(x, v)		(BIT_CLEAR_PKTBUF_DBG_DATA_H(x) | BIT_PKTBUF_DBG_DATA_H(v))


/* 2 REG_CPWM2				(Offset 0x014C) */


#define BIT_SHIFT_L0S_TO_RCVY_NUM			16
#define BIT_MASK_L0S_TO_RCVY_NUM			0xff
#define BIT_L0S_TO_RCVY_NUM(x)				(((x) & BIT_MASK_L0S_TO_RCVY_NUM) << BIT_SHIFT_L0S_TO_RCVY_NUM)
#define BITS_L0S_TO_RCVY_NUM				(BIT_MASK_L0S_TO_RCVY_NUM << BIT_SHIFT_L0S_TO_RCVY_NUM)
#define BIT_CLEAR_L0S_TO_RCVY_NUM(x)			((x) & (~BITS_L0S_TO_RCVY_NUM))
#define BIT_GET_L0S_TO_RCVY_NUM(x)			(((x) >> BIT_SHIFT_L0S_TO_RCVY_NUM) & BIT_MASK_L0S_TO_RCVY_NUM)
#define BIT_SET_L0S_TO_RCVY_NUM(x, v)			(BIT_CLEAR_L0S_TO_RCVY_NUM(x) | BIT_L0S_TO_RCVY_NUM(v))

#define BIT_CPWM2_TOGGLING				BIT(15)

#define BIT_SHIFT_CPWM2_MOD				0
#define BIT_MASK_CPWM2_MOD				0x7fff
#define BIT_CPWM2_MOD(x)				(((x) & BIT_MASK_CPWM2_MOD) << BIT_SHIFT_CPWM2_MOD)
#define BITS_CPWM2_MOD					(BIT_MASK_CPWM2_MOD << BIT_SHIFT_CPWM2_MOD)
#define BIT_CLEAR_CPWM2_MOD(x)				((x) & (~BITS_CPWM2_MOD))
#define BIT_GET_CPWM2_MOD(x)				(((x) >> BIT_SHIFT_CPWM2_MOD) & BIT_MASK_CPWM2_MOD)
#define BIT_SET_CPWM2_MOD(x, v)			(BIT_CLEAR_CPWM2_MOD(x) | BIT_CPWM2_MOD(v))


/* 2 REG_TC0_CTRL				(Offset 0x0150) */

#define BIT_TC0INT_EN					BIT(26)
#define BIT_TC0MODE					BIT(25)
#define BIT_TC0EN					BIT(24)

#define BIT_SHIFT_TC0DATA				0
#define BIT_MASK_TC0DATA				0xffffff
#define BIT_TC0DATA(x)					(((x) & BIT_MASK_TC0DATA) << BIT_SHIFT_TC0DATA)
#define BITS_TC0DATA					(BIT_MASK_TC0DATA << BIT_SHIFT_TC0DATA)
#define BIT_CLEAR_TC0DATA(x)				((x) & (~BITS_TC0DATA))
#define BIT_GET_TC0DATA(x)				(((x) >> BIT_SHIFT_TC0DATA) & BIT_MASK_TC0DATA)
#define BIT_SET_TC0DATA(x, v)				(BIT_CLEAR_TC0DATA(x) | BIT_TC0DATA(v))


/* 2 REG_TC1_CTRL				(Offset 0x0154) */

#define BIT_TC1INT_EN					BIT(26)
#define BIT_TC1MODE					BIT(25)
#define BIT_TC1EN					BIT(24)

#define BIT_SHIFT_TC1DATA				0
#define BIT_MASK_TC1DATA				0xffffff
#define BIT_TC1DATA(x)					(((x) & BIT_MASK_TC1DATA) << BIT_SHIFT_TC1DATA)
#define BITS_TC1DATA					(BIT_MASK_TC1DATA << BIT_SHIFT_TC1DATA)
#define BIT_CLEAR_TC1DATA(x)				((x) & (~BITS_TC1DATA))
#define BIT_GET_TC1DATA(x)				(((x) >> BIT_SHIFT_TC1DATA) & BIT_MASK_TC1DATA)
#define BIT_SET_TC1DATA(x, v)				(BIT_CLEAR_TC1DATA(x) | BIT_TC1DATA(v))


/* 2 REG_TC2_CTRL				(Offset 0x0158) */

#define BIT_TC2INT_EN					BIT(26)
#define BIT_TC2MODE					BIT(25)
#define BIT_TC2EN					BIT(24)

#define BIT_SHIFT_TC2DATA				0
#define BIT_MASK_TC2DATA				0xffffff
#define BIT_TC2DATA(x)					(((x) & BIT_MASK_TC2DATA) << BIT_SHIFT_TC2DATA)
#define BITS_TC2DATA					(BIT_MASK_TC2DATA << BIT_SHIFT_TC2DATA)
#define BIT_CLEAR_TC2DATA(x)				((x) & (~BITS_TC2DATA))
#define BIT_GET_TC2DATA(x)				(((x) >> BIT_SHIFT_TC2DATA) & BIT_MASK_TC2DATA)
#define BIT_SET_TC2DATA(x, v)				(BIT_CLEAR_TC2DATA(x) | BIT_TC2DATA(v))


/* 2 REG_TC3_CTRL				(Offset 0x015C) */

#define BIT_TC3INT_EN					BIT(26)
#define BIT_TC3MODE					BIT(25)
#define BIT_TC3EN					BIT(24)

#define BIT_SHIFT_TC3DATA				0
#define BIT_MASK_TC3DATA				0xffffff
#define BIT_TC3DATA(x)					(((x) & BIT_MASK_TC3DATA) << BIT_SHIFT_TC3DATA)
#define BITS_TC3DATA					(BIT_MASK_TC3DATA << BIT_SHIFT_TC3DATA)
#define BIT_CLEAR_TC3DATA(x)				((x) & (~BITS_TC3DATA))
#define BIT_GET_TC3DATA(x)				(((x) >> BIT_SHIFT_TC3DATA) & BIT_MASK_TC3DATA)
#define BIT_SET_TC3DATA(x, v)				(BIT_CLEAR_TC3DATA(x) | BIT_TC3DATA(v))


/* 2 REG_TC4_CTRL				(Offset 0x0160) */

#define BIT_TC4INT_EN					BIT(26)
#define BIT_TC4MODE					BIT(25)
#define BIT_TC4EN					BIT(24)

#define BIT_SHIFT_TC4DATA				0
#define BIT_MASK_TC4DATA				0xffffff
#define BIT_TC4DATA(x)					(((x) & BIT_MASK_TC4DATA) << BIT_SHIFT_TC4DATA)
#define BITS_TC4DATA					(BIT_MASK_TC4DATA << BIT_SHIFT_TC4DATA)
#define BIT_CLEAR_TC4DATA(x)				((x) & (~BITS_TC4DATA))
#define BIT_GET_TC4DATA(x)				(((x) >> BIT_SHIFT_TC4DATA) & BIT_MASK_TC4DATA)
#define BIT_SET_TC4DATA(x, v)				(BIT_CLEAR_TC4DATA(x) | BIT_TC4DATA(v))


/* 2 REG_TCUNIT_BASE				(Offset 0x0164) */


#define BIT_SHIFT_TCUNIT_BASE				0
#define BIT_MASK_TCUNIT_BASE				0x3fff
#define BIT_TCUNIT_BASE(x)				(((x) & BIT_MASK_TCUNIT_BASE) << BIT_SHIFT_TCUNIT_BASE)
#define BITS_TCUNIT_BASE				(BIT_MASK_TCUNIT_BASE << BIT_SHIFT_TCUNIT_BASE)
#define BIT_CLEAR_TCUNIT_BASE(x)			((x) & (~BITS_TCUNIT_BASE))
#define BIT_GET_TCUNIT_BASE(x)				(((x) >> BIT_SHIFT_TCUNIT_BASE) & BIT_MASK_TCUNIT_BASE)
#define BIT_SET_TCUNIT_BASE(x, v)			(BIT_CLEAR_TCUNIT_BASE(x) | BIT_TCUNIT_BASE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TC5_CTRL				(Offset 0x0168) */

#define BIT_TC50INT_EN					BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TC5_CTRL				(Offset 0x0168) */

#define BIT_TC5INT_EN					BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TC5_CTRL				(Offset 0x0168) */

#define BIT_TC5MODE					BIT(25)
#define BIT_TC5EN					BIT(24)

#define BIT_SHIFT_TC5DATA				0
#define BIT_MASK_TC5DATA				0xffffff
#define BIT_TC5DATA(x)					(((x) & BIT_MASK_TC5DATA) << BIT_SHIFT_TC5DATA)
#define BITS_TC5DATA					(BIT_MASK_TC5DATA << BIT_SHIFT_TC5DATA)
#define BIT_CLEAR_TC5DATA(x)				((x) & (~BITS_TC5DATA))
#define BIT_GET_TC5DATA(x)				(((x) >> BIT_SHIFT_TC5DATA) & BIT_MASK_TC5DATA)
#define BIT_SET_TC5DATA(x, v)				(BIT_CLEAR_TC5DATA(x) | BIT_TC5DATA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TC6_CTRL				(Offset 0x016C) */

#define BIT_TC60INT_EN					BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TC6_CTRL				(Offset 0x016C) */

#define BIT_TC6INT_EN					BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TC6_CTRL				(Offset 0x016C) */

#define BIT_TC6MODE					BIT(25)
#define BIT_TC6EN					BIT(24)

#define BIT_SHIFT_TC6DATA				0
#define BIT_MASK_TC6DATA				0xffffff
#define BIT_TC6DATA(x)					(((x) & BIT_MASK_TC6DATA) << BIT_SHIFT_TC6DATA)
#define BITS_TC6DATA					(BIT_MASK_TC6DATA << BIT_SHIFT_TC6DATA)
#define BIT_CLEAR_TC6DATA(x)				((x) & (~BITS_TC6DATA))
#define BIT_GET_TC6DATA(x)				(((x) >> BIT_SHIFT_TC6DATA) & BIT_MASK_TC6DATA)
#define BIT_SET_TC6DATA(x, v)				(BIT_CLEAR_TC6DATA(x) | BIT_TC6DATA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_FAIL				(Offset 0x0170) */


#define BIT_SHIFT_8051_MBIST_FAIL			26
#define BIT_MASK_8051_MBIST_FAIL			0x7
#define BIT_8051_MBIST_FAIL(x)				(((x) & BIT_MASK_8051_MBIST_FAIL) << BIT_SHIFT_8051_MBIST_FAIL)
#define BITS_8051_MBIST_FAIL				(BIT_MASK_8051_MBIST_FAIL << BIT_SHIFT_8051_MBIST_FAIL)
#define BIT_CLEAR_8051_MBIST_FAIL(x)			((x) & (~BITS_8051_MBIST_FAIL))
#define BIT_GET_8051_MBIST_FAIL(x)			(((x) >> BIT_SHIFT_8051_MBIST_FAIL) & BIT_MASK_8051_MBIST_FAIL)
#define BIT_SET_8051_MBIST_FAIL(x, v)			(BIT_CLEAR_8051_MBIST_FAIL(x) | BIT_8051_MBIST_FAIL(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DRF_FAIL			(Offset 0x0170) */


#define BIT_SHIFT_8051_MBIST_DRF_FAIL			26
#define BIT_MASK_8051_MBIST_DRF_FAIL			0x3f
#define BIT_8051_MBIST_DRF_FAIL(x)			(((x) & BIT_MASK_8051_MBIST_DRF_FAIL) << BIT_SHIFT_8051_MBIST_DRF_FAIL)
#define BITS_8051_MBIST_DRF_FAIL			(BIT_MASK_8051_MBIST_DRF_FAIL << BIT_SHIFT_8051_MBIST_DRF_FAIL)
#define BIT_CLEAR_8051_MBIST_DRF_FAIL(x)		((x) & (~BITS_8051_MBIST_DRF_FAIL))
#define BIT_GET_8051_MBIST_DRF_FAIL(x)			(((x) >> BIT_SHIFT_8051_MBIST_DRF_FAIL) & BIT_MASK_8051_MBIST_DRF_FAIL)
#define BIT_SET_8051_MBIST_DRF_FAIL(x, v)		(BIT_CLEAR_8051_MBIST_DRF_FAIL(x) | BIT_8051_MBIST_DRF_FAIL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_FAIL				(Offset 0x0170) */


#define BIT_SHIFT_USB_MBIST_FAIL			24
#define BIT_MASK_USB_MBIST_FAIL			0x3
#define BIT_USB_MBIST_FAIL(x)				(((x) & BIT_MASK_USB_MBIST_FAIL) << BIT_SHIFT_USB_MBIST_FAIL)
#define BITS_USB_MBIST_FAIL				(BIT_MASK_USB_MBIST_FAIL << BIT_SHIFT_USB_MBIST_FAIL)
#define BIT_CLEAR_USB_MBIST_FAIL(x)			((x) & (~BITS_USB_MBIST_FAIL))
#define BIT_GET_USB_MBIST_FAIL(x)			(((x) >> BIT_SHIFT_USB_MBIST_FAIL) & BIT_MASK_USB_MBIST_FAIL)
#define BIT_SET_USB_MBIST_FAIL(x, v)			(BIT_CLEAR_USB_MBIST_FAIL(x) | BIT_USB_MBIST_FAIL(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DRF_FAIL			(Offset 0x0170) */


#define BIT_SHIFT_USB_MBIST_DRF_FAIL			24
#define BIT_MASK_USB_MBIST_DRF_FAIL			0x3
#define BIT_USB_MBIST_DRF_FAIL(x)			(((x) & BIT_MASK_USB_MBIST_DRF_FAIL) << BIT_SHIFT_USB_MBIST_DRF_FAIL)
#define BITS_USB_MBIST_DRF_FAIL			(BIT_MASK_USB_MBIST_DRF_FAIL << BIT_SHIFT_USB_MBIST_DRF_FAIL)
#define BIT_CLEAR_USB_MBIST_DRF_FAIL(x)		((x) & (~BITS_USB_MBIST_DRF_FAIL))
#define BIT_GET_USB_MBIST_DRF_FAIL(x)			(((x) >> BIT_SHIFT_USB_MBIST_DRF_FAIL) & BIT_MASK_USB_MBIST_DRF_FAIL)
#define BIT_SET_USB_MBIST_DRF_FAIL(x, v)		(BIT_CLEAR_USB_MBIST_DRF_FAIL(x) | BIT_USB_MBIST_DRF_FAIL(v))


#define BIT_SHIFT_PCIE_MBIST_DRF_FAIL			18
#define BIT_MASK_PCIE_MBIST_DRF_FAIL			0x3f
#define BIT_PCIE_MBIST_DRF_FAIL(x)			(((x) & BIT_MASK_PCIE_MBIST_DRF_FAIL) << BIT_SHIFT_PCIE_MBIST_DRF_FAIL)
#define BITS_PCIE_MBIST_DRF_FAIL			(BIT_MASK_PCIE_MBIST_DRF_FAIL << BIT_SHIFT_PCIE_MBIST_DRF_FAIL)
#define BIT_CLEAR_PCIE_MBIST_DRF_FAIL(x)		((x) & (~BITS_PCIE_MBIST_DRF_FAIL))
#define BIT_GET_PCIE_MBIST_DRF_FAIL(x)			(((x) >> BIT_SHIFT_PCIE_MBIST_DRF_FAIL) & BIT_MASK_PCIE_MBIST_DRF_FAIL)
#define BIT_SET_PCIE_MBIST_DRF_FAIL(x, v)		(BIT_CLEAR_PCIE_MBIST_DRF_FAIL(x) | BIT_PCIE_MBIST_DRF_FAIL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_FAIL				(Offset 0x0170) */


#define BIT_SHIFT_PCIE_MBIST_FAIL			16
#define BIT_MASK_PCIE_MBIST_FAIL			0x3f
#define BIT_PCIE_MBIST_FAIL(x)				(((x) & BIT_MASK_PCIE_MBIST_FAIL) << BIT_SHIFT_PCIE_MBIST_FAIL)
#define BITS_PCIE_MBIST_FAIL				(BIT_MASK_PCIE_MBIST_FAIL << BIT_SHIFT_PCIE_MBIST_FAIL)
#define BIT_CLEAR_PCIE_MBIST_FAIL(x)			((x) & (~BITS_PCIE_MBIST_FAIL))
#define BIT_GET_PCIE_MBIST_FAIL(x)			(((x) >> BIT_SHIFT_PCIE_MBIST_FAIL) & BIT_MASK_PCIE_MBIST_FAIL)
#define BIT_SET_PCIE_MBIST_FAIL(x, v)			(BIT_CLEAR_PCIE_MBIST_FAIL(x) | BIT_PCIE_MBIST_FAIL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_FAIL				(Offset 0x0170) */


#define BIT_SHIFT_MAC_MBIST_FAIL			0
#define BIT_MASK_MAC_MBIST_FAIL			0xfff
#define BIT_MAC_MBIST_FAIL(x)				(((x) & BIT_MASK_MAC_MBIST_FAIL) << BIT_SHIFT_MAC_MBIST_FAIL)
#define BITS_MAC_MBIST_FAIL				(BIT_MASK_MAC_MBIST_FAIL << BIT_SHIFT_MAC_MBIST_FAIL)
#define BIT_CLEAR_MAC_MBIST_FAIL(x)			((x) & (~BITS_MAC_MBIST_FAIL))
#define BIT_GET_MAC_MBIST_FAIL(x)			(((x) >> BIT_SHIFT_MAC_MBIST_FAIL) & BIT_MASK_MAC_MBIST_FAIL)
#define BIT_SET_MAC_MBIST_FAIL(x, v)			(BIT_CLEAR_MAC_MBIST_FAIL(x) | BIT_MAC_MBIST_FAIL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_MBIST_FAIL				(Offset 0x0170) */


#define BIT_SHIFT_MAC_MBIST_FAIL_DRF			0
#define BIT_MASK_MAC_MBIST_FAIL_DRF			0x3ffff
#define BIT_MAC_MBIST_FAIL_DRF(x)			(((x) & BIT_MASK_MAC_MBIST_FAIL_DRF) << BIT_SHIFT_MAC_MBIST_FAIL_DRF)
#define BITS_MAC_MBIST_FAIL_DRF			(BIT_MASK_MAC_MBIST_FAIL_DRF << BIT_SHIFT_MAC_MBIST_FAIL_DRF)
#define BIT_CLEAR_MAC_MBIST_FAIL_DRF(x)		((x) & (~BITS_MAC_MBIST_FAIL_DRF))
#define BIT_GET_MAC_MBIST_FAIL_DRF(x)			(((x) >> BIT_SHIFT_MAC_MBIST_FAIL_DRF) & BIT_MASK_MAC_MBIST_FAIL_DRF)
#define BIT_SET_MAC_MBIST_FAIL_DRF(x, v)		(BIT_CLEAR_MAC_MBIST_FAIL_DRF(x) | BIT_MAC_MBIST_FAIL_DRF(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DRF_FAIL			(Offset 0x0170) */


#define BIT_SHIFT_MAC_MBIST_DRF_FAIL			0
#define BIT_MASK_MAC_MBIST_DRF_FAIL			0x3ffff
#define BIT_MAC_MBIST_DRF_FAIL(x)			(((x) & BIT_MASK_MAC_MBIST_DRF_FAIL) << BIT_SHIFT_MAC_MBIST_DRF_FAIL)
#define BITS_MAC_MBIST_DRF_FAIL			(BIT_MASK_MAC_MBIST_DRF_FAIL << BIT_SHIFT_MAC_MBIST_DRF_FAIL)
#define BIT_CLEAR_MAC_MBIST_DRF_FAIL(x)		((x) & (~BITS_MAC_MBIST_DRF_FAIL))
#define BIT_GET_MAC_MBIST_DRF_FAIL(x)			(((x) >> BIT_SHIFT_MAC_MBIST_DRF_FAIL) & BIT_MASK_MAC_MBIST_DRF_FAIL)
#define BIT_SET_MAC_MBIST_DRF_FAIL(x, v)		(BIT_CLEAR_MAC_MBIST_DRF_FAIL(x) | BIT_MAC_MBIST_DRF_FAIL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_8051_MBIST_START_PAUSE		26
#define BIT_MASK_8051_MBIST_START_PAUSE		0x7
#define BIT_8051_MBIST_START_PAUSE(x)			(((x) & BIT_MASK_8051_MBIST_START_PAUSE) << BIT_SHIFT_8051_MBIST_START_PAUSE)
#define BITS_8051_MBIST_START_PAUSE			(BIT_MASK_8051_MBIST_START_PAUSE << BIT_SHIFT_8051_MBIST_START_PAUSE)
#define BIT_CLEAR_8051_MBIST_START_PAUSE(x)		((x) & (~BITS_8051_MBIST_START_PAUSE))
#define BIT_GET_8051_MBIST_START_PAUSE(x)		(((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE) & BIT_MASK_8051_MBIST_START_PAUSE)
#define BIT_SET_8051_MBIST_START_PAUSE(x, v)		(BIT_CLEAR_8051_MBIST_START_PAUSE(x) | BIT_8051_MBIST_START_PAUSE(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_8051_MBIST_START_PAUSE_V1		26
#define BIT_MASK_8051_MBIST_START_PAUSE_V1		0x3f
#define BIT_8051_MBIST_START_PAUSE_V1(x)		(((x) & BIT_MASK_8051_MBIST_START_PAUSE_V1) << BIT_SHIFT_8051_MBIST_START_PAUSE_V1)
#define BITS_8051_MBIST_START_PAUSE_V1			(BIT_MASK_8051_MBIST_START_PAUSE_V1 << BIT_SHIFT_8051_MBIST_START_PAUSE_V1)
#define BIT_CLEAR_8051_MBIST_START_PAUSE_V1(x)	((x) & (~BITS_8051_MBIST_START_PAUSE_V1))
#define BIT_GET_8051_MBIST_START_PAUSE_V1(x)		(((x) >> BIT_SHIFT_8051_MBIST_START_PAUSE_V1) & BIT_MASK_8051_MBIST_START_PAUSE_V1)
#define BIT_SET_8051_MBIST_START_PAUSE_V1(x, v)	(BIT_CLEAR_8051_MBIST_START_PAUSE_V1(x) | BIT_8051_MBIST_START_PAUSE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_USB_MBIST_START_PAUSE		24
#define BIT_MASK_USB_MBIST_START_PAUSE			0x3
#define BIT_USB_MBIST_START_PAUSE(x)			(((x) & BIT_MASK_USB_MBIST_START_PAUSE) << BIT_SHIFT_USB_MBIST_START_PAUSE)
#define BITS_USB_MBIST_START_PAUSE			(BIT_MASK_USB_MBIST_START_PAUSE << BIT_SHIFT_USB_MBIST_START_PAUSE)
#define BIT_CLEAR_USB_MBIST_START_PAUSE(x)		((x) & (~BITS_USB_MBIST_START_PAUSE))
#define BIT_GET_USB_MBIST_START_PAUSE(x)		(((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE) & BIT_MASK_USB_MBIST_START_PAUSE)
#define BIT_SET_USB_MBIST_START_PAUSE(x, v)		(BIT_CLEAR_USB_MBIST_START_PAUSE(x) | BIT_USB_MBIST_START_PAUSE(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_USB_MBIST_START_PAUSE_V1		24
#define BIT_MASK_USB_MBIST_START_PAUSE_V1		0x3
#define BIT_USB_MBIST_START_PAUSE_V1(x)		(((x) & BIT_MASK_USB_MBIST_START_PAUSE_V1) << BIT_SHIFT_USB_MBIST_START_PAUSE_V1)
#define BITS_USB_MBIST_START_PAUSE_V1			(BIT_MASK_USB_MBIST_START_PAUSE_V1 << BIT_SHIFT_USB_MBIST_START_PAUSE_V1)
#define BIT_CLEAR_USB_MBIST_START_PAUSE_V1(x)		((x) & (~BITS_USB_MBIST_START_PAUSE_V1))
#define BIT_GET_USB_MBIST_START_PAUSE_V1(x)		(((x) >> BIT_SHIFT_USB_MBIST_START_PAUSE_V1) & BIT_MASK_USB_MBIST_START_PAUSE_V1)
#define BIT_SET_USB_MBIST_START_PAUSE_V1(x, v)	(BIT_CLEAR_USB_MBIST_START_PAUSE_V1(x) | BIT_USB_MBIST_START_PAUSE_V1(v))


#define BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1		18
#define BIT_MASK_PCIE_MBIST_START_PAUSE_V1		0x3f
#define BIT_PCIE_MBIST_START_PAUSE_V1(x)		(((x) & BIT_MASK_PCIE_MBIST_START_PAUSE_V1) << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1)
#define BITS_PCIE_MBIST_START_PAUSE_V1			(BIT_MASK_PCIE_MBIST_START_PAUSE_V1 << BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1)
#define BIT_CLEAR_PCIE_MBIST_START_PAUSE_V1(x)	((x) & (~BITS_PCIE_MBIST_START_PAUSE_V1))
#define BIT_GET_PCIE_MBIST_START_PAUSE_V1(x)		(((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE_V1) & BIT_MASK_PCIE_MBIST_START_PAUSE_V1)
#define BIT_SET_PCIE_MBIST_START_PAUSE_V1(x, v)	(BIT_CLEAR_PCIE_MBIST_START_PAUSE_V1(x) | BIT_PCIE_MBIST_START_PAUSE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_PCIE_MBIST_START_PAUSE		16
#define BIT_MASK_PCIE_MBIST_START_PAUSE		0x3f
#define BIT_PCIE_MBIST_START_PAUSE(x)			(((x) & BIT_MASK_PCIE_MBIST_START_PAUSE) << BIT_SHIFT_PCIE_MBIST_START_PAUSE)
#define BITS_PCIE_MBIST_START_PAUSE			(BIT_MASK_PCIE_MBIST_START_PAUSE << BIT_SHIFT_PCIE_MBIST_START_PAUSE)
#define BIT_CLEAR_PCIE_MBIST_START_PAUSE(x)		((x) & (~BITS_PCIE_MBIST_START_PAUSE))
#define BIT_GET_PCIE_MBIST_START_PAUSE(x)		(((x) >> BIT_SHIFT_PCIE_MBIST_START_PAUSE) & BIT_MASK_PCIE_MBIST_START_PAUSE)
#define BIT_SET_PCIE_MBIST_START_PAUSE(x, v)		(BIT_CLEAR_PCIE_MBIST_START_PAUSE(x) | BIT_PCIE_MBIST_START_PAUSE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_MAC_MBIST_START_PAUSE		0
#define BIT_MASK_MAC_MBIST_START_PAUSE			0xfff
#define BIT_MAC_MBIST_START_PAUSE(x)			(((x) & BIT_MASK_MAC_MBIST_START_PAUSE) << BIT_SHIFT_MAC_MBIST_START_PAUSE)
#define BITS_MAC_MBIST_START_PAUSE			(BIT_MASK_MAC_MBIST_START_PAUSE << BIT_SHIFT_MAC_MBIST_START_PAUSE)
#define BIT_CLEAR_MAC_MBIST_START_PAUSE(x)		((x) & (~BITS_MAC_MBIST_START_PAUSE))
#define BIT_GET_MAC_MBIST_START_PAUSE(x)		(((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE) & BIT_MASK_MAC_MBIST_START_PAUSE)
#define BIT_SET_MAC_MBIST_START_PAUSE(x, v)		(BIT_CLEAR_MAC_MBIST_START_PAUSE(x) | BIT_MAC_MBIST_START_PAUSE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_START_PAUSE			(Offset 0x0174) */


#define BIT_SHIFT_MAC_MBIST_START_PAUSE_V1		0
#define BIT_MASK_MAC_MBIST_START_PAUSE_V1		0x3ffff
#define BIT_MAC_MBIST_START_PAUSE_V1(x)		(((x) & BIT_MASK_MAC_MBIST_START_PAUSE_V1) << BIT_SHIFT_MAC_MBIST_START_PAUSE_V1)
#define BITS_MAC_MBIST_START_PAUSE_V1			(BIT_MASK_MAC_MBIST_START_PAUSE_V1 << BIT_SHIFT_MAC_MBIST_START_PAUSE_V1)
#define BIT_CLEAR_MAC_MBIST_START_PAUSE_V1(x)		((x) & (~BITS_MAC_MBIST_START_PAUSE_V1))
#define BIT_GET_MAC_MBIST_START_PAUSE_V1(x)		(((x) >> BIT_SHIFT_MAC_MBIST_START_PAUSE_V1) & BIT_MASK_MAC_MBIST_START_PAUSE_V1)
#define BIT_SET_MAC_MBIST_START_PAUSE_V1(x, v)	(BIT_CLEAR_MAC_MBIST_START_PAUSE_V1(x) | BIT_MAC_MBIST_START_PAUSE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_8051_MBIST_DONE			26
#define BIT_MASK_8051_MBIST_DONE			0x7
#define BIT_8051_MBIST_DONE(x)				(((x) & BIT_MASK_8051_MBIST_DONE) << BIT_SHIFT_8051_MBIST_DONE)
#define BITS_8051_MBIST_DONE				(BIT_MASK_8051_MBIST_DONE << BIT_SHIFT_8051_MBIST_DONE)
#define BIT_CLEAR_8051_MBIST_DONE(x)			((x) & (~BITS_8051_MBIST_DONE))
#define BIT_GET_8051_MBIST_DONE(x)			(((x) >> BIT_SHIFT_8051_MBIST_DONE) & BIT_MASK_8051_MBIST_DONE)
#define BIT_SET_8051_MBIST_DONE(x, v)			(BIT_CLEAR_8051_MBIST_DONE(x) | BIT_8051_MBIST_DONE(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_8051_MBIST_DONE_V1			26
#define BIT_MASK_8051_MBIST_DONE_V1			0x3f
#define BIT_8051_MBIST_DONE_V1(x)			(((x) & BIT_MASK_8051_MBIST_DONE_V1) << BIT_SHIFT_8051_MBIST_DONE_V1)
#define BITS_8051_MBIST_DONE_V1			(BIT_MASK_8051_MBIST_DONE_V1 << BIT_SHIFT_8051_MBIST_DONE_V1)
#define BIT_CLEAR_8051_MBIST_DONE_V1(x)		((x) & (~BITS_8051_MBIST_DONE_V1))
#define BIT_GET_8051_MBIST_DONE_V1(x)			(((x) >> BIT_SHIFT_8051_MBIST_DONE_V1) & BIT_MASK_8051_MBIST_DONE_V1)
#define BIT_SET_8051_MBIST_DONE_V1(x, v)		(BIT_CLEAR_8051_MBIST_DONE_V1(x) | BIT_8051_MBIST_DONE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_USB_MBIST_DONE			24
#define BIT_MASK_USB_MBIST_DONE			0x3
#define BIT_USB_MBIST_DONE(x)				(((x) & BIT_MASK_USB_MBIST_DONE) << BIT_SHIFT_USB_MBIST_DONE)
#define BITS_USB_MBIST_DONE				(BIT_MASK_USB_MBIST_DONE << BIT_SHIFT_USB_MBIST_DONE)
#define BIT_CLEAR_USB_MBIST_DONE(x)			((x) & (~BITS_USB_MBIST_DONE))
#define BIT_GET_USB_MBIST_DONE(x)			(((x) >> BIT_SHIFT_USB_MBIST_DONE) & BIT_MASK_USB_MBIST_DONE)
#define BIT_SET_USB_MBIST_DONE(x, v)			(BIT_CLEAR_USB_MBIST_DONE(x) | BIT_USB_MBIST_DONE(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_USB_MBIST_DONE_V1			24
#define BIT_MASK_USB_MBIST_DONE_V1			0x3
#define BIT_USB_MBIST_DONE_V1(x)			(((x) & BIT_MASK_USB_MBIST_DONE_V1) << BIT_SHIFT_USB_MBIST_DONE_V1)
#define BITS_USB_MBIST_DONE_V1				(BIT_MASK_USB_MBIST_DONE_V1 << BIT_SHIFT_USB_MBIST_DONE_V1)
#define BIT_CLEAR_USB_MBIST_DONE_V1(x)			((x) & (~BITS_USB_MBIST_DONE_V1))
#define BIT_GET_USB_MBIST_DONE_V1(x)			(((x) >> BIT_SHIFT_USB_MBIST_DONE_V1) & BIT_MASK_USB_MBIST_DONE_V1)
#define BIT_SET_USB_MBIST_DONE_V1(x, v)		(BIT_CLEAR_USB_MBIST_DONE_V1(x) | BIT_USB_MBIST_DONE_V1(v))


#define BIT_SHIFT_PCIE_MBIST_DONE_V1			18
#define BIT_MASK_PCIE_MBIST_DONE_V1			0x3f
#define BIT_PCIE_MBIST_DONE_V1(x)			(((x) & BIT_MASK_PCIE_MBIST_DONE_V1) << BIT_SHIFT_PCIE_MBIST_DONE_V1)
#define BITS_PCIE_MBIST_DONE_V1			(BIT_MASK_PCIE_MBIST_DONE_V1 << BIT_SHIFT_PCIE_MBIST_DONE_V1)
#define BIT_CLEAR_PCIE_MBIST_DONE_V1(x)		((x) & (~BITS_PCIE_MBIST_DONE_V1))
#define BIT_GET_PCIE_MBIST_DONE_V1(x)			(((x) >> BIT_SHIFT_PCIE_MBIST_DONE_V1) & BIT_MASK_PCIE_MBIST_DONE_V1)
#define BIT_SET_PCIE_MBIST_DONE_V1(x, v)		(BIT_CLEAR_PCIE_MBIST_DONE_V1(x) | BIT_PCIE_MBIST_DONE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_PCIE_MBIST_DONE			16
#define BIT_MASK_PCIE_MBIST_DONE			0x3f
#define BIT_PCIE_MBIST_DONE(x)				(((x) & BIT_MASK_PCIE_MBIST_DONE) << BIT_SHIFT_PCIE_MBIST_DONE)
#define BITS_PCIE_MBIST_DONE				(BIT_MASK_PCIE_MBIST_DONE << BIT_SHIFT_PCIE_MBIST_DONE)
#define BIT_CLEAR_PCIE_MBIST_DONE(x)			((x) & (~BITS_PCIE_MBIST_DONE))
#define BIT_GET_PCIE_MBIST_DONE(x)			(((x) >> BIT_SHIFT_PCIE_MBIST_DONE) & BIT_MASK_PCIE_MBIST_DONE)
#define BIT_SET_PCIE_MBIST_DONE(x, v)			(BIT_CLEAR_PCIE_MBIST_DONE(x) | BIT_PCIE_MBIST_DONE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_MAC_MBIST_DONE			0
#define BIT_MASK_MAC_MBIST_DONE			0xfff
#define BIT_MAC_MBIST_DONE(x)				(((x) & BIT_MASK_MAC_MBIST_DONE) << BIT_SHIFT_MAC_MBIST_DONE)
#define BITS_MAC_MBIST_DONE				(BIT_MASK_MAC_MBIST_DONE << BIT_SHIFT_MAC_MBIST_DONE)
#define BIT_CLEAR_MAC_MBIST_DONE(x)			((x) & (~BITS_MAC_MBIST_DONE))
#define BIT_GET_MAC_MBIST_DONE(x)			(((x) >> BIT_SHIFT_MAC_MBIST_DONE) & BIT_MASK_MAC_MBIST_DONE)
#define BIT_SET_MAC_MBIST_DONE(x, v)			(BIT_CLEAR_MAC_MBIST_DONE(x) | BIT_MAC_MBIST_DONE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_DONE				(Offset 0x0178) */


#define BIT_SHIFT_MAC_MBIST_DONE_V1			0
#define BIT_MASK_MAC_MBIST_DONE_V1			0x3ffff
#define BIT_MAC_MBIST_DONE_V1(x)			(((x) & BIT_MASK_MAC_MBIST_DONE_V1) << BIT_SHIFT_MAC_MBIST_DONE_V1)
#define BITS_MAC_MBIST_DONE_V1				(BIT_MASK_MAC_MBIST_DONE_V1 << BIT_SHIFT_MAC_MBIST_DONE_V1)
#define BIT_CLEAR_MAC_MBIST_DONE_V1(x)			((x) & (~BITS_MAC_MBIST_DONE_V1))
#define BIT_GET_MAC_MBIST_DONE_V1(x)			(((x) >> BIT_SHIFT_MAC_MBIST_DONE_V1) & BIT_MASK_MAC_MBIST_DONE_V1)
#define BIT_SET_MAC_MBIST_DONE_V1(x, v)		(BIT_CLEAR_MAC_MBIST_DONE_V1(x) | BIT_MAC_MBIST_DONE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIST_ROM_CRC_DATA			(Offset 0x017C) */


#define BIT_SHIFT_MBIST_ROM_CRC_DATA			0
#define BIT_MASK_MBIST_ROM_CRC_DATA			0xffffffffL
#define BIT_MBIST_ROM_CRC_DATA(x)			(((x) & BIT_MASK_MBIST_ROM_CRC_DATA) << BIT_SHIFT_MBIST_ROM_CRC_DATA)
#define BITS_MBIST_ROM_CRC_DATA			(BIT_MASK_MBIST_ROM_CRC_DATA << BIT_SHIFT_MBIST_ROM_CRC_DATA)
#define BIT_CLEAR_MBIST_ROM_CRC_DATA(x)		((x) & (~BITS_MBIST_ROM_CRC_DATA))
#define BIT_GET_MBIST_ROM_CRC_DATA(x)			(((x) >> BIT_SHIFT_MBIST_ROM_CRC_DATA) & BIT_MASK_MBIST_ROM_CRC_DATA)
#define BIT_SET_MBIST_ROM_CRC_DATA(x, v)		(BIT_CLEAR_MBIST_ROM_CRC_DATA(x) | BIT_MBIST_ROM_CRC_DATA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_MBIST_FAIL_NRML			(Offset 0x017C) */


#define BIT_SHIFT_MBIST_FAIL_NRML_V1			0
#define BIT_MASK_MBIST_FAIL_NRML_V1			0x3ffff
#define BIT_MBIST_FAIL_NRML_V1(x)			(((x) & BIT_MASK_MBIST_FAIL_NRML_V1) << BIT_SHIFT_MBIST_FAIL_NRML_V1)
#define BITS_MBIST_FAIL_NRML_V1			(BIT_MASK_MBIST_FAIL_NRML_V1 << BIT_SHIFT_MBIST_FAIL_NRML_V1)
#define BIT_CLEAR_MBIST_FAIL_NRML_V1(x)		((x) & (~BITS_MBIST_FAIL_NRML_V1))
#define BIT_GET_MBIST_FAIL_NRML_V1(x)			(((x) >> BIT_SHIFT_MBIST_FAIL_NRML_V1) & BIT_MASK_MBIST_FAIL_NRML_V1)
#define BIT_SET_MBIST_FAIL_NRML_V1(x, v)		(BIT_CLEAR_MBIST_FAIL_NRML_V1(x) | BIT_MBIST_FAIL_NRML_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MBIST_FAIL_NRML			(Offset 0x017C) */


#define BIT_SHIFT_MBIST_FAIL_NRML			0
#define BIT_MASK_MBIST_FAIL_NRML			0xffffffffL
#define BIT_MBIST_FAIL_NRML(x)				(((x) & BIT_MASK_MBIST_FAIL_NRML) << BIT_SHIFT_MBIST_FAIL_NRML)
#define BITS_MBIST_FAIL_NRML				(BIT_MASK_MBIST_FAIL_NRML << BIT_SHIFT_MBIST_FAIL_NRML)
#define BIT_CLEAR_MBIST_FAIL_NRML(x)			((x) & (~BITS_MBIST_FAIL_NRML))
#define BIT_GET_MBIST_FAIL_NRML(x)			(((x) >> BIT_SHIFT_MBIST_FAIL_NRML) & BIT_MASK_MBIST_FAIL_NRML)
#define BIT_SET_MBIST_FAIL_NRML(x, v)			(BIT_CLEAR_MBIST_FAIL_NRML(x) | BIT_MBIST_FAIL_NRML(v))


#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD			0
#define BIT_MASK_R_WMAC_IPV6_MYIPAD			0xffffffffffffffffffffffffffffffffL
#define BIT_R_WMAC_IPV6_MYIPAD(x)			(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD)
#define BITS_R_WMAC_IPV6_MYIPAD			(BIT_MASK_R_WMAC_IPV6_MYIPAD << BIT_SHIFT_R_WMAC_IPV6_MYIPAD)
#define BIT_CLEAR_R_WMAC_IPV6_MYIPAD(x)		((x) & (~BITS_R_WMAC_IPV6_MYIPAD))
#define BIT_GET_R_WMAC_IPV6_MYIPAD(x)			(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD) & BIT_MASK_R_WMAC_IPV6_MYIPAD)
#define BIT_SET_R_WMAC_IPV6_MYIPAD(x, v)		(BIT_CLEAR_R_WMAC_IPV6_MYIPAD(x) | BIT_R_WMAC_IPV6_MYIPAD(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MBIST_READ_BIST_RPT			(Offset 0x017C) */


#define BIT_SHIFT_MBIST_READ_BIST_RPT			0
#define BIT_MASK_MBIST_READ_BIST_RPT			0xffffffffL
#define BIT_MBIST_READ_BIST_RPT(x)			(((x) & BIT_MASK_MBIST_READ_BIST_RPT) << BIT_SHIFT_MBIST_READ_BIST_RPT)
#define BITS_MBIST_READ_BIST_RPT			(BIT_MASK_MBIST_READ_BIST_RPT << BIT_SHIFT_MBIST_READ_BIST_RPT)
#define BIT_CLEAR_MBIST_READ_BIST_RPT(x)		((x) & (~BITS_MBIST_READ_BIST_RPT))
#define BIT_GET_MBIST_READ_BIST_RPT(x)			(((x) >> BIT_SHIFT_MBIST_READ_BIST_RPT) & BIT_MASK_MBIST_READ_BIST_RPT)
#define BIT_SET_MBIST_READ_BIST_RPT(x, v)		(BIT_CLEAR_MBIST_READ_BIST_RPT(x) | BIT_MBIST_READ_BIST_RPT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AES_DECRPT_DATA			(Offset 0x0180) */


#define BIT_SHIFT_IPS_CFG_ADDR				0
#define BIT_MASK_IPS_CFG_ADDR				0xff
#define BIT_IPS_CFG_ADDR(x)				(((x) & BIT_MASK_IPS_CFG_ADDR) << BIT_SHIFT_IPS_CFG_ADDR)
#define BITS_IPS_CFG_ADDR				(BIT_MASK_IPS_CFG_ADDR << BIT_SHIFT_IPS_CFG_ADDR)
#define BIT_CLEAR_IPS_CFG_ADDR(x)			((x) & (~BITS_IPS_CFG_ADDR))
#define BIT_GET_IPS_CFG_ADDR(x)			(((x) >> BIT_SHIFT_IPS_CFG_ADDR) & BIT_MASK_IPS_CFG_ADDR)
#define BIT_SET_IPS_CFG_ADDR(x, v)			(BIT_CLEAR_IPS_CFG_ADDR(x) | BIT_IPS_CFG_ADDR(v))


/* 2 REG_AES_DECRPT_CFG			(Offset 0x0184) */


#define BIT_SHIFT_IPS_CFG_DATA				0
#define BIT_MASK_IPS_CFG_DATA				0xffffffffL
#define BIT_IPS_CFG_DATA(x)				(((x) & BIT_MASK_IPS_CFG_DATA) << BIT_SHIFT_IPS_CFG_DATA)
#define BITS_IPS_CFG_DATA				(BIT_MASK_IPS_CFG_DATA << BIT_SHIFT_IPS_CFG_DATA)
#define BIT_CLEAR_IPS_CFG_DATA(x)			((x) & (~BITS_IPS_CFG_DATA))
#define BIT_GET_IPS_CFG_DATA(x)			(((x) >> BIT_SHIFT_IPS_CFG_DATA) & BIT_MASK_IPS_CFG_DATA)
#define BIT_SET_IPS_CFG_DATA(x, v)			(BIT_CLEAR_IPS_CFG_DATA(x) | BIT_IPS_CFG_DATA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIOE_CTRL				(Offset 0x0188) */

#define BIT_HIOE_WRITE_REQ				BIT(30)
#define BIT_HIOE_READ_REQ				BIT(29)
#define BIT_INST_FORMAT_ERR				BIT(25)
#define BIT_OP_TIMEOUT_ERR				BIT(24)

#define BIT_SHIFT_HIOE_OP_TIMEOUT			16
#define BIT_MASK_HIOE_OP_TIMEOUT			0xff
#define BIT_HIOE_OP_TIMEOUT(x)				(((x) & BIT_MASK_HIOE_OP_TIMEOUT) << BIT_SHIFT_HIOE_OP_TIMEOUT)
#define BITS_HIOE_OP_TIMEOUT				(BIT_MASK_HIOE_OP_TIMEOUT << BIT_SHIFT_HIOE_OP_TIMEOUT)
#define BIT_CLEAR_HIOE_OP_TIMEOUT(x)			((x) & (~BITS_HIOE_OP_TIMEOUT))
#define BIT_GET_HIOE_OP_TIMEOUT(x)			(((x) >> BIT_SHIFT_HIOE_OP_TIMEOUT) & BIT_MASK_HIOE_OP_TIMEOUT)
#define BIT_SET_HIOE_OP_TIMEOUT(x, v)			(BIT_CLEAR_HIOE_OP_TIMEOUT(x) | BIT_HIOE_OP_TIMEOUT(v))


#define BIT_SHIFT_BITDATA_CHECKSUM			0
#define BIT_MASK_BITDATA_CHECKSUM			0xffff
#define BIT_BITDATA_CHECKSUM(x)			(((x) & BIT_MASK_BITDATA_CHECKSUM) << BIT_SHIFT_BITDATA_CHECKSUM)
#define BITS_BITDATA_CHECKSUM				(BIT_MASK_BITDATA_CHECKSUM << BIT_SHIFT_BITDATA_CHECKSUM)
#define BIT_CLEAR_BITDATA_CHECKSUM(x)			((x) & (~BITS_BITDATA_CHECKSUM))
#define BIT_GET_BITDATA_CHECKSUM(x)			(((x) >> BIT_SHIFT_BITDATA_CHECKSUM) & BIT_MASK_BITDATA_CHECKSUM)
#define BIT_SET_BITDATA_CHECKSUM(x, v)			(BIT_CLEAR_BITDATA_CHECKSUM(x) | BIT_BITDATA_CHECKSUM(v))


/* 2 REG_HIOE_CFG_FILE			(Offset 0x018C) */


#define BIT_SHIFT_TXBF_END_ADDR			16
#define BIT_MASK_TXBF_END_ADDR				0xffff
#define BIT_TXBF_END_ADDR(x)				(((x) & BIT_MASK_TXBF_END_ADDR) << BIT_SHIFT_TXBF_END_ADDR)
#define BITS_TXBF_END_ADDR				(BIT_MASK_TXBF_END_ADDR << BIT_SHIFT_TXBF_END_ADDR)
#define BIT_CLEAR_TXBF_END_ADDR(x)			((x) & (~BITS_TXBF_END_ADDR))
#define BIT_GET_TXBF_END_ADDR(x)			(((x) >> BIT_SHIFT_TXBF_END_ADDR) & BIT_MASK_TXBF_END_ADDR)
#define BIT_SET_TXBF_END_ADDR(x, v)			(BIT_CLEAR_TXBF_END_ADDR(x) | BIT_TXBF_END_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_MACCLKFRQ				(Offset 0x018C) */


#define BIT_SHIFT_MACCLK_FREQ_LOW32			0
#define BIT_MASK_MACCLK_FREQ_LOW32			0xffffffffL
#define BIT_MACCLK_FREQ_LOW32(x)			(((x) & BIT_MASK_MACCLK_FREQ_LOW32) << BIT_SHIFT_MACCLK_FREQ_LOW32)
#define BITS_MACCLK_FREQ_LOW32				(BIT_MASK_MACCLK_FREQ_LOW32 << BIT_SHIFT_MACCLK_FREQ_LOW32)
#define BIT_CLEAR_MACCLK_FREQ_LOW32(x)			((x) & (~BITS_MACCLK_FREQ_LOW32))
#define BIT_GET_MACCLK_FREQ_LOW32(x)			(((x) >> BIT_SHIFT_MACCLK_FREQ_LOW32) & BIT_MASK_MACCLK_FREQ_LOW32)
#define BIT_SET_MACCLK_FREQ_LOW32(x, v)		(BIT_CLEAR_MACCLK_FREQ_LOW32(x) | BIT_MACCLK_FREQ_LOW32(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIOE_CFG_FILE			(Offset 0x018C) */


#define BIT_SHIFT_TXBF_STR_ADDR			0
#define BIT_MASK_TXBF_STR_ADDR				0xffff
#define BIT_TXBF_STR_ADDR(x)				(((x) & BIT_MASK_TXBF_STR_ADDR) << BIT_SHIFT_TXBF_STR_ADDR)
#define BITS_TXBF_STR_ADDR				(BIT_MASK_TXBF_STR_ADDR << BIT_SHIFT_TXBF_STR_ADDR)
#define BIT_CLEAR_TXBF_STR_ADDR(x)			((x) & (~BITS_TXBF_STR_ADDR))
#define BIT_GET_TXBF_STR_ADDR(x)			(((x) >> BIT_SHIFT_TXBF_STR_ADDR) & BIT_MASK_TXBF_STR_ADDR)
#define BIT_SET_TXBF_STR_ADDR(x, v)			(BIT_CLEAR_TXBF_STR_ADDR(x) | BIT_TXBF_STR_ADDR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TMETER				(Offset 0x0190) */

#define BIT_TEMP_VALID					BIT(31)

#define BIT_SHIFT_TEMP_VALUE				24
#define BIT_MASK_TEMP_VALUE				0x3f
#define BIT_TEMP_VALUE(x)				(((x) & BIT_MASK_TEMP_VALUE) << BIT_SHIFT_TEMP_VALUE)
#define BITS_TEMP_VALUE				(BIT_MASK_TEMP_VALUE << BIT_SHIFT_TEMP_VALUE)
#define BIT_CLEAR_TEMP_VALUE(x)			((x) & (~BITS_TEMP_VALUE))
#define BIT_GET_TEMP_VALUE(x)				(((x) >> BIT_SHIFT_TEMP_VALUE) & BIT_MASK_TEMP_VALUE)
#define BIT_SET_TEMP_VALUE(x, v)			(BIT_CLEAR_TEMP_VALUE(x) | BIT_TEMP_VALUE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TMETER				(Offset 0x0190) */


#define BIT_SHIFT_NCO_OUTCLK_FREQ			12
#define BIT_MASK_NCO_OUTCLK_FREQ			0xfffff
#define BIT_NCO_OUTCLK_FREQ(x)				(((x) & BIT_MASK_NCO_OUTCLK_FREQ) << BIT_SHIFT_NCO_OUTCLK_FREQ)
#define BITS_NCO_OUTCLK_FREQ				(BIT_MASK_NCO_OUTCLK_FREQ << BIT_SHIFT_NCO_OUTCLK_FREQ)
#define BIT_CLEAR_NCO_OUTCLK_FREQ(x)			((x) & (~BITS_NCO_OUTCLK_FREQ))
#define BIT_GET_NCO_OUTCLK_FREQ(x)			(((x) >> BIT_SHIFT_NCO_OUTCLK_FREQ) & BIT_MASK_NCO_OUTCLK_FREQ)
#define BIT_SET_NCO_OUTCLK_FREQ(x, v)			(BIT_CLEAR_NCO_OUTCLK_FREQ(x) | BIT_NCO_OUTCLK_FREQ(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TMETER				(Offset 0x0190) */


#define BIT_SHIFT_REG_TMETER_TIMER			8
#define BIT_MASK_REG_TMETER_TIMER			0xfff
#define BIT_REG_TMETER_TIMER(x)			(((x) & BIT_MASK_REG_TMETER_TIMER) << BIT_SHIFT_REG_TMETER_TIMER)
#define BITS_REG_TMETER_TIMER				(BIT_MASK_REG_TMETER_TIMER << BIT_SHIFT_REG_TMETER_TIMER)
#define BIT_CLEAR_REG_TMETER_TIMER(x)			((x) & (~BITS_REG_TMETER_TIMER))
#define BIT_GET_REG_TMETER_TIMER(x)			(((x) >> BIT_SHIFT_REG_TMETER_TIMER) & BIT_MASK_REG_TMETER_TIMER)
#define BIT_SET_REG_TMETER_TIMER(x, v)			(BIT_CLEAR_REG_TMETER_TIMER(x) | BIT_REG_TMETER_TIMER(v))


#define BIT_SHIFT_REG_TEMP_DELTA			2
#define BIT_MASK_REG_TEMP_DELTA			0x3f
#define BIT_REG_TEMP_DELTA(x)				(((x) & BIT_MASK_REG_TEMP_DELTA) << BIT_SHIFT_REG_TEMP_DELTA)
#define BITS_REG_TEMP_DELTA				(BIT_MASK_REG_TEMP_DELTA << BIT_SHIFT_REG_TEMP_DELTA)
#define BIT_CLEAR_REG_TEMP_DELTA(x)			((x) & (~BITS_REG_TEMP_DELTA))
#define BIT_GET_REG_TEMP_DELTA(x)			(((x) >> BIT_SHIFT_REG_TEMP_DELTA) & BIT_MASK_REG_TEMP_DELTA)
#define BIT_SET_REG_TEMP_DELTA(x, v)			(BIT_CLEAR_REG_TEMP_DELTA(x) | BIT_REG_TEMP_DELTA(v))

#define BIT_REG_TMETER_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_TMETER				(Offset 0x0190) */


#define BIT_SHIFT_MACCLK_FREQ_HIGH10			0
#define BIT_MASK_MACCLK_FREQ_HIGH10			0x3ff
#define BIT_MACCLK_FREQ_HIGH10(x)			(((x) & BIT_MASK_MACCLK_FREQ_HIGH10) << BIT_SHIFT_MACCLK_FREQ_HIGH10)
#define BITS_MACCLK_FREQ_HIGH10			(BIT_MASK_MACCLK_FREQ_HIGH10 << BIT_SHIFT_MACCLK_FREQ_HIGH10)
#define BIT_CLEAR_MACCLK_FREQ_HIGH10(x)		((x) & (~BITS_MACCLK_FREQ_HIGH10))
#define BIT_GET_MACCLK_FREQ_HIGH10(x)			(((x) >> BIT_SHIFT_MACCLK_FREQ_HIGH10) & BIT_MASK_MACCLK_FREQ_HIGH10)
#define BIT_SET_MACCLK_FREQ_HIGH10(x, v)		(BIT_CLEAR_MACCLK_FREQ_HIGH10(x) | BIT_MACCLK_FREQ_HIGH10(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */


#define BIT_SHIFT_OSC_32K_CLKGEN_0			16
#define BIT_MASK_OSC_32K_CLKGEN_0			0xffff
#define BIT_OSC_32K_CLKGEN_0(x)			(((x) & BIT_MASK_OSC_32K_CLKGEN_0) << BIT_SHIFT_OSC_32K_CLKGEN_0)
#define BITS_OSC_32K_CLKGEN_0				(BIT_MASK_OSC_32K_CLKGEN_0 << BIT_SHIFT_OSC_32K_CLKGEN_0)
#define BIT_CLEAR_OSC_32K_CLKGEN_0(x)			((x) & (~BITS_OSC_32K_CLKGEN_0))
#define BIT_GET_OSC_32K_CLKGEN_0(x)			(((x) >> BIT_SHIFT_OSC_32K_CLKGEN_0) & BIT_MASK_OSC_32K_CLKGEN_0)
#define BIT_SET_OSC_32K_CLKGEN_0(x, v)			(BIT_CLEAR_OSC_32K_CLKGEN_0(x) | BIT_OSC_32K_CLKGEN_0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */

#define BIT_32K_CLK_OUT_RDY				BIT(12)

#define BIT_SHIFT_MONITOR_CYCLE_LOG2			8
#define BIT_MASK_MONITOR_CYCLE_LOG2			0xf
#define BIT_MONITOR_CYCLE_LOG2(x)			(((x) & BIT_MASK_MONITOR_CYCLE_LOG2) << BIT_SHIFT_MONITOR_CYCLE_LOG2)
#define BITS_MONITOR_CYCLE_LOG2			(BIT_MASK_MONITOR_CYCLE_LOG2 << BIT_SHIFT_MONITOR_CYCLE_LOG2)
#define BIT_CLEAR_MONITOR_CYCLE_LOG2(x)		((x) & (~BITS_MONITOR_CYCLE_LOG2))
#define BIT_GET_MONITOR_CYCLE_LOG2(x)			(((x) >> BIT_SHIFT_MONITOR_CYCLE_LOG2) & BIT_MASK_MONITOR_CYCLE_LOG2)
#define BIT_SET_MONITOR_CYCLE_LOG2(x, v)		(BIT_CLEAR_MONITOR_CYCLE_LOG2(x) | BIT_MONITOR_CYCLE_LOG2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */


#define BIT_SHIFT_OSC_32K_RES_COMP			4
#define BIT_MASK_OSC_32K_RES_COMP			0x3
#define BIT_OSC_32K_RES_COMP(x)			(((x) & BIT_MASK_OSC_32K_RES_COMP) << BIT_SHIFT_OSC_32K_RES_COMP)
#define BITS_OSC_32K_RES_COMP				(BIT_MASK_OSC_32K_RES_COMP << BIT_SHIFT_OSC_32K_RES_COMP)
#define BIT_CLEAR_OSC_32K_RES_COMP(x)			((x) & (~BITS_OSC_32K_RES_COMP))
#define BIT_GET_OSC_32K_RES_COMP(x)			(((x) >> BIT_SHIFT_OSC_32K_RES_COMP) & BIT_MASK_OSC_32K_RES_COMP)
#define BIT_SET_OSC_32K_RES_COMP(x, v)			(BIT_CLEAR_OSC_32K_RES_COMP(x) | BIT_OSC_32K_RES_COMP(v))

#define BIT_OSC_32K_OUT_SEL				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */

#define BIT_ISO_WL_2_OSC_32K				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_OSC_32K_CTRL			(Offset 0x0194) */

#define BIT_POW_CKGEN					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */

#define BIT_CAL_32K_REG_WR				BIT(31)
#define BIT_CAL_32K_DBG_SEL				BIT(22)

#define BIT_SHIFT_CAL_32K_REG_ADDR			16
#define BIT_MASK_CAL_32K_REG_ADDR			0x3f
#define BIT_CAL_32K_REG_ADDR(x)			(((x) & BIT_MASK_CAL_32K_REG_ADDR) << BIT_SHIFT_CAL_32K_REG_ADDR)
#define BITS_CAL_32K_REG_ADDR				(BIT_MASK_CAL_32K_REG_ADDR << BIT_SHIFT_CAL_32K_REG_ADDR)
#define BIT_CLEAR_CAL_32K_REG_ADDR(x)			((x) & (~BITS_CAL_32K_REG_ADDR))
#define BIT_GET_CAL_32K_REG_ADDR(x)			(((x) >> BIT_SHIFT_CAL_32K_REG_ADDR) & BIT_MASK_CAL_32K_REG_ADDR)
#define BIT_SET_CAL_32K_REG_ADDR(x, v)			(BIT_CLEAR_CAL_32K_REG_ADDR(x) | BIT_CAL_32K_REG_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */


#define BIT_SHIFT_FREQVALUE_UNREGCLK			8
#define BIT_MASK_FREQVALUE_UNREGCLK			0xffffff
#define BIT_FREQVALUE_UNREGCLK(x)			(((x) & BIT_MASK_FREQVALUE_UNREGCLK) << BIT_SHIFT_FREQVALUE_UNREGCLK)
#define BITS_FREQVALUE_UNREGCLK			(BIT_MASK_FREQVALUE_UNREGCLK << BIT_SHIFT_FREQVALUE_UNREGCLK)
#define BIT_CLEAR_FREQVALUE_UNREGCLK(x)		((x) & (~BITS_FREQVALUE_UNREGCLK))
#define BIT_GET_FREQVALUE_UNREGCLK(x)			(((x) >> BIT_SHIFT_FREQVALUE_UNREGCLK) & BIT_MASK_FREQVALUE_UNREGCLK)
#define BIT_SET_FREQVALUE_UNREGCLK(x, v)		(BIT_CLEAR_FREQVALUE_UNREGCLK(x) | BIT_FREQVALUE_UNREGCLK(v))

#define BIT_CAL32K_DBGMOD				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */


#define BIT_SHIFT_CAL_32K_REG_DATA			0
#define BIT_MASK_CAL_32K_REG_DATA			0xffff
#define BIT_CAL_32K_REG_DATA(x)			(((x) & BIT_MASK_CAL_32K_REG_DATA) << BIT_SHIFT_CAL_32K_REG_DATA)
#define BITS_CAL_32K_REG_DATA				(BIT_MASK_CAL_32K_REG_DATA << BIT_SHIFT_CAL_32K_REG_DATA)
#define BIT_CLEAR_CAL_32K_REG_DATA(x)			((x) & (~BITS_CAL_32K_REG_DATA))
#define BIT_GET_CAL_32K_REG_DATA(x)			(((x) >> BIT_SHIFT_CAL_32K_REG_DATA) & BIT_MASK_CAL_32K_REG_DATA)
#define BIT_SET_CAL_32K_REG_DATA(x, v)			(BIT_CLEAR_CAL_32K_REG_DATA(x) | BIT_CAL_32K_REG_DATA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_32K_CAL_REG1			(Offset 0x0198) */


#define BIT_SHIFT_NCO_THRS				0
#define BIT_MASK_NCO_THRS				0x7f
#define BIT_NCO_THRS(x)				(((x) & BIT_MASK_NCO_THRS) << BIT_SHIFT_NCO_THRS)
#define BITS_NCO_THRS					(BIT_MASK_NCO_THRS << BIT_SHIFT_NCO_THRS)
#define BIT_CLEAR_NCO_THRS(x)				((x) & (~BITS_NCO_THRS))
#define BIT_GET_NCO_THRS(x)				(((x) >> BIT_SHIFT_NCO_THRS) & BIT_MASK_NCO_THRS)
#define BIT_SET_NCO_THRS(x, v)				(BIT_CLEAR_NCO_THRS(x) | BIT_NCO_THRS(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_C2HEVT				(Offset 0x01A0) */


#define BIT_SHIFT_C2HEVT_MSG				0
#define BIT_MASK_C2HEVT_MSG				0xffffffffffffffffffffffffffffffffL
#define BIT_C2HEVT_MSG(x)				(((x) & BIT_MASK_C2HEVT_MSG) << BIT_SHIFT_C2HEVT_MSG)
#define BITS_C2HEVT_MSG				(BIT_MASK_C2HEVT_MSG << BIT_SHIFT_C2HEVT_MSG)
#define BIT_CLEAR_C2HEVT_MSG(x)			((x) & (~BITS_C2HEVT_MSG))
#define BIT_GET_C2HEVT_MSG(x)				(((x) >> BIT_SHIFT_C2HEVT_MSG) & BIT_MASK_C2HEVT_MSG)
#define BIT_SET_C2HEVT_MSG(x, v)			(BIT_CLEAR_C2HEVT_MSG(x) | BIT_C2HEVT_MSG(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_C2HEVT				(Offset 0x01A0) */


#define BIT_SHIFT_C2HEVT_MSG_V1			0
#define BIT_MASK_C2HEVT_MSG_V1				0xffffffffL
#define BIT_C2HEVT_MSG_V1(x)				(((x) & BIT_MASK_C2HEVT_MSG_V1) << BIT_SHIFT_C2HEVT_MSG_V1)
#define BITS_C2HEVT_MSG_V1				(BIT_MASK_C2HEVT_MSG_V1 << BIT_SHIFT_C2HEVT_MSG_V1)
#define BIT_CLEAR_C2HEVT_MSG_V1(x)			((x) & (~BITS_C2HEVT_MSG_V1))
#define BIT_GET_C2HEVT_MSG_V1(x)			(((x) >> BIT_SHIFT_C2HEVT_MSG_V1) & BIT_MASK_C2HEVT_MSG_V1)
#define BIT_SET_C2HEVT_MSG_V1(x, v)			(BIT_CLEAR_C2HEVT_MSG_V1(x) | BIT_C2HEVT_MSG_V1(v))


/* 2 REG_C2HEVT_1				(Offset 0x01A4) */


#define BIT_SHIFT_C2HEVT_MSG_1				0
#define BIT_MASK_C2HEVT_MSG_1				0xffffffffL
#define BIT_C2HEVT_MSG_1(x)				(((x) & BIT_MASK_C2HEVT_MSG_1) << BIT_SHIFT_C2HEVT_MSG_1)
#define BITS_C2HEVT_MSG_1				(BIT_MASK_C2HEVT_MSG_1 << BIT_SHIFT_C2HEVT_MSG_1)
#define BIT_CLEAR_C2HEVT_MSG_1(x)			((x) & (~BITS_C2HEVT_MSG_1))
#define BIT_GET_C2HEVT_MSG_1(x)			(((x) >> BIT_SHIFT_C2HEVT_MSG_1) & BIT_MASK_C2HEVT_MSG_1)
#define BIT_SET_C2HEVT_MSG_1(x, v)			(BIT_CLEAR_C2HEVT_MSG_1(x) | BIT_C2HEVT_MSG_1(v))


/* 2 REG_C2HEVT_2				(Offset 0x01A8) */


#define BIT_SHIFT_C2HEVT_MSG_2				0
#define BIT_MASK_C2HEVT_MSG_2				0xffffffffL
#define BIT_C2HEVT_MSG_2(x)				(((x) & BIT_MASK_C2HEVT_MSG_2) << BIT_SHIFT_C2HEVT_MSG_2)
#define BITS_C2HEVT_MSG_2				(BIT_MASK_C2HEVT_MSG_2 << BIT_SHIFT_C2HEVT_MSG_2)
#define BIT_CLEAR_C2HEVT_MSG_2(x)			((x) & (~BITS_C2HEVT_MSG_2))
#define BIT_GET_C2HEVT_MSG_2(x)			(((x) >> BIT_SHIFT_C2HEVT_MSG_2) & BIT_MASK_C2HEVT_MSG_2)
#define BIT_SET_C2HEVT_MSG_2(x, v)			(BIT_CLEAR_C2HEVT_MSG_2(x) | BIT_C2HEVT_MSG_2(v))


/* 2 REG_C2HEVT_3				(Offset 0x01AC) */


#define BIT_SHIFT_C2HEVT_MSG_3				0
#define BIT_MASK_C2HEVT_MSG_3				0xffffffffL
#define BIT_C2HEVT_MSG_3(x)				(((x) & BIT_MASK_C2HEVT_MSG_3) << BIT_SHIFT_C2HEVT_MSG_3)
#define BITS_C2HEVT_MSG_3				(BIT_MASK_C2HEVT_MSG_3 << BIT_SHIFT_C2HEVT_MSG_3)
#define BIT_CLEAR_C2HEVT_MSG_3(x)			((x) & (~BITS_C2HEVT_MSG_3))
#define BIT_GET_C2HEVT_MSG_3(x)			(((x) >> BIT_SHIFT_C2HEVT_MSG_3) & BIT_MASK_C2HEVT_MSG_3)
#define BIT_SET_C2HEVT_MSG_3(x, v)			(BIT_CLEAR_C2HEVT_MSG_3(x) | BIT_C2HEVT_MSG_3(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDESC_BUFF_RPTR			(Offset 0x01B0) */


#define BIT_SHIFT_RXDESC_BUFF_RPTR			0
#define BIT_MASK_RXDESC_BUFF_RPTR			0xffffffffL
#define BIT_RXDESC_BUFF_RPTR(x)			(((x) & BIT_MASK_RXDESC_BUFF_RPTR) << BIT_SHIFT_RXDESC_BUFF_RPTR)
#define BITS_RXDESC_BUFF_RPTR				(BIT_MASK_RXDESC_BUFF_RPTR << BIT_SHIFT_RXDESC_BUFF_RPTR)
#define BIT_CLEAR_RXDESC_BUFF_RPTR(x)			((x) & (~BITS_RXDESC_BUFF_RPTR))
#define BIT_GET_RXDESC_BUFF_RPTR(x)			(((x) >> BIT_SHIFT_RXDESC_BUFF_RPTR) & BIT_MASK_RXDESC_BUFF_RPTR)
#define BIT_SET_RXDESC_BUFF_RPTR(x, v)			(BIT_CLEAR_RXDESC_BUFF_RPTR(x) | BIT_RXDESC_BUFF_RPTR(v))


/* 2 REG_RXDESC_BUFF_WPTR			(Offset 0x01B4) */


#define BIT_SHIFT_RXDESC_BUFF_WPTR			0
#define BIT_MASK_RXDESC_BUFF_WPTR			0xffffffffL
#define BIT_RXDESC_BUFF_WPTR(x)			(((x) & BIT_MASK_RXDESC_BUFF_WPTR) << BIT_SHIFT_RXDESC_BUFF_WPTR)
#define BITS_RXDESC_BUFF_WPTR				(BIT_MASK_RXDESC_BUFF_WPTR << BIT_SHIFT_RXDESC_BUFF_WPTR)
#define BIT_CLEAR_RXDESC_BUFF_WPTR(x)			((x) & (~BITS_RXDESC_BUFF_WPTR))
#define BIT_GET_RXDESC_BUFF_WPTR(x)			(((x) >> BIT_SHIFT_RXDESC_BUFF_WPTR) & BIT_MASK_RXDESC_BUFF_WPTR)
#define BIT_SET_RXDESC_BUFF_WPTR(x, v)			(BIT_CLEAR_RXDESC_BUFF_WPTR(x) | BIT_RXDESC_BUFF_WPTR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_DEFINED_PAGE1			(Offset 0x01B8) */


#define BIT_SHIFT_SW_DEFINED_PAGE1			0
#define BIT_MASK_SW_DEFINED_PAGE1			0xffffffffffffffffL
#define BIT_SW_DEFINED_PAGE1(x)			(((x) & BIT_MASK_SW_DEFINED_PAGE1) << BIT_SHIFT_SW_DEFINED_PAGE1)
#define BITS_SW_DEFINED_PAGE1				(BIT_MASK_SW_DEFINED_PAGE1 << BIT_SHIFT_SW_DEFINED_PAGE1)
#define BIT_CLEAR_SW_DEFINED_PAGE1(x)			((x) & (~BITS_SW_DEFINED_PAGE1))
#define BIT_GET_SW_DEFINED_PAGE1(x)			(((x) >> BIT_SHIFT_SW_DEFINED_PAGE1) & BIT_MASK_SW_DEFINED_PAGE1)
#define BIT_SET_SW_DEFINED_PAGE1(x, v)			(BIT_CLEAR_SW_DEFINED_PAGE1(x) | BIT_SW_DEFINED_PAGE1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SW_DEFINED_PAGE1			(Offset 0x01B8) */


#define BIT_SHIFT_SW_DEFINED_PAGE1_V1			0
#define BIT_MASK_SW_DEFINED_PAGE1_V1			0xffffffffL
#define BIT_SW_DEFINED_PAGE1_V1(x)			(((x) & BIT_MASK_SW_DEFINED_PAGE1_V1) << BIT_SHIFT_SW_DEFINED_PAGE1_V1)
#define BITS_SW_DEFINED_PAGE1_V1			(BIT_MASK_SW_DEFINED_PAGE1_V1 << BIT_SHIFT_SW_DEFINED_PAGE1_V1)
#define BIT_CLEAR_SW_DEFINED_PAGE1_V1(x)		((x) & (~BITS_SW_DEFINED_PAGE1_V1))
#define BIT_GET_SW_DEFINED_PAGE1_V1(x)			(((x) >> BIT_SHIFT_SW_DEFINED_PAGE1_V1) & BIT_MASK_SW_DEFINED_PAGE1_V1)
#define BIT_SET_SW_DEFINED_PAGE1_V1(x, v)		(BIT_CLEAR_SW_DEFINED_PAGE1_V1(x) | BIT_SW_DEFINED_PAGE1_V1(v))


/* 2 REG_SW_DEFINED_PAGE2			(Offset 0x01BC) */


#define BIT_SHIFT_SW_DEFINED_PAGE2			0
#define BIT_MASK_SW_DEFINED_PAGE2			0xffffffffL
#define BIT_SW_DEFINED_PAGE2(x)			(((x) & BIT_MASK_SW_DEFINED_PAGE2) << BIT_SHIFT_SW_DEFINED_PAGE2)
#define BITS_SW_DEFINED_PAGE2				(BIT_MASK_SW_DEFINED_PAGE2 << BIT_SHIFT_SW_DEFINED_PAGE2)
#define BIT_CLEAR_SW_DEFINED_PAGE2(x)			((x) & (~BITS_SW_DEFINED_PAGE2))
#define BIT_GET_SW_DEFINED_PAGE2(x)			(((x) >> BIT_SHIFT_SW_DEFINED_PAGE2) & BIT_MASK_SW_DEFINED_PAGE2)
#define BIT_SET_SW_DEFINED_PAGE2(x, v)			(BIT_CLEAR_SW_DEFINED_PAGE2(x) | BIT_SW_DEFINED_PAGE2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MCUTST_I				(Offset 0x01C0) */


#define BIT_SHIFT_MCUDMSG_I				0
#define BIT_MASK_MCUDMSG_I				0xffffffffL
#define BIT_MCUDMSG_I(x)				(((x) & BIT_MASK_MCUDMSG_I) << BIT_SHIFT_MCUDMSG_I)
#define BITS_MCUDMSG_I					(BIT_MASK_MCUDMSG_I << BIT_SHIFT_MCUDMSG_I)
#define BIT_CLEAR_MCUDMSG_I(x)				((x) & (~BITS_MCUDMSG_I))
#define BIT_GET_MCUDMSG_I(x)				(((x) >> BIT_SHIFT_MCUDMSG_I) & BIT_MASK_MCUDMSG_I)
#define BIT_SET_MCUDMSG_I(x, v)			(BIT_CLEAR_MCUDMSG_I(x) | BIT_MCUDMSG_I(v))


/* 2 REG_MCUTST_II				(Offset 0x01C4) */


#define BIT_SHIFT_MCUDMSG_II				0
#define BIT_MASK_MCUDMSG_II				0xffffffffL
#define BIT_MCUDMSG_II(x)				(((x) & BIT_MASK_MCUDMSG_II) << BIT_SHIFT_MCUDMSG_II)
#define BITS_MCUDMSG_II				(BIT_MASK_MCUDMSG_II << BIT_SHIFT_MCUDMSG_II)
#define BIT_CLEAR_MCUDMSG_II(x)			((x) & (~BITS_MCUDMSG_II))
#define BIT_GET_MCUDMSG_II(x)				(((x) >> BIT_SHIFT_MCUDMSG_II) & BIT_MASK_MCUDMSG_II)
#define BIT_SET_MCUDMSG_II(x, v)			(BIT_CLEAR_MCUDMSG_II(x) | BIT_MCUDMSG_II(v))


/* 2 REG_FMETHR				(Offset 0x01C8) */

#define BIT_FMSG_INT					BIT(31)

#define BIT_SHIFT_FW_MSG				0
#define BIT_MASK_FW_MSG				0xffffffffL
#define BIT_FW_MSG(x)					(((x) & BIT_MASK_FW_MSG) << BIT_SHIFT_FW_MSG)
#define BITS_FW_MSG					(BIT_MASK_FW_MSG << BIT_SHIFT_FW_MSG)
#define BIT_CLEAR_FW_MSG(x)				((x) & (~BITS_FW_MSG))
#define BIT_GET_FW_MSG(x)				(((x) >> BIT_SHIFT_FW_MSG) & BIT_MASK_FW_MSG)
#define BIT_SET_FW_MSG(x, v)				(BIT_CLEAR_FW_MSG(x) | BIT_FW_MSG(v))


/* 2 REG_HMETFR				(Offset 0x01CC) */


#define BIT_SHIFT_HRCV_MSG				24
#define BIT_MASK_HRCV_MSG				0xff
#define BIT_HRCV_MSG(x)				(((x) & BIT_MASK_HRCV_MSG) << BIT_SHIFT_HRCV_MSG)
#define BITS_HRCV_MSG					(BIT_MASK_HRCV_MSG << BIT_SHIFT_HRCV_MSG)
#define BIT_CLEAR_HRCV_MSG(x)				((x) & (~BITS_HRCV_MSG))
#define BIT_GET_HRCV_MSG(x)				(((x) >> BIT_SHIFT_HRCV_MSG) & BIT_MASK_HRCV_MSG)
#define BIT_SET_HRCV_MSG(x, v)				(BIT_CLEAR_HRCV_MSG(x) | BIT_HRCV_MSG(v))

#define BIT_INT_BOX3					BIT(3)
#define BIT_INT_BOX2					BIT(2)
#define BIT_INT_BOX1					BIT(1)
#define BIT_INT_BOX0					BIT(0)

/* 2 REG_HMEBOX0				(Offset 0x01D0) */


#define BIT_SHIFT_HOST_MSG_0				0
#define BIT_MASK_HOST_MSG_0				0xffffffffL
#define BIT_HOST_MSG_0(x)				(((x) & BIT_MASK_HOST_MSG_0) << BIT_SHIFT_HOST_MSG_0)
#define BITS_HOST_MSG_0				(BIT_MASK_HOST_MSG_0 << BIT_SHIFT_HOST_MSG_0)
#define BIT_CLEAR_HOST_MSG_0(x)			((x) & (~BITS_HOST_MSG_0))
#define BIT_GET_HOST_MSG_0(x)				(((x) >> BIT_SHIFT_HOST_MSG_0) & BIT_MASK_HOST_MSG_0)
#define BIT_SET_HOST_MSG_0(x, v)			(BIT_CLEAR_HOST_MSG_0(x) | BIT_HOST_MSG_0(v))


/* 2 REG_HMEBOX1				(Offset 0x01D4) */


#define BIT_SHIFT_HOST_MSG_1				0
#define BIT_MASK_HOST_MSG_1				0xffffffffL
#define BIT_HOST_MSG_1(x)				(((x) & BIT_MASK_HOST_MSG_1) << BIT_SHIFT_HOST_MSG_1)
#define BITS_HOST_MSG_1				(BIT_MASK_HOST_MSG_1 << BIT_SHIFT_HOST_MSG_1)
#define BIT_CLEAR_HOST_MSG_1(x)			((x) & (~BITS_HOST_MSG_1))
#define BIT_GET_HOST_MSG_1(x)				(((x) >> BIT_SHIFT_HOST_MSG_1) & BIT_MASK_HOST_MSG_1)
#define BIT_SET_HOST_MSG_1(x, v)			(BIT_CLEAR_HOST_MSG_1(x) | BIT_HOST_MSG_1(v))


/* 2 REG_HMEBOX2				(Offset 0x01D8) */


#define BIT_SHIFT_HOST_MSG_2				0
#define BIT_MASK_HOST_MSG_2				0xffffffffL
#define BIT_HOST_MSG_2(x)				(((x) & BIT_MASK_HOST_MSG_2) << BIT_SHIFT_HOST_MSG_2)
#define BITS_HOST_MSG_2				(BIT_MASK_HOST_MSG_2 << BIT_SHIFT_HOST_MSG_2)
#define BIT_CLEAR_HOST_MSG_2(x)			((x) & (~BITS_HOST_MSG_2))
#define BIT_GET_HOST_MSG_2(x)				(((x) >> BIT_SHIFT_HOST_MSG_2) & BIT_MASK_HOST_MSG_2)
#define BIT_SET_HOST_MSG_2(x, v)			(BIT_CLEAR_HOST_MSG_2(x) | BIT_HOST_MSG_2(v))


/* 2 REG_HMEBOX3				(Offset 0x01DC) */


#define BIT_SHIFT_HOST_MSG_3				0
#define BIT_MASK_HOST_MSG_3				0xffffffffL
#define BIT_HOST_MSG_3(x)				(((x) & BIT_MASK_HOST_MSG_3) << BIT_SHIFT_HOST_MSG_3)
#define BITS_HOST_MSG_3				(BIT_MASK_HOST_MSG_3 << BIT_SHIFT_HOST_MSG_3)
#define BIT_CLEAR_HOST_MSG_3(x)			((x) & (~BITS_HOST_MSG_3))
#define BIT_GET_HOST_MSG_3(x)				(((x) >> BIT_SHIFT_HOST_MSG_3) & BIT_MASK_HOST_MSG_3)
#define BIT_SET_HOST_MSG_3(x, v)			(BIT_CLEAR_HOST_MSG_3(x) | BIT_HOST_MSG_3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LLT_INIT				(Offset 0x01E0) */


#define BIT_SHIFT_LLTE_RWM				30
#define BIT_MASK_LLTE_RWM				0x3
#define BIT_LLTE_RWM(x)				(((x) & BIT_MASK_LLTE_RWM) << BIT_SHIFT_LLTE_RWM)
#define BITS_LLTE_RWM					(BIT_MASK_LLTE_RWM << BIT_SHIFT_LLTE_RWM)
#define BIT_CLEAR_LLTE_RWM(x)				((x) & (~BITS_LLTE_RWM))
#define BIT_GET_LLTE_RWM(x)				(((x) >> BIT_SHIFT_LLTE_RWM) & BIT_MASK_LLTE_RWM)
#define BIT_SET_LLTE_RWM(x, v)				(BIT_CLEAR_LLTE_RWM(x) | BIT_LLTE_RWM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDESC_BUFF_BNDY			(Offset 0x01E0) */

#define BIT_FW_FIFO_PTR_RST				BIT(18)
#define BIT_PHY_FIFO_PTR_RST				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LLT_INIT				(Offset 0x01E0) */


#define BIT_SHIFT_LLTINI_PDATA				16
#define BIT_MASK_LLTINI_PDATA				0xff
#define BIT_LLTINI_PDATA(x)				(((x) & BIT_MASK_LLTINI_PDATA) << BIT_SHIFT_LLTINI_PDATA)
#define BITS_LLTINI_PDATA				(BIT_MASK_LLTINI_PDATA << BIT_SHIFT_LLTINI_PDATA)
#define BIT_CLEAR_LLTINI_PDATA(x)			((x) & (~BITS_LLTINI_PDATA))
#define BIT_GET_LLTINI_PDATA(x)			(((x) >> BIT_SHIFT_LLTINI_PDATA) & BIT_MASK_LLTINI_PDATA)
#define BIT_SET_LLTINI_PDATA(x, v)			(BIT_CLEAR_LLTINI_PDATA(x) | BIT_LLTINI_PDATA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LLT_INIT				(Offset 0x01E0) */


#define BIT_SHIFT_LLTINI_PDATA_V1			16
#define BIT_MASK_LLTINI_PDATA_V1			0xfff
#define BIT_LLTINI_PDATA_V1(x)				(((x) & BIT_MASK_LLTINI_PDATA_V1) << BIT_SHIFT_LLTINI_PDATA_V1)
#define BITS_LLTINI_PDATA_V1				(BIT_MASK_LLTINI_PDATA_V1 << BIT_SHIFT_LLTINI_PDATA_V1)
#define BIT_CLEAR_LLTINI_PDATA_V1(x)			((x) & (~BITS_LLTINI_PDATA_V1))
#define BIT_GET_LLTINI_PDATA_V1(x)			(((x) >> BIT_SHIFT_LLTINI_PDATA_V1) & BIT_MASK_LLTINI_PDATA_V1)
#define BIT_SET_LLTINI_PDATA_V1(x, v)			(BIT_CLEAR_LLTINI_PDATA_V1(x) | BIT_LLTINI_PDATA_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LLT_INIT				(Offset 0x01E0) */


#define BIT_SHIFT_LLTINI_ADDR				8
#define BIT_MASK_LLTINI_ADDR				0xff
#define BIT_LLTINI_ADDR(x)				(((x) & BIT_MASK_LLTINI_ADDR) << BIT_SHIFT_LLTINI_ADDR)
#define BITS_LLTINI_ADDR				(BIT_MASK_LLTINI_ADDR << BIT_SHIFT_LLTINI_ADDR)
#define BIT_CLEAR_LLTINI_ADDR(x)			((x) & (~BITS_LLTINI_ADDR))
#define BIT_GET_LLTINI_ADDR(x)				(((x) >> BIT_SHIFT_LLTINI_ADDR) & BIT_MASK_LLTINI_ADDR)
#define BIT_SET_LLTINI_ADDR(x, v)			(BIT_CLEAR_LLTINI_ADDR(x) | BIT_LLTINI_ADDR(v))


#define BIT_SHIFT_LLTINI_HDATA				0
#define BIT_MASK_LLTINI_HDATA				0xff
#define BIT_LLTINI_HDATA(x)				(((x) & BIT_MASK_LLTINI_HDATA) << BIT_SHIFT_LLTINI_HDATA)
#define BITS_LLTINI_HDATA				(BIT_MASK_LLTINI_HDATA << BIT_SHIFT_LLTINI_HDATA)
#define BIT_CLEAR_LLTINI_HDATA(x)			((x) & (~BITS_LLTINI_HDATA))
#define BIT_GET_LLTINI_HDATA(x)			(((x) >> BIT_SHIFT_LLTINI_HDATA) & BIT_MASK_LLTINI_HDATA)
#define BIT_SET_LLTINI_HDATA(x, v)			(BIT_CLEAR_LLTINI_HDATA(x) | BIT_LLTINI_HDATA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LLT_INIT				(Offset 0x01E0) */


#define BIT_SHIFT_LLTINI_HDATA_V1			0
#define BIT_MASK_LLTINI_HDATA_V1			0xfff
#define BIT_LLTINI_HDATA_V1(x)				(((x) & BIT_MASK_LLTINI_HDATA_V1) << BIT_SHIFT_LLTINI_HDATA_V1)
#define BITS_LLTINI_HDATA_V1				(BIT_MASK_LLTINI_HDATA_V1 << BIT_SHIFT_LLTINI_HDATA_V1)
#define BIT_CLEAR_LLTINI_HDATA_V1(x)			((x) & (~BITS_LLTINI_HDATA_V1))
#define BIT_GET_LLTINI_HDATA_V1(x)			(((x) >> BIT_SHIFT_LLTINI_HDATA_V1) & BIT_MASK_LLTINI_HDATA_V1)
#define BIT_SET_LLTINI_HDATA_V1(x, v)			(BIT_CLEAR_LLTINI_HDATA_V1(x) | BIT_LLTINI_HDATA_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDESC_BUFF_BNDY			(Offset 0x01E0) */


#define BIT_SHIFT_RXDESC_BUFF_BNDY			0
#define BIT_MASK_RXDESC_BUFF_BNDY			0xffffffffL
#define BIT_RXDESC_BUFF_BNDY(x)			(((x) & BIT_MASK_RXDESC_BUFF_BNDY) << BIT_SHIFT_RXDESC_BUFF_BNDY)
#define BITS_RXDESC_BUFF_BNDY				(BIT_MASK_RXDESC_BUFF_BNDY << BIT_SHIFT_RXDESC_BUFF_BNDY)
#define BIT_CLEAR_RXDESC_BUFF_BNDY(x)			((x) & (~BITS_RXDESC_BUFF_BNDY))
#define BIT_GET_RXDESC_BUFF_BNDY(x)			(((x) >> BIT_SHIFT_RXDESC_BUFF_BNDY) & BIT_MASK_RXDESC_BUFF_BNDY)
#define BIT_SET_RXDESC_BUFF_BNDY(x, v)			(BIT_CLEAR_RXDESC_BUFF_BNDY(x) | BIT_RXDESC_BUFF_BNDY(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_GENTST				(Offset 0x01E4) */


#define BIT_SHIFT_GENTST				0
#define BIT_MASK_GENTST				0xffffffffL
#define BIT_GENTST(x)					(((x) & BIT_MASK_GENTST) << BIT_SHIFT_GENTST)
#define BITS_GENTST					(BIT_MASK_GENTST << BIT_SHIFT_GENTST)
#define BIT_CLEAR_GENTST(x)				((x) & (~BITS_GENTST))
#define BIT_GET_GENTST(x)				(((x) >> BIT_SHIFT_GENTST) & BIT_MASK_GENTST)
#define BIT_SET_GENTST(x, v)				(BIT_CLEAR_GENTST(x) | BIT_GENTST(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LLT_INIT_ADDR			(Offset 0x01E4) */


#define BIT_SHIFT_LLTINI_ADDR_V1			0
#define BIT_MASK_LLTINI_ADDR_V1			0xfff
#define BIT_LLTINI_ADDR_V1(x)				(((x) & BIT_MASK_LLTINI_ADDR_V1) << BIT_SHIFT_LLTINI_ADDR_V1)
#define BITS_LLTINI_ADDR_V1				(BIT_MASK_LLTINI_ADDR_V1 << BIT_SHIFT_LLTINI_ADDR_V1)
#define BIT_CLEAR_LLTINI_ADDR_V1(x)			((x) & (~BITS_LLTINI_ADDR_V1))
#define BIT_GET_LLTINI_ADDR_V1(x)			(((x) >> BIT_SHIFT_LLTINI_ADDR_V1) & BIT_MASK_LLTINI_ADDR_V1)
#define BIT_SET_LLTINI_ADDR_V1(x, v)			(BIT_CLEAR_LLTINI_ADDR_V1(x) | BIT_LLTINI_ADDR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */


#define BIT_SHIFT_BB_WRITE_READ			30
#define BIT_MASK_BB_WRITE_READ				0x3
#define BIT_BB_WRITE_READ(x)				(((x) & BIT_MASK_BB_WRITE_READ) << BIT_SHIFT_BB_WRITE_READ)
#define BITS_BB_WRITE_READ				(BIT_MASK_BB_WRITE_READ << BIT_SHIFT_BB_WRITE_READ)
#define BIT_CLEAR_BB_WRITE_READ(x)			((x) & (~BITS_BB_WRITE_READ))
#define BIT_GET_BB_WRITE_READ(x)			(((x) >> BIT_SHIFT_BB_WRITE_READ) & BIT_MASK_BB_WRITE_READ)
#define BIT_SET_BB_WRITE_READ(x, v)			(BIT_CLEAR_BB_WRITE_READ(x) | BIT_BB_WRITE_READ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */


#define BIT_SHIFT_BB_WRITE_EN_V1			16
#define BIT_MASK_BB_WRITE_EN_V1			0xf
#define BIT_BB_WRITE_EN_V1(x)				(((x) & BIT_MASK_BB_WRITE_EN_V1) << BIT_SHIFT_BB_WRITE_EN_V1)
#define BITS_BB_WRITE_EN_V1				(BIT_MASK_BB_WRITE_EN_V1 << BIT_SHIFT_BB_WRITE_EN_V1)
#define BIT_CLEAR_BB_WRITE_EN_V1(x)			((x) & (~BITS_BB_WRITE_EN_V1))
#define BIT_GET_BB_WRITE_EN_V1(x)			(((x) >> BIT_SHIFT_BB_WRITE_EN_V1) & BIT_MASK_BB_WRITE_EN_V1)
#define BIT_SET_BB_WRITE_EN_V1(x, v)			(BIT_CLEAR_BB_WRITE_EN_V1(x) | BIT_BB_WRITE_EN_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */


#define BIT_SHIFT_BB_WRITE_EN				12
#define BIT_MASK_BB_WRITE_EN				0xf
#define BIT_BB_WRITE_EN(x)				(((x) & BIT_MASK_BB_WRITE_EN) << BIT_SHIFT_BB_WRITE_EN)
#define BITS_BB_WRITE_EN				(BIT_MASK_BB_WRITE_EN << BIT_SHIFT_BB_WRITE_EN)
#define BIT_CLEAR_BB_WRITE_EN(x)			((x) & (~BITS_BB_WRITE_EN))
#define BIT_GET_BB_WRITE_EN(x)				(((x) >> BIT_SHIFT_BB_WRITE_EN) & BIT_MASK_BB_WRITE_EN)
#define BIT_SET_BB_WRITE_EN(x, v)			(BIT_CLEAR_BB_WRITE_EN(x) | BIT_BB_WRITE_EN(v))


#define BIT_SHIFT_BB_ADDR				2
#define BIT_MASK_BB_ADDR				0x1ff
#define BIT_BB_ADDR(x)					(((x) & BIT_MASK_BB_ADDR) << BIT_SHIFT_BB_ADDR)
#define BITS_BB_ADDR					(BIT_MASK_BB_ADDR << BIT_SHIFT_BB_ADDR)
#define BIT_CLEAR_BB_ADDR(x)				((x) & (~BITS_BB_ADDR))
#define BIT_GET_BB_ADDR(x)				(((x) >> BIT_SHIFT_BB_ADDR) & BIT_MASK_BB_ADDR)
#define BIT_SET_BB_ADDR(x, v)				(BIT_CLEAR_BB_ADDR(x) | BIT_BB_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */


#define BIT_SHIFT_BB_ADDR_V1				2
#define BIT_MASK_BB_ADDR_V1				0xfff
#define BIT_BB_ADDR_V1(x)				(((x) & BIT_MASK_BB_ADDR_V1) << BIT_SHIFT_BB_ADDR_V1)
#define BITS_BB_ADDR_V1				(BIT_MASK_BB_ADDR_V1 << BIT_SHIFT_BB_ADDR_V1)
#define BIT_CLEAR_BB_ADDR_V1(x)			((x) & (~BITS_BB_ADDR_V1))
#define BIT_GET_BB_ADDR_V1(x)				(((x) >> BIT_SHIFT_BB_ADDR_V1) & BIT_MASK_BB_ADDR_V1)
#define BIT_SET_BB_ADDR_V1(x, v)			(BIT_CLEAR_BB_ADDR_V1(x) | BIT_BB_ADDR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BB_ACCESS_CTRL			(Offset 0x01E8) */

#define BIT_BB_ERRACC					BIT(0)

/* 2 REG_BB_ACCESS_DATA			(Offset 0x01EC) */


#define BIT_SHIFT_BB_DATA				0
#define BIT_MASK_BB_DATA				0xffffffffL
#define BIT_BB_DATA(x)					(((x) & BIT_MASK_BB_DATA) << BIT_SHIFT_BB_DATA)
#define BITS_BB_DATA					(BIT_MASK_BB_DATA << BIT_SHIFT_BB_DATA)
#define BIT_CLEAR_BB_DATA(x)				((x) & (~BITS_BB_DATA))
#define BIT_GET_BB_DATA(x)				(((x) >> BIT_SHIFT_BB_DATA) & BIT_MASK_BB_DATA)
#define BIT_SET_BB_DATA(x, v)				(BIT_CLEAR_BB_DATA(x) | BIT_BB_DATA(v))


/* 2 REG_HMEBOX_E0				(Offset 0x01F0) */


#define BIT_SHIFT_HMEBOX_E0				0
#define BIT_MASK_HMEBOX_E0				0xffffffffL
#define BIT_HMEBOX_E0(x)				(((x) & BIT_MASK_HMEBOX_E0) << BIT_SHIFT_HMEBOX_E0)
#define BITS_HMEBOX_E0					(BIT_MASK_HMEBOX_E0 << BIT_SHIFT_HMEBOX_E0)
#define BIT_CLEAR_HMEBOX_E0(x)				((x) & (~BITS_HMEBOX_E0))
#define BIT_GET_HMEBOX_E0(x)				(((x) >> BIT_SHIFT_HMEBOX_E0) & BIT_MASK_HMEBOX_E0)
#define BIT_SET_HMEBOX_E0(x, v)			(BIT_CLEAR_HMEBOX_E0(x) | BIT_HMEBOX_E0(v))


/* 2 REG_HMEBOX_E1				(Offset 0x01F4) */


#define BIT_SHIFT_HMEBOX_E1				0
#define BIT_MASK_HMEBOX_E1				0xffffffffL
#define BIT_HMEBOX_E1(x)				(((x) & BIT_MASK_HMEBOX_E1) << BIT_SHIFT_HMEBOX_E1)
#define BITS_HMEBOX_E1					(BIT_MASK_HMEBOX_E1 << BIT_SHIFT_HMEBOX_E1)
#define BIT_CLEAR_HMEBOX_E1(x)				((x) & (~BITS_HMEBOX_E1))
#define BIT_GET_HMEBOX_E1(x)				(((x) >> BIT_SHIFT_HMEBOX_E1) & BIT_MASK_HMEBOX_E1)
#define BIT_SET_HMEBOX_E1(x, v)			(BIT_CLEAR_HMEBOX_E1(x) | BIT_HMEBOX_E1(v))


/* 2 REG_HMEBOX_E2				(Offset 0x01F8) */


#define BIT_SHIFT_HMEBOX_E2				0
#define BIT_MASK_HMEBOX_E2				0xffffffffL
#define BIT_HMEBOX_E2(x)				(((x) & BIT_MASK_HMEBOX_E2) << BIT_SHIFT_HMEBOX_E2)
#define BITS_HMEBOX_E2					(BIT_MASK_HMEBOX_E2 << BIT_SHIFT_HMEBOX_E2)
#define BIT_CLEAR_HMEBOX_E2(x)				((x) & (~BITS_HMEBOX_E2))
#define BIT_GET_HMEBOX_E2(x)				(((x) >> BIT_SHIFT_HMEBOX_E2) & BIT_MASK_HMEBOX_E2)
#define BIT_SET_HMEBOX_E2(x, v)			(BIT_CLEAR_HMEBOX_E2(x) | BIT_HMEBOX_E2(v))


/* 2 REG_HMEBOX_E3				(Offset 0x01FC) */


#define BIT_SHIFT_HMEBOX_E3				0
#define BIT_MASK_HMEBOX_E3				0xffffffffL
#define BIT_HMEBOX_E3(x)				(((x) & BIT_MASK_HMEBOX_E3) << BIT_SHIFT_HMEBOX_E3)
#define BITS_HMEBOX_E3					(BIT_MASK_HMEBOX_E3 << BIT_SHIFT_HMEBOX_E3)
#define BIT_CLEAR_HMEBOX_E3(x)				((x) & (~BITS_HMEBOX_E3))
#define BIT_GET_HMEBOX_E3(x)				(((x) >> BIT_SHIFT_HMEBOX_E3) & BIT_MASK_HMEBOX_E3)
#define BIT_SET_HMEBOX_E3(x, v)			(BIT_CLEAR_HMEBOX_E3(x) | BIT_HMEBOX_E3(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_0				(Offset 0x0200) */

#define BIT_BCN1_VALID					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RQPN_CTRL_HLPQ			(Offset 0x0200) */

#define BIT_EPQ_PUBLIC_DIS				BIT(27)
#define BIT_NPQ_PUBLIC_DIS				BIT(26)
#define BIT_LPQ_PUBLIC_DIS				BIT(25)
#define BIT_HPQ_PUBLIC_DIS				BIT(24)

#define BIT_SHIFT_PUBQ					16
#define BIT_MASK_PUBQ					0xff
#define BIT_PUBQ(x)					(((x) & BIT_MASK_PUBQ) << BIT_SHIFT_PUBQ)
#define BITS_PUBQ					(BIT_MASK_PUBQ << BIT_SHIFT_PUBQ)
#define BIT_CLEAR_PUBQ(x)				((x) & (~BITS_PUBQ))
#define BIT_GET_PUBQ(x)				(((x) >> BIT_SHIFT_PUBQ) & BIT_MASK_PUBQ)
#define BIT_SET_PUBQ(x, v)				(BIT_CLEAR_PUBQ(x) | BIT_PUBQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_1			(Offset 0x0200) */


#define BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1		16
#define BIT_MASK_TX_OQT_HE_FREE_SPACE_V1		0xff
#define BIT_TX_OQT_HE_FREE_SPACE_V1(x)			(((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1) << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1)
#define BITS_TX_OQT_HE_FREE_SPACE_V1			(BIT_MASK_TX_OQT_HE_FREE_SPACE_V1 << BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1)
#define BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1(x)		((x) & (~BITS_TX_OQT_HE_FREE_SPACE_V1))
#define BIT_GET_TX_OQT_HE_FREE_SPACE_V1(x)		(((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE_V1) & BIT_MASK_TX_OQT_HE_FREE_SPACE_V1)
#define BIT_SET_TX_OQT_HE_FREE_SPACE_V1(x, v)		(BIT_CLEAR_TX_OQT_HE_FREE_SPACE_V1(x) | BIT_TX_OQT_HE_FREE_SPACE_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_0				(Offset 0x0200) */


#define BIT_SHIFT_BCN1_HEAD				16
#define BIT_MASK_BCN1_HEAD				0xfff
#define BIT_BCN1_HEAD(x)				(((x) & BIT_MASK_BCN1_HEAD) << BIT_SHIFT_BCN1_HEAD)
#define BITS_BCN1_HEAD					(BIT_MASK_BCN1_HEAD << BIT_SHIFT_BCN1_HEAD)
#define BIT_CLEAR_BCN1_HEAD(x)				((x) & (~BITS_BCN1_HEAD))
#define BIT_GET_BCN1_HEAD(x)				(((x) >> BIT_SHIFT_BCN1_HEAD) & BIT_MASK_BCN1_HEAD)
#define BIT_SET_BCN1_HEAD(x, v)			(BIT_CLEAR_BCN1_HEAD(x) | BIT_BCN1_HEAD(v))

#define BIT_BCN0_VALID					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RQPN_CTRL_HLPQ			(Offset 0x0200) */


#define BIT_SHIFT_LPQ					8
#define BIT_MASK_LPQ					0xff
#define BIT_LPQ(x)					(((x) & BIT_MASK_LPQ) << BIT_SHIFT_LPQ)
#define BITS_LPQ					(BIT_MASK_LPQ << BIT_SHIFT_LPQ)
#define BIT_CLEAR_LPQ(x)				((x) & (~BITS_LPQ))
#define BIT_GET_LPQ(x)					(((x) >> BIT_SHIFT_LPQ) & BIT_MASK_LPQ)
#define BIT_SET_LPQ(x, v)				(BIT_CLEAR_LPQ(x) | BIT_LPQ(v))


#define BIT_SHIFT_HPQ					0
#define BIT_MASK_HPQ					0xff
#define BIT_HPQ(x)					(((x) & BIT_MASK_HPQ) << BIT_SHIFT_HPQ)
#define BITS_HPQ					(BIT_MASK_HPQ << BIT_SHIFT_HPQ)
#define BIT_CLEAR_HPQ(x)				((x) & (~BITS_HPQ))
#define BIT_GET_HPQ(x)					(((x) >> BIT_SHIFT_HPQ) & BIT_MASK_HPQ)
#define BIT_SET_HPQ(x, v)				(BIT_CLEAR_HPQ(x) | BIT_HPQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_1			(Offset 0x0200) */


#define BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1		0
#define BIT_MASK_TX_OQT_NL_FREE_SPACE_V1		0xff
#define BIT_TX_OQT_NL_FREE_SPACE_V1(x)			(((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1) << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1)
#define BITS_TX_OQT_NL_FREE_SPACE_V1			(BIT_MASK_TX_OQT_NL_FREE_SPACE_V1 << BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1)
#define BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1(x)		((x) & (~BITS_TX_OQT_NL_FREE_SPACE_V1))
#define BIT_GET_TX_OQT_NL_FREE_SPACE_V1(x)		(((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE_V1) & BIT_MASK_TX_OQT_NL_FREE_SPACE_V1)
#define BIT_SET_TX_OQT_NL_FREE_SPACE_V1(x, v)		(BIT_CLEAR_TX_OQT_NL_FREE_SPACE_V1(x) | BIT_TX_OQT_NL_FREE_SPACE_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_0				(Offset 0x0200) */


#define BIT_SHIFT_BCN0_HEAD				0
#define BIT_MASK_BCN0_HEAD				0xfff
#define BIT_BCN0_HEAD(x)				(((x) & BIT_MASK_BCN0_HEAD) << BIT_SHIFT_BCN0_HEAD)
#define BITS_BCN0_HEAD					(BIT_MASK_BCN0_HEAD << BIT_SHIFT_BCN0_HEAD)
#define BIT_CLEAR_BCN0_HEAD(x)				((x) & (~BITS_BCN0_HEAD))
#define BIT_GET_BCN0_HEAD(x)				(((x) >> BIT_SHIFT_BCN0_HEAD) & BIT_MASK_BCN0_HEAD)
#define BIT_SET_BCN0_HEAD(x, v)			(BIT_CLEAR_BCN0_HEAD(x) | BIT_BCN0_HEAD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */

#define BIT_BCN_VALID_1_V1				BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_1				(Offset 0x0204) */

#define BIT_BCN3_VALID					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FIFOPAGE_INFO			(Offset 0x0204) */


#define BIT_SHIFT_TXPKTNUM				24
#define BIT_MASK_TXPKTNUM				0xff
#define BIT_TXPKTNUM(x)				(((x) & BIT_MASK_TXPKTNUM) << BIT_SHIFT_TXPKTNUM)
#define BITS_TXPKTNUM					(BIT_MASK_TXPKTNUM << BIT_SHIFT_TXPKTNUM)
#define BIT_CLEAR_TXPKTNUM(x)				((x) & (~BITS_TXPKTNUM))
#define BIT_GET_TXPKTNUM(x)				(((x) >> BIT_SHIFT_TXPKTNUM) & BIT_MASK_TXPKTNUM)
#define BIT_SET_TXPKTNUM(x, v)				(BIT_CLEAR_TXPKTNUM(x) | BIT_TXPKTNUM(v))


#define BIT_SHIFT_PUBQ_AVAL_PG				16
#define BIT_MASK_PUBQ_AVAL_PG				0xff
#define BIT_PUBQ_AVAL_PG(x)				(((x) & BIT_MASK_PUBQ_AVAL_PG) << BIT_SHIFT_PUBQ_AVAL_PG)
#define BITS_PUBQ_AVAL_PG				(BIT_MASK_PUBQ_AVAL_PG << BIT_SHIFT_PUBQ_AVAL_PG)
#define BIT_CLEAR_PUBQ_AVAL_PG(x)			((x) & (~BITS_PUBQ_AVAL_PG))
#define BIT_GET_PUBQ_AVAL_PG(x)			(((x) >> BIT_SHIFT_PUBQ_AVAL_PG) & BIT_MASK_PUBQ_AVAL_PG)
#define BIT_SET_PUBQ_AVAL_PG(x, v)			(BIT_CLEAR_PUBQ_AVAL_PG(x) | BIT_PUBQ_AVAL_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */


#define BIT_SHIFT_BCN_HEAD_1_V1			16
#define BIT_MASK_BCN_HEAD_1_V1				0xfff
#define BIT_BCN_HEAD_1_V1(x)				(((x) & BIT_MASK_BCN_HEAD_1_V1) << BIT_SHIFT_BCN_HEAD_1_V1)
#define BITS_BCN_HEAD_1_V1				(BIT_MASK_BCN_HEAD_1_V1 << BIT_SHIFT_BCN_HEAD_1_V1)
#define BIT_CLEAR_BCN_HEAD_1_V1(x)			((x) & (~BITS_BCN_HEAD_1_V1))
#define BIT_GET_BCN_HEAD_1_V1(x)			(((x) >> BIT_SHIFT_BCN_HEAD_1_V1) & BIT_MASK_BCN_HEAD_1_V1)
#define BIT_SET_BCN_HEAD_1_V1(x, v)			(BIT_CLEAR_BCN_HEAD_1_V1(x) | BIT_BCN_HEAD_1_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_1				(Offset 0x0204) */


#define BIT_SHIFT_BCN3_HEAD				16
#define BIT_MASK_BCN3_HEAD				0xfff
#define BIT_BCN3_HEAD(x)				(((x) & BIT_MASK_BCN3_HEAD) << BIT_SHIFT_BCN3_HEAD)
#define BITS_BCN3_HEAD					(BIT_MASK_BCN3_HEAD << BIT_SHIFT_BCN3_HEAD)
#define BIT_CLEAR_BCN3_HEAD(x)				((x) & (~BITS_BCN3_HEAD))
#define BIT_GET_BCN3_HEAD(x)				(((x) >> BIT_SHIFT_BCN3_HEAD) & BIT_MASK_BCN3_HEAD)
#define BIT_SET_BCN3_HEAD(x, v)			(BIT_CLEAR_BCN3_HEAD(x) | BIT_BCN3_HEAD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */

#define BIT_BCN_VALID_V1				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_1				(Offset 0x0204) */

#define BIT_BCN2_VALID					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FIFOPAGE_INFO			(Offset 0x0204) */


#define BIT_SHIFT_LPQ_AVAL_PG				8
#define BIT_MASK_LPQ_AVAL_PG				0xff
#define BIT_LPQ_AVAL_PG(x)				(((x) & BIT_MASK_LPQ_AVAL_PG) << BIT_SHIFT_LPQ_AVAL_PG)
#define BITS_LPQ_AVAL_PG				(BIT_MASK_LPQ_AVAL_PG << BIT_SHIFT_LPQ_AVAL_PG)
#define BIT_CLEAR_LPQ_AVAL_PG(x)			((x) & (~BITS_LPQ_AVAL_PG))
#define BIT_GET_LPQ_AVAL_PG(x)				(((x) >> BIT_SHIFT_LPQ_AVAL_PG) & BIT_MASK_LPQ_AVAL_PG)
#define BIT_SET_LPQ_AVAL_PG(x, v)			(BIT_CLEAR_LPQ_AVAL_PG(x) | BIT_LPQ_AVAL_PG(v))


#define BIT_SHIFT_HPQ_AVAL_PG				0
#define BIT_MASK_HPQ_AVAL_PG				0xff
#define BIT_HPQ_AVAL_PG(x)				(((x) & BIT_MASK_HPQ_AVAL_PG) << BIT_SHIFT_HPQ_AVAL_PG)
#define BITS_HPQ_AVAL_PG				(BIT_MASK_HPQ_AVAL_PG << BIT_SHIFT_HPQ_AVAL_PG)
#define BIT_CLEAR_HPQ_AVAL_PG(x)			((x) & (~BITS_HPQ_AVAL_PG))
#define BIT_GET_HPQ_AVAL_PG(x)				(((x) >> BIT_SHIFT_HPQ_AVAL_PG) & BIT_MASK_HPQ_AVAL_PG)
#define BIT_SET_HPQ_AVAL_PG(x, v)			(BIT_CLEAR_HPQ_AVAL_PG(x) | BIT_HPQ_AVAL_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_CTRL_2			(Offset 0x0204) */


#define BIT_SHIFT_BCN_HEAD_V1				0
#define BIT_MASK_BCN_HEAD_V1				0xfff
#define BIT_BCN_HEAD_V1(x)				(((x) & BIT_MASK_BCN_HEAD_V1) << BIT_SHIFT_BCN_HEAD_V1)
#define BITS_BCN_HEAD_V1				(BIT_MASK_BCN_HEAD_V1 << BIT_SHIFT_BCN_HEAD_V1)
#define BIT_CLEAR_BCN_HEAD_V1(x)			((x) & (~BITS_BCN_HEAD_V1))
#define BIT_GET_BCN_HEAD_V1(x)				(((x) >> BIT_SHIFT_BCN_HEAD_V1) & BIT_MASK_BCN_HEAD_V1)
#define BIT_SET_BCN_HEAD_V1(x, v)			(BIT_CLEAR_BCN_HEAD_V1(x) | BIT_BCN_HEAD_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_1				(Offset 0x0204) */


#define BIT_SHIFT_BCN2_HEAD				0
#define BIT_MASK_BCN2_HEAD				0xfff
#define BIT_BCN2_HEAD(x)				(((x) & BIT_MASK_BCN2_HEAD) << BIT_SHIFT_BCN2_HEAD)
#define BITS_BCN2_HEAD					(BIT_MASK_BCN2_HEAD << BIT_SHIFT_BCN2_HEAD)
#define BIT_CLEAR_BCN2_HEAD(x)				((x) & (~BITS_BCN2_HEAD))
#define BIT_GET_BCN2_HEAD(x)				(((x) >> BIT_SHIFT_BCN2_HEAD) & BIT_MASK_BCN2_HEAD)
#define BIT_SET_BCN2_HEAD(x, v)			(BIT_CLEAR_BCN2_HEAD(x) | BIT_BCN2_HEAD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DWBCN0_CTRL				(Offset 0x0208) */


#define BIT_SHIFT_LLT_FREE_PAGE			24
#define BIT_MASK_LLT_FREE_PAGE				0xff
#define BIT_LLT_FREE_PAGE(x)				(((x) & BIT_MASK_LLT_FREE_PAGE) << BIT_SHIFT_LLT_FREE_PAGE)
#define BITS_LLT_FREE_PAGE				(BIT_MASK_LLT_FREE_PAGE << BIT_SHIFT_LLT_FREE_PAGE)
#define BIT_CLEAR_LLT_FREE_PAGE(x)			((x) & (~BITS_LLT_FREE_PAGE))
#define BIT_GET_LLT_FREE_PAGE(x)			(((x) >> BIT_SHIFT_LLT_FREE_PAGE) & BIT_MASK_LLT_FREE_PAGE)
#define BIT_SET_LLT_FREE_PAGE(x, v)			(BIT_CLEAR_LLT_FREE_PAGE(x) | BIT_LLT_FREE_PAGE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */


#define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1	24
#define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1	0xff
#define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x)		(((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1) << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
#define BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1		(BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1 << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
#define BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x)	((x) & (~BITS_MAX_TX_PKT_FOR_USB_AND_SDIO_V1))
#define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x)	(((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO_V1)
#define BIT_SET_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x, v)	(BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(x) | BIT_MAX_TX_PKT_FOR_USB_AND_SDIO_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */


#define BIT_SHIFT_MAX_TX_PKT_V1			24
#define BIT_MASK_MAX_TX_PKT_V1				0xff
#define BIT_MAX_TX_PKT_V1(x)				(((x) & BIT_MASK_MAX_TX_PKT_V1) << BIT_SHIFT_MAX_TX_PKT_V1)
#define BITS_MAX_TX_PKT_V1				(BIT_MASK_MAX_TX_PKT_V1 << BIT_SHIFT_MAX_TX_PKT_V1)
#define BIT_CLEAR_MAX_TX_PKT_V1(x)			((x) & (~BITS_MAX_TX_PKT_V1))
#define BIT_GET_MAX_TX_PKT_V1(x)			(((x) >> BIT_SHIFT_MAX_TX_PKT_V1) & BIT_MASK_MAX_TX_PKT_V1)
#define BIT_SET_MAX_TX_PKT_V1(x, v)			(BIT_CLEAR_MAX_TX_PKT_V1(x) | BIT_MAX_TX_PKT_V1(v))


#define BIT_SHIFT_R_BCN_HEAD_SEL_V1			20
#define BIT_MASK_R_BCN_HEAD_SEL_V1			0x7
#define BIT_R_BCN_HEAD_SEL_V1(x)			(((x) & BIT_MASK_R_BCN_HEAD_SEL_V1) << BIT_SHIFT_R_BCN_HEAD_SEL_V1)
#define BITS_R_BCN_HEAD_SEL_V1				(BIT_MASK_R_BCN_HEAD_SEL_V1 << BIT_SHIFT_R_BCN_HEAD_SEL_V1)
#define BIT_CLEAR_R_BCN_HEAD_SEL_V1(x)			((x) & (~BITS_R_BCN_HEAD_SEL_V1))
#define BIT_GET_R_BCN_HEAD_SEL_V1(x)			(((x) >> BIT_SHIFT_R_BCN_HEAD_SEL_V1) & BIT_MASK_R_BCN_HEAD_SEL_V1)
#define BIT_SET_R_BCN_HEAD_SEL_V1(x, v)		(BIT_CLEAR_R_BCN_HEAD_SEL_V1(x) | BIT_R_BCN_HEAD_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DWBCN0_CTRL				(Offset 0x0208) */

#define BIT_BCN_VALID					BIT(16)

#define BIT_SHIFT_BCN_HEAD				8
#define BIT_MASK_BCN_HEAD				0xff
#define BIT_BCN_HEAD(x)				(((x) & BIT_MASK_BCN_HEAD) << BIT_SHIFT_BCN_HEAD)
#define BITS_BCN_HEAD					(BIT_MASK_BCN_HEAD << BIT_SHIFT_BCN_HEAD)
#define BIT_CLEAR_BCN_HEAD(x)				((x) & (~BITS_BCN_HEAD))
#define BIT_GET_BCN_HEAD(x)				(((x) >> BIT_SHIFT_BCN_HEAD) & BIT_MASK_BCN_HEAD)
#define BIT_SET_BCN_HEAD(x, v)				(BIT_CLEAR_BCN_HEAD(x) | BIT_BCN_HEAD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */


#define BIT_SHIFT_LLT_FREE_PAGE_V1			8
#define BIT_MASK_LLT_FREE_PAGE_V1			0xffff
#define BIT_LLT_FREE_PAGE_V1(x)			(((x) & BIT_MASK_LLT_FREE_PAGE_V1) << BIT_SHIFT_LLT_FREE_PAGE_V1)
#define BITS_LLT_FREE_PAGE_V1				(BIT_MASK_LLT_FREE_PAGE_V1 << BIT_SHIFT_LLT_FREE_PAGE_V1)
#define BIT_CLEAR_LLT_FREE_PAGE_V1(x)			((x) & (~BITS_LLT_FREE_PAGE_V1))
#define BIT_GET_LLT_FREE_PAGE_V1(x)			(((x) >> BIT_SHIFT_LLT_FREE_PAGE_V1) & BIT_MASK_LLT_FREE_PAGE_V1)
#define BIT_SET_LLT_FREE_PAGE_V1(x, v)			(BIT_CLEAR_LLT_FREE_PAGE_V1(x) | BIT_LLT_FREE_PAGE_V1(v))


#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */


#define BIT_SHIFT_LLT_FREE_PAGE_V2			8
#define BIT_MASK_LLT_FREE_PAGE_V2			0xfff
#define BIT_LLT_FREE_PAGE_V2(x)			(((x) & BIT_MASK_LLT_FREE_PAGE_V2) << BIT_SHIFT_LLT_FREE_PAGE_V2)
#define BITS_LLT_FREE_PAGE_V2				(BIT_MASK_LLT_FREE_PAGE_V2 << BIT_SHIFT_LLT_FREE_PAGE_V2)
#define BIT_CLEAR_LLT_FREE_PAGE_V2(x)			((x) & (~BITS_LLT_FREE_PAGE_V2))
#define BIT_GET_LLT_FREE_PAGE_V2(x)			(((x) >> BIT_SHIFT_LLT_FREE_PAGE_V2) & BIT_MASK_LLT_FREE_PAGE_V2)
#define BIT_SET_LLT_FREE_PAGE_V2(x, v)			(BIT_CLEAR_LLT_FREE_PAGE_V2(x) | BIT_LLT_FREE_PAGE_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */


#define BIT_SHIFT_BLK_DESC_NUM				4
#define BIT_MASK_BLK_DESC_NUM				0xf
#define BIT_BLK_DESC_NUM(x)				(((x) & BIT_MASK_BLK_DESC_NUM) << BIT_SHIFT_BLK_DESC_NUM)
#define BITS_BLK_DESC_NUM				(BIT_MASK_BLK_DESC_NUM << BIT_SHIFT_BLK_DESC_NUM)
#define BIT_CLEAR_BLK_DESC_NUM(x)			((x) & (~BITS_BLK_DESC_NUM))
#define BIT_GET_BLK_DESC_NUM(x)			(((x) >> BIT_SHIFT_BLK_DESC_NUM) & BIT_MASK_BLK_DESC_NUM)
#define BIT_SET_BLK_DESC_NUM(x, v)			(BIT_CLEAR_BLK_DESC_NUM(x) | BIT_BLK_DESC_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */

#define BIT_R_BCN_HEAD_SEL				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */

#define BIT_TDE_ERROR_STOP				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AUTO_LLT_V1				(Offset 0x0208) */

#define BIT_R_EN_BCN_SW_HEAD_SEL			BIT(2)
#define BIT_LLT_DBG_SEL				BIT(1)
#define BIT_AUTO_INIT_LLT_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_EM_CHKSUM_FIN				BIT(31)
#define BIT_EMN_PCIE_DMA_MOD				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_EN_TXQUE_CLR				BIT(29)
#define BIT_EN_PCIE_FIFO_MODE				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */


#define BIT_SHIFT_PG_UNDER_TH				16
#define BIT_MASK_PG_UNDER_TH				0xff
#define BIT_PG_UNDER_TH(x)				(((x) & BIT_MASK_PG_UNDER_TH) << BIT_SHIFT_PG_UNDER_TH)
#define BITS_PG_UNDER_TH				(BIT_MASK_PG_UNDER_TH << BIT_SHIFT_PG_UNDER_TH)
#define BIT_CLEAR_PG_UNDER_TH(x)			((x) & (~BITS_PG_UNDER_TH))
#define BIT_GET_PG_UNDER_TH(x)				(((x) >> BIT_SHIFT_PG_UNDER_TH) & BIT_MASK_PG_UNDER_TH)
#define BIT_SET_PG_UNDER_TH(x, v)			(BIT_CLEAR_PG_UNDER_TH(x) | BIT_PG_UNDER_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */


#define BIT_SHIFT_PG_UNDER_TH_V1			16
#define BIT_MASK_PG_UNDER_TH_V1			0xfff
#define BIT_PG_UNDER_TH_V1(x)				(((x) & BIT_MASK_PG_UNDER_TH_V1) << BIT_SHIFT_PG_UNDER_TH_V1)
#define BITS_PG_UNDER_TH_V1				(BIT_MASK_PG_UNDER_TH_V1 << BIT_SHIFT_PG_UNDER_TH_V1)
#define BIT_CLEAR_PG_UNDER_TH_V1(x)			((x) & (~BITS_PG_UNDER_TH_V1))
#define BIT_GET_PG_UNDER_TH_V1(x)			(((x) >> BIT_SHIFT_PG_UNDER_TH_V1) & BIT_MASK_PG_UNDER_TH_V1)
#define BIT_SET_PG_UNDER_TH_V1(x, v)			(BIT_CLEAR_PG_UNDER_TH_V1(x) | BIT_PG_UNDER_TH_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_EN_RESET_RESTORE_H2C			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_R_EN_RESET_RESTORE_H2C			BIT(15)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_RESTORE_H2C_ADDRESS			BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_SDIO_TDE_FINISH				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_OFFSET_CHK			(Offset 0x020C) */

#define BIT_SDIO_TXDESC_CHKSUM_EN			BIT(13)
#define BIT_RST_RDPTR					BIT(12)
#define BIT_RST_WRPTR					BIT(11)
#define BIT_CHK_PG_TH_EN				BIT(10)
#define BIT_DROP_DATA_EN				BIT(9)
#define BIT_CHECK_OFFSET_EN				BIT(8)

#define BIT_SHIFT_CHECK_OFFSET				0
#define BIT_MASK_CHECK_OFFSET				0xff
#define BIT_CHECK_OFFSET(x)				(((x) & BIT_MASK_CHECK_OFFSET) << BIT_SHIFT_CHECK_OFFSET)
#define BITS_CHECK_OFFSET				(BIT_MASK_CHECK_OFFSET << BIT_SHIFT_CHECK_OFFSET)
#define BIT_CLEAR_CHECK_OFFSET(x)			((x) & (~BITS_CHECK_OFFSET))
#define BIT_GET_CHECK_OFFSET(x)			(((x) >> BIT_SHIFT_CHECK_OFFSET) & BIT_MASK_CHECK_OFFSET)
#define BIT_SET_CHECK_OFFSET(x, v)			(BIT_CLEAR_CHECK_OFFSET(x) | BIT_CHECK_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_LD_RQPN					BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_AMSDU_PKT_SIZE_ERR				BIT(31)
#define BIT_AMSDU_EN_ERR				BIT(30)
#define BIT_CHKSUM_AMSDU_EN_ERR			BIT(29)
#define BIT_TXPKTBF_REQ_ERR				BIT(28)
#define BIT_OQT_UDN_16					BIT(27)
#define BIT_OQT_OVF_16					BIT(26)
#define BIT_OQT_UDN_14_15				BIT(25)
#define BIT_OQT_OVF_14_15				BIT(24)
#define BIT_OQT_UDN_13					BIT(23)
#define BIT_OQT_OVF_13					BIT(22)
#define BIT_OQT_UDN_12					BIT(21)
#define BIT_OQT_OVF_12					BIT(20)
#define BIT_OQT_UDN_8_11				BIT(19)
#define BIT_OQT_OVF_8_11				BIT(18)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXPKTBUF_REQ_ERR				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_HI_OQT_UDN					BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_OQT_UDN_4_7				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_HI_OQT_OVF					BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_OQT_OVF_4_7				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_PAYLOAD_CHKSUM_ERR				BIT(15)
#define BIT_PAYLOAD_UDN				BIT(14)
#define BIT_PAYLOAD_OVF				BIT(13)
#define BIT_DSC_CHKSUM_FAIL				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_UNKNOWN_QSEL				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_EP_QSEL_DIFF				BIT(10)
#define BIT_TX_OFFS_UNMATCH				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXOQT_UDN					BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXOQT_UDN_0_3				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXOQT_OVF					BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXOQT_OVF_0_3				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXDMA_STATUS			(Offset 0x0210) */

#define BIT_TXDMA_SFF_UDN				BIT(6)
#define BIT_TXDMA_SFF_OVF				BIT(5)
#define BIT_LLT_NULL_PG				BIT(4)
#define BIT_PAGE_UDN					BIT(3)
#define BIT_PAGE_OVF					BIT(2)
#define BIT_TXFF_PG_UDN				BIT(1)
#define BIT_TXFF_PG_OVF				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RQPN_NPQ				(Offset 0x0214) */


#define BIT_SHIFT_EXQ_AVAL_PG				24
#define BIT_MASK_EXQ_AVAL_PG				0xff
#define BIT_EXQ_AVAL_PG(x)				(((x) & BIT_MASK_EXQ_AVAL_PG) << BIT_SHIFT_EXQ_AVAL_PG)
#define BITS_EXQ_AVAL_PG				(BIT_MASK_EXQ_AVAL_PG << BIT_SHIFT_EXQ_AVAL_PG)
#define BIT_CLEAR_EXQ_AVAL_PG(x)			((x) & (~BITS_EXQ_AVAL_PG))
#define BIT_GET_EXQ_AVAL_PG(x)				(((x) >> BIT_SHIFT_EXQ_AVAL_PG) & BIT_MASK_EXQ_AVAL_PG)
#define BIT_SET_EXQ_AVAL_PG(x, v)			(BIT_CLEAR_EXQ_AVAL_PG(x) | BIT_EXQ_AVAL_PG(v))


#define BIT_SHIFT_EXQ					16
#define BIT_MASK_EXQ					0xff
#define BIT_EXQ(x)					(((x) & BIT_MASK_EXQ) << BIT_SHIFT_EXQ)
#define BITS_EXQ					(BIT_MASK_EXQ << BIT_SHIFT_EXQ)
#define BIT_CLEAR_EXQ(x)				((x) & (~BITS_EXQ))
#define BIT_GET_EXQ(x)					(((x) >> BIT_SHIFT_EXQ) & BIT_MASK_EXQ)
#define BIT_SET_EXQ(x, v)				(BIT_CLEAR_EXQ(x) | BIT_EXQ(v))


#define BIT_SHIFT_NPQ					0
#define BIT_MASK_NPQ					0xff
#define BIT_NPQ(x)					(((x) & BIT_MASK_NPQ) << BIT_SHIFT_NPQ)
#define BITS_NPQ					(BIT_MASK_NPQ << BIT_SHIFT_NPQ)
#define BIT_CLEAR_NPQ(x)				((x) & (~BITS_NPQ))
#define BIT_GET_NPQ(x)					(((x) >> BIT_SHIFT_NPQ) & BIT_MASK_NPQ)
#define BIT_SET_NPQ(x, v)				(BIT_CLEAR_NPQ(x) | BIT_NPQ(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TQPNT1				(Offset 0x0218) */

#define BIT_HPQ_INT_EN					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TQPNT1				(Offset 0x0218) */


#define BIT_SHIFT_NPQ_HIGH_TH				24
#define BIT_MASK_NPQ_HIGH_TH				0xff
#define BIT_NPQ_HIGH_TH(x)				(((x) & BIT_MASK_NPQ_HIGH_TH) << BIT_SHIFT_NPQ_HIGH_TH)
#define BITS_NPQ_HIGH_TH				(BIT_MASK_NPQ_HIGH_TH << BIT_SHIFT_NPQ_HIGH_TH)
#define BIT_CLEAR_NPQ_HIGH_TH(x)			((x) & (~BITS_NPQ_HIGH_TH))
#define BIT_GET_NPQ_HIGH_TH(x)				(((x) >> BIT_SHIFT_NPQ_HIGH_TH) & BIT_MASK_NPQ_HIGH_TH)
#define BIT_SET_NPQ_HIGH_TH(x, v)			(BIT_CLEAR_NPQ_HIGH_TH(x) | BIT_NPQ_HIGH_TH(v))


#define BIT_SHIFT_NPQ_LOW_TH				16
#define BIT_MASK_NPQ_LOW_TH				0xff
#define BIT_NPQ_LOW_TH(x)				(((x) & BIT_MASK_NPQ_LOW_TH) << BIT_SHIFT_NPQ_LOW_TH)
#define BITS_NPQ_LOW_TH				(BIT_MASK_NPQ_LOW_TH << BIT_SHIFT_NPQ_LOW_TH)
#define BIT_CLEAR_NPQ_LOW_TH(x)			((x) & (~BITS_NPQ_LOW_TH))
#define BIT_GET_NPQ_LOW_TH(x)				(((x) >> BIT_SHIFT_NPQ_LOW_TH) & BIT_MASK_NPQ_LOW_TH)
#define BIT_SET_NPQ_LOW_TH(x, v)			(BIT_CLEAR_NPQ_LOW_TH(x) | BIT_NPQ_LOW_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT1				(Offset 0x0218) */


#define BIT_SHIFT_HPQ_HIGH_TH_V1			16
#define BIT_MASK_HPQ_HIGH_TH_V1			0xfff
#define BIT_HPQ_HIGH_TH_V1(x)				(((x) & BIT_MASK_HPQ_HIGH_TH_V1) << BIT_SHIFT_HPQ_HIGH_TH_V1)
#define BITS_HPQ_HIGH_TH_V1				(BIT_MASK_HPQ_HIGH_TH_V1 << BIT_SHIFT_HPQ_HIGH_TH_V1)
#define BIT_CLEAR_HPQ_HIGH_TH_V1(x)			((x) & (~BITS_HPQ_HIGH_TH_V1))
#define BIT_GET_HPQ_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_HPQ_HIGH_TH_V1) & BIT_MASK_HPQ_HIGH_TH_V1)
#define BIT_SET_HPQ_HIGH_TH_V1(x, v)			(BIT_CLEAR_HPQ_HIGH_TH_V1(x) | BIT_HPQ_HIGH_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_RQPN_INFO_PUB			(Offset 0x0218) */


#define BIT_SHIFT_PUB_AVAL_PG				16
#define BIT_MASK_PUB_AVAL_PG				0xfff
#define BIT_PUB_AVAL_PG(x)				(((x) & BIT_MASK_PUB_AVAL_PG) << BIT_SHIFT_PUB_AVAL_PG)
#define BITS_PUB_AVAL_PG				(BIT_MASK_PUB_AVAL_PG << BIT_SHIFT_PUB_AVAL_PG)
#define BIT_CLEAR_PUB_AVAL_PG(x)			((x) & (~BITS_PUB_AVAL_PG))
#define BIT_GET_PUB_AVAL_PG(x)				(((x) >> BIT_SHIFT_PUB_AVAL_PG) & BIT_MASK_PUB_AVAL_PG)
#define BIT_SET_PUB_AVAL_PG(x, v)			(BIT_CLEAR_PUB_AVAL_PG(x) | BIT_PUB_AVAL_PG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TQPNT1				(Offset 0x0218) */


#define BIT_SHIFT_HPQ_HIGH_TH				8
#define BIT_MASK_HPQ_HIGH_TH				0xff
#define BIT_HPQ_HIGH_TH(x)				(((x) & BIT_MASK_HPQ_HIGH_TH) << BIT_SHIFT_HPQ_HIGH_TH)
#define BITS_HPQ_HIGH_TH				(BIT_MASK_HPQ_HIGH_TH << BIT_SHIFT_HPQ_HIGH_TH)
#define BIT_CLEAR_HPQ_HIGH_TH(x)			((x) & (~BITS_HPQ_HIGH_TH))
#define BIT_GET_HPQ_HIGH_TH(x)				(((x) >> BIT_SHIFT_HPQ_HIGH_TH) & BIT_MASK_HPQ_HIGH_TH)
#define BIT_SET_HPQ_HIGH_TH(x, v)			(BIT_CLEAR_HPQ_HIGH_TH(x) | BIT_HPQ_HIGH_TH(v))


#define BIT_SHIFT_HPQ_LOW_TH				0
#define BIT_MASK_HPQ_LOW_TH				0xff
#define BIT_HPQ_LOW_TH(x)				(((x) & BIT_MASK_HPQ_LOW_TH) << BIT_SHIFT_HPQ_LOW_TH)
#define BITS_HPQ_LOW_TH				(BIT_MASK_HPQ_LOW_TH << BIT_SHIFT_HPQ_LOW_TH)
#define BIT_CLEAR_HPQ_LOW_TH(x)			((x) & (~BITS_HPQ_LOW_TH))
#define BIT_GET_HPQ_LOW_TH(x)				(((x) >> BIT_SHIFT_HPQ_LOW_TH) & BIT_MASK_HPQ_LOW_TH)
#define BIT_SET_HPQ_LOW_TH(x, v)			(BIT_CLEAR_HPQ_LOW_TH(x) | BIT_HPQ_LOW_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT1				(Offset 0x0218) */


#define BIT_SHIFT_HPQ_LOW_TH_V1			0
#define BIT_MASK_HPQ_LOW_TH_V1				0xfff
#define BIT_HPQ_LOW_TH_V1(x)				(((x) & BIT_MASK_HPQ_LOW_TH_V1) << BIT_SHIFT_HPQ_LOW_TH_V1)
#define BITS_HPQ_LOW_TH_V1				(BIT_MASK_HPQ_LOW_TH_V1 << BIT_SHIFT_HPQ_LOW_TH_V1)
#define BIT_CLEAR_HPQ_LOW_TH_V1(x)			((x) & (~BITS_HPQ_LOW_TH_V1))
#define BIT_GET_HPQ_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_HPQ_LOW_TH_V1) & BIT_MASK_HPQ_LOW_TH_V1)
#define BIT_SET_HPQ_LOW_TH_V1(x, v)			(BIT_CLEAR_HPQ_LOW_TH_V1(x) | BIT_HPQ_LOW_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_RQPN_INFO_PUB			(Offset 0x0218) */


#define BIT_SHIFT_PUB_RSVD_PG				0
#define BIT_MASK_PUB_RSVD_PG				0xfff
#define BIT_PUB_RSVD_PG(x)				(((x) & BIT_MASK_PUB_RSVD_PG) << BIT_SHIFT_PUB_RSVD_PG)
#define BITS_PUB_RSVD_PG				(BIT_MASK_PUB_RSVD_PG << BIT_SHIFT_PUB_RSVD_PG)
#define BIT_CLEAR_PUB_RSVD_PG(x)			((x) & (~BITS_PUB_RSVD_PG))
#define BIT_GET_PUB_RSVD_PG(x)				(((x) >> BIT_SHIFT_PUB_RSVD_PG) & BIT_MASK_PUB_RSVD_PG)
#define BIT_SET_PUB_RSVD_PG(x, v)			(BIT_CLEAR_PUB_RSVD_PG(x) | BIT_PUB_RSVD_PG(v))


/* 2 REG_RQPN_CTRL_2_V1			(Offset 0x021C) */

#define BIT_LD_RQPN_V1					BIT(31)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */

#define BIT_NPQ_INT_EN					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */


#define BIT_SHIFT_EXQ_HIGH_TH				24
#define BIT_MASK_EXQ_HIGH_TH				0xff
#define BIT_EXQ_HIGH_TH(x)				(((x) & BIT_MASK_EXQ_HIGH_TH) << BIT_SHIFT_EXQ_HIGH_TH)
#define BITS_EXQ_HIGH_TH				(BIT_MASK_EXQ_HIGH_TH << BIT_SHIFT_EXQ_HIGH_TH)
#define BIT_CLEAR_EXQ_HIGH_TH(x)			((x) & (~BITS_EXQ_HIGH_TH))
#define BIT_GET_EXQ_HIGH_TH(x)				(((x) >> BIT_SHIFT_EXQ_HIGH_TH) & BIT_MASK_EXQ_HIGH_TH)
#define BIT_SET_EXQ_HIGH_TH(x, v)			(BIT_CLEAR_EXQ_HIGH_TH(x) | BIT_EXQ_HIGH_TH(v))


#define BIT_SHIFT_EXQ_LOW_TH				16
#define BIT_MASK_EXQ_LOW_TH				0xff
#define BIT_EXQ_LOW_TH(x)				(((x) & BIT_MASK_EXQ_LOW_TH) << BIT_SHIFT_EXQ_LOW_TH)
#define BITS_EXQ_LOW_TH				(BIT_MASK_EXQ_LOW_TH << BIT_SHIFT_EXQ_LOW_TH)
#define BIT_CLEAR_EXQ_LOW_TH(x)			((x) & (~BITS_EXQ_LOW_TH))
#define BIT_GET_EXQ_LOW_TH(x)				(((x) >> BIT_SHIFT_EXQ_LOW_TH) & BIT_MASK_EXQ_LOW_TH)
#define BIT_SET_EXQ_LOW_TH(x, v)			(BIT_CLEAR_EXQ_LOW_TH(x) | BIT_EXQ_LOW_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */


#define BIT_SHIFT_NPQ_HIGH_TH_V1			16
#define BIT_MASK_NPQ_HIGH_TH_V1			0xfff
#define BIT_NPQ_HIGH_TH_V1(x)				(((x) & BIT_MASK_NPQ_HIGH_TH_V1) << BIT_SHIFT_NPQ_HIGH_TH_V1)
#define BITS_NPQ_HIGH_TH_V1				(BIT_MASK_NPQ_HIGH_TH_V1 << BIT_SHIFT_NPQ_HIGH_TH_V1)
#define BIT_CLEAR_NPQ_HIGH_TH_V1(x)			((x) & (~BITS_NPQ_HIGH_TH_V1))
#define BIT_GET_NPQ_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_NPQ_HIGH_TH_V1) & BIT_MASK_NPQ_HIGH_TH_V1)
#define BIT_SET_NPQ_HIGH_TH_V1(x, v)			(BIT_CLEAR_NPQ_HIGH_TH_V1(x) | BIT_NPQ_HIGH_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RQPN_CTRL_2_V1			(Offset 0x021C) */

#define BIT_CH16_PUBLIC_DIS				BIT(16)
#define BIT_CH15_PUBLIC_DIS				BIT(15)
#define BIT_CH14_PUBLIC_DIS				BIT(14)
#define BIT_CH13_PUBLIC_DIS				BIT(13)
#define BIT_CH12_PUBLIC_DIS				BIT(12)
#define BIT_CH11_PUBLIC_DIS				BIT(11)
#define BIT_CH10_PUBLIC_DIS				BIT(10)
#define BIT_CH9_PUBLIC_DIS				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */


#define BIT_SHIFT_LPQ_HIGH_TH				8
#define BIT_MASK_LPQ_HIGH_TH				0xff
#define BIT_LPQ_HIGH_TH(x)				(((x) & BIT_MASK_LPQ_HIGH_TH) << BIT_SHIFT_LPQ_HIGH_TH)
#define BITS_LPQ_HIGH_TH				(BIT_MASK_LPQ_HIGH_TH << BIT_SHIFT_LPQ_HIGH_TH)
#define BIT_CLEAR_LPQ_HIGH_TH(x)			((x) & (~BITS_LPQ_HIGH_TH))
#define BIT_GET_LPQ_HIGH_TH(x)				(((x) >> BIT_SHIFT_LPQ_HIGH_TH) & BIT_MASK_LPQ_HIGH_TH)
#define BIT_SET_LPQ_HIGH_TH(x, v)			(BIT_CLEAR_LPQ_HIGH_TH(x) | BIT_LPQ_HIGH_TH(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RQPN_CTRL_2_V1			(Offset 0x021C) */

#define BIT_CH8_PUBLIC_DIS				BIT(8)
#define BIT_CH7_PUBLIC_DIS				BIT(7)
#define BIT_CH6_PUBLIC_DIS				BIT(6)
#define BIT_CH5_PUBLIC_DIS				BIT(5)
#define BIT_CH4_PUBLIC_DIS				BIT(4)
#define BIT_CH3_PUBLIC_DIS				BIT(3)
#define BIT_CH2_PUBLIC_DIS				BIT(2)
#define BIT_CH1_PUBLIC_DIS				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */


#define BIT_SHIFT_LPQ_LOW_TH				0
#define BIT_MASK_LPQ_LOW_TH				0xff
#define BIT_LPQ_LOW_TH(x)				(((x) & BIT_MASK_LPQ_LOW_TH) << BIT_SHIFT_LPQ_LOW_TH)
#define BITS_LPQ_LOW_TH				(BIT_MASK_LPQ_LOW_TH << BIT_SHIFT_LPQ_LOW_TH)
#define BIT_CLEAR_LPQ_LOW_TH(x)			((x) & (~BITS_LPQ_LOW_TH))
#define BIT_GET_LPQ_LOW_TH(x)				(((x) >> BIT_SHIFT_LPQ_LOW_TH) & BIT_MASK_LPQ_LOW_TH)
#define BIT_SET_LPQ_LOW_TH(x, v)			(BIT_CLEAR_LPQ_LOW_TH(x) | BIT_LPQ_LOW_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT2				(Offset 0x021C) */


#define BIT_SHIFT_NPQ_LOW_TH_V1			0
#define BIT_MASK_NPQ_LOW_TH_V1				0xfff
#define BIT_NPQ_LOW_TH_V1(x)				(((x) & BIT_MASK_NPQ_LOW_TH_V1) << BIT_SHIFT_NPQ_LOW_TH_V1)
#define BITS_NPQ_LOW_TH_V1				(BIT_MASK_NPQ_LOW_TH_V1 << BIT_SHIFT_NPQ_LOW_TH_V1)
#define BIT_CLEAR_NPQ_LOW_TH_V1(x)			((x) & (~BITS_NPQ_LOW_TH_V1))
#define BIT_GET_NPQ_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_NPQ_LOW_TH_V1) & BIT_MASK_NPQ_LOW_TH_V1)
#define BIT_SET_NPQ_LOW_TH_V1(x, v)			(BIT_CLEAR_NPQ_LOW_TH_V1(x) | BIT_NPQ_LOW_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RQPN_CTRL_2_V1			(Offset 0x021C) */

#define BIT_CH0_PUBLIC_DIS				BIT(0)

/* 2 REG_BCN_CTRL_2				(Offset 0x0220) */

#define BIT_BCN0_EXT_VALID				BIT(31)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TQPNT3				(Offset 0x0220) */

#define BIT_LPQ_INT_EN					BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT3				(Offset 0x0220) */


#define BIT_SHIFT_LPQ_HIGH_TH_V1			16
#define BIT_MASK_LPQ_HIGH_TH_V1			0xfff
#define BIT_LPQ_HIGH_TH_V1(x)				(((x) & BIT_MASK_LPQ_HIGH_TH_V1) << BIT_SHIFT_LPQ_HIGH_TH_V1)
#define BITS_LPQ_HIGH_TH_V1				(BIT_MASK_LPQ_HIGH_TH_V1 << BIT_SHIFT_LPQ_HIGH_TH_V1)
#define BIT_CLEAR_LPQ_HIGH_TH_V1(x)			((x) & (~BITS_LPQ_HIGH_TH_V1))
#define BIT_GET_LPQ_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_LPQ_HIGH_TH_V1) & BIT_MASK_LPQ_HIGH_TH_V1)
#define BIT_SET_LPQ_HIGH_TH_V1(x, v)			(BIT_CLEAR_LPQ_HIGH_TH_V1(x) | BIT_LPQ_HIGH_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_2				(Offset 0x0220) */


#define BIT_SHIFT_BCN0_EXT_HEAD			16
#define BIT_MASK_BCN0_EXT_HEAD				0xfff
#define BIT_BCN0_EXT_HEAD(x)				(((x) & BIT_MASK_BCN0_EXT_HEAD) << BIT_SHIFT_BCN0_EXT_HEAD)
#define BITS_BCN0_EXT_HEAD				(BIT_MASK_BCN0_EXT_HEAD << BIT_SHIFT_BCN0_EXT_HEAD)
#define BIT_CLEAR_BCN0_EXT_HEAD(x)			((x) & (~BITS_BCN0_EXT_HEAD))
#define BIT_GET_BCN0_EXT_HEAD(x)			(((x) >> BIT_SHIFT_BCN0_EXT_HEAD) & BIT_MASK_BCN0_EXT_HEAD)
#define BIT_SET_BCN0_EXT_HEAD(x, v)			(BIT_CLEAR_BCN0_EXT_HEAD(x) | BIT_BCN0_EXT_HEAD(v))


#define BIT_SHIFT_TXPKTNUM_CH4_7			16
#define BIT_MASK_TXPKTNUM_CH4_7			0xfff
#define BIT_TXPKTNUM_CH4_7(x)				(((x) & BIT_MASK_TXPKTNUM_CH4_7) << BIT_SHIFT_TXPKTNUM_CH4_7)
#define BITS_TXPKTNUM_CH4_7				(BIT_MASK_TXPKTNUM_CH4_7 << BIT_SHIFT_TXPKTNUM_CH4_7)
#define BIT_CLEAR_TXPKTNUM_CH4_7(x)			((x) & (~BITS_TXPKTNUM_CH4_7))
#define BIT_GET_TXPKTNUM_CH4_7(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH4_7) & BIT_MASK_TXPKTNUM_CH4_7)
#define BIT_SET_TXPKTNUM_CH4_7(x, v)			(BIT_CLEAR_TXPKTNUM_CH4_7(x) | BIT_TXPKTNUM_CH4_7(v))


#define BIT_SHIFT_TXPKTNUM_CH12			16
#define BIT_MASK_TXPKTNUM_CH12				0xfff
#define BIT_TXPKTNUM_CH12(x)				(((x) & BIT_MASK_TXPKTNUM_CH12) << BIT_SHIFT_TXPKTNUM_CH12)
#define BITS_TXPKTNUM_CH12				(BIT_MASK_TXPKTNUM_CH12 << BIT_SHIFT_TXPKTNUM_CH12)
#define BIT_CLEAR_TXPKTNUM_CH12(x)			((x) & (~BITS_TXPKTNUM_CH12))
#define BIT_GET_TXPKTNUM_CH12(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH12) & BIT_MASK_TXPKTNUM_CH12)
#define BIT_SET_TXPKTNUM_CH12(x, v)			(BIT_CLEAR_TXPKTNUM_CH12(x) | BIT_TXPKTNUM_CH12(v))


#define BIT_SHIFT_TXPKTNUM_CH14_15			16
#define BIT_MASK_TXPKTNUM_CH14_15			0xfff
#define BIT_TXPKTNUM_CH14_15(x)			(((x) & BIT_MASK_TXPKTNUM_CH14_15) << BIT_SHIFT_TXPKTNUM_CH14_15)
#define BITS_TXPKTNUM_CH14_15				(BIT_MASK_TXPKTNUM_CH14_15 << BIT_SHIFT_TXPKTNUM_CH14_15)
#define BIT_CLEAR_TXPKTNUM_CH14_15(x)			((x) & (~BITS_TXPKTNUM_CH14_15))
#define BIT_GET_TXPKTNUM_CH14_15(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH14_15) & BIT_MASK_TXPKTNUM_CH14_15)
#define BIT_SET_TXPKTNUM_CH14_15(x, v)			(BIT_CLEAR_TXPKTNUM_CH14_15(x) | BIT_TXPKTNUM_CH14_15(v))

#define BIT_BCN4_VALID					BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TDE_DEBUG				(Offset 0x0220) */


#define BIT_SHIFT_TDE_DEBUG				0
#define BIT_MASK_TDE_DEBUG				0xffffffffL
#define BIT_TDE_DEBUG(x)				(((x) & BIT_MASK_TDE_DEBUG) << BIT_SHIFT_TDE_DEBUG)
#define BITS_TDE_DEBUG					(BIT_MASK_TDE_DEBUG << BIT_SHIFT_TDE_DEBUG)
#define BIT_CLEAR_TDE_DEBUG(x)				((x) & (~BITS_TDE_DEBUG))
#define BIT_GET_TDE_DEBUG(x)				(((x) >> BIT_SHIFT_TDE_DEBUG) & BIT_MASK_TDE_DEBUG)
#define BIT_SET_TDE_DEBUG(x, v)			(BIT_CLEAR_TDE_DEBUG(x) | BIT_TDE_DEBUG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT3				(Offset 0x0220) */


#define BIT_SHIFT_LPQ_LOW_TH_V1			0
#define BIT_MASK_LPQ_LOW_TH_V1				0xfff
#define BIT_LPQ_LOW_TH_V1(x)				(((x) & BIT_MASK_LPQ_LOW_TH_V1) << BIT_SHIFT_LPQ_LOW_TH_V1)
#define BITS_LPQ_LOW_TH_V1				(BIT_MASK_LPQ_LOW_TH_V1 << BIT_SHIFT_LPQ_LOW_TH_V1)
#define BIT_CLEAR_LPQ_LOW_TH_V1(x)			((x) & (~BITS_LPQ_LOW_TH_V1))
#define BIT_GET_LPQ_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_LPQ_LOW_TH_V1) & BIT_MASK_LPQ_LOW_TH_V1)
#define BIT_SET_LPQ_LOW_TH_V1(x, v)			(BIT_CLEAR_LPQ_LOW_TH_V1(x) | BIT_LPQ_LOW_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_CTRL_2				(Offset 0x0220) */


#define BIT_SHIFT_BCN4_HEAD				0
#define BIT_MASK_BCN4_HEAD				0xfff
#define BIT_BCN4_HEAD(x)				(((x) & BIT_MASK_BCN4_HEAD) << BIT_SHIFT_BCN4_HEAD)
#define BITS_BCN4_HEAD					(BIT_MASK_BCN4_HEAD << BIT_SHIFT_BCN4_HEAD)
#define BIT_CLEAR_BCN4_HEAD(x)				((x) & (~BITS_BCN4_HEAD))
#define BIT_GET_BCN4_HEAD(x)				(((x) >> BIT_SHIFT_BCN4_HEAD) & BIT_MASK_BCN4_HEAD)
#define BIT_SET_BCN4_HEAD(x, v)			(BIT_CLEAR_BCN4_HEAD(x) | BIT_BCN4_HEAD(v))


#define BIT_SHIFT_TXPKTNUM_CH0_3			0
#define BIT_MASK_TXPKTNUM_CH0_3			0xfff
#define BIT_TXPKTNUM_CH0_3(x)				(((x) & BIT_MASK_TXPKTNUM_CH0_3) << BIT_SHIFT_TXPKTNUM_CH0_3)
#define BITS_TXPKTNUM_CH0_3				(BIT_MASK_TXPKTNUM_CH0_3 << BIT_SHIFT_TXPKTNUM_CH0_3)
#define BIT_CLEAR_TXPKTNUM_CH0_3(x)			((x) & (~BITS_TXPKTNUM_CH0_3))
#define BIT_GET_TXPKTNUM_CH0_3(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH0_3) & BIT_MASK_TXPKTNUM_CH0_3)
#define BIT_SET_TXPKTNUM_CH0_3(x, v)			(BIT_CLEAR_TXPKTNUM_CH0_3(x) | BIT_TXPKTNUM_CH0_3(v))


#define BIT_SHIFT_TXPKTNUM_CH8_11			0
#define BIT_MASK_TXPKTNUM_CH8_11			0xfff
#define BIT_TXPKTNUM_CH8_11(x)				(((x) & BIT_MASK_TXPKTNUM_CH8_11) << BIT_SHIFT_TXPKTNUM_CH8_11)
#define BITS_TXPKTNUM_CH8_11				(BIT_MASK_TXPKTNUM_CH8_11 << BIT_SHIFT_TXPKTNUM_CH8_11)
#define BIT_CLEAR_TXPKTNUM_CH8_11(x)			((x) & (~BITS_TXPKTNUM_CH8_11))
#define BIT_GET_TXPKTNUM_CH8_11(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH8_11) & BIT_MASK_TXPKTNUM_CH8_11)
#define BIT_SET_TXPKTNUM_CH8_11(x, v)			(BIT_CLEAR_TXPKTNUM_CH8_11(x) | BIT_TXPKTNUM_CH8_11(v))


#define BIT_SHIFT_TXPKTNUM_CH13			0
#define BIT_MASK_TXPKTNUM_CH13				0xfff
#define BIT_TXPKTNUM_CH13(x)				(((x) & BIT_MASK_TXPKTNUM_CH13) << BIT_SHIFT_TXPKTNUM_CH13)
#define BITS_TXPKTNUM_CH13				(BIT_MASK_TXPKTNUM_CH13 << BIT_SHIFT_TXPKTNUM_CH13)
#define BIT_CLEAR_TXPKTNUM_CH13(x)			((x) & (~BITS_TXPKTNUM_CH13))
#define BIT_GET_TXPKTNUM_CH13(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH13) & BIT_MASK_TXPKTNUM_CH13)
#define BIT_SET_TXPKTNUM_CH13(x, v)			(BIT_CLEAR_TXPKTNUM_CH13(x) | BIT_TXPKTNUM_CH13(v))


#define BIT_SHIFT_TXPKTNUM_CH16			0
#define BIT_MASK_TXPKTNUM_CH16				0xfff
#define BIT_TXPKTNUM_CH16(x)				(((x) & BIT_MASK_TXPKTNUM_CH16) << BIT_SHIFT_TXPKTNUM_CH16)
#define BITS_TXPKTNUM_CH16				(BIT_MASK_TXPKTNUM_CH16 << BIT_SHIFT_TXPKTNUM_CH16)
#define BIT_CLEAR_TXPKTNUM_CH16(x)			((x) & (~BITS_TXPKTNUM_CH16))
#define BIT_GET_TXPKTNUM_CH16(x)			(((x) >> BIT_SHIFT_TXPKTNUM_CH16) & BIT_MASK_TXPKTNUM_CH16)
#define BIT_SET_TXPKTNUM_CH16(x, v)			(BIT_CLEAR_TXPKTNUM_CH16(x) | BIT_TXPKTNUM_CH16(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TQPNT4				(Offset 0x0224) */

#define BIT_EXQ_INT_EN					BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AUTO_LLT				(Offset 0x0224) */


#define BIT_SHIFT_TXPKTNUM_V1				24
#define BIT_MASK_TXPKTNUM_V1				0xff
#define BIT_TXPKTNUM_V1(x)				(((x) & BIT_MASK_TXPKTNUM_V1) << BIT_SHIFT_TXPKTNUM_V1)
#define BITS_TXPKTNUM_V1				(BIT_MASK_TXPKTNUM_V1 << BIT_SHIFT_TXPKTNUM_V1)
#define BIT_CLEAR_TXPKTNUM_V1(x)			((x) & (~BITS_TXPKTNUM_V1))
#define BIT_GET_TXPKTNUM_V1(x)				(((x) >> BIT_SHIFT_TXPKTNUM_V1) & BIT_MASK_TXPKTNUM_V1)
#define BIT_SET_TXPKTNUM_V1(x, v)			(BIT_CLEAR_TXPKTNUM_V1(x) | BIT_TXPKTNUM_V1(v))

#define BIT_TDE_DBG_SEL				BIT(23)
#define BIT_AUTO_INIT_LLT				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT4				(Offset 0x0224) */


#define BIT_SHIFT_EXQ_HIGH_TH_V1			16
#define BIT_MASK_EXQ_HIGH_TH_V1			0xfff
#define BIT_EXQ_HIGH_TH_V1(x)				(((x) & BIT_MASK_EXQ_HIGH_TH_V1) << BIT_SHIFT_EXQ_HIGH_TH_V1)
#define BITS_EXQ_HIGH_TH_V1				(BIT_MASK_EXQ_HIGH_TH_V1 << BIT_SHIFT_EXQ_HIGH_TH_V1)
#define BIT_CLEAR_EXQ_HIGH_TH_V1(x)			((x) & (~BITS_EXQ_HIGH_TH_V1))
#define BIT_GET_EXQ_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_EXQ_HIGH_TH_V1) & BIT_MASK_EXQ_HIGH_TH_V1)
#define BIT_SET_EXQ_HIGH_TH_V1(x, v)			(BIT_CLEAR_EXQ_HIGH_TH_V1(x) | BIT_EXQ_HIGH_TH_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AUTO_LLT				(Offset 0x0224) */


#define BIT_SHIFT_TX_OQT_HE_FREE_SPACE			8
#define BIT_MASK_TX_OQT_HE_FREE_SPACE			0xff
#define BIT_TX_OQT_HE_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_HE_FREE_SPACE) << BIT_SHIFT_TX_OQT_HE_FREE_SPACE)
#define BITS_TX_OQT_HE_FREE_SPACE			(BIT_MASK_TX_OQT_HE_FREE_SPACE << BIT_SHIFT_TX_OQT_HE_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_HE_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_HE_FREE_SPACE))
#define BIT_GET_TX_OQT_HE_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_HE_FREE_SPACE) & BIT_MASK_TX_OQT_HE_FREE_SPACE)
#define BIT_SET_TX_OQT_HE_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_HE_FREE_SPACE(x) | BIT_TX_OQT_HE_FREE_SPACE(v))


#define BIT_SHIFT_TX_OQT_NL_FREE_SPACE			0
#define BIT_MASK_TX_OQT_NL_FREE_SPACE			0xff
#define BIT_TX_OQT_NL_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_NL_FREE_SPACE) << BIT_SHIFT_TX_OQT_NL_FREE_SPACE)
#define BITS_TX_OQT_NL_FREE_SPACE			(BIT_MASK_TX_OQT_NL_FREE_SPACE << BIT_SHIFT_TX_OQT_NL_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_NL_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_NL_FREE_SPACE))
#define BIT_GET_TX_OQT_NL_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_NL_FREE_SPACE) & BIT_MASK_TX_OQT_NL_FREE_SPACE)
#define BIT_SET_TX_OQT_NL_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_NL_FREE_SPACE(x) | BIT_TX_OQT_NL_FREE_SPACE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TQPNT4				(Offset 0x0224) */


#define BIT_SHIFT_EXQ_LOW_TH_V1			0
#define BIT_MASK_EXQ_LOW_TH_V1				0xfff
#define BIT_EXQ_LOW_TH_V1(x)				(((x) & BIT_MASK_EXQ_LOW_TH_V1) << BIT_SHIFT_EXQ_LOW_TH_V1)
#define BITS_EXQ_LOW_TH_V1				(BIT_MASK_EXQ_LOW_TH_V1 << BIT_SHIFT_EXQ_LOW_TH_V1)
#define BIT_CLEAR_EXQ_LOW_TH_V1(x)			((x) & (~BITS_EXQ_LOW_TH_V1))
#define BIT_GET_EXQ_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_EXQ_LOW_TH_V1) & BIT_MASK_EXQ_LOW_TH_V1)
#define BIT_SET_EXQ_LOW_TH_V1(x, v)			(BIT_CLEAR_EXQ_LOW_TH_V1(x) | BIT_EXQ_LOW_TH_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DWBCN1_CTRL				(Offset 0x0228) */

#define BIT_SW_BCN_SEL					BIT(20)
#define BIT_SW_BCN_SEL_EN				BIT(17)
#define BIT_BCN_VALID_1				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RQPN_CTRL_1				(Offset 0x0228) */


#define BIT_SHIFT_TXPKTNUM_H				16
#define BIT_MASK_TXPKTNUM_H				0xffff
#define BIT_TXPKTNUM_H(x)				(((x) & BIT_MASK_TXPKTNUM_H) << BIT_SHIFT_TXPKTNUM_H)
#define BITS_TXPKTNUM_H				(BIT_MASK_TXPKTNUM_H << BIT_SHIFT_TXPKTNUM_H)
#define BIT_CLEAR_TXPKTNUM_H(x)			((x) & (~BITS_TXPKTNUM_H))
#define BIT_GET_TXPKTNUM_H(x)				(((x) >> BIT_SHIFT_TXPKTNUM_H) & BIT_MASK_TXPKTNUM_H)
#define BIT_SET_TXPKTNUM_H(x, v)			(BIT_CLEAR_TXPKTNUM_H(x) | BIT_TXPKTNUM_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DWBCN1_CTRL				(Offset 0x0228) */


#define BIT_SHIFT_BCN_HEAD_1				8
#define BIT_MASK_BCN_HEAD_1				0xff
#define BIT_BCN_HEAD_1(x)				(((x) & BIT_MASK_BCN_HEAD_1) << BIT_SHIFT_BCN_HEAD_1)
#define BITS_BCN_HEAD_1				(BIT_MASK_BCN_HEAD_1 << BIT_SHIFT_BCN_HEAD_1)
#define BIT_CLEAR_BCN_HEAD_1(x)			((x) & (~BITS_BCN_HEAD_1))
#define BIT_GET_BCN_HEAD_1(x)				(((x) >> BIT_SHIFT_BCN_HEAD_1) & BIT_MASK_BCN_HEAD_1)
#define BIT_SET_BCN_HEAD_1(x, v)			(BIT_CLEAR_BCN_HEAD_1(x) | BIT_BCN_HEAD_1(v))


#define BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO		0
#define BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO		0xff
#define BIT_MAX_TX_PKT_FOR_USB_AND_SDIO(x)		(((x) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO) << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO)
#define BITS_MAX_TX_PKT_FOR_USB_AND_SDIO		(BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO << BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO)
#define BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO(x)	((x) & (~BITS_MAX_TX_PKT_FOR_USB_AND_SDIO))
#define BIT_GET_MAX_TX_PKT_FOR_USB_AND_SDIO(x)	(((x) >> BIT_SHIFT_MAX_TX_PKT_FOR_USB_AND_SDIO) & BIT_MASK_MAX_TX_PKT_FOR_USB_AND_SDIO)
#define BIT_SET_MAX_TX_PKT_FOR_USB_AND_SDIO(x, v)	(BIT_CLEAR_MAX_TX_PKT_FOR_USB_AND_SDIO(x) | BIT_MAX_TX_PKT_FOR_USB_AND_SDIO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RQPN_CTRL_1				(Offset 0x0228) */


#define BIT_SHIFT_TXPKTNUM_H_V1			0
#define BIT_MASK_TXPKTNUM_H_V1				0xffff
#define BIT_TXPKTNUM_H_V1(x)				(((x) & BIT_MASK_TXPKTNUM_H_V1) << BIT_SHIFT_TXPKTNUM_H_V1)
#define BITS_TXPKTNUM_H_V1				(BIT_MASK_TXPKTNUM_H_V1 << BIT_SHIFT_TXPKTNUM_H_V1)
#define BIT_CLEAR_TXPKTNUM_H_V1(x)			((x) & (~BITS_TXPKTNUM_H_V1))
#define BIT_GET_TXPKTNUM_H_V1(x)			(((x) >> BIT_SHIFT_TXPKTNUM_H_V1) & BIT_MASK_TXPKTNUM_H_V1)
#define BIT_SET_TXPKTNUM_H_V1(x, v)			(BIT_CLEAR_TXPKTNUM_H_V1(x) | BIT_TXPKTNUM_H_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RQPN_CTRL_1				(Offset 0x0228) */


#define BIT_SHIFT_TXPKTNUM_V2				0
#define BIT_MASK_TXPKTNUM_V2				0xffff
#define BIT_TXPKTNUM_V2(x)				(((x) & BIT_MASK_TXPKTNUM_V2) << BIT_SHIFT_TXPKTNUM_V2)
#define BITS_TXPKTNUM_V2				(BIT_MASK_TXPKTNUM_V2 << BIT_SHIFT_TXPKTNUM_V2)
#define BIT_CLEAR_TXPKTNUM_V2(x)			((x) & (~BITS_TXPKTNUM_V2))
#define BIT_GET_TXPKTNUM_V2(x)				(((x) >> BIT_SHIFT_TXPKTNUM_V2) & BIT_MASK_TXPKTNUM_V2)
#define BIT_SET_TXPKTNUM_V2(x, v)			(BIT_CLEAR_TXPKTNUM_V2(x) | BIT_TXPKTNUM_V2(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RQPN_CTRL_2				(Offset 0x022C) */

#define BIT_EX2Q_PUBLIC_DIS_V1				BIT(21)
#define BIT_EX1Q_PUBLIC_DIS_V1				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RQPN_CTRL_2				(Offset 0x022C) */

#define BIT_EXQ_PUBLIC_DIS_V1				BIT(19)
#define BIT_NPQ_PUBLIC_DIS_V1				BIT(18)
#define BIT_LPQ_PUBLIC_DIS_V1				BIT(17)
#define BIT_HPQ_PUBLIC_DIS_V1				BIT(16)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_RQPN_CTRL_2				(Offset 0x022C) */

#define BIT_SDIO_TXAGG_ALIGN_ADJUST_EN			BIT(15)

#define BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE		0
#define BIT_MASK_SDIO_TXAGG_ALIGN_SIZE			0xfff
#define BIT_SDIO_TXAGG_ALIGN_SIZE(x)			(((x) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE) << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE)
#define BITS_SDIO_TXAGG_ALIGN_SIZE			(BIT_MASK_SDIO_TXAGG_ALIGN_SIZE << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE)
#define BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE(x)		((x) & (~BITS_SDIO_TXAGG_ALIGN_SIZE))
#define BIT_GET_SDIO_TXAGG_ALIGN_SIZE(x)		(((x) >> BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE)
#define BIT_SET_SDIO_TXAGG_ALIGN_SIZE(x, v)		(BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE(x) | BIT_SDIO_TXAGG_ALIGN_SIZE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_INFO_1			(Offset 0x0230) */


#define BIT_SHIFT_HPQ_AVAL_PG_V1			16
#define BIT_MASK_HPQ_AVAL_PG_V1			0xfff
#define BIT_HPQ_AVAL_PG_V1(x)				(((x) & BIT_MASK_HPQ_AVAL_PG_V1) << BIT_SHIFT_HPQ_AVAL_PG_V1)
#define BITS_HPQ_AVAL_PG_V1				(BIT_MASK_HPQ_AVAL_PG_V1 << BIT_SHIFT_HPQ_AVAL_PG_V1)
#define BIT_CLEAR_HPQ_AVAL_PG_V1(x)			((x) & (~BITS_HPQ_AVAL_PG_V1))
#define BIT_GET_HPQ_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_HPQ_AVAL_PG_V1) & BIT_MASK_HPQ_AVAL_PG_V1)
#define BIT_SET_HPQ_AVAL_PG_V1(x, v)			(BIT_CLEAR_HPQ_AVAL_PG_V1(x) | BIT_HPQ_AVAL_PG_V1(v))


#define BIT_SHIFT_HPQ_V1				0
#define BIT_MASK_HPQ_V1				0xfff
#define BIT_HPQ_V1(x)					(((x) & BIT_MASK_HPQ_V1) << BIT_SHIFT_HPQ_V1)
#define BITS_HPQ_V1					(BIT_MASK_HPQ_V1 << BIT_SHIFT_HPQ_V1)
#define BIT_CLEAR_HPQ_V1(x)				((x) & (~BITS_HPQ_V1))
#define BIT_GET_HPQ_V1(x)				(((x) >> BIT_SHIFT_HPQ_V1) & BIT_MASK_HPQ_V1)
#define BIT_SET_HPQ_V1(x, v)				(BIT_CLEAR_HPQ_V1(x) | BIT_HPQ_V1(v))


/* 2 REG_FIFOPAGE_INFO_2			(Offset 0x0234) */


#define BIT_SHIFT_LPQ_AVAL_PG_V1			16
#define BIT_MASK_LPQ_AVAL_PG_V1			0xfff
#define BIT_LPQ_AVAL_PG_V1(x)				(((x) & BIT_MASK_LPQ_AVAL_PG_V1) << BIT_SHIFT_LPQ_AVAL_PG_V1)
#define BITS_LPQ_AVAL_PG_V1				(BIT_MASK_LPQ_AVAL_PG_V1 << BIT_SHIFT_LPQ_AVAL_PG_V1)
#define BIT_CLEAR_LPQ_AVAL_PG_V1(x)			((x) & (~BITS_LPQ_AVAL_PG_V1))
#define BIT_GET_LPQ_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_LPQ_AVAL_PG_V1) & BIT_MASK_LPQ_AVAL_PG_V1)
#define BIT_SET_LPQ_AVAL_PG_V1(x, v)			(BIT_CLEAR_LPQ_AVAL_PG_V1(x) | BIT_LPQ_AVAL_PG_V1(v))


#define BIT_SHIFT_LPQ_V1				0
#define BIT_MASK_LPQ_V1				0xfff
#define BIT_LPQ_V1(x)					(((x) & BIT_MASK_LPQ_V1) << BIT_SHIFT_LPQ_V1)
#define BITS_LPQ_V1					(BIT_MASK_LPQ_V1 << BIT_SHIFT_LPQ_V1)
#define BIT_CLEAR_LPQ_V1(x)				((x) & (~BITS_LPQ_V1))
#define BIT_GET_LPQ_V1(x)				(((x) >> BIT_SHIFT_LPQ_V1) & BIT_MASK_LPQ_V1)
#define BIT_SET_LPQ_V1(x, v)				(BIT_CLEAR_LPQ_V1(x) | BIT_LPQ_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_INFO_3			(Offset 0x0238) */


#define BIT_SHIFT_NPQ_AVAL_PG_V1			16
#define BIT_MASK_NPQ_AVAL_PG_V1			0xfff
#define BIT_NPQ_AVAL_PG_V1(x)				(((x) & BIT_MASK_NPQ_AVAL_PG_V1) << BIT_SHIFT_NPQ_AVAL_PG_V1)
#define BITS_NPQ_AVAL_PG_V1				(BIT_MASK_NPQ_AVAL_PG_V1 << BIT_SHIFT_NPQ_AVAL_PG_V1)
#define BIT_CLEAR_NPQ_AVAL_PG_V1(x)			((x) & (~BITS_NPQ_AVAL_PG_V1))
#define BIT_GET_NPQ_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_NPQ_AVAL_PG_V1) & BIT_MASK_NPQ_AVAL_PG_V1)
#define BIT_SET_NPQ_AVAL_PG_V1(x, v)			(BIT_CLEAR_NPQ_AVAL_PG_V1(x) | BIT_NPQ_AVAL_PG_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_INFO_3			(Offset 0x0238) */


#define BIT_SHIFT_NPQ_V1				0
#define BIT_MASK_NPQ_V1				0xfff
#define BIT_NPQ_V1(x)					(((x) & BIT_MASK_NPQ_V1) << BIT_SHIFT_NPQ_V1)
#define BITS_NPQ_V1					(BIT_MASK_NPQ_V1 << BIT_SHIFT_NPQ_V1)
#define BIT_CLEAR_NPQ_V1(x)				((x) & (~BITS_NPQ_V1))
#define BIT_GET_NPQ_V1(x)				(((x) >> BIT_SHIFT_NPQ_V1) & BIT_MASK_NPQ_V1)
#define BIT_SET_NPQ_V1(x, v)				(BIT_CLEAR_NPQ_V1(x) | BIT_NPQ_V1(v))


/* 2 REG_FIFOPAGE_INFO_4			(Offset 0x023C) */


#define BIT_SHIFT_EXQ_AVAL_PG_V1			16
#define BIT_MASK_EXQ_AVAL_PG_V1			0xfff
#define BIT_EXQ_AVAL_PG_V1(x)				(((x) & BIT_MASK_EXQ_AVAL_PG_V1) << BIT_SHIFT_EXQ_AVAL_PG_V1)
#define BITS_EXQ_AVAL_PG_V1				(BIT_MASK_EXQ_AVAL_PG_V1 << BIT_SHIFT_EXQ_AVAL_PG_V1)
#define BIT_CLEAR_EXQ_AVAL_PG_V1(x)			((x) & (~BITS_EXQ_AVAL_PG_V1))
#define BIT_GET_EXQ_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_EXQ_AVAL_PG_V1) & BIT_MASK_EXQ_AVAL_PG_V1)
#define BIT_SET_EXQ_AVAL_PG_V1(x, v)			(BIT_CLEAR_EXQ_AVAL_PG_V1(x) | BIT_EXQ_AVAL_PG_V1(v))


#define BIT_SHIFT_EXQ_V1				0
#define BIT_MASK_EXQ_V1				0xfff
#define BIT_EXQ_V1(x)					(((x) & BIT_MASK_EXQ_V1) << BIT_SHIFT_EXQ_V1)
#define BITS_EXQ_V1					(BIT_MASK_EXQ_V1 << BIT_SHIFT_EXQ_V1)
#define BIT_CLEAR_EXQ_V1(x)				((x) & (~BITS_EXQ_V1))
#define BIT_GET_EXQ_V1(x)				(((x) >> BIT_SHIFT_EXQ_V1) & BIT_MASK_EXQ_V1)
#define BIT_SET_EXQ_V1(x, v)				(BIT_CLEAR_EXQ_V1(x) | BIT_EXQ_V1(v))


/* 2 REG_FIFOPAGE_INFO_5			(Offset 0x0240) */


#define BIT_SHIFT_PUBQ_AVAL_PG_V1			16
#define BIT_MASK_PUBQ_AVAL_PG_V1			0xfff
#define BIT_PUBQ_AVAL_PG_V1(x)				(((x) & BIT_MASK_PUBQ_AVAL_PG_V1) << BIT_SHIFT_PUBQ_AVAL_PG_V1)
#define BITS_PUBQ_AVAL_PG_V1				(BIT_MASK_PUBQ_AVAL_PG_V1 << BIT_SHIFT_PUBQ_AVAL_PG_V1)
#define BIT_CLEAR_PUBQ_AVAL_PG_V1(x)			((x) & (~BITS_PUBQ_AVAL_PG_V1))
#define BIT_GET_PUBQ_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_PUBQ_AVAL_PG_V1) & BIT_MASK_PUBQ_AVAL_PG_V1)
#define BIT_SET_PUBQ_AVAL_PG_V1(x, v)			(BIT_CLEAR_PUBQ_AVAL_PG_V1(x) | BIT_PUBQ_AVAL_PG_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TX_AGG_ALIGN			(Offset 0x0240) */


#define BIT_SHIFT_HW_FLOW_CTL_EN			16
#define BIT_MASK_HW_FLOW_CTL_EN			0xffff
#define BIT_HW_FLOW_CTL_EN(x)				(((x) & BIT_MASK_HW_FLOW_CTL_EN) << BIT_SHIFT_HW_FLOW_CTL_EN)
#define BITS_HW_FLOW_CTL_EN				(BIT_MASK_HW_FLOW_CTL_EN << BIT_SHIFT_HW_FLOW_CTL_EN)
#define BIT_CLEAR_HW_FLOW_CTL_EN(x)			((x) & (~BITS_HW_FLOW_CTL_EN))
#define BIT_GET_HW_FLOW_CTL_EN(x)			(((x) >> BIT_SHIFT_HW_FLOW_CTL_EN) & BIT_MASK_HW_FLOW_CTL_EN)
#define BIT_SET_HW_FLOW_CTL_EN(x, v)			(BIT_CLEAR_HW_FLOW_CTL_EN(x) | BIT_HW_FLOW_CTL_EN(v))

#define BIT_SDIO_TXAGG_ALIGN_ADJUST_EN_V1		BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FIFOPAGE_INFO_5			(Offset 0x0240) */


#define BIT_SHIFT_PUBQ_V1				0
#define BIT_MASK_PUBQ_V1				0xfff
#define BIT_PUBQ_V1(x)					(((x) & BIT_MASK_PUBQ_V1) << BIT_SHIFT_PUBQ_V1)
#define BITS_PUBQ_V1					(BIT_MASK_PUBQ_V1 << BIT_SHIFT_PUBQ_V1)
#define BIT_CLEAR_PUBQ_V1(x)				((x) & (~BITS_PUBQ_V1))
#define BIT_GET_PUBQ_V1(x)				(((x) >> BIT_SHIFT_PUBQ_V1) & BIT_MASK_PUBQ_V1)
#define BIT_SET_PUBQ_V1(x, v)				(BIT_CLEAR_PUBQ_V1(x) | BIT_PUBQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TX_AGG_ALIGN			(Offset 0x0240) */


#define BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1		0
#define BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1		0xfff
#define BIT_SDIO_TXAGG_ALIGN_SIZE_V1(x)		(((x) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1) << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1)
#define BITS_SDIO_TXAGG_ALIGN_SIZE_V1			(BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1 << BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1)
#define BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE_V1(x)		((x) & (~BITS_SDIO_TXAGG_ALIGN_SIZE_V1))
#define BIT_GET_SDIO_TXAGG_ALIGN_SIZE_V1(x)		(((x) >> BIT_SHIFT_SDIO_TXAGG_ALIGN_SIZE_V1) & BIT_MASK_SDIO_TXAGG_ALIGN_SIZE_V1)
#define BIT_SET_SDIO_TXAGG_ALIGN_SIZE_V1(x, v)	(BIT_CLEAR_SDIO_TXAGG_ALIGN_SIZE_V1(x) | BIT_SDIO_TXAGG_ALIGN_SIZE_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_HEAD				(Offset 0x0244) */


#define BIT_SHIFT_H2C_HEAD				0
#define BIT_MASK_H2C_HEAD				0x3ffff
#define BIT_H2C_HEAD(x)				(((x) & BIT_MASK_H2C_HEAD) << BIT_SHIFT_H2C_HEAD)
#define BITS_H2C_HEAD					(BIT_MASK_H2C_HEAD << BIT_SHIFT_H2C_HEAD)
#define BIT_CLEAR_H2C_HEAD(x)				((x) & (~BITS_H2C_HEAD))
#define BIT_GET_H2C_HEAD(x)				(((x) >> BIT_SHIFT_H2C_HEAD) & BIT_MASK_H2C_HEAD)
#define BIT_SET_H2C_HEAD(x, v)				(BIT_CLEAR_H2C_HEAD(x) | BIT_H2C_HEAD(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2C_HEAD				(Offset 0x0244) */


#define BIT_SHIFT_H2C_HEAD_V1				0
#define BIT_MASK_H2C_HEAD_V1				0x7ffff
#define BIT_H2C_HEAD_V1(x)				(((x) & BIT_MASK_H2C_HEAD_V1) << BIT_SHIFT_H2C_HEAD_V1)
#define BITS_H2C_HEAD_V1				(BIT_MASK_H2C_HEAD_V1 << BIT_SHIFT_H2C_HEAD_V1)
#define BIT_CLEAR_H2C_HEAD_V1(x)			((x) & (~BITS_H2C_HEAD_V1))
#define BIT_GET_H2C_HEAD_V1(x)				(((x) >> BIT_SHIFT_H2C_HEAD_V1) & BIT_MASK_H2C_HEAD_V1)
#define BIT_SET_H2C_HEAD_V1(x, v)			(BIT_CLEAR_H2C_HEAD_V1(x) | BIT_H2C_HEAD_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_TAIL				(Offset 0x0248) */


#define BIT_SHIFT_H2C_TAIL				0
#define BIT_MASK_H2C_TAIL				0x3ffff
#define BIT_H2C_TAIL(x)				(((x) & BIT_MASK_H2C_TAIL) << BIT_SHIFT_H2C_TAIL)
#define BITS_H2C_TAIL					(BIT_MASK_H2C_TAIL << BIT_SHIFT_H2C_TAIL)
#define BIT_CLEAR_H2C_TAIL(x)				((x) & (~BITS_H2C_TAIL))
#define BIT_GET_H2C_TAIL(x)				(((x) >> BIT_SHIFT_H2C_TAIL) & BIT_MASK_H2C_TAIL)
#define BIT_SET_H2C_TAIL(x, v)				(BIT_CLEAR_H2C_TAIL(x) | BIT_H2C_TAIL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2C_TAIL				(Offset 0x0248) */


#define BIT_SHIFT_H2C_TAIL_V1				0
#define BIT_MASK_H2C_TAIL_V1				0x7ffff
#define BIT_H2C_TAIL_V1(x)				(((x) & BIT_MASK_H2C_TAIL_V1) << BIT_SHIFT_H2C_TAIL_V1)
#define BITS_H2C_TAIL_V1				(BIT_MASK_H2C_TAIL_V1 << BIT_SHIFT_H2C_TAIL_V1)
#define BIT_CLEAR_H2C_TAIL_V1(x)			((x) & (~BITS_H2C_TAIL_V1))
#define BIT_GET_H2C_TAIL_V1(x)				(((x) >> BIT_SHIFT_H2C_TAIL_V1) & BIT_MASK_H2C_TAIL_V1)
#define BIT_SET_H2C_TAIL_V1(x, v)			(BIT_CLEAR_H2C_TAIL_V1(x) | BIT_H2C_TAIL_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_READ_ADDR			(Offset 0x024C) */


#define BIT_SHIFT_H2C_READ_ADDR			0
#define BIT_MASK_H2C_READ_ADDR				0x3ffff
#define BIT_H2C_READ_ADDR(x)				(((x) & BIT_MASK_H2C_READ_ADDR) << BIT_SHIFT_H2C_READ_ADDR)
#define BITS_H2C_READ_ADDR				(BIT_MASK_H2C_READ_ADDR << BIT_SHIFT_H2C_READ_ADDR)
#define BIT_CLEAR_H2C_READ_ADDR(x)			((x) & (~BITS_H2C_READ_ADDR))
#define BIT_GET_H2C_READ_ADDR(x)			(((x) >> BIT_SHIFT_H2C_READ_ADDR) & BIT_MASK_H2C_READ_ADDR)
#define BIT_SET_H2C_READ_ADDR(x, v)			(BIT_CLEAR_H2C_READ_ADDR(x) | BIT_H2C_READ_ADDR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2C_READ_ADDR			(Offset 0x024C) */


#define BIT_SHIFT_H2C_READ_ADDR_V1			0
#define BIT_MASK_H2C_READ_ADDR_V1			0x7ffff
#define BIT_H2C_READ_ADDR_V1(x)			(((x) & BIT_MASK_H2C_READ_ADDR_V1) << BIT_SHIFT_H2C_READ_ADDR_V1)
#define BITS_H2C_READ_ADDR_V1				(BIT_MASK_H2C_READ_ADDR_V1 << BIT_SHIFT_H2C_READ_ADDR_V1)
#define BIT_CLEAR_H2C_READ_ADDR_V1(x)			((x) & (~BITS_H2C_READ_ADDR_V1))
#define BIT_GET_H2C_READ_ADDR_V1(x)			(((x) >> BIT_SHIFT_H2C_READ_ADDR_V1) & BIT_MASK_H2C_READ_ADDR_V1)
#define BIT_SET_H2C_READ_ADDR_V1(x, v)			(BIT_CLEAR_H2C_READ_ADDR_V1(x) | BIT_H2C_READ_ADDR_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_WR_ADDR				(Offset 0x0250) */


#define BIT_SHIFT_H2C_WR_ADDR				0
#define BIT_MASK_H2C_WR_ADDR				0x3ffff
#define BIT_H2C_WR_ADDR(x)				(((x) & BIT_MASK_H2C_WR_ADDR) << BIT_SHIFT_H2C_WR_ADDR)
#define BITS_H2C_WR_ADDR				(BIT_MASK_H2C_WR_ADDR << BIT_SHIFT_H2C_WR_ADDR)
#define BIT_CLEAR_H2C_WR_ADDR(x)			((x) & (~BITS_H2C_WR_ADDR))
#define BIT_GET_H2C_WR_ADDR(x)				(((x) >> BIT_SHIFT_H2C_WR_ADDR) & BIT_MASK_H2C_WR_ADDR)
#define BIT_SET_H2C_WR_ADDR(x, v)			(BIT_CLEAR_H2C_WR_ADDR(x) | BIT_H2C_WR_ADDR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2C_WR_ADDR				(Offset 0x0250) */


#define BIT_SHIFT_H2C_WR_ADDR_V1			0
#define BIT_MASK_H2C_WR_ADDR_V1			0x7ffff
#define BIT_H2C_WR_ADDR_V1(x)				(((x) & BIT_MASK_H2C_WR_ADDR_V1) << BIT_SHIFT_H2C_WR_ADDR_V1)
#define BITS_H2C_WR_ADDR_V1				(BIT_MASK_H2C_WR_ADDR_V1 << BIT_SHIFT_H2C_WR_ADDR_V1)
#define BIT_CLEAR_H2C_WR_ADDR_V1(x)			((x) & (~BITS_H2C_WR_ADDR_V1))
#define BIT_GET_H2C_WR_ADDR_V1(x)			(((x) >> BIT_SHIFT_H2C_WR_ADDR_V1) & BIT_MASK_H2C_WR_ADDR_V1)
#define BIT_SET_H2C_WR_ADDR_V1(x, v)			(BIT_CLEAR_H2C_WR_ADDR_V1(x) | BIT_H2C_WR_ADDR_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */


#define BIT_SHIFT_VI_PUB_LIMIT				16
#define BIT_MASK_VI_PUB_LIMIT				0xfff
#define BIT_VI_PUB_LIMIT(x)				(((x) & BIT_MASK_VI_PUB_LIMIT) << BIT_SHIFT_VI_PUB_LIMIT)
#define BITS_VI_PUB_LIMIT				(BIT_MASK_VI_PUB_LIMIT << BIT_SHIFT_VI_PUB_LIMIT)
#define BIT_CLEAR_VI_PUB_LIMIT(x)			((x) & (~BITS_VI_PUB_LIMIT))
#define BIT_GET_VI_PUB_LIMIT(x)			(((x) >> BIT_SHIFT_VI_PUB_LIMIT) & BIT_MASK_VI_PUB_LIMIT)
#define BIT_SET_VI_PUB_LIMIT(x, v)			(BIT_CLEAR_VI_PUB_LIMIT(x) | BIT_VI_PUB_LIMIT(v))


#define BIT_SHIFT_BK_PUB_LIMIT				16
#define BIT_MASK_BK_PUB_LIMIT				0xfff
#define BIT_BK_PUB_LIMIT(x)				(((x) & BIT_MASK_BK_PUB_LIMIT) << BIT_SHIFT_BK_PUB_LIMIT)
#define BITS_BK_PUB_LIMIT				(BIT_MASK_BK_PUB_LIMIT << BIT_SHIFT_BK_PUB_LIMIT)
#define BIT_CLEAR_BK_PUB_LIMIT(x)			((x) & (~BITS_BK_PUB_LIMIT))
#define BIT_GET_BK_PUB_LIMIT(x)			(((x) >> BIT_SHIFT_BK_PUB_LIMIT) & BIT_MASK_BK_PUB_LIMIT)
#define BIT_SET_BK_PUB_LIMIT(x, v)			(BIT_CLEAR_BK_PUB_LIMIT(x) | BIT_BK_PUB_LIMIT(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_EX2Q_EN_PUBLIC_LIMIT			BIT(13)
#define BIT_EX1Q_EN_PUBLIC_LIMIT			BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_EXQ_EN_PUBLIC_LIMIT			BIT(11)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_EQ_EN_PUBLIC_LIMIT				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_NPQ_EN_PUBLIC_LIMIT			BIT(10)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_NQ_EN_PUBLIC_LIMIT				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_LPQ_EN_PUBLIC_LIMIT			BIT(9)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_LQ_EN_PUBLIC_LIMIT				BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_HPQ_EN_PUBLIC_LIMIT			BIT(8)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_HQ_EN_PUBLIC_LIMIT				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */

#define BIT_H2C_SPACE_VLD				BIT(3)
#define BIT_H2C_WR_ADDR_RST				BIT(2)

#define BIT_SHIFT_H2C_LEN_SEL				0
#define BIT_MASK_H2C_LEN_SEL				0x3
#define BIT_H2C_LEN_SEL(x)				(((x) & BIT_MASK_H2C_LEN_SEL) << BIT_SHIFT_H2C_LEN_SEL)
#define BITS_H2C_LEN_SEL				(BIT_MASK_H2C_LEN_SEL << BIT_SHIFT_H2C_LEN_SEL)
#define BIT_CLEAR_H2C_LEN_SEL(x)			((x) & (~BITS_H2C_LEN_SEL))
#define BIT_GET_H2C_LEN_SEL(x)				(((x) >> BIT_SHIFT_H2C_LEN_SEL) & BIT_MASK_H2C_LEN_SEL)
#define BIT_SET_H2C_LEN_SEL(x, v)			(BIT_CLEAR_H2C_LEN_SEL(x) | BIT_H2C_LEN_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_H2C_INFO				(Offset 0x0254) */


#define BIT_SHIFT_VO_PUB_LIMIT				0
#define BIT_MASK_VO_PUB_LIMIT				0xfff
#define BIT_VO_PUB_LIMIT(x)				(((x) & BIT_MASK_VO_PUB_LIMIT) << BIT_SHIFT_VO_PUB_LIMIT)
#define BITS_VO_PUB_LIMIT				(BIT_MASK_VO_PUB_LIMIT << BIT_SHIFT_VO_PUB_LIMIT)
#define BIT_CLEAR_VO_PUB_LIMIT(x)			((x) & (~BITS_VO_PUB_LIMIT))
#define BIT_GET_VO_PUB_LIMIT(x)			(((x) >> BIT_SHIFT_VO_PUB_LIMIT) & BIT_MASK_VO_PUB_LIMIT)
#define BIT_SET_VO_PUB_LIMIT(x, v)			(BIT_CLEAR_VO_PUB_LIMIT(x) | BIT_VO_PUB_LIMIT(v))


#define BIT_SHIFT_BE_PUB_LIMIT				0
#define BIT_MASK_BE_PUB_LIMIT				0xfff
#define BIT_BE_PUB_LIMIT(x)				(((x) & BIT_MASK_BE_PUB_LIMIT) << BIT_SHIFT_BE_PUB_LIMIT)
#define BITS_BE_PUB_LIMIT				(BIT_MASK_BE_PUB_LIMIT << BIT_SHIFT_BE_PUB_LIMIT)
#define BIT_CLEAR_BE_PUB_LIMIT(x)			((x) & (~BITS_BE_PUB_LIMIT))
#define BIT_GET_BE_PUB_LIMIT(x)			(((x) >> BIT_SHIFT_BE_PUB_LIMIT) & BIT_MASK_BE_PUB_LIMIT)
#define BIT_SET_BE_PUB_LIMIT(x, v)			(BIT_CLEAR_BE_PUB_LIMIT(x) | BIT_BE_PUB_LIMIT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_OQT_0				(Offset 0x0260) */


#define BIT_SHIFT_TX_OQT_12_FREE_SPACE			24
#define BIT_MASK_TX_OQT_12_FREE_SPACE			0xff
#define BIT_TX_OQT_12_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_12_FREE_SPACE) << BIT_SHIFT_TX_OQT_12_FREE_SPACE)
#define BITS_TX_OQT_12_FREE_SPACE			(BIT_MASK_TX_OQT_12_FREE_SPACE << BIT_SHIFT_TX_OQT_12_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_12_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_12_FREE_SPACE))
#define BIT_GET_TX_OQT_12_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_12_FREE_SPACE) & BIT_MASK_TX_OQT_12_FREE_SPACE)
#define BIT_SET_TX_OQT_12_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_12_FREE_SPACE(x) | BIT_TX_OQT_12_FREE_SPACE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TQPNT5				(Offset 0x0260) */


#define BIT_SHIFT_EX1Q_HIGH_TH_V1			16
#define BIT_MASK_EX1Q_HIGH_TH_V1			0xfff
#define BIT_EX1Q_HIGH_TH_V1(x)				(((x) & BIT_MASK_EX1Q_HIGH_TH_V1) << BIT_SHIFT_EX1Q_HIGH_TH_V1)
#define BITS_EX1Q_HIGH_TH_V1				(BIT_MASK_EX1Q_HIGH_TH_V1 << BIT_SHIFT_EX1Q_HIGH_TH_V1)
#define BIT_CLEAR_EX1Q_HIGH_TH_V1(x)			((x) & (~BITS_EX1Q_HIGH_TH_V1))
#define BIT_GET_EX1Q_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_EX1Q_HIGH_TH_V1) & BIT_MASK_EX1Q_HIGH_TH_V1)
#define BIT_SET_EX1Q_HIGH_TH_V1(x, v)			(BIT_CLEAR_EX1Q_HIGH_TH_V1(x) | BIT_EX1Q_HIGH_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_OQT_0				(Offset 0x0260) */


#define BIT_SHIFT_TX_OQT_8_11_FREE_SPACE		16
#define BIT_MASK_TX_OQT_8_11_FREE_SPACE		0xff
#define BIT_TX_OQT_8_11_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_8_11_FREE_SPACE) << BIT_SHIFT_TX_OQT_8_11_FREE_SPACE)
#define BITS_TX_OQT_8_11_FREE_SPACE			(BIT_MASK_TX_OQT_8_11_FREE_SPACE << BIT_SHIFT_TX_OQT_8_11_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_8_11_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_8_11_FREE_SPACE))
#define BIT_GET_TX_OQT_8_11_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_8_11_FREE_SPACE) & BIT_MASK_TX_OQT_8_11_FREE_SPACE)
#define BIT_SET_TX_OQT_8_11_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_8_11_FREE_SPACE(x) | BIT_TX_OQT_8_11_FREE_SPACE(v))


#define BIT_SHIFT_TX_OQT_16_FREE_SPACE			16
#define BIT_MASK_TX_OQT_16_FREE_SPACE			0xff
#define BIT_TX_OQT_16_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_16_FREE_SPACE) << BIT_SHIFT_TX_OQT_16_FREE_SPACE)
#define BITS_TX_OQT_16_FREE_SPACE			(BIT_MASK_TX_OQT_16_FREE_SPACE << BIT_SHIFT_TX_OQT_16_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_16_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_16_FREE_SPACE))
#define BIT_GET_TX_OQT_16_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_16_FREE_SPACE) & BIT_MASK_TX_OQT_16_FREE_SPACE)
#define BIT_SET_TX_OQT_16_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_16_FREE_SPACE(x) | BIT_TX_OQT_16_FREE_SPACE(v))


#define BIT_SHIFT_TX_OQT_4_7_FREE_SPACE		8
#define BIT_MASK_TX_OQT_4_7_FREE_SPACE			0xff
#define BIT_TX_OQT_4_7_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_4_7_FREE_SPACE) << BIT_SHIFT_TX_OQT_4_7_FREE_SPACE)
#define BITS_TX_OQT_4_7_FREE_SPACE			(BIT_MASK_TX_OQT_4_7_FREE_SPACE << BIT_SHIFT_TX_OQT_4_7_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_4_7_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_4_7_FREE_SPACE))
#define BIT_GET_TX_OQT_4_7_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_4_7_FREE_SPACE) & BIT_MASK_TX_OQT_4_7_FREE_SPACE)
#define BIT_SET_TX_OQT_4_7_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_4_7_FREE_SPACE(x) | BIT_TX_OQT_4_7_FREE_SPACE(v))


#define BIT_SHIFT_TX_OQT_14_15_FREE_SPACE		8
#define BIT_MASK_TX_OQT_14_15_FREE_SPACE		0xff
#define BIT_TX_OQT_14_15_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_14_15_FREE_SPACE) << BIT_SHIFT_TX_OQT_14_15_FREE_SPACE)
#define BITS_TX_OQT_14_15_FREE_SPACE			(BIT_MASK_TX_OQT_14_15_FREE_SPACE << BIT_SHIFT_TX_OQT_14_15_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_14_15_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_14_15_FREE_SPACE))
#define BIT_GET_TX_OQT_14_15_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_14_15_FREE_SPACE) & BIT_MASK_TX_OQT_14_15_FREE_SPACE)
#define BIT_SET_TX_OQT_14_15_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_14_15_FREE_SPACE(x) | BIT_TX_OQT_14_15_FREE_SPACE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TQPNT5				(Offset 0x0260) */


#define BIT_SHIFT_EX1Q_LOW_TH_V1			0
#define BIT_MASK_EX1Q_LOW_TH_V1			0xfff
#define BIT_EX1Q_LOW_TH_V1(x)				(((x) & BIT_MASK_EX1Q_LOW_TH_V1) << BIT_SHIFT_EX1Q_LOW_TH_V1)
#define BITS_EX1Q_LOW_TH_V1				(BIT_MASK_EX1Q_LOW_TH_V1 << BIT_SHIFT_EX1Q_LOW_TH_V1)
#define BIT_CLEAR_EX1Q_LOW_TH_V1(x)			((x) & (~BITS_EX1Q_LOW_TH_V1))
#define BIT_GET_EX1Q_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_EX1Q_LOW_TH_V1) & BIT_MASK_EX1Q_LOW_TH_V1)
#define BIT_SET_EX1Q_LOW_TH_V1(x, v)			(BIT_CLEAR_EX1Q_LOW_TH_V1(x) | BIT_EX1Q_LOW_TH_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_OQT_0				(Offset 0x0260) */


#define BIT_SHIFT_TX_OQT_0_3_FREE_SPACE		0
#define BIT_MASK_TX_OQT_0_3_FREE_SPACE			0xff
#define BIT_TX_OQT_0_3_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_0_3_FREE_SPACE) << BIT_SHIFT_TX_OQT_0_3_FREE_SPACE)
#define BITS_TX_OQT_0_3_FREE_SPACE			(BIT_MASK_TX_OQT_0_3_FREE_SPACE << BIT_SHIFT_TX_OQT_0_3_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_0_3_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_0_3_FREE_SPACE))
#define BIT_GET_TX_OQT_0_3_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_0_3_FREE_SPACE) & BIT_MASK_TX_OQT_0_3_FREE_SPACE)
#define BIT_SET_TX_OQT_0_3_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_0_3_FREE_SPACE(x) | BIT_TX_OQT_0_3_FREE_SPACE(v))


#define BIT_SHIFT_TX_OQT_13_FREE_SPACE			0
#define BIT_MASK_TX_OQT_13_FREE_SPACE			0xff
#define BIT_TX_OQT_13_FREE_SPACE(x)			(((x) & BIT_MASK_TX_OQT_13_FREE_SPACE) << BIT_SHIFT_TX_OQT_13_FREE_SPACE)
#define BITS_TX_OQT_13_FREE_SPACE			(BIT_MASK_TX_OQT_13_FREE_SPACE << BIT_SHIFT_TX_OQT_13_FREE_SPACE)
#define BIT_CLEAR_TX_OQT_13_FREE_SPACE(x)		((x) & (~BITS_TX_OQT_13_FREE_SPACE))
#define BIT_GET_TX_OQT_13_FREE_SPACE(x)		(((x) >> BIT_SHIFT_TX_OQT_13_FREE_SPACE) & BIT_MASK_TX_OQT_13_FREE_SPACE)
#define BIT_SET_TX_OQT_13_FREE_SPACE(x, v)		(BIT_CLEAR_TX_OQT_13_FREE_SPACE(x) | BIT_TX_OQT_13_FREE_SPACE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TQPNT6				(Offset 0x0264) */


#define BIT_SHIFT_EX2Q_HIGH_TH_V1			16
#define BIT_MASK_EX2Q_HIGH_TH_V1			0xfff
#define BIT_EX2Q_HIGH_TH_V1(x)				(((x) & BIT_MASK_EX2Q_HIGH_TH_V1) << BIT_SHIFT_EX2Q_HIGH_TH_V1)
#define BITS_EX2Q_HIGH_TH_V1				(BIT_MASK_EX2Q_HIGH_TH_V1 << BIT_SHIFT_EX2Q_HIGH_TH_V1)
#define BIT_CLEAR_EX2Q_HIGH_TH_V1(x)			((x) & (~BITS_EX2Q_HIGH_TH_V1))
#define BIT_GET_EX2Q_HIGH_TH_V1(x)			(((x) >> BIT_SHIFT_EX2Q_HIGH_TH_V1) & BIT_MASK_EX2Q_HIGH_TH_V1)
#define BIT_SET_EX2Q_HIGH_TH_V1(x, v)			(BIT_CLEAR_EX2Q_HIGH_TH_V1(x) | BIT_EX2Q_HIGH_TH_V1(v))


#define BIT_SHIFT_EX2Q_LOW_TH_V1			0
#define BIT_MASK_EX2Q_LOW_TH_V1			0xfff
#define BIT_EX2Q_LOW_TH_V1(x)				(((x) & BIT_MASK_EX2Q_LOW_TH_V1) << BIT_SHIFT_EX2Q_LOW_TH_V1)
#define BITS_EX2Q_LOW_TH_V1				(BIT_MASK_EX2Q_LOW_TH_V1 << BIT_SHIFT_EX2Q_LOW_TH_V1)
#define BIT_CLEAR_EX2Q_LOW_TH_V1(x)			((x) & (~BITS_EX2Q_LOW_TH_V1))
#define BIT_GET_EX2Q_LOW_TH_V1(x)			(((x) >> BIT_SHIFT_EX2Q_LOW_TH_V1) & BIT_MASK_EX2Q_LOW_TH_V1)
#define BIT_SET_EX2Q_LOW_TH_V1(x, v)			(BIT_CLEAR_EX2Q_LOW_TH_V1(x) | BIT_EX2Q_LOW_TH_V1(v))


/* 2 REG_FIFOPAGE_INFO_6			(Offset 0x0268) */


#define BIT_SHIFT_EX1Q_AVAL_PG_V1			16
#define BIT_MASK_EX1Q_AVAL_PG_V1			0xfff
#define BIT_EX1Q_AVAL_PG_V1(x)				(((x) & BIT_MASK_EX1Q_AVAL_PG_V1) << BIT_SHIFT_EX1Q_AVAL_PG_V1)
#define BITS_EX1Q_AVAL_PG_V1				(BIT_MASK_EX1Q_AVAL_PG_V1 << BIT_SHIFT_EX1Q_AVAL_PG_V1)
#define BIT_CLEAR_EX1Q_AVAL_PG_V1(x)			((x) & (~BITS_EX1Q_AVAL_PG_V1))
#define BIT_GET_EX1Q_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_EX1Q_AVAL_PG_V1) & BIT_MASK_EX1Q_AVAL_PG_V1)
#define BIT_SET_EX1Q_AVAL_PG_V1(x, v)			(BIT_CLEAR_EX1Q_AVAL_PG_V1(x) | BIT_EX1Q_AVAL_PG_V1(v))


#define BIT_SHIFT_EX1Q_V1				0
#define BIT_MASK_EX1Q_V1				0xfff
#define BIT_EX1Q_V1(x)					(((x) & BIT_MASK_EX1Q_V1) << BIT_SHIFT_EX1Q_V1)
#define BITS_EX1Q_V1					(BIT_MASK_EX1Q_V1 << BIT_SHIFT_EX1Q_V1)
#define BIT_CLEAR_EX1Q_V1(x)				((x) & (~BITS_EX1Q_V1))
#define BIT_GET_EX1Q_V1(x)				(((x) >> BIT_SHIFT_EX1Q_V1) & BIT_MASK_EX1Q_V1)
#define BIT_SET_EX1Q_V1(x, v)				(BIT_CLEAR_EX1Q_V1(x) | BIT_EX1Q_V1(v))


/* 2 REG_FIFOPAGE_INFO_7			(Offset 0x026C) */


#define BIT_SHIFT_EX2Q_AVAL_PG_V1			16
#define BIT_MASK_EX2Q_AVAL_PG_V1			0xfff
#define BIT_EX2Q_AVAL_PG_V1(x)				(((x) & BIT_MASK_EX2Q_AVAL_PG_V1) << BIT_SHIFT_EX2Q_AVAL_PG_V1)
#define BITS_EX2Q_AVAL_PG_V1				(BIT_MASK_EX2Q_AVAL_PG_V1 << BIT_SHIFT_EX2Q_AVAL_PG_V1)
#define BIT_CLEAR_EX2Q_AVAL_PG_V1(x)			((x) & (~BITS_EX2Q_AVAL_PG_V1))
#define BIT_GET_EX2Q_AVAL_PG_V1(x)			(((x) >> BIT_SHIFT_EX2Q_AVAL_PG_V1) & BIT_MASK_EX2Q_AVAL_PG_V1)
#define BIT_SET_EX2Q_AVAL_PG_V1(x, v)			(BIT_CLEAR_EX2Q_AVAL_PG_V1(x) | BIT_EX2Q_AVAL_PG_V1(v))


#define BIT_SHIFT_EX2Q_V1				0
#define BIT_MASK_EX2Q_V1				0xfff
#define BIT_EX2Q_V1(x)					(((x) & BIT_MASK_EX2Q_V1) << BIT_SHIFT_EX2Q_V1)
#define BITS_EX2Q_V1					(BIT_MASK_EX2Q_V1 << BIT_SHIFT_EX2Q_V1)
#define BIT_CLEAR_EX2Q_V1(x)				((x) & (~BITS_EX2Q_V1))
#define BIT_GET_EX2Q_V1(x)				(((x) >> BIT_SHIFT_EX2Q_V1) & BIT_MASK_EX2Q_V1)
#define BIT_SET_EX2Q_V1(x, v)				(BIT_CLEAR_EX2Q_V1(x) | BIT_EX2Q_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_USB_RXDMA_AGG_EN				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_DMA_STORE_MODE				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_RXDMA_AGG_OLD_MOD_V1			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_DMA_STORE					BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_EN_FW_ADD					BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_EN_PRE_CALC				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_RXAGG_SW_EN				BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */

#define BIT_RXAGG_SW_TRIG				BIT(27)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_RXDMA_AGG_OLD_MOD			24
#define BIT_MASK_RXDMA_AGG_OLD_MOD			0xff
#define BIT_RXDMA_AGG_OLD_MOD(x)			(((x) & BIT_MASK_RXDMA_AGG_OLD_MOD) << BIT_SHIFT_RXDMA_AGG_OLD_MOD)
#define BITS_RXDMA_AGG_OLD_MOD				(BIT_MASK_RXDMA_AGG_OLD_MOD << BIT_SHIFT_RXDMA_AGG_OLD_MOD)
#define BIT_CLEAR_RXDMA_AGG_OLD_MOD(x)			((x) & (~BITS_RXDMA_AGG_OLD_MOD))
#define BIT_GET_RXDMA_AGG_OLD_MOD(x)			(((x) >> BIT_SHIFT_RXDMA_AGG_OLD_MOD) & BIT_MASK_RXDMA_AGG_OLD_MOD)
#define BIT_SET_RXDMA_AGG_OLD_MOD(x, v)		(BIT_CLEAR_RXDMA_AGG_OLD_MOD(x) | BIT_RXDMA_AGG_OLD_MOD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_PKT_NUM_WOL				16
#define BIT_MASK_PKT_NUM_WOL				0xff
#define BIT_PKT_NUM_WOL(x)				(((x) & BIT_MASK_PKT_NUM_WOL) << BIT_SHIFT_PKT_NUM_WOL)
#define BITS_PKT_NUM_WOL				(BIT_MASK_PKT_NUM_WOL << BIT_SHIFT_PKT_NUM_WOL)
#define BIT_CLEAR_PKT_NUM_WOL(x)			((x) & (~BITS_PKT_NUM_WOL))
#define BIT_GET_PKT_NUM_WOL(x)				(((x) >> BIT_SHIFT_PKT_NUM_WOL) & BIT_MASK_PKT_NUM_WOL)
#define BIT_SET_PKT_NUM_WOL(x, v)			(BIT_CLEAR_PKT_NUM_WOL(x) | BIT_PKT_NUM_WOL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_DMA_AGG_TO_V1			8
#define BIT_MASK_DMA_AGG_TO_V1				0xff
#define BIT_DMA_AGG_TO_V1(x)				(((x) & BIT_MASK_DMA_AGG_TO_V1) << BIT_SHIFT_DMA_AGG_TO_V1)
#define BITS_DMA_AGG_TO_V1				(BIT_MASK_DMA_AGG_TO_V1 << BIT_SHIFT_DMA_AGG_TO_V1)
#define BIT_CLEAR_DMA_AGG_TO_V1(x)			((x) & (~BITS_DMA_AGG_TO_V1))
#define BIT_GET_DMA_AGG_TO_V1(x)			(((x) >> BIT_SHIFT_DMA_AGG_TO_V1) & BIT_MASK_DMA_AGG_TO_V1)
#define BIT_SET_DMA_AGG_TO_V1(x, v)			(BIT_CLEAR_DMA_AGG_TO_V1(x) | BIT_DMA_AGG_TO_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_DMA_AGG_TO				8
#define BIT_MASK_DMA_AGG_TO				0xf
#define BIT_DMA_AGG_TO(x)				(((x) & BIT_MASK_DMA_AGG_TO) << BIT_SHIFT_DMA_AGG_TO)
#define BITS_DMA_AGG_TO				(BIT_MASK_DMA_AGG_TO << BIT_SHIFT_DMA_AGG_TO)
#define BIT_CLEAR_DMA_AGG_TO(x)			((x) & (~BITS_DMA_AGG_TO))
#define BIT_GET_DMA_AGG_TO(x)				(((x) >> BIT_SHIFT_DMA_AGG_TO) & BIT_MASK_DMA_AGG_TO)
#define BIT_SET_DMA_AGG_TO(x, v)			(BIT_CLEAR_DMA_AGG_TO(x) | BIT_DMA_AGG_TO(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_RXDMA_AGG_PG_TH_V1			0
#define BIT_MASK_RXDMA_AGG_PG_TH_V1			0xf
#define BIT_RXDMA_AGG_PG_TH_V1(x)			(((x) & BIT_MASK_RXDMA_AGG_PG_TH_V1) << BIT_SHIFT_RXDMA_AGG_PG_TH_V1)
#define BITS_RXDMA_AGG_PG_TH_V1			(BIT_MASK_RXDMA_AGG_PG_TH_V1 << BIT_SHIFT_RXDMA_AGG_PG_TH_V1)
#define BIT_CLEAR_RXDMA_AGG_PG_TH_V1(x)		((x) & (~BITS_RXDMA_AGG_PG_TH_V1))
#define BIT_GET_RXDMA_AGG_PG_TH_V1(x)			(((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V1) & BIT_MASK_RXDMA_AGG_PG_TH_V1)
#define BIT_SET_RXDMA_AGG_PG_TH_V1(x, v)		(BIT_CLEAR_RXDMA_AGG_PG_TH_V1(x) | BIT_RXDMA_AGG_PG_TH_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_RXDMA_AGG_PG_TH			0
#define BIT_MASK_RXDMA_AGG_PG_TH			0xff
#define BIT_RXDMA_AGG_PG_TH(x)				(((x) & BIT_MASK_RXDMA_AGG_PG_TH) << BIT_SHIFT_RXDMA_AGG_PG_TH)
#define BITS_RXDMA_AGG_PG_TH				(BIT_MASK_RXDMA_AGG_PG_TH << BIT_SHIFT_RXDMA_AGG_PG_TH)
#define BIT_CLEAR_RXDMA_AGG_PG_TH(x)			((x) & (~BITS_RXDMA_AGG_PG_TH))
#define BIT_GET_RXDMA_AGG_PG_TH(x)			(((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH) & BIT_MASK_RXDMA_AGG_PG_TH)
#define BIT_SET_RXDMA_AGG_PG_TH(x, v)			(BIT_CLEAR_RXDMA_AGG_PG_TH(x) | BIT_RXDMA_AGG_PG_TH(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_RXDMA_AGG_PG_TH			(Offset 0x0280) */


#define BIT_SHIFT_RXDMA_AGG_PG_TH_V2			0
#define BIT_MASK_RXDMA_AGG_PG_TH_V2			0xff
#define BIT_RXDMA_AGG_PG_TH_V2(x)			(((x) & BIT_MASK_RXDMA_AGG_PG_TH_V2) << BIT_SHIFT_RXDMA_AGG_PG_TH_V2)
#define BITS_RXDMA_AGG_PG_TH_V2			(BIT_MASK_RXDMA_AGG_PG_TH_V2 << BIT_SHIFT_RXDMA_AGG_PG_TH_V2)
#define BIT_CLEAR_RXDMA_AGG_PG_TH_V2(x)		((x) & (~BITS_RXDMA_AGG_PG_TH_V2))
#define BIT_GET_RXDMA_AGG_PG_TH_V2(x)			(((x) >> BIT_SHIFT_RXDMA_AGG_PG_TH_V2) & BIT_MASK_RXDMA_AGG_PG_TH_V2)
#define BIT_SET_RXDMA_AGG_PG_TH_V2(x, v)		(BIT_CLEAR_RXDMA_AGG_PG_TH_V2(x) | BIT_RXDMA_AGG_PG_TH_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */


#define BIT_SHIFT_RXPKT_NUM				24
#define BIT_MASK_RXPKT_NUM				0xff
#define BIT_RXPKT_NUM(x)				(((x) & BIT_MASK_RXPKT_NUM) << BIT_SHIFT_RXPKT_NUM)
#define BITS_RXPKT_NUM					(BIT_MASK_RXPKT_NUM << BIT_SHIFT_RXPKT_NUM)
#define BIT_CLEAR_RXPKT_NUM(x)				((x) & (~BITS_RXPKT_NUM))
#define BIT_GET_RXPKT_NUM(x)				(((x) >> BIT_SHIFT_RXPKT_NUM) & BIT_MASK_RXPKT_NUM)
#define BIT_SET_RXPKT_NUM(x, v)			(BIT_CLEAR_RXPKT_NUM(x) | BIT_RXPKT_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */


#define BIT_SHIFT_FW_UPD_RDPTR19_TO_16			20
#define BIT_MASK_FW_UPD_RDPTR19_TO_16			0xf
#define BIT_FW_UPD_RDPTR19_TO_16(x)			(((x) & BIT_MASK_FW_UPD_RDPTR19_TO_16) << BIT_SHIFT_FW_UPD_RDPTR19_TO_16)
#define BITS_FW_UPD_RDPTR19_TO_16			(BIT_MASK_FW_UPD_RDPTR19_TO_16 << BIT_SHIFT_FW_UPD_RDPTR19_TO_16)
#define BIT_CLEAR_FW_UPD_RDPTR19_TO_16(x)		((x) & (~BITS_FW_UPD_RDPTR19_TO_16))
#define BIT_GET_FW_UPD_RDPTR19_TO_16(x)		(((x) >> BIT_SHIFT_FW_UPD_RDPTR19_TO_16) & BIT_MASK_FW_UPD_RDPTR19_TO_16)
#define BIT_SET_FW_UPD_RDPTR19_TO_16(x, v)		(BIT_CLEAR_FW_UPD_RDPTR19_TO_16(x) | BIT_FW_UPD_RDPTR19_TO_16(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */

#define BIT_RXDMA_REQ					BIT(19)
#define BIT_RW_RELEASE_EN				BIT(18)
#define BIT_RXDMA_IDLE					BIT(17)
#define BIT_RXPKT_RELEASE_POLL				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */

#define BIT_RX_CLOSE_EN				BIT(15)
#define BIT_STOP_BCNQ					BIT(14)
#define BIT_STOP_MGQ					BIT(13)
#define BIT_STOP_VOQ					BIT(12)
#define BIT_STOP_VIQ					BIT(11)
#define BIT_STOP_BEQ					BIT(10)
#define BIT_STOP_BKQ					BIT(9)
#define BIT_STOP_RXQ					BIT(8)
#define BIT_STOP_HI7Q					BIT(7)
#define BIT_STOP_HI6Q					BIT(6)
#define BIT_STOP_HI5Q					BIT(5)
#define BIT_STOP_HI4Q					BIT(4)
#define BIT_STOP_HI3Q					BIT(3)
#define BIT_STOP_HI2Q					BIT(2)
#define BIT_STOP_HI1Q					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */


#define BIT_SHIFT_FW_UPD_RDPTR				0
#define BIT_MASK_FW_UPD_RDPTR				0xffff
#define BIT_FW_UPD_RDPTR(x)				(((x) & BIT_MASK_FW_UPD_RDPTR) << BIT_SHIFT_FW_UPD_RDPTR)
#define BITS_FW_UPD_RDPTR				(BIT_MASK_FW_UPD_RDPTR << BIT_SHIFT_FW_UPD_RDPTR)
#define BIT_CLEAR_FW_UPD_RDPTR(x)			((x) & (~BITS_FW_UPD_RDPTR))
#define BIT_GET_FW_UPD_RDPTR(x)			(((x) >> BIT_SHIFT_FW_UPD_RDPTR) & BIT_MASK_FW_UPD_RDPTR)
#define BIT_SET_FW_UPD_RDPTR(x, v)			(BIT_CLEAR_FW_UPD_RDPTR(x) | BIT_FW_UPD_RDPTR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXPKT_NUM				(Offset 0x0284) */

#define BIT_STOP_HI0Q					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_FC2H_PKT_OVERFLOW				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_C2H_PKT_OVF				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_AGG_CFG_ISSUE				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_AGG_CONFGI_ISSUE				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_FW_POLL_ISSUE				BIT(5)
#define BIT_RX_DATA_UDN				BIT(4)
#define BIT_RX_SFF_UDN					BIT(3)
#define BIT_RX_SFF_OVF					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_USB_REQ_LEN_OVF				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_STATUS			(Offset 0x0288) */

#define BIT_RXPKT_OVF					BIT(0)

/* 2 REG_RXDMA_DPR				(Offset 0x028C) */


#define BIT_SHIFT_RDE_DEBUG				0
#define BIT_MASK_RDE_DEBUG				0xffffffffL
#define BIT_RDE_DEBUG(x)				(((x) & BIT_MASK_RDE_DEBUG) << BIT_SHIFT_RDE_DEBUG)
#define BITS_RDE_DEBUG					(BIT_MASK_RDE_DEBUG << BIT_SHIFT_RDE_DEBUG)
#define BIT_CLEAR_RDE_DEBUG(x)				((x) & (~BITS_RDE_DEBUG))
#define BIT_GET_RDE_DEBUG(x)				(((x) >> BIT_SHIFT_RDE_DEBUG) & BIT_MASK_RDE_DEBUG)
#define BIT_SET_RDE_DEBUG(x, v)			(BIT_CLEAR_RDE_DEBUG(x) | BIT_RDE_DEBUG(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */


#define BIT_SHIFT_PKTNUM_TH_V2				24
#define BIT_MASK_PKTNUM_TH_V2				0x1f
#define BIT_PKTNUM_TH_V2(x)				(((x) & BIT_MASK_PKTNUM_TH_V2) << BIT_SHIFT_PKTNUM_TH_V2)
#define BITS_PKTNUM_TH_V2				(BIT_MASK_PKTNUM_TH_V2 << BIT_SHIFT_PKTNUM_TH_V2)
#define BIT_CLEAR_PKTNUM_TH_V2(x)			((x) & (~BITS_PKTNUM_TH_V2))
#define BIT_GET_PKTNUM_TH_V2(x)			(((x) >> BIT_SHIFT_PKTNUM_TH_V2) & BIT_MASK_PKTNUM_TH_V2)
#define BIT_SET_PKTNUM_TH_V2(x, v)			(BIT_CLEAR_PKTNUM_TH_V2(x) | BIT_PKTNUM_TH_V2(v))

#define BIT_TXBA_BREAK_USBAGG				BIT(23)

#define BIT_SHIFT_PKTLEN_PARA				16
#define BIT_MASK_PKTLEN_PARA				0x7
#define BIT_PKTLEN_PARA(x)				(((x) & BIT_MASK_PKTLEN_PARA) << BIT_SHIFT_PKTLEN_PARA)
#define BITS_PKTLEN_PARA				(BIT_MASK_PKTLEN_PARA << BIT_SHIFT_PKTLEN_PARA)
#define BIT_CLEAR_PKTLEN_PARA(x)			((x) & (~BITS_PKTLEN_PARA))
#define BIT_GET_PKTLEN_PARA(x)				(((x) >> BIT_SHIFT_PKTLEN_PARA) & BIT_MASK_PKTLEN_PARA)
#define BIT_SET_PKTLEN_PARA(x, v)			(BIT_CLEAR_PKTLEN_PARA(x) | BIT_PKTLEN_PARA(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_EN_SDIO_FAIL				BIT(9)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_GRAYCODE_SYNC_WITH_BIN			BIT(8)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_RXDMA_DBD_SEL				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_RX_DBG_SEL					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_EN_SPD					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */


#define BIT_SHIFT_BURST_SIZE				4
#define BIT_MASK_BURST_SIZE				0x3
#define BIT_BURST_SIZE(x)				(((x) & BIT_MASK_BURST_SIZE) << BIT_SHIFT_BURST_SIZE)
#define BITS_BURST_SIZE				(BIT_MASK_BURST_SIZE << BIT_SHIFT_BURST_SIZE)
#define BIT_CLEAR_BURST_SIZE(x)			((x) & (~BITS_BURST_SIZE))
#define BIT_GET_BURST_SIZE(x)				(((x) >> BIT_SHIFT_BURST_SIZE) & BIT_MASK_BURST_SIZE)
#define BIT_SET_BURST_SIZE(x, v)			(BIT_CLEAR_BURST_SIZE(x) | BIT_BURST_SIZE(v))


#define BIT_SHIFT_BURST_CNT				2
#define BIT_MASK_BURST_CNT				0x3
#define BIT_BURST_CNT(x)				(((x) & BIT_MASK_BURST_CNT) << BIT_SHIFT_BURST_CNT)
#define BITS_BURST_CNT					(BIT_MASK_BURST_CNT << BIT_SHIFT_BURST_CNT)
#define BIT_CLEAR_BURST_CNT(x)				((x) & (~BITS_BURST_CNT))
#define BIT_GET_BURST_CNT(x)				(((x) >> BIT_SHIFT_BURST_CNT) & BIT_MASK_BURST_CNT)
#define BIT_SET_BURST_CNT(x, v)			(BIT_CLEAR_BURST_CNT(x) | BIT_BURST_CNT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_DAM_MODE					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */

#define BIT_DMA_MODE					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_RXDMA_MODE				(Offset 0x0290) */


#define BIT_SHIFT_MDIO_REG_ADDR			0
#define BIT_MASK_MDIO_REG_ADDR				0x1f
#define BIT_MDIO_REG_ADDR(x)				(((x) & BIT_MASK_MDIO_REG_ADDR) << BIT_SHIFT_MDIO_REG_ADDR)
#define BITS_MDIO_REG_ADDR				(BIT_MASK_MDIO_REG_ADDR << BIT_SHIFT_MDIO_REG_ADDR)
#define BIT_CLEAR_MDIO_REG_ADDR(x)			((x) & (~BITS_MDIO_REG_ADDR))
#define BIT_GET_MDIO_REG_ADDR(x)			(((x) >> BIT_SHIFT_MDIO_REG_ADDR) & BIT_MASK_MDIO_REG_ADDR)
#define BIT_SET_MDIO_REG_ADDR(x, v)			(BIT_CLEAR_MDIO_REG_ADDR(x) | BIT_MDIO_REG_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_C2H_PKT				(Offset 0x0294) */


#define BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19		24
#define BIT_MASK_R_C2H_STR_ADDR_16_TO_19		0xf
#define BIT_R_C2H_STR_ADDR_16_TO_19(x)			(((x) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19) << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19)
#define BITS_R_C2H_STR_ADDR_16_TO_19			(BIT_MASK_R_C2H_STR_ADDR_16_TO_19 << BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19)
#define BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19(x)		((x) & (~BITS_R_C2H_STR_ADDR_16_TO_19))
#define BIT_GET_R_C2H_STR_ADDR_16_TO_19(x)		(((x) >> BIT_SHIFT_R_C2H_STR_ADDR_16_TO_19) & BIT_MASK_R_C2H_STR_ADDR_16_TO_19)
#define BIT_SET_R_C2H_STR_ADDR_16_TO_19(x, v)		(BIT_CLEAR_R_C2H_STR_ADDR_16_TO_19(x) | BIT_R_C2H_STR_ADDR_16_TO_19(v))


#define BIT_SHIFT_MDIO_PHY_ADDR			24
#define BIT_MASK_MDIO_PHY_ADDR				0x1f
#define BIT_MDIO_PHY_ADDR(x)				(((x) & BIT_MASK_MDIO_PHY_ADDR) << BIT_SHIFT_MDIO_PHY_ADDR)
#define BITS_MDIO_PHY_ADDR				(BIT_MASK_MDIO_PHY_ADDR << BIT_SHIFT_MDIO_PHY_ADDR)
#define BIT_CLEAR_MDIO_PHY_ADDR(x)			((x) & (~BITS_MDIO_PHY_ADDR))
#define BIT_GET_MDIO_PHY_ADDR(x)			(((x) >> BIT_SHIFT_MDIO_PHY_ADDR) & BIT_MASK_MDIO_PHY_ADDR)
#define BIT_SET_MDIO_PHY_ADDR(x, v)			(BIT_CLEAR_MDIO_PHY_ADDR(x) | BIT_MDIO_PHY_ADDR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_C2H_PKT				(Offset 0x0294) */

#define BIT_R_C2H_PKT_REQ				BIT(16)

#define BIT_SHIFT_R_C2H_STR_ADDR			0
#define BIT_MASK_R_C2H_STR_ADDR			0xffff
#define BIT_R_C2H_STR_ADDR(x)				(((x) & BIT_MASK_R_C2H_STR_ADDR) << BIT_SHIFT_R_C2H_STR_ADDR)
#define BITS_R_C2H_STR_ADDR				(BIT_MASK_R_C2H_STR_ADDR << BIT_SHIFT_R_C2H_STR_ADDR)
#define BIT_CLEAR_R_C2H_STR_ADDR(x)			((x) & (~BITS_R_C2H_STR_ADDR))
#define BIT_GET_R_C2H_STR_ADDR(x)			(((x) >> BIT_SHIFT_R_C2H_STR_ADDR) & BIT_MASK_R_C2H_STR_ADDR)
#define BIT_SET_R_C2H_STR_ADDR(x, v)			(BIT_CLEAR_R_C2H_STR_ADDR(x) | BIT_R_C2H_STR_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_C2H				(Offset 0x0298) */


#define BIT_SHIFT_C2H_DMA_ADDR				0
#define BIT_MASK_C2H_DMA_ADDR				0x3ffff
#define BIT_C2H_DMA_ADDR(x)				(((x) & BIT_MASK_C2H_DMA_ADDR) << BIT_SHIFT_C2H_DMA_ADDR)
#define BITS_C2H_DMA_ADDR				(BIT_MASK_C2H_DMA_ADDR << BIT_SHIFT_C2H_DMA_ADDR)
#define BIT_CLEAR_C2H_DMA_ADDR(x)			((x) & (~BITS_C2H_DMA_ADDR))
#define BIT_GET_C2H_DMA_ADDR(x)			(((x) >> BIT_SHIFT_C2H_DMA_ADDR) & BIT_MASK_C2H_DMA_ADDR)
#define BIT_SET_C2H_DMA_ADDR(x, v)			(BIT_CLEAR_C2H_DMA_ADDR(x) | BIT_C2H_DMA_ADDR(v))


/* 2 REG_FWFF_CTRL				(Offset 0x029C) */

#define BIT_FWFF_DMAPKT_REQ				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_CTRL				(Offset 0x029C) */


#define BIT_SHIFT_FWFF_DMA_PKT_NUM			16
#define BIT_MASK_FWFF_DMA_PKT_NUM			0xff
#define BIT_FWFF_DMA_PKT_NUM(x)			(((x) & BIT_MASK_FWFF_DMA_PKT_NUM) << BIT_SHIFT_FWFF_DMA_PKT_NUM)
#define BITS_FWFF_DMA_PKT_NUM				(BIT_MASK_FWFF_DMA_PKT_NUM << BIT_SHIFT_FWFF_DMA_PKT_NUM)
#define BIT_CLEAR_FWFF_DMA_PKT_NUM(x)			((x) & (~BITS_FWFF_DMA_PKT_NUM))
#define BIT_GET_FWFF_DMA_PKT_NUM(x)			(((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM) & BIT_MASK_FWFF_DMA_PKT_NUM)
#define BIT_SET_FWFF_DMA_PKT_NUM(x, v)			(BIT_CLEAR_FWFF_DMA_PKT_NUM(x) | BIT_FWFF_DMA_PKT_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWFF_CTRL				(Offset 0x029C) */


#define BIT_SHIFT_FWFF_DMA_PKT_NUM_V1			16
#define BIT_MASK_FWFF_DMA_PKT_NUM_V1			0x7fff
#define BIT_FWFF_DMA_PKT_NUM_V1(x)			(((x) & BIT_MASK_FWFF_DMA_PKT_NUM_V1) << BIT_SHIFT_FWFF_DMA_PKT_NUM_V1)
#define BITS_FWFF_DMA_PKT_NUM_V1			(BIT_MASK_FWFF_DMA_PKT_NUM_V1 << BIT_SHIFT_FWFF_DMA_PKT_NUM_V1)
#define BIT_CLEAR_FWFF_DMA_PKT_NUM_V1(x)		((x) & (~BITS_FWFF_DMA_PKT_NUM_V1))
#define BIT_GET_FWFF_DMA_PKT_NUM_V1(x)			(((x) >> BIT_SHIFT_FWFF_DMA_PKT_NUM_V1) & BIT_MASK_FWFF_DMA_PKT_NUM_V1)
#define BIT_SET_FWFF_DMA_PKT_NUM_V1(x, v)		(BIT_CLEAR_FWFF_DMA_PKT_NUM_V1(x) | BIT_FWFF_DMA_PKT_NUM_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_CTRL				(Offset 0x029C) */


#define BIT_SHIFT_FWFF_STR_ADDR			0
#define BIT_MASK_FWFF_STR_ADDR				0xffff
#define BIT_FWFF_STR_ADDR(x)				(((x) & BIT_MASK_FWFF_STR_ADDR) << BIT_SHIFT_FWFF_STR_ADDR)
#define BITS_FWFF_STR_ADDR				(BIT_MASK_FWFF_STR_ADDR << BIT_SHIFT_FWFF_STR_ADDR)
#define BIT_CLEAR_FWFF_STR_ADDR(x)			((x) & (~BITS_FWFF_STR_ADDR))
#define BIT_GET_FWFF_STR_ADDR(x)			(((x) >> BIT_SHIFT_FWFF_STR_ADDR) & BIT_MASK_FWFF_STR_ADDR)
#define BIT_SET_FWFF_STR_ADDR(x, v)			(BIT_CLEAR_FWFF_STR_ADDR(x) | BIT_FWFF_STR_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */


#define BIT_SHIFT_FWFF_PKT_QUEUED			16
#define BIT_MASK_FWFF_PKT_QUEUED			0xff
#define BIT_FWFF_PKT_QUEUED(x)				(((x) & BIT_MASK_FWFF_PKT_QUEUED) << BIT_SHIFT_FWFF_PKT_QUEUED)
#define BITS_FWFF_PKT_QUEUED				(BIT_MASK_FWFF_PKT_QUEUED << BIT_SHIFT_FWFF_PKT_QUEUED)
#define BIT_CLEAR_FWFF_PKT_QUEUED(x)			((x) & (~BITS_FWFF_PKT_QUEUED))
#define BIT_GET_FWFF_PKT_QUEUED(x)			(((x) >> BIT_SHIFT_FWFF_PKT_QUEUED) & BIT_MASK_FWFF_PKT_QUEUED)
#define BIT_SET_FWFF_PKT_QUEUED(x, v)			(BIT_CLEAR_FWFF_PKT_QUEUED(x) | BIT_FWFF_PKT_QUEUED(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */


#define BIT_SHIFT_FWFF_PKT_READ_ADDR			16
#define BIT_MASK_FWFF_PKT_READ_ADDR			0xffff
#define BIT_FWFF_PKT_READ_ADDR(x)			(((x) & BIT_MASK_FWFF_PKT_READ_ADDR) << BIT_SHIFT_FWFF_PKT_READ_ADDR)
#define BITS_FWFF_PKT_READ_ADDR			(BIT_MASK_FWFF_PKT_READ_ADDR << BIT_SHIFT_FWFF_PKT_READ_ADDR)
#define BIT_CLEAR_FWFF_PKT_READ_ADDR(x)		((x) & (~BITS_FWFF_PKT_READ_ADDR))
#define BIT_GET_FWFF_PKT_READ_ADDR(x)			(((x) >> BIT_SHIFT_FWFF_PKT_READ_ADDR) & BIT_MASK_FWFF_PKT_READ_ADDR)
#define BIT_SET_FWFF_PKT_READ_ADDR(x, v)		(BIT_CLEAR_FWFF_PKT_READ_ADDR(x) | BIT_FWFF_PKT_READ_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */

#define BIT_ECRC_EN_V1					BIT(7)
#define BIT_MDIO_RFLAG_V1				BIT(6)
#define BIT_MDIO_WFLAG_V1				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */


#define BIT_SHIFT_FWFF_PKT_STR_ADDR			0
#define BIT_MASK_FWFF_PKT_STR_ADDR			0xffff
#define BIT_FWFF_PKT_STR_ADDR(x)			(((x) & BIT_MASK_FWFF_PKT_STR_ADDR) << BIT_SHIFT_FWFF_PKT_STR_ADDR)
#define BITS_FWFF_PKT_STR_ADDR				(BIT_MASK_FWFF_PKT_STR_ADDR << BIT_SHIFT_FWFF_PKT_STR_ADDR)
#define BIT_CLEAR_FWFF_PKT_STR_ADDR(x)			((x) & (~BITS_FWFF_PKT_STR_ADDR))
#define BIT_GET_FWFF_PKT_STR_ADDR(x)			(((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR) & BIT_MASK_FWFF_PKT_STR_ADDR)
#define BIT_SET_FWFF_PKT_STR_ADDR(x, v)		(BIT_CLEAR_FWFF_PKT_STR_ADDR(x) | BIT_FWFF_PKT_STR_ADDR(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */


#define BIT_SHIFT_FWFF_PKT_STR_ADDR_V1			0
#define BIT_MASK_FWFF_PKT_STR_ADDR_V1			0x7ff
#define BIT_FWFF_PKT_STR_ADDR_V1(x)			(((x) & BIT_MASK_FWFF_PKT_STR_ADDR_V1) << BIT_SHIFT_FWFF_PKT_STR_ADDR_V1)
#define BITS_FWFF_PKT_STR_ADDR_V1			(BIT_MASK_FWFF_PKT_STR_ADDR_V1 << BIT_SHIFT_FWFF_PKT_STR_ADDR_V1)
#define BIT_CLEAR_FWFF_PKT_STR_ADDR_V1(x)		((x) & (~BITS_FWFF_PKT_STR_ADDR_V1))
#define BIT_GET_FWFF_PKT_STR_ADDR_V1(x)		(((x) >> BIT_SHIFT_FWFF_PKT_STR_ADDR_V1) & BIT_MASK_FWFF_PKT_STR_ADDR_V1)
#define BIT_SET_FWFF_PKT_STR_ADDR_V1(x, v)		(BIT_CLEAR_FWFF_PKT_STR_ADDR_V1(x) | BIT_FWFF_PKT_STR_ADDR_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO			(Offset 0x02A0) */


#define BIT_SHIFT_FWFF_PKT_WRITE_ADDR			0
#define BIT_MASK_FWFF_PKT_WRITE_ADDR			0xffff
#define BIT_FWFF_PKT_WRITE_ADDR(x)			(((x) & BIT_MASK_FWFF_PKT_WRITE_ADDR) << BIT_SHIFT_FWFF_PKT_WRITE_ADDR)
#define BITS_FWFF_PKT_WRITE_ADDR			(BIT_MASK_FWFF_PKT_WRITE_ADDR << BIT_SHIFT_FWFF_PKT_WRITE_ADDR)
#define BIT_CLEAR_FWFF_PKT_WRITE_ADDR(x)		((x) & (~BITS_FWFF_PKT_WRITE_ADDR))
#define BIT_GET_FWFF_PKT_WRITE_ADDR(x)			(((x) >> BIT_SHIFT_FWFF_PKT_WRITE_ADDR) & BIT_MASK_FWFF_PKT_WRITE_ADDR)
#define BIT_SET_FWFF_PKT_WRITE_ADDR(x, v)		(BIT_CLEAR_FWFF_PKT_WRITE_ADDR(x) | BIT_FWFF_PKT_WRITE_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_FC2H_INFO				(Offset 0x02A4) */

#define BIT_FC2H_PKT_REQ				BIT(16)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_FC2H_INFO				(Offset 0x02A4) */

#define BIT_FC2H_DMAPKT_REQ				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FC2H_INFO				(Offset 0x02A4) */


#define BIT_SHIFT_FC2H_STR_ADDR			0
#define BIT_MASK_FC2H_STR_ADDR				0xffff
#define BIT_FC2H_STR_ADDR(x)				(((x) & BIT_MASK_FC2H_STR_ADDR) << BIT_SHIFT_FC2H_STR_ADDR)
#define BITS_FC2H_STR_ADDR				(BIT_MASK_FC2H_STR_ADDR << BIT_SHIFT_FC2H_STR_ADDR)
#define BIT_CLEAR_FC2H_STR_ADDR(x)			((x) & (~BITS_FC2H_STR_ADDR))
#define BIT_GET_FC2H_STR_ADDR(x)			(((x) >> BIT_SHIFT_FC2H_STR_ADDR) & BIT_MASK_FC2H_STR_ADDR)
#define BIT_SET_FC2H_STR_ADDR(x, v)			(BIT_CLEAR_FC2H_STR_ADDR(x) | BIT_FC2H_STR_ADDR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWFF_PKT_INFO2			(Offset 0x02A4) */


#define BIT_SHIFT_FWFF_PKT_QUEUED_V1			0
#define BIT_MASK_FWFF_PKT_QUEUED_V1			0xffff
#define BIT_FWFF_PKT_QUEUED_V1(x)			(((x) & BIT_MASK_FWFF_PKT_QUEUED_V1) << BIT_SHIFT_FWFF_PKT_QUEUED_V1)
#define BITS_FWFF_PKT_QUEUED_V1			(BIT_MASK_FWFF_PKT_QUEUED_V1 << BIT_SHIFT_FWFF_PKT_QUEUED_V1)
#define BIT_CLEAR_FWFF_PKT_QUEUED_V1(x)		((x) & (~BITS_FWFF_PKT_QUEUED_V1))
#define BIT_GET_FWFF_PKT_QUEUED_V1(x)			(((x) >> BIT_SHIFT_FWFF_PKT_QUEUED_V1) & BIT_MASK_FWFF_PKT_QUEUED_V1)
#define BIT_SET_FWFF_PKT_QUEUED_V1(x, v)		(BIT_CLEAR_FWFF_PKT_QUEUED_V1(x) | BIT_FWFF_PKT_QUEUED_V1(v))


/* 2 REG_RXPKTNUM				(Offset 0x02B0) */


#define BIT_SHIFT_PKT_NUM_WOL_V1			16
#define BIT_MASK_PKT_NUM_WOL_V1			0xffff
#define BIT_PKT_NUM_WOL_V1(x)				(((x) & BIT_MASK_PKT_NUM_WOL_V1) << BIT_SHIFT_PKT_NUM_WOL_V1)
#define BITS_PKT_NUM_WOL_V1				(BIT_MASK_PKT_NUM_WOL_V1 << BIT_SHIFT_PKT_NUM_WOL_V1)
#define BIT_CLEAR_PKT_NUM_WOL_V1(x)			((x) & (~BITS_PKT_NUM_WOL_V1))
#define BIT_GET_PKT_NUM_WOL_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_WOL_V1) & BIT_MASK_PKT_NUM_WOL_V1)
#define BIT_SET_PKT_NUM_WOL_V1(x, v)			(BIT_CLEAR_PKT_NUM_WOL_V1(x) | BIT_PKT_NUM_WOL_V1(v))


#define BIT_SHIFT_RXPKT_NUM_V1				0
#define BIT_MASK_RXPKT_NUM_V1				0xffff
#define BIT_RXPKT_NUM_V1(x)				(((x) & BIT_MASK_RXPKT_NUM_V1) << BIT_SHIFT_RXPKT_NUM_V1)
#define BITS_RXPKT_NUM_V1				(BIT_MASK_RXPKT_NUM_V1 << BIT_SHIFT_RXPKT_NUM_V1)
#define BIT_CLEAR_RXPKT_NUM_V1(x)			((x) & (~BITS_RXPKT_NUM_V1))
#define BIT_GET_RXPKT_NUM_V1(x)			(((x) >> BIT_SHIFT_RXPKT_NUM_V1) & BIT_MASK_RXPKT_NUM_V1)
#define BIT_SET_RXPKT_NUM_V1(x, v)			(BIT_CLEAR_RXPKT_NUM_V1(x) | BIT_RXPKT_NUM_V1(v))


#define BIT_SHIFT_RXPKT_NUM_TH				0
#define BIT_MASK_RXPKT_NUM_TH				0xff
#define BIT_RXPKT_NUM_TH(x)				(((x) & BIT_MASK_RXPKT_NUM_TH) << BIT_SHIFT_RXPKT_NUM_TH)
#define BITS_RXPKT_NUM_TH				(BIT_MASK_RXPKT_NUM_TH << BIT_SHIFT_RXPKT_NUM_TH)
#define BIT_CLEAR_RXPKT_NUM_TH(x)			((x) & (~BITS_RXPKT_NUM_TH))
#define BIT_GET_RXPKT_NUM_TH(x)			(((x) >> BIT_SHIFT_RXPKT_NUM_TH) & BIT_MASK_RXPKT_NUM_TH)
#define BIT_SET_RXPKT_NUM_TH(x, v)			(BIT_CLEAR_RXPKT_NUM_TH(x) | BIT_RXPKT_NUM_TH(v))


#define BIT_SHIFT_FW_UPD_RXDES_RD_PTR			0
#define BIT_MASK_FW_UPD_RXDES_RD_PTR			0x3ffff
#define BIT_FW_UPD_RXDES_RD_PTR(x)			(((x) & BIT_MASK_FW_UPD_RXDES_RD_PTR) << BIT_SHIFT_FW_UPD_RXDES_RD_PTR)
#define BITS_FW_UPD_RXDES_RD_PTR			(BIT_MASK_FW_UPD_RXDES_RD_PTR << BIT_SHIFT_FW_UPD_RXDES_RD_PTR)
#define BIT_CLEAR_FW_UPD_RXDES_RD_PTR(x)		((x) & (~BITS_FW_UPD_RXDES_RD_PTR))
#define BIT_GET_FW_UPD_RXDES_RD_PTR(x)			(((x) >> BIT_SHIFT_FW_UPD_RXDES_RD_PTR) & BIT_MASK_FW_UPD_RXDES_RD_PTR)
#define BIT_SET_FW_UPD_RXDES_RD_PTR(x, v)		(BIT_CLEAR_FW_UPD_RXDES_RD_PTR(x) | BIT_FW_UPD_RXDES_RD_PTR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_PCIEIO_PERSTB_SEL				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */

#define BIT_HCIIO_PERSTB_SEL				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */


#define BIT_SHIFT_PCIE_MAX_RXDMA			28
#define BIT_MASK_PCIE_MAX_RXDMA			0x7
#define BIT_PCIE_MAX_RXDMA(x)				(((x) & BIT_MASK_PCIE_MAX_RXDMA) << BIT_SHIFT_PCIE_MAX_RXDMA)
#define BITS_PCIE_MAX_RXDMA				(BIT_MASK_PCIE_MAX_RXDMA << BIT_SHIFT_PCIE_MAX_RXDMA)
#define BIT_CLEAR_PCIE_MAX_RXDMA(x)			((x) & (~BITS_PCIE_MAX_RXDMA))
#define BIT_GET_PCIE_MAX_RXDMA(x)			(((x) >> BIT_SHIFT_PCIE_MAX_RXDMA) & BIT_MASK_PCIE_MAX_RXDMA)
#define BIT_SET_PCIE_MAX_RXDMA(x, v)			(BIT_CLEAR_PCIE_MAX_RXDMA(x) | BIT_PCIE_MAX_RXDMA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */


#define BIT_SHIFT_HCI_MAX_RXDMA			28
#define BIT_MASK_HCI_MAX_RXDMA				0x7
#define BIT_HCI_MAX_RXDMA(x)				(((x) & BIT_MASK_HCI_MAX_RXDMA) << BIT_SHIFT_HCI_MAX_RXDMA)
#define BITS_HCI_MAX_RXDMA				(BIT_MASK_HCI_MAX_RXDMA << BIT_SHIFT_HCI_MAX_RXDMA)
#define BIT_CLEAR_HCI_MAX_RXDMA(x)			((x) & (~BITS_HCI_MAX_RXDMA))
#define BIT_GET_HCI_MAX_RXDMA(x)			(((x) >> BIT_SHIFT_HCI_MAX_RXDMA) & BIT_MASK_HCI_MAX_RXDMA)
#define BIT_SET_HCI_MAX_RXDMA(x, v)			(BIT_CLEAR_HCI_MAX_RXDMA(x) | BIT_HCI_MAX_RXDMA(v))


#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LX_CTRL1				(Offset 0x0300) */

#define BIT_RX_LIT_EDN_SEL				BIT(27)
#define BIT_TX_LIT_EDN_SEL				BIT(26)
#define BIT_WT_LIT_EDN					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */


#define BIT_SHIFT_PCIE_MAX_TXDMA			24
#define BIT_MASK_PCIE_MAX_TXDMA			0x7
#define BIT_PCIE_MAX_TXDMA(x)				(((x) & BIT_MASK_PCIE_MAX_TXDMA) << BIT_SHIFT_PCIE_MAX_TXDMA)
#define BITS_PCIE_MAX_TXDMA				(BIT_MASK_PCIE_MAX_TXDMA << BIT_SHIFT_PCIE_MAX_TXDMA)
#define BIT_CLEAR_PCIE_MAX_TXDMA(x)			((x) & (~BITS_PCIE_MAX_TXDMA))
#define BIT_GET_PCIE_MAX_TXDMA(x)			(((x) >> BIT_SHIFT_PCIE_MAX_TXDMA) & BIT_MASK_PCIE_MAX_TXDMA)
#define BIT_SET_PCIE_MAX_TXDMA(x, v)			(BIT_CLEAR_PCIE_MAX_TXDMA(x) | BIT_PCIE_MAX_TXDMA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */


#define BIT_SHIFT_HCI_MAX_TXDMA			24
#define BIT_MASK_HCI_MAX_TXDMA				0x7
#define BIT_HCI_MAX_TXDMA(x)				(((x) & BIT_MASK_HCI_MAX_TXDMA) << BIT_SHIFT_HCI_MAX_TXDMA)
#define BITS_HCI_MAX_TXDMA				(BIT_MASK_HCI_MAX_TXDMA << BIT_SHIFT_HCI_MAX_TXDMA)
#define BIT_CLEAR_HCI_MAX_TXDMA(x)			((x) & (~BITS_HCI_MAX_TXDMA))
#define BIT_GET_HCI_MAX_TXDMA(x)			(((x) >> BIT_SHIFT_HCI_MAX_TXDMA) & BIT_MASK_HCI_MAX_TXDMA)
#define BIT_SET_HCI_MAX_TXDMA(x, v)			(BIT_CLEAR_HCI_MAX_TXDMA(x) | BIT_HCI_MAX_TXDMA(v))


#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LX_CTRL1				(Offset 0x0300) */

#define BIT_RD_LITT_EDN				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_PWR_SCALE_START_PS				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_PCIE_RST_TRXDMA_INTF			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */

#define BIT_HCI_RST_TRXDMA_INTF			BIT(20)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LX_CTRL1				(Offset 0x0300) */


#define BIT_SHIFT_MAX_RXDMA				20
#define BIT_MASK_MAX_RXDMA				0x7
#define BIT_MAX_RXDMA(x)				(((x) & BIT_MASK_MAX_RXDMA) << BIT_SHIFT_MAX_RXDMA)
#define BITS_MAX_RXDMA					(BIT_MASK_MAX_RXDMA << BIT_SHIFT_MAX_RXDMA)
#define BIT_CLEAR_MAX_RXDMA(x)				((x) & (~BITS_MAX_RXDMA))
#define BIT_GET_MAX_RXDMA(x)				(((x) >> BIT_SHIFT_MAX_RXDMA) & BIT_MASK_MAX_RXDMA)
#define BIT_SET_MAX_RXDMA(x, v)			(BIT_CLEAR_MAX_RXDMA(x) | BIT_MAX_RXDMA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_PCIE_EN_SWENT_L23				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */

#define BIT_HCI_EN_SWENT_L23				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_PCIE_EN_HWEXT_L1				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL				(Offset 0x0300) */

#define BIT_HCI_EN_HWEXT_L1				BIT(16)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_LX_CTRL1				(Offset 0x0300) */


#define BIT_SHIFT_MAX_TXDMA				16
#define BIT_MASK_MAX_TXDMA				0x7
#define BIT_MAX_TXDMA(x)				(((x) & BIT_MASK_MAX_TXDMA) << BIT_SHIFT_MAX_TXDMA)
#define BITS_MAX_TXDMA					(BIT_MASK_MAX_TXDMA << BIT_SHIFT_MAX_TXDMA)
#define BIT_CLEAR_MAX_TXDMA(x)				((x) & (~BITS_MAX_TXDMA))
#define BIT_GET_MAX_TXDMA(x)				(((x) >> BIT_SHIFT_MAX_TXDMA) & BIT_MASK_MAX_TXDMA)
#define BIT_SET_MAX_TXDMA(x, v)			(BIT_CLEAR_MAX_TXDMA(x) | BIT_MAX_TXDMA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CTRL				(Offset 0x0300) */

#define BIT_STOP_P0_MPRT_BCNQ4				BIT(6)
#define BIT_STOP_P0_MPRT_BCNQ3				BIT(4)
#define BIT_STOP_P0_MPRT_BCNQ2				BIT(2)
#define BIT_STOP_P0_MPRT_BCNQ1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INT_MIG				(Offset 0x0304) */


#define BIT_SHIFT_TXTTIMER_MATCH_NUM			28
#define BIT_MASK_TXTTIMER_MATCH_NUM			0xf
#define BIT_TXTTIMER_MATCH_NUM(x)			(((x) & BIT_MASK_TXTTIMER_MATCH_NUM) << BIT_SHIFT_TXTTIMER_MATCH_NUM)
#define BITS_TXTTIMER_MATCH_NUM			(BIT_MASK_TXTTIMER_MATCH_NUM << BIT_SHIFT_TXTTIMER_MATCH_NUM)
#define BIT_CLEAR_TXTTIMER_MATCH_NUM(x)		((x) & (~BITS_TXTTIMER_MATCH_NUM))
#define BIT_GET_TXTTIMER_MATCH_NUM(x)			(((x) >> BIT_SHIFT_TXTTIMER_MATCH_NUM) & BIT_MASK_TXTTIMER_MATCH_NUM)
#define BIT_SET_TXTTIMER_MATCH_NUM(x, v)		(BIT_CLEAR_TXTTIMER_MATCH_NUM(x) | BIT_TXTTIMER_MATCH_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH_CTRL				(Offset 0x0304) */

#define BIT_STOP_P0HIQ19				BIT(27)
#define BIT_STOP_P0HIQ18				BIT(26)
#define BIT_STOP_P0HIQ17				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INT_MIG				(Offset 0x0304) */


#define BIT_SHIFT_TXPKT_NUM_MATCH			24
#define BIT_MASK_TXPKT_NUM_MATCH			0xf
#define BIT_TXPKT_NUM_MATCH(x)				(((x) & BIT_MASK_TXPKT_NUM_MATCH) << BIT_SHIFT_TXPKT_NUM_MATCH)
#define BITS_TXPKT_NUM_MATCH				(BIT_MASK_TXPKT_NUM_MATCH << BIT_SHIFT_TXPKT_NUM_MATCH)
#define BIT_CLEAR_TXPKT_NUM_MATCH(x)			((x) & (~BITS_TXPKT_NUM_MATCH))
#define BIT_GET_TXPKT_NUM_MATCH(x)			(((x) >> BIT_SHIFT_TXPKT_NUM_MATCH) & BIT_MASK_TXPKT_NUM_MATCH)
#define BIT_SET_TXPKT_NUM_MATCH(x, v)			(BIT_CLEAR_TXPKT_NUM_MATCH(x) | BIT_TXPKT_NUM_MATCH(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH_CTRL				(Offset 0x0304) */

#define BIT_STOP_P0HIQ16				BIT(24)
#define BIT_RX_CLOSE_EN_V1				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INT_MIG				(Offset 0x0304) */


#define BIT_SHIFT_RXTTIMER_MATCH_NUM			20
#define BIT_MASK_RXTTIMER_MATCH_NUM			0xf
#define BIT_RXTTIMER_MATCH_NUM(x)			(((x) & BIT_MASK_RXTTIMER_MATCH_NUM) << BIT_SHIFT_RXTTIMER_MATCH_NUM)
#define BITS_RXTTIMER_MATCH_NUM			(BIT_MASK_RXTTIMER_MATCH_NUM << BIT_SHIFT_RXTTIMER_MATCH_NUM)
#define BIT_CLEAR_RXTTIMER_MATCH_NUM(x)		((x) & (~BITS_RXTTIMER_MATCH_NUM))
#define BIT_GET_RXTTIMER_MATCH_NUM(x)			(((x) >> BIT_SHIFT_RXTTIMER_MATCH_NUM) & BIT_MASK_RXTTIMER_MATCH_NUM)
#define BIT_SET_RXTTIMER_MATCH_NUM(x, v)		(BIT_CLEAR_RXTTIMER_MATCH_NUM(x) | BIT_RXTTIMER_MATCH_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH_CTRL				(Offset 0x0304) */

#define BIT_STOP_FWCMDQ				BIT(20)
#define BIT_STOP_P0BCNQ				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INT_MIG				(Offset 0x0304) */


#define BIT_SHIFT_RXPKT_NUM_MATCH			16
#define BIT_MASK_RXPKT_NUM_MATCH			0xf
#define BIT_RXPKT_NUM_MATCH(x)				(((x) & BIT_MASK_RXPKT_NUM_MATCH) << BIT_SHIFT_RXPKT_NUM_MATCH)
#define BITS_RXPKT_NUM_MATCH				(BIT_MASK_RXPKT_NUM_MATCH << BIT_SHIFT_RXPKT_NUM_MATCH)
#define BIT_CLEAR_RXPKT_NUM_MATCH(x)			((x) & (~BITS_RXPKT_NUM_MATCH))
#define BIT_GET_RXPKT_NUM_MATCH(x)			(((x) >> BIT_SHIFT_RXPKT_NUM_MATCH) & BIT_MASK_RXPKT_NUM_MATCH)
#define BIT_SET_RXPKT_NUM_MATCH(x, v)			(BIT_CLEAR_RXPKT_NUM_MATCH(x) | BIT_RXPKT_NUM_MATCH(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH_CTRL				(Offset 0x0304) */

#define BIT_STOP_P0MGQ					BIT(16)
#define BIT_STOP_ACH13					BIT(15)
#define BIT_STOP_ACH12					BIT(14)
#define BIT_STOP_ACH11					BIT(13)
#define BIT_STOP_ACH10					BIT(12)
#define BIT_STOP_ACH9					BIT(11)
#define BIT_STOP_ACH8					BIT(10)
#define BIT_STOP_ACH7					BIT(9)
#define BIT_STOP_ACH6					BIT(8)
#define BIT_STOP_ACH5					BIT(7)
#define BIT_STOP_ACH4					BIT(6)
#define BIT_STOP_ACH3					BIT(5)
#define BIT_STOP_ACH2					BIT(4)
#define BIT_STOP_ACH1					BIT(3)
#define BIT_STOP_ACH0					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INT_MIG				(Offset 0x0304) */


#define BIT_SHIFT_MIGRATE_TIMER			0
#define BIT_MASK_MIGRATE_TIMER				0xffff
#define BIT_MIGRATE_TIMER(x)				(((x) & BIT_MASK_MIGRATE_TIMER) << BIT_SHIFT_MIGRATE_TIMER)
#define BITS_MIGRATE_TIMER				(BIT_MASK_MIGRATE_TIMER << BIT_SHIFT_MIGRATE_TIMER)
#define BIT_CLEAR_MIGRATE_TIMER(x)			((x) & (~BITS_MIGRATE_TIMER))
#define BIT_GET_MIGRATE_TIMER(x)			(((x) >> BIT_SHIFT_MIGRATE_TIMER) & BIT_MASK_MIGRATE_TIMER)
#define BIT_SET_MIGRATE_TIMER(x, v)			(BIT_CLEAR_MIGRATE_TIMER(x) | BIT_MIGRATE_TIMER(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH_CTRL				(Offset 0x0304) */

#define BIT_STOP_P0RX					BIT(0)

/* 2 REG_HIQ_CTRL				(Offset 0x0308) */

#define BIT_STOP_P0HIQ15				BIT(15)
#define BIT_STOP_P0HIQ14				BIT(14)
#define BIT_STOP_P0HIQ13				BIT(13)
#define BIT_STOP_P0HIQ12				BIT(12)
#define BIT_STOP_P0HIQ11				BIT(11)
#define BIT_STOP_P0HIQ10				BIT(10)
#define BIT_STOP_P0HIQ9				BIT(9)
#define BIT_STOP_P0HIQ8				BIT(8)
#define BIT_STOP_P0HIQ7				BIT(7)
#define BIT_STOP_P0HIQ6				BIT(6)
#define BIT_STOP_P0HIQ5				BIT(5)
#define BIT_STOP_P0HIQ4				BIT(4)
#define BIT_STOP_P0HIQ3				BIT(3)
#define BIT_STOP_P0HIQ2				BIT(2)
#define BIT_STOP_P0HIQ1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCNQ_TXBD_DESA			(Offset 0x0308) */


#define BIT_SHIFT_BCNQ_TXBD_DESA			0
#define BIT_MASK_BCNQ_TXBD_DESA			0xffffffffffffffffL
#define BIT_BCNQ_TXBD_DESA(x)				(((x) & BIT_MASK_BCNQ_TXBD_DESA) << BIT_SHIFT_BCNQ_TXBD_DESA)
#define BITS_BCNQ_TXBD_DESA				(BIT_MASK_BCNQ_TXBD_DESA << BIT_SHIFT_BCNQ_TXBD_DESA)
#define BIT_CLEAR_BCNQ_TXBD_DESA(x)			((x) & (~BITS_BCNQ_TXBD_DESA))
#define BIT_GET_BCNQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_BCNQ_TXBD_DESA) & BIT_MASK_BCNQ_TXBD_DESA)
#define BIT_SET_BCNQ_TXBD_DESA(x, v)			(BIT_CLEAR_BCNQ_TXBD_DESA(x) | BIT_BCNQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIQ_CTRL				(Offset 0x0308) */

#define BIT_STOP_P0HIQ0				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_TXBD_DESA			(Offset 0x0310) */


#define BIT_SHIFT_MGQ_TXBD_DESA			0
#define BIT_MASK_MGQ_TXBD_DESA				0xffffffffffffffffL
#define BIT_MGQ_TXBD_DESA(x)				(((x) & BIT_MASK_MGQ_TXBD_DESA) << BIT_SHIFT_MGQ_TXBD_DESA)
#define BITS_MGQ_TXBD_DESA				(BIT_MASK_MGQ_TXBD_DESA << BIT_SHIFT_MGQ_TXBD_DESA)
#define BIT_CLEAR_MGQ_TXBD_DESA(x)			((x) & (~BITS_MGQ_TXBD_DESA))
#define BIT_GET_MGQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_MGQ_TXBD_DESA) & BIT_MASK_MGQ_TXBD_DESA)
#define BIT_SET_MGQ_TXBD_DESA(x, v)			(BIT_CLEAR_MGQ_TXBD_DESA(x) | BIT_MGQ_TXBD_DESA(v))


/* 2 REG_VOQ_TXBD_DESA			(Offset 0x0318) */


#define BIT_SHIFT_VOQ_TXBD_DESA			0
#define BIT_MASK_VOQ_TXBD_DESA				0xffffffffffffffffL
#define BIT_VOQ_TXBD_DESA(x)				(((x) & BIT_MASK_VOQ_TXBD_DESA) << BIT_SHIFT_VOQ_TXBD_DESA)
#define BITS_VOQ_TXBD_DESA				(BIT_MASK_VOQ_TXBD_DESA << BIT_SHIFT_VOQ_TXBD_DESA)
#define BIT_CLEAR_VOQ_TXBD_DESA(x)			((x) & (~BITS_VOQ_TXBD_DESA))
#define BIT_GET_VOQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_VOQ_TXBD_DESA) & BIT_MASK_VOQ_TXBD_DESA)
#define BIT_SET_VOQ_TXBD_DESA(x, v)			(BIT_CLEAR_VOQ_TXBD_DESA(x) | BIT_VOQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_TXBD_DESA_L			(Offset 0x0318) */


#define BIT_SHIFT_ACH0_TXBD_DESA_L			0
#define BIT_MASK_ACH0_TXBD_DESA_L			0xffffffffL
#define BIT_ACH0_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH0_TXBD_DESA_L) << BIT_SHIFT_ACH0_TXBD_DESA_L)
#define BITS_ACH0_TXBD_DESA_L				(BIT_MASK_ACH0_TXBD_DESA_L << BIT_SHIFT_ACH0_TXBD_DESA_L)
#define BIT_CLEAR_ACH0_TXBD_DESA_L(x)			((x) & (~BITS_ACH0_TXBD_DESA_L))
#define BIT_GET_ACH0_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH0_TXBD_DESA_L) & BIT_MASK_ACH0_TXBD_DESA_L)
#define BIT_SET_ACH0_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH0_TXBD_DESA_L(x) | BIT_ACH0_TXBD_DESA_L(v))


/* 2 REG_ACH0_TXBD_DESA_H			(Offset 0x031C) */


#define BIT_SHIFT_ACH0_TXBD_DESA_H			0
#define BIT_MASK_ACH0_TXBD_DESA_H			0xffffffffL
#define BIT_ACH0_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH0_TXBD_DESA_H) << BIT_SHIFT_ACH0_TXBD_DESA_H)
#define BITS_ACH0_TXBD_DESA_H				(BIT_MASK_ACH0_TXBD_DESA_H << BIT_SHIFT_ACH0_TXBD_DESA_H)
#define BIT_CLEAR_ACH0_TXBD_DESA_H(x)			((x) & (~BITS_ACH0_TXBD_DESA_H))
#define BIT_GET_ACH0_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH0_TXBD_DESA_H) & BIT_MASK_ACH0_TXBD_DESA_H)
#define BIT_SET_ACH0_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH0_TXBD_DESA_H(x) | BIT_ACH0_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VIQ_TXBD_DESA			(Offset 0x0320) */


#define BIT_SHIFT_VIQ_TXBD_DESA			0
#define BIT_MASK_VIQ_TXBD_DESA				0xffffffffffffffffL
#define BIT_VIQ_TXBD_DESA(x)				(((x) & BIT_MASK_VIQ_TXBD_DESA) << BIT_SHIFT_VIQ_TXBD_DESA)
#define BITS_VIQ_TXBD_DESA				(BIT_MASK_VIQ_TXBD_DESA << BIT_SHIFT_VIQ_TXBD_DESA)
#define BIT_CLEAR_VIQ_TXBD_DESA(x)			((x) & (~BITS_VIQ_TXBD_DESA))
#define BIT_GET_VIQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_VIQ_TXBD_DESA) & BIT_MASK_VIQ_TXBD_DESA)
#define BIT_SET_VIQ_TXBD_DESA(x, v)			(BIT_CLEAR_VIQ_TXBD_DESA(x) | BIT_VIQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH1_TXBD_DESA_L			(Offset 0x0320) */


#define BIT_SHIFT_ACH1_TXBD_DESA_L			0
#define BIT_MASK_ACH1_TXBD_DESA_L			0xffffffffL
#define BIT_ACH1_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH1_TXBD_DESA_L) << BIT_SHIFT_ACH1_TXBD_DESA_L)
#define BITS_ACH1_TXBD_DESA_L				(BIT_MASK_ACH1_TXBD_DESA_L << BIT_SHIFT_ACH1_TXBD_DESA_L)
#define BIT_CLEAR_ACH1_TXBD_DESA_L(x)			((x) & (~BITS_ACH1_TXBD_DESA_L))
#define BIT_GET_ACH1_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH1_TXBD_DESA_L) & BIT_MASK_ACH1_TXBD_DESA_L)
#define BIT_SET_ACH1_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH1_TXBD_DESA_L(x) | BIT_ACH1_TXBD_DESA_L(v))


/* 2 REG_ACH1_TXBD_DESA_H			(Offset 0x0324) */


#define BIT_SHIFT_ACH1_TXBD_DESA_H			0
#define BIT_MASK_ACH1_TXBD_DESA_H			0xffffffffL
#define BIT_ACH1_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH1_TXBD_DESA_H) << BIT_SHIFT_ACH1_TXBD_DESA_H)
#define BITS_ACH1_TXBD_DESA_H				(BIT_MASK_ACH1_TXBD_DESA_H << BIT_SHIFT_ACH1_TXBD_DESA_H)
#define BIT_CLEAR_ACH1_TXBD_DESA_H(x)			((x) & (~BITS_ACH1_TXBD_DESA_H))
#define BIT_GET_ACH1_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH1_TXBD_DESA_H) & BIT_MASK_ACH1_TXBD_DESA_H)
#define BIT_SET_ACH1_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH1_TXBD_DESA_H(x) | BIT_ACH1_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_DESA			(Offset 0x0328) */


#define BIT_SHIFT_BEQ_TXBD_DESA			0
#define BIT_MASK_BEQ_TXBD_DESA				0xffffffffffffffffL
#define BIT_BEQ_TXBD_DESA(x)				(((x) & BIT_MASK_BEQ_TXBD_DESA) << BIT_SHIFT_BEQ_TXBD_DESA)
#define BITS_BEQ_TXBD_DESA				(BIT_MASK_BEQ_TXBD_DESA << BIT_SHIFT_BEQ_TXBD_DESA)
#define BIT_CLEAR_BEQ_TXBD_DESA(x)			((x) & (~BITS_BEQ_TXBD_DESA))
#define BIT_GET_BEQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_BEQ_TXBD_DESA) & BIT_MASK_BEQ_TXBD_DESA)
#define BIT_SET_BEQ_TXBD_DESA(x, v)			(BIT_CLEAR_BEQ_TXBD_DESA(x) | BIT_BEQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_TXBD_DESA_L			(Offset 0x0328) */


#define BIT_SHIFT_ACH2_TXBD_DESA_L			0
#define BIT_MASK_ACH2_TXBD_DESA_L			0xffffffffL
#define BIT_ACH2_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH2_TXBD_DESA_L) << BIT_SHIFT_ACH2_TXBD_DESA_L)
#define BITS_ACH2_TXBD_DESA_L				(BIT_MASK_ACH2_TXBD_DESA_L << BIT_SHIFT_ACH2_TXBD_DESA_L)
#define BIT_CLEAR_ACH2_TXBD_DESA_L(x)			((x) & (~BITS_ACH2_TXBD_DESA_L))
#define BIT_GET_ACH2_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH2_TXBD_DESA_L) & BIT_MASK_ACH2_TXBD_DESA_L)
#define BIT_SET_ACH2_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH2_TXBD_DESA_L(x) | BIT_ACH2_TXBD_DESA_L(v))


/* 2 REG_ACH2_TXBD_DESA_H			(Offset 0x032C) */


#define BIT_SHIFT_ACH2_TXBD_DESA_H			0
#define BIT_MASK_ACH2_TXBD_DESA_H			0xffffffffL
#define BIT_ACH2_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH2_TXBD_DESA_H) << BIT_SHIFT_ACH2_TXBD_DESA_H)
#define BITS_ACH2_TXBD_DESA_H				(BIT_MASK_ACH2_TXBD_DESA_H << BIT_SHIFT_ACH2_TXBD_DESA_H)
#define BIT_CLEAR_ACH2_TXBD_DESA_H(x)			((x) & (~BITS_ACH2_TXBD_DESA_H))
#define BIT_GET_ACH2_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH2_TXBD_DESA_H) & BIT_MASK_ACH2_TXBD_DESA_H)
#define BIT_SET_ACH2_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH2_TXBD_DESA_H(x) | BIT_ACH2_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BKQ_TXBD_DESA			(Offset 0x0330) */


#define BIT_SHIFT_BKQ_TXBD_DESA			0
#define BIT_MASK_BKQ_TXBD_DESA				0xffffffffffffffffL
#define BIT_BKQ_TXBD_DESA(x)				(((x) & BIT_MASK_BKQ_TXBD_DESA) << BIT_SHIFT_BKQ_TXBD_DESA)
#define BITS_BKQ_TXBD_DESA				(BIT_MASK_BKQ_TXBD_DESA << BIT_SHIFT_BKQ_TXBD_DESA)
#define BIT_CLEAR_BKQ_TXBD_DESA(x)			((x) & (~BITS_BKQ_TXBD_DESA))
#define BIT_GET_BKQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_BKQ_TXBD_DESA) & BIT_MASK_BKQ_TXBD_DESA)
#define BIT_SET_BKQ_TXBD_DESA(x, v)			(BIT_CLEAR_BKQ_TXBD_DESA(x) | BIT_BKQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH3_TXBD_DESA_L			(Offset 0x0330) */


#define BIT_SHIFT_ACH3_TXBD_DESA_L			0
#define BIT_MASK_ACH3_TXBD_DESA_L			0xffffffffL
#define BIT_ACH3_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH3_TXBD_DESA_L) << BIT_SHIFT_ACH3_TXBD_DESA_L)
#define BITS_ACH3_TXBD_DESA_L				(BIT_MASK_ACH3_TXBD_DESA_L << BIT_SHIFT_ACH3_TXBD_DESA_L)
#define BIT_CLEAR_ACH3_TXBD_DESA_L(x)			((x) & (~BITS_ACH3_TXBD_DESA_L))
#define BIT_GET_ACH3_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH3_TXBD_DESA_L) & BIT_MASK_ACH3_TXBD_DESA_L)
#define BIT_SET_ACH3_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH3_TXBD_DESA_L(x) | BIT_ACH3_TXBD_DESA_L(v))


/* 2 REG_ACH3_TXBD_DESA_H			(Offset 0x0334) */


#define BIT_SHIFT_ACH3_TXBD_DESA_H			0
#define BIT_MASK_ACH3_TXBD_DESA_H			0xffffffffL
#define BIT_ACH3_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH3_TXBD_DESA_H) << BIT_SHIFT_ACH3_TXBD_DESA_H)
#define BITS_ACH3_TXBD_DESA_H				(BIT_MASK_ACH3_TXBD_DESA_H << BIT_SHIFT_ACH3_TXBD_DESA_H)
#define BIT_CLEAR_ACH3_TXBD_DESA_H(x)			((x) & (~BITS_ACH3_TXBD_DESA_H))
#define BIT_GET_ACH3_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH3_TXBD_DESA_H) & BIT_MASK_ACH3_TXBD_DESA_H)
#define BIT_SET_ACH3_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH3_TXBD_DESA_H(x) | BIT_ACH3_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXQ_RXBD_DESA			(Offset 0x0338) */


#define BIT_SHIFT_RXQ_RXBD_DESA			0
#define BIT_MASK_RXQ_RXBD_DESA				0xffffffffffffffffL
#define BIT_RXQ_RXBD_DESA(x)				(((x) & BIT_MASK_RXQ_RXBD_DESA) << BIT_SHIFT_RXQ_RXBD_DESA)
#define BITS_RXQ_RXBD_DESA				(BIT_MASK_RXQ_RXBD_DESA << BIT_SHIFT_RXQ_RXBD_DESA)
#define BIT_CLEAR_RXQ_RXBD_DESA(x)			((x) & (~BITS_RXQ_RXBD_DESA))
#define BIT_GET_RXQ_RXBD_DESA(x)			(((x) >> BIT_SHIFT_RXQ_RXBD_DESA) & BIT_MASK_RXQ_RXBD_DESA)
#define BIT_SET_RXQ_RXBD_DESA(x, v)			(BIT_CLEAR_RXQ_RXBD_DESA(x) | BIT_RXQ_RXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0RXQ_RXBD_DESA_L			(Offset 0x0338) */


#define BIT_SHIFT_P0RXQ_RXBD_DESA_L			0
#define BIT_MASK_P0RXQ_RXBD_DESA_L			0xffffffffL
#define BIT_P0RXQ_RXBD_DESA_L(x)			(((x) & BIT_MASK_P0RXQ_RXBD_DESA_L) << BIT_SHIFT_P0RXQ_RXBD_DESA_L)
#define BITS_P0RXQ_RXBD_DESA_L				(BIT_MASK_P0RXQ_RXBD_DESA_L << BIT_SHIFT_P0RXQ_RXBD_DESA_L)
#define BIT_CLEAR_P0RXQ_RXBD_DESA_L(x)			((x) & (~BITS_P0RXQ_RXBD_DESA_L))
#define BIT_GET_P0RXQ_RXBD_DESA_L(x)			(((x) >> BIT_SHIFT_P0RXQ_RXBD_DESA_L) & BIT_MASK_P0RXQ_RXBD_DESA_L)
#define BIT_SET_P0RXQ_RXBD_DESA_L(x, v)		(BIT_CLEAR_P0RXQ_RXBD_DESA_L(x) | BIT_P0RXQ_RXBD_DESA_L(v))


/* 2 REG_P0RXQ_RXBD_DESA_H			(Offset 0x033C) */


#define BIT_SHIFT_P0RXQ_RXBD_DESA_H			0
#define BIT_MASK_P0RXQ_RXBD_DESA_H			0xffffffffL
#define BIT_P0RXQ_RXBD_DESA_H(x)			(((x) & BIT_MASK_P0RXQ_RXBD_DESA_H) << BIT_SHIFT_P0RXQ_RXBD_DESA_H)
#define BITS_P0RXQ_RXBD_DESA_H				(BIT_MASK_P0RXQ_RXBD_DESA_H << BIT_SHIFT_P0RXQ_RXBD_DESA_H)
#define BIT_CLEAR_P0RXQ_RXBD_DESA_H(x)			((x) & (~BITS_P0RXQ_RXBD_DESA_H))
#define BIT_GET_P0RXQ_RXBD_DESA_H(x)			(((x) >> BIT_SHIFT_P0RXQ_RXBD_DESA_H) & BIT_MASK_P0RXQ_RXBD_DESA_H)
#define BIT_SET_P0RXQ_RXBD_DESA_H(x, v)		(BIT_CLEAR_P0RXQ_RXBD_DESA_H(x) | BIT_P0RXQ_RXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_DESA			(Offset 0x0340) */


#define BIT_SHIFT_HI0Q_TXBD_DESA			0
#define BIT_MASK_HI0Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI0Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI0Q_TXBD_DESA) << BIT_SHIFT_HI0Q_TXBD_DESA)
#define BITS_HI0Q_TXBD_DESA				(BIT_MASK_HI0Q_TXBD_DESA << BIT_SHIFT_HI0Q_TXBD_DESA)
#define BIT_CLEAR_HI0Q_TXBD_DESA(x)			((x) & (~BITS_HI0Q_TXBD_DESA))
#define BIT_GET_HI0Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI0Q_TXBD_DESA) & BIT_MASK_HI0Q_TXBD_DESA)
#define BIT_SET_HI0Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI0Q_TXBD_DESA(x) | BIT_HI0Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0BCNQ_TXBD_DESA_L			(Offset 0x0340) */


#define BIT_SHIFT_P0BCNQ_TXBD_DESA_L			0
#define BIT_MASK_P0BCNQ_TXBD_DESA_L			0xffffffffL
#define BIT_P0BCNQ_TXBD_DESA_L(x)			(((x) & BIT_MASK_P0BCNQ_TXBD_DESA_L) << BIT_SHIFT_P0BCNQ_TXBD_DESA_L)
#define BITS_P0BCNQ_TXBD_DESA_L			(BIT_MASK_P0BCNQ_TXBD_DESA_L << BIT_SHIFT_P0BCNQ_TXBD_DESA_L)
#define BIT_CLEAR_P0BCNQ_TXBD_DESA_L(x)		((x) & (~BITS_P0BCNQ_TXBD_DESA_L))
#define BIT_GET_P0BCNQ_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_P0BCNQ_TXBD_DESA_L) & BIT_MASK_P0BCNQ_TXBD_DESA_L)
#define BIT_SET_P0BCNQ_TXBD_DESA_L(x, v)		(BIT_CLEAR_P0BCNQ_TXBD_DESA_L(x) | BIT_P0BCNQ_TXBD_DESA_L(v))


/* 2 REG_P0BCNQ_TXBD_DESA_H			(Offset 0x0344) */


#define BIT_SHIFT_P0BCNQ_TXBD_DESA_H			0
#define BIT_MASK_P0BCNQ_TXBD_DESA_H			0xffffffffL
#define BIT_P0BCNQ_TXBD_DESA_H(x)			(((x) & BIT_MASK_P0BCNQ_TXBD_DESA_H) << BIT_SHIFT_P0BCNQ_TXBD_DESA_H)
#define BITS_P0BCNQ_TXBD_DESA_H			(BIT_MASK_P0BCNQ_TXBD_DESA_H << BIT_SHIFT_P0BCNQ_TXBD_DESA_H)
#define BIT_CLEAR_P0BCNQ_TXBD_DESA_H(x)		((x) & (~BITS_P0BCNQ_TXBD_DESA_H))
#define BIT_GET_P0BCNQ_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_P0BCNQ_TXBD_DESA_H) & BIT_MASK_P0BCNQ_TXBD_DESA_H)
#define BIT_SET_P0BCNQ_TXBD_DESA_H(x, v)		(BIT_CLEAR_P0BCNQ_TXBD_DESA_H(x) | BIT_P0BCNQ_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI1Q_TXBD_DESA			(Offset 0x0348) */


#define BIT_SHIFT_HI1Q_TXBD_DESA			0
#define BIT_MASK_HI1Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI1Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI1Q_TXBD_DESA) << BIT_SHIFT_HI1Q_TXBD_DESA)
#define BITS_HI1Q_TXBD_DESA				(BIT_MASK_HI1Q_TXBD_DESA << BIT_SHIFT_HI1Q_TXBD_DESA)
#define BIT_CLEAR_HI1Q_TXBD_DESA(x)			((x) & (~BITS_HI1Q_TXBD_DESA))
#define BIT_GET_HI1Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI1Q_TXBD_DESA) & BIT_MASK_HI1Q_TXBD_DESA)
#define BIT_SET_HI1Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI1Q_TXBD_DESA(x) | BIT_HI1Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWCMDQ_TXBD_DESA_L			(Offset 0x0348) */


#define BIT_SHIFT_FWCMDQ_TXBD_DESA_L			0
#define BIT_MASK_FWCMDQ_TXBD_DESA_L			0xffffffffL
#define BIT_FWCMDQ_TXBD_DESA_L(x)			(((x) & BIT_MASK_FWCMDQ_TXBD_DESA_L) << BIT_SHIFT_FWCMDQ_TXBD_DESA_L)
#define BITS_FWCMDQ_TXBD_DESA_L			(BIT_MASK_FWCMDQ_TXBD_DESA_L << BIT_SHIFT_FWCMDQ_TXBD_DESA_L)
#define BIT_CLEAR_FWCMDQ_TXBD_DESA_L(x)		((x) & (~BITS_FWCMDQ_TXBD_DESA_L))
#define BIT_GET_FWCMDQ_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_FWCMDQ_TXBD_DESA_L) & BIT_MASK_FWCMDQ_TXBD_DESA_L)
#define BIT_SET_FWCMDQ_TXBD_DESA_L(x, v)		(BIT_CLEAR_FWCMDQ_TXBD_DESA_L(x) | BIT_FWCMDQ_TXBD_DESA_L(v))


/* 2 REG_FWCMDQ_TXBD_DESA_H			(Offset 0x034C) */


#define BIT_SHIFT_FWCMDQ_TXBD_DESA_H			0
#define BIT_MASK_FWCMDQ_TXBD_DESA_H			0xffffffffL
#define BIT_FWCMDQ_TXBD_DESA_H(x)			(((x) & BIT_MASK_FWCMDQ_TXBD_DESA_H) << BIT_SHIFT_FWCMDQ_TXBD_DESA_H)
#define BITS_FWCMDQ_TXBD_DESA_H			(BIT_MASK_FWCMDQ_TXBD_DESA_H << BIT_SHIFT_FWCMDQ_TXBD_DESA_H)
#define BIT_CLEAR_FWCMDQ_TXBD_DESA_H(x)		((x) & (~BITS_FWCMDQ_TXBD_DESA_H))
#define BIT_GET_FWCMDQ_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_FWCMDQ_TXBD_DESA_H) & BIT_MASK_FWCMDQ_TXBD_DESA_H)
#define BIT_SET_FWCMDQ_TXBD_DESA_H(x, v)		(BIT_CLEAR_FWCMDQ_TXBD_DESA_H(x) | BIT_FWCMDQ_TXBD_DESA_H(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_DESA			(Offset 0x0350) */


#define BIT_SHIFT_HI2Q_TXBD_DESA			0
#define BIT_MASK_HI2Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI2Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI2Q_TXBD_DESA) << BIT_SHIFT_HI2Q_TXBD_DESA)
#define BITS_HI2Q_TXBD_DESA				(BIT_MASK_HI2Q_TXBD_DESA << BIT_SHIFT_HI2Q_TXBD_DESA)
#define BIT_CLEAR_HI2Q_TXBD_DESA(x)			((x) & (~BITS_HI2Q_TXBD_DESA))
#define BIT_GET_HI2Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI2Q_TXBD_DESA) & BIT_MASK_HI2Q_TXBD_DESA)
#define BIT_SET_HI2Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI2Q_TXBD_DESA(x) | BIT_HI2Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_HRPWM1_HCPWM1_DCPU		(Offset 0x0354) */


#define BIT_SHIFT_PCIE_HCPWM1_DCPU			16
#define BIT_MASK_PCIE_HCPWM1_DCPU			0xff
#define BIT_PCIE_HCPWM1_DCPU(x)			(((x) & BIT_MASK_PCIE_HCPWM1_DCPU) << BIT_SHIFT_PCIE_HCPWM1_DCPU)
#define BITS_PCIE_HCPWM1_DCPU				(BIT_MASK_PCIE_HCPWM1_DCPU << BIT_SHIFT_PCIE_HCPWM1_DCPU)
#define BIT_CLEAR_PCIE_HCPWM1_DCPU(x)			((x) & (~BITS_PCIE_HCPWM1_DCPU))
#define BIT_GET_PCIE_HCPWM1_DCPU(x)			(((x) >> BIT_SHIFT_PCIE_HCPWM1_DCPU) & BIT_MASK_PCIE_HCPWM1_DCPU)
#define BIT_SET_PCIE_HCPWM1_DCPU(x, v)			(BIT_CLEAR_PCIE_HCPWM1_DCPU(x) | BIT_PCIE_HCPWM1_DCPU(v))


#define BIT_SHIFT_PCIE_HRPWM1_DCPU			8
#define BIT_MASK_PCIE_HRPWM1_DCPU			0xff
#define BIT_PCIE_HRPWM1_DCPU(x)			(((x) & BIT_MASK_PCIE_HRPWM1_DCPU) << BIT_SHIFT_PCIE_HRPWM1_DCPU)
#define BITS_PCIE_HRPWM1_DCPU				(BIT_MASK_PCIE_HRPWM1_DCPU << BIT_SHIFT_PCIE_HRPWM1_DCPU)
#define BIT_CLEAR_PCIE_HRPWM1_DCPU(x)			((x) & (~BITS_PCIE_HRPWM1_DCPU))
#define BIT_GET_PCIE_HRPWM1_DCPU(x)			(((x) >> BIT_SHIFT_PCIE_HRPWM1_DCPU) & BIT_MASK_PCIE_HRPWM1_DCPU)
#define BIT_SET_PCIE_HRPWM1_DCPU(x, v)			(BIT_CLEAR_PCIE_HRPWM1_DCPU(x) | BIT_PCIE_HRPWM1_DCPU(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI3Q_TXBD_DESA			(Offset 0x0358) */


#define BIT_SHIFT_HI3Q_TXBD_DESA			0
#define BIT_MASK_HI3Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI3Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI3Q_TXBD_DESA) << BIT_SHIFT_HI3Q_TXBD_DESA)
#define BITS_HI3Q_TXBD_DESA				(BIT_MASK_HI3Q_TXBD_DESA << BIT_SHIFT_HI3Q_TXBD_DESA)
#define BIT_CLEAR_HI3Q_TXBD_DESA(x)			((x) & (~BITS_HI3Q_TXBD_DESA))
#define BIT_GET_HI3Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI3Q_TXBD_DESA) & BIT_MASK_HI3Q_TXBD_DESA)
#define BIT_SET_HI3Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI3Q_TXBD_DESA(x) | BIT_HI3Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0_MPRT_BCNQ_TXBD_DESA_L		(Offset 0x0358) */


#define BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L		0
#define BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L		0xffffffffL
#define BIT_P0_MPRT_BCNQ_TXBD_DESA_L(x)		(((x) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L) << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L)
#define BITS_P0_MPRT_BCNQ_TXBD_DESA_L			(BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L)
#define BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_L(x)		((x) & (~BITS_P0_MPRT_BCNQ_TXBD_DESA_L))
#define BIT_GET_P0_MPRT_BCNQ_TXBD_DESA_L(x)		(((x) >> BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_L) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_L)
#define BIT_SET_P0_MPRT_BCNQ_TXBD_DESA_L(x, v)	(BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_L(x) | BIT_P0_MPRT_BCNQ_TXBD_DESA_L(v))


/* 2 REG_P0_MPRT_BCNQ_TXBD_DESA_H		(Offset 0x035C) */

#define BIT_CLR_P0HI15Q_HW_IDX				BIT(29)
#define BIT_CLR_P0HI14Q_HW_IDX				BIT(28)
#define BIT_CLR_P0HI13Q_HW_IDX				BIT(27)
#define BIT_CLR_P0HI12Q_HW_IDX				BIT(26)
#define BIT_CLR_P0HI11Q_HW_IDX				BIT(25)
#define BIT_CLR_P0HI10Q_HW_IDX				BIT(24)
#define BIT_CLR_P0HI9Q_HW_IDX				BIT(23)
#define BIT_CLR_P0HI8Q_HW_IDX				BIT(22)
#define BIT_CLR_ACH7_HW_IDX				BIT(21)
#define BIT_CLR_ACH13_HW_IDX				BIT(21)
#define BIT_CLR_ACH6_HW_IDX				BIT(20)
#define BIT_CLR_ACH12_HW_IDX				BIT(20)
#define BIT_CLR_ACH5_HW_IDX				BIT(19)
#define BIT_CLR_ACH11_HW_IDX				BIT(19)
#define BIT_CLR_ACH4_HW_IDX				BIT(18)
#define BIT_CLR_ACH10_HW_IDX				BIT(18)
#define BIT_CLR_ACH9_HW_IDX				BIT(17)
#define BIT_CLR_ACH8_HW_IDX				BIT(16)

#define BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE		13
#define BIT_MASK_P0_MPRT_BCNQ_DESC_MODE		0x3
#define BIT_P0_MPRT_BCNQ_DESC_MODE(x)			(((x) & BIT_MASK_P0_MPRT_BCNQ_DESC_MODE) << BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE)
#define BITS_P0_MPRT_BCNQ_DESC_MODE			(BIT_MASK_P0_MPRT_BCNQ_DESC_MODE << BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE)
#define BIT_CLEAR_P0_MPRT_BCNQ_DESC_MODE(x)		((x) & (~BITS_P0_MPRT_BCNQ_DESC_MODE))
#define BIT_GET_P0_MPRT_BCNQ_DESC_MODE(x)		(((x) >> BIT_SHIFT_P0_MPRT_BCNQ_DESC_MODE) & BIT_MASK_P0_MPRT_BCNQ_DESC_MODE)
#define BIT_SET_P0_MPRT_BCNQ_DESC_MODE(x, v)		(BIT_CLEAR_P0_MPRT_BCNQ_DESC_MODE(x) | BIT_P0_MPRT_BCNQ_DESC_MODE(v))

#define BIT_CLR_P0HI15Q_HOST_IDX			BIT(13)
#define BIT_CLR_P0HI14Q_HOST_IDX			BIT(12)
#define BIT_PCIE_P0MPRT_BCNQ1_FLAG			BIT(11)
#define BIT_CLR_P0HI13Q_HOST_IDX			BIT(11)
#define BIT_PCIE_P0MPRT_BCNQ2_FLAG			BIT(10)
#define BIT_CLR_P0HI12Q_HOST_IDX			BIT(10)
#define BIT_PCIE_P0MPRT_BCNQ3_FLAG			BIT(9)
#define BIT_CLR_P0HI11Q_HOST_IDX			BIT(9)
#define BIT_PCIE_P0MPRT_BCNQ4_FLAG			BIT(8)
#define BIT_CLR_P0HI10Q_HOST_IDX			BIT(8)
#define BIT_CLR_P0HI9Q_HOST_IDX			BIT(7)
#define BIT_CLR_P0HI8Q_HOST_IDX			BIT(6)
#define BIT_CLR_ACH7_HOST_IDX				BIT(5)
#define BIT_CLR_ACH13_HOST_IDX				BIT(5)
#define BIT_CLR_ACH6_HOST_IDX				BIT(4)
#define BIT_CLR_ACH12_HOST_IDX				BIT(4)
#define BIT_CLR_ACH5_HOST_IDX				BIT(3)
#define BIT_CLR_ACH11_HOST_IDX				BIT(3)
#define BIT_CLR_ACH4_HOST_IDX				BIT(2)
#define BIT_CLR_ACH10_HOST_IDX				BIT(2)
#define BIT_EPHY_CAL_DONE				BIT(1)
#define BIT_CLR_ACH9_HOST_IDX				BIT(1)

#define BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H		0
#define BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H		0xffffffffL
#define BIT_P0_MPRT_BCNQ_TXBD_DESA_H(x)		(((x) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H) << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H)
#define BITS_P0_MPRT_BCNQ_TXBD_DESA_H			(BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H << BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H)
#define BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_H(x)		((x) & (~BITS_P0_MPRT_BCNQ_TXBD_DESA_H))
#define BIT_GET_P0_MPRT_BCNQ_TXBD_DESA_H(x)		(((x) >> BIT_SHIFT_P0_MPRT_BCNQ_TXBD_DESA_H) & BIT_MASK_P0_MPRT_BCNQ_TXBD_DESA_H)
#define BIT_SET_P0_MPRT_BCNQ_TXBD_DESA_H(x, v)	(BIT_CLEAR_P0_MPRT_BCNQ_TXBD_DESA_H(x) | BIT_P0_MPRT_BCNQ_TXBD_DESA_H(v))

#define BIT_RESET_APHY					BIT(0)
#define BIT_CLR_ACH8_HOST_IDX				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_DESA			(Offset 0x0360) */


#define BIT_SHIFT_HI4Q_TXBD_DESA			0
#define BIT_MASK_HI4Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI4Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI4Q_TXBD_DESA) << BIT_SHIFT_HI4Q_TXBD_DESA)
#define BITS_HI4Q_TXBD_DESA				(BIT_MASK_HI4Q_TXBD_DESA << BIT_SHIFT_HI4Q_TXBD_DESA)
#define BIT_CLEAR_HI4Q_TXBD_DESA(x)			((x) & (~BITS_HI4Q_TXBD_DESA))
#define BIT_GET_HI4Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI4Q_TXBD_DESA) & BIT_MASK_HI4Q_TXBD_DESA)
#define BIT_SET_HI4Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI4Q_TXBD_DESA(x) | BIT_HI4Q_TXBD_DESA(v))


/* 2 REG_HI5Q_TXBD_DESA			(Offset 0x0368) */


#define BIT_SHIFT_HI5Q_TXBD_DESA			0
#define BIT_MASK_HI5Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI5Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI5Q_TXBD_DESA) << BIT_SHIFT_HI5Q_TXBD_DESA)
#define BITS_HI5Q_TXBD_DESA				(BIT_MASK_HI5Q_TXBD_DESA << BIT_SHIFT_HI5Q_TXBD_DESA)
#define BIT_CLEAR_HI5Q_TXBD_DESA(x)			((x) & (~BITS_HI5Q_TXBD_DESA))
#define BIT_GET_HI5Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI5Q_TXBD_DESA) & BIT_MASK_HI5Q_TXBD_DESA)
#define BIT_SET_HI5Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI5Q_TXBD_DESA(x) | BIT_HI5Q_TXBD_DESA(v))


/* 2 REG_HI6Q_TXBD_DESA			(Offset 0x0370) */


#define BIT_SHIFT_HI6Q_TXBD_DESA			0
#define BIT_MASK_HI6Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI6Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI6Q_TXBD_DESA) << BIT_SHIFT_HI6Q_TXBD_DESA)
#define BITS_HI6Q_TXBD_DESA				(BIT_MASK_HI6Q_TXBD_DESA << BIT_SHIFT_HI6Q_TXBD_DESA)
#define BIT_CLEAR_HI6Q_TXBD_DESA(x)			((x) & (~BITS_HI6Q_TXBD_DESA))
#define BIT_GET_HI6Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI6Q_TXBD_DESA) & BIT_MASK_HI6Q_TXBD_DESA)
#define BIT_SET_HI6Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI6Q_TXBD_DESA(x) | BIT_HI6Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0MGQ_RXQ_TXRXBD_NUM		(Offset 0x0378) */

#define BIT_SYS_32_64_V1				BIT(31)

#define BIT_SHIFT_P0BCNQ_DESC_MODE			29
#define BIT_MASK_P0BCNQ_DESC_MODE			0x3
#define BIT_P0BCNQ_DESC_MODE(x)			(((x) & BIT_MASK_P0BCNQ_DESC_MODE) << BIT_SHIFT_P0BCNQ_DESC_MODE)
#define BITS_P0BCNQ_DESC_MODE				(BIT_MASK_P0BCNQ_DESC_MODE << BIT_SHIFT_P0BCNQ_DESC_MODE)
#define BIT_CLEAR_P0BCNQ_DESC_MODE(x)			((x) & (~BITS_P0BCNQ_DESC_MODE))
#define BIT_GET_P0BCNQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0BCNQ_DESC_MODE) & BIT_MASK_P0BCNQ_DESC_MODE)
#define BIT_SET_P0BCNQ_DESC_MODE(x, v)			(BIT_CLEAR_P0BCNQ_DESC_MODE(x) | BIT_P0BCNQ_DESC_MODE(v))

#define BIT_PCIE_P0BCNQ_FLAG				BIT(28)

#define BIT_SHIFT_P0RXQ_DESC_NUM			16
#define BIT_MASK_P0RXQ_DESC_NUM			0xfff
#define BIT_P0RXQ_DESC_NUM(x)				(((x) & BIT_MASK_P0RXQ_DESC_NUM) << BIT_SHIFT_P0RXQ_DESC_NUM)
#define BITS_P0RXQ_DESC_NUM				(BIT_MASK_P0RXQ_DESC_NUM << BIT_SHIFT_P0RXQ_DESC_NUM)
#define BIT_CLEAR_P0RXQ_DESC_NUM(x)			((x) & (~BITS_P0RXQ_DESC_NUM))
#define BIT_GET_P0RXQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0RXQ_DESC_NUM) & BIT_MASK_P0RXQ_DESC_NUM)
#define BIT_SET_P0RXQ_DESC_NUM(x, v)			(BIT_CLEAR_P0RXQ_DESC_NUM(x) | BIT_P0RXQ_DESC_NUM(v))

#define BIT_PCIE_P0MGQ_FLAG				BIT(14)

#define BIT_SHIFT_P0MGQ_DESC_MODE			12
#define BIT_MASK_P0MGQ_DESC_MODE			0x3
#define BIT_P0MGQ_DESC_MODE(x)				(((x) & BIT_MASK_P0MGQ_DESC_MODE) << BIT_SHIFT_P0MGQ_DESC_MODE)
#define BITS_P0MGQ_DESC_MODE				(BIT_MASK_P0MGQ_DESC_MODE << BIT_SHIFT_P0MGQ_DESC_MODE)
#define BIT_CLEAR_P0MGQ_DESC_MODE(x)			((x) & (~BITS_P0MGQ_DESC_MODE))
#define BIT_GET_P0MGQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0MGQ_DESC_MODE) & BIT_MASK_P0MGQ_DESC_MODE)
#define BIT_SET_P0MGQ_DESC_MODE(x, v)			(BIT_CLEAR_P0MGQ_DESC_MODE(x) | BIT_P0MGQ_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI7Q_TXBD_DESA			(Offset 0x0378) */


#define BIT_SHIFT_HI7Q_TXBD_DESA			0
#define BIT_MASK_HI7Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI7Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI7Q_TXBD_DESA) << BIT_SHIFT_HI7Q_TXBD_DESA)
#define BITS_HI7Q_TXBD_DESA				(BIT_MASK_HI7Q_TXBD_DESA << BIT_SHIFT_HI7Q_TXBD_DESA)
#define BIT_CLEAR_HI7Q_TXBD_DESA(x)			((x) & (~BITS_HI7Q_TXBD_DESA))
#define BIT_GET_HI7Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI7Q_TXBD_DESA) & BIT_MASK_HI7Q_TXBD_DESA)
#define BIT_SET_HI7Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI7Q_TXBD_DESA(x) | BIT_HI7Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0MGQ_RXQ_TXRXBD_NUM		(Offset 0x0378) */


#define BIT_SHIFT_P0MGQ_DESC_NUM			0
#define BIT_MASK_P0MGQ_DESC_NUM			0xfff
#define BIT_P0MGQ_DESC_NUM(x)				(((x) & BIT_MASK_P0MGQ_DESC_NUM) << BIT_SHIFT_P0MGQ_DESC_NUM)
#define BITS_P0MGQ_DESC_NUM				(BIT_MASK_P0MGQ_DESC_NUM << BIT_SHIFT_P0MGQ_DESC_NUM)
#define BIT_CLEAR_P0MGQ_DESC_NUM(x)			((x) & (~BITS_P0MGQ_DESC_NUM))
#define BIT_GET_P0MGQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0MGQ_DESC_NUM) & BIT_MASK_P0MGQ_DESC_NUM)
#define BIT_SET_P0MGQ_DESC_NUM(x, v)			(BIT_CLEAR_P0MGQ_DESC_NUM(x) | BIT_P0MGQ_DESC_NUM(v))


/* 2 REG_CHNL_DMA_CFG			(Offset 0x037C) */

#define BIT_TXHCI_EN					BIT(26)
#define BIT_TXHCI_IDLE					BIT(25)
#define BIT_DMA_PRI_EN					BIT(24)
#define BIT_PCIE_FWCMDQ_FLAG				BIT(14)

#define BIT_SHIFT_FWCMDQ_DESC_MODE			12
#define BIT_MASK_FWCMDQ_DESC_MODE			0x3
#define BIT_FWCMDQ_DESC_MODE(x)			(((x) & BIT_MASK_FWCMDQ_DESC_MODE) << BIT_SHIFT_FWCMDQ_DESC_MODE)
#define BITS_FWCMDQ_DESC_MODE				(BIT_MASK_FWCMDQ_DESC_MODE << BIT_SHIFT_FWCMDQ_DESC_MODE)
#define BIT_CLEAR_FWCMDQ_DESC_MODE(x)			((x) & (~BITS_FWCMDQ_DESC_MODE))
#define BIT_GET_FWCMDQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_FWCMDQ_DESC_MODE) & BIT_MASK_FWCMDQ_DESC_MODE)
#define BIT_SET_FWCMDQ_DESC_MODE(x, v)			(BIT_CLEAR_FWCMDQ_DESC_MODE(x) | BIT_FWCMDQ_DESC_MODE(v))


#define BIT_SHIFT_FWCMDQ_DESC_NUM			0
#define BIT_MASK_FWCMDQ_DESC_NUM			0xfff
#define BIT_FWCMDQ_DESC_NUM(x)				(((x) & BIT_MASK_FWCMDQ_DESC_NUM) << BIT_SHIFT_FWCMDQ_DESC_NUM)
#define BITS_FWCMDQ_DESC_NUM				(BIT_MASK_FWCMDQ_DESC_NUM << BIT_SHIFT_FWCMDQ_DESC_NUM)
#define BIT_CLEAR_FWCMDQ_DESC_NUM(x)			((x) & (~BITS_FWCMDQ_DESC_NUM))
#define BIT_GET_FWCMDQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_FWCMDQ_DESC_NUM) & BIT_MASK_FWCMDQ_DESC_NUM)
#define BIT_SET_FWCMDQ_DESC_NUM(x, v)			(BIT_CLEAR_FWCMDQ_DESC_NUM(x) | BIT_FWCMDQ_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_TXBD_NUM			(Offset 0x0380) */

#define BIT_PCIE_MGQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_MGQ_TXBD_NUM			(Offset 0x0380) */

#define BIT_HCI_MGQ_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_TXBD_NUM			(Offset 0x0380) */


#define BIT_SHIFT_MGQ_DESC_MODE			12
#define BIT_MASK_MGQ_DESC_MODE				0x3
#define BIT_MGQ_DESC_MODE(x)				(((x) & BIT_MASK_MGQ_DESC_MODE) << BIT_SHIFT_MGQ_DESC_MODE)
#define BITS_MGQ_DESC_MODE				(BIT_MASK_MGQ_DESC_MODE << BIT_SHIFT_MGQ_DESC_MODE)
#define BIT_CLEAR_MGQ_DESC_MODE(x)			((x) & (~BITS_MGQ_DESC_MODE))
#define BIT_GET_MGQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_MGQ_DESC_MODE) & BIT_MASK_MGQ_DESC_MODE)
#define BIT_SET_MGQ_DESC_MODE(x, v)			(BIT_CLEAR_MGQ_DESC_MODE(x) | BIT_MGQ_DESC_MODE(v))


#define BIT_SHIFT_MGQ_DESC_NUM				0
#define BIT_MASK_MGQ_DESC_NUM				0xfff
#define BIT_MGQ_DESC_NUM(x)				(((x) & BIT_MASK_MGQ_DESC_NUM) << BIT_SHIFT_MGQ_DESC_NUM)
#define BITS_MGQ_DESC_NUM				(BIT_MASK_MGQ_DESC_NUM << BIT_SHIFT_MGQ_DESC_NUM)
#define BIT_CLEAR_MGQ_DESC_NUM(x)			((x) & (~BITS_MGQ_DESC_NUM))
#define BIT_GET_MGQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_MGQ_DESC_NUM) & BIT_MASK_MGQ_DESC_NUM)
#define BIT_SET_MGQ_DESC_NUM(x, v)			(BIT_CLEAR_MGQ_DESC_NUM(x) | BIT_MGQ_DESC_NUM(v))


/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */

#define BIT_SYS_32_64					BIT(15)

#define BIT_SHIFT_BCNQ_DESC_MODE			13
#define BIT_MASK_BCNQ_DESC_MODE			0x3
#define BIT_BCNQ_DESC_MODE(x)				(((x) & BIT_MASK_BCNQ_DESC_MODE) << BIT_SHIFT_BCNQ_DESC_MODE)
#define BITS_BCNQ_DESC_MODE				(BIT_MASK_BCNQ_DESC_MODE << BIT_SHIFT_BCNQ_DESC_MODE)
#define BIT_CLEAR_BCNQ_DESC_MODE(x)			((x) & (~BITS_BCNQ_DESC_MODE))
#define BIT_GET_BCNQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_BCNQ_DESC_MODE) & BIT_MASK_BCNQ_DESC_MODE)
#define BIT_SET_BCNQ_DESC_MODE(x, v)			(BIT_CLEAR_BCNQ_DESC_MODE(x) | BIT_BCNQ_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */

#define BIT_PCIE_BCNQ_FLAG				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */

#define BIT_HCI_BCNQ_FLAG				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RX_RXBD_NUM				(Offset 0x0382) */


#define BIT_SHIFT_RXQ_DESC_NUM				0
#define BIT_MASK_RXQ_DESC_NUM				0xfff
#define BIT_RXQ_DESC_NUM(x)				(((x) & BIT_MASK_RXQ_DESC_NUM) << BIT_SHIFT_RXQ_DESC_NUM)
#define BITS_RXQ_DESC_NUM				(BIT_MASK_RXQ_DESC_NUM << BIT_SHIFT_RXQ_DESC_NUM)
#define BIT_CLEAR_RXQ_DESC_NUM(x)			((x) & (~BITS_RXQ_DESC_NUM))
#define BIT_GET_RXQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_RXQ_DESC_NUM) & BIT_MASK_RXQ_DESC_NUM)
#define BIT_SET_RXQ_DESC_NUM(x, v)			(BIT_CLEAR_RXQ_DESC_NUM(x) | BIT_RXQ_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_ACH1_TXBD_NUM			(Offset 0x0384) */

#define BIT_PCIE_ACH1_FLAG_V1				BIT(30)

#define BIT_SHIFT_ACH1_DESC_MODE_V1			28
#define BIT_MASK_ACH1_DESC_MODE_V1			0x3
#define BIT_ACH1_DESC_MODE_V1(x)			(((x) & BIT_MASK_ACH1_DESC_MODE_V1) << BIT_SHIFT_ACH1_DESC_MODE_V1)
#define BITS_ACH1_DESC_MODE_V1				(BIT_MASK_ACH1_DESC_MODE_V1 << BIT_SHIFT_ACH1_DESC_MODE_V1)
#define BIT_CLEAR_ACH1_DESC_MODE_V1(x)			((x) & (~BITS_ACH1_DESC_MODE_V1))
#define BIT_GET_ACH1_DESC_MODE_V1(x)			(((x) >> BIT_SHIFT_ACH1_DESC_MODE_V1) & BIT_MASK_ACH1_DESC_MODE_V1)
#define BIT_SET_ACH1_DESC_MODE_V1(x, v)		(BIT_CLEAR_ACH1_DESC_MODE_V1(x) | BIT_ACH1_DESC_MODE_V1(v))


#define BIT_SHIFT_ACH1_DESC_NUM_V1			16
#define BIT_MASK_ACH1_DESC_NUM_V1			0xfff
#define BIT_ACH1_DESC_NUM_V1(x)			(((x) & BIT_MASK_ACH1_DESC_NUM_V1) << BIT_SHIFT_ACH1_DESC_NUM_V1)
#define BITS_ACH1_DESC_NUM_V1				(BIT_MASK_ACH1_DESC_NUM_V1 << BIT_SHIFT_ACH1_DESC_NUM_V1)
#define BIT_CLEAR_ACH1_DESC_NUM_V1(x)			((x) & (~BITS_ACH1_DESC_NUM_V1))
#define BIT_GET_ACH1_DESC_NUM_V1(x)			(((x) >> BIT_SHIFT_ACH1_DESC_NUM_V1) & BIT_MASK_ACH1_DESC_NUM_V1)
#define BIT_SET_ACH1_DESC_NUM_V1(x, v)			(BIT_CLEAR_ACH1_DESC_NUM_V1(x) | BIT_ACH1_DESC_NUM_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */

#define BIT_PCIE_VOQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */

#define BIT_HCI_VOQ_FLAG				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_ACH1_TXBD_NUM			(Offset 0x0384) */

#define BIT_PCIE_ACH0_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */


#define BIT_SHIFT_VOQ_DESC_MODE			12
#define BIT_MASK_VOQ_DESC_MODE				0x3
#define BIT_VOQ_DESC_MODE(x)				(((x) & BIT_MASK_VOQ_DESC_MODE) << BIT_SHIFT_VOQ_DESC_MODE)
#define BITS_VOQ_DESC_MODE				(BIT_MASK_VOQ_DESC_MODE << BIT_SHIFT_VOQ_DESC_MODE)
#define BIT_CLEAR_VOQ_DESC_MODE(x)			((x) & (~BITS_VOQ_DESC_MODE))
#define BIT_GET_VOQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_VOQ_DESC_MODE) & BIT_MASK_VOQ_DESC_MODE)
#define BIT_SET_VOQ_DESC_MODE(x, v)			(BIT_CLEAR_VOQ_DESC_MODE(x) | BIT_VOQ_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_ACH1_TXBD_NUM			(Offset 0x0384) */


#define BIT_SHIFT_ACH0_DESC_MODE			12
#define BIT_MASK_ACH0_DESC_MODE			0x3
#define BIT_ACH0_DESC_MODE(x)				(((x) & BIT_MASK_ACH0_DESC_MODE) << BIT_SHIFT_ACH0_DESC_MODE)
#define BITS_ACH0_DESC_MODE				(BIT_MASK_ACH0_DESC_MODE << BIT_SHIFT_ACH0_DESC_MODE)
#define BIT_CLEAR_ACH0_DESC_MODE(x)			((x) & (~BITS_ACH0_DESC_MODE))
#define BIT_GET_ACH0_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH0_DESC_MODE) & BIT_MASK_ACH0_DESC_MODE)
#define BIT_SET_ACH0_DESC_MODE(x, v)			(BIT_CLEAR_ACH0_DESC_MODE(x) | BIT_ACH0_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VOQ_TXBD_NUM			(Offset 0x0384) */


#define BIT_SHIFT_VOQ_DESC_NUM				0
#define BIT_MASK_VOQ_DESC_NUM				0xfff
#define BIT_VOQ_DESC_NUM(x)				(((x) & BIT_MASK_VOQ_DESC_NUM) << BIT_SHIFT_VOQ_DESC_NUM)
#define BITS_VOQ_DESC_NUM				(BIT_MASK_VOQ_DESC_NUM << BIT_SHIFT_VOQ_DESC_NUM)
#define BIT_CLEAR_VOQ_DESC_NUM(x)			((x) & (~BITS_VOQ_DESC_NUM))
#define BIT_GET_VOQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_VOQ_DESC_NUM) & BIT_MASK_VOQ_DESC_NUM)
#define BIT_SET_VOQ_DESC_NUM(x, v)			(BIT_CLEAR_VOQ_DESC_NUM(x) | BIT_VOQ_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_ACH1_TXBD_NUM			(Offset 0x0384) */


#define BIT_SHIFT_ACH0_DESC_NUM			0
#define BIT_MASK_ACH0_DESC_NUM				0xfff
#define BIT_ACH0_DESC_NUM(x)				(((x) & BIT_MASK_ACH0_DESC_NUM) << BIT_SHIFT_ACH0_DESC_NUM)
#define BITS_ACH0_DESC_NUM				(BIT_MASK_ACH0_DESC_NUM << BIT_SHIFT_ACH0_DESC_NUM)
#define BIT_CLEAR_ACH0_DESC_NUM(x)			((x) & (~BITS_ACH0_DESC_NUM))
#define BIT_GET_ACH0_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH0_DESC_NUM) & BIT_MASK_ACH0_DESC_NUM)
#define BIT_SET_ACH0_DESC_NUM(x, v)			(BIT_CLEAR_ACH0_DESC_NUM(x) | BIT_ACH0_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VIQ_TXBD_NUM			(Offset 0x0386) */

#define BIT_PCIE_VIQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_VIQ_TXBD_NUM			(Offset 0x0386) */

#define BIT_HCI_VIQ_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VIQ_TXBD_NUM			(Offset 0x0386) */


#define BIT_SHIFT_VIQ_DESC_MODE			12
#define BIT_MASK_VIQ_DESC_MODE				0x3
#define BIT_VIQ_DESC_MODE(x)				(((x) & BIT_MASK_VIQ_DESC_MODE) << BIT_SHIFT_VIQ_DESC_MODE)
#define BITS_VIQ_DESC_MODE				(BIT_MASK_VIQ_DESC_MODE << BIT_SHIFT_VIQ_DESC_MODE)
#define BIT_CLEAR_VIQ_DESC_MODE(x)			((x) & (~BITS_VIQ_DESC_MODE))
#define BIT_GET_VIQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_VIQ_DESC_MODE) & BIT_MASK_VIQ_DESC_MODE)
#define BIT_SET_VIQ_DESC_MODE(x, v)			(BIT_CLEAR_VIQ_DESC_MODE(x) | BIT_VIQ_DESC_MODE(v))


#define BIT_SHIFT_VIQ_DESC_NUM				0
#define BIT_MASK_VIQ_DESC_NUM				0xfff
#define BIT_VIQ_DESC_NUM(x)				(((x) & BIT_MASK_VIQ_DESC_NUM) << BIT_SHIFT_VIQ_DESC_NUM)
#define BITS_VIQ_DESC_NUM				(BIT_MASK_VIQ_DESC_NUM << BIT_SHIFT_VIQ_DESC_NUM)
#define BIT_CLEAR_VIQ_DESC_NUM(x)			((x) & (~BITS_VIQ_DESC_NUM))
#define BIT_GET_VIQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_VIQ_DESC_NUM) & BIT_MASK_VIQ_DESC_NUM)
#define BIT_SET_VIQ_DESC_NUM(x, v)			(BIT_CLEAR_VIQ_DESC_NUM(x) | BIT_VIQ_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_ACH3_TXBD_NUM			(Offset 0x0388) */

#define BIT_PCIE_ACH3_FLAG_V1				BIT(30)

#define BIT_SHIFT_ACH3_DESC_MODE_V1			28
#define BIT_MASK_ACH3_DESC_MODE_V1			0x3
#define BIT_ACH3_DESC_MODE_V1(x)			(((x) & BIT_MASK_ACH3_DESC_MODE_V1) << BIT_SHIFT_ACH3_DESC_MODE_V1)
#define BITS_ACH3_DESC_MODE_V1				(BIT_MASK_ACH3_DESC_MODE_V1 << BIT_SHIFT_ACH3_DESC_MODE_V1)
#define BIT_CLEAR_ACH3_DESC_MODE_V1(x)			((x) & (~BITS_ACH3_DESC_MODE_V1))
#define BIT_GET_ACH3_DESC_MODE_V1(x)			(((x) >> BIT_SHIFT_ACH3_DESC_MODE_V1) & BIT_MASK_ACH3_DESC_MODE_V1)
#define BIT_SET_ACH3_DESC_MODE_V1(x, v)		(BIT_CLEAR_ACH3_DESC_MODE_V1(x) | BIT_ACH3_DESC_MODE_V1(v))


#define BIT_SHIFT_ACH3_DESC_NUM_V1			16
#define BIT_MASK_ACH3_DESC_NUM_V1			0xfff
#define BIT_ACH3_DESC_NUM_V1(x)			(((x) & BIT_MASK_ACH3_DESC_NUM_V1) << BIT_SHIFT_ACH3_DESC_NUM_V1)
#define BITS_ACH3_DESC_NUM_V1				(BIT_MASK_ACH3_DESC_NUM_V1 << BIT_SHIFT_ACH3_DESC_NUM_V1)
#define BIT_CLEAR_ACH3_DESC_NUM_V1(x)			((x) & (~BITS_ACH3_DESC_NUM_V1))
#define BIT_GET_ACH3_DESC_NUM_V1(x)			(((x) >> BIT_SHIFT_ACH3_DESC_NUM_V1) & BIT_MASK_ACH3_DESC_NUM_V1)
#define BIT_SET_ACH3_DESC_NUM_V1(x, v)			(BIT_CLEAR_ACH3_DESC_NUM_V1(x) | BIT_ACH3_DESC_NUM_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */

#define BIT_PCIE_BEQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */

#define BIT_HCI_BEQ_FLAG				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_ACH3_TXBD_NUM			(Offset 0x0388) */

#define BIT_PCIE_ACH2_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */


#define BIT_SHIFT_BEQ_DESC_MODE			12
#define BIT_MASK_BEQ_DESC_MODE				0x3
#define BIT_BEQ_DESC_MODE(x)				(((x) & BIT_MASK_BEQ_DESC_MODE) << BIT_SHIFT_BEQ_DESC_MODE)
#define BITS_BEQ_DESC_MODE				(BIT_MASK_BEQ_DESC_MODE << BIT_SHIFT_BEQ_DESC_MODE)
#define BIT_CLEAR_BEQ_DESC_MODE(x)			((x) & (~BITS_BEQ_DESC_MODE))
#define BIT_GET_BEQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_BEQ_DESC_MODE) & BIT_MASK_BEQ_DESC_MODE)
#define BIT_SET_BEQ_DESC_MODE(x, v)			(BIT_CLEAR_BEQ_DESC_MODE(x) | BIT_BEQ_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_ACH3_TXBD_NUM			(Offset 0x0388) */


#define BIT_SHIFT_ACH2_DESC_MODE			12
#define BIT_MASK_ACH2_DESC_MODE			0x3
#define BIT_ACH2_DESC_MODE(x)				(((x) & BIT_MASK_ACH2_DESC_MODE) << BIT_SHIFT_ACH2_DESC_MODE)
#define BITS_ACH2_DESC_MODE				(BIT_MASK_ACH2_DESC_MODE << BIT_SHIFT_ACH2_DESC_MODE)
#define BIT_CLEAR_ACH2_DESC_MODE(x)			((x) & (~BITS_ACH2_DESC_MODE))
#define BIT_GET_ACH2_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH2_DESC_MODE) & BIT_MASK_ACH2_DESC_MODE)
#define BIT_SET_ACH2_DESC_MODE(x, v)			(BIT_CLEAR_ACH2_DESC_MODE(x) | BIT_ACH2_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_NUM			(Offset 0x0388) */


#define BIT_SHIFT_BEQ_DESC_NUM				0
#define BIT_MASK_BEQ_DESC_NUM				0xfff
#define BIT_BEQ_DESC_NUM(x)				(((x) & BIT_MASK_BEQ_DESC_NUM) << BIT_SHIFT_BEQ_DESC_NUM)
#define BITS_BEQ_DESC_NUM				(BIT_MASK_BEQ_DESC_NUM << BIT_SHIFT_BEQ_DESC_NUM)
#define BIT_CLEAR_BEQ_DESC_NUM(x)			((x) & (~BITS_BEQ_DESC_NUM))
#define BIT_GET_BEQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_BEQ_DESC_NUM) & BIT_MASK_BEQ_DESC_NUM)
#define BIT_SET_BEQ_DESC_NUM(x, v)			(BIT_CLEAR_BEQ_DESC_NUM(x) | BIT_BEQ_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_ACH3_TXBD_NUM			(Offset 0x0388) */


#define BIT_SHIFT_ACH2_DESC_NUM			0
#define BIT_MASK_ACH2_DESC_NUM				0xfff
#define BIT_ACH2_DESC_NUM(x)				(((x) & BIT_MASK_ACH2_DESC_NUM) << BIT_SHIFT_ACH2_DESC_NUM)
#define BITS_ACH2_DESC_NUM				(BIT_MASK_ACH2_DESC_NUM << BIT_SHIFT_ACH2_DESC_NUM)
#define BIT_CLEAR_ACH2_DESC_NUM(x)			((x) & (~BITS_ACH2_DESC_NUM))
#define BIT_GET_ACH2_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH2_DESC_NUM) & BIT_MASK_ACH2_DESC_NUM)
#define BIT_SET_ACH2_DESC_NUM(x, v)			(BIT_CLEAR_ACH2_DESC_NUM(x) | BIT_ACH2_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BKQ_TXBD_NUM			(Offset 0x038A) */

#define BIT_PCIE_BKQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_BKQ_TXBD_NUM			(Offset 0x038A) */

#define BIT_HCI_BKQ_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BKQ_TXBD_NUM			(Offset 0x038A) */


#define BIT_SHIFT_BKQ_DESC_MODE			12
#define BIT_MASK_BKQ_DESC_MODE				0x3
#define BIT_BKQ_DESC_MODE(x)				(((x) & BIT_MASK_BKQ_DESC_MODE) << BIT_SHIFT_BKQ_DESC_MODE)
#define BITS_BKQ_DESC_MODE				(BIT_MASK_BKQ_DESC_MODE << BIT_SHIFT_BKQ_DESC_MODE)
#define BIT_CLEAR_BKQ_DESC_MODE(x)			((x) & (~BITS_BKQ_DESC_MODE))
#define BIT_GET_BKQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_BKQ_DESC_MODE) & BIT_MASK_BKQ_DESC_MODE)
#define BIT_SET_BKQ_DESC_MODE(x, v)			(BIT_CLEAR_BKQ_DESC_MODE(x) | BIT_BKQ_DESC_MODE(v))


#define BIT_SHIFT_BKQ_DESC_NUM				0
#define BIT_MASK_BKQ_DESC_NUM				0xfff
#define BIT_BKQ_DESC_NUM(x)				(((x) & BIT_MASK_BKQ_DESC_NUM) << BIT_SHIFT_BKQ_DESC_NUM)
#define BITS_BKQ_DESC_NUM				(BIT_MASK_BKQ_DESC_NUM << BIT_SHIFT_BKQ_DESC_NUM)
#define BIT_CLEAR_BKQ_DESC_NUM(x)			((x) & (~BITS_BKQ_DESC_NUM))
#define BIT_GET_BKQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_BKQ_DESC_NUM) & BIT_MASK_BKQ_DESC_NUM)
#define BIT_SET_BKQ_DESC_NUM(x, v)			(BIT_CLEAR_BKQ_DESC_NUM(x) | BIT_BKQ_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_HI1Q_TXBD_NUM		(Offset 0x038C) */

#define BIT_P0HI1Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI1Q_DESC_MODE			28
#define BIT_MASK_P0HI1Q_DESC_MODE			0x3
#define BIT_P0HI1Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI1Q_DESC_MODE) << BIT_SHIFT_P0HI1Q_DESC_MODE)
#define BITS_P0HI1Q_DESC_MODE				(BIT_MASK_P0HI1Q_DESC_MODE << BIT_SHIFT_P0HI1Q_DESC_MODE)
#define BIT_CLEAR_P0HI1Q_DESC_MODE(x)			((x) & (~BITS_P0HI1Q_DESC_MODE))
#define BIT_GET_P0HI1Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI1Q_DESC_MODE) & BIT_MASK_P0HI1Q_DESC_MODE)
#define BIT_SET_P0HI1Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI1Q_DESC_MODE(x) | BIT_P0HI1Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI1Q_DESC_NUM			16
#define BIT_MASK_P0HI1Q_DESC_NUM			0xfff
#define BIT_P0HI1Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI1Q_DESC_NUM) << BIT_SHIFT_P0HI1Q_DESC_NUM)
#define BITS_P0HI1Q_DESC_NUM				(BIT_MASK_P0HI1Q_DESC_NUM << BIT_SHIFT_P0HI1Q_DESC_NUM)
#define BIT_CLEAR_P0HI1Q_DESC_NUM(x)			((x) & (~BITS_P0HI1Q_DESC_NUM))
#define BIT_GET_P0HI1Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI1Q_DESC_NUM) & BIT_MASK_P0HI1Q_DESC_NUM)
#define BIT_SET_P0HI1Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI1Q_DESC_NUM(x) | BIT_P0HI1Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_NUM			(Offset 0x038C) */

#define BIT_HI0Q_FLAG					BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_HI1Q_TXBD_NUM		(Offset 0x038C) */

#define BIT_P0HI0Q_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_NUM			(Offset 0x038C) */


#define BIT_SHIFT_HI0Q_DESC_MODE			12
#define BIT_MASK_HI0Q_DESC_MODE			0x3
#define BIT_HI0Q_DESC_MODE(x)				(((x) & BIT_MASK_HI0Q_DESC_MODE) << BIT_SHIFT_HI0Q_DESC_MODE)
#define BITS_HI0Q_DESC_MODE				(BIT_MASK_HI0Q_DESC_MODE << BIT_SHIFT_HI0Q_DESC_MODE)
#define BIT_CLEAR_HI0Q_DESC_MODE(x)			((x) & (~BITS_HI0Q_DESC_MODE))
#define BIT_GET_HI0Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI0Q_DESC_MODE) & BIT_MASK_HI0Q_DESC_MODE)
#define BIT_SET_HI0Q_DESC_MODE(x, v)			(BIT_CLEAR_HI0Q_DESC_MODE(x) | BIT_HI0Q_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_HI1Q_TXBD_NUM		(Offset 0x038C) */


#define BIT_SHIFT_P0HI0Q_DESC_MODE			12
#define BIT_MASK_P0HI0Q_DESC_MODE			0x3
#define BIT_P0HI0Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI0Q_DESC_MODE) << BIT_SHIFT_P0HI0Q_DESC_MODE)
#define BITS_P0HI0Q_DESC_MODE				(BIT_MASK_P0HI0Q_DESC_MODE << BIT_SHIFT_P0HI0Q_DESC_MODE)
#define BIT_CLEAR_P0HI0Q_DESC_MODE(x)			((x) & (~BITS_P0HI0Q_DESC_MODE))
#define BIT_GET_P0HI0Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI0Q_DESC_MODE) & BIT_MASK_P0HI0Q_DESC_MODE)
#define BIT_SET_P0HI0Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI0Q_DESC_MODE(x) | BIT_P0HI0Q_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_NUM			(Offset 0x038C) */


#define BIT_SHIFT_HI0Q_DESC_NUM			0
#define BIT_MASK_HI0Q_DESC_NUM				0xfff
#define BIT_HI0Q_DESC_NUM(x)				(((x) & BIT_MASK_HI0Q_DESC_NUM) << BIT_SHIFT_HI0Q_DESC_NUM)
#define BITS_HI0Q_DESC_NUM				(BIT_MASK_HI0Q_DESC_NUM << BIT_SHIFT_HI0Q_DESC_NUM)
#define BIT_CLEAR_HI0Q_DESC_NUM(x)			((x) & (~BITS_HI0Q_DESC_NUM))
#define BIT_GET_HI0Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI0Q_DESC_NUM) & BIT_MASK_HI0Q_DESC_NUM)
#define BIT_SET_HI0Q_DESC_NUM(x, v)			(BIT_CLEAR_HI0Q_DESC_NUM(x) | BIT_HI0Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_HI1Q_TXBD_NUM		(Offset 0x038C) */


#define BIT_SHIFT_P0HI0Q_DESC_NUM			0
#define BIT_MASK_P0HI0Q_DESC_NUM			0xfff
#define BIT_P0HI0Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI0Q_DESC_NUM) << BIT_SHIFT_P0HI0Q_DESC_NUM)
#define BITS_P0HI0Q_DESC_NUM				(BIT_MASK_P0HI0Q_DESC_NUM << BIT_SHIFT_P0HI0Q_DESC_NUM)
#define BIT_CLEAR_P0HI0Q_DESC_NUM(x)			((x) & (~BITS_P0HI0Q_DESC_NUM))
#define BIT_GET_P0HI0Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI0Q_DESC_NUM) & BIT_MASK_P0HI0Q_DESC_NUM)
#define BIT_SET_P0HI0Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI0Q_DESC_NUM(x) | BIT_P0HI0Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI1Q_TXBD_NUM			(Offset 0x038E) */

#define BIT_HI1Q_FLAG					BIT(14)

#define BIT_SHIFT_HI1Q_DESC_MODE			12
#define BIT_MASK_HI1Q_DESC_MODE			0x3
#define BIT_HI1Q_DESC_MODE(x)				(((x) & BIT_MASK_HI1Q_DESC_MODE) << BIT_SHIFT_HI1Q_DESC_MODE)
#define BITS_HI1Q_DESC_MODE				(BIT_MASK_HI1Q_DESC_MODE << BIT_SHIFT_HI1Q_DESC_MODE)
#define BIT_CLEAR_HI1Q_DESC_MODE(x)			((x) & (~BITS_HI1Q_DESC_MODE))
#define BIT_GET_HI1Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI1Q_DESC_MODE) & BIT_MASK_HI1Q_DESC_MODE)
#define BIT_SET_HI1Q_DESC_MODE(x, v)			(BIT_CLEAR_HI1Q_DESC_MODE(x) | BIT_HI1Q_DESC_MODE(v))


#define BIT_SHIFT_HI1Q_DESC_NUM			0
#define BIT_MASK_HI1Q_DESC_NUM				0xfff
#define BIT_HI1Q_DESC_NUM(x)				(((x) & BIT_MASK_HI1Q_DESC_NUM) << BIT_SHIFT_HI1Q_DESC_NUM)
#define BITS_HI1Q_DESC_NUM				(BIT_MASK_HI1Q_DESC_NUM << BIT_SHIFT_HI1Q_DESC_NUM)
#define BIT_CLEAR_HI1Q_DESC_NUM(x)			((x) & (~BITS_HI1Q_DESC_NUM))
#define BIT_GET_HI1Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI1Q_DESC_NUM) & BIT_MASK_HI1Q_DESC_NUM)
#define BIT_SET_HI1Q_DESC_NUM(x, v)			(BIT_CLEAR_HI1Q_DESC_NUM(x) | BIT_HI1Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_HI3Q_TXBD_NUM		(Offset 0x0390) */

#define BIT_P0HI3Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI3Q_DESC_MODE			28
#define BIT_MASK_P0HI3Q_DESC_MODE			0x3
#define BIT_P0HI3Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI3Q_DESC_MODE) << BIT_SHIFT_P0HI3Q_DESC_MODE)
#define BITS_P0HI3Q_DESC_MODE				(BIT_MASK_P0HI3Q_DESC_MODE << BIT_SHIFT_P0HI3Q_DESC_MODE)
#define BIT_CLEAR_P0HI3Q_DESC_MODE(x)			((x) & (~BITS_P0HI3Q_DESC_MODE))
#define BIT_GET_P0HI3Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI3Q_DESC_MODE) & BIT_MASK_P0HI3Q_DESC_MODE)
#define BIT_SET_P0HI3Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI3Q_DESC_MODE(x) | BIT_P0HI3Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI3Q_DESC_NUM			16
#define BIT_MASK_P0HI3Q_DESC_NUM			0xfff
#define BIT_P0HI3Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI3Q_DESC_NUM) << BIT_SHIFT_P0HI3Q_DESC_NUM)
#define BITS_P0HI3Q_DESC_NUM				(BIT_MASK_P0HI3Q_DESC_NUM << BIT_SHIFT_P0HI3Q_DESC_NUM)
#define BIT_CLEAR_P0HI3Q_DESC_NUM(x)			((x) & (~BITS_P0HI3Q_DESC_NUM))
#define BIT_GET_P0HI3Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI3Q_DESC_NUM) & BIT_MASK_P0HI3Q_DESC_NUM)
#define BIT_SET_P0HI3Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI3Q_DESC_NUM(x) | BIT_P0HI3Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_NUM			(Offset 0x0390) */

#define BIT_HI2Q_FLAG					BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_HI3Q_TXBD_NUM		(Offset 0x0390) */

#define BIT_P0HI2Q_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_NUM			(Offset 0x0390) */


#define BIT_SHIFT_HI2Q_DESC_MODE			12
#define BIT_MASK_HI2Q_DESC_MODE			0x3
#define BIT_HI2Q_DESC_MODE(x)				(((x) & BIT_MASK_HI2Q_DESC_MODE) << BIT_SHIFT_HI2Q_DESC_MODE)
#define BITS_HI2Q_DESC_MODE				(BIT_MASK_HI2Q_DESC_MODE << BIT_SHIFT_HI2Q_DESC_MODE)
#define BIT_CLEAR_HI2Q_DESC_MODE(x)			((x) & (~BITS_HI2Q_DESC_MODE))
#define BIT_GET_HI2Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI2Q_DESC_MODE) & BIT_MASK_HI2Q_DESC_MODE)
#define BIT_SET_HI2Q_DESC_MODE(x, v)			(BIT_CLEAR_HI2Q_DESC_MODE(x) | BIT_HI2Q_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_HI3Q_TXBD_NUM		(Offset 0x0390) */


#define BIT_SHIFT_P0HI2Q_DESC_MODE			12
#define BIT_MASK_P0HI2Q_DESC_MODE			0x3
#define BIT_P0HI2Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI2Q_DESC_MODE) << BIT_SHIFT_P0HI2Q_DESC_MODE)
#define BITS_P0HI2Q_DESC_MODE				(BIT_MASK_P0HI2Q_DESC_MODE << BIT_SHIFT_P0HI2Q_DESC_MODE)
#define BIT_CLEAR_P0HI2Q_DESC_MODE(x)			((x) & (~BITS_P0HI2Q_DESC_MODE))
#define BIT_GET_P0HI2Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI2Q_DESC_MODE) & BIT_MASK_P0HI2Q_DESC_MODE)
#define BIT_SET_P0HI2Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI2Q_DESC_MODE(x) | BIT_P0HI2Q_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_NUM			(Offset 0x0390) */


#define BIT_SHIFT_HI2Q_DESC_NUM			0
#define BIT_MASK_HI2Q_DESC_NUM				0xfff
#define BIT_HI2Q_DESC_NUM(x)				(((x) & BIT_MASK_HI2Q_DESC_NUM) << BIT_SHIFT_HI2Q_DESC_NUM)
#define BITS_HI2Q_DESC_NUM				(BIT_MASK_HI2Q_DESC_NUM << BIT_SHIFT_HI2Q_DESC_NUM)
#define BIT_CLEAR_HI2Q_DESC_NUM(x)			((x) & (~BITS_HI2Q_DESC_NUM))
#define BIT_GET_HI2Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI2Q_DESC_NUM) & BIT_MASK_HI2Q_DESC_NUM)
#define BIT_SET_HI2Q_DESC_NUM(x, v)			(BIT_CLEAR_HI2Q_DESC_NUM(x) | BIT_HI2Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_HI3Q_TXBD_NUM		(Offset 0x0390) */


#define BIT_SHIFT_P0HI2Q_DESC_NUM			0
#define BIT_MASK_P0HI2Q_DESC_NUM			0xfff
#define BIT_P0HI2Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI2Q_DESC_NUM) << BIT_SHIFT_P0HI2Q_DESC_NUM)
#define BITS_P0HI2Q_DESC_NUM				(BIT_MASK_P0HI2Q_DESC_NUM << BIT_SHIFT_P0HI2Q_DESC_NUM)
#define BIT_CLEAR_P0HI2Q_DESC_NUM(x)			((x) & (~BITS_P0HI2Q_DESC_NUM))
#define BIT_GET_P0HI2Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI2Q_DESC_NUM) & BIT_MASK_P0HI2Q_DESC_NUM)
#define BIT_SET_P0HI2Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI2Q_DESC_NUM(x) | BIT_P0HI2Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI3Q_TXBD_NUM			(Offset 0x0392) */

#define BIT_HI3Q_FLAG					BIT(14)

#define BIT_SHIFT_HI3Q_DESC_MODE			12
#define BIT_MASK_HI3Q_DESC_MODE			0x3
#define BIT_HI3Q_DESC_MODE(x)				(((x) & BIT_MASK_HI3Q_DESC_MODE) << BIT_SHIFT_HI3Q_DESC_MODE)
#define BITS_HI3Q_DESC_MODE				(BIT_MASK_HI3Q_DESC_MODE << BIT_SHIFT_HI3Q_DESC_MODE)
#define BIT_CLEAR_HI3Q_DESC_MODE(x)			((x) & (~BITS_HI3Q_DESC_MODE))
#define BIT_GET_HI3Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI3Q_DESC_MODE) & BIT_MASK_HI3Q_DESC_MODE)
#define BIT_SET_HI3Q_DESC_MODE(x, v)			(BIT_CLEAR_HI3Q_DESC_MODE(x) | BIT_HI3Q_DESC_MODE(v))


#define BIT_SHIFT_HI3Q_DESC_NUM			0
#define BIT_MASK_HI3Q_DESC_NUM				0xfff
#define BIT_HI3Q_DESC_NUM(x)				(((x) & BIT_MASK_HI3Q_DESC_NUM) << BIT_SHIFT_HI3Q_DESC_NUM)
#define BITS_HI3Q_DESC_NUM				(BIT_MASK_HI3Q_DESC_NUM << BIT_SHIFT_HI3Q_DESC_NUM)
#define BIT_CLEAR_HI3Q_DESC_NUM(x)			((x) & (~BITS_HI3Q_DESC_NUM))
#define BIT_GET_HI3Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI3Q_DESC_NUM) & BIT_MASK_HI3Q_DESC_NUM)
#define BIT_SET_HI3Q_DESC_NUM(x, v)			(BIT_CLEAR_HI3Q_DESC_NUM(x) | BIT_HI3Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_HI5Q_TXBD_NUM		(Offset 0x0394) */

#define BIT_P0HI5Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI5Q_DESC_MODE			28
#define BIT_MASK_P0HI5Q_DESC_MODE			0x3
#define BIT_P0HI5Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI5Q_DESC_MODE) << BIT_SHIFT_P0HI5Q_DESC_MODE)
#define BITS_P0HI5Q_DESC_MODE				(BIT_MASK_P0HI5Q_DESC_MODE << BIT_SHIFT_P0HI5Q_DESC_MODE)
#define BIT_CLEAR_P0HI5Q_DESC_MODE(x)			((x) & (~BITS_P0HI5Q_DESC_MODE))
#define BIT_GET_P0HI5Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI5Q_DESC_MODE) & BIT_MASK_P0HI5Q_DESC_MODE)
#define BIT_SET_P0HI5Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI5Q_DESC_MODE(x) | BIT_P0HI5Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI5Q_DESC_NUM			16
#define BIT_MASK_P0HI5Q_DESC_NUM			0xfff
#define BIT_P0HI5Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI5Q_DESC_NUM) << BIT_SHIFT_P0HI5Q_DESC_NUM)
#define BITS_P0HI5Q_DESC_NUM				(BIT_MASK_P0HI5Q_DESC_NUM << BIT_SHIFT_P0HI5Q_DESC_NUM)
#define BIT_CLEAR_P0HI5Q_DESC_NUM(x)			((x) & (~BITS_P0HI5Q_DESC_NUM))
#define BIT_GET_P0HI5Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI5Q_DESC_NUM) & BIT_MASK_P0HI5Q_DESC_NUM)
#define BIT_SET_P0HI5Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI5Q_DESC_NUM(x) | BIT_P0HI5Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_NUM			(Offset 0x0394) */

#define BIT_HI4Q_FLAG					BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_HI5Q_TXBD_NUM		(Offset 0x0394) */

#define BIT_P0HI4Q_FLAG				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_NUM			(Offset 0x0394) */


#define BIT_SHIFT_HI4Q_DESC_MODE			12
#define BIT_MASK_HI4Q_DESC_MODE			0x3
#define BIT_HI4Q_DESC_MODE(x)				(((x) & BIT_MASK_HI4Q_DESC_MODE) << BIT_SHIFT_HI4Q_DESC_MODE)
#define BITS_HI4Q_DESC_MODE				(BIT_MASK_HI4Q_DESC_MODE << BIT_SHIFT_HI4Q_DESC_MODE)
#define BIT_CLEAR_HI4Q_DESC_MODE(x)			((x) & (~BITS_HI4Q_DESC_MODE))
#define BIT_GET_HI4Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI4Q_DESC_MODE) & BIT_MASK_HI4Q_DESC_MODE)
#define BIT_SET_HI4Q_DESC_MODE(x, v)			(BIT_CLEAR_HI4Q_DESC_MODE(x) | BIT_HI4Q_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_HI5Q_TXBD_NUM		(Offset 0x0394) */


#define BIT_SHIFT_P0HI4Q_DESC_MODE			12
#define BIT_MASK_P0HI4Q_DESC_MODE			0x3
#define BIT_P0HI4Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI4Q_DESC_MODE) << BIT_SHIFT_P0HI4Q_DESC_MODE)
#define BITS_P0HI4Q_DESC_MODE				(BIT_MASK_P0HI4Q_DESC_MODE << BIT_SHIFT_P0HI4Q_DESC_MODE)
#define BIT_CLEAR_P0HI4Q_DESC_MODE(x)			((x) & (~BITS_P0HI4Q_DESC_MODE))
#define BIT_GET_P0HI4Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI4Q_DESC_MODE) & BIT_MASK_P0HI4Q_DESC_MODE)
#define BIT_SET_P0HI4Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI4Q_DESC_MODE(x) | BIT_P0HI4Q_DESC_MODE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_NUM			(Offset 0x0394) */


#define BIT_SHIFT_HI4Q_DESC_NUM			0
#define BIT_MASK_HI4Q_DESC_NUM				0xfff
#define BIT_HI4Q_DESC_NUM(x)				(((x) & BIT_MASK_HI4Q_DESC_NUM) << BIT_SHIFT_HI4Q_DESC_NUM)
#define BITS_HI4Q_DESC_NUM				(BIT_MASK_HI4Q_DESC_NUM << BIT_SHIFT_HI4Q_DESC_NUM)
#define BIT_CLEAR_HI4Q_DESC_NUM(x)			((x) & (~BITS_HI4Q_DESC_NUM))
#define BIT_GET_HI4Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI4Q_DESC_NUM) & BIT_MASK_HI4Q_DESC_NUM)
#define BIT_SET_HI4Q_DESC_NUM(x, v)			(BIT_CLEAR_HI4Q_DESC_NUM(x) | BIT_HI4Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_HI5Q_TXBD_NUM		(Offset 0x0394) */


#define BIT_SHIFT_P0HI4Q_DESC_NUM			0
#define BIT_MASK_P0HI4Q_DESC_NUM			0xfff
#define BIT_P0HI4Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI4Q_DESC_NUM) << BIT_SHIFT_P0HI4Q_DESC_NUM)
#define BITS_P0HI4Q_DESC_NUM				(BIT_MASK_P0HI4Q_DESC_NUM << BIT_SHIFT_P0HI4Q_DESC_NUM)
#define BIT_CLEAR_P0HI4Q_DESC_NUM(x)			((x) & (~BITS_P0HI4Q_DESC_NUM))
#define BIT_GET_P0HI4Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI4Q_DESC_NUM) & BIT_MASK_P0HI4Q_DESC_NUM)
#define BIT_SET_P0HI4Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI4Q_DESC_NUM(x) | BIT_P0HI4Q_DESC_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI5Q_TXBD_NUM			(Offset 0x0396) */

#define BIT_HI5Q_FLAG					BIT(14)

#define BIT_SHIFT_HI5Q_DESC_MODE			12
#define BIT_MASK_HI5Q_DESC_MODE			0x3
#define BIT_HI5Q_DESC_MODE(x)				(((x) & BIT_MASK_HI5Q_DESC_MODE) << BIT_SHIFT_HI5Q_DESC_MODE)
#define BITS_HI5Q_DESC_MODE				(BIT_MASK_HI5Q_DESC_MODE << BIT_SHIFT_HI5Q_DESC_MODE)
#define BIT_CLEAR_HI5Q_DESC_MODE(x)			((x) & (~BITS_HI5Q_DESC_MODE))
#define BIT_GET_HI5Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI5Q_DESC_MODE) & BIT_MASK_HI5Q_DESC_MODE)
#define BIT_SET_HI5Q_DESC_MODE(x, v)			(BIT_CLEAR_HI5Q_DESC_MODE(x) | BIT_HI5Q_DESC_MODE(v))


#define BIT_SHIFT_HI5Q_DESC_NUM			0
#define BIT_MASK_HI5Q_DESC_NUM				0xfff
#define BIT_HI5Q_DESC_NUM(x)				(((x) & BIT_MASK_HI5Q_DESC_NUM) << BIT_SHIFT_HI5Q_DESC_NUM)
#define BITS_HI5Q_DESC_NUM				(BIT_MASK_HI5Q_DESC_NUM << BIT_SHIFT_HI5Q_DESC_NUM)
#define BIT_CLEAR_HI5Q_DESC_NUM(x)			((x) & (~BITS_HI5Q_DESC_NUM))
#define BIT_GET_HI5Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI5Q_DESC_NUM) & BIT_MASK_HI5Q_DESC_NUM)
#define BIT_SET_HI5Q_DESC_NUM(x, v)			(BIT_CLEAR_HI5Q_DESC_NUM(x) | BIT_HI5Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_HI7Q_TXBD_NUM		(Offset 0x0398) */

#define BIT_P0HI7Q_FLAG				BIT(30)
#define BIT_CLR_FWCMDQ_HW_IDX				BIT(30)
#define BIT_CLR_P0HI7Q_HW_IDX				BIT(29)

#define BIT_SHIFT_P0HI7Q_DESC_MODE			28
#define BIT_MASK_P0HI7Q_DESC_MODE			0x3
#define BIT_P0HI7Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI7Q_DESC_MODE) << BIT_SHIFT_P0HI7Q_DESC_MODE)
#define BITS_P0HI7Q_DESC_MODE				(BIT_MASK_P0HI7Q_DESC_MODE << BIT_SHIFT_P0HI7Q_DESC_MODE)
#define BIT_CLEAR_P0HI7Q_DESC_MODE(x)			((x) & (~BITS_P0HI7Q_DESC_MODE))
#define BIT_GET_P0HI7Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI7Q_DESC_MODE) & BIT_MASK_P0HI7Q_DESC_MODE)
#define BIT_SET_P0HI7Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI7Q_DESC_MODE(x) | BIT_P0HI7Q_DESC_MODE(v))

#define BIT_CLR_P0HI6Q_HW_IDX				BIT(28)
#define BIT_CLR_P0HI5Q_HW_IDX				BIT(27)
#define BIT_CLR_P0HI4Q_HW_IDX				BIT(26)
#define BIT_CLR_P0HI3Q_HW_IDX				BIT(25)
#define BIT_CLR_P0HI2Q_HW_IDX				BIT(24)
#define BIT_CLR_P0HI1Q_HW_IDX				BIT(23)
#define BIT_CLR_P0HI0Q_HW_IDX				BIT(22)
#define BIT_CLR_ACH3_HW_IDX				BIT(21)
#define BIT_CLR_ACH2_HW_IDX				BIT(20)
#define BIT_CLR_ACH1_HW_IDX				BIT(19)
#define BIT_CLR_ACH0_HW_IDX				BIT(18)
#define BIT_CLR_P0MGQ_HW_IDX				BIT(17)

#define BIT_SHIFT_P0HI7Q_DESC_NUM			16
#define BIT_MASK_P0HI7Q_DESC_NUM			0xfff
#define BIT_P0HI7Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI7Q_DESC_NUM) << BIT_SHIFT_P0HI7Q_DESC_NUM)
#define BITS_P0HI7Q_DESC_NUM				(BIT_MASK_P0HI7Q_DESC_NUM << BIT_SHIFT_P0HI7Q_DESC_NUM)
#define BIT_CLEAR_P0HI7Q_DESC_NUM(x)			((x) & (~BITS_P0HI7Q_DESC_NUM))
#define BIT_GET_P0HI7Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI7Q_DESC_NUM) & BIT_MASK_P0HI7Q_DESC_NUM)
#define BIT_SET_P0HI7Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI7Q_DESC_NUM(x) | BIT_P0HI7Q_DESC_NUM(v))

#define BIT_CLR_P0RXQ_HW_IDX				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI6Q_TXBD_NUM			(Offset 0x0398) */

#define BIT_HI6Q_FLAG					BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_HI7Q_TXBD_NUM		(Offset 0x0398) */

#define BIT_P0HI6Q_FLAG				BIT(14)
#define BIT_CLR_PFWCMDQ_HOST_IDX			BIT(14)
#define BIT_CLR_P0HI7Q_HOST_IDX			BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI6Q_TXBD_NUM			(Offset 0x0398) */


#define BIT_SHIFT_HI6Q_DESC_MODE			12
#define BIT_MASK_HI6Q_DESC_MODE			0x3
#define BIT_HI6Q_DESC_MODE(x)				(((x) & BIT_MASK_HI6Q_DESC_MODE) << BIT_SHIFT_HI6Q_DESC_MODE)
#define BITS_HI6Q_DESC_MODE				(BIT_MASK_HI6Q_DESC_MODE << BIT_SHIFT_HI6Q_DESC_MODE)
#define BIT_CLEAR_HI6Q_DESC_MODE(x)			((x) & (~BITS_HI6Q_DESC_MODE))
#define BIT_GET_HI6Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI6Q_DESC_MODE) & BIT_MASK_HI6Q_DESC_MODE)
#define BIT_SET_HI6Q_DESC_MODE(x, v)			(BIT_CLEAR_HI6Q_DESC_MODE(x) | BIT_HI6Q_DESC_MODE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_HI7Q_TXBD_NUM		(Offset 0x0398) */


#define BIT_SHIFT_P0HI6Q_DESC_MODE			12
#define BIT_MASK_P0HI6Q_DESC_MODE			0x3
#define BIT_P0HI6Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI6Q_DESC_MODE) << BIT_SHIFT_P0HI6Q_DESC_MODE)
#define BITS_P0HI6Q_DESC_MODE				(BIT_MASK_P0HI6Q_DESC_MODE << BIT_SHIFT_P0HI6Q_DESC_MODE)
#define BIT_CLEAR_P0HI6Q_DESC_MODE(x)			((x) & (~BITS_P0HI6Q_DESC_MODE))
#define BIT_GET_P0HI6Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI6Q_DESC_MODE) & BIT_MASK_P0HI6Q_DESC_MODE)
#define BIT_SET_P0HI6Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI6Q_DESC_MODE(x) | BIT_P0HI6Q_DESC_MODE(v))

#define BIT_CLR_P0HI6Q_HOST_IDX			BIT(12)
#define BIT_CLR_P0HI5Q_HOST_IDX			BIT(11)
#define BIT_CLR_P0HI4Q_HOST_IDX			BIT(10)
#define BIT_CLR_P0HI3Q_HOST_IDX			BIT(9)
#define BIT_CLR_P0HI2Q_HOST_IDX			BIT(8)
#define BIT_CLR_P0HI1Q_HOST_IDX			BIT(7)
#define BIT_CLR_P0HI0Q_HOST_IDX			BIT(6)
#define BIT_CLR_ACH3_HOST_IDX				BIT(5)
#define BIT_CLR_ACH2_HOST_IDX				BIT(4)
#define BIT_CLR_ACH1_HOST_IDX				BIT(3)
#define BIT_CLR_ACH0_HOST_IDX				BIT(2)
#define BIT_CLR_P0MGQ_HOST_IDX				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI6Q_TXBD_NUM			(Offset 0x0398) */


#define BIT_SHIFT_HI6Q_DESC_NUM			0
#define BIT_MASK_HI6Q_DESC_NUM				0xfff
#define BIT_HI6Q_DESC_NUM(x)				(((x) & BIT_MASK_HI6Q_DESC_NUM) << BIT_SHIFT_HI6Q_DESC_NUM)
#define BITS_HI6Q_DESC_NUM				(BIT_MASK_HI6Q_DESC_NUM << BIT_SHIFT_HI6Q_DESC_NUM)
#define BIT_CLEAR_HI6Q_DESC_NUM(x)			((x) & (~BITS_HI6Q_DESC_NUM))
#define BIT_GET_HI6Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI6Q_DESC_NUM) & BIT_MASK_HI6Q_DESC_NUM)
#define BIT_SET_HI6Q_DESC_NUM(x, v)			(BIT_CLEAR_HI6Q_DESC_NUM(x) | BIT_HI6Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_HI7Q_TXBD_NUM		(Offset 0x0398) */


#define BIT_SHIFT_P0HI6Q_DESC_NUM			0
#define BIT_MASK_P0HI6Q_DESC_NUM			0xfff
#define BIT_P0HI6Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI6Q_DESC_NUM) << BIT_SHIFT_P0HI6Q_DESC_NUM)
#define BITS_P0HI6Q_DESC_NUM				(BIT_MASK_P0HI6Q_DESC_NUM << BIT_SHIFT_P0HI6Q_DESC_NUM)
#define BIT_CLEAR_P0HI6Q_DESC_NUM(x)			((x) & (~BITS_P0HI6Q_DESC_NUM))
#define BIT_GET_P0HI6Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI6Q_DESC_NUM) & BIT_MASK_P0HI6Q_DESC_NUM)
#define BIT_SET_P0HI6Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI6Q_DESC_NUM(x) | BIT_P0HI6Q_DESC_NUM(v))

#define BIT_CLR_P0RXQ_HOST_IDX				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI7Q_TXBD_NUM			(Offset 0x039A) */

#define BIT_HI7Q_FLAG					BIT(14)

#define BIT_SHIFT_HI7Q_DESC_MODE			12
#define BIT_MASK_HI7Q_DESC_MODE			0x3
#define BIT_HI7Q_DESC_MODE(x)				(((x) & BIT_MASK_HI7Q_DESC_MODE) << BIT_SHIFT_HI7Q_DESC_MODE)
#define BITS_HI7Q_DESC_MODE				(BIT_MASK_HI7Q_DESC_MODE << BIT_SHIFT_HI7Q_DESC_MODE)
#define BIT_CLEAR_HI7Q_DESC_MODE(x)			((x) & (~BITS_HI7Q_DESC_MODE))
#define BIT_GET_HI7Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI7Q_DESC_MODE) & BIT_MASK_HI7Q_DESC_MODE)
#define BIT_SET_HI7Q_DESC_MODE(x, v)			(BIT_CLEAR_HI7Q_DESC_MODE(x) | BIT_HI7Q_DESC_MODE(v))


#define BIT_SHIFT_HI7Q_DESC_NUM			0
#define BIT_MASK_HI7Q_DESC_NUM				0xfff
#define BIT_HI7Q_DESC_NUM(x)				(((x) & BIT_MASK_HI7Q_DESC_NUM) << BIT_SHIFT_HI7Q_DESC_NUM)
#define BITS_HI7Q_DESC_NUM				(BIT_MASK_HI7Q_DESC_NUM << BIT_SHIFT_HI7Q_DESC_NUM)
#define BIT_CLEAR_HI7Q_DESC_NUM(x)			((x) & (~BITS_HI7Q_DESC_NUM))
#define BIT_GET_HI7Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI7Q_DESC_NUM) & BIT_MASK_HI7Q_DESC_NUM)
#define BIT_SET_HI7Q_DESC_NUM(x, v)			(BIT_CLEAR_HI7Q_DESC_NUM(x) | BIT_HI7Q_DESC_NUM(v))


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI7Q_HW_IDX				BIT(29)
#define BIT_CLR_HI6Q_HW_IDX				BIT(28)
#define BIT_CLR_HI5Q_HW_IDX				BIT(27)
#define BIT_CLR_HI4Q_HW_IDX				BIT(26)
#define BIT_CLR_HI3Q_HW_IDX				BIT(25)
#define BIT_CLR_HI2Q_HW_IDX				BIT(24)
#define BIT_CLR_HI1Q_HW_IDX				BIT(23)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN7DOK					BIT(23)
#define BIT_BCN7DOKM					BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI0Q_HW_IDX				BIT(22)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN6DOK					BIT(22)
#define BIT_BCN6DOKM					BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_BKQ_HW_IDX				BIT(21)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN5DOK					BIT(21)
#define BIT_BCN5DOKM					BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_BEQ_HW_IDX				BIT(20)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN4DOK					BIT(20)
#define BIT_BCN4DOKM					BIT(20)
#define BIT_RX_OVER_RD_ERR				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_VIQ_HW_IDX				BIT(19)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN3DOK					BIT(19)
#define BIT_BCN3DOKM					BIT(19)
#define BIT_RXDMA_STUCK				BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_VOQ_HW_IDX				BIT(18)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN2DOK					BIT(18)
#define BIT_BCN2DOKM					BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_MGQ_HW_IDX				BIT(17)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN1DOK					BIT(17)
#define BIT_BCN1DOKM					BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSFTIMER_HCI			(Offset 0x039C) */


#define BIT_SHIFT_TSFT2_HCI				16
#define BIT_MASK_TSFT2_HCI				0xffff
#define BIT_TSFT2_HCI(x)				(((x) & BIT_MASK_TSFT2_HCI) << BIT_SHIFT_TSFT2_HCI)
#define BITS_TSFT2_HCI					(BIT_MASK_TSFT2_HCI << BIT_SHIFT_TSFT2_HCI)
#define BIT_CLEAR_TSFT2_HCI(x)				((x) & (~BITS_TSFT2_HCI))
#define BIT_GET_TSFT2_HCI(x)				(((x) >> BIT_SHIFT_TSFT2_HCI) & BIT_MASK_TSFT2_HCI)
#define BIT_SET_TSFT2_HCI(x, v)			(BIT_CLEAR_TSFT2_HCI(x) | BIT_TSFT2_HCI(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_RXQ_HW_IDX				BIT(16)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BCN0DOK					BIT(16)
#define BIT_BCN0DOKM					BIT(16)

#define BIT_SHIFT_RX_STATE				16
#define BIT_MASK_RX_STATE				0x7
#define BIT_RX_STATE(x)				(((x) & BIT_MASK_RX_STATE) << BIT_SHIFT_RX_STATE)
#define BITS_RX_STATE					(BIT_MASK_RX_STATE << BIT_SHIFT_RX_STATE)
#define BIT_CLEAR_RX_STATE(x)				((x) & (~BITS_RX_STATE))
#define BIT_GET_RX_STATE(x)				(((x) >> BIT_SHIFT_RX_STATE) & BIT_MASK_RX_STATE)
#define BIT_SET_RX_STATE(x, v)				(BIT_CLEAR_RX_STATE(x) | BIT_RX_STATE(v))

#define BIT_SRST_TX					BIT(15)
#define BIT_M7DOK					BIT(15)
#define BIT_M7DOKM					BIT(15)
#define BIT_TDE_NO_IDLE				BIT(15)
#define BIT_SRST_RX					BIT(14)
#define BIT_M6DOK					BIT(14)
#define BIT_M6DOKM					BIT(14)
#define BIT_TXDMA_STUCK				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI7Q_HOST_IDX				BIT(13)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M5DOK					BIT(13)
#define BIT_M5DOKM					BIT(13)
#define BIT_TDE_FULL_ERR				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI6Q_HOST_IDX				BIT(12)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M4DOK					BIT(12)
#define BIT_M4DOKM					BIT(12)
#define BIT_HD_SIZE_ERR				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI5Q_HOST_IDX				BIT(11)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M3DOK					BIT(11)
#define BIT_M3DOKM					BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI4Q_HOST_IDX				BIT(10)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M2DOK					BIT(10)
#define BIT_M2DOKM					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI3Q_HOST_IDX				BIT(9)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M1DOK					BIT(9)
#define BIT_M1DOKM					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI2Q_HOST_IDX				BIT(8)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_M0DOK					BIT(8)
#define BIT_M0DOKM					BIT(8)

#define BIT_SHIFT_TX_STATE				8
#define BIT_MASK_TX_STATE				0xf
#define BIT_TX_STATE(x)				(((x) & BIT_MASK_TX_STATE) << BIT_SHIFT_TX_STATE)
#define BITS_TX_STATE					(BIT_MASK_TX_STATE << BIT_SHIFT_TX_STATE)
#define BIT_CLEAR_TX_STATE(x)				((x) & (~BITS_TX_STATE))
#define BIT_GET_TX_STATE(x)				(((x) >> BIT_SHIFT_TX_STATE) & BIT_MASK_TX_STATE)
#define BIT_SET_TX_STATE(x, v)				(BIT_CLEAR_TX_STATE(x) | BIT_TX_STATE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_HI1Q_HOST_IDX				BIT(7)
#define BIT_CLR_HI0Q_HOST_IDX				BIT(6)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_MGQDOK					BIT(6)
#define BIT_MGQDOKM					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_BKQ_HOST_IDX				BIT(5)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_BKQDOK					BIT(5)
#define BIT_BKQDOKM					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_BEQ_HOST_IDX				BIT(4)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */


#define BIT_SHIFT_HPS_CLKR				4
#define BIT_MASK_HPS_CLKR				0x3
#define BIT_HPS_CLKR(x)				(((x) & BIT_MASK_HPS_CLKR) << BIT_SHIFT_HPS_CLKR)
#define BITS_HPS_CLKR					(BIT_MASK_HPS_CLKR << BIT_SHIFT_HPS_CLKR)
#define BIT_CLEAR_HPS_CLKR(x)				((x) & (~BITS_HPS_CLKR))
#define BIT_GET_HPS_CLKR(x)				(((x) >> BIT_SHIFT_HPS_CLKR) & BIT_MASK_HPS_CLKR)
#define BIT_SET_HPS_CLKR(x, v)				(BIT_CLEAR_HPS_CLKR(x) | BIT_HPS_CLKR(v))

#define BIT_BEQDOK					BIT(4)
#define BIT_BEQDOKM					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_VIQ_HOST_IDX				BIT(3)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_LX_INT					BIT(3)
#define BIT_VIQDOK					BIT(3)
#define BIT_VIQDOKM					BIT(3)
#define BIT_MST_BUSY					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_VOQ_HOST_IDX				BIT(2)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_VOQDOK					BIT(2)
#define BIT_VOQDOKM					BIT(2)
#define BIT_SLV_BUSY					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_MGQ_HOST_IDX				BIT(1)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_RDUM					BIT(1)
#define BIT_RXDES_UNAVAIL				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSFTIMER_HCI			(Offset 0x039C) */


#define BIT_SHIFT_TSFT1_HCI				0
#define BIT_MASK_TSFT1_HCI				0xffff
#define BIT_TSFT1_HCI(x)				(((x) & BIT_MASK_TSFT1_HCI) << BIT_SHIFT_TSFT1_HCI)
#define BITS_TSFT1_HCI					(BIT_MASK_TSFT1_HCI << BIT_SHIFT_TSFT1_HCI)
#define BIT_CLEAR_TSFT1_HCI(x)				((x) & (~BITS_TSFT1_HCI))
#define BIT_GET_TSFT1_HCI(x)				(((x) >> BIT_SHIFT_TSFT1_HCI) & BIT_MASK_TSFT1_HCI)
#define BIT_SET_TSFT1_HCI(x, v)			(BIT_CLEAR_TSFT1_HCI(x) | BIT_TSFT1_HCI(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_CLR_RXQ_HOST_IDX				BIT(0)

#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BD_RWPTR_CLR			(Offset 0x039C) */

#define BIT_RXDOK					BIT(0)
#define BIT_RXDOKM					BIT(0)
#define BIT_EN_DBG_STUCK				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VOQ_TXBD_IDX			(Offset 0x03A0) */


#define BIT_SHIFT_VOQ_HW_IDX				16
#define BIT_MASK_VOQ_HW_IDX				0xfff
#define BIT_VOQ_HW_IDX(x)				(((x) & BIT_MASK_VOQ_HW_IDX) << BIT_SHIFT_VOQ_HW_IDX)
#define BITS_VOQ_HW_IDX				(BIT_MASK_VOQ_HW_IDX << BIT_SHIFT_VOQ_HW_IDX)
#define BIT_CLEAR_VOQ_HW_IDX(x)			((x) & (~BITS_VOQ_HW_IDX))
#define BIT_GET_VOQ_HW_IDX(x)				(((x) >> BIT_SHIFT_VOQ_HW_IDX) & BIT_MASK_VOQ_HW_IDX)
#define BIT_SET_VOQ_HW_IDX(x, v)			(BIT_CLEAR_VOQ_HW_IDX(x) | BIT_VOQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_TXBD_IDX			(Offset 0x03A0) */


#define BIT_SHIFT_ACH0_HW_IDX				16
#define BIT_MASK_ACH0_HW_IDX				0xfff
#define BIT_ACH0_HW_IDX(x)				(((x) & BIT_MASK_ACH0_HW_IDX) << BIT_SHIFT_ACH0_HW_IDX)
#define BITS_ACH0_HW_IDX				(BIT_MASK_ACH0_HW_IDX << BIT_SHIFT_ACH0_HW_IDX)
#define BIT_CLEAR_ACH0_HW_IDX(x)			((x) & (~BITS_ACH0_HW_IDX))
#define BIT_GET_ACH0_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH0_HW_IDX) & BIT_MASK_ACH0_HW_IDX)
#define BIT_SET_ACH0_HW_IDX(x, v)			(BIT_CLEAR_ACH0_HW_IDX(x) | BIT_ACH0_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VOQ_TXBD_IDX			(Offset 0x03A0) */


#define BIT_SHIFT_VOQ_HOST_IDX				0
#define BIT_MASK_VOQ_HOST_IDX				0xfff
#define BIT_VOQ_HOST_IDX(x)				(((x) & BIT_MASK_VOQ_HOST_IDX) << BIT_SHIFT_VOQ_HOST_IDX)
#define BITS_VOQ_HOST_IDX				(BIT_MASK_VOQ_HOST_IDX << BIT_SHIFT_VOQ_HOST_IDX)
#define BIT_CLEAR_VOQ_HOST_IDX(x)			((x) & (~BITS_VOQ_HOST_IDX))
#define BIT_GET_VOQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_VOQ_HOST_IDX) & BIT_MASK_VOQ_HOST_IDX)
#define BIT_SET_VOQ_HOST_IDX(x, v)			(BIT_CLEAR_VOQ_HOST_IDX(x) | BIT_VOQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH0_TXBD_IDX			(Offset 0x03A0) */


#define BIT_SHIFT_ACH0_HOST_IDX			0
#define BIT_MASK_ACH0_HOST_IDX				0xfff
#define BIT_ACH0_HOST_IDX(x)				(((x) & BIT_MASK_ACH0_HOST_IDX) << BIT_SHIFT_ACH0_HOST_IDX)
#define BITS_ACH0_HOST_IDX				(BIT_MASK_ACH0_HOST_IDX << BIT_SHIFT_ACH0_HOST_IDX)
#define BIT_CLEAR_ACH0_HOST_IDX(x)			((x) & (~BITS_ACH0_HOST_IDX))
#define BIT_GET_ACH0_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH0_HOST_IDX) & BIT_MASK_ACH0_HOST_IDX)
#define BIT_SET_ACH0_HOST_IDX(x, v)			(BIT_CLEAR_ACH0_HOST_IDX(x) | BIT_ACH0_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VIQ_TXBD_IDX			(Offset 0x03A4) */


#define BIT_SHIFT_VIQ_HW_IDX				16
#define BIT_MASK_VIQ_HW_IDX				0xfff
#define BIT_VIQ_HW_IDX(x)				(((x) & BIT_MASK_VIQ_HW_IDX) << BIT_SHIFT_VIQ_HW_IDX)
#define BITS_VIQ_HW_IDX				(BIT_MASK_VIQ_HW_IDX << BIT_SHIFT_VIQ_HW_IDX)
#define BIT_CLEAR_VIQ_HW_IDX(x)			((x) & (~BITS_VIQ_HW_IDX))
#define BIT_GET_VIQ_HW_IDX(x)				(((x) >> BIT_SHIFT_VIQ_HW_IDX) & BIT_MASK_VIQ_HW_IDX)
#define BIT_SET_VIQ_HW_IDX(x, v)			(BIT_CLEAR_VIQ_HW_IDX(x) | BIT_VIQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH1_TXBD_IDX			(Offset 0x03A4) */


#define BIT_SHIFT_ACH1_HW_IDX				16
#define BIT_MASK_ACH1_HW_IDX				0xfff
#define BIT_ACH1_HW_IDX(x)				(((x) & BIT_MASK_ACH1_HW_IDX) << BIT_SHIFT_ACH1_HW_IDX)
#define BITS_ACH1_HW_IDX				(BIT_MASK_ACH1_HW_IDX << BIT_SHIFT_ACH1_HW_IDX)
#define BIT_CLEAR_ACH1_HW_IDX(x)			((x) & (~BITS_ACH1_HW_IDX))
#define BIT_GET_ACH1_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH1_HW_IDX) & BIT_MASK_ACH1_HW_IDX)
#define BIT_SET_ACH1_HW_IDX(x, v)			(BIT_CLEAR_ACH1_HW_IDX(x) | BIT_ACH1_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_VIQ_TXBD_IDX			(Offset 0x03A4) */


#define BIT_SHIFT_VIQ_HOST_IDX				0
#define BIT_MASK_VIQ_HOST_IDX				0xfff
#define BIT_VIQ_HOST_IDX(x)				(((x) & BIT_MASK_VIQ_HOST_IDX) << BIT_SHIFT_VIQ_HOST_IDX)
#define BITS_VIQ_HOST_IDX				(BIT_MASK_VIQ_HOST_IDX << BIT_SHIFT_VIQ_HOST_IDX)
#define BIT_CLEAR_VIQ_HOST_IDX(x)			((x) & (~BITS_VIQ_HOST_IDX))
#define BIT_GET_VIQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_VIQ_HOST_IDX) & BIT_MASK_VIQ_HOST_IDX)
#define BIT_SET_VIQ_HOST_IDX(x, v)			(BIT_CLEAR_VIQ_HOST_IDX(x) | BIT_VIQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH1_TXBD_IDX			(Offset 0x03A4) */


#define BIT_SHIFT_ACH1_HOST_IDX			0
#define BIT_MASK_ACH1_HOST_IDX				0xfff
#define BIT_ACH1_HOST_IDX(x)				(((x) & BIT_MASK_ACH1_HOST_IDX) << BIT_SHIFT_ACH1_HOST_IDX)
#define BITS_ACH1_HOST_IDX				(BIT_MASK_ACH1_HOST_IDX << BIT_SHIFT_ACH1_HOST_IDX)
#define BIT_CLEAR_ACH1_HOST_IDX(x)			((x) & (~BITS_ACH1_HOST_IDX))
#define BIT_GET_ACH1_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH1_HOST_IDX) & BIT_MASK_ACH1_HOST_IDX)
#define BIT_SET_ACH1_HOST_IDX(x, v)			(BIT_CLEAR_ACH1_HOST_IDX(x) | BIT_ACH1_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_IDX			(Offset 0x03A8) */


#define BIT_SHIFT_BEQ_HW_IDX				16
#define BIT_MASK_BEQ_HW_IDX				0xfff
#define BIT_BEQ_HW_IDX(x)				(((x) & BIT_MASK_BEQ_HW_IDX) << BIT_SHIFT_BEQ_HW_IDX)
#define BITS_BEQ_HW_IDX				(BIT_MASK_BEQ_HW_IDX << BIT_SHIFT_BEQ_HW_IDX)
#define BIT_CLEAR_BEQ_HW_IDX(x)			((x) & (~BITS_BEQ_HW_IDX))
#define BIT_GET_BEQ_HW_IDX(x)				(((x) >> BIT_SHIFT_BEQ_HW_IDX) & BIT_MASK_BEQ_HW_IDX)
#define BIT_SET_BEQ_HW_IDX(x, v)			(BIT_CLEAR_BEQ_HW_IDX(x) | BIT_BEQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_TXBD_IDX			(Offset 0x03A8) */


#define BIT_SHIFT_ACH2_HW_IDX				16
#define BIT_MASK_ACH2_HW_IDX				0xfff
#define BIT_ACH2_HW_IDX(x)				(((x) & BIT_MASK_ACH2_HW_IDX) << BIT_SHIFT_ACH2_HW_IDX)
#define BITS_ACH2_HW_IDX				(BIT_MASK_ACH2_HW_IDX << BIT_SHIFT_ACH2_HW_IDX)
#define BIT_CLEAR_ACH2_HW_IDX(x)			((x) & (~BITS_ACH2_HW_IDX))
#define BIT_GET_ACH2_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH2_HW_IDX) & BIT_MASK_ACH2_HW_IDX)
#define BIT_SET_ACH2_HW_IDX(x, v)			(BIT_CLEAR_ACH2_HW_IDX(x) | BIT_ACH2_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BEQ_TXBD_IDX			(Offset 0x03A8) */


#define BIT_SHIFT_BEQ_HOST_IDX				0
#define BIT_MASK_BEQ_HOST_IDX				0xfff
#define BIT_BEQ_HOST_IDX(x)				(((x) & BIT_MASK_BEQ_HOST_IDX) << BIT_SHIFT_BEQ_HOST_IDX)
#define BITS_BEQ_HOST_IDX				(BIT_MASK_BEQ_HOST_IDX << BIT_SHIFT_BEQ_HOST_IDX)
#define BIT_CLEAR_BEQ_HOST_IDX(x)			((x) & (~BITS_BEQ_HOST_IDX))
#define BIT_GET_BEQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_BEQ_HOST_IDX) & BIT_MASK_BEQ_HOST_IDX)
#define BIT_SET_BEQ_HOST_IDX(x, v)			(BIT_CLEAR_BEQ_HOST_IDX(x) | BIT_BEQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH2_TXBD_IDX			(Offset 0x03A8) */


#define BIT_SHIFT_ACH2_HOST_IDX			0
#define BIT_MASK_ACH2_HOST_IDX				0xfff
#define BIT_ACH2_HOST_IDX(x)				(((x) & BIT_MASK_ACH2_HOST_IDX) << BIT_SHIFT_ACH2_HOST_IDX)
#define BITS_ACH2_HOST_IDX				(BIT_MASK_ACH2_HOST_IDX << BIT_SHIFT_ACH2_HOST_IDX)
#define BIT_CLEAR_ACH2_HOST_IDX(x)			((x) & (~BITS_ACH2_HOST_IDX))
#define BIT_GET_ACH2_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH2_HOST_IDX) & BIT_MASK_ACH2_HOST_IDX)
#define BIT_SET_ACH2_HOST_IDX(x, v)			(BIT_CLEAR_ACH2_HOST_IDX(x) | BIT_ACH2_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BKQ_TXBD_IDX			(Offset 0x03AC) */


#define BIT_SHIFT_BKQ_HW_IDX				16
#define BIT_MASK_BKQ_HW_IDX				0xfff
#define BIT_BKQ_HW_IDX(x)				(((x) & BIT_MASK_BKQ_HW_IDX) << BIT_SHIFT_BKQ_HW_IDX)
#define BITS_BKQ_HW_IDX				(BIT_MASK_BKQ_HW_IDX << BIT_SHIFT_BKQ_HW_IDX)
#define BIT_CLEAR_BKQ_HW_IDX(x)			((x) & (~BITS_BKQ_HW_IDX))
#define BIT_GET_BKQ_HW_IDX(x)				(((x) >> BIT_SHIFT_BKQ_HW_IDX) & BIT_MASK_BKQ_HW_IDX)
#define BIT_SET_BKQ_HW_IDX(x, v)			(BIT_CLEAR_BKQ_HW_IDX(x) | BIT_BKQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH3_TXBD_IDX			(Offset 0x03AC) */


#define BIT_SHIFT_ACH3_HW_IDX				16
#define BIT_MASK_ACH3_HW_IDX				0xfff
#define BIT_ACH3_HW_IDX(x)				(((x) & BIT_MASK_ACH3_HW_IDX) << BIT_SHIFT_ACH3_HW_IDX)
#define BITS_ACH3_HW_IDX				(BIT_MASK_ACH3_HW_IDX << BIT_SHIFT_ACH3_HW_IDX)
#define BIT_CLEAR_ACH3_HW_IDX(x)			((x) & (~BITS_ACH3_HW_IDX))
#define BIT_GET_ACH3_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH3_HW_IDX) & BIT_MASK_ACH3_HW_IDX)
#define BIT_SET_ACH3_HW_IDX(x, v)			(BIT_CLEAR_ACH3_HW_IDX(x) | BIT_ACH3_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BKQ_TXBD_IDX			(Offset 0x03AC) */


#define BIT_SHIFT_BKQ_HOST_IDX				0
#define BIT_MASK_BKQ_HOST_IDX				0xfff
#define BIT_BKQ_HOST_IDX(x)				(((x) & BIT_MASK_BKQ_HOST_IDX) << BIT_SHIFT_BKQ_HOST_IDX)
#define BITS_BKQ_HOST_IDX				(BIT_MASK_BKQ_HOST_IDX << BIT_SHIFT_BKQ_HOST_IDX)
#define BIT_CLEAR_BKQ_HOST_IDX(x)			((x) & (~BITS_BKQ_HOST_IDX))
#define BIT_GET_BKQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_BKQ_HOST_IDX) & BIT_MASK_BKQ_HOST_IDX)
#define BIT_SET_BKQ_HOST_IDX(x, v)			(BIT_CLEAR_BKQ_HOST_IDX(x) | BIT_BKQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH3_TXBD_IDX			(Offset 0x03AC) */


#define BIT_SHIFT_ACH3_HOST_IDX			0
#define BIT_MASK_ACH3_HOST_IDX				0xfff
#define BIT_ACH3_HOST_IDX(x)				(((x) & BIT_MASK_ACH3_HOST_IDX) << BIT_SHIFT_ACH3_HOST_IDX)
#define BITS_ACH3_HOST_IDX				(BIT_MASK_ACH3_HOST_IDX << BIT_SHIFT_ACH3_HOST_IDX)
#define BIT_CLEAR_ACH3_HOST_IDX(x)			((x) & (~BITS_ACH3_HOST_IDX))
#define BIT_GET_ACH3_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH3_HOST_IDX) & BIT_MASK_ACH3_HOST_IDX)
#define BIT_SET_ACH3_HOST_IDX(x, v)			(BIT_CLEAR_ACH3_HOST_IDX(x) | BIT_ACH3_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_TXBD_IDX			(Offset 0x03B0) */


#define BIT_SHIFT_MGQ_HW_IDX				16
#define BIT_MASK_MGQ_HW_IDX				0xfff
#define BIT_MGQ_HW_IDX(x)				(((x) & BIT_MASK_MGQ_HW_IDX) << BIT_SHIFT_MGQ_HW_IDX)
#define BITS_MGQ_HW_IDX				(BIT_MASK_MGQ_HW_IDX << BIT_SHIFT_MGQ_HW_IDX)
#define BIT_CLEAR_MGQ_HW_IDX(x)			((x) & (~BITS_MGQ_HW_IDX))
#define BIT_GET_MGQ_HW_IDX(x)				(((x) >> BIT_SHIFT_MGQ_HW_IDX) & BIT_MASK_MGQ_HW_IDX)
#define BIT_SET_MGQ_HW_IDX(x, v)			(BIT_CLEAR_MGQ_HW_IDX(x) | BIT_MGQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0MGQ_TXBD_IDX			(Offset 0x03B0) */


#define BIT_SHIFT_P0MGQ_HW_IDX				16
#define BIT_MASK_P0MGQ_HW_IDX				0xfff
#define BIT_P0MGQ_HW_IDX(x)				(((x) & BIT_MASK_P0MGQ_HW_IDX) << BIT_SHIFT_P0MGQ_HW_IDX)
#define BITS_P0MGQ_HW_IDX				(BIT_MASK_P0MGQ_HW_IDX << BIT_SHIFT_P0MGQ_HW_IDX)
#define BIT_CLEAR_P0MGQ_HW_IDX(x)			((x) & (~BITS_P0MGQ_HW_IDX))
#define BIT_GET_P0MGQ_HW_IDX(x)			(((x) >> BIT_SHIFT_P0MGQ_HW_IDX) & BIT_MASK_P0MGQ_HW_IDX)
#define BIT_SET_P0MGQ_HW_IDX(x, v)			(BIT_CLEAR_P0MGQ_HW_IDX(x) | BIT_P0MGQ_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_TXBD_IDX			(Offset 0x03B0) */


#define BIT_SHIFT_MGQ_HOST_IDX				0
#define BIT_MASK_MGQ_HOST_IDX				0xfff
#define BIT_MGQ_HOST_IDX(x)				(((x) & BIT_MASK_MGQ_HOST_IDX) << BIT_SHIFT_MGQ_HOST_IDX)
#define BITS_MGQ_HOST_IDX				(BIT_MASK_MGQ_HOST_IDX << BIT_SHIFT_MGQ_HOST_IDX)
#define BIT_CLEAR_MGQ_HOST_IDX(x)			((x) & (~BITS_MGQ_HOST_IDX))
#define BIT_GET_MGQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_MGQ_HOST_IDX) & BIT_MASK_MGQ_HOST_IDX)
#define BIT_SET_MGQ_HOST_IDX(x, v)			(BIT_CLEAR_MGQ_HOST_IDX(x) | BIT_MGQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0MGQ_TXBD_IDX			(Offset 0x03B0) */


#define BIT_SHIFT_P0MGQ_HOST_IDX			0
#define BIT_MASK_P0MGQ_HOST_IDX			0xfff
#define BIT_P0MGQ_HOST_IDX(x)				(((x) & BIT_MASK_P0MGQ_HOST_IDX) << BIT_SHIFT_P0MGQ_HOST_IDX)
#define BITS_P0MGQ_HOST_IDX				(BIT_MASK_P0MGQ_HOST_IDX << BIT_SHIFT_P0MGQ_HOST_IDX)
#define BIT_CLEAR_P0MGQ_HOST_IDX(x)			((x) & (~BITS_P0MGQ_HOST_IDX))
#define BIT_GET_P0MGQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0MGQ_HOST_IDX) & BIT_MASK_P0MGQ_HOST_IDX)
#define BIT_SET_P0MGQ_HOST_IDX(x, v)			(BIT_CLEAR_P0MGQ_HOST_IDX(x) | BIT_P0MGQ_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXQ_RXBD_IDX			(Offset 0x03B4) */


#define BIT_SHIFT_RXQ_HW_IDX				16
#define BIT_MASK_RXQ_HW_IDX				0xfff
#define BIT_RXQ_HW_IDX(x)				(((x) & BIT_MASK_RXQ_HW_IDX) << BIT_SHIFT_RXQ_HW_IDX)
#define BITS_RXQ_HW_IDX				(BIT_MASK_RXQ_HW_IDX << BIT_SHIFT_RXQ_HW_IDX)
#define BIT_CLEAR_RXQ_HW_IDX(x)			((x) & (~BITS_RXQ_HW_IDX))
#define BIT_GET_RXQ_HW_IDX(x)				(((x) >> BIT_SHIFT_RXQ_HW_IDX) & BIT_MASK_RXQ_HW_IDX)
#define BIT_SET_RXQ_HW_IDX(x, v)			(BIT_CLEAR_RXQ_HW_IDX(x) | BIT_RXQ_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0RXQ_RXBD_IDX			(Offset 0x03B4) */


#define BIT_SHIFT_P0RXQ_HW_IDX				16
#define BIT_MASK_P0RXQ_HW_IDX				0xfff
#define BIT_P0RXQ_HW_IDX(x)				(((x) & BIT_MASK_P0RXQ_HW_IDX) << BIT_SHIFT_P0RXQ_HW_IDX)
#define BITS_P0RXQ_HW_IDX				(BIT_MASK_P0RXQ_HW_IDX << BIT_SHIFT_P0RXQ_HW_IDX)
#define BIT_CLEAR_P0RXQ_HW_IDX(x)			((x) & (~BITS_P0RXQ_HW_IDX))
#define BIT_GET_P0RXQ_HW_IDX(x)			(((x) >> BIT_SHIFT_P0RXQ_HW_IDX) & BIT_MASK_P0RXQ_HW_IDX)
#define BIT_SET_P0RXQ_HW_IDX(x, v)			(BIT_CLEAR_P0RXQ_HW_IDX(x) | BIT_P0RXQ_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXQ_RXBD_IDX			(Offset 0x03B4) */


#define BIT_SHIFT_RXQ_HOST_IDX				0
#define BIT_MASK_RXQ_HOST_IDX				0xfff
#define BIT_RXQ_HOST_IDX(x)				(((x) & BIT_MASK_RXQ_HOST_IDX) << BIT_SHIFT_RXQ_HOST_IDX)
#define BITS_RXQ_HOST_IDX				(BIT_MASK_RXQ_HOST_IDX << BIT_SHIFT_RXQ_HOST_IDX)
#define BIT_CLEAR_RXQ_HOST_IDX(x)			((x) & (~BITS_RXQ_HOST_IDX))
#define BIT_GET_RXQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_RXQ_HOST_IDX) & BIT_MASK_RXQ_HOST_IDX)
#define BIT_SET_RXQ_HOST_IDX(x, v)			(BIT_CLEAR_RXQ_HOST_IDX(x) | BIT_RXQ_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0RXQ_RXBD_IDX			(Offset 0x03B4) */


#define BIT_SHIFT_P0RXQ_HOST_IDX			0
#define BIT_MASK_P0RXQ_HOST_IDX			0xfff
#define BIT_P0RXQ_HOST_IDX(x)				(((x) & BIT_MASK_P0RXQ_HOST_IDX) << BIT_SHIFT_P0RXQ_HOST_IDX)
#define BITS_P0RXQ_HOST_IDX				(BIT_MASK_P0RXQ_HOST_IDX << BIT_SHIFT_P0RXQ_HOST_IDX)
#define BIT_CLEAR_P0RXQ_HOST_IDX(x)			((x) & (~BITS_P0RXQ_HOST_IDX))
#define BIT_GET_P0RXQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0RXQ_HOST_IDX) & BIT_MASK_P0RXQ_HOST_IDX)
#define BIT_SET_P0RXQ_HOST_IDX(x, v)			(BIT_CLEAR_P0RXQ_HOST_IDX(x) | BIT_P0RXQ_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_IDX			(Offset 0x03B8) */


#define BIT_SHIFT_HI0Q_HW_IDX				16
#define BIT_MASK_HI0Q_HW_IDX				0xfff
#define BIT_HI0Q_HW_IDX(x)				(((x) & BIT_MASK_HI0Q_HW_IDX) << BIT_SHIFT_HI0Q_HW_IDX)
#define BITS_HI0Q_HW_IDX				(BIT_MASK_HI0Q_HW_IDX << BIT_SHIFT_HI0Q_HW_IDX)
#define BIT_CLEAR_HI0Q_HW_IDX(x)			((x) & (~BITS_HI0Q_HW_IDX))
#define BIT_GET_HI0Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI0Q_HW_IDX) & BIT_MASK_HI0Q_HW_IDX)
#define BIT_SET_HI0Q_HW_IDX(x, v)			(BIT_CLEAR_HI0Q_HW_IDX(x) | BIT_HI0Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_TXBD_IDX			(Offset 0x03B8) */


#define BIT_SHIFT_P0HI0Q_HW_IDX			16
#define BIT_MASK_P0HI0Q_HW_IDX				0xfff
#define BIT_P0HI0Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI0Q_HW_IDX) << BIT_SHIFT_P0HI0Q_HW_IDX)
#define BITS_P0HI0Q_HW_IDX				(BIT_MASK_P0HI0Q_HW_IDX << BIT_SHIFT_P0HI0Q_HW_IDX)
#define BIT_CLEAR_P0HI0Q_HW_IDX(x)			((x) & (~BITS_P0HI0Q_HW_IDX))
#define BIT_GET_P0HI0Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI0Q_HW_IDX) & BIT_MASK_P0HI0Q_HW_IDX)
#define BIT_SET_P0HI0Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI0Q_HW_IDX(x) | BIT_P0HI0Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI0Q_TXBD_IDX			(Offset 0x03B8) */


#define BIT_SHIFT_HI0Q_HOST_IDX			0
#define BIT_MASK_HI0Q_HOST_IDX				0xfff
#define BIT_HI0Q_HOST_IDX(x)				(((x) & BIT_MASK_HI0Q_HOST_IDX) << BIT_SHIFT_HI0Q_HOST_IDX)
#define BITS_HI0Q_HOST_IDX				(BIT_MASK_HI0Q_HOST_IDX << BIT_SHIFT_HI0Q_HOST_IDX)
#define BIT_CLEAR_HI0Q_HOST_IDX(x)			((x) & (~BITS_HI0Q_HOST_IDX))
#define BIT_GET_HI0Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI0Q_HOST_IDX) & BIT_MASK_HI0Q_HOST_IDX)
#define BIT_SET_HI0Q_HOST_IDX(x, v)			(BIT_CLEAR_HI0Q_HOST_IDX(x) | BIT_HI0Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI0Q_TXBD_IDX			(Offset 0x03B8) */


#define BIT_SHIFT_P0HI0Q_HOST_IDX			0
#define BIT_MASK_P0HI0Q_HOST_IDX			0xfff
#define BIT_P0HI0Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI0Q_HOST_IDX) << BIT_SHIFT_P0HI0Q_HOST_IDX)
#define BITS_P0HI0Q_HOST_IDX				(BIT_MASK_P0HI0Q_HOST_IDX << BIT_SHIFT_P0HI0Q_HOST_IDX)
#define BIT_CLEAR_P0HI0Q_HOST_IDX(x)			((x) & (~BITS_P0HI0Q_HOST_IDX))
#define BIT_GET_P0HI0Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI0Q_HOST_IDX) & BIT_MASK_P0HI0Q_HOST_IDX)
#define BIT_SET_P0HI0Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI0Q_HOST_IDX(x) | BIT_P0HI0Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI1Q_TXBD_IDX			(Offset 0x03BC) */


#define BIT_SHIFT_HI1Q_HW_IDX				16
#define BIT_MASK_HI1Q_HW_IDX				0xfff
#define BIT_HI1Q_HW_IDX(x)				(((x) & BIT_MASK_HI1Q_HW_IDX) << BIT_SHIFT_HI1Q_HW_IDX)
#define BITS_HI1Q_HW_IDX				(BIT_MASK_HI1Q_HW_IDX << BIT_SHIFT_HI1Q_HW_IDX)
#define BIT_CLEAR_HI1Q_HW_IDX(x)			((x) & (~BITS_HI1Q_HW_IDX))
#define BIT_GET_HI1Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI1Q_HW_IDX) & BIT_MASK_HI1Q_HW_IDX)
#define BIT_SET_HI1Q_HW_IDX(x, v)			(BIT_CLEAR_HI1Q_HW_IDX(x) | BIT_HI1Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI1Q_TXBD_IDX			(Offset 0x03BC) */


#define BIT_SHIFT_P0HI1Q_HW_IDX			16
#define BIT_MASK_P0HI1Q_HW_IDX				0xfff
#define BIT_P0HI1Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI1Q_HW_IDX) << BIT_SHIFT_P0HI1Q_HW_IDX)
#define BITS_P0HI1Q_HW_IDX				(BIT_MASK_P0HI1Q_HW_IDX << BIT_SHIFT_P0HI1Q_HW_IDX)
#define BIT_CLEAR_P0HI1Q_HW_IDX(x)			((x) & (~BITS_P0HI1Q_HW_IDX))
#define BIT_GET_P0HI1Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI1Q_HW_IDX) & BIT_MASK_P0HI1Q_HW_IDX)
#define BIT_SET_P0HI1Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI1Q_HW_IDX(x) | BIT_P0HI1Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI1Q_TXBD_IDX			(Offset 0x03BC) */


#define BIT_SHIFT_HI1Q_HOST_IDX			0
#define BIT_MASK_HI1Q_HOST_IDX				0xfff
#define BIT_HI1Q_HOST_IDX(x)				(((x) & BIT_MASK_HI1Q_HOST_IDX) << BIT_SHIFT_HI1Q_HOST_IDX)
#define BITS_HI1Q_HOST_IDX				(BIT_MASK_HI1Q_HOST_IDX << BIT_SHIFT_HI1Q_HOST_IDX)
#define BIT_CLEAR_HI1Q_HOST_IDX(x)			((x) & (~BITS_HI1Q_HOST_IDX))
#define BIT_GET_HI1Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI1Q_HOST_IDX) & BIT_MASK_HI1Q_HOST_IDX)
#define BIT_SET_HI1Q_HOST_IDX(x, v)			(BIT_CLEAR_HI1Q_HOST_IDX(x) | BIT_HI1Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI1Q_TXBD_IDX			(Offset 0x03BC) */


#define BIT_SHIFT_P0HI1Q_HOST_IDX			0
#define BIT_MASK_P0HI1Q_HOST_IDX			0xfff
#define BIT_P0HI1Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI1Q_HOST_IDX) << BIT_SHIFT_P0HI1Q_HOST_IDX)
#define BITS_P0HI1Q_HOST_IDX				(BIT_MASK_P0HI1Q_HOST_IDX << BIT_SHIFT_P0HI1Q_HOST_IDX)
#define BIT_CLEAR_P0HI1Q_HOST_IDX(x)			((x) & (~BITS_P0HI1Q_HOST_IDX))
#define BIT_GET_P0HI1Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI1Q_HOST_IDX) & BIT_MASK_P0HI1Q_HOST_IDX)
#define BIT_SET_P0HI1Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI1Q_HOST_IDX(x) | BIT_P0HI1Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_IDX			(Offset 0x03C0) */


#define BIT_SHIFT_HI2Q_HW_IDX				16
#define BIT_MASK_HI2Q_HW_IDX				0xfff
#define BIT_HI2Q_HW_IDX(x)				(((x) & BIT_MASK_HI2Q_HW_IDX) << BIT_SHIFT_HI2Q_HW_IDX)
#define BITS_HI2Q_HW_IDX				(BIT_MASK_HI2Q_HW_IDX << BIT_SHIFT_HI2Q_HW_IDX)
#define BIT_CLEAR_HI2Q_HW_IDX(x)			((x) & (~BITS_HI2Q_HW_IDX))
#define BIT_GET_HI2Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI2Q_HW_IDX) & BIT_MASK_HI2Q_HW_IDX)
#define BIT_SET_HI2Q_HW_IDX(x, v)			(BIT_CLEAR_HI2Q_HW_IDX(x) | BIT_HI2Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_TXBD_IDX			(Offset 0x03C0) */


#define BIT_SHIFT_P0HI2Q_HW_IDX			16
#define BIT_MASK_P0HI2Q_HW_IDX				0xfff
#define BIT_P0HI2Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI2Q_HW_IDX) << BIT_SHIFT_P0HI2Q_HW_IDX)
#define BITS_P0HI2Q_HW_IDX				(BIT_MASK_P0HI2Q_HW_IDX << BIT_SHIFT_P0HI2Q_HW_IDX)
#define BIT_CLEAR_P0HI2Q_HW_IDX(x)			((x) & (~BITS_P0HI2Q_HW_IDX))
#define BIT_GET_P0HI2Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI2Q_HW_IDX) & BIT_MASK_P0HI2Q_HW_IDX)
#define BIT_SET_P0HI2Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI2Q_HW_IDX(x) | BIT_P0HI2Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI2Q_TXBD_IDX			(Offset 0x03C0) */


#define BIT_SHIFT_HI2Q_HOST_IDX			0
#define BIT_MASK_HI2Q_HOST_IDX				0xfff
#define BIT_HI2Q_HOST_IDX(x)				(((x) & BIT_MASK_HI2Q_HOST_IDX) << BIT_SHIFT_HI2Q_HOST_IDX)
#define BITS_HI2Q_HOST_IDX				(BIT_MASK_HI2Q_HOST_IDX << BIT_SHIFT_HI2Q_HOST_IDX)
#define BIT_CLEAR_HI2Q_HOST_IDX(x)			((x) & (~BITS_HI2Q_HOST_IDX))
#define BIT_GET_HI2Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI2Q_HOST_IDX) & BIT_MASK_HI2Q_HOST_IDX)
#define BIT_SET_HI2Q_HOST_IDX(x, v)			(BIT_CLEAR_HI2Q_HOST_IDX(x) | BIT_HI2Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI2Q_TXBD_IDX			(Offset 0x03C0) */


#define BIT_SHIFT_P0HI2Q_HOST_IDX			0
#define BIT_MASK_P0HI2Q_HOST_IDX			0xfff
#define BIT_P0HI2Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI2Q_HOST_IDX) << BIT_SHIFT_P0HI2Q_HOST_IDX)
#define BITS_P0HI2Q_HOST_IDX				(BIT_MASK_P0HI2Q_HOST_IDX << BIT_SHIFT_P0HI2Q_HOST_IDX)
#define BIT_CLEAR_P0HI2Q_HOST_IDX(x)			((x) & (~BITS_P0HI2Q_HOST_IDX))
#define BIT_GET_P0HI2Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI2Q_HOST_IDX) & BIT_MASK_P0HI2Q_HOST_IDX)
#define BIT_SET_P0HI2Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI2Q_HOST_IDX(x) | BIT_P0HI2Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI3Q_TXBD_IDX			(Offset 0x03C4) */


#define BIT_SHIFT_HI3Q_HW_IDX				16
#define BIT_MASK_HI3Q_HW_IDX				0xfff
#define BIT_HI3Q_HW_IDX(x)				(((x) & BIT_MASK_HI3Q_HW_IDX) << BIT_SHIFT_HI3Q_HW_IDX)
#define BITS_HI3Q_HW_IDX				(BIT_MASK_HI3Q_HW_IDX << BIT_SHIFT_HI3Q_HW_IDX)
#define BIT_CLEAR_HI3Q_HW_IDX(x)			((x) & (~BITS_HI3Q_HW_IDX))
#define BIT_GET_HI3Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI3Q_HW_IDX) & BIT_MASK_HI3Q_HW_IDX)
#define BIT_SET_HI3Q_HW_IDX(x, v)			(BIT_CLEAR_HI3Q_HW_IDX(x) | BIT_HI3Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI3Q_TXBD_IDX			(Offset 0x03C4) */


#define BIT_SHIFT_P0HI3Q_HW_IDX			16
#define BIT_MASK_P0HI3Q_HW_IDX				0xfff
#define BIT_P0HI3Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI3Q_HW_IDX) << BIT_SHIFT_P0HI3Q_HW_IDX)
#define BITS_P0HI3Q_HW_IDX				(BIT_MASK_P0HI3Q_HW_IDX << BIT_SHIFT_P0HI3Q_HW_IDX)
#define BIT_CLEAR_P0HI3Q_HW_IDX(x)			((x) & (~BITS_P0HI3Q_HW_IDX))
#define BIT_GET_P0HI3Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI3Q_HW_IDX) & BIT_MASK_P0HI3Q_HW_IDX)
#define BIT_SET_P0HI3Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI3Q_HW_IDX(x) | BIT_P0HI3Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI3Q_TXBD_IDX			(Offset 0x03C4) */


#define BIT_SHIFT_HI3Q_HOST_IDX			0
#define BIT_MASK_HI3Q_HOST_IDX				0xfff
#define BIT_HI3Q_HOST_IDX(x)				(((x) & BIT_MASK_HI3Q_HOST_IDX) << BIT_SHIFT_HI3Q_HOST_IDX)
#define BITS_HI3Q_HOST_IDX				(BIT_MASK_HI3Q_HOST_IDX << BIT_SHIFT_HI3Q_HOST_IDX)
#define BIT_CLEAR_HI3Q_HOST_IDX(x)			((x) & (~BITS_HI3Q_HOST_IDX))
#define BIT_GET_HI3Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI3Q_HOST_IDX) & BIT_MASK_HI3Q_HOST_IDX)
#define BIT_SET_HI3Q_HOST_IDX(x, v)			(BIT_CLEAR_HI3Q_HOST_IDX(x) | BIT_HI3Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI3Q_TXBD_IDX			(Offset 0x03C4) */


#define BIT_SHIFT_P0HI3Q_HOST_IDX			0
#define BIT_MASK_P0HI3Q_HOST_IDX			0xfff
#define BIT_P0HI3Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI3Q_HOST_IDX) << BIT_SHIFT_P0HI3Q_HOST_IDX)
#define BITS_P0HI3Q_HOST_IDX				(BIT_MASK_P0HI3Q_HOST_IDX << BIT_SHIFT_P0HI3Q_HOST_IDX)
#define BIT_CLEAR_P0HI3Q_HOST_IDX(x)			((x) & (~BITS_P0HI3Q_HOST_IDX))
#define BIT_GET_P0HI3Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI3Q_HOST_IDX) & BIT_MASK_P0HI3Q_HOST_IDX)
#define BIT_SET_P0HI3Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI3Q_HOST_IDX(x) | BIT_P0HI3Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_IDX			(Offset 0x03C8) */


#define BIT_SHIFT_HI4Q_HW_IDX				16
#define BIT_MASK_HI4Q_HW_IDX				0xfff
#define BIT_HI4Q_HW_IDX(x)				(((x) & BIT_MASK_HI4Q_HW_IDX) << BIT_SHIFT_HI4Q_HW_IDX)
#define BITS_HI4Q_HW_IDX				(BIT_MASK_HI4Q_HW_IDX << BIT_SHIFT_HI4Q_HW_IDX)
#define BIT_CLEAR_HI4Q_HW_IDX(x)			((x) & (~BITS_HI4Q_HW_IDX))
#define BIT_GET_HI4Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI4Q_HW_IDX) & BIT_MASK_HI4Q_HW_IDX)
#define BIT_SET_HI4Q_HW_IDX(x, v)			(BIT_CLEAR_HI4Q_HW_IDX(x) | BIT_HI4Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_TXBD_IDX			(Offset 0x03C8) */


#define BIT_SHIFT_P0HI4Q_HW_IDX			16
#define BIT_MASK_P0HI4Q_HW_IDX				0xfff
#define BIT_P0HI4Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI4Q_HW_IDX) << BIT_SHIFT_P0HI4Q_HW_IDX)
#define BITS_P0HI4Q_HW_IDX				(BIT_MASK_P0HI4Q_HW_IDX << BIT_SHIFT_P0HI4Q_HW_IDX)
#define BIT_CLEAR_P0HI4Q_HW_IDX(x)			((x) & (~BITS_P0HI4Q_HW_IDX))
#define BIT_GET_P0HI4Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI4Q_HW_IDX) & BIT_MASK_P0HI4Q_HW_IDX)
#define BIT_SET_P0HI4Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI4Q_HW_IDX(x) | BIT_P0HI4Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI4Q_TXBD_IDX			(Offset 0x03C8) */


#define BIT_SHIFT_HI4Q_HOST_IDX			0
#define BIT_MASK_HI4Q_HOST_IDX				0xfff
#define BIT_HI4Q_HOST_IDX(x)				(((x) & BIT_MASK_HI4Q_HOST_IDX) << BIT_SHIFT_HI4Q_HOST_IDX)
#define BITS_HI4Q_HOST_IDX				(BIT_MASK_HI4Q_HOST_IDX << BIT_SHIFT_HI4Q_HOST_IDX)
#define BIT_CLEAR_HI4Q_HOST_IDX(x)			((x) & (~BITS_HI4Q_HOST_IDX))
#define BIT_GET_HI4Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI4Q_HOST_IDX) & BIT_MASK_HI4Q_HOST_IDX)
#define BIT_SET_HI4Q_HOST_IDX(x, v)			(BIT_CLEAR_HI4Q_HOST_IDX(x) | BIT_HI4Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI4Q_TXBD_IDX			(Offset 0x03C8) */


#define BIT_SHIFT_P0HI4Q_HOST_IDX			0
#define BIT_MASK_P0HI4Q_HOST_IDX			0xfff
#define BIT_P0HI4Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI4Q_HOST_IDX) << BIT_SHIFT_P0HI4Q_HOST_IDX)
#define BITS_P0HI4Q_HOST_IDX				(BIT_MASK_P0HI4Q_HOST_IDX << BIT_SHIFT_P0HI4Q_HOST_IDX)
#define BIT_CLEAR_P0HI4Q_HOST_IDX(x)			((x) & (~BITS_P0HI4Q_HOST_IDX))
#define BIT_GET_P0HI4Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI4Q_HOST_IDX) & BIT_MASK_P0HI4Q_HOST_IDX)
#define BIT_SET_P0HI4Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI4Q_HOST_IDX(x) | BIT_P0HI4Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI5Q_TXBD_IDX			(Offset 0x03CC) */


#define BIT_SHIFT_HI5Q_HW_IDX				16
#define BIT_MASK_HI5Q_HW_IDX				0xfff
#define BIT_HI5Q_HW_IDX(x)				(((x) & BIT_MASK_HI5Q_HW_IDX) << BIT_SHIFT_HI5Q_HW_IDX)
#define BITS_HI5Q_HW_IDX				(BIT_MASK_HI5Q_HW_IDX << BIT_SHIFT_HI5Q_HW_IDX)
#define BIT_CLEAR_HI5Q_HW_IDX(x)			((x) & (~BITS_HI5Q_HW_IDX))
#define BIT_GET_HI5Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI5Q_HW_IDX) & BIT_MASK_HI5Q_HW_IDX)
#define BIT_SET_HI5Q_HW_IDX(x, v)			(BIT_CLEAR_HI5Q_HW_IDX(x) | BIT_HI5Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI5Q_TXBD_IDX			(Offset 0x03CC) */


#define BIT_SHIFT_P0HI5Q_HW_IDX			16
#define BIT_MASK_P0HI5Q_HW_IDX				0xfff
#define BIT_P0HI5Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI5Q_HW_IDX) << BIT_SHIFT_P0HI5Q_HW_IDX)
#define BITS_P0HI5Q_HW_IDX				(BIT_MASK_P0HI5Q_HW_IDX << BIT_SHIFT_P0HI5Q_HW_IDX)
#define BIT_CLEAR_P0HI5Q_HW_IDX(x)			((x) & (~BITS_P0HI5Q_HW_IDX))
#define BIT_GET_P0HI5Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI5Q_HW_IDX) & BIT_MASK_P0HI5Q_HW_IDX)
#define BIT_SET_P0HI5Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI5Q_HW_IDX(x) | BIT_P0HI5Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI5Q_TXBD_IDX			(Offset 0x03CC) */


#define BIT_SHIFT_HI5Q_HOST_IDX			0
#define BIT_MASK_HI5Q_HOST_IDX				0xfff
#define BIT_HI5Q_HOST_IDX(x)				(((x) & BIT_MASK_HI5Q_HOST_IDX) << BIT_SHIFT_HI5Q_HOST_IDX)
#define BITS_HI5Q_HOST_IDX				(BIT_MASK_HI5Q_HOST_IDX << BIT_SHIFT_HI5Q_HOST_IDX)
#define BIT_CLEAR_HI5Q_HOST_IDX(x)			((x) & (~BITS_HI5Q_HOST_IDX))
#define BIT_GET_HI5Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI5Q_HOST_IDX) & BIT_MASK_HI5Q_HOST_IDX)
#define BIT_SET_HI5Q_HOST_IDX(x, v)			(BIT_CLEAR_HI5Q_HOST_IDX(x) | BIT_HI5Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI5Q_TXBD_IDX			(Offset 0x03CC) */


#define BIT_SHIFT_P0HI5Q_HOST_IDX			0
#define BIT_MASK_P0HI5Q_HOST_IDX			0xfff
#define BIT_P0HI5Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI5Q_HOST_IDX) << BIT_SHIFT_P0HI5Q_HOST_IDX)
#define BITS_P0HI5Q_HOST_IDX				(BIT_MASK_P0HI5Q_HOST_IDX << BIT_SHIFT_P0HI5Q_HOST_IDX)
#define BIT_CLEAR_P0HI5Q_HOST_IDX(x)			((x) & (~BITS_P0HI5Q_HOST_IDX))
#define BIT_GET_P0HI5Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI5Q_HOST_IDX) & BIT_MASK_P0HI5Q_HOST_IDX)
#define BIT_SET_P0HI5Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI5Q_HOST_IDX(x) | BIT_P0HI5Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI6Q_TXBD_IDX			(Offset 0x03D0) */


#define BIT_SHIFT_HI6Q_HW_IDX				16
#define BIT_MASK_HI6Q_HW_IDX				0xfff
#define BIT_HI6Q_HW_IDX(x)				(((x) & BIT_MASK_HI6Q_HW_IDX) << BIT_SHIFT_HI6Q_HW_IDX)
#define BITS_HI6Q_HW_IDX				(BIT_MASK_HI6Q_HW_IDX << BIT_SHIFT_HI6Q_HW_IDX)
#define BIT_CLEAR_HI6Q_HW_IDX(x)			((x) & (~BITS_HI6Q_HW_IDX))
#define BIT_GET_HI6Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI6Q_HW_IDX) & BIT_MASK_HI6Q_HW_IDX)
#define BIT_SET_HI6Q_HW_IDX(x, v)			(BIT_CLEAR_HI6Q_HW_IDX(x) | BIT_HI6Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_TXBD_IDX			(Offset 0x03D0) */


#define BIT_SHIFT_P0HI6Q_HW_IDX			16
#define BIT_MASK_P0HI6Q_HW_IDX				0xfff
#define BIT_P0HI6Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI6Q_HW_IDX) << BIT_SHIFT_P0HI6Q_HW_IDX)
#define BITS_P0HI6Q_HW_IDX				(BIT_MASK_P0HI6Q_HW_IDX << BIT_SHIFT_P0HI6Q_HW_IDX)
#define BIT_CLEAR_P0HI6Q_HW_IDX(x)			((x) & (~BITS_P0HI6Q_HW_IDX))
#define BIT_GET_P0HI6Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI6Q_HW_IDX) & BIT_MASK_P0HI6Q_HW_IDX)
#define BIT_SET_P0HI6Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI6Q_HW_IDX(x) | BIT_P0HI6Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI6Q_TXBD_IDX			(Offset 0x03D0) */


#define BIT_SHIFT_HI6Q_HOST_IDX			0
#define BIT_MASK_HI6Q_HOST_IDX				0xfff
#define BIT_HI6Q_HOST_IDX(x)				(((x) & BIT_MASK_HI6Q_HOST_IDX) << BIT_SHIFT_HI6Q_HOST_IDX)
#define BITS_HI6Q_HOST_IDX				(BIT_MASK_HI6Q_HOST_IDX << BIT_SHIFT_HI6Q_HOST_IDX)
#define BIT_CLEAR_HI6Q_HOST_IDX(x)			((x) & (~BITS_HI6Q_HOST_IDX))
#define BIT_GET_HI6Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI6Q_HOST_IDX) & BIT_MASK_HI6Q_HOST_IDX)
#define BIT_SET_HI6Q_HOST_IDX(x, v)			(BIT_CLEAR_HI6Q_HOST_IDX(x) | BIT_HI6Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI6Q_TXBD_IDX			(Offset 0x03D0) */


#define BIT_SHIFT_P0HI6Q_HOST_IDX			0
#define BIT_MASK_P0HI6Q_HOST_IDX			0xfff
#define BIT_P0HI6Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI6Q_HOST_IDX) << BIT_SHIFT_P0HI6Q_HOST_IDX)
#define BITS_P0HI6Q_HOST_IDX				(BIT_MASK_P0HI6Q_HOST_IDX << BIT_SHIFT_P0HI6Q_HOST_IDX)
#define BIT_CLEAR_P0HI6Q_HOST_IDX(x)			((x) & (~BITS_P0HI6Q_HOST_IDX))
#define BIT_GET_P0HI6Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI6Q_HOST_IDX) & BIT_MASK_P0HI6Q_HOST_IDX)
#define BIT_SET_P0HI6Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI6Q_HOST_IDX(x) | BIT_P0HI6Q_HOST_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI7Q_TXBD_IDX			(Offset 0x03D4) */


#define BIT_SHIFT_HI7Q_HW_IDX				16
#define BIT_MASK_HI7Q_HW_IDX				0xfff
#define BIT_HI7Q_HW_IDX(x)				(((x) & BIT_MASK_HI7Q_HW_IDX) << BIT_SHIFT_HI7Q_HW_IDX)
#define BITS_HI7Q_HW_IDX				(BIT_MASK_HI7Q_HW_IDX << BIT_SHIFT_HI7Q_HW_IDX)
#define BIT_CLEAR_HI7Q_HW_IDX(x)			((x) & (~BITS_HI7Q_HW_IDX))
#define BIT_GET_HI7Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI7Q_HW_IDX) & BIT_MASK_HI7Q_HW_IDX)
#define BIT_SET_HI7Q_HW_IDX(x, v)			(BIT_CLEAR_HI7Q_HW_IDX(x) | BIT_HI7Q_HW_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI7Q_TXBD_IDX			(Offset 0x03D4) */


#define BIT_SHIFT_P0HI7Q_HW_IDX			16
#define BIT_MASK_P0HI7Q_HW_IDX				0xfff
#define BIT_P0HI7Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI7Q_HW_IDX) << BIT_SHIFT_P0HI7Q_HW_IDX)
#define BITS_P0HI7Q_HW_IDX				(BIT_MASK_P0HI7Q_HW_IDX << BIT_SHIFT_P0HI7Q_HW_IDX)
#define BIT_CLEAR_P0HI7Q_HW_IDX(x)			((x) & (~BITS_P0HI7Q_HW_IDX))
#define BIT_GET_P0HI7Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI7Q_HW_IDX) & BIT_MASK_P0HI7Q_HW_IDX)
#define BIT_SET_P0HI7Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI7Q_HW_IDX(x) | BIT_P0HI7Q_HW_IDX(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HI7Q_TXBD_IDX			(Offset 0x03D4) */


#define BIT_SHIFT_HI7Q_HOST_IDX			0
#define BIT_MASK_HI7Q_HOST_IDX				0xfff
#define BIT_HI7Q_HOST_IDX(x)				(((x) & BIT_MASK_HI7Q_HOST_IDX) << BIT_SHIFT_HI7Q_HOST_IDX)
#define BITS_HI7Q_HOST_IDX				(BIT_MASK_HI7Q_HOST_IDX << BIT_SHIFT_HI7Q_HOST_IDX)
#define BIT_CLEAR_HI7Q_HOST_IDX(x)			((x) & (~BITS_HI7Q_HOST_IDX))
#define BIT_GET_HI7Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI7Q_HOST_IDX) & BIT_MASK_HI7Q_HOST_IDX)
#define BIT_SET_HI7Q_HOST_IDX(x, v)			(BIT_CLEAR_HI7Q_HOST_IDX(x) | BIT_HI7Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI7Q_TXBD_IDX			(Offset 0x03D4) */


#define BIT_SHIFT_P0HI7Q_HOST_IDX			0
#define BIT_MASK_P0HI7Q_HOST_IDX			0xfff
#define BIT_P0HI7Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI7Q_HOST_IDX) << BIT_SHIFT_P0HI7Q_HOST_IDX)
#define BITS_P0HI7Q_HOST_IDX				(BIT_MASK_P0HI7Q_HOST_IDX << BIT_SHIFT_P0HI7Q_HOST_IDX)
#define BIT_CLEAR_P0HI7Q_HOST_IDX(x)			((x) & (~BITS_P0HI7Q_HOST_IDX))
#define BIT_GET_P0HI7Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI7Q_HOST_IDX) & BIT_MASK_P0HI7Q_HOST_IDX)
#define BIT_SET_P0HI7Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI7Q_HOST_IDX(x) | BIT_P0HI7Q_HOST_IDX(v))


/* 2 REG_DBGSEL_PCIE_HRPWM1_HCPWM1_V1	(Offset 0x03D8) */

#define BIT_DIS_TXDMA_PRE_V1				BIT(31)
#define BIT_DIS_RXDMA_PRE_V1				BIT(30)

#define BIT_SHIFT_HPS_CLKR_PCIE_V1			28
#define BIT_MASK_HPS_CLKR_PCIE_V1			0x3
#define BIT_HPS_CLKR_PCIE_V1(x)			(((x) & BIT_MASK_HPS_CLKR_PCIE_V1) << BIT_SHIFT_HPS_CLKR_PCIE_V1)
#define BITS_HPS_CLKR_PCIE_V1				(BIT_MASK_HPS_CLKR_PCIE_V1 << BIT_SHIFT_HPS_CLKR_PCIE_V1)
#define BIT_CLEAR_HPS_CLKR_PCIE_V1(x)			((x) & (~BITS_HPS_CLKR_PCIE_V1))
#define BIT_GET_HPS_CLKR_PCIE_V1(x)			(((x) >> BIT_SHIFT_HPS_CLKR_PCIE_V1) & BIT_MASK_HPS_CLKR_PCIE_V1)
#define BIT_SET_HPS_CLKR_PCIE_V1(x, v)			(BIT_CLEAR_HPS_CLKR_PCIE_V1(x) | BIT_HPS_CLKR_PCIE_V1(v))

#define BIT_PCIE_INT_V1				BIT(27)
#define BIT_TXFLAG_EXIT_L1_EN_V1			BIT(26)
#define BIT_EN_RXDMA_ALIGN_V2				BIT(25)
#define BIT_EN_TXDMA_ALIGN_V2				BIT(24)

#define BIT_SHIFT_PCIE_HCPWM_V1			16
#define BIT_MASK_PCIE_HCPWM_V1				0xff
#define BIT_PCIE_HCPWM_V1(x)				(((x) & BIT_MASK_PCIE_HCPWM_V1) << BIT_SHIFT_PCIE_HCPWM_V1)
#define BITS_PCIE_HCPWM_V1				(BIT_MASK_PCIE_HCPWM_V1 << BIT_SHIFT_PCIE_HCPWM_V1)
#define BIT_CLEAR_PCIE_HCPWM_V1(x)			((x) & (~BITS_PCIE_HCPWM_V1))
#define BIT_GET_PCIE_HCPWM_V1(x)			(((x) >> BIT_SHIFT_PCIE_HCPWM_V1) & BIT_MASK_PCIE_HCPWM_V1)
#define BIT_SET_PCIE_HCPWM_V1(x, v)			(BIT_CLEAR_PCIE_HCPWM_V1(x) | BIT_PCIE_HCPWM_V1(v))


#define BIT_SHIFT_PCIE_HRPWM_V1			8
#define BIT_MASK_PCIE_HRPWM_V1				0xff
#define BIT_PCIE_HRPWM_V1(x)				(((x) & BIT_MASK_PCIE_HRPWM_V1) << BIT_SHIFT_PCIE_HRPWM_V1)
#define BITS_PCIE_HRPWM_V1				(BIT_MASK_PCIE_HRPWM_V1 << BIT_SHIFT_PCIE_HRPWM_V1)
#define BIT_CLEAR_PCIE_HRPWM_V1(x)			((x) & (~BITS_PCIE_HRPWM_V1))
#define BIT_GET_PCIE_HRPWM_V1(x)			(((x) >> BIT_SHIFT_PCIE_HRPWM_V1) & BIT_MASK_PCIE_HRPWM_V1)
#define BIT_SET_PCIE_HRPWM_V1(x, v)			(BIT_CLEAR_PCIE_HRPWM_V1(x) | BIT_PCIE_HRPWM_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DBG_SEL_V1				(Offset 0x03D8) */


#define BIT_SHIFT_DBG_SEL				0
#define BIT_MASK_DBG_SEL				0xff
#define BIT_DBG_SEL(x)					(((x) & BIT_MASK_DBG_SEL) << BIT_SHIFT_DBG_SEL)
#define BITS_DBG_SEL					(BIT_MASK_DBG_SEL << BIT_SHIFT_DBG_SEL)
#define BIT_CLEAR_DBG_SEL(x)				((x) & (~BITS_DBG_SEL))
#define BIT_GET_DBG_SEL(x)				(((x) >> BIT_SHIFT_DBG_SEL) & BIT_MASK_DBG_SEL)
#define BIT_SET_DBG_SEL(x, v)				(BIT_CLEAR_DBG_SEL(x) | BIT_DBG_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_HRPWM1_V1			(Offset 0x03D9) */


#define BIT_SHIFT_PCIE_HRPWM				0
#define BIT_MASK_PCIE_HRPWM				0xff
#define BIT_PCIE_HRPWM(x)				(((x) & BIT_MASK_PCIE_HRPWM) << BIT_SHIFT_PCIE_HRPWM)
#define BITS_PCIE_HRPWM				(BIT_MASK_PCIE_HRPWM << BIT_SHIFT_PCIE_HRPWM)
#define BIT_CLEAR_PCIE_HRPWM(x)			((x) & (~BITS_PCIE_HRPWM))
#define BIT_GET_PCIE_HRPWM(x)				(((x) >> BIT_SHIFT_PCIE_HRPWM) & BIT_MASK_PCIE_HRPWM)
#define BIT_SET_PCIE_HRPWM(x, v)			(BIT_CLEAR_PCIE_HRPWM(x) | BIT_PCIE_HRPWM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_HRPWM1_V1			(Offset 0x03D9) */


#define BIT_SHIFT_HCI_HRPWM				0
#define BIT_MASK_HCI_HRPWM				0xff
#define BIT_HCI_HRPWM(x)				(((x) & BIT_MASK_HCI_HRPWM) << BIT_SHIFT_HCI_HRPWM)
#define BITS_HCI_HRPWM					(BIT_MASK_HCI_HRPWM << BIT_SHIFT_HCI_HRPWM)
#define BIT_CLEAR_HCI_HRPWM(x)				((x) & (~BITS_HCI_HRPWM))
#define BIT_GET_HCI_HRPWM(x)				(((x) >> BIT_SHIFT_HCI_HRPWM) & BIT_MASK_HCI_HRPWM)
#define BIT_SET_HCI_HRPWM(x, v)			(BIT_CLEAR_HCI_HRPWM(x) | BIT_HCI_HRPWM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_HCPWM1_V1			(Offset 0x03DA) */


#define BIT_SHIFT_PCIE_HCPWM				0
#define BIT_MASK_PCIE_HCPWM				0xff
#define BIT_PCIE_HCPWM(x)				(((x) & BIT_MASK_PCIE_HCPWM) << BIT_SHIFT_PCIE_HCPWM)
#define BITS_PCIE_HCPWM				(BIT_MASK_PCIE_HCPWM << BIT_SHIFT_PCIE_HCPWM)
#define BIT_CLEAR_PCIE_HCPWM(x)			((x) & (~BITS_PCIE_HCPWM))
#define BIT_GET_PCIE_HCPWM(x)				(((x) >> BIT_SHIFT_PCIE_HCPWM) & BIT_MASK_PCIE_HCPWM)
#define BIT_SET_PCIE_HCPWM(x, v)			(BIT_CLEAR_PCIE_HCPWM(x) | BIT_PCIE_HCPWM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_HCPWM1_V1			(Offset 0x03DA) */


#define BIT_SHIFT_HCI_HCPWM				0
#define BIT_MASK_HCI_HCPWM				0xff
#define BIT_HCI_HCPWM(x)				(((x) & BIT_MASK_HCI_HCPWM) << BIT_SHIFT_HCI_HCPWM)
#define BITS_HCI_HCPWM					(BIT_MASK_HCI_HCPWM << BIT_SHIFT_HCI_HCPWM)
#define BIT_CLEAR_HCI_HCPWM(x)				((x) & (~BITS_HCI_HCPWM))
#define BIT_GET_HCI_HCPWM(x)				(((x) >> BIT_SHIFT_HCI_HCPWM) & BIT_MASK_HCI_HCPWM)
#define BIT_SET_HCI_HCPWM(x, v)			(BIT_CLEAR_HCI_HCPWM(x) | BIT_HCI_HCPWM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */


#define BIT_SHIFT_HPS_CLKR_PCIE			4
#define BIT_MASK_HPS_CLKR_PCIE				0x3
#define BIT_HPS_CLKR_PCIE(x)				(((x) & BIT_MASK_HPS_CLKR_PCIE) << BIT_SHIFT_HPS_CLKR_PCIE)
#define BITS_HPS_CLKR_PCIE				(BIT_MASK_HPS_CLKR_PCIE << BIT_SHIFT_HPS_CLKR_PCIE)
#define BIT_CLEAR_HPS_CLKR_PCIE(x)			((x) & (~BITS_HPS_CLKR_PCIE))
#define BIT_GET_HPS_CLKR_PCIE(x)			(((x) >> BIT_SHIFT_HPS_CLKR_PCIE) & BIT_MASK_HPS_CLKR_PCIE)
#define BIT_SET_HPS_CLKR_PCIE(x, v)			(BIT_CLEAR_HPS_CLKR_PCIE(x) | BIT_HPS_CLKR_PCIE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL2				(Offset 0x03DB) */


#define BIT_SHIFT_HPS_CLKR_HCI				4
#define BIT_MASK_HPS_CLKR_HCI				0x3
#define BIT_HPS_CLKR_HCI(x)				(((x) & BIT_MASK_HPS_CLKR_HCI) << BIT_SHIFT_HPS_CLKR_HCI)
#define BITS_HPS_CLKR_HCI				(BIT_MASK_HPS_CLKR_HCI << BIT_SHIFT_HPS_CLKR_HCI)
#define BIT_CLEAR_HPS_CLKR_HCI(x)			((x) & (~BITS_HPS_CLKR_HCI))
#define BIT_GET_HPS_CLKR_HCI(x)			(((x) >> BIT_SHIFT_HPS_CLKR_HCI) & BIT_MASK_HPS_CLKR_HCI)
#define BIT_SET_HPS_CLKR_HCI(x, v)			(BIT_CLEAR_HPS_CLKR_HCI(x) | BIT_HPS_CLKR_HCI(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */

#define BIT_PCIE_INT					BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_CTRL2				(Offset 0x03DB) */

#define BIT_HCI_INT					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_CTRL2				(Offset 0x03DB) */

#define BIT_EN_RXDMA_ALIGN				BIT(1)
#define BIT_EN_TXDMA_ALIGN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_HRPWM2_HCPWM2_V1		(Offset 0x03DC) */


#define BIT_SHIFT_PCIE_HCPWM2_V1			16
#define BIT_MASK_PCIE_HCPWM2_V1			0xffff
#define BIT_PCIE_HCPWM2_V1(x)				(((x) & BIT_MASK_PCIE_HCPWM2_V1) << BIT_SHIFT_PCIE_HCPWM2_V1)
#define BITS_PCIE_HCPWM2_V1				(BIT_MASK_PCIE_HCPWM2_V1 << BIT_SHIFT_PCIE_HCPWM2_V1)
#define BIT_CLEAR_PCIE_HCPWM2_V1(x)			((x) & (~BITS_PCIE_HCPWM2_V1))
#define BIT_GET_PCIE_HCPWM2_V1(x)			(((x) >> BIT_SHIFT_PCIE_HCPWM2_V1) & BIT_MASK_PCIE_HCPWM2_V1)
#define BIT_SET_PCIE_HCPWM2_V1(x, v)			(BIT_CLEAR_PCIE_HCPWM2_V1(x) | BIT_PCIE_HCPWM2_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_HRPWM2_V1			(Offset 0x03DC) */


#define BIT_SHIFT_PCIE_HRPWM2				0
#define BIT_MASK_PCIE_HRPWM2				0xffff
#define BIT_PCIE_HRPWM2(x)				(((x) & BIT_MASK_PCIE_HRPWM2) << BIT_SHIFT_PCIE_HRPWM2)
#define BITS_PCIE_HRPWM2				(BIT_MASK_PCIE_HRPWM2 << BIT_SHIFT_PCIE_HRPWM2)
#define BIT_CLEAR_PCIE_HRPWM2(x)			((x) & (~BITS_PCIE_HRPWM2))
#define BIT_GET_PCIE_HRPWM2(x)				(((x) >> BIT_SHIFT_PCIE_HRPWM2) & BIT_MASK_PCIE_HRPWM2)
#define BIT_SET_PCIE_HRPWM2(x, v)			(BIT_CLEAR_PCIE_HRPWM2(x) | BIT_PCIE_HRPWM2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_HRPWM2_V1			(Offset 0x03DC) */


#define BIT_SHIFT_HCI_HRPWM2				0
#define BIT_MASK_HCI_HRPWM2				0xffff
#define BIT_HCI_HRPWM2(x)				(((x) & BIT_MASK_HCI_HRPWM2) << BIT_SHIFT_HCI_HRPWM2)
#define BITS_HCI_HRPWM2				(BIT_MASK_HCI_HRPWM2 << BIT_SHIFT_HCI_HRPWM2)
#define BIT_CLEAR_HCI_HRPWM2(x)			((x) & (~BITS_HCI_HRPWM2))
#define BIT_GET_HCI_HRPWM2(x)				(((x) >> BIT_SHIFT_HCI_HRPWM2) & BIT_MASK_HCI_HRPWM2)
#define BIT_SET_HCI_HRPWM2(x, v)			(BIT_CLEAR_HCI_HRPWM2(x) | BIT_HCI_HRPWM2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_HCPWM2_V1			(Offset 0x03DE) */


#define BIT_SHIFT_PCIE_HCPWM2				0
#define BIT_MASK_PCIE_HCPWM2				0xffff
#define BIT_PCIE_HCPWM2(x)				(((x) & BIT_MASK_PCIE_HCPWM2) << BIT_SHIFT_PCIE_HCPWM2)
#define BITS_PCIE_HCPWM2				(BIT_MASK_PCIE_HCPWM2 << BIT_SHIFT_PCIE_HCPWM2)
#define BIT_CLEAR_PCIE_HCPWM2(x)			((x) & (~BITS_PCIE_HCPWM2))
#define BIT_GET_PCIE_HCPWM2(x)				(((x) >> BIT_SHIFT_PCIE_HCPWM2) & BIT_MASK_PCIE_HCPWM2)
#define BIT_SET_PCIE_HCPWM2(x, v)			(BIT_CLEAR_PCIE_HCPWM2(x) | BIT_PCIE_HCPWM2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_HCPWM2_V1			(Offset 0x03DE) */


#define BIT_SHIFT_HCI_HCPWM2				0
#define BIT_MASK_HCI_HCPWM2				0xffff
#define BIT_HCI_HCPWM2(x)				(((x) & BIT_MASK_HCI_HCPWM2) << BIT_SHIFT_HCI_HCPWM2)
#define BITS_HCI_HCPWM2				(BIT_MASK_HCI_HCPWM2 << BIT_SHIFT_HCI_HCPWM2)
#define BIT_CLEAR_HCI_HCPWM2(x)			((x) & (~BITS_HCI_HCPWM2))
#define BIT_GET_HCI_HCPWM2(x)				(((x) >> BIT_SHIFT_HCI_HCPWM2) & BIT_MASK_HCI_HCPWM2)
#define BIT_SET_HCI_HCPWM2(x, v)			(BIT_CLEAR_HCI_HCPWM2(x) | BIT_HCI_HCPWM2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_H2C_MSG_V1			(Offset 0x03E0) */

#define BIT_AC7Q_EMPTY					BIT(7)
#define BIT_AC6Q_EMPTY					BIT(6)
#define BIT_AC5Q_EMPTY					BIT(5)
#define BIT_AC4Q_EMPTY					BIT(4)
#define BIT_AC3Q_EMPTY					BIT(3)
#define BIT_AC2Q_EMPTY					BIT(2)
#define BIT_AC1Q_EMPTY					BIT(1)

#define BIT_SHIFT_DRV2FW_INFO				0
#define BIT_MASK_DRV2FW_INFO				0xffffffffL
#define BIT_DRV2FW_INFO(x)				(((x) & BIT_MASK_DRV2FW_INFO) << BIT_SHIFT_DRV2FW_INFO)
#define BITS_DRV2FW_INFO				(BIT_MASK_DRV2FW_INFO << BIT_SHIFT_DRV2FW_INFO)
#define BIT_CLEAR_DRV2FW_INFO(x)			((x) & (~BITS_DRV2FW_INFO))
#define BIT_GET_DRV2FW_INFO(x)				(((x) >> BIT_SHIFT_DRV2FW_INFO) & BIT_MASK_DRV2FW_INFO)
#define BIT_SET_DRV2FW_INFO(x, v)			(BIT_CLEAR_DRV2FW_INFO(x) | BIT_DRV2FW_INFO(v))

#define BIT_AC0Q_EMPTY					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PCIE_C2H_MSG_V1			(Offset 0x03E4) */


#define BIT_SHIFT_HCI_PCIE_C2H_MSG			0
#define BIT_MASK_HCI_PCIE_C2H_MSG			0xffffffffL
#define BIT_HCI_PCIE_C2H_MSG(x)			(((x) & BIT_MASK_HCI_PCIE_C2H_MSG) << BIT_SHIFT_HCI_PCIE_C2H_MSG)
#define BITS_HCI_PCIE_C2H_MSG				(BIT_MASK_HCI_PCIE_C2H_MSG << BIT_SHIFT_HCI_PCIE_C2H_MSG)
#define BIT_CLEAR_HCI_PCIE_C2H_MSG(x)			((x) & (~BITS_HCI_PCIE_C2H_MSG))
#define BIT_GET_HCI_PCIE_C2H_MSG(x)			(((x) >> BIT_SHIFT_HCI_PCIE_C2H_MSG) & BIT_MASK_HCI_PCIE_C2H_MSG)
#define BIT_SET_HCI_PCIE_C2H_MSG(x, v)			(BIT_CLEAR_HCI_PCIE_C2H_MSG(x) | BIT_HCI_PCIE_C2H_MSG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_C2H_MSG_V1			(Offset 0x03E4) */


#define BIT_SHIFT_HCI_C2H_MSG				0
#define BIT_MASK_HCI_C2H_MSG				0xffffffffL
#define BIT_HCI_C2H_MSG(x)				(((x) & BIT_MASK_HCI_C2H_MSG) << BIT_SHIFT_HCI_C2H_MSG)
#define BITS_HCI_C2H_MSG				(BIT_MASK_HCI_C2H_MSG << BIT_SHIFT_HCI_C2H_MSG)
#define BIT_CLEAR_HCI_C2H_MSG(x)			((x) & (~BITS_HCI_C2H_MSG))
#define BIT_GET_HCI_C2H_MSG(x)				(((x) >> BIT_SHIFT_HCI_C2H_MSG) & BIT_MASK_HCI_C2H_MSG)
#define BIT_SET_HCI_C2H_MSG(x, v)			(BIT_CLEAR_HCI_C2H_MSG(x) | BIT_HCI_C2H_MSG(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DBI_WDATA_V1			(Offset 0x03E8) */


#define BIT_SHIFT_DBI_WDATA				0
#define BIT_MASK_DBI_WDATA				0xffffffffL
#define BIT_DBI_WDATA(x)				(((x) & BIT_MASK_DBI_WDATA) << BIT_SHIFT_DBI_WDATA)
#define BITS_DBI_WDATA					(BIT_MASK_DBI_WDATA << BIT_SHIFT_DBI_WDATA)
#define BIT_CLEAR_DBI_WDATA(x)				((x) & (~BITS_DBI_WDATA))
#define BIT_GET_DBI_WDATA(x)				(((x) >> BIT_SHIFT_DBI_WDATA) & BIT_MASK_DBI_WDATA)
#define BIT_SET_DBI_WDATA(x, v)			(BIT_CLEAR_DBI_WDATA(x) | BIT_DBI_WDATA(v))


/* 2 REG_DBI_RDATA_V1			(Offset 0x03EC) */


#define BIT_SHIFT_DBI_RDATA				0
#define BIT_MASK_DBI_RDATA				0xffffffffL
#define BIT_DBI_RDATA(x)				(((x) & BIT_MASK_DBI_RDATA) << BIT_SHIFT_DBI_RDATA)
#define BITS_DBI_RDATA					(BIT_MASK_DBI_RDATA << BIT_SHIFT_DBI_RDATA)
#define BIT_CLEAR_DBI_RDATA(x)				((x) & (~BITS_DBI_RDATA))
#define BIT_GET_DBI_RDATA(x)				(((x) >> BIT_SHIFT_DBI_RDATA) & BIT_MASK_DBI_RDATA)
#define BIT_SET_DBI_RDATA(x, v)			(BIT_CLEAR_DBI_RDATA(x) | BIT_DBI_RDATA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DBI_FLAG_V1				(Offset 0x03F0) */


#define BIT_SHIFT_LOOPBACK_DBG_SEL			28
#define BIT_MASK_LOOPBACK_DBG_SEL			0xf
#define BIT_LOOPBACK_DBG_SEL(x)			(((x) & BIT_MASK_LOOPBACK_DBG_SEL) << BIT_SHIFT_LOOPBACK_DBG_SEL)
#define BITS_LOOPBACK_DBG_SEL				(BIT_MASK_LOOPBACK_DBG_SEL << BIT_SHIFT_LOOPBACK_DBG_SEL)
#define BIT_CLEAR_LOOPBACK_DBG_SEL(x)			((x) & (~BITS_LOOPBACK_DBG_SEL))
#define BIT_GET_LOOPBACK_DBG_SEL(x)			(((x) >> BIT_SHIFT_LOOPBACK_DBG_SEL) & BIT_MASK_LOOPBACK_DBG_SEL)
#define BIT_SET_LOOPBACK_DBG_SEL(x, v)			(BIT_CLEAR_LOOPBACK_DBG_SEL(x) | BIT_LOOPBACK_DBG_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DBI_FLAG_V1				(Offset 0x03F0) */

#define BIT_EN_STUCK_DBG				BIT(26)
#define BIT_RX_STUCK					BIT(25)
#define BIT_TX_STUCK					BIT(24)
#define BIT_DBI_RFLAG					BIT(17)
#define BIT_DBI_WFLAG					BIT(16)

#define BIT_SHIFT_DBI_WREN				12
#define BIT_MASK_DBI_WREN				0xf
#define BIT_DBI_WREN(x)				(((x) & BIT_MASK_DBI_WREN) << BIT_SHIFT_DBI_WREN)
#define BITS_DBI_WREN					(BIT_MASK_DBI_WREN << BIT_SHIFT_DBI_WREN)
#define BIT_CLEAR_DBI_WREN(x)				((x) & (~BITS_DBI_WREN))
#define BIT_GET_DBI_WREN(x)				(((x) >> BIT_SHIFT_DBI_WREN) & BIT_MASK_DBI_WREN)
#define BIT_SET_DBI_WREN(x, v)				(BIT_CLEAR_DBI_WREN(x) | BIT_DBI_WREN(v))


#define BIT_SHIFT_DBI_ADDR				0
#define BIT_MASK_DBI_ADDR				0xfff
#define BIT_DBI_ADDR(x)				(((x) & BIT_MASK_DBI_ADDR) << BIT_SHIFT_DBI_ADDR)
#define BITS_DBI_ADDR					(BIT_MASK_DBI_ADDR << BIT_SHIFT_DBI_ADDR)
#define BIT_CLEAR_DBI_ADDR(x)				((x) & (~BITS_DBI_ADDR))
#define BIT_GET_DBI_ADDR(x)				(((x) >> BIT_SHIFT_DBI_ADDR) & BIT_MASK_DBI_ADDR)
#define BIT_SET_DBI_ADDR(x, v)				(BIT_CLEAR_DBI_ADDR(x) | BIT_DBI_ADDR(v))


/* 2 REG_MDIO_V1				(Offset 0x03F4) */


#define BIT_SHIFT_MDIO_RDATA				16
#define BIT_MASK_MDIO_RDATA				0xffff
#define BIT_MDIO_RDATA(x)				(((x) & BIT_MASK_MDIO_RDATA) << BIT_SHIFT_MDIO_RDATA)
#define BITS_MDIO_RDATA				(BIT_MASK_MDIO_RDATA << BIT_SHIFT_MDIO_RDATA)
#define BIT_CLEAR_MDIO_RDATA(x)			((x) & (~BITS_MDIO_RDATA))
#define BIT_GET_MDIO_RDATA(x)				(((x) >> BIT_SHIFT_MDIO_RDATA) & BIT_MASK_MDIO_RDATA)
#define BIT_SET_MDIO_RDATA(x, v)			(BIT_CLEAR_MDIO_RDATA(x) | BIT_MDIO_RDATA(v))


#define BIT_SHIFT_MDIO_WDATA				0
#define BIT_MASK_MDIO_WDATA				0xffff
#define BIT_MDIO_WDATA(x)				(((x) & BIT_MASK_MDIO_WDATA) << BIT_SHIFT_MDIO_WDATA)
#define BITS_MDIO_WDATA				(BIT_MASK_MDIO_WDATA << BIT_SHIFT_MDIO_WDATA)
#define BIT_CLEAR_MDIO_WDATA(x)			((x) & (~BITS_MDIO_WDATA))
#define BIT_GET_MDIO_WDATA(x)				(((x) >> BIT_SHIFT_MDIO_WDATA) & BIT_MASK_MDIO_WDATA)
#define BIT_SET_MDIO_WDATA(x, v)			(BIT_CLEAR_MDIO_WDATA(x) | BIT_MDIO_WDATA(v))


#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_BUS_MIX_CFG				(Offset 0x03F8) */


#define BIT_SHIFT_DELAY_TIME				24
#define BIT_MASK_DELAY_TIME				0xff
#define BIT_DELAY_TIME(x)				(((x) & BIT_MASK_DELAY_TIME) << BIT_SHIFT_DELAY_TIME)
#define BITS_DELAY_TIME				(BIT_MASK_DELAY_TIME << BIT_SHIFT_DELAY_TIME)
#define BIT_CLEAR_DELAY_TIME(x)			((x) & (~BITS_DELAY_TIME))
#define BIT_GET_DELAY_TIME(x)				(((x) >> BIT_SHIFT_DELAY_TIME) & BIT_MASK_DELAY_TIME)
#define BIT_SET_DELAY_TIME(x, v)			(BIT_CLEAR_DELAY_TIME(x) | BIT_DELAY_TIME(v))

#define BIT_RX_TIMER_DELAY_EN				BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_MIX_CFG			(Offset 0x03F8) */

#define BIT_EN_WATCH_DOG				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_MDIO2_V1				(Offset 0x03F8) */

#define BIT_ECRC_EN					BIT(7)
#define BIT_MDIO_RFLAG					BIT(6)
#define BIT_MDIO_WFLAG					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_MDIO2_V1				(Offset 0x03F8) */


#define BIT_SHIFT_MDIO_ADDR				0
#define BIT_MASK_MDIO_ADDR				0x1f
#define BIT_MDIO_ADDR(x)				(((x) & BIT_MASK_MDIO_ADDR) << BIT_SHIFT_MDIO_ADDR)
#define BITS_MDIO_ADDR					(BIT_MASK_MDIO_ADDR << BIT_SHIFT_MDIO_ADDR)
#define BIT_CLEAR_MDIO_ADDR(x)				((x) & (~BITS_MDIO_ADDR))
#define BIT_GET_MDIO_ADDR(x)				(((x) >> BIT_SHIFT_MDIO_ADDR) & BIT_MASK_MDIO_ADDR)
#define BIT_SET_MDIO_ADDR(x, v)			(BIT_CLEAR_MDIO_ADDR(x) | BIT_MDIO_ADDR(v))


#define BIT_SHIFT_TXFAIL_DROPCNT			0
#define BIT_MASK_TXFAIL_DROPCNT			0xffff
#define BIT_TXFAIL_DROPCNT(x)				(((x) & BIT_MASK_TXFAIL_DROPCNT) << BIT_SHIFT_TXFAIL_DROPCNT)
#define BITS_TXFAIL_DROPCNT				(BIT_MASK_TXFAIL_DROPCNT << BIT_SHIFT_TXFAIL_DROPCNT)
#define BIT_CLEAR_TXFAIL_DROPCNT(x)			((x) & (~BITS_TXFAIL_DROPCNT))
#define BIT_GET_TXFAIL_DROPCNT(x)			(((x) >> BIT_SHIFT_TXFAIL_DROPCNT) & BIT_MASK_TXFAIL_DROPCNT)
#define BIT_SET_TXFAIL_DROPCNT(x, v)			(BIT_CLEAR_TXFAIL_DROPCNT(x) | BIT_TXFAIL_DROPCNT(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PCIE_MIX_CFG			(Offset 0x03F8) */


#define BIT_SHIFT_MDIO_REG_ADDR_V1			0
#define BIT_MASK_MDIO_REG_ADDR_V1			0x1f
#define BIT_MDIO_REG_ADDR_V1(x)			(((x) & BIT_MASK_MDIO_REG_ADDR_V1) << BIT_SHIFT_MDIO_REG_ADDR_V1)
#define BITS_MDIO_REG_ADDR_V1				(BIT_MASK_MDIO_REG_ADDR_V1 << BIT_SHIFT_MDIO_REG_ADDR_V1)
#define BIT_CLEAR_MDIO_REG_ADDR_V1(x)			((x) & (~BITS_MDIO_REG_ADDR_V1))
#define BIT_GET_MDIO_REG_ADDR_V1(x)			(((x) >> BIT_SHIFT_MDIO_REG_ADDR_V1) & BIT_MASK_MDIO_REG_ADDR_V1)
#define BIT_SET_MDIO_REG_ADDR_V1(x, v)			(BIT_CLEAR_MDIO_REG_ADDR_V1(x) | BIT_MDIO_REG_ADDR_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_RXRST_BACKDOOR				BIT(31)
#define BIT_TXRST_BACKDOOR				BIT(30)
#define BIT_RXIDX_RSTB					BIT(29)
#define BIT_TXIDX_RSTB					BIT(28)
#define BIT_DROP_NEXT_RXPKT				BIT(27)
#define BIT_SHORT_CORE_RST_SEL				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EXCEPT_RESUME_EN				BIT(25)
#define BIT_EXCEPT_RESUME_FLAG				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_ALIGN_MTU					BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EN_ALIGN_MTU				BIT(23)

#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EARLY_TAG_RETURN				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */


#define BIT_SHIFT_LATENCY_CONTROL			21
#define BIT_MASK_LATENCY_CONTROL			0x3
#define BIT_LATENCY_CONTROL(x)				(((x) & BIT_MASK_LATENCY_CONTROL) << BIT_SHIFT_LATENCY_CONTROL)
#define BITS_LATENCY_CONTROL				(BIT_MASK_LATENCY_CONTROL << BIT_SHIFT_LATENCY_CONTROL)
#define BIT_CLEAR_LATENCY_CONTROL(x)			((x) & (~BITS_LATENCY_CONTROL))
#define BIT_GET_LATENCY_CONTROL(x)			(((x) >> BIT_SHIFT_LATENCY_CONTROL) & BIT_MASK_LATENCY_CONTROL)
#define BIT_SET_LATENCY_CONTROL(x, v)			(BIT_CLEAR_LATENCY_CONTROL(x) | BIT_LATENCY_CONTROL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_HOST_GEN2_SUPPORT				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */


#define BIT_SHIFT_TXDMA_ERR_FLAG			16
#define BIT_MASK_TXDMA_ERR_FLAG			0xf
#define BIT_TXDMA_ERR_FLAG(x)				(((x) & BIT_MASK_TXDMA_ERR_FLAG) << BIT_SHIFT_TXDMA_ERR_FLAG)
#define BITS_TXDMA_ERR_FLAG				(BIT_MASK_TXDMA_ERR_FLAG << BIT_SHIFT_TXDMA_ERR_FLAG)
#define BIT_CLEAR_TXDMA_ERR_FLAG(x)			((x) & (~BITS_TXDMA_ERR_FLAG))
#define BIT_GET_TXDMA_ERR_FLAG(x)			(((x) >> BIT_SHIFT_TXDMA_ERR_FLAG) & BIT_MASK_TXDMA_ERR_FLAG)
#define BIT_SET_TXDMA_ERR_FLAG(x, v)			(BIT_CLEAR_TXDMA_ERR_FLAG(x) | BIT_TXDMA_ERR_FLAG(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */


#define BIT_SHIFT_TXDMA_ERR_FLAG_V1			15
#define BIT_MASK_TXDMA_ERR_FLAG_V1			0x1f
#define BIT_TXDMA_ERR_FLAG_V1(x)			(((x) & BIT_MASK_TXDMA_ERR_FLAG_V1) << BIT_SHIFT_TXDMA_ERR_FLAG_V1)
#define BITS_TXDMA_ERR_FLAG_V1				(BIT_MASK_TXDMA_ERR_FLAG_V1 << BIT_SHIFT_TXDMA_ERR_FLAG_V1)
#define BIT_CLEAR_TXDMA_ERR_FLAG_V1(x)			((x) & (~BITS_TXDMA_ERR_FLAG_V1))
#define BIT_GET_TXDMA_ERR_FLAG_V1(x)			(((x) >> BIT_SHIFT_TXDMA_ERR_FLAG_V1) & BIT_MASK_TXDMA_ERR_FLAG_V1)
#define BIT_SET_TXDMA_ERR_FLAG_V1(x, v)		(BIT_CLEAR_TXDMA_ERR_FLAG_V1(x) | BIT_TXDMA_ERR_FLAG_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */


#define BIT_SHIFT_EARLY_MODE_SEL			12
#define BIT_MASK_EARLY_MODE_SEL			0xf
#define BIT_EARLY_MODE_SEL(x)				(((x) & BIT_MASK_EARLY_MODE_SEL) << BIT_SHIFT_EARLY_MODE_SEL)
#define BITS_EARLY_MODE_SEL				(BIT_MASK_EARLY_MODE_SEL << BIT_SHIFT_EARLY_MODE_SEL)
#define BIT_CLEAR_EARLY_MODE_SEL(x)			((x) & (~BITS_EARLY_MODE_SEL))
#define BIT_GET_EARLY_MODE_SEL(x)			(((x) >> BIT_SHIFT_EARLY_MODE_SEL) & BIT_MASK_EARLY_MODE_SEL)
#define BIT_SET_EARLY_MODE_SEL(x, v)			(BIT_CLEAR_EARLY_MODE_SEL(x) | BIT_EARLY_MODE_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EPHY_RX50_EN				BIT(11)

#define BIT_SHIFT_MSI_TIMEOUT_ID_V1			8
#define BIT_MASK_MSI_TIMEOUT_ID_V1			0x7
#define BIT_MSI_TIMEOUT_ID_V1(x)			(((x) & BIT_MASK_MSI_TIMEOUT_ID_V1) << BIT_SHIFT_MSI_TIMEOUT_ID_V1)
#define BITS_MSI_TIMEOUT_ID_V1				(BIT_MASK_MSI_TIMEOUT_ID_V1 << BIT_SHIFT_MSI_TIMEOUT_ID_V1)
#define BIT_CLEAR_MSI_TIMEOUT_ID_V1(x)			((x) & (~BITS_MSI_TIMEOUT_ID_V1))
#define BIT_GET_MSI_TIMEOUT_ID_V1(x)			(((x) >> BIT_SHIFT_MSI_TIMEOUT_ID_V1) & BIT_MASK_MSI_TIMEOUT_ID_V1)
#define BIT_SET_MSI_TIMEOUT_ID_V1(x, v)		(BIT_CLEAR_MSI_TIMEOUT_ID_V1(x) | BIT_MSI_TIMEOUT_ID_V1(v))

#define BIT_RADDR_RD					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EN_MUL_TAG					BIT(6)
#define BIT_EN_EARLY_MODE				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_L0S_LINK_OFF				BIT(4)
#define BIT_ACT_LINK_OFF				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EN_SLOW_MAC_TX				BIT(2)
#define BIT_EN_SLOW_MAC_RX				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HCI_MIX_CFG				(Offset 0x03FC) */

#define BIT_EN_SLOW_MAC_HW				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_QUEUEMACID_Q0_V1			25
#define BIT_MASK_QUEUEMACID_Q0_V1			0x7f
#define BIT_QUEUEMACID_Q0_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q0_V1) << BIT_SHIFT_QUEUEMACID_Q0_V1)
#define BITS_QUEUEMACID_Q0_V1				(BIT_MASK_QUEUEMACID_Q0_V1 << BIT_SHIFT_QUEUEMACID_Q0_V1)
#define BIT_CLEAR_QUEUEMACID_Q0_V1(x)			((x) & (~BITS_QUEUEMACID_Q0_V1))
#define BIT_GET_QUEUEMACID_Q0_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q0_V1) & BIT_MASK_QUEUEMACID_Q0_V1)
#define BIT_SET_QUEUEMACID_Q0_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q0_V1(x) | BIT_QUEUEMACID_Q0_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */


#define BIT_SHIFT_QUEUEMACID				25
#define BIT_MASK_QUEUEMACID				0x7f
#define BIT_QUEUEMACID(x)				(((x) & BIT_MASK_QUEUEMACID) << BIT_SHIFT_QUEUEMACID)
#define BITS_QUEUEMACID				(BIT_MASK_QUEUEMACID << BIT_SHIFT_QUEUEMACID)
#define BIT_CLEAR_QUEUEMACID(x)			((x) & (~BITS_QUEUEMACID))
#define BIT_GET_QUEUEMACID(x)				(((x) >> BIT_SHIFT_QUEUEMACID) & BIT_MASK_QUEUEMACID)
#define BIT_SET_QUEUEMACID(x, v)			(BIT_CLEAR_QUEUEMACID(x) | BIT_QUEUEMACID(v))

#define BIT_DONE					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_QUEUEAC_Q0_V1			23
#define BIT_MASK_QUEUEAC_Q0_V1				0x3
#define BIT_QUEUEAC_Q0_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q0_V1) << BIT_SHIFT_QUEUEAC_Q0_V1)
#define BITS_QUEUEAC_Q0_V1				(BIT_MASK_QUEUEAC_Q0_V1 << BIT_SHIFT_QUEUEAC_Q0_V1)
#define BIT_CLEAR_QUEUEAC_Q0_V1(x)			((x) & (~BITS_QUEUEAC_Q0_V1))
#define BIT_GET_QUEUEAC_Q0_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q0_V1) & BIT_MASK_QUEUEAC_Q0_V1)
#define BIT_SET_QUEUEAC_Q0_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q0_V1(x) | BIT_QUEUEAC_Q0_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */


#define BIT_SHIFT_QUEUEAC				23
#define BIT_MASK_QUEUEAC				0x3
#define BIT_QUEUEAC(x)					(((x) & BIT_MASK_QUEUEAC) << BIT_SHIFT_QUEUEAC)
#define BITS_QUEUEAC					(BIT_MASK_QUEUEAC << BIT_SHIFT_QUEUEAC)
#define BIT_CLEAR_QUEUEAC(x)				((x) & (~BITS_QUEUEAC))
#define BIT_GET_QUEUEAC(x)				(((x) >> BIT_SHIFT_QUEUEAC) & BIT_MASK_QUEUEAC)
#define BIT_SET_QUEUEAC(x, v)				(BIT_CLEAR_QUEUEAC(x) | BIT_QUEUEAC(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */

#define BIT_TIDEMPTY_Q0_V1				BIT(22)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */

#define BIT_TIDEMPTY					BIT(22)

#define BIT_SHIFT_ACCWBITEN				20
#define BIT_MASK_ACCWBITEN				0xf
#define BIT_ACCWBITEN(x)				(((x) & BIT_MASK_ACCWBITEN) << BIT_SHIFT_ACCWBITEN)
#define BITS_ACCWBITEN					(BIT_MASK_ACCWBITEN << BIT_SHIFT_ACCWBITEN)
#define BIT_CLEAR_ACCWBITEN(x)				((x) & (~BITS_ACCWBITEN))
#define BIT_GET_ACCWBITEN(x)				(((x) >> BIT_SHIFT_ACCWBITEN) & BIT_MASK_ACCWBITEN)
#define BIT_SET_ACCWBITEN(x, v)			(BIT_CLEAR_ACCWBITEN(x) | BIT_ACCWBITEN(v))

#define BIT_BCNQ_EMPTY_V1				BIT(19)
#define BIT_HIQ_EMPTY_V1				BIT(18)
#define BIT_MQQ_EMPTY_V1				BIT(17)

#define BIT_SHIFT_COL_CNT				16
#define BIT_MASK_COL_CNT				0xf
#define BIT_COL_CNT(x)					(((x) & BIT_MASK_COL_CNT) << BIT_SHIFT_COL_CNT)
#define BITS_COL_CNT					(BIT_MASK_COL_CNT << BIT_SHIFT_COL_CNT)
#define BIT_CLEAR_COL_CNT(x)				((x) & (~BITS_COL_CNT))
#define BIT_GET_COL_CNT(x)				(((x) >> BIT_SHIFT_COL_CNT) & BIT_MASK_COL_CNT)
#define BIT_SET_COL_CNT(x, v)				(BIT_CLEAR_COL_CNT(x) | BIT_COL_CNT(v))

#define BIT_CPU_MGT_EMPTY				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_TAIL_PKT_Q0_V1			15
#define BIT_MASK_TAIL_PKT_Q0_V1			0xff
#define BIT_TAIL_PKT_Q0_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q0_V1) << BIT_SHIFT_TAIL_PKT_Q0_V1)
#define BITS_TAIL_PKT_Q0_V1				(BIT_MASK_TAIL_PKT_Q0_V1 << BIT_SHIFT_TAIL_PKT_Q0_V1)
#define BIT_CLEAR_TAIL_PKT_Q0_V1(x)			((x) & (~BITS_TAIL_PKT_Q0_V1))
#define BIT_GET_TAIL_PKT_Q0_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q0_V1) & BIT_MASK_TAIL_PKT_Q0_V1)
#define BIT_SET_TAIL_PKT_Q0_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q0_V1(x) | BIT_TAIL_PKT_Q0_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */

#define BIT_AC_MACID_NOT_SAME				BIT(15)

#define BIT_SHIFT_GROUP_TABLE_ID			12
#define BIT_MASK_GROUP_TABLE_ID			0x7
#define BIT_GROUP_TABLE_ID(x)				(((x) & BIT_MASK_GROUP_TABLE_ID) << BIT_SHIFT_GROUP_TABLE_ID)
#define BITS_GROUP_TABLE_ID				(BIT_MASK_GROUP_TABLE_ID << BIT_SHIFT_GROUP_TABLE_ID)
#define BIT_CLEAR_GROUP_TABLE_ID(x)			((x) & (~BITS_GROUP_TABLE_ID))
#define BIT_GET_GROUP_TABLE_ID(x)			(((x) >> BIT_SHIFT_GROUP_TABLE_ID) & BIT_MASK_GROUP_TABLE_ID)
#define BIT_SET_GROUP_TABLE_ID(x, v)			(BIT_CLEAR_GROUP_TABLE_ID(x) | BIT_GROUP_TABLE_ID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_TAIL_PKT_Q0_V2			11
#define BIT_MASK_TAIL_PKT_Q0_V2			0x7ff
#define BIT_TAIL_PKT_Q0_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q0_V2) << BIT_SHIFT_TAIL_PKT_Q0_V2)
#define BITS_TAIL_PKT_Q0_V2				(BIT_MASK_TAIL_PKT_Q0_V2 << BIT_SHIFT_TAIL_PKT_Q0_V2)
#define BIT_CLEAR_TAIL_PKT_Q0_V2(x)			((x) & (~BITS_TAIL_PKT_Q0_V2))
#define BIT_GET_TAIL_PKT_Q0_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q0_V2) & BIT_MASK_TAIL_PKT_Q0_V2)
#define BIT_SET_TAIL_PKT_Q0_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q0_V2(x) | BIT_TAIL_PKT_Q0_V2(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */


#define BIT_SHIFT_TAIL_PKT				11
#define BIT_MASK_TAIL_PKT				0x7ff
#define BIT_TAIL_PKT(x)				(((x) & BIT_MASK_TAIL_PKT) << BIT_SHIFT_TAIL_PKT)
#define BITS_TAIL_PKT					(BIT_MASK_TAIL_PKT << BIT_SHIFT_TAIL_PKT)
#define BIT_CLEAR_TAIL_PKT(x)				((x) & (~BITS_TAIL_PKT))
#define BIT_GET_TAIL_PKT(x)				(((x) >> BIT_SHIFT_TAIL_PKT) & BIT_MASK_TAIL_PKT)
#define BIT_SET_TAIL_PKT(x, v)				(BIT_CLEAR_TAIL_PKT(x) | BIT_TAIL_PKT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_PKT_NUM_Q0_V1			8
#define BIT_MASK_PKT_NUM_Q0_V1				0x7f
#define BIT_PKT_NUM_Q0_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q0_V1) << BIT_SHIFT_PKT_NUM_Q0_V1)
#define BITS_PKT_NUM_Q0_V1				(BIT_MASK_PKT_NUM_Q0_V1 << BIT_SHIFT_PKT_NUM_Q0_V1)
#define BIT_CLEAR_PKT_NUM_Q0_V1(x)			((x) & (~BITS_PKT_NUM_Q0_V1))
#define BIT_GET_PKT_NUM_Q0_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q0_V1) & BIT_MASK_PKT_NUM_Q0_V1)
#define BIT_SET_PKT_NUM_Q0_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q0_V1(x) | BIT_PKT_NUM_Q0_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q0				0
#define BIT_MASK_HEAD_PKT_Q0				0xff
#define BIT_HEAD_PKT_Q0(x)				(((x) & BIT_MASK_HEAD_PKT_Q0) << BIT_SHIFT_HEAD_PKT_Q0)
#define BITS_HEAD_PKT_Q0				(BIT_MASK_HEAD_PKT_Q0 << BIT_SHIFT_HEAD_PKT_Q0)
#define BIT_CLEAR_HEAD_PKT_Q0(x)			((x) & (~BITS_HEAD_PKT_Q0))
#define BIT_GET_HEAD_PKT_Q0(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q0) & BIT_MASK_HEAD_PKT_Q0)
#define BIT_SET_HEAD_PKT_Q0(x, v)			(BIT_CLEAR_HEAD_PKT_Q0(x) | BIT_HEAD_PKT_Q0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q0_INFO				(Offset 0x0400) */


#define BIT_SHIFT_HEAD_PKT_Q0_V1			0
#define BIT_MASK_HEAD_PKT_Q0_V1			0x7ff
#define BIT_HEAD_PKT_Q0_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q0_V1) << BIT_SHIFT_HEAD_PKT_Q0_V1)
#define BITS_HEAD_PKT_Q0_V1				(BIT_MASK_HEAD_PKT_Q0_V1 << BIT_SHIFT_HEAD_PKT_Q0_V1)
#define BIT_CLEAR_HEAD_PKT_Q0_V1(x)			((x) & (~BITS_HEAD_PKT_Q0_V1))
#define BIT_GET_HEAD_PKT_Q0_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q0_V1) & BIT_MASK_HEAD_PKT_Q0_V1)
#define BIT_SET_HEAD_PKT_Q0_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q0_V1(x) | BIT_HEAD_PKT_Q0_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INFO1				(Offset 0x0400) */


#define BIT_SHIFT_HEAD_PKT				0
#define BIT_MASK_HEAD_PKT				0x7ff
#define BIT_HEAD_PKT(x)				(((x) & BIT_MASK_HEAD_PKT) << BIT_SHIFT_HEAD_PKT)
#define BITS_HEAD_PKT					(BIT_MASK_HEAD_PKT << BIT_SHIFT_HEAD_PKT)
#define BIT_CLEAR_HEAD_PKT(x)				((x) & (~BITS_HEAD_PKT))
#define BIT_GET_HEAD_PKT(x)				(((x) >> BIT_SHIFT_HEAD_PKT) & BIT_MASK_HEAD_PKT)
#define BIT_SET_HEAD_PKT(x, v)				(BIT_CLEAR_HEAD_PKT(x) | BIT_HEAD_PKT(v))


#define BIT_SHIFT_PKT_NUMBER				0
#define BIT_MASK_PKT_NUMBER				0xfff
#define BIT_PKT_NUMBER(x)				(((x) & BIT_MASK_PKT_NUMBER) << BIT_SHIFT_PKT_NUMBER)
#define BITS_PKT_NUMBER				(BIT_MASK_PKT_NUMBER << BIT_SHIFT_PKT_NUMBER)
#define BIT_CLEAR_PKT_NUMBER(x)			((x) & (~BITS_PKT_NUMBER))
#define BIT_GET_PKT_NUMBER(x)				(((x) >> BIT_SHIFT_PKT_NUMBER) & BIT_MASK_PKT_NUMBER)
#define BIT_SET_PKT_NUMBER(x, v)			(BIT_CLEAR_PKT_NUMBER(x) | BIT_PKT_NUMBER(v))


#define BIT_SHIFT_ACCW					0
#define BIT_MASK_ACCW					0x3ff
#define BIT_ACCW(x)					(((x) & BIT_MASK_ACCW) << BIT_SHIFT_ACCW)
#define BITS_ACCW					(BIT_MASK_ACCW << BIT_SHIFT_ACCW)
#define BIT_CLEAR_ACCW(x)				((x) & (~BITS_ACCW))
#define BIT_GET_ACCW(x)				(((x) >> BIT_SHIFT_ACCW) & BIT_MASK_ACCW)
#define BIT_SET_ACCW(x, v)				(BIT_CLEAR_ACCW(x) | BIT_ACCW(v))


#define BIT_SHIFT_QINFO_INDEX				0
#define BIT_MASK_QINFO_INDEX				0x1f
#define BIT_QINFO_INDEX(x)				(((x) & BIT_MASK_QINFO_INDEX) << BIT_SHIFT_QINFO_INDEX)
#define BITS_QINFO_INDEX				(BIT_MASK_QINFO_INDEX << BIT_SHIFT_QINFO_INDEX)
#define BIT_CLEAR_QINFO_INDEX(x)			((x) & (~BITS_QINFO_INDEX))
#define BIT_GET_QINFO_INDEX(x)				(((x) >> BIT_SHIFT_QINFO_INDEX) & BIT_MASK_QINFO_INDEX)
#define BIT_SET_QINFO_INDEX(x, v)			(BIT_CLEAR_QINFO_INDEX(x) | BIT_QINFO_INDEX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO0			(Offset 0x0400) */


#define BIT_SHIFT_QINFO0				0
#define BIT_MASK_QINFO0				0xffffffffL
#define BIT_QINFO0(x)					(((x) & BIT_MASK_QINFO0) << BIT_SHIFT_QINFO0)
#define BITS_QINFO0					(BIT_MASK_QINFO0 << BIT_SHIFT_QINFO0)
#define BIT_CLEAR_QINFO0(x)				((x) & (~BITS_QINFO0))
#define BIT_GET_QINFO0(x)				(((x) >> BIT_SHIFT_QINFO0) & BIT_MASK_QINFO0)
#define BIT_SET_QINFO0(x, v)				(BIT_CLEAR_QINFO0(x) | BIT_QINFO0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */


#define BIT_SHIFT_QUEUEMACID_Q1_V1			25
#define BIT_MASK_QUEUEMACID_Q1_V1			0x7f
#define BIT_QUEUEMACID_Q1_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q1_V1) << BIT_SHIFT_QUEUEMACID_Q1_V1)
#define BITS_QUEUEMACID_Q1_V1				(BIT_MASK_QUEUEMACID_Q1_V1 << BIT_SHIFT_QUEUEMACID_Q1_V1)
#define BIT_CLEAR_QUEUEMACID_Q1_V1(x)			((x) & (~BITS_QUEUEMACID_Q1_V1))
#define BIT_GET_QUEUEMACID_Q1_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q1_V1) & BIT_MASK_QUEUEMACID_Q1_V1)
#define BIT_SET_QUEUEMACID_Q1_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q1_V1(x) | BIT_QUEUEMACID_Q1_V1(v))


#define BIT_SHIFT_QUEUEAC_Q1_V1			23
#define BIT_MASK_QUEUEAC_Q1_V1				0x3
#define BIT_QUEUEAC_Q1_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q1_V1) << BIT_SHIFT_QUEUEAC_Q1_V1)
#define BITS_QUEUEAC_Q1_V1				(BIT_MASK_QUEUEAC_Q1_V1 << BIT_SHIFT_QUEUEAC_Q1_V1)
#define BIT_CLEAR_QUEUEAC_Q1_V1(x)			((x) & (~BITS_QUEUEAC_Q1_V1))
#define BIT_GET_QUEUEAC_Q1_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q1_V1) & BIT_MASK_QUEUEAC_Q1_V1)
#define BIT_SET_QUEUEAC_Q1_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q1_V1(x) | BIT_QUEUEAC_Q1_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */

#define BIT_TIDEMPTY_Q1_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */


#define BIT_SHIFT_TAIL_PKT_Q1_V1			15
#define BIT_MASK_TAIL_PKT_Q1_V1			0xff
#define BIT_TAIL_PKT_Q1_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q1_V1) << BIT_SHIFT_TAIL_PKT_Q1_V1)
#define BITS_TAIL_PKT_Q1_V1				(BIT_MASK_TAIL_PKT_Q1_V1 << BIT_SHIFT_TAIL_PKT_Q1_V1)
#define BIT_CLEAR_TAIL_PKT_Q1_V1(x)			((x) & (~BITS_TAIL_PKT_Q1_V1))
#define BIT_GET_TAIL_PKT_Q1_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q1_V1) & BIT_MASK_TAIL_PKT_Q1_V1)
#define BIT_SET_TAIL_PKT_Q1_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q1_V1(x) | BIT_TAIL_PKT_Q1_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */


#define BIT_SHIFT_TAIL_PKT_Q1_V2			11
#define BIT_MASK_TAIL_PKT_Q1_V2			0x7ff
#define BIT_TAIL_PKT_Q1_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q1_V2) << BIT_SHIFT_TAIL_PKT_Q1_V2)
#define BITS_TAIL_PKT_Q1_V2				(BIT_MASK_TAIL_PKT_Q1_V2 << BIT_SHIFT_TAIL_PKT_Q1_V2)
#define BIT_CLEAR_TAIL_PKT_Q1_V2(x)			((x) & (~BITS_TAIL_PKT_Q1_V2))
#define BIT_GET_TAIL_PKT_Q1_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q1_V2) & BIT_MASK_TAIL_PKT_Q1_V2)
#define BIT_SET_TAIL_PKT_Q1_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q1_V2(x) | BIT_TAIL_PKT_Q1_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */


#define BIT_SHIFT_PKT_NUM_Q1_V1			8
#define BIT_MASK_PKT_NUM_Q1_V1				0x7f
#define BIT_PKT_NUM_Q1_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q1_V1) << BIT_SHIFT_PKT_NUM_Q1_V1)
#define BITS_PKT_NUM_Q1_V1				(BIT_MASK_PKT_NUM_Q1_V1 << BIT_SHIFT_PKT_NUM_Q1_V1)
#define BIT_CLEAR_PKT_NUM_Q1_V1(x)			((x) & (~BITS_PKT_NUM_Q1_V1))
#define BIT_GET_PKT_NUM_Q1_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q1_V1) & BIT_MASK_PKT_NUM_Q1_V1)
#define BIT_SET_PKT_NUM_Q1_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q1_V1(x) | BIT_PKT_NUM_Q1_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q1				0
#define BIT_MASK_HEAD_PKT_Q1				0xff
#define BIT_HEAD_PKT_Q1(x)				(((x) & BIT_MASK_HEAD_PKT_Q1) << BIT_SHIFT_HEAD_PKT_Q1)
#define BITS_HEAD_PKT_Q1				(BIT_MASK_HEAD_PKT_Q1 << BIT_SHIFT_HEAD_PKT_Q1)
#define BIT_CLEAR_HEAD_PKT_Q1(x)			((x) & (~BITS_HEAD_PKT_Q1))
#define BIT_GET_HEAD_PKT_Q1(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q1) & BIT_MASK_HEAD_PKT_Q1)
#define BIT_SET_HEAD_PKT_Q1(x, v)			(BIT_CLEAR_HEAD_PKT_Q1(x) | BIT_HEAD_PKT_Q1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q1_INFO				(Offset 0x0404) */


#define BIT_SHIFT_HEAD_PKT_Q1_V1			0
#define BIT_MASK_HEAD_PKT_Q1_V1			0x7ff
#define BIT_HEAD_PKT_Q1_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q1_V1) << BIT_SHIFT_HEAD_PKT_Q1_V1)
#define BITS_HEAD_PKT_Q1_V1				(BIT_MASK_HEAD_PKT_Q1_V1 << BIT_SHIFT_HEAD_PKT_Q1_V1)
#define BIT_CLEAR_HEAD_PKT_Q1_V1(x)			((x) & (~BITS_HEAD_PKT_Q1_V1))
#define BIT_GET_HEAD_PKT_Q1_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q1_V1) & BIT_MASK_HEAD_PKT_Q1_V1)
#define BIT_SET_HEAD_PKT_Q1_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q1_V1(x) | BIT_HEAD_PKT_Q1_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO1			(Offset 0x0404) */


#define BIT_SHIFT_QINFO1				0
#define BIT_MASK_QINFO1				0xffffffffL
#define BIT_QINFO1(x)					(((x) & BIT_MASK_QINFO1) << BIT_SHIFT_QINFO1)
#define BITS_QINFO1					(BIT_MASK_QINFO1 << BIT_SHIFT_QINFO1)
#define BIT_CLEAR_QINFO1(x)				((x) & (~BITS_QINFO1))
#define BIT_GET_QINFO1(x)				(((x) >> BIT_SHIFT_QINFO1) & BIT_MASK_QINFO1)
#define BIT_SET_QINFO1(x, v)				(BIT_CLEAR_QINFO1(x) | BIT_QINFO1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */


#define BIT_SHIFT_QUEUEMACID_Q2_V1			25
#define BIT_MASK_QUEUEMACID_Q2_V1			0x7f
#define BIT_QUEUEMACID_Q2_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q2_V1) << BIT_SHIFT_QUEUEMACID_Q2_V1)
#define BITS_QUEUEMACID_Q2_V1				(BIT_MASK_QUEUEMACID_Q2_V1 << BIT_SHIFT_QUEUEMACID_Q2_V1)
#define BIT_CLEAR_QUEUEMACID_Q2_V1(x)			((x) & (~BITS_QUEUEMACID_Q2_V1))
#define BIT_GET_QUEUEMACID_Q2_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q2_V1) & BIT_MASK_QUEUEMACID_Q2_V1)
#define BIT_SET_QUEUEMACID_Q2_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q2_V1(x) | BIT_QUEUEMACID_Q2_V1(v))


#define BIT_SHIFT_QUEUEAC_Q2_V1			23
#define BIT_MASK_QUEUEAC_Q2_V1				0x3
#define BIT_QUEUEAC_Q2_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q2_V1) << BIT_SHIFT_QUEUEAC_Q2_V1)
#define BITS_QUEUEAC_Q2_V1				(BIT_MASK_QUEUEAC_Q2_V1 << BIT_SHIFT_QUEUEAC_Q2_V1)
#define BIT_CLEAR_QUEUEAC_Q2_V1(x)			((x) & (~BITS_QUEUEAC_Q2_V1))
#define BIT_GET_QUEUEAC_Q2_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q2_V1) & BIT_MASK_QUEUEAC_Q2_V1)
#define BIT_SET_QUEUEAC_Q2_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q2_V1(x) | BIT_QUEUEAC_Q2_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */

#define BIT_TIDEMPTY_Q2_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */


#define BIT_SHIFT_TAIL_PKT_Q2_V1			15
#define BIT_MASK_TAIL_PKT_Q2_V1			0xff
#define BIT_TAIL_PKT_Q2_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q2_V1) << BIT_SHIFT_TAIL_PKT_Q2_V1)
#define BITS_TAIL_PKT_Q2_V1				(BIT_MASK_TAIL_PKT_Q2_V1 << BIT_SHIFT_TAIL_PKT_Q2_V1)
#define BIT_CLEAR_TAIL_PKT_Q2_V1(x)			((x) & (~BITS_TAIL_PKT_Q2_V1))
#define BIT_GET_TAIL_PKT_Q2_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q2_V1) & BIT_MASK_TAIL_PKT_Q2_V1)
#define BIT_SET_TAIL_PKT_Q2_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q2_V1(x) | BIT_TAIL_PKT_Q2_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */


#define BIT_SHIFT_TAIL_PKT_Q2_V2			11
#define BIT_MASK_TAIL_PKT_Q2_V2			0x7ff
#define BIT_TAIL_PKT_Q2_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q2_V2) << BIT_SHIFT_TAIL_PKT_Q2_V2)
#define BITS_TAIL_PKT_Q2_V2				(BIT_MASK_TAIL_PKT_Q2_V2 << BIT_SHIFT_TAIL_PKT_Q2_V2)
#define BIT_CLEAR_TAIL_PKT_Q2_V2(x)			((x) & (~BITS_TAIL_PKT_Q2_V2))
#define BIT_GET_TAIL_PKT_Q2_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q2_V2) & BIT_MASK_TAIL_PKT_Q2_V2)
#define BIT_SET_TAIL_PKT_Q2_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q2_V2(x) | BIT_TAIL_PKT_Q2_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */


#define BIT_SHIFT_PKT_NUM_Q2_V1			8
#define BIT_MASK_PKT_NUM_Q2_V1				0x7f
#define BIT_PKT_NUM_Q2_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q2_V1) << BIT_SHIFT_PKT_NUM_Q2_V1)
#define BITS_PKT_NUM_Q2_V1				(BIT_MASK_PKT_NUM_Q2_V1 << BIT_SHIFT_PKT_NUM_Q2_V1)
#define BIT_CLEAR_PKT_NUM_Q2_V1(x)			((x) & (~BITS_PKT_NUM_Q2_V1))
#define BIT_GET_PKT_NUM_Q2_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q2_V1) & BIT_MASK_PKT_NUM_Q2_V1)
#define BIT_SET_PKT_NUM_Q2_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q2_V1(x) | BIT_PKT_NUM_Q2_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q2				0
#define BIT_MASK_HEAD_PKT_Q2				0xff
#define BIT_HEAD_PKT_Q2(x)				(((x) & BIT_MASK_HEAD_PKT_Q2) << BIT_SHIFT_HEAD_PKT_Q2)
#define BITS_HEAD_PKT_Q2				(BIT_MASK_HEAD_PKT_Q2 << BIT_SHIFT_HEAD_PKT_Q2)
#define BIT_CLEAR_HEAD_PKT_Q2(x)			((x) & (~BITS_HEAD_PKT_Q2))
#define BIT_GET_HEAD_PKT_Q2(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q2) & BIT_MASK_HEAD_PKT_Q2)
#define BIT_SET_HEAD_PKT_Q2(x, v)			(BIT_CLEAR_HEAD_PKT_Q2(x) | BIT_HEAD_PKT_Q2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q2_INFO				(Offset 0x0408) */


#define BIT_SHIFT_HEAD_PKT_Q2_V1			0
#define BIT_MASK_HEAD_PKT_Q2_V1			0x7ff
#define BIT_HEAD_PKT_Q2_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q2_V1) << BIT_SHIFT_HEAD_PKT_Q2_V1)
#define BITS_HEAD_PKT_Q2_V1				(BIT_MASK_HEAD_PKT_Q2_V1 << BIT_SHIFT_HEAD_PKT_Q2_V1)
#define BIT_CLEAR_HEAD_PKT_Q2_V1(x)			((x) & (~BITS_HEAD_PKT_Q2_V1))
#define BIT_GET_HEAD_PKT_Q2_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q2_V1) & BIT_MASK_HEAD_PKT_Q2_V1)
#define BIT_SET_HEAD_PKT_Q2_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q2_V1(x) | BIT_HEAD_PKT_Q2_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO2			(Offset 0x0408) */


#define BIT_SHIFT_QINFO2				0
#define BIT_MASK_QINFO2				0xffffffffL
#define BIT_QINFO2(x)					(((x) & BIT_MASK_QINFO2) << BIT_SHIFT_QINFO2)
#define BITS_QINFO2					(BIT_MASK_QINFO2 << BIT_SHIFT_QINFO2)
#define BIT_CLEAR_QINFO2(x)				((x) & (~BITS_QINFO2))
#define BIT_GET_QINFO2(x)				(((x) >> BIT_SHIFT_QINFO2) & BIT_MASK_QINFO2)
#define BIT_SET_QINFO2(x, v)				(BIT_CLEAR_QINFO2(x) | BIT_QINFO2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */


#define BIT_SHIFT_QUEUEMACID_Q3_V1			25
#define BIT_MASK_QUEUEMACID_Q3_V1			0x7f
#define BIT_QUEUEMACID_Q3_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q3_V1) << BIT_SHIFT_QUEUEMACID_Q3_V1)
#define BITS_QUEUEMACID_Q3_V1				(BIT_MASK_QUEUEMACID_Q3_V1 << BIT_SHIFT_QUEUEMACID_Q3_V1)
#define BIT_CLEAR_QUEUEMACID_Q3_V1(x)			((x) & (~BITS_QUEUEMACID_Q3_V1))
#define BIT_GET_QUEUEMACID_Q3_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q3_V1) & BIT_MASK_QUEUEMACID_Q3_V1)
#define BIT_SET_QUEUEMACID_Q3_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q3_V1(x) | BIT_QUEUEMACID_Q3_V1(v))


#define BIT_SHIFT_QUEUEAC_Q3_V1			23
#define BIT_MASK_QUEUEAC_Q3_V1				0x3
#define BIT_QUEUEAC_Q3_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q3_V1) << BIT_SHIFT_QUEUEAC_Q3_V1)
#define BITS_QUEUEAC_Q3_V1				(BIT_MASK_QUEUEAC_Q3_V1 << BIT_SHIFT_QUEUEAC_Q3_V1)
#define BIT_CLEAR_QUEUEAC_Q3_V1(x)			((x) & (~BITS_QUEUEAC_Q3_V1))
#define BIT_GET_QUEUEAC_Q3_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q3_V1) & BIT_MASK_QUEUEAC_Q3_V1)
#define BIT_SET_QUEUEAC_Q3_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q3_V1(x) | BIT_QUEUEAC_Q3_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */

#define BIT_TIDEMPTY_Q3_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */


#define BIT_SHIFT_TAIL_PKT_Q3_V1			15
#define BIT_MASK_TAIL_PKT_Q3_V1			0xff
#define BIT_TAIL_PKT_Q3_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q3_V1) << BIT_SHIFT_TAIL_PKT_Q3_V1)
#define BITS_TAIL_PKT_Q3_V1				(BIT_MASK_TAIL_PKT_Q3_V1 << BIT_SHIFT_TAIL_PKT_Q3_V1)
#define BIT_CLEAR_TAIL_PKT_Q3_V1(x)			((x) & (~BITS_TAIL_PKT_Q3_V1))
#define BIT_GET_TAIL_PKT_Q3_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q3_V1) & BIT_MASK_TAIL_PKT_Q3_V1)
#define BIT_SET_TAIL_PKT_Q3_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q3_V1(x) | BIT_TAIL_PKT_Q3_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */


#define BIT_SHIFT_TAIL_PKT_Q3_V2			11
#define BIT_MASK_TAIL_PKT_Q3_V2			0x7ff
#define BIT_TAIL_PKT_Q3_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q3_V2) << BIT_SHIFT_TAIL_PKT_Q3_V2)
#define BITS_TAIL_PKT_Q3_V2				(BIT_MASK_TAIL_PKT_Q3_V2 << BIT_SHIFT_TAIL_PKT_Q3_V2)
#define BIT_CLEAR_TAIL_PKT_Q3_V2(x)			((x) & (~BITS_TAIL_PKT_Q3_V2))
#define BIT_GET_TAIL_PKT_Q3_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q3_V2) & BIT_MASK_TAIL_PKT_Q3_V2)
#define BIT_SET_TAIL_PKT_Q3_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q3_V2(x) | BIT_TAIL_PKT_Q3_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */


#define BIT_SHIFT_PKT_NUM_Q3_V1			8
#define BIT_MASK_PKT_NUM_Q3_V1				0x7f
#define BIT_PKT_NUM_Q3_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q3_V1) << BIT_SHIFT_PKT_NUM_Q3_V1)
#define BITS_PKT_NUM_Q3_V1				(BIT_MASK_PKT_NUM_Q3_V1 << BIT_SHIFT_PKT_NUM_Q3_V1)
#define BIT_CLEAR_PKT_NUM_Q3_V1(x)			((x) & (~BITS_PKT_NUM_Q3_V1))
#define BIT_GET_PKT_NUM_Q3_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q3_V1) & BIT_MASK_PKT_NUM_Q3_V1)
#define BIT_SET_PKT_NUM_Q3_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q3_V1(x) | BIT_PKT_NUM_Q3_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q3				0
#define BIT_MASK_HEAD_PKT_Q3				0xff
#define BIT_HEAD_PKT_Q3(x)				(((x) & BIT_MASK_HEAD_PKT_Q3) << BIT_SHIFT_HEAD_PKT_Q3)
#define BITS_HEAD_PKT_Q3				(BIT_MASK_HEAD_PKT_Q3 << BIT_SHIFT_HEAD_PKT_Q3)
#define BIT_CLEAR_HEAD_PKT_Q3(x)			((x) & (~BITS_HEAD_PKT_Q3))
#define BIT_GET_HEAD_PKT_Q3(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q3) & BIT_MASK_HEAD_PKT_Q3)
#define BIT_SET_HEAD_PKT_Q3(x, v)			(BIT_CLEAR_HEAD_PKT_Q3(x) | BIT_HEAD_PKT_Q3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q3_INFO				(Offset 0x040C) */


#define BIT_SHIFT_HEAD_PKT_Q3_V1			0
#define BIT_MASK_HEAD_PKT_Q3_V1			0x7ff
#define BIT_HEAD_PKT_Q3_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q3_V1) << BIT_SHIFT_HEAD_PKT_Q3_V1)
#define BITS_HEAD_PKT_Q3_V1				(BIT_MASK_HEAD_PKT_Q3_V1 << BIT_SHIFT_HEAD_PKT_Q3_V1)
#define BIT_CLEAR_HEAD_PKT_Q3_V1(x)			((x) & (~BITS_HEAD_PKT_Q3_V1))
#define BIT_GET_HEAD_PKT_Q3_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q3_V1) & BIT_MASK_HEAD_PKT_Q3_V1)
#define BIT_SET_HEAD_PKT_Q3_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q3_V1(x) | BIT_HEAD_PKT_Q3_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO3			(Offset 0x040C) */


#define BIT_SHIFT_QINFO3				0
#define BIT_MASK_QINFO3				0xffffffffL
#define BIT_QINFO3(x)					(((x) & BIT_MASK_QINFO3) << BIT_SHIFT_QINFO3)
#define BITS_QINFO3					(BIT_MASK_QINFO3 << BIT_SHIFT_QINFO3)
#define BIT_CLEAR_QINFO3(x)				((x) & (~BITS_QINFO3))
#define BIT_GET_QINFO3(x)				(((x) >> BIT_SHIFT_QINFO3) & BIT_MASK_QINFO3)
#define BIT_SET_QINFO3(x, v)				(BIT_CLEAR_QINFO3(x) | BIT_QINFO3(v))


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_FWCMDQ_EMPTY				BIT(31)
#define BIT_MGQ_CPU_EMPTY_V1				BIT(30)
#define BIT_BCNQ_EMPTY_EXTP0				BIT(29)
#define BIT_BCNQ_EMPTY_PORT4				BIT(28)
#define BIT_BCNQ_EMPTY_PORT3				BIT(27)
#define BIT_BCNQ_EMPTY_PORT2				BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_QUEUEMACID_MGQ_V1			25
#define BIT_MASK_QUEUEMACID_MGQ_V1			0x7f
#define BIT_QUEUEMACID_MGQ_V1(x)			(((x) & BIT_MASK_QUEUEMACID_MGQ_V1) << BIT_SHIFT_QUEUEMACID_MGQ_V1)
#define BITS_QUEUEMACID_MGQ_V1				(BIT_MASK_QUEUEMACID_MGQ_V1 << BIT_SHIFT_QUEUEMACID_MGQ_V1)
#define BIT_CLEAR_QUEUEMACID_MGQ_V1(x)			((x) & (~BITS_QUEUEMACID_MGQ_V1))
#define BIT_GET_QUEUEMACID_MGQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_MGQ_V1) & BIT_MASK_QUEUEMACID_MGQ_V1)
#define BIT_SET_QUEUEMACID_MGQ_V1(x, v)		(BIT_CLEAR_QUEUEMACID_MGQ_V1(x) | BIT_QUEUEMACID_MGQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_BCNQ_EMPTY_PORT1				BIT(25)
#define BIT_BCNQ_EMPTY_PORT0				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_QUEUEAC_MGQ_V1			23
#define BIT_MASK_QUEUEAC_MGQ_V1			0x3
#define BIT_QUEUEAC_MGQ_V1(x)				(((x) & BIT_MASK_QUEUEAC_MGQ_V1) << BIT_SHIFT_QUEUEAC_MGQ_V1)
#define BITS_QUEUEAC_MGQ_V1				(BIT_MASK_QUEUEAC_MGQ_V1 << BIT_SHIFT_QUEUEAC_MGQ_V1)
#define BIT_CLEAR_QUEUEAC_MGQ_V1(x)			((x) & (~BITS_QUEUEAC_MGQ_V1))
#define BIT_GET_QUEUEAC_MGQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_MGQ_V1) & BIT_MASK_QUEUEAC_MGQ_V1)
#define BIT_SET_QUEUEAC_MGQ_V1(x, v)			(BIT_CLEAR_QUEUEAC_MGQ_V1(x) | BIT_QUEUEAC_MGQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_HQQ_EMPTY_V1				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */

#define BIT_TIDEMPTY_MGQ_V1				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_MQQ_EMPTY_V2				BIT(22)
#define BIT_S1_EMPTY					BIT(21)
#define BIT_S0_EMPTY					BIT(20)
#define BIT_AC19Q_EMPTY				BIT(19)
#define BIT_AC18Q_EMPTY				BIT(18)
#define BIT_AC17Q_EMPTY				BIT(17)
#define BIT_AC16Q_EMPTY				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_TAIL_PKT_MGQ_V1			15
#define BIT_MASK_TAIL_PKT_MGQ_V1			0xff
#define BIT_TAIL_PKT_MGQ_V1(x)				(((x) & BIT_MASK_TAIL_PKT_MGQ_V1) << BIT_SHIFT_TAIL_PKT_MGQ_V1)
#define BITS_TAIL_PKT_MGQ_V1				(BIT_MASK_TAIL_PKT_MGQ_V1 << BIT_SHIFT_TAIL_PKT_MGQ_V1)
#define BIT_CLEAR_TAIL_PKT_MGQ_V1(x)			((x) & (~BITS_TAIL_PKT_MGQ_V1))
#define BIT_GET_TAIL_PKT_MGQ_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V1) & BIT_MASK_TAIL_PKT_MGQ_V1)
#define BIT_SET_TAIL_PKT_MGQ_V1(x, v)			(BIT_CLEAR_TAIL_PKT_MGQ_V1(x) | BIT_TAIL_PKT_MGQ_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_AC15Q_EMPTY				BIT(15)
#define BIT_AC14Q_EMPTY				BIT(14)
#define BIT_AC13Q_EMPTY				BIT(13)
#define BIT_AC12Q_EMPTY				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_TAIL_PKT_MGQ_V2			11
#define BIT_MASK_TAIL_PKT_MGQ_V2			0x7ff
#define BIT_TAIL_PKT_MGQ_V2(x)				(((x) & BIT_MASK_TAIL_PKT_MGQ_V2) << BIT_SHIFT_TAIL_PKT_MGQ_V2)
#define BITS_TAIL_PKT_MGQ_V2				(BIT_MASK_TAIL_PKT_MGQ_V2 << BIT_SHIFT_TAIL_PKT_MGQ_V2)
#define BIT_CLEAR_TAIL_PKT_MGQ_V2(x)			((x) & (~BITS_TAIL_PKT_MGQ_V2))
#define BIT_GET_TAIL_PKT_MGQ_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_MGQ_V2) & BIT_MASK_TAIL_PKT_MGQ_V2)
#define BIT_SET_TAIL_PKT_MGQ_V2(x, v)			(BIT_CLEAR_TAIL_PKT_MGQ_V2(x) | BIT_TAIL_PKT_MGQ_V2(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_AC11Q_EMPTY				BIT(11)
#define BIT_AC10Q_EMPTY				BIT(10)
#define BIT_AC9Q_EMPTY					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_PKT_NUM_MGQ_V1			8
#define BIT_MASK_PKT_NUM_MGQ_V1			0x7f
#define BIT_PKT_NUM_MGQ_V1(x)				(((x) & BIT_MASK_PKT_NUM_MGQ_V1) << BIT_SHIFT_PKT_NUM_MGQ_V1)
#define BITS_PKT_NUM_MGQ_V1				(BIT_MASK_PKT_NUM_MGQ_V1 << BIT_SHIFT_PKT_NUM_MGQ_V1)
#define BIT_CLEAR_PKT_NUM_MGQ_V1(x)			((x) & (~BITS_PKT_NUM_MGQ_V1))
#define BIT_GET_PKT_NUM_MGQ_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_MGQ_V1) & BIT_MASK_PKT_NUM_MGQ_V1)
#define BIT_SET_PKT_NUM_MGQ_V1(x, v)			(BIT_CLEAR_PKT_NUM_MGQ_V1(x) | BIT_PKT_NUM_MGQ_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_INFO_EMPTY		(Offset 0x0410) */

#define BIT_AC8Q_EMPTY					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_HEAD_PKT_MGQ				0
#define BIT_MASK_HEAD_PKT_MGQ				0xff
#define BIT_HEAD_PKT_MGQ(x)				(((x) & BIT_MASK_HEAD_PKT_MGQ) << BIT_SHIFT_HEAD_PKT_MGQ)
#define BITS_HEAD_PKT_MGQ				(BIT_MASK_HEAD_PKT_MGQ << BIT_SHIFT_HEAD_PKT_MGQ)
#define BIT_CLEAR_HEAD_PKT_MGQ(x)			((x) & (~BITS_HEAD_PKT_MGQ))
#define BIT_GET_HEAD_PKT_MGQ(x)			(((x) >> BIT_SHIFT_HEAD_PKT_MGQ) & BIT_MASK_HEAD_PKT_MGQ)
#define BIT_SET_HEAD_PKT_MGQ(x, v)			(BIT_CLEAR_HEAD_PKT_MGQ(x) | BIT_HEAD_PKT_MGQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGQ_INFO				(Offset 0x0410) */


#define BIT_SHIFT_HEAD_PKT_MGQ_V1			0
#define BIT_MASK_HEAD_PKT_MGQ_V1			0x7ff
#define BIT_HEAD_PKT_MGQ_V1(x)				(((x) & BIT_MASK_HEAD_PKT_MGQ_V1) << BIT_SHIFT_HEAD_PKT_MGQ_V1)
#define BITS_HEAD_PKT_MGQ_V1				(BIT_MASK_HEAD_PKT_MGQ_V1 << BIT_SHIFT_HEAD_PKT_MGQ_V1)
#define BIT_CLEAR_HEAD_PKT_MGQ_V1(x)			((x) & (~BITS_HEAD_PKT_MGQ_V1))
#define BIT_GET_HEAD_PKT_MGQ_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_MGQ_V1) & BIT_MASK_HEAD_PKT_MGQ_V1)
#define BIT_SET_HEAD_PKT_MGQ_V1(x, v)			(BIT_CLEAR_HEAD_PKT_MGQ_V1(x) | BIT_HEAD_PKT_MGQ_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_QUEUEMACID_HIQ_V1			25
#define BIT_MASK_QUEUEMACID_HIQ_V1			0x7f
#define BIT_QUEUEMACID_HIQ_V1(x)			(((x) & BIT_MASK_QUEUEMACID_HIQ_V1) << BIT_SHIFT_QUEUEMACID_HIQ_V1)
#define BITS_QUEUEMACID_HIQ_V1				(BIT_MASK_QUEUEMACID_HIQ_V1 << BIT_SHIFT_QUEUEMACID_HIQ_V1)
#define BIT_CLEAR_QUEUEMACID_HIQ_V1(x)			((x) & (~BITS_QUEUEMACID_HIQ_V1))
#define BIT_GET_QUEUEMACID_HIQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_HIQ_V1) & BIT_MASK_QUEUEMACID_HIQ_V1)
#define BIT_SET_QUEUEMACID_HIQ_V1(x, v)		(BIT_CLEAR_QUEUEMACID_HIQ_V1(x) | BIT_QUEUEMACID_HIQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */


#define BIT_SHIFT_QINFO_CTRL				24
#define BIT_MASK_QINFO_CTRL				0x3f
#define BIT_QINFO_CTRL(x)				(((x) & BIT_MASK_QINFO_CTRL) << BIT_SHIFT_QINFO_CTRL)
#define BITS_QINFO_CTRL				(BIT_MASK_QINFO_CTRL << BIT_SHIFT_QINFO_CTRL)
#define BIT_CLEAR_QINFO_CTRL(x)			((x) & (~BITS_QINFO_CTRL))
#define BIT_GET_QINFO_CTRL(x)				(((x) >> BIT_SHIFT_QINFO_CTRL) & BIT_MASK_QINFO_CTRL)
#define BIT_SET_QINFO_CTRL(x, v)			(BIT_CLEAR_QINFO_CTRL(x) | BIT_QINFO_CTRL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_QUEUEAC_HIQ_V1			23
#define BIT_MASK_QUEUEAC_HIQ_V1			0x3
#define BIT_QUEUEAC_HIQ_V1(x)				(((x) & BIT_MASK_QUEUEAC_HIQ_V1) << BIT_SHIFT_QUEUEAC_HIQ_V1)
#define BITS_QUEUEAC_HIQ_V1				(BIT_MASK_QUEUEAC_HIQ_V1 << BIT_SHIFT_QUEUEAC_HIQ_V1)
#define BIT_CLEAR_QUEUEAC_HIQ_V1(x)			((x) & (~BITS_QUEUEAC_HIQ_V1))
#define BIT_GET_QUEUEAC_HIQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_HIQ_V1) & BIT_MASK_QUEUEAC_HIQ_V1)
#define BIT_SET_QUEUEAC_HIQ_V1(x, v)			(BIT_CLEAR_QUEUEAC_HIQ_V1(x) | BIT_QUEUEAC_HIQ_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */

#define BIT_TIDEMPTY_HIQ_V1				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */


#define BIT_SHIFT_QINFO_MODE_BAND			20
#define BIT_MASK_QINFO_MODE_BAND			0x7
#define BIT_QINFO_MODE_BAND(x)				(((x) & BIT_MASK_QINFO_MODE_BAND) << BIT_SHIFT_QINFO_MODE_BAND)
#define BITS_QINFO_MODE_BAND				(BIT_MASK_QINFO_MODE_BAND << BIT_SHIFT_QINFO_MODE_BAND)
#define BIT_CLEAR_QINFO_MODE_BAND(x)			((x) & (~BITS_QINFO_MODE_BAND))
#define BIT_GET_QINFO_MODE_BAND(x)			(((x) >> BIT_SHIFT_QINFO_MODE_BAND) & BIT_MASK_QINFO_MODE_BAND)
#define BIT_SET_QINFO_MODE_BAND(x, v)			(BIT_CLEAR_QINFO_MODE_BAND(x) | BIT_QINFO_MODE_BAND(v))

#define BIT_ACQ19_ENABLE				BIT(19)
#define BIT_ACQ18_ENABLE				BIT(18)
#define BIT_ACQ17_ENABLE				BIT(17)
#define BIT_ACQ16_ENABLE				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_TAIL_PKT_HIQ_V1			15
#define BIT_MASK_TAIL_PKT_HIQ_V1			0xff
#define BIT_TAIL_PKT_HIQ_V1(x)				(((x) & BIT_MASK_TAIL_PKT_HIQ_V1) << BIT_SHIFT_TAIL_PKT_HIQ_V1)
#define BITS_TAIL_PKT_HIQ_V1				(BIT_MASK_TAIL_PKT_HIQ_V1 << BIT_SHIFT_TAIL_PKT_HIQ_V1)
#define BIT_CLEAR_TAIL_PKT_HIQ_V1(x)			((x) & (~BITS_TAIL_PKT_HIQ_V1))
#define BIT_GET_TAIL_PKT_HIQ_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V1) & BIT_MASK_TAIL_PKT_HIQ_V1)
#define BIT_SET_TAIL_PKT_HIQ_V1(x, v)			(BIT_CLEAR_TAIL_PKT_HIQ_V1(x) | BIT_TAIL_PKT_HIQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */

#define BIT_ACQ15_ENABLE				BIT(15)
#define BIT_ACQ14_ENABLE				BIT(14)
#define BIT_ACQ13_ENABLE				BIT(13)
#define BIT_ACQ12_ENABLE				BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_TAIL_PKT_HIQ_V2			11
#define BIT_MASK_TAIL_PKT_HIQ_V2			0x7ff
#define BIT_TAIL_PKT_HIQ_V2(x)				(((x) & BIT_MASK_TAIL_PKT_HIQ_V2) << BIT_SHIFT_TAIL_PKT_HIQ_V2)
#define BITS_TAIL_PKT_HIQ_V2				(BIT_MASK_TAIL_PKT_HIQ_V2 << BIT_SHIFT_TAIL_PKT_HIQ_V2)
#define BIT_CLEAR_TAIL_PKT_HIQ_V2(x)			((x) & (~BITS_TAIL_PKT_HIQ_V2))
#define BIT_GET_TAIL_PKT_HIQ_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_HIQ_V2) & BIT_MASK_TAIL_PKT_HIQ_V2)
#define BIT_SET_TAIL_PKT_HIQ_V2(x, v)			(BIT_CLEAR_TAIL_PKT_HIQ_V2(x) | BIT_TAIL_PKT_HIQ_V2(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */

#define BIT_ACQ11_ENABLE				BIT(11)
#define BIT_ACQ10_ENABLE				BIT(10)
#define BIT_ACQ9_ENABLE				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_PKT_NUM_HIQ_V1			8
#define BIT_MASK_PKT_NUM_HIQ_V1			0x7f
#define BIT_PKT_NUM_HIQ_V1(x)				(((x) & BIT_MASK_PKT_NUM_HIQ_V1) << BIT_SHIFT_PKT_NUM_HIQ_V1)
#define BITS_PKT_NUM_HIQ_V1				(BIT_MASK_PKT_NUM_HIQ_V1 << BIT_SHIFT_PKT_NUM_HIQ_V1)
#define BIT_CLEAR_PKT_NUM_HIQ_V1(x)			((x) & (~BITS_PKT_NUM_HIQ_V1))
#define BIT_GET_PKT_NUM_HIQ_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_HIQ_V1) & BIT_MASK_PKT_NUM_HIQ_V1)
#define BIT_SET_PKT_NUM_HIQ_V1(x, v)			(BIT_CLEAR_PKT_NUM_HIQ_V1(x) | BIT_PKT_NUM_HIQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */

#define BIT_ACQ8_ENABLE				BIT(8)
#define BIT_ACQ7_ENABLE				BIT(7)
#define BIT_ACQ6_ENABLE				BIT(6)
#define BIT_ACQ5_ENABLE				BIT(5)
#define BIT_ACQ4_ENABLE				BIT(4)
#define BIT_ACQ3_ENABLE				BIT(3)
#define BIT_ACQ2_ENABLE				BIT(2)
#define BIT_ACQ1_ENABLE				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_HEAD_PKT_HIQ				0
#define BIT_MASK_HEAD_PKT_HIQ				0xff
#define BIT_HEAD_PKT_HIQ(x)				(((x) & BIT_MASK_HEAD_PKT_HIQ) << BIT_SHIFT_HEAD_PKT_HIQ)
#define BITS_HEAD_PKT_HIQ				(BIT_MASK_HEAD_PKT_HIQ << BIT_SHIFT_HEAD_PKT_HIQ)
#define BIT_CLEAR_HEAD_PKT_HIQ(x)			((x) & (~BITS_HEAD_PKT_HIQ))
#define BIT_GET_HEAD_PKT_HIQ(x)			(((x) >> BIT_SHIFT_HEAD_PKT_HIQ) & BIT_MASK_HEAD_PKT_HIQ)
#define BIT_SET_HEAD_PKT_HIQ(x, v)			(BIT_CLEAR_HEAD_PKT_HIQ(x) | BIT_HEAD_PKT_HIQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIQ_INFO				(Offset 0x0414) */


#define BIT_SHIFT_HEAD_PKT_HIQ_V1			0
#define BIT_MASK_HEAD_PKT_HIQ_V1			0x7ff
#define BIT_HEAD_PKT_HIQ_V1(x)				(((x) & BIT_MASK_HEAD_PKT_HIQ_V1) << BIT_SHIFT_HEAD_PKT_HIQ_V1)
#define BITS_HEAD_PKT_HIQ_V1				(BIT_MASK_HEAD_PKT_HIQ_V1 << BIT_SHIFT_HEAD_PKT_HIQ_V1)
#define BIT_CLEAR_HEAD_PKT_HIQ_V1(x)			((x) & (~BITS_HEAD_PKT_HIQ_V1))
#define BIT_GET_HEAD_PKT_HIQ_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_HIQ_V1) & BIT_MASK_HEAD_PKT_HIQ_V1)
#define BIT_SET_HEAD_PKT_HIQ_V1(x, v)			(BIT_CLEAR_HEAD_PKT_HIQ_V1(x) | BIT_HEAD_PKT_HIQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUELIST_ACQ_EN			(Offset 0x0414) */

#define BIT_ACQ0_ENABLE				BIT(0)

/* 2 REG_BCNQ_BDNY_V2			(Offset 0x0418) */


#define BIT_SHIFT_BCNQ_PGBNDY_WSEL			28
#define BIT_MASK_BCNQ_PGBNDY_WSEL			0x7
#define BIT_BCNQ_PGBNDY_WSEL(x)			(((x) & BIT_MASK_BCNQ_PGBNDY_WSEL) << BIT_SHIFT_BCNQ_PGBNDY_WSEL)
#define BITS_BCNQ_PGBNDY_WSEL				(BIT_MASK_BCNQ_PGBNDY_WSEL << BIT_SHIFT_BCNQ_PGBNDY_WSEL)
#define BIT_CLEAR_BCNQ_PGBNDY_WSEL(x)			((x) & (~BITS_BCNQ_PGBNDY_WSEL))
#define BIT_GET_BCNQ_PGBNDY_WSEL(x)			(((x) >> BIT_SHIFT_BCNQ_PGBNDY_WSEL) & BIT_MASK_BCNQ_PGBNDY_WSEL)
#define BIT_SET_BCNQ_PGBNDY_WSEL(x, v)			(BIT_CLEAR_BCNQ_PGBNDY_WSEL(x) | BIT_BCNQ_PGBNDY_WSEL(v))


#define BIT_SHIFT_BCNQ_PGBNDY_RCONTENT			12
#define BIT_MASK_BCNQ_PGBNDY_RCONTENT			0xfff
#define BIT_BCNQ_PGBNDY_RCONTENT(x)			(((x) & BIT_MASK_BCNQ_PGBNDY_RCONTENT) << BIT_SHIFT_BCNQ_PGBNDY_RCONTENT)
#define BITS_BCNQ_PGBNDY_RCONTENT			(BIT_MASK_BCNQ_PGBNDY_RCONTENT << BIT_SHIFT_BCNQ_PGBNDY_RCONTENT)
#define BIT_CLEAR_BCNQ_PGBNDY_RCONTENT(x)		((x) & (~BITS_BCNQ_PGBNDY_RCONTENT))
#define BIT_GET_BCNQ_PGBNDY_RCONTENT(x)		(((x) >> BIT_SHIFT_BCNQ_PGBNDY_RCONTENT) & BIT_MASK_BCNQ_PGBNDY_RCONTENT)
#define BIT_SET_BCNQ_PGBNDY_RCONTENT(x, v)		(BIT_CLEAR_BCNQ_PGBNDY_RCONTENT(x) | BIT_BCNQ_PGBNDY_RCONTENT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCNQ_INFO				(Offset 0x0418) */


#define BIT_SHIFT_PKT_NUM_BCNQ				8
#define BIT_MASK_PKT_NUM_BCNQ				0xff
#define BIT_PKT_NUM_BCNQ(x)				(((x) & BIT_MASK_PKT_NUM_BCNQ) << BIT_SHIFT_PKT_NUM_BCNQ)
#define BITS_PKT_NUM_BCNQ				(BIT_MASK_PKT_NUM_BCNQ << BIT_SHIFT_PKT_NUM_BCNQ)
#define BIT_CLEAR_PKT_NUM_BCNQ(x)			((x) & (~BITS_PKT_NUM_BCNQ))
#define BIT_GET_PKT_NUM_BCNQ(x)			(((x) >> BIT_SHIFT_PKT_NUM_BCNQ) & BIT_MASK_PKT_NUM_BCNQ)
#define BIT_SET_PKT_NUM_BCNQ(x, v)			(BIT_CLEAR_PKT_NUM_BCNQ(x) | BIT_PKT_NUM_BCNQ(v))


#define BIT_SHIFT_BCNQ_HEAD_PG				0
#define BIT_MASK_BCNQ_HEAD_PG				0xff
#define BIT_BCNQ_HEAD_PG(x)				(((x) & BIT_MASK_BCNQ_HEAD_PG) << BIT_SHIFT_BCNQ_HEAD_PG)
#define BITS_BCNQ_HEAD_PG				(BIT_MASK_BCNQ_HEAD_PG << BIT_SHIFT_BCNQ_HEAD_PG)
#define BIT_CLEAR_BCNQ_HEAD_PG(x)			((x) & (~BITS_BCNQ_HEAD_PG))
#define BIT_GET_BCNQ_HEAD_PG(x)			(((x) >> BIT_SHIFT_BCNQ_HEAD_PG) & BIT_MASK_BCNQ_HEAD_PG)
#define BIT_SET_BCNQ_HEAD_PG(x, v)			(BIT_CLEAR_BCNQ_HEAD_PG(x) | BIT_BCNQ_HEAD_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCNQ_INFO				(Offset 0x0418) */


#define BIT_SHIFT_BCNQ_HEAD_PG_V1			0
#define BIT_MASK_BCNQ_HEAD_PG_V1			0xfff
#define BIT_BCNQ_HEAD_PG_V1(x)				(((x) & BIT_MASK_BCNQ_HEAD_PG_V1) << BIT_SHIFT_BCNQ_HEAD_PG_V1)
#define BITS_BCNQ_HEAD_PG_V1				(BIT_MASK_BCNQ_HEAD_PG_V1 << BIT_SHIFT_BCNQ_HEAD_PG_V1)
#define BIT_CLEAR_BCNQ_HEAD_PG_V1(x)			((x) & (~BITS_BCNQ_HEAD_PG_V1))
#define BIT_GET_BCNQ_HEAD_PG_V1(x)			(((x) >> BIT_SHIFT_BCNQ_HEAD_PG_V1) & BIT_MASK_BCNQ_HEAD_PG_V1)
#define BIT_SET_BCNQ_HEAD_PG_V1(x, v)			(BIT_CLEAR_BCNQ_HEAD_PG_V1(x) | BIT_BCNQ_HEAD_PG_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCNQ_BDNY_V2			(Offset 0x0418) */


#define BIT_SHIFT_BCNQ_PGBNDY_WCONTENT			0
#define BIT_MASK_BCNQ_PGBNDY_WCONTENT			0xfff
#define BIT_BCNQ_PGBNDY_WCONTENT(x)			(((x) & BIT_MASK_BCNQ_PGBNDY_WCONTENT) << BIT_SHIFT_BCNQ_PGBNDY_WCONTENT)
#define BITS_BCNQ_PGBNDY_WCONTENT			(BIT_MASK_BCNQ_PGBNDY_WCONTENT << BIT_SHIFT_BCNQ_PGBNDY_WCONTENT)
#define BIT_CLEAR_BCNQ_PGBNDY_WCONTENT(x)		((x) & (~BITS_BCNQ_PGBNDY_WCONTENT))
#define BIT_GET_BCNQ_PGBNDY_WCONTENT(x)		(((x) >> BIT_SHIFT_BCNQ_PGBNDY_WCONTENT) & BIT_MASK_BCNQ_PGBNDY_WCONTENT)
#define BIT_SET_BCNQ_PGBNDY_WCONTENT(x, v)		(BIT_CLEAR_BCNQ_PGBNDY_WCONTENT(x) | BIT_BCNQ_PGBNDY_WCONTENT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXPKT_EMPTY				(Offset 0x041A) */

#define BIT_BCNQ_EMPTY					BIT(11)
#define BIT_HQQ_EMPTY					BIT(10)
#define BIT_MQQ_EMPTY					BIT(9)
#define BIT_MGQ_CPU_EMPTY				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_BCN1_POLL					BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_CPUMGT_CLR_V1				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_CPUMGT_POLL				BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_BCN_POLL					BIT(28)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_CPUMGT_CLR					BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_BCN_EXT_POLL				BIT(21)
#define BIT_BCN4_POLL					BIT(20)
#define BIT_BCN3_POLL					BIT(19)
#define BIT_BCN2_POLL					BIT(18)
#define BIT_BCN1_POLL_V1				BIT(17)
#define BIT_BCN_POLL_V1				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_CPUMGQ_FW_NUM_V1				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */

#define BIT_CPUMGQ_FW_NUM				BIT(8)

#define BIT_SHIFT_CPUMGQ_HEAD_PG			0
#define BIT_MASK_CPUMGQ_HEAD_PG			0xff
#define BIT_CPUMGQ_HEAD_PG(x)				(((x) & BIT_MASK_CPUMGQ_HEAD_PG) << BIT_SHIFT_CPUMGQ_HEAD_PG)
#define BITS_CPUMGQ_HEAD_PG				(BIT_MASK_CPUMGQ_HEAD_PG << BIT_SHIFT_CPUMGQ_HEAD_PG)
#define BIT_CLEAR_CPUMGQ_HEAD_PG(x)			((x) & (~BITS_CPUMGQ_HEAD_PG))
#define BIT_GET_CPUMGQ_HEAD_PG(x)			(((x) >> BIT_SHIFT_CPUMGQ_HEAD_PG) & BIT_MASK_CPUMGQ_HEAD_PG)
#define BIT_SET_CPUMGQ_HEAD_PG(x, v)			(BIT_CLEAR_CPUMGQ_HEAD_PG(x) | BIT_CPUMGQ_HEAD_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */


#define BIT_SHIFT_FW_FREE_TAIL_V1			0
#define BIT_MASK_FW_FREE_TAIL_V1			0xfff
#define BIT_FW_FREE_TAIL_V1(x)				(((x) & BIT_MASK_FW_FREE_TAIL_V1) << BIT_SHIFT_FW_FREE_TAIL_V1)
#define BITS_FW_FREE_TAIL_V1				(BIT_MASK_FW_FREE_TAIL_V1 << BIT_SHIFT_FW_FREE_TAIL_V1)
#define BIT_CLEAR_FW_FREE_TAIL_V1(x)			((x) & (~BITS_FW_FREE_TAIL_V1))
#define BIT_GET_FW_FREE_TAIL_V1(x)			(((x) >> BIT_SHIFT_FW_FREE_TAIL_V1) & BIT_MASK_FW_FREE_TAIL_V1)
#define BIT_SET_FW_FREE_TAIL_V1(x, v)			(BIT_CLEAR_FW_FREE_TAIL_V1(x) | BIT_FW_FREE_TAIL_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CPU_MGQ_INFO			(Offset 0x041C) */


#define BIT_SHIFT_FREE_TAIL_PAGE			0
#define BIT_MASK_FREE_TAIL_PAGE			0xfff
#define BIT_FREE_TAIL_PAGE(x)				(((x) & BIT_MASK_FREE_TAIL_PAGE) << BIT_SHIFT_FREE_TAIL_PAGE)
#define BITS_FREE_TAIL_PAGE				(BIT_MASK_FREE_TAIL_PAGE << BIT_SHIFT_FREE_TAIL_PAGE)
#define BIT_CLEAR_FREE_TAIL_PAGE(x)			((x) & (~BITS_FREE_TAIL_PAGE))
#define BIT_GET_FREE_TAIL_PAGE(x)			(((x) >> BIT_SHIFT_FREE_TAIL_PAGE) & BIT_MASK_FREE_TAIL_PAGE)
#define BIT_SET_FREE_TAIL_PAGE(x, v)			(BIT_CLEAR_FREE_TAIL_PAGE(x) | BIT_FREE_TAIL_PAGE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_RTS_LIMIT_IN_OFDM				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_BCNQ_DL					BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_RD_RESP_NAV_BK				BIT(21)
#define BIT_EN_WR_FREE_TAIL				BIT(20)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_TXRPT_DIS					BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_NOTXRPT_USERATE_EN				BIT(19)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_DIS_TXFAIL_RPT				BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_FTM_TIMEOUT_BYPASS				BIT(16)
#define BIT_EN_BCNQ_DL5				BIT(13)
#define BIT_EN_BCNQ_DL4				BIT(12)
#define BIT_EN_BCNQ_DL3				BIT(11)
#define BIT_EN_BCNQ_DL2				BIT(10)
#define BIT_EN_BCNQ_DL1				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */


#define BIT_SHIFT_EN_QUEUE_RPT				8
#define BIT_MASK_EN_QUEUE_RPT				0xff
#define BIT_EN_QUEUE_RPT(x)				(((x) & BIT_MASK_EN_QUEUE_RPT) << BIT_SHIFT_EN_QUEUE_RPT)
#define BITS_EN_QUEUE_RPT				(BIT_MASK_EN_QUEUE_RPT << BIT_SHIFT_EN_QUEUE_RPT)
#define BIT_CLEAR_EN_QUEUE_RPT(x)			((x) & (~BITS_EN_QUEUE_RPT))
#define BIT_GET_EN_QUEUE_RPT(x)			(((x) >> BIT_SHIFT_EN_QUEUE_RPT) & BIT_MASK_EN_QUEUE_RPT)
#define BIT_SET_EN_QUEUE_RPT(x, v)			(BIT_CLEAR_EN_QUEUE_RPT(x) | BIT_EN_QUEUE_RPT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_BCNQ_DL0				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_RTY_BK					BIT(7)
#define BIT_EN_USE_INI_RAT				BIT(6)
#define BIT_EN_RTS_NAV_BK				BIT(5)
#define BIT_DIS_SSN_CHECK				BIT(4)
#define BIT_MACID_MATCH_RTS				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_BCN_TRXRPT_V1				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_R_EN_FTMRPT				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_FTMRPT_V1				BIT(1)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_R_EN_FTMRPT_V1				BIT(1)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_FTMACKRPT				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_R_BMC_NAV_PROTECT				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_BMC_NAV_PROTECT				BIT(0)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_FWHW_TXQ_CTRL			(Offset 0x0420) */

#define BIT_EN_FTMRPT					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HWSEQ_CTRL				(Offset 0x0423) */

#define BIT_HWSEQ_CPUM_EN				BIT(7)
#define BIT_HWSEQ_BCN_EN				BIT(6)
#define BIT_HWSEQ_HI_EN				BIT(5)
#define BIT_HWSEQ_MGT_EN				BIT(4)
#define BIT_HWSEQ_BK_EN				BIT(3)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */

#define BIT_R_BROADCAST_RETRY_EN			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */

#define BIT_BROADCAST_RTY_EN				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HWSEQ_CTRL				(Offset 0x0423) */

#define BIT_HWSEQ_BE_EN				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */

#define BIT__R_EN_RTY_BK_COD				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */

#define BIT_EN_RTY_BK_COD				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HWSEQ_CTRL				(Offset 0x0423) */

#define BIT_HWSEQ_VI_EN				BIT(1)
#define BIT_HWSEQ_VO_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */


#define BIT_SHIFT__R_DATA_FALLBACK_SEL			0
#define BIT_MASK__R_DATA_FALLBACK_SEL			0x3
#define BIT__R_DATA_FALLBACK_SEL(x)			(((x) & BIT_MASK__R_DATA_FALLBACK_SEL) << BIT_SHIFT__R_DATA_FALLBACK_SEL)
#define BITS__R_DATA_FALLBACK_SEL			(BIT_MASK__R_DATA_FALLBACK_SEL << BIT_SHIFT__R_DATA_FALLBACK_SEL)
#define BIT_CLEAR__R_DATA_FALLBACK_SEL(x)		((x) & (~BITS__R_DATA_FALLBACK_SEL))
#define BIT_GET__R_DATA_FALLBACK_SEL(x)		(((x) >> BIT_SHIFT__R_DATA_FALLBACK_SEL) & BIT_MASK__R_DATA_FALLBACK_SEL)
#define BIT_SET__R_DATA_FALLBACK_SEL(x, v)		(BIT_CLEAR__R_DATA_FALLBACK_SEL(x) | BIT__R_DATA_FALLBACK_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATAFB_SEL				(Offset 0x0423) */


#define BIT_SHIFT__DATA_FALLBACK_SEL			0
#define BIT_MASK__DATA_FALLBACK_SEL			0x3
#define BIT__DATA_FALLBACK_SEL(x)			(((x) & BIT_MASK__DATA_FALLBACK_SEL) << BIT_SHIFT__DATA_FALLBACK_SEL)
#define BITS__DATA_FALLBACK_SEL			(BIT_MASK__DATA_FALLBACK_SEL << BIT_SHIFT__DATA_FALLBACK_SEL)
#define BIT_CLEAR__DATA_FALLBACK_SEL(x)		((x) & (~BITS__DATA_FALLBACK_SEL))
#define BIT_GET__DATA_FALLBACK_SEL(x)			(((x) >> BIT_SHIFT__DATA_FALLBACK_SEL) & BIT_MASK__DATA_FALLBACK_SEL)
#define BIT_SET__DATA_FALLBACK_SEL(x, v)		(BIT_CLEAR__DATA_FALLBACK_SEL(x) | BIT__DATA_FALLBACK_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCNQ_BDNY				(Offset 0x0424) */


#define BIT_SHIFT_BCNQ_PGBNDY				0
#define BIT_MASK_BCNQ_PGBNDY				0xff
#define BIT_BCNQ_PGBNDY(x)				(((x) & BIT_MASK_BCNQ_PGBNDY) << BIT_SHIFT_BCNQ_PGBNDY)
#define BITS_BCNQ_PGBNDY				(BIT_MASK_BCNQ_PGBNDY << BIT_SHIFT_BCNQ_PGBNDY)
#define BIT_CLEAR_BCNQ_PGBNDY(x)			((x) & (~BITS_BCNQ_PGBNDY))
#define BIT_GET_BCNQ_PGBNDY(x)				(((x) >> BIT_SHIFT_BCNQ_PGBNDY) & BIT_MASK_BCNQ_PGBNDY)
#define BIT_SET_BCNQ_PGBNDY(x, v)			(BIT_CLEAR_BCNQ_PGBNDY(x) | BIT_BCNQ_PGBNDY(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCNQ_BDNY_V1			(Offset 0x0424) */


#define BIT_SHIFT_BCNQ_PGBNDY_V1			0
#define BIT_MASK_BCNQ_PGBNDY_V1			0xfff
#define BIT_BCNQ_PGBNDY_V1(x)				(((x) & BIT_MASK_BCNQ_PGBNDY_V1) << BIT_SHIFT_BCNQ_PGBNDY_V1)
#define BITS_BCNQ_PGBNDY_V1				(BIT_MASK_BCNQ_PGBNDY_V1 << BIT_SHIFT_BCNQ_PGBNDY_V1)
#define BIT_CLEAR_BCNQ_PGBNDY_V1(x)			((x) & (~BITS_BCNQ_PGBNDY_V1))
#define BIT_GET_BCNQ_PGBNDY_V1(x)			(((x) >> BIT_SHIFT_BCNQ_PGBNDY_V1) & BIT_MASK_BCNQ_PGBNDY_V1)
#define BIT_SET_BCNQ_PGBNDY_V1(x, v)			(BIT_CLEAR_BCNQ_PGBNDY_V1(x) | BIT_BCNQ_PGBNDY_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBDNY				(Offset 0x0424) */


#define BIT_SHIFT_TXBNDY				0
#define BIT_MASK_TXBNDY				0xfff
#define BIT_TXBNDY(x)					(((x) & BIT_MASK_TXBNDY) << BIT_SHIFT_TXBNDY)
#define BITS_TXBNDY					(BIT_MASK_TXBNDY << BIT_SHIFT_TXBNDY)
#define BIT_CLEAR_TXBNDY(x)				((x) & (~BITS_TXBNDY))
#define BIT_GET_TXBNDY(x)				(((x) >> BIT_SHIFT_TXBNDY) & BIT_MASK_TXBNDY)
#define BIT_SET_TXBNDY(x, v)				(BIT_CLEAR_TXBNDY(x) | BIT_TXBNDY(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MGQ_BDNY				(Offset 0x0425) */


#define BIT_SHIFT_MGQ_PGBNDY				0
#define BIT_MASK_MGQ_PGBNDY				0xff
#define BIT_MGQ_PGBNDY(x)				(((x) & BIT_MASK_MGQ_PGBNDY) << BIT_SHIFT_MGQ_PGBNDY)
#define BITS_MGQ_PGBNDY				(BIT_MASK_MGQ_PGBNDY << BIT_SHIFT_MGQ_PGBNDY)
#define BIT_CLEAR_MGQ_PGBNDY(x)			((x) & (~BITS_MGQ_PGBNDY))
#define BIT_GET_MGQ_PGBNDY(x)				(((x) >> BIT_SHIFT_MGQ_PGBNDY) & BIT_MASK_MGQ_PGBNDY)
#define BIT_SET_MGQ_PGBNDY(x, v)			(BIT_CLEAR_MGQ_PGBNDY(x) | BIT_MGQ_PGBNDY(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LIFETIME_EN				(Offset 0x0426) */

#define BIT_BT_INT_CPU					BIT(7)
#define BIT_BT_INT_PTA					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LIFETIME_EN				(Offset 0x0426) */

#define BIT_SPERPT_ENTRY				BIT(5)
#define BIT_RTYCNT_FB					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_LIFETIME_EN				(Offset 0x0426) */

#define BIT_EN_CTRL_RTYBIT				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LIFETIME_EN				(Offset 0x0426) */

#define BIT_LIFETIME_BK_EN				BIT(3)
#define BIT_LIFETIME_BE_EN				BIT(2)
#define BIT_LIFETIME_VI_EN				BIT(1)
#define BIT_LIFETIME_VO_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FW_FREE_TAIL			(Offset 0x0427) */


#define BIT_SHIFT_FW_FREE_TAIL				0
#define BIT_MASK_FW_FREE_TAIL				0xff
#define BIT_FW_FREE_TAIL(x)				(((x) & BIT_MASK_FW_FREE_TAIL) << BIT_SHIFT_FW_FREE_TAIL)
#define BITS_FW_FREE_TAIL				(BIT_MASK_FW_FREE_TAIL << BIT_SHIFT_FW_FREE_TAIL)
#define BIT_CLEAR_FW_FREE_TAIL(x)			((x) & (~BITS_FW_FREE_TAIL))
#define BIT_GET_FW_FREE_TAIL(x)			(((x) >> BIT_SHIFT_FW_FREE_TAIL) & BIT_MASK_FW_FREE_TAIL)
#define BIT_SET_FW_FREE_TAIL(x, v)			(BIT_CLEAR_FW_FREE_TAIL(x) | BIT_FW_FREE_TAIL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SPEC_SIFS				(Offset 0x0428) */


#define BIT_SHIFT_SPEC_SIFS_OFDM_PTCL			8
#define BIT_MASK_SPEC_SIFS_OFDM_PTCL			0xff
#define BIT_SPEC_SIFS_OFDM_PTCL(x)			(((x) & BIT_MASK_SPEC_SIFS_OFDM_PTCL) << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL)
#define BITS_SPEC_SIFS_OFDM_PTCL			(BIT_MASK_SPEC_SIFS_OFDM_PTCL << BIT_SHIFT_SPEC_SIFS_OFDM_PTCL)
#define BIT_CLEAR_SPEC_SIFS_OFDM_PTCL(x)		((x) & (~BITS_SPEC_SIFS_OFDM_PTCL))
#define BIT_GET_SPEC_SIFS_OFDM_PTCL(x)			(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM_PTCL) & BIT_MASK_SPEC_SIFS_OFDM_PTCL)
#define BIT_SET_SPEC_SIFS_OFDM_PTCL(x, v)		(BIT_CLEAR_SPEC_SIFS_OFDM_PTCL(x) | BIT_SPEC_SIFS_OFDM_PTCL(v))


#define BIT_SHIFT_SPEC_SIFS_CCK_PTCL			0
#define BIT_MASK_SPEC_SIFS_CCK_PTCL			0xff
#define BIT_SPEC_SIFS_CCK_PTCL(x)			(((x) & BIT_MASK_SPEC_SIFS_CCK_PTCL) << BIT_SHIFT_SPEC_SIFS_CCK_PTCL)
#define BITS_SPEC_SIFS_CCK_PTCL			(BIT_MASK_SPEC_SIFS_CCK_PTCL << BIT_SHIFT_SPEC_SIFS_CCK_PTCL)
#define BIT_CLEAR_SPEC_SIFS_CCK_PTCL(x)		((x) & (~BITS_SPEC_SIFS_CCK_PTCL))
#define BIT_GET_SPEC_SIFS_CCK_PTCL(x)			(((x) >> BIT_SHIFT_SPEC_SIFS_CCK_PTCL) & BIT_MASK_SPEC_SIFS_CCK_PTCL)
#define BIT_SET_SPEC_SIFS_CCK_PTCL(x, v)		(BIT_CLEAR_SPEC_SIFS_CCK_PTCL(x) | BIT_SPEC_SIFS_CCK_PTCL(v))


/* 2 REG_RETRY_LIMIT				(Offset 0x042A) */


#define BIT_SHIFT_SRL					8
#define BIT_MASK_SRL					0x3f
#define BIT_SRL(x)					(((x) & BIT_MASK_SRL) << BIT_SHIFT_SRL)
#define BITS_SRL					(BIT_MASK_SRL << BIT_SHIFT_SRL)
#define BIT_CLEAR_SRL(x)				((x) & (~BITS_SRL))
#define BIT_GET_SRL(x)					(((x) >> BIT_SHIFT_SRL) & BIT_MASK_SRL)
#define BIT_SET_SRL(x, v)				(BIT_CLEAR_SRL(x) | BIT_SRL(v))


#define BIT_SHIFT_LRL					0
#define BIT_MASK_LRL					0x3f
#define BIT_LRL(x)					(((x) & BIT_MASK_LRL) << BIT_SHIFT_LRL)
#define BITS_LRL					(BIT_MASK_LRL << BIT_SHIFT_LRL)
#define BIT_CLEAR_LRL(x)				((x) & (~BITS_LRL))
#define BIT_GET_LRL(x)					(((x) >> BIT_SHIFT_LRL) & BIT_MASK_LRL)
#define BIT_SET_LRL(x, v)				(BIT_CLEAR_LRL(x) | BIT_LRL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_ENABLE_NDPA				BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_ENABLE_NDPA				BIT(31)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_USE_NDPA_PARAMETER				BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_NDPA_PARA					BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_PROP_TXBF				BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_PROP_TXBF					BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_EN_NDPA_INT				BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_EN_NDPA_INT				BIT(28)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF1_80M				BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF1_80M_160M				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF1_40M				BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF1_40M					BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF1_20M				BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF1_20M					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */


#define BIT_SHIFT_R_TXBF1_AID				16
#define BIT_MASK_R_TXBF1_AID				0x1ff
#define BIT_R_TXBF1_AID(x)				(((x) & BIT_MASK_R_TXBF1_AID) << BIT_SHIFT_R_TXBF1_AID)
#define BITS_R_TXBF1_AID				(BIT_MASK_R_TXBF1_AID << BIT_SHIFT_R_TXBF1_AID)
#define BIT_CLEAR_R_TXBF1_AID(x)			((x) & (~BITS_R_TXBF1_AID))
#define BIT_GET_R_TXBF1_AID(x)				(((x) >> BIT_SHIFT_R_TXBF1_AID) & BIT_MASK_R_TXBF1_AID)
#define BIT_SET_R_TXBF1_AID(x, v)			(BIT_CLEAR_R_TXBF1_AID(x) | BIT_R_TXBF1_AID(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */


#define BIT_SHIFT_TXBF1_AID				16
#define BIT_MASK_TXBF1_AID				0x1ff
#define BIT_TXBF1_AID(x)				(((x) & BIT_MASK_TXBF1_AID) << BIT_SHIFT_TXBF1_AID)
#define BITS_TXBF1_AID					(BIT_MASK_TXBF1_AID << BIT_SHIFT_TXBF1_AID)
#define BIT_CLEAR_TXBF1_AID(x)				((x) & (~BITS_TXBF1_AID))
#define BIT_GET_TXBF1_AID(x)				(((x) >> BIT_SHIFT_TXBF1_AID) & BIT_MASK_TXBF1_AID)
#define BIT_SET_TXBF1_AID(x, v)			(BIT_CLEAR_TXBF1_AID(x) | BIT_TXBF1_AID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_DIS_NDP_BFEN				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBCN_NOBLOCK_NDP			BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBCN_NOBLOCK_NDP				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF0_80M				BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF0_80M_160M				BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF0_40M				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF0_40M					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_R_TXBF0_20M				BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */

#define BIT_TXBF0_20M					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */


#define BIT_SHIFT_R_TXBF0_AID				0
#define BIT_MASK_R_TXBF0_AID				0x1ff
#define BIT_R_TXBF0_AID(x)				(((x) & BIT_MASK_R_TXBF0_AID) << BIT_SHIFT_R_TXBF0_AID)
#define BITS_R_TXBF0_AID				(BIT_MASK_R_TXBF0_AID << BIT_SHIFT_R_TXBF0_AID)
#define BIT_CLEAR_R_TXBF0_AID(x)			((x) & (~BITS_R_TXBF0_AID))
#define BIT_GET_R_TXBF0_AID(x)				(((x) >> BIT_SHIFT_R_TXBF0_AID) & BIT_MASK_R_TXBF0_AID)
#define BIT_SET_R_TXBF0_AID(x, v)			(BIT_CLEAR_R_TXBF0_AID(x) | BIT_R_TXBF0_AID(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXBF_CTRL				(Offset 0x042C) */


#define BIT_SHIFT_TXBF0_AID				0
#define BIT_MASK_TXBF0_AID				0x1ff
#define BIT_TXBF0_AID(x)				(((x) & BIT_MASK_TXBF0_AID) << BIT_SHIFT_TXBF0_AID)
#define BITS_TXBF0_AID					(BIT_MASK_TXBF0_AID << BIT_SHIFT_TXBF0_AID)
#define BIT_CLEAR_TXBF0_AID(x)				((x) & (~BITS_TXBF0_AID))
#define BIT_GET_TXBF0_AID(x)				(((x) >> BIT_SHIFT_TXBF0_AID) & BIT_MASK_TXBF0_AID)
#define BIT_SET_TXBF0_AID(x, v)			(BIT_CLEAR_TXBF0_AID(x) | BIT_TXBF0_AID(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC8				(56 & CPU_OPT_WIDTH)
#define BIT_MASK_DARF_RC8				0x1f
#define BIT_DARF_RC8(x)				(((x) & BIT_MASK_DARF_RC8) << BIT_SHIFT_DARF_RC8)
#define BITS_DARF_RC8					(BIT_MASK_DARF_RC8 << BIT_SHIFT_DARF_RC8)
#define BIT_CLEAR_DARF_RC8(x)				((x) & (~BITS_DARF_RC8))
#define BIT_GET_DARF_RC8(x)				(((x) >> BIT_SHIFT_DARF_RC8) & BIT_MASK_DARF_RC8)
#define BIT_SET_DARF_RC8(x, v)				(BIT_CLEAR_DARF_RC8(x) | BIT_DARF_RC8(v))


#define BIT_SHIFT_DARF_RC7				(48 & CPU_OPT_WIDTH)
#define BIT_MASK_DARF_RC7				0x1f
#define BIT_DARF_RC7(x)				(((x) & BIT_MASK_DARF_RC7) << BIT_SHIFT_DARF_RC7)
#define BITS_DARF_RC7					(BIT_MASK_DARF_RC7 << BIT_SHIFT_DARF_RC7)
#define BIT_CLEAR_DARF_RC7(x)				((x) & (~BITS_DARF_RC7))
#define BIT_GET_DARF_RC7(x)				(((x) >> BIT_SHIFT_DARF_RC7) & BIT_MASK_DARF_RC7)
#define BIT_SET_DARF_RC7(x, v)				(BIT_CLEAR_DARF_RC7(x) | BIT_DARF_RC7(v))


#define BIT_SHIFT_DARF_RC6				(40 & CPU_OPT_WIDTH)
#define BIT_MASK_DARF_RC6				0x1f
#define BIT_DARF_RC6(x)				(((x) & BIT_MASK_DARF_RC6) << BIT_SHIFT_DARF_RC6)
#define BITS_DARF_RC6					(BIT_MASK_DARF_RC6 << BIT_SHIFT_DARF_RC6)
#define BIT_CLEAR_DARF_RC6(x)				((x) & (~BITS_DARF_RC6))
#define BIT_GET_DARF_RC6(x)				(((x) >> BIT_SHIFT_DARF_RC6) & BIT_MASK_DARF_RC6)
#define BIT_SET_DARF_RC6(x, v)				(BIT_CLEAR_DARF_RC6(x) | BIT_DARF_RC6(v))


#define BIT_SHIFT_DARF_RC5				(32 & CPU_OPT_WIDTH)
#define BIT_MASK_DARF_RC5				0x1f
#define BIT_DARF_RC5(x)				(((x) & BIT_MASK_DARF_RC5) << BIT_SHIFT_DARF_RC5)
#define BITS_DARF_RC5					(BIT_MASK_DARF_RC5 << BIT_SHIFT_DARF_RC5)
#define BIT_CLEAR_DARF_RC5(x)				((x) & (~BITS_DARF_RC5))
#define BIT_GET_DARF_RC5(x)				(((x) >> BIT_SHIFT_DARF_RC5) & BIT_MASK_DARF_RC5)
#define BIT_SET_DARF_RC5(x, v)				(BIT_CLEAR_DARF_RC5(x) | BIT_DARF_RC5(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC4				24
#define BIT_MASK_DARF_RC4				0x1f
#define BIT_DARF_RC4(x)				(((x) & BIT_MASK_DARF_RC4) << BIT_SHIFT_DARF_RC4)
#define BITS_DARF_RC4					(BIT_MASK_DARF_RC4 << BIT_SHIFT_DARF_RC4)
#define BIT_CLEAR_DARF_RC4(x)				((x) & (~BITS_DARF_RC4))
#define BIT_GET_DARF_RC4(x)				(((x) >> BIT_SHIFT_DARF_RC4) & BIT_MASK_DARF_RC4)
#define BIT_SET_DARF_RC4(x, v)				(BIT_CLEAR_DARF_RC4(x) | BIT_DARF_RC4(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC4_V1				24
#define BIT_MASK_DARF_RC4_V1				0x3f
#define BIT_DARF_RC4_V1(x)				(((x) & BIT_MASK_DARF_RC4_V1) << BIT_SHIFT_DARF_RC4_V1)
#define BITS_DARF_RC4_V1				(BIT_MASK_DARF_RC4_V1 << BIT_SHIFT_DARF_RC4_V1)
#define BIT_CLEAR_DARF_RC4_V1(x)			((x) & (~BITS_DARF_RC4_V1))
#define BIT_GET_DARF_RC4_V1(x)				(((x) >> BIT_SHIFT_DARF_RC4_V1) & BIT_MASK_DARF_RC4_V1)
#define BIT_SET_DARF_RC4_V1(x, v)			(BIT_CLEAR_DARF_RC4_V1(x) | BIT_DARF_RC4_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC3				16
#define BIT_MASK_DARF_RC3				0x1f
#define BIT_DARF_RC3(x)				(((x) & BIT_MASK_DARF_RC3) << BIT_SHIFT_DARF_RC3)
#define BITS_DARF_RC3					(BIT_MASK_DARF_RC3 << BIT_SHIFT_DARF_RC3)
#define BIT_CLEAR_DARF_RC3(x)				((x) & (~BITS_DARF_RC3))
#define BIT_GET_DARF_RC3(x)				(((x) >> BIT_SHIFT_DARF_RC3) & BIT_MASK_DARF_RC3)
#define BIT_SET_DARF_RC3(x, v)				(BIT_CLEAR_DARF_RC3(x) | BIT_DARF_RC3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC3_V1				16
#define BIT_MASK_DARF_RC3_V1				0x3f
#define BIT_DARF_RC3_V1(x)				(((x) & BIT_MASK_DARF_RC3_V1) << BIT_SHIFT_DARF_RC3_V1)
#define BITS_DARF_RC3_V1				(BIT_MASK_DARF_RC3_V1 << BIT_SHIFT_DARF_RC3_V1)
#define BIT_CLEAR_DARF_RC3_V1(x)			((x) & (~BITS_DARF_RC3_V1))
#define BIT_GET_DARF_RC3_V1(x)				(((x) >> BIT_SHIFT_DARF_RC3_V1) & BIT_MASK_DARF_RC3_V1)
#define BIT_SET_DARF_RC3_V1(x, v)			(BIT_CLEAR_DARF_RC3_V1(x) | BIT_DARF_RC3_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC2				8
#define BIT_MASK_DARF_RC2				0x1f
#define BIT_DARF_RC2(x)				(((x) & BIT_MASK_DARF_RC2) << BIT_SHIFT_DARF_RC2)
#define BITS_DARF_RC2					(BIT_MASK_DARF_RC2 << BIT_SHIFT_DARF_RC2)
#define BIT_CLEAR_DARF_RC2(x)				((x) & (~BITS_DARF_RC2))
#define BIT_GET_DARF_RC2(x)				(((x) >> BIT_SHIFT_DARF_RC2) & BIT_MASK_DARF_RC2)
#define BIT_SET_DARF_RC2(x, v)				(BIT_CLEAR_DARF_RC2(x) | BIT_DARF_RC2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC2_V1				8
#define BIT_MASK_DARF_RC2_V1				0x3f
#define BIT_DARF_RC2_V1(x)				(((x) & BIT_MASK_DARF_RC2_V1) << BIT_SHIFT_DARF_RC2_V1)
#define BITS_DARF_RC2_V1				(BIT_MASK_DARF_RC2_V1 << BIT_SHIFT_DARF_RC2_V1)
#define BIT_CLEAR_DARF_RC2_V1(x)			((x) & (~BITS_DARF_RC2_V1))
#define BIT_GET_DARF_RC2_V1(x)				(((x) >> BIT_SHIFT_DARF_RC2_V1) & BIT_MASK_DARF_RC2_V1)
#define BIT_SET_DARF_RC2_V1(x, v)			(BIT_CLEAR_DARF_RC2_V1(x) | BIT_DARF_RC2_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC1				0
#define BIT_MASK_DARF_RC1				0x1f
#define BIT_DARF_RC1(x)				(((x) & BIT_MASK_DARF_RC1) << BIT_SHIFT_DARF_RC1)
#define BITS_DARF_RC1					(BIT_MASK_DARF_RC1 << BIT_SHIFT_DARF_RC1)
#define BIT_CLEAR_DARF_RC1(x)				((x) & (~BITS_DARF_RC1))
#define BIT_GET_DARF_RC1(x)				(((x) >> BIT_SHIFT_DARF_RC1) & BIT_MASK_DARF_RC1)
#define BIT_SET_DARF_RC1(x, v)				(BIT_CLEAR_DARF_RC1(x) | BIT_DARF_RC1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_DARFRC				(Offset 0x0430) */


#define BIT_SHIFT_DARF_RC1_V1				0
#define BIT_MASK_DARF_RC1_V1				0x3f
#define BIT_DARF_RC1_V1(x)				(((x) & BIT_MASK_DARF_RC1_V1) << BIT_SHIFT_DARF_RC1_V1)
#define BITS_DARF_RC1_V1				(BIT_MASK_DARF_RC1_V1 << BIT_SHIFT_DARF_RC1_V1)
#define BIT_CLEAR_DARF_RC1_V1(x)			((x) & (~BITS_DARF_RC1_V1))
#define BIT_GET_DARF_RC1_V1(x)				(((x) >> BIT_SHIFT_DARF_RC1_V1) & BIT_MASK_DARF_RC1_V1)
#define BIT_SET_DARF_RC1_V1(x, v)			(BIT_CLEAR_DARF_RC1_V1(x) | BIT_DARF_RC1_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_DARFRCH				(Offset 0x0434) */


#define BIT_SHIFT_DARF_RC8_V1				24
#define BIT_MASK_DARF_RC8_V1				0x1f
#define BIT_DARF_RC8_V1(x)				(((x) & BIT_MASK_DARF_RC8_V1) << BIT_SHIFT_DARF_RC8_V1)
#define BITS_DARF_RC8_V1				(BIT_MASK_DARF_RC8_V1 << BIT_SHIFT_DARF_RC8_V1)
#define BIT_CLEAR_DARF_RC8_V1(x)			((x) & (~BITS_DARF_RC8_V1))
#define BIT_GET_DARF_RC8_V1(x)				(((x) >> BIT_SHIFT_DARF_RC8_V1) & BIT_MASK_DARF_RC8_V1)
#define BIT_SET_DARF_RC8_V1(x, v)			(BIT_CLEAR_DARF_RC8_V1(x) | BIT_DARF_RC8_V1(v))


#define BIT_SHIFT_DARF_RC7_V1				16
#define BIT_MASK_DARF_RC7_V1				0x1f
#define BIT_DARF_RC7_V1(x)				(((x) & BIT_MASK_DARF_RC7_V1) << BIT_SHIFT_DARF_RC7_V1)
#define BITS_DARF_RC7_V1				(BIT_MASK_DARF_RC7_V1 << BIT_SHIFT_DARF_RC7_V1)
#define BIT_CLEAR_DARF_RC7_V1(x)			((x) & (~BITS_DARF_RC7_V1))
#define BIT_GET_DARF_RC7_V1(x)				(((x) >> BIT_SHIFT_DARF_RC7_V1) & BIT_MASK_DARF_RC7_V1)
#define BIT_SET_DARF_RC7_V1(x, v)			(BIT_CLEAR_DARF_RC7_V1(x) | BIT_DARF_RC7_V1(v))


#define BIT_SHIFT_DARF_RC6_V1				8
#define BIT_MASK_DARF_RC6_V1				0x1f
#define BIT_DARF_RC6_V1(x)				(((x) & BIT_MASK_DARF_RC6_V1) << BIT_SHIFT_DARF_RC6_V1)
#define BITS_DARF_RC6_V1				(BIT_MASK_DARF_RC6_V1 << BIT_SHIFT_DARF_RC6_V1)
#define BIT_CLEAR_DARF_RC6_V1(x)			((x) & (~BITS_DARF_RC6_V1))
#define BIT_GET_DARF_RC6_V1(x)				(((x) >> BIT_SHIFT_DARF_RC6_V1) & BIT_MASK_DARF_RC6_V1)
#define BIT_SET_DARF_RC6_V1(x, v)			(BIT_CLEAR_DARF_RC6_V1(x) | BIT_DARF_RC6_V1(v))


#define BIT_SHIFT_DARF_RC5_V1				0
#define BIT_MASK_DARF_RC5_V1				0x1f
#define BIT_DARF_RC5_V1(x)				(((x) & BIT_MASK_DARF_RC5_V1) << BIT_SHIFT_DARF_RC5_V1)
#define BITS_DARF_RC5_V1				(BIT_MASK_DARF_RC5_V1 << BIT_SHIFT_DARF_RC5_V1)
#define BIT_CLEAR_DARF_RC5_V1(x)			((x) & (~BITS_DARF_RC5_V1))
#define BIT_GET_DARF_RC5_V1(x)				(((x) >> BIT_SHIFT_DARF_RC5_V1) & BIT_MASK_DARF_RC5_V1)
#define BIT_SET_DARF_RC5_V1(x, v)			(BIT_CLEAR_DARF_RC5_V1(x) | BIT_DARF_RC5_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RARFRC				(Offset 0x0438) */


#define BIT_SHIFT_RARF_RC8				(56 & CPU_OPT_WIDTH)
#define BIT_MASK_RARF_RC8				0x1f
#define BIT_RARF_RC8(x)				(((x) & BIT_MASK_RARF_RC8) << BIT_SHIFT_RARF_RC8)
#define BITS_RARF_RC8					(BIT_MASK_RARF_RC8 << BIT_SHIFT_RARF_RC8)
#define BIT_CLEAR_RARF_RC8(x)				((x) & (~BITS_RARF_RC8))
#define BIT_GET_RARF_RC8(x)				(((x) >> BIT_SHIFT_RARF_RC8) & BIT_MASK_RARF_RC8)
#define BIT_SET_RARF_RC8(x, v)				(BIT_CLEAR_RARF_RC8(x) | BIT_RARF_RC8(v))


#define BIT_SHIFT_RARF_RC7				(48 & CPU_OPT_WIDTH)
#define BIT_MASK_RARF_RC7				0x1f
#define BIT_RARF_RC7(x)				(((x) & BIT_MASK_RARF_RC7) << BIT_SHIFT_RARF_RC7)
#define BITS_RARF_RC7					(BIT_MASK_RARF_RC7 << BIT_SHIFT_RARF_RC7)
#define BIT_CLEAR_RARF_RC7(x)				((x) & (~BITS_RARF_RC7))
#define BIT_GET_RARF_RC7(x)				(((x) >> BIT_SHIFT_RARF_RC7) & BIT_MASK_RARF_RC7)
#define BIT_SET_RARF_RC7(x, v)				(BIT_CLEAR_RARF_RC7(x) | BIT_RARF_RC7(v))


#define BIT_SHIFT_RARF_RC6				(40 & CPU_OPT_WIDTH)
#define BIT_MASK_RARF_RC6				0x1f
#define BIT_RARF_RC6(x)				(((x) & BIT_MASK_RARF_RC6) << BIT_SHIFT_RARF_RC6)
#define BITS_RARF_RC6					(BIT_MASK_RARF_RC6 << BIT_SHIFT_RARF_RC6)
#define BIT_CLEAR_RARF_RC6(x)				((x) & (~BITS_RARF_RC6))
#define BIT_GET_RARF_RC6(x)				(((x) >> BIT_SHIFT_RARF_RC6) & BIT_MASK_RARF_RC6)
#define BIT_SET_RARF_RC6(x, v)				(BIT_CLEAR_RARF_RC6(x) | BIT_RARF_RC6(v))


#define BIT_SHIFT_RARF_RC5				(32 & CPU_OPT_WIDTH)
#define BIT_MASK_RARF_RC5				0x1f
#define BIT_RARF_RC5(x)				(((x) & BIT_MASK_RARF_RC5) << BIT_SHIFT_RARF_RC5)
#define BITS_RARF_RC5					(BIT_MASK_RARF_RC5 << BIT_SHIFT_RARF_RC5)
#define BIT_CLEAR_RARF_RC5(x)				((x) & (~BITS_RARF_RC5))
#define BIT_GET_RARF_RC5(x)				(((x) >> BIT_SHIFT_RARF_RC5) & BIT_MASK_RARF_RC5)
#define BIT_SET_RARF_RC5(x, v)				(BIT_CLEAR_RARF_RC5(x) | BIT_RARF_RC5(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RARFRC				(Offset 0x0438) */


#define BIT_SHIFT_RARF_RC4				24
#define BIT_MASK_RARF_RC4				0x1f
#define BIT_RARF_RC4(x)				(((x) & BIT_MASK_RARF_RC4) << BIT_SHIFT_RARF_RC4)
#define BITS_RARF_RC4					(BIT_MASK_RARF_RC4 << BIT_SHIFT_RARF_RC4)
#define BIT_CLEAR_RARF_RC4(x)				((x) & (~BITS_RARF_RC4))
#define BIT_GET_RARF_RC4(x)				(((x) >> BIT_SHIFT_RARF_RC4) & BIT_MASK_RARF_RC4)
#define BIT_SET_RARF_RC4(x, v)				(BIT_CLEAR_RARF_RC4(x) | BIT_RARF_RC4(v))


#define BIT_SHIFT_RARF_RC3				16
#define BIT_MASK_RARF_RC3				0x1f
#define BIT_RARF_RC3(x)				(((x) & BIT_MASK_RARF_RC3) << BIT_SHIFT_RARF_RC3)
#define BITS_RARF_RC3					(BIT_MASK_RARF_RC3 << BIT_SHIFT_RARF_RC3)
#define BIT_CLEAR_RARF_RC3(x)				((x) & (~BITS_RARF_RC3))
#define BIT_GET_RARF_RC3(x)				(((x) >> BIT_SHIFT_RARF_RC3) & BIT_MASK_RARF_RC3)
#define BIT_SET_RARF_RC3(x, v)				(BIT_CLEAR_RARF_RC3(x) | BIT_RARF_RC3(v))


#define BIT_SHIFT_RARF_RC2				8
#define BIT_MASK_RARF_RC2				0x1f
#define BIT_RARF_RC2(x)				(((x) & BIT_MASK_RARF_RC2) << BIT_SHIFT_RARF_RC2)
#define BITS_RARF_RC2					(BIT_MASK_RARF_RC2 << BIT_SHIFT_RARF_RC2)
#define BIT_CLEAR_RARF_RC2(x)				((x) & (~BITS_RARF_RC2))
#define BIT_GET_RARF_RC2(x)				(((x) >> BIT_SHIFT_RARF_RC2) & BIT_MASK_RARF_RC2)
#define BIT_SET_RARF_RC2(x, v)				(BIT_CLEAR_RARF_RC2(x) | BIT_RARF_RC2(v))


#define BIT_SHIFT_RARF_RC1				0
#define BIT_MASK_RARF_RC1				0x1f
#define BIT_RARF_RC1(x)				(((x) & BIT_MASK_RARF_RC1) << BIT_SHIFT_RARF_RC1)
#define BITS_RARF_RC1					(BIT_MASK_RARF_RC1 << BIT_SHIFT_RARF_RC1)
#define BIT_CLEAR_RARF_RC1(x)				((x) & (~BITS_RARF_RC1))
#define BIT_GET_RARF_RC1(x)				(((x) >> BIT_SHIFT_RARF_RC1) & BIT_MASK_RARF_RC1)
#define BIT_SET_RARF_RC1(x, v)				(BIT_CLEAR_RARF_RC1(x) | BIT_RARF_RC1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RARFRCH				(Offset 0x043C) */


#define BIT_SHIFT_RARF_RC8_V1				24
#define BIT_MASK_RARF_RC8_V1				0x1f
#define BIT_RARF_RC8_V1(x)				(((x) & BIT_MASK_RARF_RC8_V1) << BIT_SHIFT_RARF_RC8_V1)
#define BITS_RARF_RC8_V1				(BIT_MASK_RARF_RC8_V1 << BIT_SHIFT_RARF_RC8_V1)
#define BIT_CLEAR_RARF_RC8_V1(x)			((x) & (~BITS_RARF_RC8_V1))
#define BIT_GET_RARF_RC8_V1(x)				(((x) >> BIT_SHIFT_RARF_RC8_V1) & BIT_MASK_RARF_RC8_V1)
#define BIT_SET_RARF_RC8_V1(x, v)			(BIT_CLEAR_RARF_RC8_V1(x) | BIT_RARF_RC8_V1(v))


#define BIT_SHIFT_RARF_RC7_V1				16
#define BIT_MASK_RARF_RC7_V1				0x1f
#define BIT_RARF_RC7_V1(x)				(((x) & BIT_MASK_RARF_RC7_V1) << BIT_SHIFT_RARF_RC7_V1)
#define BITS_RARF_RC7_V1				(BIT_MASK_RARF_RC7_V1 << BIT_SHIFT_RARF_RC7_V1)
#define BIT_CLEAR_RARF_RC7_V1(x)			((x) & (~BITS_RARF_RC7_V1))
#define BIT_GET_RARF_RC7_V1(x)				(((x) >> BIT_SHIFT_RARF_RC7_V1) & BIT_MASK_RARF_RC7_V1)
#define BIT_SET_RARF_RC7_V1(x, v)			(BIT_CLEAR_RARF_RC7_V1(x) | BIT_RARF_RC7_V1(v))


#define BIT_SHIFT_RARF_RC6_V1				8
#define BIT_MASK_RARF_RC6_V1				0x1f
#define BIT_RARF_RC6_V1(x)				(((x) & BIT_MASK_RARF_RC6_V1) << BIT_SHIFT_RARF_RC6_V1)
#define BITS_RARF_RC6_V1				(BIT_MASK_RARF_RC6_V1 << BIT_SHIFT_RARF_RC6_V1)
#define BIT_CLEAR_RARF_RC6_V1(x)			((x) & (~BITS_RARF_RC6_V1))
#define BIT_GET_RARF_RC6_V1(x)				(((x) >> BIT_SHIFT_RARF_RC6_V1) & BIT_MASK_RARF_RC6_V1)
#define BIT_SET_RARF_RC6_V1(x, v)			(BIT_CLEAR_RARF_RC6_V1(x) | BIT_RARF_RC6_V1(v))


#define BIT_SHIFT_RARF_RC5_V1				0
#define BIT_MASK_RARF_RC5_V1				0x1f
#define BIT_RARF_RC5_V1(x)				(((x) & BIT_MASK_RARF_RC5_V1) << BIT_SHIFT_RARF_RC5_V1)
#define BITS_RARF_RC5_V1				(BIT_MASK_RARF_RC5_V1 << BIT_SHIFT_RARF_RC5_V1)
#define BIT_CLEAR_RARF_RC5_V1(x)			((x) & (~BITS_RARF_RC5_V1))
#define BIT_GET_RARF_RC5_V1(x)				(((x) >> BIT_SHIFT_RARF_RC5_V1) & BIT_MASK_RARF_RC5_V1)
#define BIT_SET_RARF_RC5_V1(x, v)			(BIT_CLEAR_RARF_RC5_V1(x) | BIT_RARF_RC5_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RRSR				(Offset 0x0440) */

#define BIT_EN_VHTBW_FALL				BIT(31)
#define BIT_EN_HTBW_FALL				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RRSR				(Offset 0x0440) */


#define BIT_SHIFT_RRSR_RSC				21
#define BIT_MASK_RRSR_RSC				0x3
#define BIT_RRSR_RSC(x)				(((x) & BIT_MASK_RRSR_RSC) << BIT_SHIFT_RRSR_RSC)
#define BITS_RRSR_RSC					(BIT_MASK_RRSR_RSC << BIT_SHIFT_RRSR_RSC)
#define BIT_CLEAR_RRSR_RSC(x)				((x) & (~BITS_RRSR_RSC))
#define BIT_GET_RRSR_RSC(x)				(((x) >> BIT_SHIFT_RRSR_RSC) & BIT_MASK_RRSR_RSC)
#define BIT_SET_RRSR_RSC(x, v)				(BIT_CLEAR_RRSR_RSC(x) | BIT_RRSR_RSC(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RRSR				(Offset 0x0440) */

#define BIT_RRSR_BW					BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RRSR				(Offset 0x0440) */


#define BIT_SHIFT_RRSC_BITMAP				0
#define BIT_MASK_RRSC_BITMAP				0xfffff
#define BIT_RRSC_BITMAP(x)				(((x) & BIT_MASK_RRSC_BITMAP) << BIT_SHIFT_RRSC_BITMAP)
#define BITS_RRSC_BITMAP				(BIT_MASK_RRSC_BITMAP << BIT_SHIFT_RRSC_BITMAP)
#define BIT_CLEAR_RRSC_BITMAP(x)			((x) & (~BITS_RRSC_BITMAP))
#define BIT_GET_RRSC_BITMAP(x)				(((x) >> BIT_SHIFT_RRSC_BITMAP) & BIT_MASK_RRSC_BITMAP)
#define BIT_SET_RRSC_BITMAP(x, v)			(BIT_CLEAR_RRSC_BITMAP(x) | BIT_RRSC_BITMAP(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR0				(Offset 0x0444) */


#define BIT_SHIFT_ARFR0_V1				0
#define BIT_MASK_ARFR0_V1				0xffffffffffffffffL
#define BIT_ARFR0_V1(x)				(((x) & BIT_MASK_ARFR0_V1) << BIT_SHIFT_ARFR0_V1)
#define BITS_ARFR0_V1					(BIT_MASK_ARFR0_V1 << BIT_SHIFT_ARFR0_V1)
#define BIT_CLEAR_ARFR0_V1(x)				((x) & (~BITS_ARFR0_V1))
#define BIT_GET_ARFR0_V1(x)				(((x) >> BIT_SHIFT_ARFR0_V1) & BIT_MASK_ARFR0_V1)
#define BIT_SET_ARFR0_V1(x, v)				(BIT_CLEAR_ARFR0_V1(x) | BIT_ARFR0_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR0				(Offset 0x0444) */


#define BIT_SHIFT_ARFRL0				0
#define BIT_MASK_ARFRL0				0xffffffffL
#define BIT_ARFRL0(x)					(((x) & BIT_MASK_ARFRL0) << BIT_SHIFT_ARFRL0)
#define BITS_ARFRL0					(BIT_MASK_ARFRL0 << BIT_SHIFT_ARFRL0)
#define BIT_CLEAR_ARFRL0(x)				((x) & (~BITS_ARFRL0))
#define BIT_GET_ARFRL0(x)				(((x) >> BIT_SHIFT_ARFRL0) & BIT_MASK_ARFRL0)
#define BIT_SET_ARFRL0(x, v)				(BIT_CLEAR_ARFRL0(x) | BIT_ARFRL0(v))


/* 2 REG_ARFRH0				(Offset 0x0448) */


#define BIT_SHIFT_ARFRH0				0
#define BIT_MASK_ARFRH0				0xffffffffL
#define BIT_ARFRH0(x)					(((x) & BIT_MASK_ARFRH0) << BIT_SHIFT_ARFRH0)
#define BITS_ARFRH0					(BIT_MASK_ARFRH0 << BIT_SHIFT_ARFRH0)
#define BIT_CLEAR_ARFRH0(x)				((x) & (~BITS_ARFRH0))
#define BIT_GET_ARFRH0(x)				(((x) >> BIT_SHIFT_ARFRH0) & BIT_MASK_ARFRH0)
#define BIT_SET_ARFRH0(x, v)				(BIT_CLEAR_ARFRH0(x) | BIT_ARFRH0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_REG_ARFR_WT0			(Offset 0x044C) */


#define BIT_SHIFT_RATE7_WEIGHTING			28
#define BIT_MASK_RATE7_WEIGHTING			0xf
#define BIT_RATE7_WEIGHTING(x)				(((x) & BIT_MASK_RATE7_WEIGHTING) << BIT_SHIFT_RATE7_WEIGHTING)
#define BITS_RATE7_WEIGHTING				(BIT_MASK_RATE7_WEIGHTING << BIT_SHIFT_RATE7_WEIGHTING)
#define BIT_CLEAR_RATE7_WEIGHTING(x)			((x) & (~BITS_RATE7_WEIGHTING))
#define BIT_GET_RATE7_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE7_WEIGHTING) & BIT_MASK_RATE7_WEIGHTING)
#define BIT_SET_RATE7_WEIGHTING(x, v)			(BIT_CLEAR_RATE7_WEIGHTING(x) | BIT_RATE7_WEIGHTING(v))


#define BIT_SHIFT_RATE6_WEIGHTING			24
#define BIT_MASK_RATE6_WEIGHTING			0xf
#define BIT_RATE6_WEIGHTING(x)				(((x) & BIT_MASK_RATE6_WEIGHTING) << BIT_SHIFT_RATE6_WEIGHTING)
#define BITS_RATE6_WEIGHTING				(BIT_MASK_RATE6_WEIGHTING << BIT_SHIFT_RATE6_WEIGHTING)
#define BIT_CLEAR_RATE6_WEIGHTING(x)			((x) & (~BITS_RATE6_WEIGHTING))
#define BIT_GET_RATE6_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE6_WEIGHTING) & BIT_MASK_RATE6_WEIGHTING)
#define BIT_SET_RATE6_WEIGHTING(x, v)			(BIT_CLEAR_RATE6_WEIGHTING(x) | BIT_RATE6_WEIGHTING(v))


#define BIT_SHIFT_RATE5_WEIGHTING			20
#define BIT_MASK_RATE5_WEIGHTING			0xf
#define BIT_RATE5_WEIGHTING(x)				(((x) & BIT_MASK_RATE5_WEIGHTING) << BIT_SHIFT_RATE5_WEIGHTING)
#define BITS_RATE5_WEIGHTING				(BIT_MASK_RATE5_WEIGHTING << BIT_SHIFT_RATE5_WEIGHTING)
#define BIT_CLEAR_RATE5_WEIGHTING(x)			((x) & (~BITS_RATE5_WEIGHTING))
#define BIT_GET_RATE5_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE5_WEIGHTING) & BIT_MASK_RATE5_WEIGHTING)
#define BIT_SET_RATE5_WEIGHTING(x, v)			(BIT_CLEAR_RATE5_WEIGHTING(x) | BIT_RATE5_WEIGHTING(v))


#define BIT_SHIFT_RATE4_WEIGHTING			16
#define BIT_MASK_RATE4_WEIGHTING			0xf
#define BIT_RATE4_WEIGHTING(x)				(((x) & BIT_MASK_RATE4_WEIGHTING) << BIT_SHIFT_RATE4_WEIGHTING)
#define BITS_RATE4_WEIGHTING				(BIT_MASK_RATE4_WEIGHTING << BIT_SHIFT_RATE4_WEIGHTING)
#define BIT_CLEAR_RATE4_WEIGHTING(x)			((x) & (~BITS_RATE4_WEIGHTING))
#define BIT_GET_RATE4_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE4_WEIGHTING) & BIT_MASK_RATE4_WEIGHTING)
#define BIT_SET_RATE4_WEIGHTING(x, v)			(BIT_CLEAR_RATE4_WEIGHTING(x) | BIT_RATE4_WEIGHTING(v))


#define BIT_SHIFT_RATE3_WEIGHTING			12
#define BIT_MASK_RATE3_WEIGHTING			0xf
#define BIT_RATE3_WEIGHTING(x)				(((x) & BIT_MASK_RATE3_WEIGHTING) << BIT_SHIFT_RATE3_WEIGHTING)
#define BITS_RATE3_WEIGHTING				(BIT_MASK_RATE3_WEIGHTING << BIT_SHIFT_RATE3_WEIGHTING)
#define BIT_CLEAR_RATE3_WEIGHTING(x)			((x) & (~BITS_RATE3_WEIGHTING))
#define BIT_GET_RATE3_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE3_WEIGHTING) & BIT_MASK_RATE3_WEIGHTING)
#define BIT_SET_RATE3_WEIGHTING(x, v)			(BIT_CLEAR_RATE3_WEIGHTING(x) | BIT_RATE3_WEIGHTING(v))


#define BIT_SHIFT_RATE2_WEIGHTING			8
#define BIT_MASK_RATE2_WEIGHTING			0xf
#define BIT_RATE2_WEIGHTING(x)				(((x) & BIT_MASK_RATE2_WEIGHTING) << BIT_SHIFT_RATE2_WEIGHTING)
#define BITS_RATE2_WEIGHTING				(BIT_MASK_RATE2_WEIGHTING << BIT_SHIFT_RATE2_WEIGHTING)
#define BIT_CLEAR_RATE2_WEIGHTING(x)			((x) & (~BITS_RATE2_WEIGHTING))
#define BIT_GET_RATE2_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE2_WEIGHTING) & BIT_MASK_RATE2_WEIGHTING)
#define BIT_SET_RATE2_WEIGHTING(x, v)			(BIT_CLEAR_RATE2_WEIGHTING(x) | BIT_RATE2_WEIGHTING(v))


#define BIT_SHIFT_RATE1_WEIGHTING			4
#define BIT_MASK_RATE1_WEIGHTING			0xf
#define BIT_RATE1_WEIGHTING(x)				(((x) & BIT_MASK_RATE1_WEIGHTING) << BIT_SHIFT_RATE1_WEIGHTING)
#define BITS_RATE1_WEIGHTING				(BIT_MASK_RATE1_WEIGHTING << BIT_SHIFT_RATE1_WEIGHTING)
#define BIT_CLEAR_RATE1_WEIGHTING(x)			((x) & (~BITS_RATE1_WEIGHTING))
#define BIT_GET_RATE1_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE1_WEIGHTING) & BIT_MASK_RATE1_WEIGHTING)
#define BIT_SET_RATE1_WEIGHTING(x, v)			(BIT_CLEAR_RATE1_WEIGHTING(x) | BIT_RATE1_WEIGHTING(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR1_V1				(Offset 0x044C) */


#define BIT_SHIFT_ARFR1_V1				0
#define BIT_MASK_ARFR1_V1				0xffffffffffffffffL
#define BIT_ARFR1_V1(x)				(((x) & BIT_MASK_ARFR1_V1) << BIT_SHIFT_ARFR1_V1)
#define BITS_ARFR1_V1					(BIT_MASK_ARFR1_V1 << BIT_SHIFT_ARFR1_V1)
#define BIT_CLEAR_ARFR1_V1(x)				((x) & (~BITS_ARFR1_V1))
#define BIT_GET_ARFR1_V1(x)				(((x) >> BIT_SHIFT_ARFR1_V1) & BIT_MASK_ARFR1_V1)
#define BIT_SET_ARFR1_V1(x, v)				(BIT_CLEAR_ARFR1_V1(x) | BIT_ARFR1_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_REG_ARFR_WT0			(Offset 0x044C) */


#define BIT_SHIFT_RATE0_WEIGHTING			0
#define BIT_MASK_RATE0_WEIGHTING			0xf
#define BIT_RATE0_WEIGHTING(x)				(((x) & BIT_MASK_RATE0_WEIGHTING) << BIT_SHIFT_RATE0_WEIGHTING)
#define BITS_RATE0_WEIGHTING				(BIT_MASK_RATE0_WEIGHTING << BIT_SHIFT_RATE0_WEIGHTING)
#define BIT_CLEAR_RATE0_WEIGHTING(x)			((x) & (~BITS_RATE0_WEIGHTING))
#define BIT_GET_RATE0_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE0_WEIGHTING) & BIT_MASK_RATE0_WEIGHTING)
#define BIT_SET_RATE0_WEIGHTING(x, v)			(BIT_CLEAR_RATE0_WEIGHTING(x) | BIT_RATE0_WEIGHTING(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR1_V1				(Offset 0x044C) */


#define BIT_SHIFT_ARFRL1				0
#define BIT_MASK_ARFRL1				0xffffffffL
#define BIT_ARFRL1(x)					(((x) & BIT_MASK_ARFRL1) << BIT_SHIFT_ARFRL1)
#define BITS_ARFRL1					(BIT_MASK_ARFRL1 << BIT_SHIFT_ARFRL1)
#define BIT_CLEAR_ARFRL1(x)				((x) & (~BITS_ARFRL1))
#define BIT_GET_ARFRL1(x)				(((x) >> BIT_SHIFT_ARFRL1) & BIT_MASK_ARFRL1)
#define BIT_SET_ARFRL1(x, v)				(BIT_CLEAR_ARFRL1(x) | BIT_ARFRL1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_REG_ARFR_WT1			(Offset 0x0450) */


#define BIT_SHIFT_RATE15_WEIGHTING			28
#define BIT_MASK_RATE15_WEIGHTING			0xf
#define BIT_RATE15_WEIGHTING(x)			(((x) & BIT_MASK_RATE15_WEIGHTING) << BIT_SHIFT_RATE15_WEIGHTING)
#define BITS_RATE15_WEIGHTING				(BIT_MASK_RATE15_WEIGHTING << BIT_SHIFT_RATE15_WEIGHTING)
#define BIT_CLEAR_RATE15_WEIGHTING(x)			((x) & (~BITS_RATE15_WEIGHTING))
#define BIT_GET_RATE15_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE15_WEIGHTING) & BIT_MASK_RATE15_WEIGHTING)
#define BIT_SET_RATE15_WEIGHTING(x, v)			(BIT_CLEAR_RATE15_WEIGHTING(x) | BIT_RATE15_WEIGHTING(v))


#define BIT_SHIFT_RATE14_WEIGHTING			24
#define BIT_MASK_RATE14_WEIGHTING			0xf
#define BIT_RATE14_WEIGHTING(x)			(((x) & BIT_MASK_RATE14_WEIGHTING) << BIT_SHIFT_RATE14_WEIGHTING)
#define BITS_RATE14_WEIGHTING				(BIT_MASK_RATE14_WEIGHTING << BIT_SHIFT_RATE14_WEIGHTING)
#define BIT_CLEAR_RATE14_WEIGHTING(x)			((x) & (~BITS_RATE14_WEIGHTING))
#define BIT_GET_RATE14_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE14_WEIGHTING) & BIT_MASK_RATE14_WEIGHTING)
#define BIT_SET_RATE14_WEIGHTING(x, v)			(BIT_CLEAR_RATE14_WEIGHTING(x) | BIT_RATE14_WEIGHTING(v))


#define BIT_SHIFT_RATE13_WEIGHTING			20
#define BIT_MASK_RATE13_WEIGHTING			0xf
#define BIT_RATE13_WEIGHTING(x)			(((x) & BIT_MASK_RATE13_WEIGHTING) << BIT_SHIFT_RATE13_WEIGHTING)
#define BITS_RATE13_WEIGHTING				(BIT_MASK_RATE13_WEIGHTING << BIT_SHIFT_RATE13_WEIGHTING)
#define BIT_CLEAR_RATE13_WEIGHTING(x)			((x) & (~BITS_RATE13_WEIGHTING))
#define BIT_GET_RATE13_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE13_WEIGHTING) & BIT_MASK_RATE13_WEIGHTING)
#define BIT_SET_RATE13_WEIGHTING(x, v)			(BIT_CLEAR_RATE13_WEIGHTING(x) | BIT_RATE13_WEIGHTING(v))


#define BIT_SHIFT_RATE12_WEIGHTING			16
#define BIT_MASK_RATE12_WEIGHTING			0xf
#define BIT_RATE12_WEIGHTING(x)			(((x) & BIT_MASK_RATE12_WEIGHTING) << BIT_SHIFT_RATE12_WEIGHTING)
#define BITS_RATE12_WEIGHTING				(BIT_MASK_RATE12_WEIGHTING << BIT_SHIFT_RATE12_WEIGHTING)
#define BIT_CLEAR_RATE12_WEIGHTING(x)			((x) & (~BITS_RATE12_WEIGHTING))
#define BIT_GET_RATE12_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE12_WEIGHTING) & BIT_MASK_RATE12_WEIGHTING)
#define BIT_SET_RATE12_WEIGHTING(x, v)			(BIT_CLEAR_RATE12_WEIGHTING(x) | BIT_RATE12_WEIGHTING(v))


#define BIT_SHIFT_RATE11_WEIGHTING			12
#define BIT_MASK_RATE11_WEIGHTING			0xf
#define BIT_RATE11_WEIGHTING(x)			(((x) & BIT_MASK_RATE11_WEIGHTING) << BIT_SHIFT_RATE11_WEIGHTING)
#define BITS_RATE11_WEIGHTING				(BIT_MASK_RATE11_WEIGHTING << BIT_SHIFT_RATE11_WEIGHTING)
#define BIT_CLEAR_RATE11_WEIGHTING(x)			((x) & (~BITS_RATE11_WEIGHTING))
#define BIT_GET_RATE11_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE11_WEIGHTING) & BIT_MASK_RATE11_WEIGHTING)
#define BIT_SET_RATE11_WEIGHTING(x, v)			(BIT_CLEAR_RATE11_WEIGHTING(x) | BIT_RATE11_WEIGHTING(v))


#define BIT_SHIFT_RATE10_WEIGHTING			8
#define BIT_MASK_RATE10_WEIGHTING			0xf
#define BIT_RATE10_WEIGHTING(x)			(((x) & BIT_MASK_RATE10_WEIGHTING) << BIT_SHIFT_RATE10_WEIGHTING)
#define BITS_RATE10_WEIGHTING				(BIT_MASK_RATE10_WEIGHTING << BIT_SHIFT_RATE10_WEIGHTING)
#define BIT_CLEAR_RATE10_WEIGHTING(x)			((x) & (~BITS_RATE10_WEIGHTING))
#define BIT_GET_RATE10_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE10_WEIGHTING) & BIT_MASK_RATE10_WEIGHTING)
#define BIT_SET_RATE10_WEIGHTING(x, v)			(BIT_CLEAR_RATE10_WEIGHTING(x) | BIT_RATE10_WEIGHTING(v))


#define BIT_SHIFT_RATE9_WEIGHTING			4
#define BIT_MASK_RATE9_WEIGHTING			0xf
#define BIT_RATE9_WEIGHTING(x)				(((x) & BIT_MASK_RATE9_WEIGHTING) << BIT_SHIFT_RATE9_WEIGHTING)
#define BITS_RATE9_WEIGHTING				(BIT_MASK_RATE9_WEIGHTING << BIT_SHIFT_RATE9_WEIGHTING)
#define BIT_CLEAR_RATE9_WEIGHTING(x)			((x) & (~BITS_RATE9_WEIGHTING))
#define BIT_GET_RATE9_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE9_WEIGHTING) & BIT_MASK_RATE9_WEIGHTING)
#define BIT_SET_RATE9_WEIGHTING(x, v)			(BIT_CLEAR_RATE9_WEIGHTING(x) | BIT_RATE9_WEIGHTING(v))


#define BIT_SHIFT_RATE8_WEIGHTING			0
#define BIT_MASK_RATE8_WEIGHTING			0xf
#define BIT_RATE8_WEIGHTING(x)				(((x) & BIT_MASK_RATE8_WEIGHTING) << BIT_SHIFT_RATE8_WEIGHTING)
#define BITS_RATE8_WEIGHTING				(BIT_MASK_RATE8_WEIGHTING << BIT_SHIFT_RATE8_WEIGHTING)
#define BIT_CLEAR_RATE8_WEIGHTING(x)			((x) & (~BITS_RATE8_WEIGHTING))
#define BIT_GET_RATE8_WEIGHTING(x)			(((x) >> BIT_SHIFT_RATE8_WEIGHTING) & BIT_MASK_RATE8_WEIGHTING)
#define BIT_SET_RATE8_WEIGHTING(x, v)			(BIT_CLEAR_RATE8_WEIGHTING(x) | BIT_RATE8_WEIGHTING(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFRH1_V1				(Offset 0x0450) */


#define BIT_SHIFT_ARFRH1				0
#define BIT_MASK_ARFRH1				0xffffffffL
#define BIT_ARFRH1(x)					(((x) & BIT_MASK_ARFRH1) << BIT_SHIFT_ARFRH1)
#define BITS_ARFRH1					(BIT_MASK_ARFRH1 << BIT_SHIFT_ARFRH1)
#define BIT_CLEAR_ARFRH1(x)				((x) & (~BITS_ARFRH1))
#define BIT_GET_ARFRH1(x)				(((x) >> BIT_SHIFT_ARFRH1) & BIT_MASK_ARFRH1)
#define BIT_SET_ARFRH1(x, v)				(BIT_CLEAR_ARFRH1(x) | BIT_ARFRH1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_CHECK_CCK_EN				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_EN_BCN_PKT_REL				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_EN_BCN_PKT_REL_P0				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_BCN_PORT_SEL				BIT(5)
#define BIT_MOREDATA_BYPASS				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_EN_CLR_CMD_REL_BCN_PKT			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_EN_CLR_CMD_REL_BCN_PKT_P0			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_R_EN_SET_MOREDATA				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT_EN_SET_MOREDATA				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CCK_CHECK				(Offset 0x0454) */

#define BIT__R_DIS_CLEAR_MACID_RELEASE			BIT(1)
#define BIT__R_MACID_RELEASE_EN			BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AMPDU_BURST_CTRL			(Offset 0x0455) */

#define BIT_AMPDU_BURST_GLOBAL_EN			BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AMPDU_MAX_TIME			(Offset 0x0456) */


#define BIT_SHIFT_AMPDU_MAX_TIME			0
#define BIT_MASK_AMPDU_MAX_TIME			0xff
#define BIT_AMPDU_MAX_TIME(x)				(((x) & BIT_MASK_AMPDU_MAX_TIME) << BIT_SHIFT_AMPDU_MAX_TIME)
#define BITS_AMPDU_MAX_TIME				(BIT_MASK_AMPDU_MAX_TIME << BIT_SHIFT_AMPDU_MAX_TIME)
#define BIT_CLEAR_AMPDU_MAX_TIME(x)			((x) & (~BITS_AMPDU_MAX_TIME))
#define BIT_GET_AMPDU_MAX_TIME(x)			(((x) >> BIT_SHIFT_AMPDU_MAX_TIME) & BIT_MASK_AMPDU_MAX_TIME)
#define BIT_SET_AMPDU_MAX_TIME(x, v)			(BIT_CLEAR_AMPDU_MAX_TIME(x) | BIT_AMPDU_MAX_TIME(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCNQ1_BDNY_V1			(Offset 0x0456) */


#define BIT_SHIFT_BCNQ1_PGBNDY_V1			0
#define BIT_MASK_BCNQ1_PGBNDY_V1			0xfff
#define BIT_BCNQ1_PGBNDY_V1(x)				(((x) & BIT_MASK_BCNQ1_PGBNDY_V1) << BIT_SHIFT_BCNQ1_PGBNDY_V1)
#define BITS_BCNQ1_PGBNDY_V1				(BIT_MASK_BCNQ1_PGBNDY_V1 << BIT_SHIFT_BCNQ1_PGBNDY_V1)
#define BIT_CLEAR_BCNQ1_PGBNDY_V1(x)			((x) & (~BITS_BCNQ1_PGBNDY_V1))
#define BIT_GET_BCNQ1_PGBNDY_V1(x)			(((x) >> BIT_SHIFT_BCNQ1_PGBNDY_V1) & BIT_MASK_BCNQ1_PGBNDY_V1)
#define BIT_SET_BCNQ1_PGBNDY_V1(x, v)			(BIT_CLEAR_BCNQ1_PGBNDY_V1(x) | BIT_BCNQ1_PGBNDY_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TAB_SEL				(Offset 0x0456) */


#define BIT_SHIFT_RATE_SEL				0
#define BIT_MASK_RATE_SEL				0xf
#define BIT_RATE_SEL(x)				(((x) & BIT_MASK_RATE_SEL) << BIT_SHIFT_RATE_SEL)
#define BITS_RATE_SEL					(BIT_MASK_RATE_SEL << BIT_SHIFT_RATE_SEL)
#define BIT_CLEAR_RATE_SEL(x)				((x) & (~BITS_RATE_SEL))
#define BIT_GET_RATE_SEL(x)				(((x) >> BIT_SHIFT_RATE_SEL) & BIT_MASK_RATE_SEL)
#define BIT_SET_RATE_SEL(x, v)				(BIT_CLEAR_RATE_SEL(x) | BIT_RATE_SEL(v))


/* 2 REG_BCN_INVALID_CTRL			(Offset 0x0457) */

#define BIT_EN_CLR_CMD_REL_BCN_PKT_P4			BIT(7)
#define BIT_EN_BCN_PKT_REL_P4				BIT(6)
#define BIT_EN_CLR_CMD_REL_BCN_PKT_P3			BIT(5)
#define BIT_EN_BCN_PKT_REL_P3				BIT(4)
#define BIT_EN_CLR_CMD_REL_BCN_PKT_P2			BIT(3)
#define BIT_EN_BCN_PKT_REL_P2				BIT(2)
#define BIT_EN_CLR_CMD_REL_BCN_PKT_P1			BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCNQ1_BDNY				(Offset 0x0457) */


#define BIT_SHIFT_BCNQ1_PGBNDY				0
#define BIT_MASK_BCNQ1_PGBNDY				0xff
#define BIT_BCNQ1_PGBNDY(x)				(((x) & BIT_MASK_BCNQ1_PGBNDY) << BIT_SHIFT_BCNQ1_PGBNDY)
#define BITS_BCNQ1_PGBNDY				(BIT_MASK_BCNQ1_PGBNDY << BIT_SHIFT_BCNQ1_PGBNDY)
#define BIT_CLEAR_BCNQ1_PGBNDY(x)			((x) & (~BITS_BCNQ1_PGBNDY))
#define BIT_GET_BCNQ1_PGBNDY(x)			(((x) >> BIT_SHIFT_BCNQ1_PGBNDY) & BIT_MASK_BCNQ1_PGBNDY)
#define BIT_SET_BCNQ1_PGBNDY(x, v)			(BIT_CLEAR_BCNQ1_PGBNDY(x) | BIT_BCNQ1_PGBNDY(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_INVALID_CTRL			(Offset 0x0457) */

#define BIT_EN_BCN_PKT_REL_P1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AMPDU_MAX_LENGTH			(Offset 0x0458) */


#define BIT_SHIFT_AMPDU_MAX_LENGTH			0
#define BIT_MASK_AMPDU_MAX_LENGTH			0xffffffffL
#define BIT_AMPDU_MAX_LENGTH(x)			(((x) & BIT_MASK_AMPDU_MAX_LENGTH) << BIT_SHIFT_AMPDU_MAX_LENGTH)
#define BITS_AMPDU_MAX_LENGTH				(BIT_MASK_AMPDU_MAX_LENGTH << BIT_SHIFT_AMPDU_MAX_LENGTH)
#define BIT_CLEAR_AMPDU_MAX_LENGTH(x)			((x) & (~BITS_AMPDU_MAX_LENGTH))
#define BIT_GET_AMPDU_MAX_LENGTH(x)			(((x) >> BIT_SHIFT_AMPDU_MAX_LENGTH) & BIT_MASK_AMPDU_MAX_LENGTH)
#define BIT_SET_AMPDU_MAX_LENGTH(x, v)			(BIT_CLEAR_AMPDU_MAX_LENGTH(x) | BIT_AMPDU_MAX_LENGTH(v))


/* 2 REG_ACQ_STOP				(Offset 0x045C) */

#define BIT_AC7Q_STOP					BIT(7)
#define BIT_AC6Q_STOP					BIT(6)
#define BIT_AC5Q_STOP					BIT(5)
#define BIT_AC4Q_STOP					BIT(4)
#define BIT_AC3Q_STOP					BIT(3)
#define BIT_AC2Q_STOP					BIT(2)
#define BIT_AC1Q_STOP					BIT(1)
#define BIT_AC0Q_STOP					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_LBK_BUF_HD			(Offset 0x045D) */


#define BIT_SHIFT_WMAC_LBK_BUF_HEAD			0
#define BIT_MASK_WMAC_LBK_BUF_HEAD			0xff
#define BIT_WMAC_LBK_BUF_HEAD(x)			(((x) & BIT_MASK_WMAC_LBK_BUF_HEAD) << BIT_SHIFT_WMAC_LBK_BUF_HEAD)
#define BITS_WMAC_LBK_BUF_HEAD				(BIT_MASK_WMAC_LBK_BUF_HEAD << BIT_SHIFT_WMAC_LBK_BUF_HEAD)
#define BIT_CLEAR_WMAC_LBK_BUF_HEAD(x)			((x) & (~BITS_WMAC_LBK_BUF_HEAD))
#define BIT_GET_WMAC_LBK_BUF_HEAD(x)			(((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD) & BIT_MASK_WMAC_LBK_BUF_HEAD)
#define BIT_SET_WMAC_LBK_BUF_HEAD(x, v)		(BIT_CLEAR_WMAC_LBK_BUF_HEAD(x) | BIT_WMAC_LBK_BUF_HEAD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NDPA_RATE				(Offset 0x045D) */


#define BIT_SHIFT_R_NDPA_RATE_V1			0
#define BIT_MASK_R_NDPA_RATE_V1			0xff
#define BIT_R_NDPA_RATE_V1(x)				(((x) & BIT_MASK_R_NDPA_RATE_V1) << BIT_SHIFT_R_NDPA_RATE_V1)
#define BITS_R_NDPA_RATE_V1				(BIT_MASK_R_NDPA_RATE_V1 << BIT_SHIFT_R_NDPA_RATE_V1)
#define BIT_CLEAR_R_NDPA_RATE_V1(x)			((x) & (~BITS_R_NDPA_RATE_V1))
#define BIT_GET_R_NDPA_RATE_V1(x)			(((x) >> BIT_SHIFT_R_NDPA_RATE_V1) & BIT_MASK_R_NDPA_RATE_V1)
#define BIT_SET_R_NDPA_RATE_V1(x, v)			(BIT_CLEAR_R_NDPA_RATE_V1(x) | BIT_R_NDPA_RATE_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */

#define BIT_R_EN_GNT_BT_AWAKE				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */

#define BIT_EN_GNT_BT_AWAKE				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */

#define BIT_EN_EOF_V1					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_HANG_CTRL			(Offset 0x045E) */

#define BIT_DIS_OQT_BLOCK				BIT(1)
#define BIT_SEARCH_QUEUE_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */

#define BIT_R_DIS_MACID_RELEASE_RTY			BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */

#define BIT_DIS_MACID_RELEASE_RTY			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */


#define BIT_SHIFT_BW_SIGTA				3
#define BIT_MASK_BW_SIGTA				0x3
#define BIT_BW_SIGTA(x)				(((x) & BIT_MASK_BW_SIGTA) << BIT_SHIFT_BW_SIGTA)
#define BITS_BW_SIGTA					(BIT_MASK_BW_SIGTA << BIT_SHIFT_BW_SIGTA)
#define BIT_CLEAR_BW_SIGTA(x)				((x) & (~BITS_BW_SIGTA))
#define BIT_GET_BW_SIGTA(x)				(((x) >> BIT_SHIFT_BW_SIGTA) & BIT_MASK_BW_SIGTA)
#define BIT_SET_BW_SIGTA(x, v)				(BIT_CLEAR_BW_SIGTA(x) | BIT_BW_SIGTA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */


#define BIT_SHIFT_R_NDPA_RATE				2
#define BIT_MASK_R_NDPA_RATE				0x3f
#define BIT_R_NDPA_RATE(x)				(((x) & BIT_MASK_R_NDPA_RATE) << BIT_SHIFT_R_NDPA_RATE)
#define BITS_R_NDPA_RATE				(BIT_MASK_R_NDPA_RATE << BIT_SHIFT_R_NDPA_RATE)
#define BIT_CLEAR_R_NDPA_RATE(x)			((x) & (~BITS_R_NDPA_RATE))
#define BIT_GET_R_NDPA_RATE(x)				(((x) >> BIT_SHIFT_R_NDPA_RATE) & BIT_MASK_R_NDPA_RATE)
#define BIT_SET_R_NDPA_RATE(x, v)			(BIT_CLEAR_R_NDPA_RATE(x) | BIT_R_NDPA_RATE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */

#define BIT_EN_BAR_SIGTA				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */


#define BIT_SHIFT_R_NDPA_BW				0
#define BIT_MASK_R_NDPA_BW				0x3
#define BIT_R_NDPA_BW(x)				(((x) & BIT_MASK_R_NDPA_BW) << BIT_SHIFT_R_NDPA_BW)
#define BITS_R_NDPA_BW					(BIT_MASK_R_NDPA_BW << BIT_SHIFT_R_NDPA_BW)
#define BIT_CLEAR_R_NDPA_BW(x)				((x) & (~BITS_R_NDPA_BW))
#define BIT_GET_R_NDPA_BW(x)				(((x) >> BIT_SHIFT_R_NDPA_BW) & BIT_MASK_R_NDPA_BW)
#define BIT_SET_R_NDPA_BW(x, v)			(BIT_CLEAR_R_NDPA_BW(x) | BIT_R_NDPA_BW(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NDPA_OPT_CTRL			(Offset 0x045F) */


#define BIT_SHIFT_NDPA_BW				0
#define BIT_MASK_NDPA_BW				0x3
#define BIT_NDPA_BW(x)					(((x) & BIT_MASK_NDPA_BW) << BIT_SHIFT_NDPA_BW)
#define BITS_NDPA_BW					(BIT_MASK_NDPA_BW << BIT_SHIFT_NDPA_BW)
#define BIT_CLEAR_NDPA_BW(x)				((x) & (~BITS_NDPA_BW))
#define BIT_GET_NDPA_BW(x)				(((x) >> BIT_SHIFT_NDPA_BW) & BIT_MASK_NDPA_BW)
#define BIT_SET_NDPA_BW(x, v)				(BIT_CLEAR_NDPA_BW(x) | BIT_NDPA_BW(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FAST_EDCA_CTRL			(Offset 0x0460) */


#define BIT_SHIFT_FAST_EDCA_TO_V1			16
#define BIT_MASK_FAST_EDCA_TO_V1			0xff
#define BIT_FAST_EDCA_TO_V1(x)				(((x) & BIT_MASK_FAST_EDCA_TO_V1) << BIT_SHIFT_FAST_EDCA_TO_V1)
#define BITS_FAST_EDCA_TO_V1				(BIT_MASK_FAST_EDCA_TO_V1 << BIT_SHIFT_FAST_EDCA_TO_V1)
#define BIT_CLEAR_FAST_EDCA_TO_V1(x)			((x) & (~BITS_FAST_EDCA_TO_V1))
#define BIT_GET_FAST_EDCA_TO_V1(x)			(((x) >> BIT_SHIFT_FAST_EDCA_TO_V1) & BIT_MASK_FAST_EDCA_TO_V1)
#define BIT_SET_FAST_EDCA_TO_V1(x, v)			(BIT_CLEAR_FAST_EDCA_TO_V1(x) | BIT_FAST_EDCA_TO_V1(v))


#define BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH		12
#define BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH		0xf
#define BIT_AC3_AC7_FAST_EDCA_PKT_TH(x)		(((x) & BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH) << BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH)
#define BITS_AC3_AC7_FAST_EDCA_PKT_TH			(BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH << BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_AC3_AC7_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_AC3_AC7_FAST_EDCA_PKT_TH))
#define BIT_GET_AC3_AC7_FAST_EDCA_PKT_TH(x)		(((x) >> BIT_SHIFT_AC3_AC7_FAST_EDCA_PKT_TH) & BIT_MASK_AC3_AC7_FAST_EDCA_PKT_TH)
#define BIT_SET_AC3_AC7_FAST_EDCA_PKT_TH(x, v)	(BIT_CLEAR_AC3_AC7_FAST_EDCA_PKT_TH(x) | BIT_AC3_AC7_FAST_EDCA_PKT_TH(v))


#define BIT_SHIFT_AC2_FAST_EDCA_PKT_TH			8
#define BIT_MASK_AC2_FAST_EDCA_PKT_TH			0xf
#define BIT_AC2_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_AC2_FAST_EDCA_PKT_TH) << BIT_SHIFT_AC2_FAST_EDCA_PKT_TH)
#define BITS_AC2_FAST_EDCA_PKT_TH			(BIT_MASK_AC2_FAST_EDCA_PKT_TH << BIT_SHIFT_AC2_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_AC2_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_AC2_FAST_EDCA_PKT_TH))
#define BIT_GET_AC2_FAST_EDCA_PKT_TH(x)		(((x) >> BIT_SHIFT_AC2_FAST_EDCA_PKT_TH) & BIT_MASK_AC2_FAST_EDCA_PKT_TH)
#define BIT_SET_AC2_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_AC2_FAST_EDCA_PKT_TH(x) | BIT_AC2_FAST_EDCA_PKT_TH(v))


#define BIT_SHIFT_AC1_FAST_EDCA_PKT_TH			4
#define BIT_MASK_AC1_FAST_EDCA_PKT_TH			0xf
#define BIT_AC1_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_AC1_FAST_EDCA_PKT_TH) << BIT_SHIFT_AC1_FAST_EDCA_PKT_TH)
#define BITS_AC1_FAST_EDCA_PKT_TH			(BIT_MASK_AC1_FAST_EDCA_PKT_TH << BIT_SHIFT_AC1_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_AC1_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_AC1_FAST_EDCA_PKT_TH))
#define BIT_GET_AC1_FAST_EDCA_PKT_TH(x)		(((x) >> BIT_SHIFT_AC1_FAST_EDCA_PKT_TH) & BIT_MASK_AC1_FAST_EDCA_PKT_TH)
#define BIT_SET_AC1_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_AC1_FAST_EDCA_PKT_TH(x) | BIT_AC1_FAST_EDCA_PKT_TH(v))


#define BIT_SHIFT_AC0_FAST_EDCA_PKT_TH			0
#define BIT_MASK_AC0_FAST_EDCA_PKT_TH			0xf
#define BIT_AC0_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_AC0_FAST_EDCA_PKT_TH) << BIT_SHIFT_AC0_FAST_EDCA_PKT_TH)
#define BITS_AC0_FAST_EDCA_PKT_TH			(BIT_MASK_AC0_FAST_EDCA_PKT_TH << BIT_SHIFT_AC0_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_AC0_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_AC0_FAST_EDCA_PKT_TH))
#define BIT_GET_AC0_FAST_EDCA_PKT_TH(x)		(((x) >> BIT_SHIFT_AC0_FAST_EDCA_PKT_TH) & BIT_MASK_AC0_FAST_EDCA_PKT_TH)
#define BIT_SET_AC0_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_AC0_FAST_EDCA_PKT_TH(x) | BIT_AC0_FAST_EDCA_PKT_TH(v))


/* 2 REG_RD_RESP_PKT_TH			(Offset 0x0463) */


#define BIT_SHIFT_RD_RESP_PKT_TH			0
#define BIT_MASK_RD_RESP_PKT_TH			0x1f
#define BIT_RD_RESP_PKT_TH(x)				(((x) & BIT_MASK_RD_RESP_PKT_TH) << BIT_SHIFT_RD_RESP_PKT_TH)
#define BITS_RD_RESP_PKT_TH				(BIT_MASK_RD_RESP_PKT_TH << BIT_SHIFT_RD_RESP_PKT_TH)
#define BIT_CLEAR_RD_RESP_PKT_TH(x)			((x) & (~BITS_RD_RESP_PKT_TH))
#define BIT_GET_RD_RESP_PKT_TH(x)			(((x) >> BIT_SHIFT_RD_RESP_PKT_TH) & BIT_MASK_RD_RESP_PKT_TH)
#define BIT_SET_RD_RESP_PKT_TH(x, v)			(BIT_CLEAR_RD_RESP_PKT_TH(x) | BIT_RD_RESP_PKT_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RD_RESP_PKT_TH			(Offset 0x0463) */


#define BIT_SHIFT_RD_RESP_PKT_TH_V1			0
#define BIT_MASK_RD_RESP_PKT_TH_V1			0x3f
#define BIT_RD_RESP_PKT_TH_V1(x)			(((x) & BIT_MASK_RD_RESP_PKT_TH_V1) << BIT_SHIFT_RD_RESP_PKT_TH_V1)
#define BITS_RD_RESP_PKT_TH_V1				(BIT_MASK_RD_RESP_PKT_TH_V1 << BIT_SHIFT_RD_RESP_PKT_TH_V1)
#define BIT_CLEAR_RD_RESP_PKT_TH_V1(x)			((x) & (~BITS_RD_RESP_PKT_TH_V1))
#define BIT_GET_RD_RESP_PKT_TH_V1(x)			(((x) >> BIT_SHIFT_RD_RESP_PKT_TH_V1) & BIT_MASK_RD_RESP_PKT_TH_V1)
#define BIT_SET_RD_RESP_PKT_TH_V1(x, v)		(BIT_CLEAR_RD_RESP_PKT_TH_V1(x) | BIT_RD_RESP_PKT_TH_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_QUEUEMACID_CMDQ_V1			25
#define BIT_MASK_QUEUEMACID_CMDQ_V1			0x7f
#define BIT_QUEUEMACID_CMDQ_V1(x)			(((x) & BIT_MASK_QUEUEMACID_CMDQ_V1) << BIT_SHIFT_QUEUEMACID_CMDQ_V1)
#define BITS_QUEUEMACID_CMDQ_V1			(BIT_MASK_QUEUEMACID_CMDQ_V1 << BIT_SHIFT_QUEUEMACID_CMDQ_V1)
#define BIT_CLEAR_QUEUEMACID_CMDQ_V1(x)		((x) & (~BITS_QUEUEMACID_CMDQ_V1))
#define BIT_GET_QUEUEMACID_CMDQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_CMDQ_V1) & BIT_MASK_QUEUEMACID_CMDQ_V1)
#define BIT_SET_QUEUEMACID_CMDQ_V1(x, v)		(BIT_CLEAR_QUEUEMACID_CMDQ_V1(x) | BIT_QUEUEMACID_CMDQ_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_PKT_NUM_CMDQ_V2			24
#define BIT_MASK_PKT_NUM_CMDQ_V2			0xff
#define BIT_PKT_NUM_CMDQ_V2(x)				(((x) & BIT_MASK_PKT_NUM_CMDQ_V2) << BIT_SHIFT_PKT_NUM_CMDQ_V2)
#define BITS_PKT_NUM_CMDQ_V2				(BIT_MASK_PKT_NUM_CMDQ_V2 << BIT_SHIFT_PKT_NUM_CMDQ_V2)
#define BIT_CLEAR_PKT_NUM_CMDQ_V2(x)			((x) & (~BITS_PKT_NUM_CMDQ_V2))
#define BIT_GET_PKT_NUM_CMDQ_V2(x)			(((x) >> BIT_SHIFT_PKT_NUM_CMDQ_V2) & BIT_MASK_PKT_NUM_CMDQ_V2)
#define BIT_SET_PKT_NUM_CMDQ_V2(x, v)			(BIT_CLEAR_PKT_NUM_CMDQ_V2(x) | BIT_PKT_NUM_CMDQ_V2(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_PKT_NUM				23
#define BIT_MASK_PKT_NUM				0x1ff
#define BIT_PKT_NUM(x)					(((x) & BIT_MASK_PKT_NUM) << BIT_SHIFT_PKT_NUM)
#define BITS_PKT_NUM					(BIT_MASK_PKT_NUM << BIT_SHIFT_PKT_NUM)
#define BIT_CLEAR_PKT_NUM(x)				((x) & (~BITS_PKT_NUM))
#define BIT_GET_PKT_NUM(x)				(((x) >> BIT_SHIFT_PKT_NUM) & BIT_MASK_PKT_NUM)
#define BIT_SET_PKT_NUM(x, v)				(BIT_CLEAR_PKT_NUM(x) | BIT_PKT_NUM(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_QUEUEAC_CMDQ_V1			23
#define BIT_MASK_QUEUEAC_CMDQ_V1			0x3
#define BIT_QUEUEAC_CMDQ_V1(x)				(((x) & BIT_MASK_QUEUEAC_CMDQ_V1) << BIT_SHIFT_QUEUEAC_CMDQ_V1)
#define BITS_QUEUEAC_CMDQ_V1				(BIT_MASK_QUEUEAC_CMDQ_V1 << BIT_SHIFT_QUEUEAC_CMDQ_V1)
#define BIT_CLEAR_QUEUEAC_CMDQ_V1(x)			((x) & (~BITS_QUEUEAC_CMDQ_V1))
#define BIT_GET_QUEUEAC_CMDQ_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_CMDQ_V1) & BIT_MASK_QUEUEAC_CMDQ_V1)
#define BIT_SET_QUEUEAC_CMDQ_V1(x, v)			(BIT_CLEAR_QUEUEAC_CMDQ_V1(x) | BIT_QUEUEAC_CMDQ_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */

#define BIT_TIDEMPTY_CMDQ_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_TAIL_PKT_CMDQ			16
#define BIT_MASK_TAIL_PKT_CMDQ				0xff
#define BIT_TAIL_PKT_CMDQ(x)				(((x) & BIT_MASK_TAIL_PKT_CMDQ) << BIT_SHIFT_TAIL_PKT_CMDQ)
#define BITS_TAIL_PKT_CMDQ				(BIT_MASK_TAIL_PKT_CMDQ << BIT_SHIFT_TAIL_PKT_CMDQ)
#define BIT_CLEAR_TAIL_PKT_CMDQ(x)			((x) & (~BITS_TAIL_PKT_CMDQ))
#define BIT_GET_TAIL_PKT_CMDQ(x)			(((x) >> BIT_SHIFT_TAIL_PKT_CMDQ) & BIT_MASK_TAIL_PKT_CMDQ)
#define BIT_SET_TAIL_PKT_CMDQ(x, v)			(BIT_CLEAR_TAIL_PKT_CMDQ(x) | BIT_TAIL_PKT_CMDQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_TAIL_PKT_CMDQ_V2			11
#define BIT_MASK_TAIL_PKT_CMDQ_V2			0x7ff
#define BIT_TAIL_PKT_CMDQ_V2(x)			(((x) & BIT_MASK_TAIL_PKT_CMDQ_V2) << BIT_SHIFT_TAIL_PKT_CMDQ_V2)
#define BITS_TAIL_PKT_CMDQ_V2				(BIT_MASK_TAIL_PKT_CMDQ_V2 << BIT_SHIFT_TAIL_PKT_CMDQ_V2)
#define BIT_CLEAR_TAIL_PKT_CMDQ_V2(x)			((x) & (~BITS_TAIL_PKT_CMDQ_V2))
#define BIT_GET_TAIL_PKT_CMDQ_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_CMDQ_V2) & BIT_MASK_TAIL_PKT_CMDQ_V2)
#define BIT_SET_TAIL_PKT_CMDQ_V2(x, v)			(BIT_CLEAR_TAIL_PKT_CMDQ_V2(x) | BIT_TAIL_PKT_CMDQ_V2(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_NEW_EDCA_CTRL_V1			(Offset 0x0464) */


#define BIT_SHIFT_RANDOM_VALUE_SHIFT			9
#define BIT_MASK_RANDOM_VALUE_SHIFT			0x7
#define BIT_RANDOM_VALUE_SHIFT(x)			(((x) & BIT_MASK_RANDOM_VALUE_SHIFT) << BIT_SHIFT_RANDOM_VALUE_SHIFT)
#define BITS_RANDOM_VALUE_SHIFT			(BIT_MASK_RANDOM_VALUE_SHIFT << BIT_SHIFT_RANDOM_VALUE_SHIFT)
#define BIT_CLEAR_RANDOM_VALUE_SHIFT(x)		((x) & (~BITS_RANDOM_VALUE_SHIFT))
#define BIT_GET_RANDOM_VALUE_SHIFT(x)			(((x) >> BIT_SHIFT_RANDOM_VALUE_SHIFT) & BIT_MASK_RANDOM_VALUE_SHIFT)
#define BIT_SET_RANDOM_VALUE_SHIFT(x, v)		(BIT_CLEAR_RANDOM_VALUE_SHIFT(x) | BIT_RANDOM_VALUE_SHIFT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_PKT_NUM_CMDQ				8
#define BIT_MASK_PKT_NUM_CMDQ				0xff
#define BIT_PKT_NUM_CMDQ(x)				(((x) & BIT_MASK_PKT_NUM_CMDQ) << BIT_SHIFT_PKT_NUM_CMDQ)
#define BITS_PKT_NUM_CMDQ				(BIT_MASK_PKT_NUM_CMDQ << BIT_SHIFT_PKT_NUM_CMDQ)
#define BIT_CLEAR_PKT_NUM_CMDQ(x)			((x) & (~BITS_PKT_NUM_CMDQ))
#define BIT_GET_PKT_NUM_CMDQ(x)			(((x) >> BIT_SHIFT_PKT_NUM_CMDQ) & BIT_MASK_PKT_NUM_CMDQ)
#define BIT_SET_PKT_NUM_CMDQ(x, v)			(BIT_CLEAR_PKT_NUM_CMDQ(x) | BIT_PKT_NUM_CMDQ(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_NEW_EDCA_CTRL_V1			(Offset 0x0464) */

#define BIT_ENABLE_NEW_EDCA				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_HEAD_PKT_CMDQ			0
#define BIT_MASK_HEAD_PKT_CMDQ				0xff
#define BIT_HEAD_PKT_CMDQ(x)				(((x) & BIT_MASK_HEAD_PKT_CMDQ) << BIT_SHIFT_HEAD_PKT_CMDQ)
#define BITS_HEAD_PKT_CMDQ				(BIT_MASK_HEAD_PKT_CMDQ << BIT_SHIFT_HEAD_PKT_CMDQ)
#define BIT_CLEAR_HEAD_PKT_CMDQ(x)			((x) & (~BITS_HEAD_PKT_CMDQ))
#define BIT_GET_HEAD_PKT_CMDQ(x)			(((x) >> BIT_SHIFT_HEAD_PKT_CMDQ) & BIT_MASK_HEAD_PKT_CMDQ)
#define BIT_SET_HEAD_PKT_CMDQ(x, v)			(BIT_CLEAR_HEAD_PKT_CMDQ(x) | BIT_HEAD_PKT_CMDQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_INFO				(Offset 0x0464) */


#define BIT_SHIFT_HEAD_PKT_CMDQ_V1			0
#define BIT_MASK_HEAD_PKT_CMDQ_V1			0x7ff
#define BIT_HEAD_PKT_CMDQ_V1(x)			(((x) & BIT_MASK_HEAD_PKT_CMDQ_V1) << BIT_SHIFT_HEAD_PKT_CMDQ_V1)
#define BITS_HEAD_PKT_CMDQ_V1				(BIT_MASK_HEAD_PKT_CMDQ_V1 << BIT_SHIFT_HEAD_PKT_CMDQ_V1)
#define BIT_CLEAR_HEAD_PKT_CMDQ_V1(x)			((x) & (~BITS_HEAD_PKT_CMDQ_V1))
#define BIT_GET_HEAD_PKT_CMDQ_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_CMDQ_V1) & BIT_MASK_HEAD_PKT_CMDQ_V1)
#define BIT_SET_HEAD_PKT_CMDQ_V1(x, v)			(BIT_CLEAR_HEAD_PKT_CMDQ_V1(x) | BIT_HEAD_PKT_CMDQ_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NEW_EDCA_CTRL_V1			(Offset 0x0464) */


#define BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER		0
#define BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER		0xff
#define BIT_MEDIUM_HAS_IDKE_TRIGGER(x)			(((x) & BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER) << BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER)
#define BITS_MEDIUM_HAS_IDKE_TRIGGER			(BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER << BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER)
#define BIT_CLEAR_MEDIUM_HAS_IDKE_TRIGGER(x)		((x) & (~BITS_MEDIUM_HAS_IDKE_TRIGGER))
#define BIT_GET_MEDIUM_HAS_IDKE_TRIGGER(x)		(((x) >> BIT_SHIFT_MEDIUM_HAS_IDKE_TRIGGER) & BIT_MASK_MEDIUM_HAS_IDKE_TRIGGER)
#define BIT_SET_MEDIUM_HAS_IDKE_TRIGGER(x, v)		(BIT_CLEAR_MEDIUM_HAS_IDKE_TRIGGER(x) | BIT_MEDIUM_HAS_IDKE_TRIGGER(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_QUEUEMACID_Q4_V1			25
#define BIT_MASK_QUEUEMACID_Q4_V1			0x7f
#define BIT_QUEUEMACID_Q4_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q4_V1) << BIT_SHIFT_QUEUEMACID_Q4_V1)
#define BITS_QUEUEMACID_Q4_V1				(BIT_MASK_QUEUEMACID_Q4_V1 << BIT_SHIFT_QUEUEMACID_Q4_V1)
#define BIT_CLEAR_QUEUEMACID_Q4_V1(x)			((x) & (~BITS_QUEUEMACID_Q4_V1))
#define BIT_GET_QUEUEMACID_Q4_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q4_V1) & BIT_MASK_QUEUEMACID_Q4_V1)
#define BIT_SET_QUEUEMACID_Q4_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q4_V1(x) | BIT_QUEUEMACID_Q4_V1(v))


#define BIT_SHIFT_QUEUEAC_Q4_V1			23
#define BIT_MASK_QUEUEAC_Q4_V1				0x3
#define BIT_QUEUEAC_Q4_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q4_V1) << BIT_SHIFT_QUEUEAC_Q4_V1)
#define BITS_QUEUEAC_Q4_V1				(BIT_MASK_QUEUEAC_Q4_V1 << BIT_SHIFT_QUEUEAC_Q4_V1)
#define BIT_CLEAR_QUEUEAC_Q4_V1(x)			((x) & (~BITS_QUEUEAC_Q4_V1))
#define BIT_GET_QUEUEAC_Q4_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q4_V1) & BIT_MASK_QUEUEAC_Q4_V1)
#define BIT_SET_QUEUEAC_Q4_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q4_V1(x) | BIT_QUEUEAC_Q4_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */

#define BIT_TIDEMPTY_Q4_V1				BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACQ_STOP_V2				(Offset 0x0468) */

#define BIT_AC19Q_STOP					BIT(19)
#define BIT_AC18Q_STOP					BIT(18)
#define BIT_AC17Q_STOP					BIT(17)
#define BIT_AC16Q_STOP					BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_TAIL_PKT_Q4_V1			15
#define BIT_MASK_TAIL_PKT_Q4_V1			0xff
#define BIT_TAIL_PKT_Q4_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q4_V1) << BIT_SHIFT_TAIL_PKT_Q4_V1)
#define BITS_TAIL_PKT_Q4_V1				(BIT_MASK_TAIL_PKT_Q4_V1 << BIT_SHIFT_TAIL_PKT_Q4_V1)
#define BIT_CLEAR_TAIL_PKT_Q4_V1(x)			((x) & (~BITS_TAIL_PKT_Q4_V1))
#define BIT_GET_TAIL_PKT_Q4_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q4_V1) & BIT_MASK_TAIL_PKT_Q4_V1)
#define BIT_SET_TAIL_PKT_Q4_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q4_V1(x) | BIT_TAIL_PKT_Q4_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_ACQ_STOP_V2				(Offset 0x0468) */

#define BIT_AC15Q_STOP					BIT(15)
#define BIT_AC14Q_STOP					BIT(14)
#define BIT_AC13Q_STOP					BIT(13)
#define BIT_AC12Q_STOP					BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_TAIL_PKT_Q4_V2			11
#define BIT_MASK_TAIL_PKT_Q4_V2			0x7ff
#define BIT_TAIL_PKT_Q4_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q4_V2) << BIT_SHIFT_TAIL_PKT_Q4_V2)
#define BITS_TAIL_PKT_Q4_V2				(BIT_MASK_TAIL_PKT_Q4_V2 << BIT_SHIFT_TAIL_PKT_Q4_V2)
#define BIT_CLEAR_TAIL_PKT_Q4_V2(x)			((x) & (~BITS_TAIL_PKT_Q4_V2))
#define BIT_GET_TAIL_PKT_Q4_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q4_V2) & BIT_MASK_TAIL_PKT_Q4_V2)
#define BIT_SET_TAIL_PKT_Q4_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q4_V2(x) | BIT_TAIL_PKT_Q4_V2(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_ACQ_STOP_V2				(Offset 0x0468) */

#define BIT_AC11Q_STOP					BIT(11)
#define BIT_AC10Q_STOP					BIT(10)
#define BIT_AC9Q_STOP					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_PKT_NUM_Q4_V1			8
#define BIT_MASK_PKT_NUM_Q4_V1				0x7f
#define BIT_PKT_NUM_Q4_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q4_V1) << BIT_SHIFT_PKT_NUM_Q4_V1)
#define BITS_PKT_NUM_Q4_V1				(BIT_MASK_PKT_NUM_Q4_V1 << BIT_SHIFT_PKT_NUM_Q4_V1)
#define BIT_CLEAR_PKT_NUM_Q4_V1(x)			((x) & (~BITS_PKT_NUM_Q4_V1))
#define BIT_GET_PKT_NUM_Q4_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q4_V1) & BIT_MASK_PKT_NUM_Q4_V1)
#define BIT_SET_PKT_NUM_Q4_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q4_V1(x) | BIT_PKT_NUM_Q4_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_ACQ_STOP_V2				(Offset 0x0468) */

#define BIT_AC8Q_STOP					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_HEAD_PKT_Q4				0
#define BIT_MASK_HEAD_PKT_Q4				0xff
#define BIT_HEAD_PKT_Q4(x)				(((x) & BIT_MASK_HEAD_PKT_Q4) << BIT_SHIFT_HEAD_PKT_Q4)
#define BITS_HEAD_PKT_Q4				(BIT_MASK_HEAD_PKT_Q4 << BIT_SHIFT_HEAD_PKT_Q4)
#define BIT_CLEAR_HEAD_PKT_Q4(x)			((x) & (~BITS_HEAD_PKT_Q4))
#define BIT_GET_HEAD_PKT_Q4(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q4) & BIT_MASK_HEAD_PKT_Q4)
#define BIT_SET_HEAD_PKT_Q4(x, v)			(BIT_CLEAR_HEAD_PKT_Q4(x) | BIT_HEAD_PKT_Q4(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q4_INFO				(Offset 0x0468) */


#define BIT_SHIFT_HEAD_PKT_Q4_V1			0
#define BIT_MASK_HEAD_PKT_Q4_V1			0x7ff
#define BIT_HEAD_PKT_Q4_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q4_V1) << BIT_SHIFT_HEAD_PKT_Q4_V1)
#define BITS_HEAD_PKT_Q4_V1				(BIT_MASK_HEAD_PKT_Q4_V1 << BIT_SHIFT_HEAD_PKT_Q4_V1)
#define BIT_CLEAR_HEAD_PKT_Q4_V1(x)			((x) & (~BITS_HEAD_PKT_Q4_V1))
#define BIT_GET_HEAD_PKT_Q4_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q4_V1) & BIT_MASK_HEAD_PKT_Q4_V1)
#define BIT_SET_HEAD_PKT_Q4_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q4_V1(x) | BIT_HEAD_PKT_Q4_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */


#define BIT_SHIFT_QUEUEMACID_Q5_V1			25
#define BIT_MASK_QUEUEMACID_Q5_V1			0x7f
#define BIT_QUEUEMACID_Q5_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q5_V1) << BIT_SHIFT_QUEUEMACID_Q5_V1)
#define BITS_QUEUEMACID_Q5_V1				(BIT_MASK_QUEUEMACID_Q5_V1 << BIT_SHIFT_QUEUEMACID_Q5_V1)
#define BIT_CLEAR_QUEUEMACID_Q5_V1(x)			((x) & (~BITS_QUEUEMACID_Q5_V1))
#define BIT_GET_QUEUEMACID_Q5_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q5_V1) & BIT_MASK_QUEUEMACID_Q5_V1)
#define BIT_SET_QUEUEMACID_Q5_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q5_V1(x) | BIT_QUEUEMACID_Q5_V1(v))


#define BIT_SHIFT_QUEUEAC_Q5_V1			23
#define BIT_MASK_QUEUEAC_Q5_V1				0x3
#define BIT_QUEUEAC_Q5_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q5_V1) << BIT_SHIFT_QUEUEAC_Q5_V1)
#define BITS_QUEUEAC_Q5_V1				(BIT_MASK_QUEUEAC_Q5_V1 << BIT_SHIFT_QUEUEAC_Q5_V1)
#define BIT_CLEAR_QUEUEAC_Q5_V1(x)			((x) & (~BITS_QUEUEAC_Q5_V1))
#define BIT_GET_QUEUEAC_Q5_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q5_V1) & BIT_MASK_QUEUEAC_Q5_V1)
#define BIT_SET_QUEUEAC_Q5_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q5_V1(x) | BIT_QUEUEAC_Q5_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */

#define BIT_TIDEMPTY_Q5_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */


#define BIT_SHIFT_TAIL_PKT_Q5_V1			15
#define BIT_MASK_TAIL_PKT_Q5_V1			0xff
#define BIT_TAIL_PKT_Q5_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q5_V1) << BIT_SHIFT_TAIL_PKT_Q5_V1)
#define BITS_TAIL_PKT_Q5_V1				(BIT_MASK_TAIL_PKT_Q5_V1 << BIT_SHIFT_TAIL_PKT_Q5_V1)
#define BIT_CLEAR_TAIL_PKT_Q5_V1(x)			((x) & (~BITS_TAIL_PKT_Q5_V1))
#define BIT_GET_TAIL_PKT_Q5_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q5_V1) & BIT_MASK_TAIL_PKT_Q5_V1)
#define BIT_SET_TAIL_PKT_Q5_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q5_V1(x) | BIT_TAIL_PKT_Q5_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */


#define BIT_SHIFT_TAIL_PKT_Q5_V2			11
#define BIT_MASK_TAIL_PKT_Q5_V2			0x7ff
#define BIT_TAIL_PKT_Q5_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q5_V2) << BIT_SHIFT_TAIL_PKT_Q5_V2)
#define BITS_TAIL_PKT_Q5_V2				(BIT_MASK_TAIL_PKT_Q5_V2 << BIT_SHIFT_TAIL_PKT_Q5_V2)
#define BIT_CLEAR_TAIL_PKT_Q5_V2(x)			((x) & (~BITS_TAIL_PKT_Q5_V2))
#define BIT_GET_TAIL_PKT_Q5_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q5_V2) & BIT_MASK_TAIL_PKT_Q5_V2)
#define BIT_SET_TAIL_PKT_Q5_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q5_V2(x) | BIT_TAIL_PKT_Q5_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */


#define BIT_SHIFT_PKT_NUM_Q5_V1			8
#define BIT_MASK_PKT_NUM_Q5_V1				0x7f
#define BIT_PKT_NUM_Q5_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q5_V1) << BIT_SHIFT_PKT_NUM_Q5_V1)
#define BITS_PKT_NUM_Q5_V1				(BIT_MASK_PKT_NUM_Q5_V1 << BIT_SHIFT_PKT_NUM_Q5_V1)
#define BIT_CLEAR_PKT_NUM_Q5_V1(x)			((x) & (~BITS_PKT_NUM_Q5_V1))
#define BIT_GET_PKT_NUM_Q5_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q5_V1) & BIT_MASK_PKT_NUM_Q5_V1)
#define BIT_SET_PKT_NUM_Q5_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q5_V1(x) | BIT_PKT_NUM_Q5_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q5				0
#define BIT_MASK_HEAD_PKT_Q5				0xff
#define BIT_HEAD_PKT_Q5(x)				(((x) & BIT_MASK_HEAD_PKT_Q5) << BIT_SHIFT_HEAD_PKT_Q5)
#define BITS_HEAD_PKT_Q5				(BIT_MASK_HEAD_PKT_Q5 << BIT_SHIFT_HEAD_PKT_Q5)
#define BIT_CLEAR_HEAD_PKT_Q5(x)			((x) & (~BITS_HEAD_PKT_Q5))
#define BIT_GET_HEAD_PKT_Q5(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q5) & BIT_MASK_HEAD_PKT_Q5)
#define BIT_SET_HEAD_PKT_Q5(x, v)			(BIT_CLEAR_HEAD_PKT_Q5(x) | BIT_HEAD_PKT_Q5(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q5_INFO				(Offset 0x046C) */


#define BIT_SHIFT_HEAD_PKT_Q5_V1			0
#define BIT_MASK_HEAD_PKT_Q5_V1			0x7ff
#define BIT_HEAD_PKT_Q5_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q5_V1) << BIT_SHIFT_HEAD_PKT_Q5_V1)
#define BITS_HEAD_PKT_Q5_V1				(BIT_MASK_HEAD_PKT_Q5_V1 << BIT_SHIFT_HEAD_PKT_Q5_V1)
#define BIT_CLEAR_HEAD_PKT_Q5_V1(x)			((x) & (~BITS_HEAD_PKT_Q5_V1))
#define BIT_GET_HEAD_PKT_Q5_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q5_V1) & BIT_MASK_HEAD_PKT_Q5_V1)
#define BIT_SET_HEAD_PKT_Q5_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q5_V1(x) | BIT_HEAD_PKT_Q5_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */


#define BIT_SHIFT_QUEUEMACID_Q6_V1			25
#define BIT_MASK_QUEUEMACID_Q6_V1			0x7f
#define BIT_QUEUEMACID_Q6_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q6_V1) << BIT_SHIFT_QUEUEMACID_Q6_V1)
#define BITS_QUEUEMACID_Q6_V1				(BIT_MASK_QUEUEMACID_Q6_V1 << BIT_SHIFT_QUEUEMACID_Q6_V1)
#define BIT_CLEAR_QUEUEMACID_Q6_V1(x)			((x) & (~BITS_QUEUEMACID_Q6_V1))
#define BIT_GET_QUEUEMACID_Q6_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q6_V1) & BIT_MASK_QUEUEMACID_Q6_V1)
#define BIT_SET_QUEUEMACID_Q6_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q6_V1(x) | BIT_QUEUEMACID_Q6_V1(v))


#define BIT_SHIFT_QUEUEAC_Q6_V1			23
#define BIT_MASK_QUEUEAC_Q6_V1				0x3
#define BIT_QUEUEAC_Q6_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q6_V1) << BIT_SHIFT_QUEUEAC_Q6_V1)
#define BITS_QUEUEAC_Q6_V1				(BIT_MASK_QUEUEAC_Q6_V1 << BIT_SHIFT_QUEUEAC_Q6_V1)
#define BIT_CLEAR_QUEUEAC_Q6_V1(x)			((x) & (~BITS_QUEUEAC_Q6_V1))
#define BIT_GET_QUEUEAC_Q6_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q6_V1) & BIT_MASK_QUEUEAC_Q6_V1)
#define BIT_SET_QUEUEAC_Q6_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q6_V1(x) | BIT_QUEUEAC_Q6_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */

#define BIT_TIDEMPTY_Q6_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */


#define BIT_SHIFT_TAIL_PKT_Q6_V1			15
#define BIT_MASK_TAIL_PKT_Q6_V1			0xff
#define BIT_TAIL_PKT_Q6_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q6_V1) << BIT_SHIFT_TAIL_PKT_Q6_V1)
#define BITS_TAIL_PKT_Q6_V1				(BIT_MASK_TAIL_PKT_Q6_V1 << BIT_SHIFT_TAIL_PKT_Q6_V1)
#define BIT_CLEAR_TAIL_PKT_Q6_V1(x)			((x) & (~BITS_TAIL_PKT_Q6_V1))
#define BIT_GET_TAIL_PKT_Q6_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q6_V1) & BIT_MASK_TAIL_PKT_Q6_V1)
#define BIT_SET_TAIL_PKT_Q6_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q6_V1(x) | BIT_TAIL_PKT_Q6_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */


#define BIT_SHIFT_TAIL_PKT_Q6_V2			11
#define BIT_MASK_TAIL_PKT_Q6_V2			0x7ff
#define BIT_TAIL_PKT_Q6_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q6_V2) << BIT_SHIFT_TAIL_PKT_Q6_V2)
#define BITS_TAIL_PKT_Q6_V2				(BIT_MASK_TAIL_PKT_Q6_V2 << BIT_SHIFT_TAIL_PKT_Q6_V2)
#define BIT_CLEAR_TAIL_PKT_Q6_V2(x)			((x) & (~BITS_TAIL_PKT_Q6_V2))
#define BIT_GET_TAIL_PKT_Q6_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q6_V2) & BIT_MASK_TAIL_PKT_Q6_V2)
#define BIT_SET_TAIL_PKT_Q6_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q6_V2(x) | BIT_TAIL_PKT_Q6_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */


#define BIT_SHIFT_PKT_NUM_Q6_V1			8
#define BIT_MASK_PKT_NUM_Q6_V1				0x7f
#define BIT_PKT_NUM_Q6_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q6_V1) << BIT_SHIFT_PKT_NUM_Q6_V1)
#define BITS_PKT_NUM_Q6_V1				(BIT_MASK_PKT_NUM_Q6_V1 << BIT_SHIFT_PKT_NUM_Q6_V1)
#define BIT_CLEAR_PKT_NUM_Q6_V1(x)			((x) & (~BITS_PKT_NUM_Q6_V1))
#define BIT_GET_PKT_NUM_Q6_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q6_V1) & BIT_MASK_PKT_NUM_Q6_V1)
#define BIT_SET_PKT_NUM_Q6_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q6_V1(x) | BIT_PKT_NUM_Q6_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q6				0
#define BIT_MASK_HEAD_PKT_Q6				0xff
#define BIT_HEAD_PKT_Q6(x)				(((x) & BIT_MASK_HEAD_PKT_Q6) << BIT_SHIFT_HEAD_PKT_Q6)
#define BITS_HEAD_PKT_Q6				(BIT_MASK_HEAD_PKT_Q6 << BIT_SHIFT_HEAD_PKT_Q6)
#define BIT_CLEAR_HEAD_PKT_Q6(x)			((x) & (~BITS_HEAD_PKT_Q6))
#define BIT_GET_HEAD_PKT_Q6(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q6) & BIT_MASK_HEAD_PKT_Q6)
#define BIT_SET_HEAD_PKT_Q6(x, v)			(BIT_CLEAR_HEAD_PKT_Q6(x) | BIT_HEAD_PKT_Q6(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q6_INFO				(Offset 0x0470) */


#define BIT_SHIFT_HEAD_PKT_Q6_V1			0
#define BIT_MASK_HEAD_PKT_Q6_V1			0x7ff
#define BIT_HEAD_PKT_Q6_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q6_V1) << BIT_SHIFT_HEAD_PKT_Q6_V1)
#define BITS_HEAD_PKT_Q6_V1				(BIT_MASK_HEAD_PKT_Q6_V1 << BIT_SHIFT_HEAD_PKT_Q6_V1)
#define BIT_CLEAR_HEAD_PKT_Q6_V1(x)			((x) & (~BITS_HEAD_PKT_Q6_V1))
#define BIT_GET_HEAD_PKT_Q6_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q6_V1) & BIT_MASK_HEAD_PKT_Q6_V1)
#define BIT_SET_HEAD_PKT_Q6_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q6_V1(x) | BIT_HEAD_PKT_Q6_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */


#define BIT_SHIFT_QUEUEMACID_Q7_V1			25
#define BIT_MASK_QUEUEMACID_Q7_V1			0x7f
#define BIT_QUEUEMACID_Q7_V1(x)			(((x) & BIT_MASK_QUEUEMACID_Q7_V1) << BIT_SHIFT_QUEUEMACID_Q7_V1)
#define BITS_QUEUEMACID_Q7_V1				(BIT_MASK_QUEUEMACID_Q7_V1 << BIT_SHIFT_QUEUEMACID_Q7_V1)
#define BIT_CLEAR_QUEUEMACID_Q7_V1(x)			((x) & (~BITS_QUEUEMACID_Q7_V1))
#define BIT_GET_QUEUEMACID_Q7_V1(x)			(((x) >> BIT_SHIFT_QUEUEMACID_Q7_V1) & BIT_MASK_QUEUEMACID_Q7_V1)
#define BIT_SET_QUEUEMACID_Q7_V1(x, v)			(BIT_CLEAR_QUEUEMACID_Q7_V1(x) | BIT_QUEUEMACID_Q7_V1(v))


#define BIT_SHIFT_QUEUEAC_Q7_V1			23
#define BIT_MASK_QUEUEAC_Q7_V1				0x3
#define BIT_QUEUEAC_Q7_V1(x)				(((x) & BIT_MASK_QUEUEAC_Q7_V1) << BIT_SHIFT_QUEUEAC_Q7_V1)
#define BITS_QUEUEAC_Q7_V1				(BIT_MASK_QUEUEAC_Q7_V1 << BIT_SHIFT_QUEUEAC_Q7_V1)
#define BIT_CLEAR_QUEUEAC_Q7_V1(x)			((x) & (~BITS_QUEUEAC_Q7_V1))
#define BIT_GET_QUEUEAC_Q7_V1(x)			(((x) >> BIT_SHIFT_QUEUEAC_Q7_V1) & BIT_MASK_QUEUEAC_Q7_V1)
#define BIT_SET_QUEUEAC_Q7_V1(x, v)			(BIT_CLEAR_QUEUEAC_Q7_V1(x) | BIT_QUEUEAC_Q7_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */

#define BIT_TIDEMPTY_Q7_V1				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */


#define BIT_SHIFT_TAIL_PKT_Q7_V1			15
#define BIT_MASK_TAIL_PKT_Q7_V1			0xff
#define BIT_TAIL_PKT_Q7_V1(x)				(((x) & BIT_MASK_TAIL_PKT_Q7_V1) << BIT_SHIFT_TAIL_PKT_Q7_V1)
#define BITS_TAIL_PKT_Q7_V1				(BIT_MASK_TAIL_PKT_Q7_V1 << BIT_SHIFT_TAIL_PKT_Q7_V1)
#define BIT_CLEAR_TAIL_PKT_Q7_V1(x)			((x) & (~BITS_TAIL_PKT_Q7_V1))
#define BIT_GET_TAIL_PKT_Q7_V1(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q7_V1) & BIT_MASK_TAIL_PKT_Q7_V1)
#define BIT_SET_TAIL_PKT_Q7_V1(x, v)			(BIT_CLEAR_TAIL_PKT_Q7_V1(x) | BIT_TAIL_PKT_Q7_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */


#define BIT_SHIFT_TAIL_PKT_Q7_V2			11
#define BIT_MASK_TAIL_PKT_Q7_V2			0x7ff
#define BIT_TAIL_PKT_Q7_V2(x)				(((x) & BIT_MASK_TAIL_PKT_Q7_V2) << BIT_SHIFT_TAIL_PKT_Q7_V2)
#define BITS_TAIL_PKT_Q7_V2				(BIT_MASK_TAIL_PKT_Q7_V2 << BIT_SHIFT_TAIL_PKT_Q7_V2)
#define BIT_CLEAR_TAIL_PKT_Q7_V2(x)			((x) & (~BITS_TAIL_PKT_Q7_V2))
#define BIT_GET_TAIL_PKT_Q7_V2(x)			(((x) >> BIT_SHIFT_TAIL_PKT_Q7_V2) & BIT_MASK_TAIL_PKT_Q7_V2)
#define BIT_SET_TAIL_PKT_Q7_V2(x, v)			(BIT_CLEAR_TAIL_PKT_Q7_V2(x) | BIT_TAIL_PKT_Q7_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */


#define BIT_SHIFT_PKT_NUM_Q7_V1			8
#define BIT_MASK_PKT_NUM_Q7_V1				0x7f
#define BIT_PKT_NUM_Q7_V1(x)				(((x) & BIT_MASK_PKT_NUM_Q7_V1) << BIT_SHIFT_PKT_NUM_Q7_V1)
#define BITS_PKT_NUM_Q7_V1				(BIT_MASK_PKT_NUM_Q7_V1 << BIT_SHIFT_PKT_NUM_Q7_V1)
#define BIT_CLEAR_PKT_NUM_Q7_V1(x)			((x) & (~BITS_PKT_NUM_Q7_V1))
#define BIT_GET_PKT_NUM_Q7_V1(x)			(((x) >> BIT_SHIFT_PKT_NUM_Q7_V1) & BIT_MASK_PKT_NUM_Q7_V1)
#define BIT_SET_PKT_NUM_Q7_V1(x, v)			(BIT_CLEAR_PKT_NUM_Q7_V1(x) | BIT_PKT_NUM_Q7_V1(v))


#define BIT_SHIFT_HEAD_PKT_Q7				0
#define BIT_MASK_HEAD_PKT_Q7				0xff
#define BIT_HEAD_PKT_Q7(x)				(((x) & BIT_MASK_HEAD_PKT_Q7) << BIT_SHIFT_HEAD_PKT_Q7)
#define BITS_HEAD_PKT_Q7				(BIT_MASK_HEAD_PKT_Q7 << BIT_SHIFT_HEAD_PKT_Q7)
#define BIT_CLEAR_HEAD_PKT_Q7(x)			((x) & (~BITS_HEAD_PKT_Q7))
#define BIT_GET_HEAD_PKT_Q7(x)				(((x) >> BIT_SHIFT_HEAD_PKT_Q7) & BIT_MASK_HEAD_PKT_Q7)
#define BIT_SET_HEAD_PKT_Q7(x, v)			(BIT_CLEAR_HEAD_PKT_Q7(x) | BIT_HEAD_PKT_Q7(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q7_INFO				(Offset 0x0474) */


#define BIT_SHIFT_HEAD_PKT_Q7_V1			0
#define BIT_MASK_HEAD_PKT_Q7_V1			0x7ff
#define BIT_HEAD_PKT_Q7_V1(x)				(((x) & BIT_MASK_HEAD_PKT_Q7_V1) << BIT_SHIFT_HEAD_PKT_Q7_V1)
#define BITS_HEAD_PKT_Q7_V1				(BIT_MASK_HEAD_PKT_Q7_V1 << BIT_SHIFT_HEAD_PKT_Q7_V1)
#define BIT_CLEAR_HEAD_PKT_Q7_V1(x)			((x) & (~BITS_HEAD_PKT_Q7_V1))
#define BIT_GET_HEAD_PKT_Q7_V1(x)			(((x) >> BIT_SHIFT_HEAD_PKT_Q7_V1) & BIT_MASK_HEAD_PKT_Q7_V1)
#define BIT_SET_HEAD_PKT_Q7_V1(x, v)			(BIT_CLEAR_HEAD_PKT_Q7_V1(x) | BIT_HEAD_PKT_Q7_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_LBK_BUF_HD_V1			(Offset 0x0478) */


#define BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1			0
#define BIT_MASK_WMAC_LBK_BUF_HEAD_V1			0xfff
#define BIT_WMAC_LBK_BUF_HEAD_V1(x)			(((x) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1) << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1)
#define BITS_WMAC_LBK_BUF_HEAD_V1			(BIT_MASK_WMAC_LBK_BUF_HEAD_V1 << BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1)
#define BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1(x)		((x) & (~BITS_WMAC_LBK_BUF_HEAD_V1))
#define BIT_GET_WMAC_LBK_BUF_HEAD_V1(x)		(((x) >> BIT_SHIFT_WMAC_LBK_BUF_HEAD_V1) & BIT_MASK_WMAC_LBK_BUF_HEAD_V1)
#define BIT_SET_WMAC_LBK_BUF_HEAD_V1(x, v)		(BIT_CLEAR_WMAC_LBK_BUF_HEAD_V1(x) | BIT_WMAC_LBK_BUF_HEAD_V1(v))


/* 2 REG_MGQ_BDNY_V1				(Offset 0x047A) */


#define BIT_SHIFT_MGQ_PGBNDY_V1			0
#define BIT_MASK_MGQ_PGBNDY_V1				0xfff
#define BIT_MGQ_PGBNDY_V1(x)				(((x) & BIT_MASK_MGQ_PGBNDY_V1) << BIT_SHIFT_MGQ_PGBNDY_V1)
#define BITS_MGQ_PGBNDY_V1				(BIT_MASK_MGQ_PGBNDY_V1 << BIT_SHIFT_MGQ_PGBNDY_V1)
#define BIT_CLEAR_MGQ_PGBNDY_V1(x)			((x) & (~BITS_MGQ_PGBNDY_V1))
#define BIT_GET_MGQ_PGBNDY_V1(x)			(((x) >> BIT_SHIFT_MGQ_PGBNDY_V1) & BIT_MASK_MGQ_PGBNDY_V1)
#define BIT_SET_MGQ_PGBNDY_V1(x, v)			(BIT_CLEAR_MGQ_PGBNDY_V1(x) | BIT_MGQ_PGBNDY_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_SPC_READ_PTR				24
#define BIT_MASK_SPC_READ_PTR				0xf
#define BIT_SPC_READ_PTR(x)				(((x) & BIT_MASK_SPC_READ_PTR) << BIT_SHIFT_SPC_READ_PTR)
#define BITS_SPC_READ_PTR				(BIT_MASK_SPC_READ_PTR << BIT_SHIFT_SPC_READ_PTR)
#define BIT_CLEAR_SPC_READ_PTR(x)			((x) & (~BITS_SPC_READ_PTR))
#define BIT_GET_SPC_READ_PTR(x)			(((x) >> BIT_SHIFT_SPC_READ_PTR) & BIT_MASK_SPC_READ_PTR)
#define BIT_SET_SPC_READ_PTR(x, v)			(BIT_CLEAR_SPC_READ_PTR(x) | BIT_SPC_READ_PTR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_TRXRPT_TIMER_TH			24
#define BIT_MASK_TRXRPT_TIMER_TH			0xff
#define BIT_TRXRPT_TIMER_TH(x)				(((x) & BIT_MASK_TRXRPT_TIMER_TH) << BIT_SHIFT_TRXRPT_TIMER_TH)
#define BITS_TRXRPT_TIMER_TH				(BIT_MASK_TRXRPT_TIMER_TH << BIT_SHIFT_TRXRPT_TIMER_TH)
#define BIT_CLEAR_TRXRPT_TIMER_TH(x)			((x) & (~BITS_TRXRPT_TIMER_TH))
#define BIT_GET_TRXRPT_TIMER_TH(x)			(((x) >> BIT_SHIFT_TRXRPT_TIMER_TH) & BIT_MASK_TRXRPT_TIMER_TH)
#define BIT_SET_TRXRPT_TIMER_TH(x, v)			(BIT_CLEAR_TRXRPT_TIMER_TH(x) | BIT_TRXRPT_TIMER_TH(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_SPC_WRITE_PTR			16
#define BIT_MASK_SPC_WRITE_PTR				0xf
#define BIT_SPC_WRITE_PTR(x)				(((x) & BIT_MASK_SPC_WRITE_PTR) << BIT_SHIFT_SPC_WRITE_PTR)
#define BITS_SPC_WRITE_PTR				(BIT_MASK_SPC_WRITE_PTR << BIT_SHIFT_SPC_WRITE_PTR)
#define BIT_CLEAR_SPC_WRITE_PTR(x)			((x) & (~BITS_SPC_WRITE_PTR))
#define BIT_GET_SPC_WRITE_PTR(x)			(((x) >> BIT_SHIFT_SPC_WRITE_PTR) & BIT_MASK_SPC_WRITE_PTR)
#define BIT_SET_SPC_WRITE_PTR(x, v)			(BIT_CLEAR_SPC_WRITE_PTR(x) | BIT_SPC_WRITE_PTR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_TRXRPT_LEN_TH			16
#define BIT_MASK_TRXRPT_LEN_TH				0xff
#define BIT_TRXRPT_LEN_TH(x)				(((x) & BIT_MASK_TRXRPT_LEN_TH) << BIT_SHIFT_TRXRPT_LEN_TH)
#define BITS_TRXRPT_LEN_TH				(BIT_MASK_TRXRPT_LEN_TH << BIT_SHIFT_TRXRPT_LEN_TH)
#define BIT_CLEAR_TRXRPT_LEN_TH(x)			((x) & (~BITS_TRXRPT_LEN_TH))
#define BIT_GET_TRXRPT_LEN_TH(x)			(((x) >> BIT_SHIFT_TRXRPT_LEN_TH) & BIT_MASK_TRXRPT_LEN_TH)
#define BIT_SET_TRXRPT_LEN_TH(x, v)			(BIT_CLEAR_TRXRPT_LEN_TH(x) | BIT_TRXRPT_LEN_TH(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_AC_READ_PTR				8
#define BIT_MASK_AC_READ_PTR				0xf
#define BIT_AC_READ_PTR(x)				(((x) & BIT_MASK_AC_READ_PTR) << BIT_SHIFT_AC_READ_PTR)
#define BITS_AC_READ_PTR				(BIT_MASK_AC_READ_PTR << BIT_SHIFT_AC_READ_PTR)
#define BIT_CLEAR_AC_READ_PTR(x)			((x) & (~BITS_AC_READ_PTR))
#define BIT_GET_AC_READ_PTR(x)				(((x) >> BIT_SHIFT_AC_READ_PTR) & BIT_MASK_AC_READ_PTR)
#define BIT_SET_AC_READ_PTR(x, v)			(BIT_CLEAR_AC_READ_PTR(x) | BIT_AC_READ_PTR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_TRXRPT_READ_PTR			8
#define BIT_MASK_TRXRPT_READ_PTR			0xff
#define BIT_TRXRPT_READ_PTR(x)				(((x) & BIT_MASK_TRXRPT_READ_PTR) << BIT_SHIFT_TRXRPT_READ_PTR)
#define BITS_TRXRPT_READ_PTR				(BIT_MASK_TRXRPT_READ_PTR << BIT_SHIFT_TRXRPT_READ_PTR)
#define BIT_CLEAR_TRXRPT_READ_PTR(x)			((x) & (~BITS_TRXRPT_READ_PTR))
#define BIT_GET_TRXRPT_READ_PTR(x)			(((x) >> BIT_SHIFT_TRXRPT_READ_PTR) & BIT_MASK_TRXRPT_READ_PTR)
#define BIT_SET_TRXRPT_READ_PTR(x, v)			(BIT_CLEAR_TRXRPT_READ_PTR(x) | BIT_TRXRPT_READ_PTR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_AC_WRITE_PTR				0
#define BIT_MASK_AC_WRITE_PTR				0xf
#define BIT_AC_WRITE_PTR(x)				(((x) & BIT_MASK_AC_WRITE_PTR) << BIT_SHIFT_AC_WRITE_PTR)
#define BITS_AC_WRITE_PTR				(BIT_MASK_AC_WRITE_PTR << BIT_SHIFT_AC_WRITE_PTR)
#define BIT_CLEAR_AC_WRITE_PTR(x)			((x) & (~BITS_AC_WRITE_PTR))
#define BIT_GET_AC_WRITE_PTR(x)			(((x) >> BIT_SHIFT_AC_WRITE_PTR) & BIT_MASK_AC_WRITE_PTR)
#define BIT_SET_AC_WRITE_PTR(x, v)			(BIT_CLEAR_AC_WRITE_PTR(x) | BIT_AC_WRITE_PTR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_CTRL				(Offset 0x047C) */


#define BIT_SHIFT_TRXRPT_WRITE_PTR			0
#define BIT_MASK_TRXRPT_WRITE_PTR			0xff
#define BIT_TRXRPT_WRITE_PTR(x)			(((x) & BIT_MASK_TRXRPT_WRITE_PTR) << BIT_SHIFT_TRXRPT_WRITE_PTR)
#define BITS_TRXRPT_WRITE_PTR				(BIT_MASK_TRXRPT_WRITE_PTR << BIT_SHIFT_TRXRPT_WRITE_PTR)
#define BIT_CLEAR_TRXRPT_WRITE_PTR(x)			((x) & (~BITS_TRXRPT_WRITE_PTR))
#define BIT_GET_TRXRPT_WRITE_PTR(x)			(((x) >> BIT_SHIFT_TRXRPT_WRITE_PTR) & BIT_MASK_TRXRPT_WRITE_PTR)
#define BIT_SET_TRXRPT_WRITE_PTR(x, v)			(BIT_CLEAR_TRXRPT_WRITE_PTR(x) | BIT_TRXRPT_WRITE_PTR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_INIRTS_RATE_SEL			(Offset 0x0480) */

#define BIT_LEAG_RTS_BW_DUP				BIT(5)

/* 2 REG_BASIC_CFEND_RATE			(Offset 0x0481) */


#define BIT_SHIFT_BASIC_CFEND_RATE			0
#define BIT_MASK_BASIC_CFEND_RATE			0x1f
#define BIT_BASIC_CFEND_RATE(x)			(((x) & BIT_MASK_BASIC_CFEND_RATE) << BIT_SHIFT_BASIC_CFEND_RATE)
#define BITS_BASIC_CFEND_RATE				(BIT_MASK_BASIC_CFEND_RATE << BIT_SHIFT_BASIC_CFEND_RATE)
#define BIT_CLEAR_BASIC_CFEND_RATE(x)			((x) & (~BITS_BASIC_CFEND_RATE))
#define BIT_GET_BASIC_CFEND_RATE(x)			(((x) >> BIT_SHIFT_BASIC_CFEND_RATE) & BIT_MASK_BASIC_CFEND_RATE)
#define BIT_SET_BASIC_CFEND_RATE(x, v)			(BIT_CLEAR_BASIC_CFEND_RATE(x) | BIT_BASIC_CFEND_RATE(v))


/* 2 REG_STBC_CFEND_RATE			(Offset 0x0482) */


#define BIT_SHIFT_STBC_CFEND_RATE			0
#define BIT_MASK_STBC_CFEND_RATE			0x1f
#define BIT_STBC_CFEND_RATE(x)				(((x) & BIT_MASK_STBC_CFEND_RATE) << BIT_SHIFT_STBC_CFEND_RATE)
#define BITS_STBC_CFEND_RATE				(BIT_MASK_STBC_CFEND_RATE << BIT_SHIFT_STBC_CFEND_RATE)
#define BIT_CLEAR_STBC_CFEND_RATE(x)			((x) & (~BITS_STBC_CFEND_RATE))
#define BIT_GET_STBC_CFEND_RATE(x)			(((x) >> BIT_SHIFT_STBC_CFEND_RATE) & BIT_MASK_STBC_CFEND_RATE)
#define BIT_SET_STBC_CFEND_RATE(x, v)			(BIT_CLEAR_STBC_CFEND_RATE(x) | BIT_STBC_CFEND_RATE(v))


/* 2 REG_DATA_SC				(Offset 0x0483) */


#define BIT_SHIFT_TXSC_40M				4
#define BIT_MASK_TXSC_40M				0xf
#define BIT_TXSC_40M(x)				(((x) & BIT_MASK_TXSC_40M) << BIT_SHIFT_TXSC_40M)
#define BITS_TXSC_40M					(BIT_MASK_TXSC_40M << BIT_SHIFT_TXSC_40M)
#define BIT_CLEAR_TXSC_40M(x)				((x) & (~BITS_TXSC_40M))
#define BIT_GET_TXSC_40M(x)				(((x) >> BIT_SHIFT_TXSC_40M) & BIT_MASK_TXSC_40M)
#define BIT_SET_TXSC_40M(x, v)				(BIT_CLEAR_TXSC_40M(x) | BIT_TXSC_40M(v))


#define BIT_SHIFT_TXSC_20M				0
#define BIT_MASK_TXSC_20M				0xf
#define BIT_TXSC_20M(x)				(((x) & BIT_MASK_TXSC_20M) << BIT_SHIFT_TXSC_20M)
#define BITS_TXSC_20M					(BIT_MASK_TXSC_20M << BIT_SHIFT_TXSC_20M)
#define BIT_CLEAR_TXSC_20M(x)				((x) & (~BITS_TXSC_20M))
#define BIT_GET_TXSC_20M(x)				(((x) >> BIT_SHIFT_TXSC_20M) & BIT_MASK_TXSC_20M)
#define BIT_SET_TXSC_20M(x, v)				(BIT_CLEAR_TXSC_20M(x) | BIT_TXSC_20M(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID_SLEEP3			(Offset 0x0484) */


#define BIT_SHIFT_MACID127_96_PKTSLEEP			0
#define BIT_MASK_MACID127_96_PKTSLEEP			0xffffffffL
#define BIT_MACID127_96_PKTSLEEP(x)			(((x) & BIT_MASK_MACID127_96_PKTSLEEP) << BIT_SHIFT_MACID127_96_PKTSLEEP)
#define BITS_MACID127_96_PKTSLEEP			(BIT_MASK_MACID127_96_PKTSLEEP << BIT_SHIFT_MACID127_96_PKTSLEEP)
#define BIT_CLEAR_MACID127_96_PKTSLEEP(x)		((x) & (~BITS_MACID127_96_PKTSLEEP))
#define BIT_GET_MACID127_96_PKTSLEEP(x)		(((x) >> BIT_SHIFT_MACID127_96_PKTSLEEP) & BIT_MASK_MACID127_96_PKTSLEEP)
#define BIT_SET_MACID127_96_PKTSLEEP(x, v)		(BIT_CLEAR_MACID127_96_PKTSLEEP(x) | BIT_MACID127_96_PKTSLEEP(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_SC1				(Offset 0x0487) */


#define BIT_SHIFT_TXSC_160M				4
#define BIT_MASK_TXSC_160M				0xf
#define BIT_TXSC_160M(x)				(((x) & BIT_MASK_TXSC_160M) << BIT_SHIFT_TXSC_160M)
#define BITS_TXSC_160M					(BIT_MASK_TXSC_160M << BIT_SHIFT_TXSC_160M)
#define BIT_CLEAR_TXSC_160M(x)				((x) & (~BITS_TXSC_160M))
#define BIT_GET_TXSC_160M(x)				(((x) >> BIT_SHIFT_TXSC_160M) & BIT_MASK_TXSC_160M)
#define BIT_SET_TXSC_160M(x, v)			(BIT_CLEAR_TXSC_160M(x) | BIT_TXSC_160M(v))


#define BIT_SHIFT_TXSC_80M				0
#define BIT_MASK_TXSC_80M				0xf
#define BIT_TXSC_80M(x)				(((x) & BIT_MASK_TXSC_80M) << BIT_SHIFT_TXSC_80M)
#define BITS_TXSC_80M					(BIT_MASK_TXSC_80M << BIT_SHIFT_TXSC_80M)
#define BIT_CLEAR_TXSC_80M(x)				((x) & (~BITS_TXSC_80M))
#define BIT_GET_TXSC_80M(x)				(((x) >> BIT_SHIFT_TXSC_80M) & BIT_MASK_TXSC_80M)
#define BIT_SET_TXSC_80M(x, v)				(BIT_CLEAR_TXSC_80M(x) | BIT_TXSC_80M(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID_SLEEP1			(Offset 0x0488) */


#define BIT_SHIFT_MACID63_32_PKTSLEEP			0
#define BIT_MASK_MACID63_32_PKTSLEEP			0xffffffffL
#define BIT_MACID63_32_PKTSLEEP(x)			(((x) & BIT_MASK_MACID63_32_PKTSLEEP) << BIT_SHIFT_MACID63_32_PKTSLEEP)
#define BITS_MACID63_32_PKTSLEEP			(BIT_MASK_MACID63_32_PKTSLEEP << BIT_SHIFT_MACID63_32_PKTSLEEP)
#define BIT_CLEAR_MACID63_32_PKTSLEEP(x)		((x) & (~BITS_MACID63_32_PKTSLEEP))
#define BIT_GET_MACID63_32_PKTSLEEP(x)			(((x) >> BIT_SHIFT_MACID63_32_PKTSLEEP) & BIT_MASK_MACID63_32_PKTSLEEP)
#define BIT_SET_MACID63_32_PKTSLEEP(x, v)		(BIT_CLEAR_MACID63_32_PKTSLEEP(x) | BIT_MACID63_32_PKTSLEEP(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR2_V1				(Offset 0x048C) */


#define BIT_SHIFT_ARFR2_V1				0
#define BIT_MASK_ARFR2_V1				0xffffffffffffffffL
#define BIT_ARFR2_V1(x)				(((x) & BIT_MASK_ARFR2_V1) << BIT_SHIFT_ARFR2_V1)
#define BITS_ARFR2_V1					(BIT_MASK_ARFR2_V1 << BIT_SHIFT_ARFR2_V1)
#define BIT_CLEAR_ARFR2_V1(x)				((x) & (~BITS_ARFR2_V1))
#define BIT_GET_ARFR2_V1(x)				(((x) >> BIT_SHIFT_ARFR2_V1) & BIT_MASK_ARFR2_V1)
#define BIT_SET_ARFR2_V1(x, v)				(BIT_CLEAR_ARFR2_V1(x) | BIT_ARFR2_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR2_V1				(Offset 0x048C) */


#define BIT_SHIFT_ARFRL2				0
#define BIT_MASK_ARFRL2				0xffffffffL
#define BIT_ARFRL2(x)					(((x) & BIT_MASK_ARFRL2) << BIT_SHIFT_ARFRL2)
#define BITS_ARFRL2					(BIT_MASK_ARFRL2 << BIT_SHIFT_ARFRL2)
#define BIT_CLEAR_ARFRL2(x)				((x) & (~BITS_ARFRL2))
#define BIT_GET_ARFRL2(x)				(((x) >> BIT_SHIFT_ARFRL2) & BIT_MASK_ARFRL2)
#define BIT_SET_ARFRL2(x, v)				(BIT_CLEAR_ARFRL2(x) | BIT_ARFRL2(v))


/* 2 REG_ARFRH2_V1				(Offset 0x0490) */


#define BIT_SHIFT_ARFRH2				0
#define BIT_MASK_ARFRH2				0xffffffffL
#define BIT_ARFRH2(x)					(((x) & BIT_MASK_ARFRH2) << BIT_SHIFT_ARFRH2)
#define BITS_ARFRH2					(BIT_MASK_ARFRH2 << BIT_SHIFT_ARFRH2)
#define BIT_CLEAR_ARFRH2(x)				((x) & (~BITS_ARFRH2))
#define BIT_GET_ARFRH2(x)				(((x) >> BIT_SHIFT_ARFRH2) & BIT_MASK_ARFRH2)
#define BIT_SET_ARFRH2(x, v)				(BIT_CLEAR_ARFRH2(x) | BIT_ARFRH2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR3_V1				(Offset 0x0494) */


#define BIT_SHIFT_ARFR3_V1				0
#define BIT_MASK_ARFR3_V1				0xffffffffffffffffL
#define BIT_ARFR3_V1(x)				(((x) & BIT_MASK_ARFR3_V1) << BIT_SHIFT_ARFR3_V1)
#define BITS_ARFR3_V1					(BIT_MASK_ARFR3_V1 << BIT_SHIFT_ARFR3_V1)
#define BIT_CLEAR_ARFR3_V1(x)				((x) & (~BITS_ARFR3_V1))
#define BIT_GET_ARFR3_V1(x)				(((x) >> BIT_SHIFT_ARFR3_V1) & BIT_MASK_ARFR3_V1)
#define BIT_SET_ARFR3_V1(x, v)				(BIT_CLEAR_ARFR3_V1(x) | BIT_ARFR3_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR3_V1				(Offset 0x0494) */


#define BIT_SHIFT_ARFRL3				0
#define BIT_MASK_ARFRL3				0xffffffffL
#define BIT_ARFRL3(x)					(((x) & BIT_MASK_ARFRL3) << BIT_SHIFT_ARFRL3)
#define BITS_ARFRL3					(BIT_MASK_ARFRL3 << BIT_SHIFT_ARFRL3)
#define BIT_CLEAR_ARFRL3(x)				((x) & (~BITS_ARFRL3))
#define BIT_GET_ARFRL3(x)				(((x) >> BIT_SHIFT_ARFRL3) & BIT_MASK_ARFRL3)
#define BIT_SET_ARFRL3(x, v)				(BIT_CLEAR_ARFRL3(x) | BIT_ARFRL3(v))


/* 2 REG_ARFRH3_V1				(Offset 0x0498) */


#define BIT_SHIFT_ARFRH3				0
#define BIT_MASK_ARFRH3				0xffffffffL
#define BIT_ARFRH3(x)					(((x) & BIT_MASK_ARFRH3) << BIT_SHIFT_ARFRH3)
#define BITS_ARFRH3					(BIT_MASK_ARFRH3 << BIT_SHIFT_ARFRH3)
#define BIT_CLEAR_ARFRH3(x)				((x) & (~BITS_ARFRH3))
#define BIT_GET_ARFRH3(x)				(((x) >> BIT_SHIFT_ARFRH3) & BIT_MASK_ARFRH3)
#define BIT_SET_ARFRH3(x, v)				(BIT_CLEAR_ARFRH3(x) | BIT_ARFRH3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR4				(Offset 0x049C) */


#define BIT_SHIFT_ARFR4				0
#define BIT_MASK_ARFR4					0xffffffffffffffffL
#define BIT_ARFR4(x)					(((x) & BIT_MASK_ARFR4) << BIT_SHIFT_ARFR4)
#define BITS_ARFR4					(BIT_MASK_ARFR4 << BIT_SHIFT_ARFR4)
#define BIT_CLEAR_ARFR4(x)				((x) & (~BITS_ARFR4))
#define BIT_GET_ARFR4(x)				(((x) >> BIT_SHIFT_ARFR4) & BIT_MASK_ARFR4)
#define BIT_SET_ARFR4(x, v)				(BIT_CLEAR_ARFR4(x) | BIT_ARFR4(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR4				(Offset 0x049C) */


#define BIT_SHIFT_ARFRL4				0
#define BIT_MASK_ARFRL4				0xffffffffL
#define BIT_ARFRL4(x)					(((x) & BIT_MASK_ARFRL4) << BIT_SHIFT_ARFRL4)
#define BITS_ARFRL4					(BIT_MASK_ARFRL4 << BIT_SHIFT_ARFRL4)
#define BIT_CLEAR_ARFRL4(x)				((x) & (~BITS_ARFRL4))
#define BIT_GET_ARFRL4(x)				(((x) >> BIT_SHIFT_ARFRL4) & BIT_MASK_ARFRL4)
#define BIT_SET_ARFRL4(x, v)				(BIT_CLEAR_ARFRL4(x) | BIT_ARFRL4(v))


/* 2 REG_ARFRH4				(Offset 0x04A0) */


#define BIT_SHIFT_ARFRH4				0
#define BIT_MASK_ARFRH4				0xffffffffL
#define BIT_ARFRH4(x)					(((x) & BIT_MASK_ARFRH4) << BIT_SHIFT_ARFRH4)
#define BITS_ARFRH4					(BIT_MASK_ARFRH4 << BIT_SHIFT_ARFRH4)
#define BIT_CLEAR_ARFRH4(x)				((x) & (~BITS_ARFRH4))
#define BIT_GET_ARFRH4(x)				(((x) >> BIT_SHIFT_ARFRH4) & BIT_MASK_ARFRH4)
#define BIT_SET_ARFRH4(x, v)				(BIT_CLEAR_ARFRH4(x) | BIT_ARFRH4(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ARFR5				(Offset 0x04A4) */


#define BIT_SHIFT_ARFR5				0
#define BIT_MASK_ARFR5					0xffffffffffffffffL
#define BIT_ARFR5(x)					(((x) & BIT_MASK_ARFR5) << BIT_SHIFT_ARFR5)
#define BITS_ARFR5					(BIT_MASK_ARFR5 << BIT_SHIFT_ARFR5)
#define BIT_CLEAR_ARFR5(x)				((x) & (~BITS_ARFR5))
#define BIT_GET_ARFR5(x)				(((x) >> BIT_SHIFT_ARFR5) & BIT_MASK_ARFR5)
#define BIT_SET_ARFR5(x, v)				(BIT_CLEAR_ARFR5(x) | BIT_ARFR5(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ARFR5				(Offset 0x04A4) */


#define BIT_SHIFT_ARFRL5				0
#define BIT_MASK_ARFRL5				0xffffffffL
#define BIT_ARFRL5(x)					(((x) & BIT_MASK_ARFRL5) << BIT_SHIFT_ARFRL5)
#define BITS_ARFRL5					(BIT_MASK_ARFRL5 << BIT_SHIFT_ARFRL5)
#define BIT_CLEAR_ARFRL5(x)				((x) & (~BITS_ARFRL5))
#define BIT_GET_ARFRL5(x)				(((x) >> BIT_SHIFT_ARFRL5) & BIT_MASK_ARFRL5)
#define BIT_SET_ARFRL5(x, v)				(BIT_CLEAR_ARFRL5(x) | BIT_ARFRL5(v))


/* 2 REG_ARFRH5				(Offset 0x04A8) */


#define BIT_SHIFT_ARFRH5				0
#define BIT_MASK_ARFRH5				0xffffffffL
#define BIT_ARFRH5(x)					(((x) & BIT_MASK_ARFRH5) << BIT_SHIFT_ARFRH5)
#define BITS_ARFRH5					(BIT_MASK_ARFRH5 << BIT_SHIFT_ARFRH5)
#define BIT_CLEAR_ARFRH5(x)				((x) & (~BITS_ARFRH5))
#define BIT_GET_ARFRH5(x)				(((x) >> BIT_SHIFT_ARFRH5) & BIT_MASK_ARFRH5)
#define BIT_SET_ARFRH5(x, v)				(BIT_CLEAR_ARFRH5(x) | BIT_ARFRH5(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */

#define BIT_RPTFIFO_RPTNUM_OPT				BIT(31)

#define BIT_SHIFT_MISSED_RPT_NUM			28
#define BIT_MASK_MISSED_RPT_NUM			0x7
#define BIT_MISSED_RPT_NUM(x)				(((x) & BIT_MASK_MISSED_RPT_NUM) << BIT_SHIFT_MISSED_RPT_NUM)
#define BITS_MISSED_RPT_NUM				(BIT_MASK_MISSED_RPT_NUM << BIT_SHIFT_MISSED_RPT_NUM)
#define BIT_CLEAR_MISSED_RPT_NUM(x)			((x) & (~BITS_MISSED_RPT_NUM))
#define BIT_GET_MISSED_RPT_NUM(x)			(((x) >> BIT_SHIFT_MISSED_RPT_NUM) & BIT_MASK_MISSED_RPT_NUM)
#define BIT_SET_MISSED_RPT_NUM(x, v)			(BIT_CLEAR_MISSED_RPT_NUM(x) | BIT_MISSED_RPT_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */

#define BIT_SHCUT_PARSE_DASA				BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_LOC_AMPDU_BURST_CTRL			24
#define BIT_MASK_LOC_AMPDU_BURST_CTRL			0xff
#define BIT_LOC_AMPDU_BURST_CTRL(x)			(((x) & BIT_MASK_LOC_AMPDU_BURST_CTRL) << BIT_SHIFT_LOC_AMPDU_BURST_CTRL)
#define BITS_LOC_AMPDU_BURST_CTRL			(BIT_MASK_LOC_AMPDU_BURST_CTRL << BIT_SHIFT_LOC_AMPDU_BURST_CTRL)
#define BIT_CLEAR_LOC_AMPDU_BURST_CTRL(x)		((x) & (~BITS_LOC_AMPDU_BURST_CTRL))
#define BIT_GET_LOC_AMPDU_BURST_CTRL(x)		(((x) >> BIT_SHIFT_LOC_AMPDU_BURST_CTRL) & BIT_MASK_LOC_AMPDU_BURST_CTRL)
#define BIT_SET_LOC_AMPDU_BURST_CTRL(x, v)		(BIT_CLEAR_LOC_AMPDU_BURST_CTRL(x) | BIT_LOC_AMPDU_BURST_CTRL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */

#define BIT_SHCUT_BYPASS				BIT(24)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_R_MUTAB_TXRPT_OFFSET			24
#define BIT_MASK_R_MUTAB_TXRPT_OFFSET			0xff
#define BIT_R_MUTAB_TXRPT_OFFSET(x)			(((x) & BIT_MASK_R_MUTAB_TXRPT_OFFSET) << BIT_SHIFT_R_MUTAB_TXRPT_OFFSET)
#define BITS_R_MUTAB_TXRPT_OFFSET			(BIT_MASK_R_MUTAB_TXRPT_OFFSET << BIT_SHIFT_R_MUTAB_TXRPT_OFFSET)
#define BIT_CLEAR_R_MUTAB_TXRPT_OFFSET(x)		((x) & (~BITS_R_MUTAB_TXRPT_OFFSET))
#define BIT_GET_R_MUTAB_TXRPT_OFFSET(x)		(((x) >> BIT_SHIFT_R_MUTAB_TXRPT_OFFSET) & BIT_MASK_R_MUTAB_TXRPT_OFFSET)
#define BIT_SET_R_MUTAB_TXRPT_OFFSET(x, v)		(BIT_CLEAR_R_MUTAB_TXRPT_OFFSET(x) | BIT_R_MUTAB_TXRPT_OFFSET(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_MACID_MURATE_OFFSET			24
#define BIT_MASK_MACID_MURATE_OFFSET			0xff
#define BIT_MACID_MURATE_OFFSET(x)			(((x) & BIT_MASK_MACID_MURATE_OFFSET) << BIT_SHIFT_MACID_MURATE_OFFSET)
#define BITS_MACID_MURATE_OFFSET			(BIT_MASK_MACID_MURATE_OFFSET << BIT_SHIFT_MACID_MURATE_OFFSET)
#define BIT_CLEAR_MACID_MURATE_OFFSET(x)		((x) & (~BITS_MACID_MURATE_OFFSET))
#define BIT_GET_MACID_MURATE_OFFSET(x)			(((x) >> BIT_SHIFT_MACID_MURATE_OFFSET) & BIT_MASK_MACID_MURATE_OFFSET)
#define BIT_SET_MACID_MURATE_OFFSET(x, v)		(BIT_CLEAR_MACID_MURATE_OFFSET(x) | BIT_MACID_MURATE_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_LOC_BCN_RPT				16
#define BIT_MASK_LOC_BCN_RPT				0xff
#define BIT_LOC_BCN_RPT(x)				(((x) & BIT_MASK_LOC_BCN_RPT) << BIT_SHIFT_LOC_BCN_RPT)
#define BITS_LOC_BCN_RPT				(BIT_MASK_LOC_BCN_RPT << BIT_SHIFT_LOC_BCN_RPT)
#define BIT_CLEAR_LOC_BCN_RPT(x)			((x) & (~BITS_LOC_BCN_RPT))
#define BIT_GET_LOC_BCN_RPT(x)				(((x) >> BIT_SHIFT_LOC_BCN_RPT) & BIT_MASK_LOC_BCN_RPT)
#define BIT_SET_LOC_BCN_RPT(x, v)			(BIT_CLEAR_LOC_BCN_RPT(x) | BIT_LOC_BCN_RPT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */

#define BIT__R_RPTFIFO_1K				BIT(16)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_MACID_SHCUT_OFFSET			16
#define BIT_MASK_MACID_SHCUT_OFFSET			0xff
#define BIT_MACID_SHCUT_OFFSET(x)			(((x) & BIT_MASK_MACID_SHCUT_OFFSET) << BIT_SHIFT_MACID_SHCUT_OFFSET)
#define BITS_MACID_SHCUT_OFFSET			(BIT_MASK_MACID_SHCUT_OFFSET << BIT_SHIFT_MACID_SHCUT_OFFSET)
#define BIT_CLEAR_MACID_SHCUT_OFFSET(x)		((x) & (~BITS_MACID_SHCUT_OFFSET))
#define BIT_GET_MACID_SHCUT_OFFSET(x)			(((x) >> BIT_SHIFT_MACID_SHCUT_OFFSET) & BIT_MASK_MACID_SHCUT_OFFSET)
#define BIT_SET_MACID_SHCUT_OFFSET(x, v)		(BIT_CLEAR_MACID_SHCUT_OFFSET(x) | BIT_MACID_SHCUT_OFFSET(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_MACID_CTRL_OFFSET_V1			16
#define BIT_MASK_MACID_CTRL_OFFSET_V1			0x1ff
#define BIT_MACID_CTRL_OFFSET_V1(x)			(((x) & BIT_MASK_MACID_CTRL_OFFSET_V1) << BIT_SHIFT_MACID_CTRL_OFFSET_V1)
#define BITS_MACID_CTRL_OFFSET_V1			(BIT_MASK_MACID_CTRL_OFFSET_V1 << BIT_SHIFT_MACID_CTRL_OFFSET_V1)
#define BIT_CLEAR_MACID_CTRL_OFFSET_V1(x)		((x) & (~BITS_MACID_CTRL_OFFSET_V1))
#define BIT_GET_MACID_CTRL_OFFSET_V1(x)		(((x) >> BIT_SHIFT_MACID_CTRL_OFFSET_V1) & BIT_MASK_MACID_CTRL_OFFSET_V1)
#define BIT_SET_MACID_CTRL_OFFSET_V1(x, v)		(BIT_CLEAR_MACID_CTRL_OFFSET_V1(x) | BIT_MACID_CTRL_OFFSET_V1(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */

#define BIT_RPTFIFO_SIZE_OPT				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_LOC_TXRPT				8
#define BIT_MASK_LOC_TXRPT				0xff
#define BIT_LOC_TXRPT(x)				(((x) & BIT_MASK_LOC_TXRPT) << BIT_SHIFT_LOC_TXRPT)
#define BITS_LOC_TXRPT					(BIT_MASK_LOC_TXRPT << BIT_SHIFT_LOC_TXRPT)
#define BIT_CLEAR_LOC_TXRPT(x)				((x) & (~BITS_LOC_TXRPT))
#define BIT_GET_LOC_TXRPT(x)				(((x) >> BIT_SHIFT_LOC_TXRPT) & BIT_MASK_LOC_TXRPT)
#define BIT_SET_LOC_TXRPT(x, v)			(BIT_CLEAR_LOC_TXRPT(x) | BIT_LOC_TXRPT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_MACID_CTRL_OFFSET			8
#define BIT_MASK_MACID_CTRL_OFFSET			0xff
#define BIT_MACID_CTRL_OFFSET(x)			(((x) & BIT_MASK_MACID_CTRL_OFFSET) << BIT_SHIFT_MACID_CTRL_OFFSET)
#define BITS_MACID_CTRL_OFFSET				(BIT_MASK_MACID_CTRL_OFFSET << BIT_SHIFT_MACID_CTRL_OFFSET)
#define BIT_CLEAR_MACID_CTRL_OFFSET(x)			((x) & (~BITS_MACID_CTRL_OFFSET))
#define BIT_GET_MACID_CTRL_OFFSET(x)			(((x) >> BIT_SHIFT_MACID_CTRL_OFFSET) & BIT_MASK_MACID_CTRL_OFFSET)
#define BIT_SET_MACID_CTRL_OFFSET(x, v)		(BIT_CLEAR_MACID_CTRL_OFFSET(x) | BIT_MACID_CTRL_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_LOC_SRFF				0
#define BIT_MASK_LOC_SRFF				0xff
#define BIT_LOC_SRFF(x)				(((x) & BIT_MASK_LOC_SRFF) << BIT_SHIFT_LOC_SRFF)
#define BITS_LOC_SRFF					(BIT_MASK_LOC_SRFF << BIT_SHIFT_LOC_SRFF)
#define BIT_CLEAR_LOC_SRFF(x)				((x) & (~BITS_LOC_SRFF))
#define BIT_GET_LOC_SRFF(x)				(((x) >> BIT_SHIFT_LOC_SRFF) & BIT_MASK_LOC_SRFF)
#define BIT_SET_LOC_SRFF(x, v)				(BIT_CLEAR_LOC_SRFF(x) | BIT_LOC_SRFF(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_AMPDU_TXRPT_OFFSET			0
#define BIT_MASK_AMPDU_TXRPT_OFFSET			0xff
#define BIT_AMPDU_TXRPT_OFFSET(x)			(((x) & BIT_MASK_AMPDU_TXRPT_OFFSET) << BIT_SHIFT_AMPDU_TXRPT_OFFSET)
#define BITS_AMPDU_TXRPT_OFFSET			(BIT_MASK_AMPDU_TXRPT_OFFSET << BIT_SHIFT_AMPDU_TXRPT_OFFSET)
#define BIT_CLEAR_AMPDU_TXRPT_OFFSET(x)		((x) & (~BITS_AMPDU_TXRPT_OFFSET))
#define BIT_GET_AMPDU_TXRPT_OFFSET(x)			(((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET) & BIT_MASK_AMPDU_TXRPT_OFFSET)
#define BIT_SET_AMPDU_TXRPT_OFFSET(x, v)		(BIT_CLEAR_AMPDU_TXRPT_OFFSET(x) | BIT_AMPDU_TXRPT_OFFSET(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXRPT_START_OFFSET			(Offset 0x04AC) */


#define BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1		0
#define BIT_MASK_AMPDU_TXRPT_OFFSET_V1			0x1ff
#define BIT_AMPDU_TXRPT_OFFSET_V1(x)			(((x) & BIT_MASK_AMPDU_TXRPT_OFFSET_V1) << BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1)
#define BITS_AMPDU_TXRPT_OFFSET_V1			(BIT_MASK_AMPDU_TXRPT_OFFSET_V1 << BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1)
#define BIT_CLEAR_AMPDU_TXRPT_OFFSET_V1(x)		((x) & (~BITS_AMPDU_TXRPT_OFFSET_V1))
#define BIT_GET_AMPDU_TXRPT_OFFSET_V1(x)		(((x) >> BIT_SHIFT_AMPDU_TXRPT_OFFSET_V1) & BIT_MASK_AMPDU_TXRPT_OFFSET_V1)
#define BIT_SET_AMPDU_TXRPT_OFFSET_V1(x, v)		(BIT_CLEAR_AMPDU_TXRPT_OFFSET_V1(x) | BIT_AMPDU_TXRPT_OFFSET_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TRYING_CNT_TH			(Offset 0x04B0) */


#define BIT_SHIFT_INDEX_15				24
#define BIT_MASK_INDEX_15				0xff
#define BIT_INDEX_15(x)				(((x) & BIT_MASK_INDEX_15) << BIT_SHIFT_INDEX_15)
#define BITS_INDEX_15					(BIT_MASK_INDEX_15 << BIT_SHIFT_INDEX_15)
#define BIT_CLEAR_INDEX_15(x)				((x) & (~BITS_INDEX_15))
#define BIT_GET_INDEX_15(x)				(((x) >> BIT_SHIFT_INDEX_15) & BIT_MASK_INDEX_15)
#define BIT_SET_INDEX_15(x, v)				(BIT_CLEAR_INDEX_15(x) | BIT_INDEX_15(v))


#define BIT_SHIFT_INDEX_14				16
#define BIT_MASK_INDEX_14				0xff
#define BIT_INDEX_14(x)				(((x) & BIT_MASK_INDEX_14) << BIT_SHIFT_INDEX_14)
#define BITS_INDEX_14					(BIT_MASK_INDEX_14 << BIT_SHIFT_INDEX_14)
#define BIT_CLEAR_INDEX_14(x)				((x) & (~BITS_INDEX_14))
#define BIT_GET_INDEX_14(x)				(((x) >> BIT_SHIFT_INDEX_14) & BIT_MASK_INDEX_14)
#define BIT_SET_INDEX_14(x, v)				(BIT_CLEAR_INDEX_14(x) | BIT_INDEX_14(v))


#define BIT_SHIFT_INDEX_13				8
#define BIT_MASK_INDEX_13				0xff
#define BIT_INDEX_13(x)				(((x) & BIT_MASK_INDEX_13) << BIT_SHIFT_INDEX_13)
#define BITS_INDEX_13					(BIT_MASK_INDEX_13 << BIT_SHIFT_INDEX_13)
#define BIT_CLEAR_INDEX_13(x)				((x) & (~BITS_INDEX_13))
#define BIT_GET_INDEX_13(x)				(((x) >> BIT_SHIFT_INDEX_13) & BIT_MASK_INDEX_13)
#define BIT_SET_INDEX_13(x, v)				(BIT_CLEAR_INDEX_13(x) | BIT_INDEX_13(v))


#define BIT_SHIFT_INDEX_12				0
#define BIT_MASK_INDEX_12				0xff
#define BIT_INDEX_12(x)				(((x) & BIT_MASK_INDEX_12) << BIT_SHIFT_INDEX_12)
#define BITS_INDEX_12					(BIT_MASK_INDEX_12 << BIT_SHIFT_INDEX_12)
#define BIT_CLEAR_INDEX_12(x)				((x) & (~BITS_INDEX_12))
#define BIT_GET_INDEX_12(x)				(((x) >> BIT_SHIFT_INDEX_12) & BIT_MASK_INDEX_12)
#define BIT_SET_INDEX_12(x, v)				(BIT_CLEAR_INDEX_12(x) | BIT_INDEX_12(v))


#define BIT_SHIFT_RA_TRY_RATE_AGG_LMT			0
#define BIT_MASK_RA_TRY_RATE_AGG_LMT			0x1f
#define BIT_RA_TRY_RATE_AGG_LMT(x)			(((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT) << BIT_SHIFT_RA_TRY_RATE_AGG_LMT)
#define BITS_RA_TRY_RATE_AGG_LMT			(BIT_MASK_RA_TRY_RATE_AGG_LMT << BIT_SHIFT_RA_TRY_RATE_AGG_LMT)
#define BIT_CLEAR_RA_TRY_RATE_AGG_LMT(x)		((x) & (~BITS_RA_TRY_RATE_AGG_LMT))
#define BIT_GET_RA_TRY_RATE_AGG_LMT(x)			(((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT) & BIT_MASK_RA_TRY_RATE_AGG_LMT)
#define BIT_SET_RA_TRY_RATE_AGG_LMT(x, v)		(BIT_CLEAR_RA_TRY_RATE_AGG_LMT(x) | BIT_RA_TRY_RATE_AGG_LMT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_POWER_STAGE1			(Offset 0x04B4) */

#define BIT_PTA_WL_PRI_MASK_CPU_MGQ			BIT(31)
#define BIT_PTA_WL_PRI_MASK_BCNQ			BIT(30)
#define BIT_PTA_WL_PRI_MASK_HIQ			BIT(29)
#define BIT_PTA_WL_PRI_MASK_MGQ			BIT(28)
#define BIT_PTA_WL_PRI_MASK_BK				BIT(27)
#define BIT_PTA_WL_PRI_MASK_BE				BIT(26)
#define BIT_PTA_WL_PRI_MASK_VI				BIT(25)
#define BIT_PTA_WL_PRI_MASK_VO				BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_POWER_STAGE1			(Offset 0x04B4) */


#define BIT_SHIFT_POWER_STAGE1				0
#define BIT_MASK_POWER_STAGE1				0xffffff
#define BIT_POWER_STAGE1(x)				(((x) & BIT_MASK_POWER_STAGE1) << BIT_SHIFT_POWER_STAGE1)
#define BITS_POWER_STAGE1				(BIT_MASK_POWER_STAGE1 << BIT_SHIFT_POWER_STAGE1)
#define BIT_CLEAR_POWER_STAGE1(x)			((x) & (~BITS_POWER_STAGE1))
#define BIT_GET_POWER_STAGE1(x)			(((x) >> BIT_SHIFT_POWER_STAGE1) & BIT_MASK_POWER_STAGE1)
#define BIT_SET_POWER_STAGE1(x, v)			(BIT_CLEAR_POWER_STAGE1(x) | BIT_POWER_STAGE1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_POWER_STAGE2			(Offset 0x04B8) */

#define BIT__R_CTRL_PKT_POW_ADJ			BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_POWER_STAGE2			(Offset 0x04B8) */

#define BIT__CTRL_PKT_POW_ADJ				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_POWER_STAGE2			(Offset 0x04B8) */


#define BIT_SHIFT_POWER_STAGE2				0
#define BIT_MASK_POWER_STAGE2				0xffffff
#define BIT_POWER_STAGE2(x)				(((x) & BIT_MASK_POWER_STAGE2) << BIT_SHIFT_POWER_STAGE2)
#define BITS_POWER_STAGE2				(BIT_MASK_POWER_STAGE2 << BIT_SHIFT_POWER_STAGE2)
#define BIT_CLEAR_POWER_STAGE2(x)			((x) & (~BITS_POWER_STAGE2))
#define BIT_GET_POWER_STAGE2(x)			(((x) >> BIT_SHIFT_POWER_STAGE2) & BIT_MASK_POWER_STAGE2)
#define BIT_SET_POWER_STAGE2(x, v)			(BIT_CLEAR_POWER_STAGE2(x) | BIT_POWER_STAGE2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */


#define BIT_SHIFT_PAD_NUM_THRES			24
#define BIT_MASK_PAD_NUM_THRES				0x3f
#define BIT_PAD_NUM_THRES(x)				(((x) & BIT_MASK_PAD_NUM_THRES) << BIT_SHIFT_PAD_NUM_THRES)
#define BITS_PAD_NUM_THRES				(BIT_MASK_PAD_NUM_THRES << BIT_SHIFT_PAD_NUM_THRES)
#define BIT_CLEAR_PAD_NUM_THRES(x)			((x) & (~BITS_PAD_NUM_THRES))
#define BIT_GET_PAD_NUM_THRES(x)			(((x) >> BIT_SHIFT_PAD_NUM_THRES) & BIT_MASK_PAD_NUM_THRES)
#define BIT_SET_PAD_NUM_THRES(x, v)			(BIT_CLEAR_PAD_NUM_THRES(x) | BIT_PAD_NUM_THRES(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_R_DMA_THIS_QUEUE_BK			BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_DMA_THIS_QUEUE_BK				BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_R_DMA_THIS_QUEUE_BE			BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_DMA_THIS_QUEUE_BE				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_R_DMA_THIS_QUEUE_VI			BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_DMA_THIS_QUEUE_VI				BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_R_DMA_THIS_QUEUE_VO			BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_DMA_THIS_QUEUE_VO				BIT(20)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */


#define BIT_SHIFT_R_TOTAL_LEN_TH			8
#define BIT_MASK_R_TOTAL_LEN_TH			0xfff
#define BIT_R_TOTAL_LEN_TH(x)				(((x) & BIT_MASK_R_TOTAL_LEN_TH) << BIT_SHIFT_R_TOTAL_LEN_TH)
#define BITS_R_TOTAL_LEN_TH				(BIT_MASK_R_TOTAL_LEN_TH << BIT_SHIFT_R_TOTAL_LEN_TH)
#define BIT_CLEAR_R_TOTAL_LEN_TH(x)			((x) & (~BITS_R_TOTAL_LEN_TH))
#define BIT_GET_R_TOTAL_LEN_TH(x)			(((x) >> BIT_SHIFT_R_TOTAL_LEN_TH) & BIT_MASK_R_TOTAL_LEN_TH)
#define BIT_SET_R_TOTAL_LEN_TH(x, v)			(BIT_CLEAR_R_TOTAL_LEN_TH(x) | BIT_R_TOTAL_LEN_TH(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */


#define BIT_SHIFT_TOTAL_LEN_TH				8
#define BIT_MASK_TOTAL_LEN_TH				0xfff
#define BIT_TOTAL_LEN_TH(x)				(((x) & BIT_MASK_TOTAL_LEN_TH) << BIT_SHIFT_TOTAL_LEN_TH)
#define BITS_TOTAL_LEN_TH				(BIT_MASK_TOTAL_LEN_TH << BIT_SHIFT_TOTAL_LEN_TH)
#define BIT_CLEAR_TOTAL_LEN_TH(x)			((x) & (~BITS_TOTAL_LEN_TH))
#define BIT_GET_TOTAL_LEN_TH(x)			(((x) >> BIT_SHIFT_TOTAL_LEN_TH) & BIT_MASK_TOTAL_LEN_TH)
#define BIT_SET_TOTAL_LEN_TH(x, v)			(BIT_CLEAR_TOTAL_LEN_TH(x) | BIT_TOTAL_LEN_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_EN_NEW_EARLY				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SW_AMPDU_BURST_MODE_CTRL		(Offset 0x04BC) */

#define BIT_PRE_TX_CMD					BIT(6)

#define BIT_SHIFT_NUM_SCL_EN				4
#define BIT_MASK_NUM_SCL_EN				0x3
#define BIT_NUM_SCL_EN(x)				(((x) & BIT_MASK_NUM_SCL_EN) << BIT_SHIFT_NUM_SCL_EN)
#define BITS_NUM_SCL_EN				(BIT_MASK_NUM_SCL_EN << BIT_SHIFT_NUM_SCL_EN)
#define BIT_CLEAR_NUM_SCL_EN(x)			((x) & (~BITS_NUM_SCL_EN))
#define BIT_GET_NUM_SCL_EN(x)				(((x) >> BIT_SHIFT_NUM_SCL_EN) & BIT_MASK_NUM_SCL_EN)
#define BIT_SET_NUM_SCL_EN(x, v)			(BIT_CLEAR_NUM_SCL_EN(x) | BIT_NUM_SCL_EN(v))

#define BIT_BK_EN					BIT(3)
#define BIT_BE_EN					BIT(2)
#define BIT_VI_EN					BIT(1)
#define BIT_VO_EN					BIT(0)

/* 2 REG_PKT_LIFE_TIME			(Offset 0x04C0) */


#define BIT_SHIFT_PKT_LIFTIME_BEBK			16
#define BIT_MASK_PKT_LIFTIME_BEBK			0xffff
#define BIT_PKT_LIFTIME_BEBK(x)			(((x) & BIT_MASK_PKT_LIFTIME_BEBK) << BIT_SHIFT_PKT_LIFTIME_BEBK)
#define BITS_PKT_LIFTIME_BEBK				(BIT_MASK_PKT_LIFTIME_BEBK << BIT_SHIFT_PKT_LIFTIME_BEBK)
#define BIT_CLEAR_PKT_LIFTIME_BEBK(x)			((x) & (~BITS_PKT_LIFTIME_BEBK))
#define BIT_GET_PKT_LIFTIME_BEBK(x)			(((x) >> BIT_SHIFT_PKT_LIFTIME_BEBK) & BIT_MASK_PKT_LIFTIME_BEBK)
#define BIT_SET_PKT_LIFTIME_BEBK(x, v)			(BIT_CLEAR_PKT_LIFTIME_BEBK(x) | BIT_PKT_LIFTIME_BEBK(v))


#define BIT_SHIFT_PKT_LIFTIME_VOVI			0
#define BIT_MASK_PKT_LIFTIME_VOVI			0xffff
#define BIT_PKT_LIFTIME_VOVI(x)			(((x) & BIT_MASK_PKT_LIFTIME_VOVI) << BIT_SHIFT_PKT_LIFTIME_VOVI)
#define BITS_PKT_LIFTIME_VOVI				(BIT_MASK_PKT_LIFTIME_VOVI << BIT_SHIFT_PKT_LIFTIME_VOVI)
#define BIT_CLEAR_PKT_LIFTIME_VOVI(x)			((x) & (~BITS_PKT_LIFTIME_VOVI))
#define BIT_GET_PKT_LIFTIME_VOVI(x)			(((x) >> BIT_SHIFT_PKT_LIFTIME_VOVI) & BIT_MASK_PKT_LIFTIME_VOVI)
#define BIT_SET_PKT_LIFTIME_VOVI(x, v)			(BIT_CLEAR_PKT_LIFTIME_VOVI(x) | BIT_PKT_LIFTIME_VOVI(v))


/* 2 REG_STBC_SETTING			(Offset 0x04C4) */


#define BIT_SHIFT_CDEND_TXTIME_L			4
#define BIT_MASK_CDEND_TXTIME_L			0xf
#define BIT_CDEND_TXTIME_L(x)				(((x) & BIT_MASK_CDEND_TXTIME_L) << BIT_SHIFT_CDEND_TXTIME_L)
#define BITS_CDEND_TXTIME_L				(BIT_MASK_CDEND_TXTIME_L << BIT_SHIFT_CDEND_TXTIME_L)
#define BIT_CLEAR_CDEND_TXTIME_L(x)			((x) & (~BITS_CDEND_TXTIME_L))
#define BIT_GET_CDEND_TXTIME_L(x)			(((x) >> BIT_SHIFT_CDEND_TXTIME_L) & BIT_MASK_CDEND_TXTIME_L)
#define BIT_SET_CDEND_TXTIME_L(x, v)			(BIT_CLEAR_CDEND_TXTIME_L(x) | BIT_CDEND_TXTIME_L(v))


#define BIT_SHIFT_NESS					2
#define BIT_MASK_NESS					0x3
#define BIT_NESS(x)					(((x) & BIT_MASK_NESS) << BIT_SHIFT_NESS)
#define BITS_NESS					(BIT_MASK_NESS << BIT_SHIFT_NESS)
#define BIT_CLEAR_NESS(x)				((x) & (~BITS_NESS))
#define BIT_GET_NESS(x)				(((x) >> BIT_SHIFT_NESS) & BIT_MASK_NESS)
#define BIT_SET_NESS(x, v)				(BIT_CLEAR_NESS(x) | BIT_NESS(v))


#define BIT_SHIFT_STBC_CFEND				0
#define BIT_MASK_STBC_CFEND				0x3
#define BIT_STBC_CFEND(x)				(((x) & BIT_MASK_STBC_CFEND) << BIT_SHIFT_STBC_CFEND)
#define BITS_STBC_CFEND				(BIT_MASK_STBC_CFEND << BIT_SHIFT_STBC_CFEND)
#define BIT_CLEAR_STBC_CFEND(x)			((x) & (~BITS_STBC_CFEND))
#define BIT_GET_STBC_CFEND(x)				(((x) >> BIT_SHIFT_STBC_CFEND) & BIT_MASK_STBC_CFEND)
#define BIT_SET_STBC_CFEND(x, v)			(BIT_CLEAR_STBC_CFEND(x) | BIT_STBC_CFEND(v))


/* 2 REG_STBC_SETTING2			(Offset 0x04C5) */


#define BIT_SHIFT_CDEND_TXTIME_H			0
#define BIT_MASK_CDEND_TXTIME_H			0x1f
#define BIT_CDEND_TXTIME_H(x)				(((x) & BIT_MASK_CDEND_TXTIME_H) << BIT_SHIFT_CDEND_TXTIME_H)
#define BITS_CDEND_TXTIME_H				(BIT_MASK_CDEND_TXTIME_H << BIT_SHIFT_CDEND_TXTIME_H)
#define BIT_CLEAR_CDEND_TXTIME_H(x)			((x) & (~BITS_CDEND_TXTIME_H))
#define BIT_GET_CDEND_TXTIME_H(x)			(((x) >> BIT_SHIFT_CDEND_TXTIME_H) & BIT_MASK_CDEND_TXTIME_H)
#define BIT_SET_CDEND_TXTIME_H(x, v)			(BIT_CLEAR_CDEND_TXTIME_H(x) | BIT_CDEND_TXTIME_H(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */

#define BIT_FORCE_RND_PRI				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */

#define BIT_PTA_EDCCA_EN				BIT(5)
#define BIT_PTA_WL_TX_EN				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */

#define BIT_R_USE_DATA_BW				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */

#define BIT_USE_DATA_BW				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_QUEUE_CTRL				(Offset 0x04C6) */

#define BIT_TRI_PKT_INT_MODE1				BIT(2)
#define BIT_TRI_PKT_INT_MODE0				BIT(1)
#define BIT_ACQ_MODE_SEL				BIT(0)

/* 2 REG_SINGLE_AMPDU_CTRL			(Offset 0x04C7) */

#define BIT_EN_SINGLE_APMDU				BIT(7)

/* 2 REG_PROT_MODE_CTRL			(Offset 0x04C8) */


#define BIT_SHIFT_RTS_MAX_AGG_NUM			24
#define BIT_MASK_RTS_MAX_AGG_NUM			0x3f
#define BIT_RTS_MAX_AGG_NUM(x)				(((x) & BIT_MASK_RTS_MAX_AGG_NUM) << BIT_SHIFT_RTS_MAX_AGG_NUM)
#define BITS_RTS_MAX_AGG_NUM				(BIT_MASK_RTS_MAX_AGG_NUM << BIT_SHIFT_RTS_MAX_AGG_NUM)
#define BIT_CLEAR_RTS_MAX_AGG_NUM(x)			((x) & (~BITS_RTS_MAX_AGG_NUM))
#define BIT_GET_RTS_MAX_AGG_NUM(x)			(((x) >> BIT_SHIFT_RTS_MAX_AGG_NUM) & BIT_MASK_RTS_MAX_AGG_NUM)
#define BIT_SET_RTS_MAX_AGG_NUM(x, v)			(BIT_CLEAR_RTS_MAX_AGG_NUM(x) | BIT_RTS_MAX_AGG_NUM(v))


#define BIT_SHIFT_MAX_AGG_NUM				16
#define BIT_MASK_MAX_AGG_NUM				0x3f
#define BIT_MAX_AGG_NUM(x)				(((x) & BIT_MASK_MAX_AGG_NUM) << BIT_SHIFT_MAX_AGG_NUM)
#define BITS_MAX_AGG_NUM				(BIT_MASK_MAX_AGG_NUM << BIT_SHIFT_MAX_AGG_NUM)
#define BIT_CLEAR_MAX_AGG_NUM(x)			((x) & (~BITS_MAX_AGG_NUM))
#define BIT_GET_MAX_AGG_NUM(x)				(((x) >> BIT_SHIFT_MAX_AGG_NUM) & BIT_MASK_MAX_AGG_NUM)
#define BIT_SET_MAX_AGG_NUM(x, v)			(BIT_CLEAR_MAX_AGG_NUM(x) | BIT_MAX_AGG_NUM(v))


#define BIT_SHIFT_RTS_TXTIME_TH			8
#define BIT_MASK_RTS_TXTIME_TH				0xff
#define BIT_RTS_TXTIME_TH(x)				(((x) & BIT_MASK_RTS_TXTIME_TH) << BIT_SHIFT_RTS_TXTIME_TH)
#define BITS_RTS_TXTIME_TH				(BIT_MASK_RTS_TXTIME_TH << BIT_SHIFT_RTS_TXTIME_TH)
#define BIT_CLEAR_RTS_TXTIME_TH(x)			((x) & (~BITS_RTS_TXTIME_TH))
#define BIT_GET_RTS_TXTIME_TH(x)			(((x) >> BIT_SHIFT_RTS_TXTIME_TH) & BIT_MASK_RTS_TXTIME_TH)
#define BIT_SET_RTS_TXTIME_TH(x, v)			(BIT_CLEAR_RTS_TXTIME_TH(x) | BIT_RTS_TXTIME_TH(v))


#define BIT_SHIFT_RTS_LEN_TH				0
#define BIT_MASK_RTS_LEN_TH				0xff
#define BIT_RTS_LEN_TH(x)				(((x) & BIT_MASK_RTS_LEN_TH) << BIT_SHIFT_RTS_LEN_TH)
#define BITS_RTS_LEN_TH				(BIT_MASK_RTS_LEN_TH << BIT_SHIFT_RTS_LEN_TH)
#define BIT_CLEAR_RTS_LEN_TH(x)			((x) & (~BITS_RTS_LEN_TH))
#define BIT_GET_RTS_LEN_TH(x)				(((x) >> BIT_SHIFT_RTS_LEN_TH) & BIT_MASK_RTS_LEN_TH)
#define BIT_SET_RTS_LEN_TH(x, v)			(BIT_CLEAR_RTS_LEN_TH(x) | BIT_RTS_LEN_TH(v))


/* 2 REG_BAR_MODE_CTRL			(Offset 0x04CC) */


#define BIT_SHIFT_BAR_RTY_LMT				16
#define BIT_MASK_BAR_RTY_LMT				0x3
#define BIT_BAR_RTY_LMT(x)				(((x) & BIT_MASK_BAR_RTY_LMT) << BIT_SHIFT_BAR_RTY_LMT)
#define BITS_BAR_RTY_LMT				(BIT_MASK_BAR_RTY_LMT << BIT_SHIFT_BAR_RTY_LMT)
#define BIT_CLEAR_BAR_RTY_LMT(x)			((x) & (~BITS_BAR_RTY_LMT))
#define BIT_GET_BAR_RTY_LMT(x)				(((x) >> BIT_SHIFT_BAR_RTY_LMT) & BIT_MASK_BAR_RTY_LMT)
#define BIT_SET_BAR_RTY_LMT(x, v)			(BIT_CLEAR_BAR_RTY_LMT(x) | BIT_BAR_RTY_LMT(v))


#define BIT_SHIFT_BAR_PKT_TXTIME_TH			8
#define BIT_MASK_BAR_PKT_TXTIME_TH			0xff
#define BIT_BAR_PKT_TXTIME_TH(x)			(((x) & BIT_MASK_BAR_PKT_TXTIME_TH) << BIT_SHIFT_BAR_PKT_TXTIME_TH)
#define BITS_BAR_PKT_TXTIME_TH				(BIT_MASK_BAR_PKT_TXTIME_TH << BIT_SHIFT_BAR_PKT_TXTIME_TH)
#define BIT_CLEAR_BAR_PKT_TXTIME_TH(x)			((x) & (~BITS_BAR_PKT_TXTIME_TH))
#define BIT_GET_BAR_PKT_TXTIME_TH(x)			(((x) >> BIT_SHIFT_BAR_PKT_TXTIME_TH) & BIT_MASK_BAR_PKT_TXTIME_TH)
#define BIT_SET_BAR_PKT_TXTIME_TH(x, v)		(BIT_CLEAR_BAR_PKT_TXTIME_TH(x) | BIT_BAR_PKT_TXTIME_TH(v))

#define BIT_BAR_EN_V1					BIT(6)

#define BIT_SHIFT_BAR_PKTNUM_TH_V1			0
#define BIT_MASK_BAR_PKTNUM_TH_V1			0x3f
#define BIT_BAR_PKTNUM_TH_V1(x)			(((x) & BIT_MASK_BAR_PKTNUM_TH_V1) << BIT_SHIFT_BAR_PKTNUM_TH_V1)
#define BITS_BAR_PKTNUM_TH_V1				(BIT_MASK_BAR_PKTNUM_TH_V1 << BIT_SHIFT_BAR_PKTNUM_TH_V1)
#define BIT_CLEAR_BAR_PKTNUM_TH_V1(x)			((x) & (~BITS_BAR_PKTNUM_TH_V1))
#define BIT_GET_BAR_PKTNUM_TH_V1(x)			(((x) >> BIT_SHIFT_BAR_PKTNUM_TH_V1) & BIT_MASK_BAR_PKTNUM_TH_V1)
#define BIT_SET_BAR_PKTNUM_TH_V1(x, v)			(BIT_CLEAR_BAR_PKTNUM_TH_V1(x) | BIT_BAR_PKTNUM_TH_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RA_TRY_RATE_AGG_LMT			(Offset 0x04CF) */


#define BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1		0
#define BIT_MASK_RA_TRY_RATE_AGG_LMT_V1		0x3f
#define BIT_RA_TRY_RATE_AGG_LMT_V1(x)			(((x) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1) << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1)
#define BITS_RA_TRY_RATE_AGG_LMT_V1			(BIT_MASK_RA_TRY_RATE_AGG_LMT_V1 << BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1)
#define BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1(x)		((x) & (~BITS_RA_TRY_RATE_AGG_LMT_V1))
#define BIT_GET_RA_TRY_RATE_AGG_LMT_V1(x)		(((x) >> BIT_SHIFT_RA_TRY_RATE_AGG_LMT_V1) & BIT_MASK_RA_TRY_RATE_AGG_LMT_V1)
#define BIT_SET_RA_TRY_RATE_AGG_LMT_V1(x, v)		(BIT_CLEAR_RA_TRY_RATE_AGG_LMT_V1(x) | BIT_RA_TRY_RATE_AGG_LMT_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_SLEEP_CTRL			(Offset 0x04D0) */


#define BIT_SHIFT_DEBUG_PROTOCOL			24
#define BIT_MASK_DEBUG_PROTOCOL			0xff
#define BIT_DEBUG_PROTOCOL(x)				(((x) & BIT_MASK_DEBUG_PROTOCOL) << BIT_SHIFT_DEBUG_PROTOCOL)
#define BITS_DEBUG_PROTOCOL				(BIT_MASK_DEBUG_PROTOCOL << BIT_SHIFT_DEBUG_PROTOCOL)
#define BIT_CLEAR_DEBUG_PROTOCOL(x)			((x) & (~BITS_DEBUG_PROTOCOL))
#define BIT_GET_DEBUG_PROTOCOL(x)			(((x) >> BIT_SHIFT_DEBUG_PROTOCOL) & BIT_MASK_DEBUG_PROTOCOL)
#define BIT_SET_DEBUG_PROTOCOL(x, v)			(BIT_CLEAR_DEBUG_PROTOCOL(x) | BIT_DEBUG_PROTOCOL(v))


#define BIT_SHIFT_BCNQ_PGBNDY_RSEL			16
#define BIT_MASK_BCNQ_PGBNDY_RSEL			0x7
#define BIT_BCNQ_PGBNDY_RSEL(x)			(((x) & BIT_MASK_BCNQ_PGBNDY_RSEL) << BIT_SHIFT_BCNQ_PGBNDY_RSEL)
#define BITS_BCNQ_PGBNDY_RSEL				(BIT_MASK_BCNQ_PGBNDY_RSEL << BIT_SHIFT_BCNQ_PGBNDY_RSEL)
#define BIT_CLEAR_BCNQ_PGBNDY_RSEL(x)			((x) & (~BITS_BCNQ_PGBNDY_RSEL))
#define BIT_GET_BCNQ_PGBNDY_RSEL(x)			(((x) >> BIT_SHIFT_BCNQ_PGBNDY_RSEL) & BIT_MASK_BCNQ_PGBNDY_RSEL)
#define BIT_SET_BCNQ_PGBNDY_RSEL(x, v)			(BIT_CLEAR_BCNQ_PGBNDY_RSEL(x) | BIT_BCNQ_PGBNDY_RSEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID_SLEEP2			(Offset 0x04D0) */


#define BIT_SHIFT_MACID95_64PKTSLEEP			0
#define BIT_MASK_MACID95_64PKTSLEEP			0xffffffffL
#define BIT_MACID95_64PKTSLEEP(x)			(((x) & BIT_MASK_MACID95_64PKTSLEEP) << BIT_SHIFT_MACID95_64PKTSLEEP)
#define BITS_MACID95_64PKTSLEEP			(BIT_MASK_MACID95_64PKTSLEEP << BIT_SHIFT_MACID95_64PKTSLEEP)
#define BIT_CLEAR_MACID95_64PKTSLEEP(x)		((x) & (~BITS_MACID95_64PKTSLEEP))
#define BIT_GET_MACID95_64PKTSLEEP(x)			(((x) >> BIT_SHIFT_MACID95_64PKTSLEEP) & BIT_MASK_MACID95_64PKTSLEEP)
#define BIT_SET_MACID95_64PKTSLEEP(x, v)		(BIT_CLEAR_MACID95_64PKTSLEEP(x) | BIT_MACID95_64PKTSLEEP(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_SLEEP_CTRL			(Offset 0x04D0) */


#define BIT_SHIFT_MACID_SLEEP_SEL			0
#define BIT_MASK_MACID_SLEEP_SEL			0x7
#define BIT_MACID_SLEEP_SEL(x)				(((x) & BIT_MASK_MACID_SLEEP_SEL) << BIT_SHIFT_MACID_SLEEP_SEL)
#define BITS_MACID_SLEEP_SEL				(BIT_MASK_MACID_SLEEP_SEL << BIT_SHIFT_MACID_SLEEP_SEL)
#define BIT_CLEAR_MACID_SLEEP_SEL(x)			((x) & (~BITS_MACID_SLEEP_SEL))
#define BIT_GET_MACID_SLEEP_SEL(x)			(((x) >> BIT_SHIFT_MACID_SLEEP_SEL) & BIT_MASK_MACID_SLEEP_SEL)
#define BIT_SET_MACID_SLEEP_SEL(x, v)			(BIT_CLEAR_MACID_SLEEP_SEL(x) | BIT_MACID_SLEEP_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID_SLEEP				(Offset 0x04D4) */


#define BIT_SHIFT_MACID31_0_PKTSLEEP			0
#define BIT_MASK_MACID31_0_PKTSLEEP			0xffffffffL
#define BIT_MACID31_0_PKTSLEEP(x)			(((x) & BIT_MASK_MACID31_0_PKTSLEEP) << BIT_SHIFT_MACID31_0_PKTSLEEP)
#define BITS_MACID31_0_PKTSLEEP			(BIT_MASK_MACID31_0_PKTSLEEP << BIT_SHIFT_MACID31_0_PKTSLEEP)
#define BIT_CLEAR_MACID31_0_PKTSLEEP(x)		((x) & (~BITS_MACID31_0_PKTSLEEP))
#define BIT_GET_MACID31_0_PKTSLEEP(x)			(((x) >> BIT_SHIFT_MACID31_0_PKTSLEEP) & BIT_MASK_MACID31_0_PKTSLEEP)
#define BIT_SET_MACID31_0_PKTSLEEP(x, v)		(BIT_CLEAR_MACID31_0_PKTSLEEP(x) | BIT_MACID31_0_PKTSLEEP(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_SLEEP_INFO			(Offset 0x04D4) */


#define BIT_SHIFT_MACID_SLEEP_INFO			0
#define BIT_MASK_MACID_SLEEP_INFO			0xffffffffL
#define BIT_MACID_SLEEP_INFO(x)			(((x) & BIT_MASK_MACID_SLEEP_INFO) << BIT_SHIFT_MACID_SLEEP_INFO)
#define BITS_MACID_SLEEP_INFO				(BIT_MASK_MACID_SLEEP_INFO << BIT_SHIFT_MACID_SLEEP_INFO)
#define BIT_CLEAR_MACID_SLEEP_INFO(x)			((x) & (~BITS_MACID_SLEEP_INFO))
#define BIT_GET_MACID_SLEEP_INFO(x)			(((x) >> BIT_SHIFT_MACID_SLEEP_INFO) & BIT_MASK_MACID_SLEEP_INFO)
#define BIT_SET_MACID_SLEEP_INFO(x, v)			(BIT_CLEAR_MACID_SLEEP_INFO(x) | BIT_MACID_SLEEP_INFO(v))


#define BIT_SHIFT_PTCL_TOTAL_PG_V3			0
#define BIT_MASK_PTCL_TOTAL_PG_V3			0x1fff
#define BIT_PTCL_TOTAL_PG_V3(x)			(((x) & BIT_MASK_PTCL_TOTAL_PG_V3) << BIT_SHIFT_PTCL_TOTAL_PG_V3)
#define BITS_PTCL_TOTAL_PG_V3				(BIT_MASK_PTCL_TOTAL_PG_V3 << BIT_SHIFT_PTCL_TOTAL_PG_V3)
#define BIT_CLEAR_PTCL_TOTAL_PG_V3(x)			((x) & (~BITS_PTCL_TOTAL_PG_V3))
#define BIT_GET_PTCL_TOTAL_PG_V3(x)			(((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V3) & BIT_MASK_PTCL_TOTAL_PG_V3)
#define BIT_SET_PTCL_TOTAL_PG_V3(x, v)			(BIT_CLEAR_PTCL_TOTAL_PG_V3(x) | BIT_PTCL_TOTAL_PG_V3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HW_SEQ0				(Offset 0x04D8) */


#define BIT_SHIFT_HW_SSN_SEQ0				0
#define BIT_MASK_HW_SSN_SEQ0				0xfff
#define BIT_HW_SSN_SEQ0(x)				(((x) & BIT_MASK_HW_SSN_SEQ0) << BIT_SHIFT_HW_SSN_SEQ0)
#define BITS_HW_SSN_SEQ0				(BIT_MASK_HW_SSN_SEQ0 << BIT_SHIFT_HW_SSN_SEQ0)
#define BIT_CLEAR_HW_SSN_SEQ0(x)			((x) & (~BITS_HW_SSN_SEQ0))
#define BIT_GET_HW_SSN_SEQ0(x)				(((x) >> BIT_SHIFT_HW_SSN_SEQ0) & BIT_MASK_HW_SSN_SEQ0)
#define BIT_SET_HW_SSN_SEQ0(x, v)			(BIT_CLEAR_HW_SSN_SEQ0(x) | BIT_HW_SSN_SEQ0(v))


/* 2 REG_HW_SEQ1				(Offset 0x04DA) */


#define BIT_SHIFT_HW_SSN_SEQ1				0
#define BIT_MASK_HW_SSN_SEQ1				0xfff
#define BIT_HW_SSN_SEQ1(x)				(((x) & BIT_MASK_HW_SSN_SEQ1) << BIT_SHIFT_HW_SSN_SEQ1)
#define BITS_HW_SSN_SEQ1				(BIT_MASK_HW_SSN_SEQ1 << BIT_SHIFT_HW_SSN_SEQ1)
#define BIT_CLEAR_HW_SSN_SEQ1(x)			((x) & (~BITS_HW_SSN_SEQ1))
#define BIT_GET_HW_SSN_SEQ1(x)				(((x) >> BIT_SHIFT_HW_SSN_SEQ1) & BIT_MASK_HW_SSN_SEQ1)
#define BIT_SET_HW_SSN_SEQ1(x, v)			(BIT_CLEAR_HW_SSN_SEQ1(x) | BIT_HW_SSN_SEQ1(v))


/* 2 REG_HW_SEQ2				(Offset 0x04DC) */


#define BIT_SHIFT_HW_SSN_SEQ2				0
#define BIT_MASK_HW_SSN_SEQ2				0xfff
#define BIT_HW_SSN_SEQ2(x)				(((x) & BIT_MASK_HW_SSN_SEQ2) << BIT_SHIFT_HW_SSN_SEQ2)
#define BITS_HW_SSN_SEQ2				(BIT_MASK_HW_SSN_SEQ2 << BIT_SHIFT_HW_SSN_SEQ2)
#define BIT_CLEAR_HW_SSN_SEQ2(x)			((x) & (~BITS_HW_SSN_SEQ2))
#define BIT_GET_HW_SSN_SEQ2(x)				(((x) >> BIT_SHIFT_HW_SSN_SEQ2) & BIT_MASK_HW_SSN_SEQ2)
#define BIT_SET_HW_SSN_SEQ2(x, v)			(BIT_CLEAR_HW_SSN_SEQ2(x) | BIT_HW_SSN_SEQ2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_HW_SEQ3				(Offset 0x04DE) */


#define BIT_SHIFT_CSI_HWSSN_SEL			12
#define BIT_MASK_CSI_HWSSN_SEL				0x3
#define BIT_CSI_HWSSN_SEL(x)				(((x) & BIT_MASK_CSI_HWSSN_SEL) << BIT_SHIFT_CSI_HWSSN_SEL)
#define BITS_CSI_HWSSN_SEL				(BIT_MASK_CSI_HWSSN_SEL << BIT_SHIFT_CSI_HWSSN_SEL)
#define BIT_CLEAR_CSI_HWSSN_SEL(x)			((x) & (~BITS_CSI_HWSSN_SEL))
#define BIT_GET_CSI_HWSSN_SEL(x)			(((x) >> BIT_SHIFT_CSI_HWSSN_SEL) & BIT_MASK_CSI_HWSSN_SEL)
#define BIT_SET_CSI_HWSSN_SEL(x, v)			(BIT_CLEAR_CSI_HWSSN_SEL(x) | BIT_CSI_HWSSN_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_HW_SEQ3				(Offset 0x04DE) */


#define BIT_SHIFT_CSI_HWSEQ_SEL			12
#define BIT_MASK_CSI_HWSEQ_SEL				0x3
#define BIT_CSI_HWSEQ_SEL(x)				(((x) & BIT_MASK_CSI_HWSEQ_SEL) << BIT_SHIFT_CSI_HWSEQ_SEL)
#define BITS_CSI_HWSEQ_SEL				(BIT_MASK_CSI_HWSEQ_SEL << BIT_SHIFT_CSI_HWSEQ_SEL)
#define BIT_CLEAR_CSI_HWSEQ_SEL(x)			((x) & (~BITS_CSI_HWSEQ_SEL))
#define BIT_GET_CSI_HWSEQ_SEL(x)			(((x) >> BIT_SHIFT_CSI_HWSEQ_SEL) & BIT_MASK_CSI_HWSEQ_SEL)
#define BIT_SET_CSI_HWSEQ_SEL(x, v)			(BIT_CLEAR_CSI_HWSEQ_SEL(x) | BIT_CSI_HWSEQ_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HW_SEQ3				(Offset 0x04DE) */


#define BIT_SHIFT_HW_SSN_SEQ3				0
#define BIT_MASK_HW_SSN_SEQ3				0xfff
#define BIT_HW_SSN_SEQ3(x)				(((x) & BIT_MASK_HW_SSN_SEQ3) << BIT_SHIFT_HW_SSN_SEQ3)
#define BITS_HW_SSN_SEQ3				(BIT_MASK_HW_SSN_SEQ3 << BIT_SHIFT_HW_SSN_SEQ3)
#define BIT_CLEAR_HW_SSN_SEQ3(x)			((x) & (~BITS_HW_SSN_SEQ3))
#define BIT_GET_HW_SSN_SEQ3(x)				(((x) >> BIT_SHIFT_HW_SSN_SEQ3) & BIT_MASK_HW_SSN_SEQ3)
#define BIT_SET_HW_SSN_SEQ3(x, v)			(BIT_CLEAR_HW_SSN_SEQ3(x) | BIT_HW_SSN_SEQ3(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_CSI_SEQ				(Offset 0x04DE) */


#define BIT_SHIFT_HW_CSI_SEQ				0
#define BIT_MASK_HW_CSI_SEQ				0xfff
#define BIT_HW_CSI_SEQ(x)				(((x) & BIT_MASK_HW_CSI_SEQ) << BIT_SHIFT_HW_CSI_SEQ)
#define BITS_HW_CSI_SEQ				(BIT_MASK_HW_CSI_SEQ << BIT_SHIFT_HW_CSI_SEQ)
#define BIT_CLEAR_HW_CSI_SEQ(x)			((x) & (~BITS_HW_CSI_SEQ))
#define BIT_GET_HW_CSI_SEQ(x)				(((x) >> BIT_SHIFT_HW_CSI_SEQ) & BIT_MASK_HW_CSI_SEQ)
#define BIT_SET_HW_CSI_SEQ(x, v)			(BIT_CLEAR_HW_CSI_SEQ(x) | BIT_HW_CSI_SEQ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V1			(Offset 0x04E0) */


#define BIT_SHIFT_PTCL_TOTAL_PG_V1			2
#define BIT_MASK_PTCL_TOTAL_PG_V1			0x1fff
#define BIT_PTCL_TOTAL_PG_V1(x)			(((x) & BIT_MASK_PTCL_TOTAL_PG_V1) << BIT_SHIFT_PTCL_TOTAL_PG_V1)
#define BITS_PTCL_TOTAL_PG_V1				(BIT_MASK_PTCL_TOTAL_PG_V1 << BIT_SHIFT_PTCL_TOTAL_PG_V1)
#define BIT_CLEAR_PTCL_TOTAL_PG_V1(x)			((x) & (~BITS_PTCL_TOTAL_PG_V1))
#define BIT_GET_PTCL_TOTAL_PG_V1(x)			(((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V1) & BIT_MASK_PTCL_TOTAL_PG_V1)
#define BIT_SET_PTCL_TOTAL_PG_V1(x, v)			(BIT_CLEAR_PTCL_TOTAL_PG_V1(x) | BIT_PTCL_TOTAL_PG_V1(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V1			(Offset 0x04E0) */


#define BIT_SHIFT_PTCL_TOTAL_PG_V2			2
#define BIT_MASK_PTCL_TOTAL_PG_V2			0x3fff
#define BIT_PTCL_TOTAL_PG_V2(x)			(((x) & BIT_MASK_PTCL_TOTAL_PG_V2) << BIT_SHIFT_PTCL_TOTAL_PG_V2)
#define BITS_PTCL_TOTAL_PG_V2				(BIT_MASK_PTCL_TOTAL_PG_V2 << BIT_SHIFT_PTCL_TOTAL_PG_V2)
#define BIT_CLEAR_PTCL_TOTAL_PG_V2(x)			((x) & (~BITS_PTCL_TOTAL_PG_V2))
#define BIT_GET_PTCL_TOTAL_PG_V2(x)			(((x) >> BIT_SHIFT_PTCL_TOTAL_PG_V2) & BIT_MASK_PTCL_TOTAL_PG_V2)
#define BIT_SET_PTCL_TOTAL_PG_V2(x, v)			(BIT_CLEAR_PTCL_TOTAL_PG_V2(x) | BIT_PTCL_TOTAL_PG_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NULL_PKT_STATUS			(Offset 0x04E0) */

#define BIT_TX_NULL_1					BIT(1)
#define BIT_TX_NULL_0					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_MUARB_SEARCH_ERR				BIT(14)
#define BIT_MU_BFEN_ERR				BIT(12)
#define BIT_NDPA_DROPNULL_ERR				BIT(11)
#define BIT_NDPA_DROPPKT_ERR				BIT(10)
#define BIT_PTCL_PKYIN_ERR				BIT(9)
#define BIT_PTCL_QSELCNL_ERR				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_RATE_TABLE_INVALID			BIT(7)
#define BIT_FTM_T2R_ERROR				BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR0					BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_TXTIMEOUT_ERR				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR1					BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_NULLPAGE_ERR				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR2					BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_CONTENTION_ERR				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR3					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_HEADNULL_ERR				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR4					BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_OVERFLOW_ERR				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS			(Offset 0x04E2) */

#define BIT_PTCL_ERR5					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_ERR_STATUS_V1			(Offset 0x04E2) */

#define BIT_QUEUE_INDEX_ERR				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_EXTEND		(Offset 0x04E3) */

#define BIT_CLI3_TX_NULL_1				BIT(7)
#define BIT_CLI3_TX_NULL_0				BIT(6)
#define BIT_CLI2_TX_NULL_1				BIT(5)
#define BIT_CLI2_TX_NULL_0				BIT(4)
#define BIT_CLI1_TX_NULL_1				BIT(3)
#define BIT_CLI1_TX_NULL_0				BIT(2)
#define BIT_CLI0_TX_NULL_1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_PKT_NUM			(Offset 0x04E3) */


#define BIT_SHIFT_PTCL_TOTAL_PG			0
#define BIT_MASK_PTCL_TOTAL_PG				0xff
#define BIT_PTCL_TOTAL_PG(x)				(((x) & BIT_MASK_PTCL_TOTAL_PG) << BIT_SHIFT_PTCL_TOTAL_PG)
#define BITS_PTCL_TOTAL_PG				(BIT_MASK_PTCL_TOTAL_PG << BIT_SHIFT_PTCL_TOTAL_PG)
#define BIT_CLEAR_PTCL_TOTAL_PG(x)			((x) & (~BITS_PTCL_TOTAL_PG))
#define BIT_GET_PTCL_TOTAL_PG(x)			(((x) >> BIT_SHIFT_PTCL_TOTAL_PG) & BIT_MASK_PTCL_TOTAL_PG)
#define BIT_SET_PTCL_TOTAL_PG(x, v)			(BIT_CLEAR_PTCL_TOTAL_PG(x) | BIT_PTCL_TOTAL_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_EXTEND		(Offset 0x04E3) */

#define BIT_CLI0_TX_NULL_0				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TRXRPT_MISS_CNT			(Offset 0x04E3) */


#define BIT_SHIFT_TRXRPT_MISS_CNT			0
#define BIT_MASK_TRXRPT_MISS_CNT			0x7
#define BIT_TRXRPT_MISS_CNT(x)				(((x) & BIT_MASK_TRXRPT_MISS_CNT) << BIT_SHIFT_TRXRPT_MISS_CNT)
#define BITS_TRXRPT_MISS_CNT				(BIT_MASK_TRXRPT_MISS_CNT << BIT_SHIFT_TRXRPT_MISS_CNT)
#define BIT_CLEAR_TRXRPT_MISS_CNT(x)			((x) & (~BITS_TRXRPT_MISS_CNT))
#define BIT_GET_TRXRPT_MISS_CNT(x)			(((x) >> BIT_SHIFT_TRXRPT_MISS_CNT) & BIT_MASK_TRXRPT_MISS_CNT)
#define BIT_SET_TRXRPT_MISS_CNT(x, v)			(BIT_CLEAR_TRXRPT_MISS_CNT(x) | BIT_TRXRPT_MISS_CNT(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */

#define BIT_MAX_PRETX_AGGR_EN				BIT(19)

#define BIT_SHIFT_MAX_PRETX_AGGR_TIME			8
#define BIT_MASK_MAX_PRETX_AGGR_TIME			0x7ff
#define BIT_MAX_PRETX_AGGR_TIME(x)			(((x) & BIT_MASK_MAX_PRETX_AGGR_TIME) << BIT_SHIFT_MAX_PRETX_AGGR_TIME)
#define BITS_MAX_PRETX_AGGR_TIME			(BIT_MASK_MAX_PRETX_AGGR_TIME << BIT_SHIFT_MAX_PRETX_AGGR_TIME)
#define BIT_CLEAR_MAX_PRETX_AGGR_TIME(x)		((x) & (~BITS_MAX_PRETX_AGGR_TIME))
#define BIT_GET_MAX_PRETX_AGGR_TIME(x)			(((x) >> BIT_SHIFT_MAX_PRETX_AGGR_TIME) & BIT_MASK_MAX_PRETX_AGGR_TIME)
#define BIT_SET_MAX_PRETX_AGGR_TIME(x, v)		(BIT_CLEAR_MAX_PRETX_AGGR_TIME(x) | BIT_MAX_PRETX_AGGR_TIME(v))

#define BIT_HGQ_DEL_EN					BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V2			(Offset 0x04E4) */

#define BIT_HIQ_DROP					BIT(7)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */

#define BIT_MGQ_DEL_EN					BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V2			(Offset 0x04E4) */

#define BIT_MGQ_DROP					BIT(6)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */

#define BIT_CLR_HGQ_REQ_BLOCK				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */

#define BIT_VIDEO_JUST_DROP				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V2			(Offset 0x04E4) */

#define BIT_TX_NULL_1_V1				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_VIDEO_ENHANCEMENT_FUN		(Offset 0x04E4) */

#define BIT_VIDEO_ENHANCEMENT_FUN_EN			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NULL_PKT_STATUS_V2			(Offset 0x04E4) */

#define BIT_TX_NULL_0_V1				BIT(0)

/* 2 REG_PRECNT_CTRL				(Offset 0x04E5) */

#define BIT_EN_PRECNT					BIT(11)

#define BIT_SHIFT_PRECNT_TH				0
#define BIT_MASK_PRECNT_TH				0x7ff
#define BIT_PRECNT_TH(x)				(((x) & BIT_MASK_PRECNT_TH) << BIT_SHIFT_PRECNT_TH)
#define BITS_PRECNT_TH					(BIT_MASK_PRECNT_TH << BIT_SHIFT_PRECNT_TH)
#define BIT_CLEAR_PRECNT_TH(x)				((x) & (~BITS_PRECNT_TH))
#define BIT_GET_PRECNT_TH(x)				(((x) >> BIT_SHIFT_PRECNT_TH) & BIT_MASK_PRECNT_TH)
#define BIT_SET_PRECNT_TH(x, v)			(BIT_CLEAR_PRECNT_TH(x) | BIT_PRECNT_TH(v))


/* 2 REG_NULL_PKT_STATUS_EXTEND_V1		(Offset 0x04E7) */

#define BIT_CLI3_TX_NULL_1_V1				BIT(7)
#define BIT_CLI3_TX_NULL_0_V1				BIT(6)
#define BIT_CLI2_TX_NULL_1_V1				BIT(5)
#define BIT_CLI2_TX_NULL_0_V1				BIT(4)
#define BIT_CLI1_TX_NULL_1_V1				BIT(3)
#define BIT_CLI1_TX_NULL_0_V1				BIT(2)
#define BIT_CLI0_TX_NULL_1_V1				BIT(1)
#define BIT_CLI0_TX_NULL_0_V1				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_POLLUTE_PKT_CNT			(Offset 0x04E8) */


#define BIT_SHIFT_BT_POLLUTE_PKT_CNT			0
#define BIT_MASK_BT_POLLUTE_PKT_CNT			0xffff
#define BIT_BT_POLLUTE_PKT_CNT(x)			(((x) & BIT_MASK_BT_POLLUTE_PKT_CNT) << BIT_SHIFT_BT_POLLUTE_PKT_CNT)
#define BITS_BT_POLLUTE_PKT_CNT			(BIT_MASK_BT_POLLUTE_PKT_CNT << BIT_SHIFT_BT_POLLUTE_PKT_CNT)
#define BIT_CLEAR_BT_POLLUTE_PKT_CNT(x)		((x) & (~BITS_BT_POLLUTE_PKT_CNT))
#define BIT_GET_BT_POLLUTE_PKT_CNT(x)			(((x) >> BIT_SHIFT_BT_POLLUTE_PKT_CNT) & BIT_MASK_BT_POLLUTE_PKT_CNT)
#define BIT_SET_BT_POLLUTE_PKT_CNT(x, v)		(BIT_CLEAR_BT_POLLUTE_PKT_CNT(x) | BIT_BT_POLLUTE_PKT_CNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PTCL_DBG				(Offset 0x04EC) */


#define BIT_SHIFT_PTCL_DBG				0
#define BIT_MASK_PTCL_DBG				0xffffffffL
#define BIT_PTCL_DBG(x)				(((x) & BIT_MASK_PTCL_DBG) << BIT_SHIFT_PTCL_DBG)
#define BITS_PTCL_DBG					(BIT_MASK_PTCL_DBG << BIT_SHIFT_PTCL_DBG)
#define BIT_CLEAR_PTCL_DBG(x)				((x) & (~BITS_PTCL_DBG))
#define BIT_GET_PTCL_DBG(x)				(((x) >> BIT_SHIFT_PTCL_DBG) & BIT_MASK_PTCL_DBG)
#define BIT_SET_PTCL_DBG(x, v)				(BIT_CLEAR_PTCL_DBG(x) | BIT_PTCL_DBG(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DROP_NUM				(Offset 0x04EC) */


#define BIT_SHIFT_DROP_PKT_NUM				0
#define BIT_MASK_DROP_PKT_NUM				0xffff
#define BIT_DROP_PKT_NUM(x)				(((x) & BIT_MASK_DROP_PKT_NUM) << BIT_SHIFT_DROP_PKT_NUM)
#define BITS_DROP_PKT_NUM				(BIT_MASK_DROP_PKT_NUM << BIT_SHIFT_DROP_PKT_NUM)
#define BIT_CLEAR_DROP_PKT_NUM(x)			((x) & (~BITS_DROP_PKT_NUM))
#define BIT_GET_DROP_PKT_NUM(x)			(((x) >> BIT_SHIFT_DROP_PKT_NUM) & BIT_MASK_DROP_PKT_NUM)
#define BIT_SET_DROP_PKT_NUM(x, v)			(BIT_CLEAR_DROP_PKT_NUM(x) | BIT_DROP_PKT_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PTCL_TX_RPT				(Offset 0x04F0) */


#define BIT_SHIFT_AC_TX_RPT_INFO			0
#define BIT_MASK_AC_TX_RPT_INFO			0xffffffffffffffffL
#define BIT_AC_TX_RPT_INFO(x)				(((x) & BIT_MASK_AC_TX_RPT_INFO) << BIT_SHIFT_AC_TX_RPT_INFO)
#define BITS_AC_TX_RPT_INFO				(BIT_MASK_AC_TX_RPT_INFO << BIT_SHIFT_AC_TX_RPT_INFO)
#define BIT_CLEAR_AC_TX_RPT_INFO(x)			((x) & (~BITS_AC_TX_RPT_INFO))
#define BIT_GET_AC_TX_RPT_INFO(x)			(((x) >> BIT_SHIFT_AC_TX_RPT_INFO) & BIT_MASK_AC_TX_RPT_INFO)
#define BIT_SET_AC_TX_RPT_INFO(x, v)			(BIT_CLEAR_AC_TX_RPT_INFO(x) | BIT_AC_TX_RPT_INFO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_TXOP_EXTRA_CTRL			(Offset 0x04F0) */

#define BIT_TXOP_EFFICIENCY_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BT_POLLUTE_PKTCNT			(Offset 0x04F0) */


#define BIT_SHIFT_BT_POLLUTE_PKTCNT			0
#define BIT_MASK_BT_POLLUTE_PKTCNT			0xffff
#define BIT_BT_POLLUTE_PKTCNT(x)			(((x) & BIT_MASK_BT_POLLUTE_PKTCNT) << BIT_SHIFT_BT_POLLUTE_PKTCNT)
#define BITS_BT_POLLUTE_PKTCNT				(BIT_MASK_BT_POLLUTE_PKTCNT << BIT_SHIFT_BT_POLLUTE_PKTCNT)
#define BIT_CLEAR_BT_POLLUTE_PKTCNT(x)			((x) & (~BITS_BT_POLLUTE_PKTCNT))
#define BIT_GET_BT_POLLUTE_PKTCNT(x)			(((x) >> BIT_SHIFT_BT_POLLUTE_PKTCNT) & BIT_MASK_BT_POLLUTE_PKTCNT)
#define BIT_SET_BT_POLLUTE_PKTCNT(x, v)		(BIT_CLEAR_BT_POLLUTE_PKTCNT(x) | BIT_BT_POLLUTE_PKTCNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPUMGQ_TIMER_CTRL2			(Offset 0x04F4) */


#define BIT_SHIFT_TRI_HEAD_ADDR			16
#define BIT_MASK_TRI_HEAD_ADDR				0xfff
#define BIT_TRI_HEAD_ADDR(x)				(((x) & BIT_MASK_TRI_HEAD_ADDR) << BIT_SHIFT_TRI_HEAD_ADDR)
#define BITS_TRI_HEAD_ADDR				(BIT_MASK_TRI_HEAD_ADDR << BIT_SHIFT_TRI_HEAD_ADDR)
#define BIT_CLEAR_TRI_HEAD_ADDR(x)			((x) & (~BITS_TRI_HEAD_ADDR))
#define BIT_GET_TRI_HEAD_ADDR(x)			(((x) >> BIT_SHIFT_TRI_HEAD_ADDR) & BIT_MASK_TRI_HEAD_ADDR)
#define BIT_SET_TRI_HEAD_ADDR(x, v)			(BIT_CLEAR_TRI_HEAD_ADDR(x) | BIT_TRI_HEAD_ADDR(v))

#define BIT_DROP_TH_EN					BIT(8)

#define BIT_SHIFT_DROP_TH				0
#define BIT_MASK_DROP_TH				0xff
#define BIT_DROP_TH(x)					(((x) & BIT_MASK_DROP_TH) << BIT_SHIFT_DROP_TH)
#define BITS_DROP_TH					(BIT_MASK_DROP_TH << BIT_SHIFT_DROP_TH)
#define BIT_CLEAR_DROP_TH(x)				((x) & (~BITS_DROP_TH))
#define BIT_GET_DROP_TH(x)				(((x) >> BIT_SHIFT_DROP_TH) & BIT_MASK_DROP_TH)
#define BIT_SET_DROP_TH(x, v)				(BIT_CLEAR_DROP_TH(x) | BIT_DROP_TH(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PTCL_DBG_OUT			(Offset 0x04F8) */


#define BIT_SHIFT_PTCL_DBG_OUT				0
#define BIT_MASK_PTCL_DBG_OUT				0xffffffffL
#define BIT_PTCL_DBG_OUT(x)				(((x) & BIT_MASK_PTCL_DBG_OUT) << BIT_SHIFT_PTCL_DBG_OUT)
#define BITS_PTCL_DBG_OUT				(BIT_MASK_PTCL_DBG_OUT << BIT_SHIFT_PTCL_DBG_OUT)
#define BIT_CLEAR_PTCL_DBG_OUT(x)			((x) & (~BITS_PTCL_DBG_OUT))
#define BIT_GET_PTCL_DBG_OUT(x)			(((x) >> BIT_SHIFT_PTCL_DBG_OUT) & BIT_MASK_PTCL_DBG_OUT)
#define BIT_SET_PTCL_DBG_OUT(x, v)			(BIT_CLEAR_PTCL_DBG_OUT(x) | BIT_PTCL_DBG_OUT(v))


#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_MOREDATA_CTRL2_EN				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_MOREDATA_CTRL2_EN_V2			BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_MOREDATA_CTRL1_EN				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_MOREDATA_CTRL1_EN_V2			BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_EN_BCN_TRXRPT				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUMMY_PAGE4				(Offset 0x04FC) */

#define BIT_PKTIN_MOREDATA_REPLACE_ENABLE		BIT(16)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_DUMMY_PAGE4_V1			(Offset 0x04FC) */

#define BIT_BCN_EN_EXTHWSEQ				BIT(1)
#define BIT_BCN_EN_HWSEQ				BIT(0)

#define BIT_SHIFT_R_MU_STA_GTAB_POSITION		0
#define BIT_MASK_R_MU_STA_GTAB_POSITION		0xffffffffffffffffL
#define BIT_R_MU_STA_GTAB_POSITION(x)			(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION) << BIT_SHIFT_R_MU_STA_GTAB_POSITION)
#define BITS_R_MU_STA_GTAB_POSITION			(BIT_MASK_R_MU_STA_GTAB_POSITION << BIT_SHIFT_R_MU_STA_GTAB_POSITION)
#define BIT_CLEAR_R_MU_STA_GTAB_POSITION(x)		((x) & (~BITS_R_MU_STA_GTAB_POSITION))
#define BIT_GET_R_MU_STA_GTAB_POSITION(x)		(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION) & BIT_MASK_R_MU_STA_GTAB_POSITION)
#define BIT_SET_R_MU_STA_GTAB_POSITION(x, v)		(BIT_CLEAR_R_MU_STA_GTAB_POSITION(x) | BIT_R_MU_STA_GTAB_POSITION(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MOREDATA				(Offset 0x04FE) */

#define BIT_MOREDATA_CTRL2_EN_V1			BIT(3)
#define BIT_MOREDATA_CTRL1_EN_V1			BIT(2)
#define BIT_PKTIN_MOREDATA_REPLACE_ENABLE_V1		BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EDCA_VO_PARAM			(Offset 0x0500) */


#define BIT_SHIFT_TXOPLIMIT				16
#define BIT_MASK_TXOPLIMIT				0x7ff
#define BIT_TXOPLIMIT(x)				(((x) & BIT_MASK_TXOPLIMIT) << BIT_SHIFT_TXOPLIMIT)
#define BITS_TXOPLIMIT					(BIT_MASK_TXOPLIMIT << BIT_SHIFT_TXOPLIMIT)
#define BIT_CLEAR_TXOPLIMIT(x)				((x) & (~BITS_TXOPLIMIT))
#define BIT_GET_TXOPLIMIT(x)				(((x) >> BIT_SHIFT_TXOPLIMIT) & BIT_MASK_TXOPLIMIT)
#define BIT_SET_TXOPLIMIT(x, v)			(BIT_CLEAR_TXOPLIMIT(x) | BIT_TXOPLIMIT(v))


#define BIT_SHIFT_BCNCW_MAX				12
#define BIT_MASK_BCNCW_MAX				0xf
#define BIT_BCNCW_MAX(x)				(((x) & BIT_MASK_BCNCW_MAX) << BIT_SHIFT_BCNCW_MAX)
#define BITS_BCNCW_MAX					(BIT_MASK_BCNCW_MAX << BIT_SHIFT_BCNCW_MAX)
#define BIT_CLEAR_BCNCW_MAX(x)				((x) & (~BITS_BCNCW_MAX))
#define BIT_GET_BCNCW_MAX(x)				(((x) >> BIT_SHIFT_BCNCW_MAX) & BIT_MASK_BCNCW_MAX)
#define BIT_SET_BCNCW_MAX(x, v)			(BIT_CLEAR_BCNCW_MAX(x) | BIT_BCNCW_MAX(v))


#define BIT_SHIFT_CW					8
#define BIT_MASK_CW					0xff
#define BIT_CW(x)					(((x) & BIT_MASK_CW) << BIT_SHIFT_CW)
#define BITS_CW					(BIT_MASK_CW << BIT_SHIFT_CW)
#define BIT_CLEAR_CW(x)				((x) & (~BITS_CW))
#define BIT_GET_CW(x)					(((x) >> BIT_SHIFT_CW) & BIT_MASK_CW)
#define BIT_SET_CW(x, v)				(BIT_CLEAR_CW(x) | BIT_CW(v))


#define BIT_SHIFT_BCNCW_MIN				8
#define BIT_MASK_BCNCW_MIN				0xf
#define BIT_BCNCW_MIN(x)				(((x) & BIT_MASK_BCNCW_MIN) << BIT_SHIFT_BCNCW_MIN)
#define BITS_BCNCW_MIN					(BIT_MASK_BCNCW_MIN << BIT_SHIFT_BCNCW_MIN)
#define BIT_CLEAR_BCNCW_MIN(x)				((x) & (~BITS_BCNCW_MIN))
#define BIT_GET_BCNCW_MIN(x)				(((x) >> BIT_SHIFT_BCNCW_MIN) & BIT_MASK_BCNCW_MIN)
#define BIT_SET_BCNCW_MIN(x, v)			(BIT_CLEAR_BCNCW_MIN(x) | BIT_BCNCW_MIN(v))


#define BIT_SHIFT_AIFS					0
#define BIT_MASK_AIFS					0xff
#define BIT_AIFS(x)					(((x) & BIT_MASK_AIFS) << BIT_SHIFT_AIFS)
#define BITS_AIFS					(BIT_MASK_AIFS << BIT_SHIFT_AIFS)
#define BIT_CLEAR_AIFS(x)				((x) & (~BITS_AIFS))
#define BIT_GET_AIFS(x)				(((x) >> BIT_SHIFT_AIFS) & BIT_MASK_AIFS)
#define BIT_SET_AIFS(x, v)				(BIT_CLEAR_AIFS(x) | BIT_AIFS(v))


#define BIT_SHIFT_BCNIFS				0
#define BIT_MASK_BCNIFS				0xff
#define BIT_BCNIFS(x)					(((x) & BIT_MASK_BCNIFS) << BIT_SHIFT_BCNIFS)
#define BITS_BCNIFS					(BIT_MASK_BCNIFS << BIT_SHIFT_BCNIFS)
#define BIT_CLEAR_BCNIFS(x)				((x) & (~BITS_BCNIFS))
#define BIT_GET_BCNIFS(x)				(((x) >> BIT_SHIFT_BCNIFS) & BIT_MASK_BCNIFS)
#define BIT_SET_BCNIFS(x, v)				(BIT_CLEAR_BCNIFS(x) | BIT_BCNIFS(v))


/* 2 REG_PIFS				(Offset 0x0512) */


#define BIT_SHIFT_PIFS					0
#define BIT_MASK_PIFS					0xff
#define BIT_PIFS(x)					(((x) & BIT_MASK_PIFS) << BIT_SHIFT_PIFS)
#define BITS_PIFS					(BIT_MASK_PIFS << BIT_SHIFT_PIFS)
#define BIT_CLEAR_PIFS(x)				((x) & (~BITS_PIFS))
#define BIT_GET_PIFS(x)				(((x) >> BIT_SHIFT_PIFS) & BIT_MASK_PIFS)
#define BIT_SET_PIFS(x, v)				(BIT_CLEAR_PIFS(x) | BIT_PIFS(v))


/* 2 REG_RDG_PIFS				(Offset 0x0513) */


#define BIT_SHIFT_RDG_PIFS				0
#define BIT_MASK_RDG_PIFS				0xff
#define BIT_RDG_PIFS(x)				(((x) & BIT_MASK_RDG_PIFS) << BIT_SHIFT_RDG_PIFS)
#define BITS_RDG_PIFS					(BIT_MASK_RDG_PIFS << BIT_SHIFT_RDG_PIFS)
#define BIT_CLEAR_RDG_PIFS(x)				((x) & (~BITS_RDG_PIFS))
#define BIT_GET_RDG_PIFS(x)				(((x) >> BIT_SHIFT_RDG_PIFS) & BIT_MASK_RDG_PIFS)
#define BIT_SET_RDG_PIFS(x, v)				(BIT_CLEAR_RDG_PIFS(x) | BIT_RDG_PIFS(v))


/* 2 REG_SIFS				(Offset 0x0514) */


#define BIT_SHIFT_SIFS_OFDM_TRX			24
#define BIT_MASK_SIFS_OFDM_TRX				0xff
#define BIT_SIFS_OFDM_TRX(x)				(((x) & BIT_MASK_SIFS_OFDM_TRX) << BIT_SHIFT_SIFS_OFDM_TRX)
#define BITS_SIFS_OFDM_TRX				(BIT_MASK_SIFS_OFDM_TRX << BIT_SHIFT_SIFS_OFDM_TRX)
#define BIT_CLEAR_SIFS_OFDM_TRX(x)			((x) & (~BITS_SIFS_OFDM_TRX))
#define BIT_GET_SIFS_OFDM_TRX(x)			(((x) >> BIT_SHIFT_SIFS_OFDM_TRX) & BIT_MASK_SIFS_OFDM_TRX)
#define BIT_SET_SIFS_OFDM_TRX(x, v)			(BIT_CLEAR_SIFS_OFDM_TRX(x) | BIT_SIFS_OFDM_TRX(v))


#define BIT_SHIFT_SIFS_CCK_TRX				16
#define BIT_MASK_SIFS_CCK_TRX				0xff
#define BIT_SIFS_CCK_TRX(x)				(((x) & BIT_MASK_SIFS_CCK_TRX) << BIT_SHIFT_SIFS_CCK_TRX)
#define BITS_SIFS_CCK_TRX				(BIT_MASK_SIFS_CCK_TRX << BIT_SHIFT_SIFS_CCK_TRX)
#define BIT_CLEAR_SIFS_CCK_TRX(x)			((x) & (~BITS_SIFS_CCK_TRX))
#define BIT_GET_SIFS_CCK_TRX(x)			(((x) >> BIT_SHIFT_SIFS_CCK_TRX) & BIT_MASK_SIFS_CCK_TRX)
#define BIT_SET_SIFS_CCK_TRX(x, v)			(BIT_CLEAR_SIFS_CCK_TRX(x) | BIT_SIFS_CCK_TRX(v))


#define BIT_SHIFT_SIFS_OFDM_CTX			8
#define BIT_MASK_SIFS_OFDM_CTX				0xff
#define BIT_SIFS_OFDM_CTX(x)				(((x) & BIT_MASK_SIFS_OFDM_CTX) << BIT_SHIFT_SIFS_OFDM_CTX)
#define BITS_SIFS_OFDM_CTX				(BIT_MASK_SIFS_OFDM_CTX << BIT_SHIFT_SIFS_OFDM_CTX)
#define BIT_CLEAR_SIFS_OFDM_CTX(x)			((x) & (~BITS_SIFS_OFDM_CTX))
#define BIT_GET_SIFS_OFDM_CTX(x)			(((x) >> BIT_SHIFT_SIFS_OFDM_CTX) & BIT_MASK_SIFS_OFDM_CTX)
#define BIT_SET_SIFS_OFDM_CTX(x, v)			(BIT_CLEAR_SIFS_OFDM_CTX(x) | BIT_SIFS_OFDM_CTX(v))


#define BIT_SHIFT_SIFS_CCK_CTX				0
#define BIT_MASK_SIFS_CCK_CTX				0xff
#define BIT_SIFS_CCK_CTX(x)				(((x) & BIT_MASK_SIFS_CCK_CTX) << BIT_SHIFT_SIFS_CCK_CTX)
#define BITS_SIFS_CCK_CTX				(BIT_MASK_SIFS_CCK_CTX << BIT_SHIFT_SIFS_CCK_CTX)
#define BIT_CLEAR_SIFS_CCK_CTX(x)			((x) & (~BITS_SIFS_CCK_CTX))
#define BIT_GET_SIFS_CCK_CTX(x)			(((x) >> BIT_SHIFT_SIFS_CCK_CTX) & BIT_MASK_SIFS_CCK_CTX)
#define BIT_SET_SIFS_CCK_CTX(x, v)			(BIT_CLEAR_SIFS_CCK_CTX(x) | BIT_SIFS_CCK_CTX(v))


/* 2 REG_FORCE_BCN_IFS_V1			(Offset 0x0518) */


#define BIT_SHIFT_FORCE_BCN_IFS			0
#define BIT_MASK_FORCE_BCN_IFS				0xff
#define BIT_FORCE_BCN_IFS(x)				(((x) & BIT_MASK_FORCE_BCN_IFS) << BIT_SHIFT_FORCE_BCN_IFS)
#define BITS_FORCE_BCN_IFS				(BIT_MASK_FORCE_BCN_IFS << BIT_SHIFT_FORCE_BCN_IFS)
#define BIT_CLEAR_FORCE_BCN_IFS(x)			((x) & (~BITS_FORCE_BCN_IFS))
#define BIT_GET_FORCE_BCN_IFS(x)			(((x) >> BIT_SHIFT_FORCE_BCN_IFS) & BIT_MASK_FORCE_BCN_IFS)
#define BIT_SET_FORCE_BCN_IFS(x, v)			(BIT_CLEAR_FORCE_BCN_IFS(x) | BIT_FORCE_BCN_IFS(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSFTR_SYN_OFFSET			(Offset 0x0518) */


#define BIT_SHIFT_TSFTR_SNC_OFFSET			0
#define BIT_MASK_TSFTR_SNC_OFFSET			0xffff
#define BIT_TSFTR_SNC_OFFSET(x)			(((x) & BIT_MASK_TSFTR_SNC_OFFSET) << BIT_SHIFT_TSFTR_SNC_OFFSET)
#define BITS_TSFTR_SNC_OFFSET				(BIT_MASK_TSFTR_SNC_OFFSET << BIT_SHIFT_TSFTR_SNC_OFFSET)
#define BIT_CLEAR_TSFTR_SNC_OFFSET(x)			((x) & (~BITS_TSFTR_SNC_OFFSET))
#define BIT_GET_TSFTR_SNC_OFFSET(x)			(((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET) & BIT_MASK_TSFTR_SNC_OFFSET)
#define BIT_SET_TSFTR_SNC_OFFSET(x, v)			(BIT_CLEAR_TSFTR_SNC_OFFSET(x) | BIT_TSFTR_SNC_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_AGGR_BREAK_TIME			(Offset 0x051A) */


#define BIT_SHIFT_AGGR_BK_TIME				0
#define BIT_MASK_AGGR_BK_TIME				0xff
#define BIT_AGGR_BK_TIME(x)				(((x) & BIT_MASK_AGGR_BK_TIME) << BIT_SHIFT_AGGR_BK_TIME)
#define BITS_AGGR_BK_TIME				(BIT_MASK_AGGR_BK_TIME << BIT_SHIFT_AGGR_BK_TIME)
#define BIT_CLEAR_AGGR_BK_TIME(x)			((x) & (~BITS_AGGR_BK_TIME))
#define BIT_GET_AGGR_BK_TIME(x)			(((x) >> BIT_SHIFT_AGGR_BK_TIME) & BIT_MASK_AGGR_BK_TIME)
#define BIT_SET_AGGR_BK_TIME(x, v)			(BIT_CLEAR_AGGR_BK_TIME(x) | BIT_AGGR_BK_TIME(v))


/* 2 REG_SLOT				(Offset 0x051B) */


#define BIT_SHIFT_SLOT					0
#define BIT_MASK_SLOT					0xff
#define BIT_SLOT(x)					(((x) & BIT_MASK_SLOT) << BIT_SHIFT_SLOT)
#define BITS_SLOT					(BIT_MASK_SLOT << BIT_SHIFT_SLOT)
#define BIT_CLEAR_SLOT(x)				((x) & (~BITS_SLOT))
#define BIT_GET_SLOT(x)				(((x) >> BIT_SHIFT_SLOT) & BIT_MASK_SLOT)
#define BIT_SET_SLOT(x, v)				(BIT_CLEAR_SLOT(x) | BIT_SLOT(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_NOA_OFF_ERLY_TIME			(Offset 0x051D) */


#define BIT_SHIFT__NOA_OFF_ERLY_TIME			0
#define BIT_MASK__NOA_OFF_ERLY_TIME			0xff
#define BIT__NOA_OFF_ERLY_TIME(x)			(((x) & BIT_MASK__NOA_OFF_ERLY_TIME) << BIT_SHIFT__NOA_OFF_ERLY_TIME)
#define BITS__NOA_OFF_ERLY_TIME			(BIT_MASK__NOA_OFF_ERLY_TIME << BIT_SHIFT__NOA_OFF_ERLY_TIME)
#define BIT_CLEAR__NOA_OFF_ERLY_TIME(x)		((x) & (~BITS__NOA_OFF_ERLY_TIME))
#define BIT_GET__NOA_OFF_ERLY_TIME(x)			(((x) >> BIT_SHIFT__NOA_OFF_ERLY_TIME) & BIT_MASK__NOA_OFF_ERLY_TIME)
#define BIT_SET__NOA_OFF_ERLY_TIME(x, v)		(BIT_CLEAR__NOA_OFF_ERLY_TIME(x) | BIT__NOA_OFF_ERLY_TIME(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CPUMGQ_PAUSE			(Offset 0x051E) */

#define BIT_CPUMGQ_PAUSE				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_PTCL_CTRL			(Offset 0x0520) */

#define BIT_DIS_EDCCA					BIT(15)
#define BIT_DIS_CCA					BIT(14)
#define BIT_LSIG_TXOP_TXCMD_NAV			BIT(13)
#define BIT_SIFS_BK_EN					BIT(12)

#define BIT_SHIFT_TXQ_NAV_MSK				8
#define BIT_MASK_TXQ_NAV_MSK				0xf
#define BIT_TXQ_NAV_MSK(x)				(((x) & BIT_MASK_TXQ_NAV_MSK) << BIT_SHIFT_TXQ_NAV_MSK)
#define BITS_TXQ_NAV_MSK				(BIT_MASK_TXQ_NAV_MSK << BIT_SHIFT_TXQ_NAV_MSK)
#define BIT_CLEAR_TXQ_NAV_MSK(x)			((x) & (~BITS_TXQ_NAV_MSK))
#define BIT_GET_TXQ_NAV_MSK(x)				(((x) >> BIT_SHIFT_TXQ_NAV_MSK) & BIT_MASK_TXQ_NAV_MSK)
#define BIT_SET_TXQ_NAV_MSK(x, v)			(BIT_CLEAR_TXQ_NAV_MSK(x) | BIT_TXQ_NAV_MSK(v))

#define BIT_DIS_CW					BIT(7)
#define BIT_NAV_END_TXOP				BIT(6)
#define BIT_RDG_END_TXOP				BIT(5)
#define BIT_AC_INBCN_HOLD				BIT(4)
#define BIT_MGTQ_TXOP_EN				BIT(3)
#define BIT_MGTQ_RTSMF_EN				BIT(2)
#define BIT_HIQ_RTSMF_EN				BIT(1)
#define BIT_BCN_RTSMF_EN				BIT(0)

/* 2 REG_TXPAUSE				(Offset 0x0522) */

#define BIT_STOP_BCN_HI_MGT				BIT(7)
#define BIT_MAC_STOPBCNQ				BIT(6)
#define BIT_MAC_STOPHIQ				BIT(5)
#define BIT_MAC_STOPMGQ				BIT(4)
#define BIT_MAC_STOPBK					BIT(3)
#define BIT_MAC_STOPBE					BIT(2)
#define BIT_MAC_STOPVI					BIT(1)
#define BIT_MAC_STOPVO					BIT(0)

/* 2 REG_DIS_TXREQ_CLR			(Offset 0x0523) */

#define BIT_DIS_BT_CCA					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DIS_TXREQ_CLR			(Offset 0x0523) */

#define BIT_DIS_TXREQ_CLR_CPUMGQ			BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DIS_TXREQ_CLR			(Offset 0x0523) */

#define BIT_DIS_TXREQ_CLR_HI				BIT(5)
#define BIT_DIS_TXREQ_CLR_MGQ				BIT(4)
#define BIT_DIS_TXREQ_CLR_VO				BIT(3)
#define BIT_DIS_TXREQ_CLR_VI				BIT(2)
#define BIT_DIS_TXREQ_CLR_BE				BIT(1)
#define BIT_DIS_TXREQ_CLR_BK				BIT(0)

/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_EN_CLR_TXREQ_INCCA				BIT(15)
#define BIT_DIS_TX_OVER_BCNQ				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_EN_BCNERR_INCCCA				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_EN_BCNERR_INCCA				BIT(13)
#define BIT_EN_BCNERR_INEDCCA				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_EDCCA_MSK_CNTDOWN_EN			BIT(11)
#define BIT_DIS_TXOP_CFE				BIT(10)
#define BIT_DIS_LSIG_CFE				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_DIS_STBC_CFE				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RD_CTRL				(Offset 0x0524) */

#define BIT_BKQ_RD_INIT_EN				BIT(7)
#define BIT_BEQ_RD_INIT_EN				BIT(6)
#define BIT_VIQ_RD_INIT_EN				BIT(5)
#define BIT_VOQ_RD_INIT_EN				BIT(4)
#define BIT_BKQ_RD_RESP_EN				BIT(3)
#define BIT_BEQ_RD_RESP_EN				BIT(2)
#define BIT_VIQ_RD_RESP_EN				BIT(1)
#define BIT_VOQ_RD_RESP_EN				BIT(0)

/* 2 REG_MBSSID_CTRL				(Offset 0x0526) */

#define BIT_MBID_BCNQ7_EN				BIT(7)
#define BIT_MBID_BCNQ6_EN				BIT(6)
#define BIT_MBID_BCNQ5_EN				BIT(5)
#define BIT_MBID_BCNQ4_EN				BIT(4)
#define BIT_MBID_BCNQ3_EN				BIT(3)
#define BIT_MBID_BCNQ2_EN				BIT(2)
#define BIT_MBID_BCNQ1_EN				BIT(1)
#define BIT_MBID_BCNQ0_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */

#define BIT_P2P_CTW_ALLSTASLEEP			BIT(7)
#define BIT_P2P_OFF_DISTX_EN				BIT(6)
#define BIT_PWR_MGT_EN					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */

#define BIT_P2P_BCN_AREA_EN				BIT(4)
#define BIT_P2P_CTWND_EN				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */

#define BIT_P2P_NOA1_EN				BIT(2)
#define BIT_P2P_NOA0_EN				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2PPS_CTRL				(Offset 0x0527) */

#define BIT_P2P_BCN_SEL				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */

#define BIT_EN_P2P_CTWND1				BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */

#define BIT_EN_TBTT_AREA_FOR_BB			BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */

#define BIT_EN_BKF_CLR_TXREQ				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */

#define BIT_EN_TSFBIT32_RST_P2P			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PKT_LIFETIME_CTRL			(Offset 0x0528) */

#define BIT_EN_BCN_TX_BTCCA				BIT(20)
#define BIT_DIS_PKT_TX_ATIM				BIT(19)
#define BIT_DIS_BCN_DIS_CTN				BIT(18)
#define BIT_EN_NAVEND_RST_TXOP				BIT(17)
#define BIT_EN_FILTER_CCA				BIT(16)

#define BIT_SHIFT_CCA_FILTER_THRS			8
#define BIT_MASK_CCA_FILTER_THRS			0xff
#define BIT_CCA_FILTER_THRS(x)				(((x) & BIT_MASK_CCA_FILTER_THRS) << BIT_SHIFT_CCA_FILTER_THRS)
#define BITS_CCA_FILTER_THRS				(BIT_MASK_CCA_FILTER_THRS << BIT_SHIFT_CCA_FILTER_THRS)
#define BIT_CLEAR_CCA_FILTER_THRS(x)			((x) & (~BITS_CCA_FILTER_THRS))
#define BIT_GET_CCA_FILTER_THRS(x)			(((x) >> BIT_SHIFT_CCA_FILTER_THRS) & BIT_MASK_CCA_FILTER_THRS)
#define BIT_SET_CCA_FILTER_THRS(x, v)			(BIT_CLEAR_CCA_FILTER_THRS(x) | BIT_CCA_FILTER_THRS(v))


#define BIT_SHIFT_EDCCA_THRS				0
#define BIT_MASK_EDCCA_THRS				0xff
#define BIT_EDCCA_THRS(x)				(((x) & BIT_MASK_EDCCA_THRS) << BIT_SHIFT_EDCCA_THRS)
#define BITS_EDCCA_THRS				(BIT_MASK_EDCCA_THRS << BIT_SHIFT_EDCCA_THRS)
#define BIT_CLEAR_EDCCA_THRS(x)			((x) & (~BITS_EDCCA_THRS))
#define BIT_GET_EDCCA_THRS(x)				(((x) >> BIT_SHIFT_EDCCA_THRS) & BIT_MASK_EDCCA_THRS)
#define BIT_SET_EDCCA_THRS(x, v)			(BIT_CLEAR_EDCCA_THRS(x) | BIT_EDCCA_THRS(v))


/* 2 REG_P2PPS_SPEC_STATE			(Offset 0x052B) */

#define BIT_SPEC_POWER_STATE				BIT(7)
#define BIT_SPEC_CTWINDOW_ON				BIT(6)
#define BIT_SPEC_BEACON_AREA_ON			BIT(5)
#define BIT_SPEC_CTWIN_EARLY_DISTX			BIT(4)
#define BIT_SPEC_NOA1_OFF_PERIOD			BIT(3)
#define BIT_SPEC_FORCE_DOZE1				BIT(2)
#define BIT_SPEC_NOA0_OFF_PERIOD			BIT(1)
#define BIT_SPEC_FORCE_DOZE0				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXOP_LIMIT_CTRL			(Offset 0x052C) */


#define BIT_SHIFT_TXOP_TBTT_CNT			24
#define BIT_MASK_TXOP_TBTT_CNT				0xff
#define BIT_TXOP_TBTT_CNT(x)				(((x) & BIT_MASK_TXOP_TBTT_CNT) << BIT_SHIFT_TXOP_TBTT_CNT)
#define BITS_TXOP_TBTT_CNT				(BIT_MASK_TXOP_TBTT_CNT << BIT_SHIFT_TXOP_TBTT_CNT)
#define BIT_CLEAR_TXOP_TBTT_CNT(x)			((x) & (~BITS_TXOP_TBTT_CNT))
#define BIT_GET_TXOP_TBTT_CNT(x)			(((x) >> BIT_SHIFT_TXOP_TBTT_CNT) & BIT_MASK_TXOP_TBTT_CNT)
#define BIT_SET_TXOP_TBTT_CNT(x, v)			(BIT_CLEAR_TXOP_TBTT_CNT(x) | BIT_TXOP_TBTT_CNT(v))


#define BIT_SHIFT_TXOP_TBTT_CNT_SEL			20
#define BIT_MASK_TXOP_TBTT_CNT_SEL			0xf
#define BIT_TXOP_TBTT_CNT_SEL(x)			(((x) & BIT_MASK_TXOP_TBTT_CNT_SEL) << BIT_SHIFT_TXOP_TBTT_CNT_SEL)
#define BITS_TXOP_TBTT_CNT_SEL				(BIT_MASK_TXOP_TBTT_CNT_SEL << BIT_SHIFT_TXOP_TBTT_CNT_SEL)
#define BIT_CLEAR_TXOP_TBTT_CNT_SEL(x)			((x) & (~BITS_TXOP_TBTT_CNT_SEL))
#define BIT_GET_TXOP_TBTT_CNT_SEL(x)			(((x) >> BIT_SHIFT_TXOP_TBTT_CNT_SEL) & BIT_MASK_TXOP_TBTT_CNT_SEL)
#define BIT_SET_TXOP_TBTT_CNT_SEL(x, v)		(BIT_CLEAR_TXOP_TBTT_CNT_SEL(x) | BIT_TXOP_TBTT_CNT_SEL(v))


#define BIT_SHIFT_TXOP_LMT_EN				16
#define BIT_MASK_TXOP_LMT_EN				0xf
#define BIT_TXOP_LMT_EN(x)				(((x) & BIT_MASK_TXOP_LMT_EN) << BIT_SHIFT_TXOP_LMT_EN)
#define BITS_TXOP_LMT_EN				(BIT_MASK_TXOP_LMT_EN << BIT_SHIFT_TXOP_LMT_EN)
#define BIT_CLEAR_TXOP_LMT_EN(x)			((x) & (~BITS_TXOP_LMT_EN))
#define BIT_GET_TXOP_LMT_EN(x)				(((x) >> BIT_SHIFT_TXOP_LMT_EN) & BIT_MASK_TXOP_LMT_EN)
#define BIT_SET_TXOP_LMT_EN(x, v)			(BIT_CLEAR_TXOP_LMT_EN(x) | BIT_TXOP_LMT_EN(v))


#define BIT_SHIFT_TXOP_LMT_TX_TIME			8
#define BIT_MASK_TXOP_LMT_TX_TIME			0xff
#define BIT_TXOP_LMT_TX_TIME(x)			(((x) & BIT_MASK_TXOP_LMT_TX_TIME) << BIT_SHIFT_TXOP_LMT_TX_TIME)
#define BITS_TXOP_LMT_TX_TIME				(BIT_MASK_TXOP_LMT_TX_TIME << BIT_SHIFT_TXOP_LMT_TX_TIME)
#define BIT_CLEAR_TXOP_LMT_TX_TIME(x)			((x) & (~BITS_TXOP_LMT_TX_TIME))
#define BIT_GET_TXOP_LMT_TX_TIME(x)			(((x) >> BIT_SHIFT_TXOP_LMT_TX_TIME) & BIT_MASK_TXOP_LMT_TX_TIME)
#define BIT_SET_TXOP_LMT_TX_TIME(x, v)			(BIT_CLEAR_TXOP_LMT_TX_TIME(x) | BIT_TXOP_LMT_TX_TIME(v))

#define BIT_TXOP_CNT_TRIGGER_RESET			BIT(7)

#define BIT_SHIFT_TXOP_LMT_PKT_NUM			0
#define BIT_MASK_TXOP_LMT_PKT_NUM			0x3f
#define BIT_TXOP_LMT_PKT_NUM(x)			(((x) & BIT_MASK_TXOP_LMT_PKT_NUM) << BIT_SHIFT_TXOP_LMT_PKT_NUM)
#define BITS_TXOP_LMT_PKT_NUM				(BIT_MASK_TXOP_LMT_PKT_NUM << BIT_SHIFT_TXOP_LMT_PKT_NUM)
#define BIT_CLEAR_TXOP_LMT_PKT_NUM(x)			((x) & (~BITS_TXOP_LMT_PKT_NUM))
#define BIT_GET_TXOP_LMT_PKT_NUM(x)			(((x) >> BIT_SHIFT_TXOP_LMT_PKT_NUM) & BIT_MASK_TXOP_LMT_PKT_NUM)
#define BIT_SET_TXOP_LMT_PKT_NUM(x, v)			(BIT_CLEAR_TXOP_LMT_PKT_NUM(x) | BIT_TXOP_LMT_PKT_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PON_DIS_TXTIME			(Offset 0x0531) */


#define BIT_SHIFT_P2PON_DIS_TXTIME			0
#define BIT_MASK_P2PON_DIS_TXTIME			0xff
#define BIT_P2PON_DIS_TXTIME(x)			(((x) & BIT_MASK_P2PON_DIS_TXTIME) << BIT_SHIFT_P2PON_DIS_TXTIME)
#define BITS_P2PON_DIS_TXTIME				(BIT_MASK_P2PON_DIS_TXTIME << BIT_SHIFT_P2PON_DIS_TXTIME)
#define BIT_CLEAR_P2PON_DIS_TXTIME(x)			((x) & (~BITS_P2PON_DIS_TXTIME))
#define BIT_GET_P2PON_DIS_TXTIME(x)			(((x) >> BIT_SHIFT_P2PON_DIS_TXTIME) & BIT_MASK_P2PON_DIS_TXTIME)
#define BIT_SET_P2PON_DIS_TXTIME(x, v)			(BIT_CLEAR_P2PON_DIS_TXTIME(x) | BIT_P2PON_DIS_TXTIME(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CCA_TXEN_CNT			(Offset 0x0534) */

#define BIT_CCA_TXEN_CNT_SWITCH			BIT(17)
#define BIT_CCA_TXEN_CNT_EN				BIT(16)

#define BIT_SHIFT_CCA_TXEN_BIG_CNT			8
#define BIT_MASK_CCA_TXEN_BIG_CNT			0xff
#define BIT_CCA_TXEN_BIG_CNT(x)			(((x) & BIT_MASK_CCA_TXEN_BIG_CNT) << BIT_SHIFT_CCA_TXEN_BIG_CNT)
#define BITS_CCA_TXEN_BIG_CNT				(BIT_MASK_CCA_TXEN_BIG_CNT << BIT_SHIFT_CCA_TXEN_BIG_CNT)
#define BIT_CLEAR_CCA_TXEN_BIG_CNT(x)			((x) & (~BITS_CCA_TXEN_BIG_CNT))
#define BIT_GET_CCA_TXEN_BIG_CNT(x)			(((x) >> BIT_SHIFT_CCA_TXEN_BIG_CNT) & BIT_MASK_CCA_TXEN_BIG_CNT)
#define BIT_SET_CCA_TXEN_BIG_CNT(x, v)			(BIT_CLEAR_CCA_TXEN_BIG_CNT(x) | BIT_CCA_TXEN_BIG_CNT(v))


#define BIT_SHIFT_CCA_TXEN_SMALL_CNT			0
#define BIT_MASK_CCA_TXEN_SMALL_CNT			0xff
#define BIT_CCA_TXEN_SMALL_CNT(x)			(((x) & BIT_MASK_CCA_TXEN_SMALL_CNT) << BIT_SHIFT_CCA_TXEN_SMALL_CNT)
#define BITS_CCA_TXEN_SMALL_CNT			(BIT_MASK_CCA_TXEN_SMALL_CNT << BIT_SHIFT_CCA_TXEN_SMALL_CNT)
#define BIT_CLEAR_CCA_TXEN_SMALL_CNT(x)		((x) & (~BITS_CCA_TXEN_SMALL_CNT))
#define BIT_GET_CCA_TXEN_SMALL_CNT(x)			(((x) >> BIT_SHIFT_CCA_TXEN_SMALL_CNT) & BIT_MASK_CCA_TXEN_SMALL_CNT)
#define BIT_SET_CCA_TXEN_SMALL_CNT(x, v)		(BIT_CLEAR_CCA_TXEN_SMALL_CNT(x) | BIT_CCA_TXEN_SMALL_CNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_THR			(Offset 0x0538) */


#define BIT_SHIFT_BK_QUEUE_THR				24
#define BIT_MASK_BK_QUEUE_THR				0xff
#define BIT_BK_QUEUE_THR(x)				(((x) & BIT_MASK_BK_QUEUE_THR) << BIT_SHIFT_BK_QUEUE_THR)
#define BITS_BK_QUEUE_THR				(BIT_MASK_BK_QUEUE_THR << BIT_SHIFT_BK_QUEUE_THR)
#define BIT_CLEAR_BK_QUEUE_THR(x)			((x) & (~BITS_BK_QUEUE_THR))
#define BIT_GET_BK_QUEUE_THR(x)			(((x) >> BIT_SHIFT_BK_QUEUE_THR) & BIT_MASK_BK_QUEUE_THR)
#define BIT_SET_BK_QUEUE_THR(x, v)			(BIT_CLEAR_BK_QUEUE_THR(x) | BIT_BK_QUEUE_THR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION			(Offset 0x0538) */


#define BIT_SHIFT_MAX_INTER_COLLISION_BK		24
#define BIT_MASK_MAX_INTER_COLLISION_BK		0xff
#define BIT_MAX_INTER_COLLISION_BK(x)			(((x) & BIT_MASK_MAX_INTER_COLLISION_BK) << BIT_SHIFT_MAX_INTER_COLLISION_BK)
#define BITS_MAX_INTER_COLLISION_BK			(BIT_MASK_MAX_INTER_COLLISION_BK << BIT_SHIFT_MAX_INTER_COLLISION_BK)
#define BIT_CLEAR_MAX_INTER_COLLISION_BK(x)		((x) & (~BITS_MAX_INTER_COLLISION_BK))
#define BIT_GET_MAX_INTER_COLLISION_BK(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_BK) & BIT_MASK_MAX_INTER_COLLISION_BK)
#define BIT_SET_MAX_INTER_COLLISION_BK(x, v)		(BIT_CLEAR_MAX_INTER_COLLISION_BK(x) | BIT_MAX_INTER_COLLISION_BK(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_THR			(Offset 0x0538) */


#define BIT_SHIFT_BE_QUEUE_THR				16
#define BIT_MASK_BE_QUEUE_THR				0xff
#define BIT_BE_QUEUE_THR(x)				(((x) & BIT_MASK_BE_QUEUE_THR) << BIT_SHIFT_BE_QUEUE_THR)
#define BITS_BE_QUEUE_THR				(BIT_MASK_BE_QUEUE_THR << BIT_SHIFT_BE_QUEUE_THR)
#define BIT_CLEAR_BE_QUEUE_THR(x)			((x) & (~BITS_BE_QUEUE_THR))
#define BIT_GET_BE_QUEUE_THR(x)			(((x) >> BIT_SHIFT_BE_QUEUE_THR) & BIT_MASK_BE_QUEUE_THR)
#define BIT_SET_BE_QUEUE_THR(x, v)			(BIT_CLEAR_BE_QUEUE_THR(x) | BIT_BE_QUEUE_THR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION			(Offset 0x0538) */


#define BIT_SHIFT_MAX_INTER_COLLISION_BE		16
#define BIT_MASK_MAX_INTER_COLLISION_BE		0xff
#define BIT_MAX_INTER_COLLISION_BE(x)			(((x) & BIT_MASK_MAX_INTER_COLLISION_BE) << BIT_SHIFT_MAX_INTER_COLLISION_BE)
#define BITS_MAX_INTER_COLLISION_BE			(BIT_MASK_MAX_INTER_COLLISION_BE << BIT_SHIFT_MAX_INTER_COLLISION_BE)
#define BIT_CLEAR_MAX_INTER_COLLISION_BE(x)		((x) & (~BITS_MAX_INTER_COLLISION_BE))
#define BIT_GET_MAX_INTER_COLLISION_BE(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_BE) & BIT_MASK_MAX_INTER_COLLISION_BE)
#define BIT_SET_MAX_INTER_COLLISION_BE(x, v)		(BIT_CLEAR_MAX_INTER_COLLISION_BE(x) | BIT_MAX_INTER_COLLISION_BE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_THR			(Offset 0x0538) */


#define BIT_SHIFT_VI_QUEUE_THR				8
#define BIT_MASK_VI_QUEUE_THR				0xff
#define BIT_VI_QUEUE_THR(x)				(((x) & BIT_MASK_VI_QUEUE_THR) << BIT_SHIFT_VI_QUEUE_THR)
#define BITS_VI_QUEUE_THR				(BIT_MASK_VI_QUEUE_THR << BIT_SHIFT_VI_QUEUE_THR)
#define BIT_CLEAR_VI_QUEUE_THR(x)			((x) & (~BITS_VI_QUEUE_THR))
#define BIT_GET_VI_QUEUE_THR(x)			(((x) >> BIT_SHIFT_VI_QUEUE_THR) & BIT_MASK_VI_QUEUE_THR)
#define BIT_SET_VI_QUEUE_THR(x, v)			(BIT_CLEAR_VI_QUEUE_THR(x) | BIT_VI_QUEUE_THR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION			(Offset 0x0538) */


#define BIT_SHIFT_MAX_INTER_COLLISION_VI		8
#define BIT_MASK_MAX_INTER_COLLISION_VI		0xff
#define BIT_MAX_INTER_COLLISION_VI(x)			(((x) & BIT_MASK_MAX_INTER_COLLISION_VI) << BIT_SHIFT_MAX_INTER_COLLISION_VI)
#define BITS_MAX_INTER_COLLISION_VI			(BIT_MASK_MAX_INTER_COLLISION_VI << BIT_SHIFT_MAX_INTER_COLLISION_VI)
#define BIT_CLEAR_MAX_INTER_COLLISION_VI(x)		((x) & (~BITS_MAX_INTER_COLLISION_VI))
#define BIT_GET_MAX_INTER_COLLISION_VI(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_VI) & BIT_MASK_MAX_INTER_COLLISION_VI)
#define BIT_SET_MAX_INTER_COLLISION_VI(x, v)		(BIT_CLEAR_MAX_INTER_COLLISION_VI(x) | BIT_MAX_INTER_COLLISION_VI(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_THR			(Offset 0x0538) */


#define BIT_SHIFT_VO_QUEUE_THR				0
#define BIT_MASK_VO_QUEUE_THR				0xff
#define BIT_VO_QUEUE_THR(x)				(((x) & BIT_MASK_VO_QUEUE_THR) << BIT_SHIFT_VO_QUEUE_THR)
#define BITS_VO_QUEUE_THR				(BIT_MASK_VO_QUEUE_THR << BIT_SHIFT_VO_QUEUE_THR)
#define BIT_CLEAR_VO_QUEUE_THR(x)			((x) & (~BITS_VO_QUEUE_THR))
#define BIT_GET_VO_QUEUE_THR(x)			(((x) >> BIT_SHIFT_VO_QUEUE_THR) & BIT_MASK_VO_QUEUE_THR)
#define BIT_SET_VO_QUEUE_THR(x, v)			(BIT_CLEAR_VO_QUEUE_THR(x) | BIT_VO_QUEUE_THR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION			(Offset 0x0538) */


#define BIT_SHIFT_MAX_INTER_COLLISION_VO		0
#define BIT_MASK_MAX_INTER_COLLISION_VO		0xff
#define BIT_MAX_INTER_COLLISION_VO(x)			(((x) & BIT_MASK_MAX_INTER_COLLISION_VO) << BIT_SHIFT_MAX_INTER_COLLISION_VO)
#define BITS_MAX_INTER_COLLISION_VO			(BIT_MASK_MAX_INTER_COLLISION_VO << BIT_SHIFT_MAX_INTER_COLLISION_VO)
#define BIT_CLEAR_MAX_INTER_COLLISION_VO(x)		((x) & (~BITS_MAX_INTER_COLLISION_VO))
#define BIT_GET_MAX_INTER_COLLISION_VO(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_VO) & BIT_MASK_MAX_INTER_COLLISION_VO)
#define BIT_SET_MAX_INTER_COLLISION_VO(x, v)		(BIT_CLEAR_MAX_INTER_COLLISION_VO(x) | BIT_MAX_INTER_COLLISION_VO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */

#define BIT_QUEUE_INCOL_EN				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION_CNT		(Offset 0x053C) */

#define BIT_MAX_INTER_COLLISION_EN			BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_BK_TRIGGER_NUM_V1			12
#define BIT_MASK_BK_TRIGGER_NUM_V1			0xf
#define BIT_BK_TRIGGER_NUM_V1(x)			(((x) & BIT_MASK_BK_TRIGGER_NUM_V1) << BIT_SHIFT_BK_TRIGGER_NUM_V1)
#define BITS_BK_TRIGGER_NUM_V1				(BIT_MASK_BK_TRIGGER_NUM_V1 << BIT_SHIFT_BK_TRIGGER_NUM_V1)
#define BIT_CLEAR_BK_TRIGGER_NUM_V1(x)			((x) & (~BITS_BK_TRIGGER_NUM_V1))
#define BIT_GET_BK_TRIGGER_NUM_V1(x)			(((x) >> BIT_SHIFT_BK_TRIGGER_NUM_V1) & BIT_MASK_BK_TRIGGER_NUM_V1)
#define BIT_SET_BK_TRIGGER_NUM_V1(x, v)		(BIT_CLEAR_BK_TRIGGER_NUM_V1(x) | BIT_BK_TRIGGER_NUM_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION_CNT		(Offset 0x053C) */


#define BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK		12
#define BIT_MASK_MAX_INTER_COLLISION_CNT_BK		0xf
#define BIT_MAX_INTER_COLLISION_CNT_BK(x)		(((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_BK) << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK)
#define BITS_MAX_INTER_COLLISION_CNT_BK		(BIT_MASK_MAX_INTER_COLLISION_CNT_BK << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK)
#define BIT_CLEAR_MAX_INTER_COLLISION_CNT_BK(x)	((x) & (~BITS_MAX_INTER_COLLISION_CNT_BK))
#define BIT_GET_MAX_INTER_COLLISION_CNT_BK(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_BK) & BIT_MASK_MAX_INTER_COLLISION_CNT_BK)
#define BIT_SET_MAX_INTER_COLLISION_CNT_BK(x, v)	(BIT_CLEAR_MAX_INTER_COLLISION_CNT_BK(x) | BIT_MAX_INTER_COLLISION_CNT_BK(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_BE_TRIGGER_NUM			12
#define BIT_MASK_BE_TRIGGER_NUM			0xf
#define BIT_BE_TRIGGER_NUM(x)				(((x) & BIT_MASK_BE_TRIGGER_NUM) << BIT_SHIFT_BE_TRIGGER_NUM)
#define BITS_BE_TRIGGER_NUM				(BIT_MASK_BE_TRIGGER_NUM << BIT_SHIFT_BE_TRIGGER_NUM)
#define BIT_CLEAR_BE_TRIGGER_NUM(x)			((x) & (~BITS_BE_TRIGGER_NUM))
#define BIT_GET_BE_TRIGGER_NUM(x)			(((x) >> BIT_SHIFT_BE_TRIGGER_NUM) & BIT_MASK_BE_TRIGGER_NUM)
#define BIT_SET_BE_TRIGGER_NUM(x, v)			(BIT_CLEAR_BE_TRIGGER_NUM(x) | BIT_BE_TRIGGER_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_BE_TRIGGER_NUM_V1			8
#define BIT_MASK_BE_TRIGGER_NUM_V1			0xf
#define BIT_BE_TRIGGER_NUM_V1(x)			(((x) & BIT_MASK_BE_TRIGGER_NUM_V1) << BIT_SHIFT_BE_TRIGGER_NUM_V1)
#define BITS_BE_TRIGGER_NUM_V1				(BIT_MASK_BE_TRIGGER_NUM_V1 << BIT_SHIFT_BE_TRIGGER_NUM_V1)
#define BIT_CLEAR_BE_TRIGGER_NUM_V1(x)			((x) & (~BITS_BE_TRIGGER_NUM_V1))
#define BIT_GET_BE_TRIGGER_NUM_V1(x)			(((x) >> BIT_SHIFT_BE_TRIGGER_NUM_V1) & BIT_MASK_BE_TRIGGER_NUM_V1)
#define BIT_SET_BE_TRIGGER_NUM_V1(x, v)		(BIT_CLEAR_BE_TRIGGER_NUM_V1(x) | BIT_BE_TRIGGER_NUM_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION_CNT		(Offset 0x053C) */


#define BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE		8
#define BIT_MASK_MAX_INTER_COLLISION_CNT_BE		0xf
#define BIT_MAX_INTER_COLLISION_CNT_BE(x)		(((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_BE) << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE)
#define BITS_MAX_INTER_COLLISION_CNT_BE		(BIT_MASK_MAX_INTER_COLLISION_CNT_BE << BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE)
#define BIT_CLEAR_MAX_INTER_COLLISION_CNT_BE(x)	((x) & (~BITS_MAX_INTER_COLLISION_CNT_BE))
#define BIT_GET_MAX_INTER_COLLISION_CNT_BE(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_BE) & BIT_MASK_MAX_INTER_COLLISION_CNT_BE)
#define BIT_SET_MAX_INTER_COLLISION_CNT_BE(x, v)	(BIT_CLEAR_MAX_INTER_COLLISION_CNT_BE(x) | BIT_MAX_INTER_COLLISION_CNT_BE(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_BK_TRIGGER_NUM			8
#define BIT_MASK_BK_TRIGGER_NUM			0xf
#define BIT_BK_TRIGGER_NUM(x)				(((x) & BIT_MASK_BK_TRIGGER_NUM) << BIT_SHIFT_BK_TRIGGER_NUM)
#define BITS_BK_TRIGGER_NUM				(BIT_MASK_BK_TRIGGER_NUM << BIT_SHIFT_BK_TRIGGER_NUM)
#define BIT_CLEAR_BK_TRIGGER_NUM(x)			((x) & (~BITS_BK_TRIGGER_NUM))
#define BIT_GET_BK_TRIGGER_NUM(x)			(((x) >> BIT_SHIFT_BK_TRIGGER_NUM) & BIT_MASK_BK_TRIGGER_NUM)
#define BIT_SET_BK_TRIGGER_NUM(x, v)			(BIT_CLEAR_BK_TRIGGER_NUM(x) | BIT_BK_TRIGGER_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_VI_TRIGGER_NUM			4
#define BIT_MASK_VI_TRIGGER_NUM			0xf
#define BIT_VI_TRIGGER_NUM(x)				(((x) & BIT_MASK_VI_TRIGGER_NUM) << BIT_SHIFT_VI_TRIGGER_NUM)
#define BITS_VI_TRIGGER_NUM				(BIT_MASK_VI_TRIGGER_NUM << BIT_SHIFT_VI_TRIGGER_NUM)
#define BIT_CLEAR_VI_TRIGGER_NUM(x)			((x) & (~BITS_VI_TRIGGER_NUM))
#define BIT_GET_VI_TRIGGER_NUM(x)			(((x) >> BIT_SHIFT_VI_TRIGGER_NUM) & BIT_MASK_VI_TRIGGER_NUM)
#define BIT_SET_VI_TRIGGER_NUM(x, v)			(BIT_CLEAR_VI_TRIGGER_NUM(x) | BIT_VI_TRIGGER_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION_CNT		(Offset 0x053C) */


#define BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI		4
#define BIT_MASK_MAX_INTER_COLLISION_CNT_VI		0xf
#define BIT_MAX_INTER_COLLISION_CNT_VI(x)		(((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_VI) << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI)
#define BITS_MAX_INTER_COLLISION_CNT_VI		(BIT_MASK_MAX_INTER_COLLISION_CNT_VI << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI)
#define BIT_CLEAR_MAX_INTER_COLLISION_CNT_VI(x)	((x) & (~BITS_MAX_INTER_COLLISION_CNT_VI))
#define BIT_GET_MAX_INTER_COLLISION_CNT_VI(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_VI) & BIT_MASK_MAX_INTER_COLLISION_CNT_VI)
#define BIT_SET_MAX_INTER_COLLISION_CNT_VI(x, v)	(BIT_CLEAR_MAX_INTER_COLLISION_CNT_VI(x) | BIT_MAX_INTER_COLLISION_CNT_VI(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_QUEUE_INCOL_EN			(Offset 0x053C) */


#define BIT_SHIFT_VO_TRIGGER_NUM			0
#define BIT_MASK_VO_TRIGGER_NUM			0xf
#define BIT_VO_TRIGGER_NUM(x)				(((x) & BIT_MASK_VO_TRIGGER_NUM) << BIT_SHIFT_VO_TRIGGER_NUM)
#define BITS_VO_TRIGGER_NUM				(BIT_MASK_VO_TRIGGER_NUM << BIT_SHIFT_VO_TRIGGER_NUM)
#define BIT_CLEAR_VO_TRIGGER_NUM(x)			((x) & (~BITS_VO_TRIGGER_NUM))
#define BIT_GET_VO_TRIGGER_NUM(x)			(((x) >> BIT_SHIFT_VO_TRIGGER_NUM) & BIT_MASK_VO_TRIGGER_NUM)
#define BIT_SET_VO_TRIGGER_NUM(x, v)			(BIT_CLEAR_VO_TRIGGER_NUM(x) | BIT_VO_TRIGGER_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAX_INTER_COLLISION_CNT		(Offset 0x053C) */


#define BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO		0
#define BIT_MASK_MAX_INTER_COLLISION_CNT_VO		0xf
#define BIT_MAX_INTER_COLLISION_CNT_VO(x)		(((x) & BIT_MASK_MAX_INTER_COLLISION_CNT_VO) << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO)
#define BITS_MAX_INTER_COLLISION_CNT_VO		(BIT_MASK_MAX_INTER_COLLISION_CNT_VO << BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO)
#define BIT_CLEAR_MAX_INTER_COLLISION_CNT_VO(x)	((x) & (~BITS_MAX_INTER_COLLISION_CNT_VO))
#define BIT_GET_MAX_INTER_COLLISION_CNT_VO(x)		(((x) >> BIT_SHIFT_MAX_INTER_COLLISION_CNT_VO) & BIT_MASK_MAX_INTER_COLLISION_CNT_VO)
#define BIT_SET_MAX_INTER_COLLISION_CNT_VO(x, v)	(BIT_CLEAR_MAX_INTER_COLLISION_CNT_VO(x) | BIT_MAX_INTER_COLLISION_CNT_VO(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TBTT_PROHIBIT			(Offset 0x0540) */


#define BIT_SHIFT_TBTT_HOLD_TIME_AP			8
#define BIT_MASK_TBTT_HOLD_TIME_AP			0xfff
#define BIT_TBTT_HOLD_TIME_AP(x)			(((x) & BIT_MASK_TBTT_HOLD_TIME_AP) << BIT_SHIFT_TBTT_HOLD_TIME_AP)
#define BITS_TBTT_HOLD_TIME_AP				(BIT_MASK_TBTT_HOLD_TIME_AP << BIT_SHIFT_TBTT_HOLD_TIME_AP)
#define BIT_CLEAR_TBTT_HOLD_TIME_AP(x)			((x) & (~BITS_TBTT_HOLD_TIME_AP))
#define BIT_GET_TBTT_HOLD_TIME_AP(x)			(((x) >> BIT_SHIFT_TBTT_HOLD_TIME_AP) & BIT_MASK_TBTT_HOLD_TIME_AP)
#define BIT_SET_TBTT_HOLD_TIME_AP(x, v)		(BIT_CLEAR_TBTT_HOLD_TIME_AP(x) | BIT_TBTT_HOLD_TIME_AP(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TBTT_PROHIBIT			(Offset 0x0540) */


#define BIT_SHIFT_TBTT_HOLD_TIME_INFRA			4
#define BIT_MASK_TBTT_HOLD_TIME_INFRA			0xf
#define BIT_TBTT_HOLD_TIME_INFRA(x)			(((x) & BIT_MASK_TBTT_HOLD_TIME_INFRA) << BIT_SHIFT_TBTT_HOLD_TIME_INFRA)
#define BITS_TBTT_HOLD_TIME_INFRA			(BIT_MASK_TBTT_HOLD_TIME_INFRA << BIT_SHIFT_TBTT_HOLD_TIME_INFRA)
#define BIT_CLEAR_TBTT_HOLD_TIME_INFRA(x)		((x) & (~BITS_TBTT_HOLD_TIME_INFRA))
#define BIT_GET_TBTT_HOLD_TIME_INFRA(x)		(((x) >> BIT_SHIFT_TBTT_HOLD_TIME_INFRA) & BIT_MASK_TBTT_HOLD_TIME_INFRA)
#define BIT_SET_TBTT_HOLD_TIME_INFRA(x, v)		(BIT_CLEAR_TBTT_HOLD_TIME_INFRA(x) | BIT_TBTT_HOLD_TIME_INFRA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RD_NAV_NXT				(Offset 0x0544) */


#define BIT_SHIFT_RD_NAV_PROT_NXT			0
#define BIT_MASK_RD_NAV_PROT_NXT			0xffff
#define BIT_RD_NAV_PROT_NXT(x)				(((x) & BIT_MASK_RD_NAV_PROT_NXT) << BIT_SHIFT_RD_NAV_PROT_NXT)
#define BITS_RD_NAV_PROT_NXT				(BIT_MASK_RD_NAV_PROT_NXT << BIT_SHIFT_RD_NAV_PROT_NXT)
#define BIT_CLEAR_RD_NAV_PROT_NXT(x)			((x) & (~BITS_RD_NAV_PROT_NXT))
#define BIT_GET_RD_NAV_PROT_NXT(x)			(((x) >> BIT_SHIFT_RD_NAV_PROT_NXT) & BIT_MASK_RD_NAV_PROT_NXT)
#define BIT_SET_RD_NAV_PROT_NXT(x, v)			(BIT_CLEAR_RD_NAV_PROT_NXT(x) | BIT_RD_NAV_PROT_NXT(v))


/* 2 REG_NAV_PROT_LEN			(Offset 0x0546) */


#define BIT_SHIFT_NAV_PROT_LEN				0
#define BIT_MASK_NAV_PROT_LEN				0xffff
#define BIT_NAV_PROT_LEN(x)				(((x) & BIT_MASK_NAV_PROT_LEN) << BIT_SHIFT_NAV_PROT_LEN)
#define BITS_NAV_PROT_LEN				(BIT_MASK_NAV_PROT_LEN << BIT_SHIFT_NAV_PROT_LEN)
#define BIT_CLEAR_NAV_PROT_LEN(x)			((x) & (~BITS_NAV_PROT_LEN))
#define BIT_GET_NAV_PROT_LEN(x)			(((x) >> BIT_SHIFT_NAV_PROT_LEN) & BIT_MASK_NAV_PROT_LEN)
#define BIT_SET_NAV_PROT_LEN(x, v)			(BIT_CLEAR_NAV_PROT_LEN(x) | BIT_NAV_PROT_LEN(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_CTRL				(Offset 0x0548) */


#define BIT_SHIFT_FTM_TSF_R2T_PORT			22
#define BIT_MASK_FTM_TSF_R2T_PORT			0x7
#define BIT_FTM_TSF_R2T_PORT(x)			(((x) & BIT_MASK_FTM_TSF_R2T_PORT) << BIT_SHIFT_FTM_TSF_R2T_PORT)
#define BITS_FTM_TSF_R2T_PORT				(BIT_MASK_FTM_TSF_R2T_PORT << BIT_SHIFT_FTM_TSF_R2T_PORT)
#define BIT_CLEAR_FTM_TSF_R2T_PORT(x)			((x) & (~BITS_FTM_TSF_R2T_PORT))
#define BIT_GET_FTM_TSF_R2T_PORT(x)			(((x) >> BIT_SHIFT_FTM_TSF_R2T_PORT) & BIT_MASK_FTM_TSF_R2T_PORT)
#define BIT_SET_FTM_TSF_R2T_PORT(x, v)			(BIT_CLEAR_FTM_TSF_R2T_PORT(x) | BIT_FTM_TSF_R2T_PORT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_PTT				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT_TSF_R2T_SEL			22
#define BIT_MASK_FTM_PTT_TSF_R2T_SEL			0x7
#define BIT_FTM_PTT_TSF_R2T_SEL(x)			(((x) & BIT_MASK_FTM_PTT_TSF_R2T_SEL) << BIT_SHIFT_FTM_PTT_TSF_R2T_SEL)
#define BITS_FTM_PTT_TSF_R2T_SEL			(BIT_MASK_FTM_PTT_TSF_R2T_SEL << BIT_SHIFT_FTM_PTT_TSF_R2T_SEL)
#define BIT_CLEAR_FTM_PTT_TSF_R2T_SEL(x)		((x) & (~BITS_FTM_PTT_TSF_R2T_SEL))
#define BIT_GET_FTM_PTT_TSF_R2T_SEL(x)			(((x) >> BIT_SHIFT_FTM_PTT_TSF_R2T_SEL) & BIT_MASK_FTM_PTT_TSF_R2T_SEL)
#define BIT_SET_FTM_PTT_TSF_R2T_SEL(x, v)		(BIT_CLEAR_FTM_PTT_TSF_R2T_SEL(x) | BIT_FTM_PTT_TSF_R2T_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_CTRL				(Offset 0x0548) */


#define BIT_SHIFT_FTM_TSF_T2R_PORT			19
#define BIT_MASK_FTM_TSF_T2R_PORT			0x7
#define BIT_FTM_TSF_T2R_PORT(x)			(((x) & BIT_MASK_FTM_TSF_T2R_PORT) << BIT_SHIFT_FTM_TSF_T2R_PORT)
#define BITS_FTM_TSF_T2R_PORT				(BIT_MASK_FTM_TSF_T2R_PORT << BIT_SHIFT_FTM_TSF_T2R_PORT)
#define BIT_CLEAR_FTM_TSF_T2R_PORT(x)			((x) & (~BITS_FTM_TSF_T2R_PORT))
#define BIT_GET_FTM_TSF_T2R_PORT(x)			(((x) >> BIT_SHIFT_FTM_TSF_T2R_PORT) & BIT_MASK_FTM_TSF_T2R_PORT)
#define BIT_SET_FTM_TSF_T2R_PORT(x, v)			(BIT_CLEAR_FTM_TSF_T2R_PORT(x) | BIT_FTM_TSF_T2R_PORT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_PTT				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT_TSF_T2R_SEL			19
#define BIT_MASK_FTM_PTT_TSF_T2R_SEL			0x7
#define BIT_FTM_PTT_TSF_T2R_SEL(x)			(((x) & BIT_MASK_FTM_PTT_TSF_T2R_SEL) << BIT_SHIFT_FTM_PTT_TSF_T2R_SEL)
#define BITS_FTM_PTT_TSF_T2R_SEL			(BIT_MASK_FTM_PTT_TSF_T2R_SEL << BIT_SHIFT_FTM_PTT_TSF_T2R_SEL)
#define BIT_CLEAR_FTM_PTT_TSF_T2R_SEL(x)		((x) & (~BITS_FTM_PTT_TSF_T2R_SEL))
#define BIT_GET_FTM_PTT_TSF_T2R_SEL(x)			(((x) >> BIT_SHIFT_FTM_PTT_TSF_T2R_SEL) & BIT_MASK_FTM_PTT_TSF_T2R_SEL)
#define BIT_SET_FTM_PTT_TSF_T2R_SEL(x, v)		(BIT_CLEAR_FTM_PTT_TSF_T2R_SEL(x) | BIT_FTM_PTT_TSF_T2R_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_CTRL				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT_PORT				16
#define BIT_MASK_FTM_PTT_PORT				0x7
#define BIT_FTM_PTT_PORT(x)				(((x) & BIT_MASK_FTM_PTT_PORT) << BIT_SHIFT_FTM_PTT_PORT)
#define BITS_FTM_PTT_PORT				(BIT_MASK_FTM_PTT_PORT << BIT_SHIFT_FTM_PTT_PORT)
#define BIT_CLEAR_FTM_PTT_PORT(x)			((x) & (~BITS_FTM_PTT_PORT))
#define BIT_GET_FTM_PTT_PORT(x)			(((x) >> BIT_SHIFT_FTM_PTT_PORT) & BIT_MASK_FTM_PTT_PORT)
#define BIT_SET_FTM_PTT_PORT(x, v)			(BIT_CLEAR_FTM_PTT_PORT(x) | BIT_FTM_PTT_PORT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_PTT				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT_TSF_SEL			16
#define BIT_MASK_FTM_PTT_TSF_SEL			0x7
#define BIT_FTM_PTT_TSF_SEL(x)				(((x) & BIT_MASK_FTM_PTT_TSF_SEL) << BIT_SHIFT_FTM_PTT_TSF_SEL)
#define BITS_FTM_PTT_TSF_SEL				(BIT_MASK_FTM_PTT_TSF_SEL << BIT_SHIFT_FTM_PTT_TSF_SEL)
#define BIT_CLEAR_FTM_PTT_TSF_SEL(x)			((x) & (~BITS_FTM_PTT_TSF_SEL))
#define BIT_GET_FTM_PTT_TSF_SEL(x)			(((x) >> BIT_SHIFT_FTM_PTT_TSF_SEL) & BIT_MASK_FTM_PTT_TSF_SEL)
#define BIT_SET_FTM_PTT_TSF_SEL(x, v)			(BIT_CLEAR_FTM_PTT_TSF_SEL(x) | BIT_FTM_PTT_TSF_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_CTRL				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT				0
#define BIT_MASK_FTM_PTT				0xffff
#define BIT_FTM_PTT(x)					(((x) & BIT_MASK_FTM_PTT) << BIT_SHIFT_FTM_PTT)
#define BITS_FTM_PTT					(BIT_MASK_FTM_PTT << BIT_SHIFT_FTM_PTT)
#define BIT_CLEAR_FTM_PTT(x)				((x) & (~BITS_FTM_PTT))
#define BIT_GET_FTM_PTT(x)				(((x) >> BIT_SHIFT_FTM_PTT) & BIT_MASK_FTM_PTT)
#define BIT_SET_FTM_PTT(x, v)				(BIT_CLEAR_FTM_PTT(x) | BIT_FTM_PTT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_PTT				(Offset 0x0548) */


#define BIT_SHIFT_FTM_PTT_VALUE			0
#define BIT_MASK_FTM_PTT_VALUE				0xffff
#define BIT_FTM_PTT_VALUE(x)				(((x) & BIT_MASK_FTM_PTT_VALUE) << BIT_SHIFT_FTM_PTT_VALUE)
#define BITS_FTM_PTT_VALUE				(BIT_MASK_FTM_PTT_VALUE << BIT_SHIFT_FTM_PTT_VALUE)
#define BIT_CLEAR_FTM_PTT_VALUE(x)			((x) & (~BITS_FTM_PTT_VALUE))
#define BIT_GET_FTM_PTT_VALUE(x)			(((x) >> BIT_SHIFT_FTM_PTT_VALUE) & BIT_MASK_FTM_PTT_VALUE)
#define BIT_SET_FTM_PTT_VALUE(x, v)			(BIT_CLEAR_FTM_PTT_VALUE(x) | BIT_FTM_PTT_VALUE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_TSF_CNT				(Offset 0x054C) */


#define BIT_SHIFT_FTM_TSF_R2T				16
#define BIT_MASK_FTM_TSF_R2T				0xffff
#define BIT_FTM_TSF_R2T(x)				(((x) & BIT_MASK_FTM_TSF_R2T) << BIT_SHIFT_FTM_TSF_R2T)
#define BITS_FTM_TSF_R2T				(BIT_MASK_FTM_TSF_R2T << BIT_SHIFT_FTM_TSF_R2T)
#define BIT_CLEAR_FTM_TSF_R2T(x)			((x) & (~BITS_FTM_TSF_R2T))
#define BIT_GET_FTM_TSF_R2T(x)				(((x) >> BIT_SHIFT_FTM_TSF_R2T) & BIT_MASK_FTM_TSF_R2T)
#define BIT_SET_FTM_TSF_R2T(x, v)			(BIT_CLEAR_FTM_TSF_R2T(x) | BIT_FTM_TSF_R2T(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_TSF				(Offset 0x054C) */


#define BIT_SHIFT_FTM_T2_TSF				16
#define BIT_MASK_FTM_T2_TSF				0xffff
#define BIT_FTM_T2_TSF(x)				(((x) & BIT_MASK_FTM_T2_TSF) << BIT_SHIFT_FTM_T2_TSF)
#define BITS_FTM_T2_TSF				(BIT_MASK_FTM_T2_TSF << BIT_SHIFT_FTM_T2_TSF)
#define BIT_CLEAR_FTM_T2_TSF(x)			((x) & (~BITS_FTM_T2_TSF))
#define BIT_GET_FTM_T2_TSF(x)				(((x) >> BIT_SHIFT_FTM_T2_TSF) & BIT_MASK_FTM_T2_TSF)
#define BIT_SET_FTM_T2_TSF(x, v)			(BIT_CLEAR_FTM_T2_TSF(x) | BIT_FTM_T2_TSF(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FTM_TSF_CNT				(Offset 0x054C) */


#define BIT_SHIFT_FTM_TSF_T2R				0
#define BIT_MASK_FTM_TSF_T2R				0xffff
#define BIT_FTM_TSF_T2R(x)				(((x) & BIT_MASK_FTM_TSF_T2R) << BIT_SHIFT_FTM_TSF_T2R)
#define BITS_FTM_TSF_T2R				(BIT_MASK_FTM_TSF_T2R << BIT_SHIFT_FTM_TSF_T2R)
#define BIT_CLEAR_FTM_TSF_T2R(x)			((x) & (~BITS_FTM_TSF_T2R))
#define BIT_GET_FTM_TSF_T2R(x)				(((x) >> BIT_SHIFT_FTM_TSF_T2R) & BIT_MASK_FTM_TSF_T2R)
#define BIT_SET_FTM_TSF_T2R(x, v)			(BIT_CLEAR_FTM_TSF_T2R(x) | BIT_FTM_TSF_T2R(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FTM_TSF				(Offset 0x054C) */


#define BIT_SHIFT_FTM_T1_TSF				0
#define BIT_MASK_FTM_T1_TSF				0xffff
#define BIT_FTM_T1_TSF(x)				(((x) & BIT_MASK_FTM_T1_TSF) << BIT_SHIFT_FTM_T1_TSF)
#define BITS_FTM_T1_TSF				(BIT_MASK_FTM_T1_TSF << BIT_SHIFT_FTM_T1_TSF)
#define BIT_CLEAR_FTM_T1_TSF(x)			((x) & (~BITS_FTM_T1_TSF))
#define BIT_GET_FTM_T1_TSF(x)				(((x) >> BIT_SHIFT_FTM_T1_TSF) & BIT_MASK_FTM_T1_TSF)
#define BIT_SET_FTM_T1_TSF(x, v)			(BIT_CLEAR_FTM_T1_TSF(x) | BIT_FTM_T1_TSF(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL				(Offset 0x0550) */

#define BIT_P0_EN_TXBCN_RPT				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL				(Offset 0x0550) */

#define BIT_EN_BCN_FUNCTION				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL				(Offset 0x0550) */

#define BIT_EN_TXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL				(Offset 0x0550) */

#define BIT_P0_EN_RXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL				(Offset 0x0550) */

#define BIT_DIS_BCNQ_SUB				BIT(1)

/* 2 REG_BCN_CTRL1				(Offset 0x0551) */

#define BIT_DIS_RX_BSSID_FIT1				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_DIS_RX_BSSID_FIT			BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL1				(Offset 0x0551) */

#define BIT_DIS_TSF1_UDT				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_DIS_TSF_UDT				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL1				(Offset 0x0551) */

#define BIT_EN_BCN1_FUNCTION				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_EN_BCN_FUNCTION			BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL1				(Offset 0x0551) */

#define BIT_EN_TXBCN1_RPT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_EN_RXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_EN_BCN_RPT				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_CTRL1				(Offset 0x0551) */

#define BIT_DIS_BCNQ1_SUB				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT0			(Offset 0x0551) */

#define BIT_CLI0_ENP2P_CTWINDOW			BIT(1)
#define BIT_CLI0_ENP2P_BCNQ_AREA			BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_MBID_NUM				(Offset 0x0552) */


#define BIT_SHIFT_MBID_BCN_NUM_V2			4
#define BIT_MASK_MBID_BCN_NUM_V2			0xf
#define BIT_MBID_BCN_NUM_V2(x)				(((x) & BIT_MASK_MBID_BCN_NUM_V2) << BIT_SHIFT_MBID_BCN_NUM_V2)
#define BITS_MBID_BCN_NUM_V2				(BIT_MASK_MBID_BCN_NUM_V2 << BIT_SHIFT_MBID_BCN_NUM_V2)
#define BIT_CLEAR_MBID_BCN_NUM_V2(x)			((x) & (~BITS_MBID_BCN_NUM_V2))
#define BIT_GET_MBID_BCN_NUM_V2(x)			(((x) >> BIT_SHIFT_MBID_BCN_NUM_V2) & BIT_MASK_MBID_BCN_NUM_V2)
#define BIT_SET_MBID_BCN_NUM_V2(x, v)			(BIT_CLEAR_MBID_BCN_NUM_V2(x) | BIT_MBID_BCN_NUM_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBID_NUM				(Offset 0x0552) */

#define BIT_EN_PRE_DL_BEACON				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBID_NUM				(Offset 0x0552) */


#define BIT_SHIFT_MBID_BCN_NUM				0
#define BIT_MASK_MBID_BCN_NUM				0x7
#define BIT_MBID_BCN_NUM(x)				(((x) & BIT_MASK_MBID_BCN_NUM) << BIT_SHIFT_MBID_BCN_NUM)
#define BITS_MBID_BCN_NUM				(BIT_MASK_MBID_BCN_NUM << BIT_SHIFT_MBID_BCN_NUM)
#define BIT_CLEAR_MBID_BCN_NUM(x)			((x) & (~BITS_MBID_BCN_NUM))
#define BIT_GET_MBID_BCN_NUM(x)			(((x) >> BIT_SHIFT_MBID_BCN_NUM) & BIT_MASK_MBID_BCN_NUM)
#define BIT_SET_MBID_BCN_NUM(x, v)			(BIT_CLEAR_MBID_BCN_NUM(x) | BIT_MBID_BCN_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_P2P_PWR_RST1				BIT(6)
#define BIT_SCHEDULER_RST				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_FREECNT_RST				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_P2P_PWR_RST0				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_CLI3_RST				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR1_SYNC_EN				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_CLI2_RST				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_SYNC_EN				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_CLI1_RST				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR1_RST					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_CLI0_RST				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DUAL_TSF_RST			(Offset 0x0553) */

#define BIT_TSFTR_RST					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */


#define BIT_SHIFT_BCN_TIMER_SEL_FWRD			28
#define BIT_MASK_BCN_TIMER_SEL_FWRD			0x7
#define BIT_BCN_TIMER_SEL_FWRD(x)			(((x) & BIT_MASK_BCN_TIMER_SEL_FWRD) << BIT_SHIFT_BCN_TIMER_SEL_FWRD)
#define BITS_BCN_TIMER_SEL_FWRD			(BIT_MASK_BCN_TIMER_SEL_FWRD << BIT_SHIFT_BCN_TIMER_SEL_FWRD)
#define BIT_CLEAR_BCN_TIMER_SEL_FWRD(x)		((x) & (~BITS_BCN_TIMER_SEL_FWRD))
#define BIT_GET_BCN_TIMER_SEL_FWRD(x)			(((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD) & BIT_MASK_BCN_TIMER_SEL_FWRD)
#define BIT_SET_BCN_TIMER_SEL_FWRD(x, v)		(BIT_CLEAR_BCN_TIMER_SEL_FWRD(x) | BIT_BCN_TIMER_SEL_FWRD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */


#define BIT_SHIFT_BCN_SPACE1				16
#define BIT_MASK_BCN_SPACE1				0xffff
#define BIT_BCN_SPACE1(x)				(((x) & BIT_MASK_BCN_SPACE1) << BIT_SHIFT_BCN_SPACE1)
#define BITS_BCN_SPACE1				(BIT_MASK_BCN_SPACE1 << BIT_SHIFT_BCN_SPACE1)
#define BIT_CLEAR_BCN_SPACE1(x)			((x) & (~BITS_BCN_SPACE1))
#define BIT_GET_BCN_SPACE1(x)				(((x) >> BIT_SHIFT_BCN_SPACE1) & BIT_MASK_BCN_SPACE1)
#define BIT_SET_BCN_SPACE1(x, v)			(BIT_CLEAR_BCN_SPACE1(x) | BIT_BCN_SPACE1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */


#define BIT_SHIFT_BCN_SPACE_CLINT0			16
#define BIT_MASK_BCN_SPACE_CLINT0			0xfff
#define BIT_BCN_SPACE_CLINT0(x)			(((x) & BIT_MASK_BCN_SPACE_CLINT0) << BIT_SHIFT_BCN_SPACE_CLINT0)
#define BITS_BCN_SPACE_CLINT0				(BIT_MASK_BCN_SPACE_CLINT0 << BIT_SHIFT_BCN_SPACE_CLINT0)
#define BIT_CLEAR_BCN_SPACE_CLINT0(x)			((x) & (~BITS_BCN_SPACE_CLINT0))
#define BIT_GET_BCN_SPACE_CLINT0(x)			(((x) >> BIT_SHIFT_BCN_SPACE_CLINT0) & BIT_MASK_BCN_SPACE_CLINT0)
#define BIT_SET_BCN_SPACE_CLINT0(x, v)			(BIT_CLEAR_BCN_SPACE_CLINT0(x) | BIT_BCN_SPACE_CLINT0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBSSID_BCN_SPACE			(Offset 0x0554) */


#define BIT_SHIFT_BCN_SPACE0				0
#define BIT_MASK_BCN_SPACE0				0xffff
#define BIT_BCN_SPACE0(x)				(((x) & BIT_MASK_BCN_SPACE0) << BIT_SHIFT_BCN_SPACE0)
#define BITS_BCN_SPACE0				(BIT_MASK_BCN_SPACE0 << BIT_SHIFT_BCN_SPACE0)
#define BIT_CLEAR_BCN_SPACE0(x)			((x) & (~BITS_BCN_SPACE0))
#define BIT_GET_BCN_SPACE0(x)				(((x) >> BIT_SHIFT_BCN_SPACE0) & BIT_MASK_BCN_SPACE0)
#define BIT_SET_BCN_SPACE0(x, v)			(BIT_CLEAR_BCN_SPACE0(x) | BIT_BCN_SPACE0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND				(Offset 0x055A) */


#define BIT_SHIFT_ATIMWND				0
#define BIT_MASK_ATIMWND				0xffff
#define BIT_ATIMWND(x)					(((x) & BIT_MASK_ATIMWND) << BIT_SHIFT_ATIMWND)
#define BITS_ATIMWND					(BIT_MASK_ATIMWND << BIT_SHIFT_ATIMWND)
#define BIT_CLEAR_ATIMWND(x)				((x) & (~BITS_ATIMWND))
#define BIT_GET_ATIMWND(x)				(((x) >> BIT_SHIFT_ATIMWND) & BIT_MASK_ATIMWND)
#define BIT_SET_ATIMWND(x, v)				(BIT_CLEAR_ATIMWND(x) | BIT_ATIMWND(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ATIMWND				(Offset 0x055A) */


#define BIT_SHIFT_ATIMWND0				0
#define BIT_MASK_ATIMWND0				0xffff
#define BIT_ATIMWND0(x)				(((x) & BIT_MASK_ATIMWND0) << BIT_SHIFT_ATIMWND0)
#define BITS_ATIMWND0					(BIT_MASK_ATIMWND0 << BIT_SHIFT_ATIMWND0)
#define BIT_CLEAR_ATIMWND0(x)				((x) & (~BITS_ATIMWND0))
#define BIT_GET_ATIMWND0(x)				(((x) >> BIT_SHIFT_ATIMWND0) & BIT_MASK_ATIMWND0)
#define BIT_SET_ATIMWND0(x, v)				(BIT_CLEAR_ATIMWND0(x) | BIT_ATIMWND0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_MAX_ERR				(Offset 0x055D) */


#define BIT_SHIFT_BCN_MAX_ERR				0
#define BIT_MASK_BCN_MAX_ERR				0xff
#define BIT_BCN_MAX_ERR(x)				(((x) & BIT_MASK_BCN_MAX_ERR) << BIT_SHIFT_BCN_MAX_ERR)
#define BITS_BCN_MAX_ERR				(BIT_MASK_BCN_MAX_ERR << BIT_SHIFT_BCN_MAX_ERR)
#define BIT_CLEAR_BCN_MAX_ERR(x)			((x) & (~BITS_BCN_MAX_ERR))
#define BIT_GET_BCN_MAX_ERR(x)				(((x) >> BIT_SHIFT_BCN_MAX_ERR) & BIT_MASK_BCN_MAX_ERR)
#define BIT_SET_BCN_MAX_ERR(x, v)			(BIT_CLEAR_BCN_MAX_ERR(x) | BIT_BCN_MAX_ERR(v))


/* 2 REG_RXTSF_OFFSET_CCK			(Offset 0x055E) */


#define BIT_SHIFT_CCK_RXTSF_OFFSET			0
#define BIT_MASK_CCK_RXTSF_OFFSET			0xff
#define BIT_CCK_RXTSF_OFFSET(x)			(((x) & BIT_MASK_CCK_RXTSF_OFFSET) << BIT_SHIFT_CCK_RXTSF_OFFSET)
#define BITS_CCK_RXTSF_OFFSET				(BIT_MASK_CCK_RXTSF_OFFSET << BIT_SHIFT_CCK_RXTSF_OFFSET)
#define BIT_CLEAR_CCK_RXTSF_OFFSET(x)			((x) & (~BITS_CCK_RXTSF_OFFSET))
#define BIT_GET_CCK_RXTSF_OFFSET(x)			(((x) >> BIT_SHIFT_CCK_RXTSF_OFFSET) & BIT_MASK_CCK_RXTSF_OFFSET)
#define BIT_SET_CCK_RXTSF_OFFSET(x, v)			(BIT_CLEAR_CCK_RXTSF_OFFSET(x) | BIT_CCK_RXTSF_OFFSET(v))


/* 2 REG_RXTSF_OFFSET_OFDM			(Offset 0x055F) */


#define BIT_SHIFT_OFDM_RXTSF_OFFSET			0
#define BIT_MASK_OFDM_RXTSF_OFFSET			0xff
#define BIT_OFDM_RXTSF_OFFSET(x)			(((x) & BIT_MASK_OFDM_RXTSF_OFFSET) << BIT_SHIFT_OFDM_RXTSF_OFFSET)
#define BITS_OFDM_RXTSF_OFFSET				(BIT_MASK_OFDM_RXTSF_OFFSET << BIT_SHIFT_OFDM_RXTSF_OFFSET)
#define BIT_CLEAR_OFDM_RXTSF_OFFSET(x)			((x) & (~BITS_OFDM_RXTSF_OFFSET))
#define BIT_GET_OFDM_RXTSF_OFFSET(x)			(((x) >> BIT_SHIFT_OFDM_RXTSF_OFFSET) & BIT_MASK_OFDM_RXTSF_OFFSET)
#define BIT_SET_OFDM_RXTSF_OFFSET(x, v)		(BIT_CLEAR_OFDM_RXTSF_OFFSET(x) | BIT_OFDM_RXTSF_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSFTR				(Offset 0x0560) */


#define BIT_SHIFT_TSF_TIMER				0
#define BIT_MASK_TSF_TIMER				0xffffffffffffffffL
#define BIT_TSF_TIMER(x)				(((x) & BIT_MASK_TSF_TIMER) << BIT_SHIFT_TSF_TIMER)
#define BITS_TSF_TIMER					(BIT_MASK_TSF_TIMER << BIT_SHIFT_TSF_TIMER)
#define BIT_CLEAR_TSF_TIMER(x)				((x) & (~BITS_TSF_TIMER))
#define BIT_GET_TSF_TIMER(x)				(((x) >> BIT_SHIFT_TSF_TIMER) & BIT_MASK_TSF_TIMER)
#define BIT_SET_TSF_TIMER(x, v)			(BIT_CLEAR_TSF_TIMER(x) | BIT_TSF_TIMER(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_TSFTR				(Offset 0x0560) */


#define BIT_SHIFT_TSF_TIMER_V1				0
#define BIT_MASK_TSF_TIMER_V1				0xffffffffL
#define BIT_TSF_TIMER_V1(x)				(((x) & BIT_MASK_TSF_TIMER_V1) << BIT_SHIFT_TSF_TIMER_V1)
#define BITS_TSF_TIMER_V1				(BIT_MASK_TSF_TIMER_V1 << BIT_SHIFT_TSF_TIMER_V1)
#define BIT_CLEAR_TSF_TIMER_V1(x)			((x) & (~BITS_TSF_TIMER_V1))
#define BIT_GET_TSF_TIMER_V1(x)			(((x) >> BIT_SHIFT_TSF_TIMER_V1) & BIT_MASK_TSF_TIMER_V1)
#define BIT_SET_TSF_TIMER_V1(x, v)			(BIT_CLEAR_TSF_TIMER_V1(x) | BIT_TSF_TIMER_V1(v))


/* 2 REG_TSFTR_1				(Offset 0x0564) */


#define BIT_SHIFT_TSF_TIMER_V2				0
#define BIT_MASK_TSF_TIMER_V2				0xffffffffL
#define BIT_TSF_TIMER_V2(x)				(((x) & BIT_MASK_TSF_TIMER_V2) << BIT_SHIFT_TSF_TIMER_V2)
#define BITS_TSF_TIMER_V2				(BIT_MASK_TSF_TIMER_V2 << BIT_SHIFT_TSF_TIMER_V2)
#define BIT_CLEAR_TSF_TIMER_V2(x)			((x) & (~BITS_TSF_TIMER_V2))
#define BIT_GET_TSF_TIMER_V2(x)			(((x) >> BIT_SHIFT_TSF_TIMER_V2) & BIT_MASK_TSF_TIMER_V2)
#define BIT_SET_TSF_TIMER_V2(x, v)			(BIT_CLEAR_TSF_TIMER_V2(x) | BIT_TSF_TIMER_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TSFTR1				(Offset 0x0568) */


#define BIT_SHIFT_TSF_TIMER1				0
#define BIT_MASK_TSF_TIMER1				0xffffffffffffffffL
#define BIT_TSF_TIMER1(x)				(((x) & BIT_MASK_TSF_TIMER1) << BIT_SHIFT_TSF_TIMER1)
#define BITS_TSF_TIMER1				(BIT_MASK_TSF_TIMER1 << BIT_SHIFT_TSF_TIMER1)
#define BIT_CLEAR_TSF_TIMER1(x)			((x) & (~BITS_TSF_TIMER1))
#define BIT_GET_TSF_TIMER1(x)				(((x) >> BIT_SHIFT_TSF_TIMER1) & BIT_MASK_TSF_TIMER1)
#define BIT_SET_TSF_TIMER1(x, v)			(BIT_CLEAR_TSF_TIMER1(x) | BIT_TSF_TIMER1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FREERUN_CNT				(Offset 0x0568) */


#define BIT_SHIFT_FREERUN_CNT				0
#define BIT_MASK_FREERUN_CNT				0xffffffffffffffffL
#define BIT_FREERUN_CNT(x)				(((x) & BIT_MASK_FREERUN_CNT) << BIT_SHIFT_FREERUN_CNT)
#define BITS_FREERUN_CNT				(BIT_MASK_FREERUN_CNT << BIT_SHIFT_FREERUN_CNT)
#define BIT_CLEAR_FREERUN_CNT(x)			((x) & (~BITS_FREERUN_CNT))
#define BIT_GET_FREERUN_CNT(x)				(((x) >> BIT_SHIFT_FREERUN_CNT) & BIT_MASK_FREERUN_CNT)
#define BIT_SET_FREERUN_CNT(x, v)			(BIT_CLEAR_FREERUN_CNT(x) | BIT_FREERUN_CNT(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_FREERUN_CNT				(Offset 0x0568) */


#define BIT_SHIFT_FREERUN_CNT_V1			0
#define BIT_MASK_FREERUN_CNT_V1			0xffffffffL
#define BIT_FREERUN_CNT_V1(x)				(((x) & BIT_MASK_FREERUN_CNT_V1) << BIT_SHIFT_FREERUN_CNT_V1)
#define BITS_FREERUN_CNT_V1				(BIT_MASK_FREERUN_CNT_V1 << BIT_SHIFT_FREERUN_CNT_V1)
#define BIT_CLEAR_FREERUN_CNT_V1(x)			((x) & (~BITS_FREERUN_CNT_V1))
#define BIT_GET_FREERUN_CNT_V1(x)			(((x) >> BIT_SHIFT_FREERUN_CNT_V1) & BIT_MASK_FREERUN_CNT_V1)
#define BIT_SET_FREERUN_CNT_V1(x, v)			(BIT_CLEAR_FREERUN_CNT_V1(x) | BIT_FREERUN_CNT_V1(v))


/* 2 REG_FREERUN_CNT_1			(Offset 0x056C) */


#define BIT_SHIFT_FREERUN_CNT_V2			0
#define BIT_MASK_FREERUN_CNT_V2			0xffffffffL
#define BIT_FREERUN_CNT_V2(x)				(((x) & BIT_MASK_FREERUN_CNT_V2) << BIT_SHIFT_FREERUN_CNT_V2)
#define BITS_FREERUN_CNT_V2				(BIT_MASK_FREERUN_CNT_V2 << BIT_SHIFT_FREERUN_CNT_V2)
#define BIT_CLEAR_FREERUN_CNT_V2(x)			((x) & (~BITS_FREERUN_CNT_V2))
#define BIT_GET_FREERUN_CNT_V2(x)			(((x) >> BIT_SHIFT_FREERUN_CNT_V2) & BIT_MASK_FREERUN_CNT_V2)
#define BIT_SET_FREERUN_CNT_V2(x, v)			(BIT_CLEAR_FREERUN_CNT_V2(x) | BIT_FREERUN_CNT_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND1				(Offset 0x0570) */


#define BIT_SHIFT_ATIMWND1				0
#define BIT_MASK_ATIMWND1				0xffff
#define BIT_ATIMWND1(x)				(((x) & BIT_MASK_ATIMWND1) << BIT_SHIFT_ATIMWND1)
#define BITS_ATIMWND1					(BIT_MASK_ATIMWND1 << BIT_SHIFT_ATIMWND1)
#define BIT_CLEAR_ATIMWND1(x)				((x) & (~BITS_ATIMWND1))
#define BIT_GET_ATIMWND1(x)				(((x) >> BIT_SHIFT_ATIMWND1) & BIT_MASK_ATIMWND1)
#define BIT_SET_ATIMWND1(x, v)				(BIT_CLEAR_ATIMWND1(x) | BIT_ATIMWND1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ATIMWND1_V1				(Offset 0x0570) */


#define BIT_SHIFT_ATIMWND1_V1				0
#define BIT_MASK_ATIMWND1_V1				0xff
#define BIT_ATIMWND1_V1(x)				(((x) & BIT_MASK_ATIMWND1_V1) << BIT_SHIFT_ATIMWND1_V1)
#define BITS_ATIMWND1_V1				(BIT_MASK_ATIMWND1_V1 << BIT_SHIFT_ATIMWND1_V1)
#define BIT_CLEAR_ATIMWND1_V1(x)			((x) & (~BITS_ATIMWND1_V1))
#define BIT_GET_ATIMWND1_V1(x)				(((x) >> BIT_SHIFT_ATIMWND1_V1) & BIT_MASK_ATIMWND1_V1)
#define BIT_SET_ATIMWND1_V1(x, v)			(BIT_CLEAR_ATIMWND1_V1(x) | BIT_ATIMWND1_V1(v))


/* 2 REG_TBTT_PROHIBIT_INFRA			(Offset 0x0571) */


#define BIT_SHIFT_TBTT_PROHIBIT_INFRA			0
#define BIT_MASK_TBTT_PROHIBIT_INFRA			0xff
#define BIT_TBTT_PROHIBIT_INFRA(x)			(((x) & BIT_MASK_TBTT_PROHIBIT_INFRA) << BIT_SHIFT_TBTT_PROHIBIT_INFRA)
#define BITS_TBTT_PROHIBIT_INFRA			(BIT_MASK_TBTT_PROHIBIT_INFRA << BIT_SHIFT_TBTT_PROHIBIT_INFRA)
#define BIT_CLEAR_TBTT_PROHIBIT_INFRA(x)		((x) & (~BITS_TBTT_PROHIBIT_INFRA))
#define BIT_GET_TBTT_PROHIBIT_INFRA(x)			(((x) >> BIT_SHIFT_TBTT_PROHIBIT_INFRA) & BIT_MASK_TBTT_PROHIBIT_INFRA)
#define BIT_SET_TBTT_PROHIBIT_INFRA(x, v)		(BIT_CLEAR_TBTT_PROHIBIT_INFRA(x) | BIT_TBTT_PROHIBIT_INFRA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCNIVLCUNT				(Offset 0x0573) */


#define BIT_SHIFT_BCNIVLCUNT				0
#define BIT_MASK_BCNIVLCUNT				0x7f
#define BIT_BCNIVLCUNT(x)				(((x) & BIT_MASK_BCNIVLCUNT) << BIT_SHIFT_BCNIVLCUNT)
#define BITS_BCNIVLCUNT				(BIT_MASK_BCNIVLCUNT << BIT_SHIFT_BCNIVLCUNT)
#define BIT_CLEAR_BCNIVLCUNT(x)			((x) & (~BITS_BCNIVLCUNT))
#define BIT_GET_BCNIVLCUNT(x)				(((x) >> BIT_SHIFT_BCNIVLCUNT) & BIT_MASK_BCNIVLCUNT)
#define BIT_SET_BCNIVLCUNT(x, v)			(BIT_CLEAR_BCNIVLCUNT(x) | BIT_BCNIVLCUNT(v))


/* 2 REG_BCNDROPCTRL				(Offset 0x0574) */

#define BIT_BEACON_DROP_EN				BIT(7)

#define BIT_SHIFT_BEACON_DROP_IVL			0
#define BIT_MASK_BEACON_DROP_IVL			0x7f
#define BIT_BEACON_DROP_IVL(x)				(((x) & BIT_MASK_BEACON_DROP_IVL) << BIT_SHIFT_BEACON_DROP_IVL)
#define BITS_BEACON_DROP_IVL				(BIT_MASK_BEACON_DROP_IVL << BIT_SHIFT_BEACON_DROP_IVL)
#define BIT_CLEAR_BEACON_DROP_IVL(x)			((x) & (~BITS_BEACON_DROP_IVL))
#define BIT_GET_BEACON_DROP_IVL(x)			(((x) >> BIT_SHIFT_BEACON_DROP_IVL) & BIT_MASK_BEACON_DROP_IVL)
#define BIT_SET_BEACON_DROP_IVL(x, v)			(BIT_CLEAR_BEACON_DROP_IVL(x) | BIT_BEACON_DROP_IVL(v))


/* 2 REG_HGQ_TIMEOUT_PERIOD			(Offset 0x0575) */


#define BIT_SHIFT_HGQ_TIMEOUT_PERIOD			0
#define BIT_MASK_HGQ_TIMEOUT_PERIOD			0xff
#define BIT_HGQ_TIMEOUT_PERIOD(x)			(((x) & BIT_MASK_HGQ_TIMEOUT_PERIOD) << BIT_SHIFT_HGQ_TIMEOUT_PERIOD)
#define BITS_HGQ_TIMEOUT_PERIOD			(BIT_MASK_HGQ_TIMEOUT_PERIOD << BIT_SHIFT_HGQ_TIMEOUT_PERIOD)
#define BIT_CLEAR_HGQ_TIMEOUT_PERIOD(x)		((x) & (~BITS_HGQ_TIMEOUT_PERIOD))
#define BIT_GET_HGQ_TIMEOUT_PERIOD(x)			(((x) >> BIT_SHIFT_HGQ_TIMEOUT_PERIOD) & BIT_MASK_HGQ_TIMEOUT_PERIOD)
#define BIT_SET_HGQ_TIMEOUT_PERIOD(x, v)		(BIT_CLEAR_HGQ_TIMEOUT_PERIOD(x) | BIT_HGQ_TIMEOUT_PERIOD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXCMD_TIMEOUT_PERIOD		(Offset 0x0576) */


#define BIT_SHIFT_TXCMD_TIMEOUT_PERIOD			0
#define BIT_MASK_TXCMD_TIMEOUT_PERIOD			0xff
#define BIT_TXCMD_TIMEOUT_PERIOD(x)			(((x) & BIT_MASK_TXCMD_TIMEOUT_PERIOD) << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD)
#define BITS_TXCMD_TIMEOUT_PERIOD			(BIT_MASK_TXCMD_TIMEOUT_PERIOD << BIT_SHIFT_TXCMD_TIMEOUT_PERIOD)
#define BIT_CLEAR_TXCMD_TIMEOUT_PERIOD(x)		((x) & (~BITS_TXCMD_TIMEOUT_PERIOD))
#define BIT_GET_TXCMD_TIMEOUT_PERIOD(x)		(((x) >> BIT_SHIFT_TXCMD_TIMEOUT_PERIOD) & BIT_MASK_TXCMD_TIMEOUT_PERIOD)
#define BIT_SET_TXCMD_TIMEOUT_PERIOD(x, v)		(BIT_CLEAR_TXCMD_TIMEOUT_PERIOD(x) | BIT_TXCMD_TIMEOUT_PERIOD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */

#define BIT_DIS_MARK_TSF_US				BIT(7)
#define BIT_EN_TSFAUTO_SYNC				BIT(6)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */

#define BIT_AUTO_SYNC_BY_TBTT				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */

#define BIT_DIS_TRX_CAL_BCN				BIT(5)
#define BIT_DIS_TX_CAL_TBTT				BIT(4)
#define BIT_EN_FREECNT					BIT(3)
#define BIT_BCN_AGGRESSION				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */

#define BIT_DIS_SECONDARY_CCA_80M			BIT(2)
#define BIT_DIS_SECONDARY_CCA_40M			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */


#define BIT_SHIFT_DIS_SECONDARY_CCA			0
#define BIT_MASK_DIS_SECONDARY_CCA			0x3
#define BIT_DIS_SECONDARY_CCA(x)			(((x) & BIT_MASK_DIS_SECONDARY_CCA) << BIT_SHIFT_DIS_SECONDARY_CCA)
#define BITS_DIS_SECONDARY_CCA				(BIT_MASK_DIS_SECONDARY_CCA << BIT_SHIFT_DIS_SECONDARY_CCA)
#define BIT_CLEAR_DIS_SECONDARY_CCA(x)			((x) & (~BITS_DIS_SECONDARY_CCA))
#define BIT_GET_DIS_SECONDARY_CCA(x)			(((x) >> BIT_SHIFT_DIS_SECONDARY_CCA) & BIT_MASK_DIS_SECONDARY_CCA)
#define BIT_SET_DIS_SECONDARY_CCA(x, v)		(BIT_CLEAR_DIS_SECONDARY_CCA(x) | BIT_DIS_SECONDARY_CCA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MISC_CTRL				(Offset 0x0577) */

#define BIT_DIS_SECONDARY_CCA_20M			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */

#define BIT_CLI1_DIS_RX_BSSID_FIT			BIT(6)
#define BIT_CLI1_DIS_TSF_UDT				BIT(4)
#define BIT_CLI1_EN_BCN_FUNCTION			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */

#define BIT_CLI1_EN_RXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */

#define BIT_CLI1_EN_BCN_RPT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT1			(Offset 0x0578) */

#define BIT_CLI1_ENP2P_CTWINDOW			BIT(1)
#define BIT_CLI1_ENP2P_BCNQ_AREA			BIT(0)

/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */

#define BIT_CLI2_DIS_RX_BSSID_FIT			BIT(6)
#define BIT_CLI2_DIS_TSF_UDT				BIT(4)
#define BIT_CLI2_EN_BCN_FUNCTION			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */

#define BIT_CLI2_EN_RXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */

#define BIT_CLI2_EN_BCN_RPT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT2			(Offset 0x0579) */

#define BIT_CLI2_ENP2P_CTWINDOW			BIT(1)
#define BIT_CLI2_ENP2P_BCNQ_AREA			BIT(0)

/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */

#define BIT_CLI3_DIS_RX_BSSID_FIT			BIT(6)
#define BIT_CLI3_DIS_TSF_UDT				BIT(4)
#define BIT_CLI3_EN_BCN_FUNCTION			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */

#define BIT_CLI3_EN_RXBCN_RPT				BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */

#define BIT_CLI3_EN_BCN_RPT				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_CTRL_CLINT3			(Offset 0x057A) */

#define BIT_CLI3_ENP2P_CTWINDOW			BIT(1)
#define BIT_CLI3_ENP2P_BCNQ_AREA			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_EXTEND_CTRL				(Offset 0x057B) */

#define BIT_EN_TSFBIT32_RST_P2P2			BIT(5)
#define BIT_EN_TSFBIT32_RST_P2P1			BIT(4)

#define BIT_SHIFT_PORT_SEL				0
#define BIT_MASK_PORT_SEL				0x7
#define BIT_PORT_SEL(x)				(((x) & BIT_MASK_PORT_SEL) << BIT_SHIFT_PORT_SEL)
#define BITS_PORT_SEL					(BIT_MASK_PORT_SEL << BIT_SHIFT_PORT_SEL)
#define BIT_CLEAR_PORT_SEL(x)				((x) & (~BITS_PORT_SEL))
#define BIT_GET_PORT_SEL(x)				(((x) >> BIT_SHIFT_PORT_SEL) & BIT_MASK_PORT_SEL)
#define BIT_SET_PORT_SEL(x, v)				(BIT_CLEAR_PORT_SEL(x) | BIT_PORT_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS1_SPEC_STATE			(Offset 0x057C) */

#define BIT_P2P1_SPEC_POWER_STATE			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS1_SPEC_STATE			(Offset 0x057C) */

#define BIT_P2P1_SPEC_CTWINDOW_ON			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS1_SPEC_STATE			(Offset 0x057C) */

#define BIT_P2P1_SPEC_BCN_AREA_ON			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS1_SPEC_STATE			(Offset 0x057C) */

#define BIT_P2P1_SPEC_CTWIN_EARLY_DISTX		BIT(4)
#define BIT_P2P1_SPEC_NOA1_OFF_PERIOD			BIT(3)
#define BIT_P2P1_SPEC_FORCE_DOZE1			BIT(2)
#define BIT_P2P1_SPEC_NOA0_OFF_PERIOD			BIT(1)
#define BIT_P2P1_SPEC_FORCE_DOZE0			BIT(0)

/* 2 REG_P2PPS1_STATE			(Offset 0x057D) */

#define BIT_P2P1_POWER_STATE				BIT(7)
#define BIT_P2P1_CTWINDOW_ON				BIT(6)
#define BIT_P2P1_BEACON_AREA_ON			BIT(5)
#define BIT_P2P1_CTWIN_EARLY_DISTX			BIT(4)
#define BIT_P2P1_NOA1_OFF_PERIOD			BIT(3)
#define BIT_P2P1_FORCE_DOZE1				BIT(2)
#define BIT_P2P1_NOA0_OFF_PERIOD			BIT(1)
#define BIT_P2P1_FORCE_DOZE0				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_SPEC_STATE			(Offset 0x057E) */

#define BIT_P2P2_SPEC_POWER_STATE			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_SPEC_STATE			(Offset 0x057E) */

#define BIT_P2P2_SPEC_CTWINDOW_ON			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_SPEC_STATE			(Offset 0x057E) */

#define BIT_P2P2_SPEC_BCN_AREA_ON			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_SPEC_STATE			(Offset 0x057E) */

#define BIT_P2P2_SPEC_CTWIN_EARLY_DISTX		BIT(4)
#define BIT_P2P2_SPEC_NOA1_OFF_PERIOD			BIT(3)
#define BIT_P2P2_SPEC_FORCE_DOZE1			BIT(2)
#define BIT_P2P2_SPEC_NOA0_OFF_PERIOD			BIT(1)
#define BIT_P2P2_SPEC_FORCE_DOZE0			BIT(0)

/* 2 REG_P2PPS2_STATE			(Offset 0x057F) */

#define BIT_P2P2_POWER_STATE				BIT(7)
#define BIT_P2P2_CTWINDOW_ON				BIT(6)
#define BIT_P2P2_BEACON_AREA_ON			BIT(5)
#define BIT_P2P2_CTWIN_EARLY_DISTX			BIT(4)
#define BIT_P2P2_NOA1_OFF_PERIOD			BIT(3)
#define BIT_P2P2_FORCE_DOZE1				BIT(2)
#define BIT_P2P2_NOA0_OFF_PERIOD			BIT(1)
#define BIT_P2P2_FORCE_DOZE0				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PS_TIMER				(Offset 0x0580) */


#define BIT_SHIFT_PSTIMER				5
#define BIT_MASK_PSTIMER				0x7ffffff
#define BIT_PSTIMER(x)					(((x) & BIT_MASK_PSTIMER) << BIT_SHIFT_PSTIMER)
#define BITS_PSTIMER					(BIT_MASK_PSTIMER << BIT_SHIFT_PSTIMER)
#define BIT_CLEAR_PSTIMER(x)				((x) & (~BITS_PSTIMER))
#define BIT_GET_PSTIMER(x)				(((x) >> BIT_SHIFT_PSTIMER) & BIT_MASK_PSTIMER)
#define BIT_SET_PSTIMER(x, v)				(BIT_CLEAR_PSTIMER(x) | BIT_PSTIMER(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PS_TIMER0				(Offset 0x0580) */


#define BIT_SHIFT_PSTIMER0_INT				5
#define BIT_MASK_PSTIMER0_INT				0x7ffffff
#define BIT_PSTIMER0_INT(x)				(((x) & BIT_MASK_PSTIMER0_INT) << BIT_SHIFT_PSTIMER0_INT)
#define BITS_PSTIMER0_INT				(BIT_MASK_PSTIMER0_INT << BIT_SHIFT_PSTIMER0_INT)
#define BIT_CLEAR_PSTIMER0_INT(x)			((x) & (~BITS_PSTIMER0_INT))
#define BIT_GET_PSTIMER0_INT(x)			(((x) >> BIT_SHIFT_PSTIMER0_INT) & BIT_MASK_PSTIMER0_INT)
#define BIT_SET_PSTIMER0_INT(x, v)			(BIT_CLEAR_PSTIMER0_INT(x) | BIT_PSTIMER0_INT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TIMER0				(Offset 0x0584) */


#define BIT_SHIFT_TIMER0_INT				5
#define BIT_MASK_TIMER0_INT				0x7ffffff
#define BIT_TIMER0_INT(x)				(((x) & BIT_MASK_TIMER0_INT) << BIT_SHIFT_TIMER0_INT)
#define BITS_TIMER0_INT				(BIT_MASK_TIMER0_INT << BIT_SHIFT_TIMER0_INT)
#define BIT_CLEAR_TIMER0_INT(x)			((x) & (~BITS_TIMER0_INT))
#define BIT_GET_TIMER0_INT(x)				(((x) >> BIT_SHIFT_TIMER0_INT) & BIT_MASK_TIMER0_INT)
#define BIT_SET_TIMER0_INT(x, v)			(BIT_CLEAR_TIMER0_INT(x) | BIT_TIMER0_INT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PS_TIMER1				(Offset 0x0584) */


#define BIT_SHIFT_PSTIMER1_INT				5
#define BIT_MASK_PSTIMER1_INT				0x7ffffff
#define BIT_PSTIMER1_INT(x)				(((x) & BIT_MASK_PSTIMER1_INT) << BIT_SHIFT_PSTIMER1_INT)
#define BITS_PSTIMER1_INT				(BIT_MASK_PSTIMER1_INT << BIT_SHIFT_PSTIMER1_INT)
#define BIT_CLEAR_PSTIMER1_INT(x)			((x) & (~BITS_PSTIMER1_INT))
#define BIT_GET_PSTIMER1_INT(x)			(((x) >> BIT_SHIFT_PSTIMER1_INT) & BIT_MASK_PSTIMER1_INT)
#define BIT_SET_PSTIMER1_INT(x, v)			(BIT_CLEAR_PSTIMER1_INT(x) | BIT_PSTIMER1_INT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TIMER1				(Offset 0x0588) */


#define BIT_SHIFT_TIMER1_INT				5
#define BIT_MASK_TIMER1_INT				0x7ffffff
#define BIT_TIMER1_INT(x)				(((x) & BIT_MASK_TIMER1_INT) << BIT_SHIFT_TIMER1_INT)
#define BITS_TIMER1_INT				(BIT_MASK_TIMER1_INT << BIT_SHIFT_TIMER1_INT)
#define BIT_CLEAR_TIMER1_INT(x)			((x) & (~BITS_TIMER1_INT))
#define BIT_GET_TIMER1_INT(x)				(((x) >> BIT_SHIFT_TIMER1_INT) & BIT_MASK_TIMER1_INT)
#define BIT_SET_TIMER1_INT(x, v)			(BIT_CLEAR_TIMER1_INT(x) | BIT_TIMER1_INT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PS_TIMER2				(Offset 0x0588) */


#define BIT_SHIFT_PSTIMER2_INT				5
#define BIT_MASK_PSTIMER2_INT				0x7ffffff
#define BIT_PSTIMER2_INT(x)				(((x) & BIT_MASK_PSTIMER2_INT) << BIT_SHIFT_PSTIMER2_INT)
#define BITS_PSTIMER2_INT				(BIT_MASK_PSTIMER2_INT << BIT_SHIFT_PSTIMER2_INT)
#define BIT_CLEAR_PSTIMER2_INT(x)			((x) & (~BITS_PSTIMER2_INT))
#define BIT_GET_PSTIMER2_INT(x)			(((x) >> BIT_SHIFT_PSTIMER2_INT) & BIT_MASK_PSTIMER2_INT)
#define BIT_SET_PSTIMER2_INT(x, v)			(BIT_CLEAR_PSTIMER2_INT(x) | BIT_PSTIMER2_INT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TBTT_CTN_AREA			(Offset 0x058C) */


#define BIT_SHIFT_TBTT_CTN_AREA			0
#define BIT_MASK_TBTT_CTN_AREA				0xff
#define BIT_TBTT_CTN_AREA(x)				(((x) & BIT_MASK_TBTT_CTN_AREA) << BIT_SHIFT_TBTT_CTN_AREA)
#define BITS_TBTT_CTN_AREA				(BIT_MASK_TBTT_CTN_AREA << BIT_SHIFT_TBTT_CTN_AREA)
#define BIT_CLEAR_TBTT_CTN_AREA(x)			((x) & (~BITS_TBTT_CTN_AREA))
#define BIT_GET_TBTT_CTN_AREA(x)			(((x) >> BIT_SHIFT_TBTT_CTN_AREA) & BIT_MASK_TBTT_CTN_AREA)
#define BIT_SET_TBTT_CTN_AREA(x, v)			(BIT_CLEAR_TBTT_CTN_AREA(x) | BIT_TBTT_CTN_AREA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_TXOP_MIN				(Offset 0x0590) */

#define BIT_NAV_BLK_HGQ				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXOP_MIN				(Offset 0x0590) */

#define BIT_HIQ_NAV_BREAK_EN				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_TXOP_MIN				(Offset 0x0590) */

#define BIT_NAV_BLK_MGQ				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXOP_MIN				(Offset 0x0590) */

#define BIT_MGQ_NAV_BREAK_EN				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXOP_MIN				(Offset 0x0590) */


#define BIT_SHIFT_TXOP_MIN				0
#define BIT_MASK_TXOP_MIN				0x3fff
#define BIT_TXOP_MIN(x)				(((x) & BIT_MASK_TXOP_MIN) << BIT_SHIFT_TXOP_MIN)
#define BITS_TXOP_MIN					(BIT_MASK_TXOP_MIN << BIT_SHIFT_TXOP_MIN)
#define BIT_CLEAR_TXOP_MIN(x)				((x) & (~BITS_TXOP_MIN))
#define BIT_GET_TXOP_MIN(x)				(((x) >> BIT_SHIFT_TXOP_MIN) & BIT_MASK_TXOP_MIN)
#define BIT_SET_TXOP_MIN(x, v)				(BIT_CLEAR_TXOP_MIN(x) | BIT_TXOP_MIN(v))


/* 2 REG_PRE_BKF_TIME			(Offset 0x0592) */


#define BIT_SHIFT_PRE_BKF_TIME				0
#define BIT_MASK_PRE_BKF_TIME				0xff
#define BIT_PRE_BKF_TIME(x)				(((x) & BIT_MASK_PRE_BKF_TIME) << BIT_SHIFT_PRE_BKF_TIME)
#define BITS_PRE_BKF_TIME				(BIT_MASK_PRE_BKF_TIME << BIT_SHIFT_PRE_BKF_TIME)
#define BIT_CLEAR_PRE_BKF_TIME(x)			((x) & (~BITS_PRE_BKF_TIME))
#define BIT_GET_PRE_BKF_TIME(x)			(((x) >> BIT_SHIFT_PRE_BKF_TIME) & BIT_MASK_PRE_BKF_TIME)
#define BIT_SET_PRE_BKF_TIME(x, v)			(BIT_CLEAR_PRE_BKF_TIME(x) | BIT_PRE_BKF_TIME(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_NOPKT_END_RTSMF				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_TBTT_RETRY					BIT(4)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_TXOP_FAIL_BREAK				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_TXFAIL_BREACK_TXOP_EN			BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_DTIM_BYPASS				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CROSS_TXOP_CTRL			(Offset 0x0593) */

#define BIT_RTS_NAV_TXOP				BIT(1)
#define BIT_NOT_CROSS_TXOP				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_TBTT_INT_SHIFT_CLI0			(Offset 0x0594) */

#define BIT_TBTT_INT_SHIFT_DIR_CLI0			BIT(7)

#define BIT_SHIFT_TBTT_INT_SHIFT_CLI0			0
#define BIT_MASK_TBTT_INT_SHIFT_CLI0			0x7f
#define BIT_TBTT_INT_SHIFT_CLI0(x)			(((x) & BIT_MASK_TBTT_INT_SHIFT_CLI0) << BIT_SHIFT_TBTT_INT_SHIFT_CLI0)
#define BITS_TBTT_INT_SHIFT_CLI0			(BIT_MASK_TBTT_INT_SHIFT_CLI0 << BIT_SHIFT_TBTT_INT_SHIFT_CLI0)
#define BIT_CLEAR_TBTT_INT_SHIFT_CLI0(x)		((x) & (~BITS_TBTT_INT_SHIFT_CLI0))
#define BIT_GET_TBTT_INT_SHIFT_CLI0(x)			(((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI0) & BIT_MASK_TBTT_INT_SHIFT_CLI0)
#define BIT_SET_TBTT_INT_SHIFT_CLI0(x, v)		(BIT_CLEAR_TBTT_INT_SHIFT_CLI0(x) | BIT_TBTT_INT_SHIFT_CLI0(v))


/* 2 REG_TBTT_INT_SHIFT_CLI1			(Offset 0x0595) */

#define BIT_TBTT_INT_SHIFT_DIR_CLI1			BIT(7)

#define BIT_SHIFT_TBTT_INT_SHIFT_CLI1			0
#define BIT_MASK_TBTT_INT_SHIFT_CLI1			0x7f
#define BIT_TBTT_INT_SHIFT_CLI1(x)			(((x) & BIT_MASK_TBTT_INT_SHIFT_CLI1) << BIT_SHIFT_TBTT_INT_SHIFT_CLI1)
#define BITS_TBTT_INT_SHIFT_CLI1			(BIT_MASK_TBTT_INT_SHIFT_CLI1 << BIT_SHIFT_TBTT_INT_SHIFT_CLI1)
#define BIT_CLEAR_TBTT_INT_SHIFT_CLI1(x)		((x) & (~BITS_TBTT_INT_SHIFT_CLI1))
#define BIT_GET_TBTT_INT_SHIFT_CLI1(x)			(((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI1) & BIT_MASK_TBTT_INT_SHIFT_CLI1)
#define BIT_SET_TBTT_INT_SHIFT_CLI1(x, v)		(BIT_CLEAR_TBTT_INT_SHIFT_CLI1(x) | BIT_TBTT_INT_SHIFT_CLI1(v))


/* 2 REG_TBTT_INT_SHIFT_CLI2			(Offset 0x0596) */

#define BIT_TBTT_INT_SHIFT_DIR_CLI2			BIT(7)

#define BIT_SHIFT_TBTT_INT_SHIFT_CLI2			0
#define BIT_MASK_TBTT_INT_SHIFT_CLI2			0x7f
#define BIT_TBTT_INT_SHIFT_CLI2(x)			(((x) & BIT_MASK_TBTT_INT_SHIFT_CLI2) << BIT_SHIFT_TBTT_INT_SHIFT_CLI2)
#define BITS_TBTT_INT_SHIFT_CLI2			(BIT_MASK_TBTT_INT_SHIFT_CLI2 << BIT_SHIFT_TBTT_INT_SHIFT_CLI2)
#define BIT_CLEAR_TBTT_INT_SHIFT_CLI2(x)		((x) & (~BITS_TBTT_INT_SHIFT_CLI2))
#define BIT_GET_TBTT_INT_SHIFT_CLI2(x)			(((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI2) & BIT_MASK_TBTT_INT_SHIFT_CLI2)
#define BIT_SET_TBTT_INT_SHIFT_CLI2(x, v)		(BIT_CLEAR_TBTT_INT_SHIFT_CLI2(x) | BIT_TBTT_INT_SHIFT_CLI2(v))


/* 2 REG_TBTT_INT_SHIFT_CLI3			(Offset 0x0597) */

#define BIT_TBTT_INT_SHIFT_DIR_CLI3			BIT(7)

#define BIT_SHIFT_TBTT_INT_SHIFT_CLI3			0
#define BIT_MASK_TBTT_INT_SHIFT_CLI3			0x7f
#define BIT_TBTT_INT_SHIFT_CLI3(x)			(((x) & BIT_MASK_TBTT_INT_SHIFT_CLI3) << BIT_SHIFT_TBTT_INT_SHIFT_CLI3)
#define BITS_TBTT_INT_SHIFT_CLI3			(BIT_MASK_TBTT_INT_SHIFT_CLI3 << BIT_SHIFT_TBTT_INT_SHIFT_CLI3)
#define BIT_CLEAR_TBTT_INT_SHIFT_CLI3(x)		((x) & (~BITS_TBTT_INT_SHIFT_CLI3))
#define BIT_GET_TBTT_INT_SHIFT_CLI3(x)			(((x) >> BIT_SHIFT_TBTT_INT_SHIFT_CLI3) & BIT_MASK_TBTT_INT_SHIFT_CLI3)
#define BIT_SET_TBTT_INT_SHIFT_CLI3(x, v)		(BIT_CLEAR_TBTT_INT_SHIFT_CLI3(x) | BIT_TBTT_INT_SHIFT_CLI3(v))


/* 2 REG_TBTT_INT_SHIFT_ENABLE		(Offset 0x0598) */


#define BIT_SHIFT_BCNERR_CNT_OTHERS			24
#define BIT_MASK_BCNERR_CNT_OTHERS			0xff
#define BIT_BCNERR_CNT_OTHERS(x)			(((x) & BIT_MASK_BCNERR_CNT_OTHERS) << BIT_SHIFT_BCNERR_CNT_OTHERS)
#define BITS_BCNERR_CNT_OTHERS				(BIT_MASK_BCNERR_CNT_OTHERS << BIT_SHIFT_BCNERR_CNT_OTHERS)
#define BIT_CLEAR_BCNERR_CNT_OTHERS(x)			((x) & (~BITS_BCNERR_CNT_OTHERS))
#define BIT_GET_BCNERR_CNT_OTHERS(x)			(((x) >> BIT_SHIFT_BCNERR_CNT_OTHERS) & BIT_MASK_BCNERR_CNT_OTHERS)
#define BIT_SET_BCNERR_CNT_OTHERS(x, v)		(BIT_CLEAR_BCNERR_CNT_OTHERS(x) | BIT_BCNERR_CNT_OTHERS(v))

#define BIT_BCNERR_CNT_EN				BIT(20)

#define BIT_SHIFT_RXBCN_TIMER				16
#define BIT_MASK_RXBCN_TIMER				0xffff
#define BIT_RXBCN_TIMER(x)				(((x) & BIT_MASK_RXBCN_TIMER) << BIT_SHIFT_RXBCN_TIMER)
#define BITS_RXBCN_TIMER				(BIT_MASK_RXBCN_TIMER << BIT_SHIFT_RXBCN_TIMER)
#define BIT_CLEAR_RXBCN_TIMER(x)			((x) & (~BITS_RXBCN_TIMER))
#define BIT_GET_RXBCN_TIMER(x)				(((x) >> BIT_SHIFT_RXBCN_TIMER) & BIT_MASK_RXBCN_TIMER)
#define BIT_SET_RXBCN_TIMER(x, v)			(BIT_CLEAR_RXBCN_TIMER(x) | BIT_RXBCN_TIMER(v))


#define BIT_SHIFT_BCNERR_CNT_INVALID			16
#define BIT_MASK_BCNERR_CNT_INVALID			0xff
#define BIT_BCNERR_CNT_INVALID(x)			(((x) & BIT_MASK_BCNERR_CNT_INVALID) << BIT_SHIFT_BCNERR_CNT_INVALID)
#define BITS_BCNERR_CNT_INVALID			(BIT_MASK_BCNERR_CNT_INVALID << BIT_SHIFT_BCNERR_CNT_INVALID)
#define BIT_CLEAR_BCNERR_CNT_INVALID(x)		((x) & (~BITS_BCNERR_CNT_INVALID))
#define BIT_GET_BCNERR_CNT_INVALID(x)			(((x) >> BIT_SHIFT_BCNERR_CNT_INVALID) & BIT_MASK_BCNERR_CNT_INVALID)
#define BIT_SET_BCNERR_CNT_INVALID(x, v)		(BIT_CLEAR_BCNERR_CNT_INVALID(x) | BIT_BCNERR_CNT_INVALID(v))

#define BIT_CHANGE_POW_BCN_AREA			BIT(9)

#define BIT_SHIFT_TXPAUSE1				8
#define BIT_MASK_TXPAUSE1				0xff
#define BIT_TXPAUSE1(x)				(((x) & BIT_MASK_TXPAUSE1) << BIT_SHIFT_TXPAUSE1)
#define BITS_TXPAUSE1					(BIT_MASK_TXPAUSE1 << BIT_SHIFT_TXPAUSE1)
#define BIT_CLEAR_TXPAUSE1(x)				((x) & (~BITS_TXPAUSE1))
#define BIT_GET_TXPAUSE1(x)				(((x) >> BIT_SHIFT_TXPAUSE1) & BIT_MASK_TXPAUSE1)
#define BIT_SET_TXPAUSE1(x, v)				(BIT_CLEAR_TXPAUSE1(x) | BIT_TXPAUSE1(v))


#define BIT_SHIFT_BCNERR_CNT_MAC			8
#define BIT_MASK_BCNERR_CNT_MAC			0xff
#define BIT_BCNERR_CNT_MAC(x)				(((x) & BIT_MASK_BCNERR_CNT_MAC) << BIT_SHIFT_BCNERR_CNT_MAC)
#define BITS_BCNERR_CNT_MAC				(BIT_MASK_BCNERR_CNT_MAC << BIT_SHIFT_BCNERR_CNT_MAC)
#define BIT_CLEAR_BCNERR_CNT_MAC(x)			((x) & (~BITS_BCNERR_CNT_MAC))
#define BIT_GET_BCNERR_CNT_MAC(x)			(((x) >> BIT_SHIFT_BCNERR_CNT_MAC) & BIT_MASK_BCNERR_CNT_MAC)
#define BIT_SET_BCNERR_CNT_MAC(x, v)			(BIT_CLEAR_BCNERR_CNT_MAC(x) | BIT_BCNERR_CNT_MAC(v))

#define BIT_EN_TBTT_RTY				BIT(1)
#define BIT_TBTT_INT_SHIFT_ENABLE			BIT(0)

#define BIT_SHIFT_BCN_ELY_ADJ				0
#define BIT_MASK_BCN_ELY_ADJ				0xffff
#define BIT_BCN_ELY_ADJ(x)				(((x) & BIT_MASK_BCN_ELY_ADJ) << BIT_SHIFT_BCN_ELY_ADJ)
#define BITS_BCN_ELY_ADJ				(BIT_MASK_BCN_ELY_ADJ << BIT_SHIFT_BCN_ELY_ADJ)
#define BIT_CLEAR_BCN_ELY_ADJ(x)			((x) & (~BITS_BCN_ELY_ADJ))
#define BIT_GET_BCN_ELY_ADJ(x)				(((x) >> BIT_SHIFT_BCN_ELY_ADJ) & BIT_MASK_BCN_ELY_ADJ)
#define BIT_SET_BCN_ELY_ADJ(x, v)			(BIT_CLEAR_BCN_ELY_ADJ(x) | BIT_BCN_ELY_ADJ(v))


#define BIT_SHIFT_BCNERR_CNT_CCA			0
#define BIT_MASK_BCNERR_CNT_CCA			0xff
#define BIT_BCNERR_CNT_CCA(x)				(((x) & BIT_MASK_BCNERR_CNT_CCA) << BIT_SHIFT_BCNERR_CNT_CCA)
#define BITS_BCNERR_CNT_CCA				(BIT_MASK_BCNERR_CNT_CCA << BIT_SHIFT_BCNERR_CNT_CCA)
#define BIT_CLEAR_BCNERR_CNT_CCA(x)			((x) & (~BITS_BCNERR_CNT_CCA))
#define BIT_GET_BCNERR_CNT_CCA(x)			(((x) >> BIT_SHIFT_BCNERR_CNT_CCA) & BIT_MASK_BCNERR_CNT_CCA)
#define BIT_SET_BCNERR_CNT_CCA(x, v)			(BIT_CLEAR_BCNERR_CNT_CCA(x) | BIT_BCNERR_CNT_CCA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND2				(Offset 0x05A0) */


#define BIT_SHIFT_ATIMWND2				0
#define BIT_MASK_ATIMWND2				0xff
#define BIT_ATIMWND2(x)				(((x) & BIT_MASK_ATIMWND2) << BIT_SHIFT_ATIMWND2)
#define BITS_ATIMWND2					(BIT_MASK_ATIMWND2 << BIT_SHIFT_ATIMWND2)
#define BIT_CLEAR_ATIMWND2(x)				((x) & (~BITS_ATIMWND2))
#define BIT_GET_ATIMWND2(x)				(((x) >> BIT_SHIFT_ATIMWND2) & BIT_MASK_ATIMWND2)
#define BIT_SET_ATIMWND2(x, v)				(BIT_CLEAR_ATIMWND2(x) | BIT_ATIMWND2(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ATIMWND_GROUP1			(Offset 0x05A0) */


#define BIT_SHIFT_ATIMWND_GROUP1			0
#define BIT_MASK_ATIMWND_GROUP1			0xff
#define BIT_ATIMWND_GROUP1(x)				(((x) & BIT_MASK_ATIMWND_GROUP1) << BIT_SHIFT_ATIMWND_GROUP1)
#define BITS_ATIMWND_GROUP1				(BIT_MASK_ATIMWND_GROUP1 << BIT_SHIFT_ATIMWND_GROUP1)
#define BIT_CLEAR_ATIMWND_GROUP1(x)			((x) & (~BITS_ATIMWND_GROUP1))
#define BIT_GET_ATIMWND_GROUP1(x)			(((x) >> BIT_SHIFT_ATIMWND_GROUP1) & BIT_MASK_ATIMWND_GROUP1)
#define BIT_SET_ATIMWND_GROUP1(x, v)			(BIT_CLEAR_ATIMWND_GROUP1(x) | BIT_ATIMWND_GROUP1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND3				(Offset 0x05A1) */


#define BIT_SHIFT_ATIMWND3				0
#define BIT_MASK_ATIMWND3				0xff
#define BIT_ATIMWND3(x)				(((x) & BIT_MASK_ATIMWND3) << BIT_SHIFT_ATIMWND3)
#define BITS_ATIMWND3					(BIT_MASK_ATIMWND3 << BIT_SHIFT_ATIMWND3)
#define BIT_CLEAR_ATIMWND3(x)				((x) & (~BITS_ATIMWND3))
#define BIT_GET_ATIMWND3(x)				(((x) >> BIT_SHIFT_ATIMWND3) & BIT_MASK_ATIMWND3)
#define BIT_SET_ATIMWND3(x, v)				(BIT_CLEAR_ATIMWND3(x) | BIT_ATIMWND3(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ATIMWND_GROUP2			(Offset 0x05A1) */


#define BIT_SHIFT_ATIMWND_GROUP2			0
#define BIT_MASK_ATIMWND_GROUP2			0xff
#define BIT_ATIMWND_GROUP2(x)				(((x) & BIT_MASK_ATIMWND_GROUP2) << BIT_SHIFT_ATIMWND_GROUP2)
#define BITS_ATIMWND_GROUP2				(BIT_MASK_ATIMWND_GROUP2 << BIT_SHIFT_ATIMWND_GROUP2)
#define BIT_CLEAR_ATIMWND_GROUP2(x)			((x) & (~BITS_ATIMWND_GROUP2))
#define BIT_GET_ATIMWND_GROUP2(x)			(((x) >> BIT_SHIFT_ATIMWND_GROUP2) & BIT_MASK_ATIMWND_GROUP2)
#define BIT_SET_ATIMWND_GROUP2(x, v)			(BIT_CLEAR_ATIMWND_GROUP2(x) | BIT_ATIMWND_GROUP2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND4				(Offset 0x05A2) */


#define BIT_SHIFT_ATIMWND4				0
#define BIT_MASK_ATIMWND4				0xff
#define BIT_ATIMWND4(x)				(((x) & BIT_MASK_ATIMWND4) << BIT_SHIFT_ATIMWND4)
#define BITS_ATIMWND4					(BIT_MASK_ATIMWND4 << BIT_SHIFT_ATIMWND4)
#define BIT_CLEAR_ATIMWND4(x)				((x) & (~BITS_ATIMWND4))
#define BIT_GET_ATIMWND4(x)				(((x) >> BIT_SHIFT_ATIMWND4) & BIT_MASK_ATIMWND4)
#define BIT_SET_ATIMWND4(x, v)				(BIT_CLEAR_ATIMWND4(x) | BIT_ATIMWND4(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ATIMWND_GROUP3			(Offset 0x05A2) */


#define BIT_SHIFT_ATIMWND_GROUP3			0
#define BIT_MASK_ATIMWND_GROUP3			0xff
#define BIT_ATIMWND_GROUP3(x)				(((x) & BIT_MASK_ATIMWND_GROUP3) << BIT_SHIFT_ATIMWND_GROUP3)
#define BITS_ATIMWND_GROUP3				(BIT_MASK_ATIMWND_GROUP3 << BIT_SHIFT_ATIMWND_GROUP3)
#define BIT_CLEAR_ATIMWND_GROUP3(x)			((x) & (~BITS_ATIMWND_GROUP3))
#define BIT_GET_ATIMWND_GROUP3(x)			(((x) >> BIT_SHIFT_ATIMWND_GROUP3) & BIT_MASK_ATIMWND_GROUP3)
#define BIT_SET_ATIMWND_GROUP3(x, v)			(BIT_CLEAR_ATIMWND_GROUP3(x) | BIT_ATIMWND_GROUP3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND5				(Offset 0x05A3) */


#define BIT_SHIFT_ATIMWND5				0
#define BIT_MASK_ATIMWND5				0xff
#define BIT_ATIMWND5(x)				(((x) & BIT_MASK_ATIMWND5) << BIT_SHIFT_ATIMWND5)
#define BITS_ATIMWND5					(BIT_MASK_ATIMWND5 << BIT_SHIFT_ATIMWND5)
#define BIT_CLEAR_ATIMWND5(x)				((x) & (~BITS_ATIMWND5))
#define BIT_GET_ATIMWND5(x)				(((x) >> BIT_SHIFT_ATIMWND5) & BIT_MASK_ATIMWND5)
#define BIT_SET_ATIMWND5(x, v)				(BIT_CLEAR_ATIMWND5(x) | BIT_ATIMWND5(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ATIMWND_GROUP4			(Offset 0x05A3) */


#define BIT_SHIFT_ATIMWND_GROUP4			0
#define BIT_MASK_ATIMWND_GROUP4			0xff
#define BIT_ATIMWND_GROUP4(x)				(((x) & BIT_MASK_ATIMWND_GROUP4) << BIT_SHIFT_ATIMWND_GROUP4)
#define BITS_ATIMWND_GROUP4				(BIT_MASK_ATIMWND_GROUP4 << BIT_SHIFT_ATIMWND_GROUP4)
#define BIT_CLEAR_ATIMWND_GROUP4(x)			((x) & (~BITS_ATIMWND_GROUP4))
#define BIT_GET_ATIMWND_GROUP4(x)			(((x) >> BIT_SHIFT_ATIMWND_GROUP4) & BIT_MASK_ATIMWND_GROUP4)
#define BIT_SET_ATIMWND_GROUP4(x, v)			(BIT_CLEAR_ATIMWND_GROUP4(x) | BIT_ATIMWND_GROUP4(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND6				(Offset 0x05A4) */


#define BIT_SHIFT_ATIMWND6				0
#define BIT_MASK_ATIMWND6				0xff
#define BIT_ATIMWND6(x)				(((x) & BIT_MASK_ATIMWND6) << BIT_SHIFT_ATIMWND6)
#define BITS_ATIMWND6					(BIT_MASK_ATIMWND6 << BIT_SHIFT_ATIMWND6)
#define BIT_CLEAR_ATIMWND6(x)				((x) & (~BITS_ATIMWND6))
#define BIT_GET_ATIMWND6(x)				(((x) >> BIT_SHIFT_ATIMWND6) & BIT_MASK_ATIMWND6)
#define BIT_SET_ATIMWND6(x, v)				(BIT_CLEAR_ATIMWND6(x) | BIT_ATIMWND6(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DTIM_COUNT_GROUP1			(Offset 0x05A4) */


#define BIT_SHIFT_DTIM_COUNT_GROUP1			0
#define BIT_MASK_DTIM_COUNT_GROUP1			0xff
#define BIT_DTIM_COUNT_GROUP1(x)			(((x) & BIT_MASK_DTIM_COUNT_GROUP1) << BIT_SHIFT_DTIM_COUNT_GROUP1)
#define BITS_DTIM_COUNT_GROUP1				(BIT_MASK_DTIM_COUNT_GROUP1 << BIT_SHIFT_DTIM_COUNT_GROUP1)
#define BIT_CLEAR_DTIM_COUNT_GROUP1(x)			((x) & (~BITS_DTIM_COUNT_GROUP1))
#define BIT_GET_DTIM_COUNT_GROUP1(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_GROUP1) & BIT_MASK_DTIM_COUNT_GROUP1)
#define BIT_SET_DTIM_COUNT_GROUP1(x, v)		(BIT_CLEAR_DTIM_COUNT_GROUP1(x) | BIT_DTIM_COUNT_GROUP1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMWND7				(Offset 0x05A5) */


#define BIT_SHIFT_ATIMWND7				0
#define BIT_MASK_ATIMWND7				0xff
#define BIT_ATIMWND7(x)				(((x) & BIT_MASK_ATIMWND7) << BIT_SHIFT_ATIMWND7)
#define BITS_ATIMWND7					(BIT_MASK_ATIMWND7 << BIT_SHIFT_ATIMWND7)
#define BIT_CLEAR_ATIMWND7(x)				((x) & (~BITS_ATIMWND7))
#define BIT_GET_ATIMWND7(x)				(((x) >> BIT_SHIFT_ATIMWND7) & BIT_MASK_ATIMWND7)
#define BIT_SET_ATIMWND7(x, v)				(BIT_CLEAR_ATIMWND7(x) | BIT_ATIMWND7(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DTIM_COUNT_GROUP2			(Offset 0x05A5) */


#define BIT_SHIFT_DTIM_COUNT_GROUP2			0
#define BIT_MASK_DTIM_COUNT_GROUP2			0xff
#define BIT_DTIM_COUNT_GROUP2(x)			(((x) & BIT_MASK_DTIM_COUNT_GROUP2) << BIT_SHIFT_DTIM_COUNT_GROUP2)
#define BITS_DTIM_COUNT_GROUP2				(BIT_MASK_DTIM_COUNT_GROUP2 << BIT_SHIFT_DTIM_COUNT_GROUP2)
#define BIT_CLEAR_DTIM_COUNT_GROUP2(x)			((x) & (~BITS_DTIM_COUNT_GROUP2))
#define BIT_GET_DTIM_COUNT_GROUP2(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_GROUP2) & BIT_MASK_DTIM_COUNT_GROUP2)
#define BIT_SET_DTIM_COUNT_GROUP2(x, v)		(BIT_CLEAR_DTIM_COUNT_GROUP2(x) | BIT_DTIM_COUNT_GROUP2(v))


/* 2 REG_DTIM_COUNT_GROUP3			(Offset 0x05A6) */


#define BIT_SHIFT_DTIM_COUNT_GROUP3			0
#define BIT_MASK_DTIM_COUNT_GROUP3			0xff
#define BIT_DTIM_COUNT_GROUP3(x)			(((x) & BIT_MASK_DTIM_COUNT_GROUP3) << BIT_SHIFT_DTIM_COUNT_GROUP3)
#define BITS_DTIM_COUNT_GROUP3				(BIT_MASK_DTIM_COUNT_GROUP3 << BIT_SHIFT_DTIM_COUNT_GROUP3)
#define BIT_CLEAR_DTIM_COUNT_GROUP3(x)			((x) & (~BITS_DTIM_COUNT_GROUP3))
#define BIT_GET_DTIM_COUNT_GROUP3(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_GROUP3) & BIT_MASK_DTIM_COUNT_GROUP3)
#define BIT_SET_DTIM_COUNT_GROUP3(x, v)		(BIT_CLEAR_DTIM_COUNT_GROUP3(x) | BIT_DTIM_COUNT_GROUP3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_NO_LMT_EN			(Offset 0x05A7) */

#define BIT_HIQ_NO_LMT_EN_ROOT				BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DTIM_COUNT_GROUP4			(Offset 0x05A7) */


#define BIT_SHIFT_DTIM_COUNT_GROUP4			0
#define BIT_MASK_DTIM_COUNT_GROUP4			0xff
#define BIT_DTIM_COUNT_GROUP4(x)			(((x) & BIT_MASK_DTIM_COUNT_GROUP4) << BIT_SHIFT_DTIM_COUNT_GROUP4)
#define BITS_DTIM_COUNT_GROUP4				(BIT_MASK_DTIM_COUNT_GROUP4 << BIT_SHIFT_DTIM_COUNT_GROUP4)
#define BIT_CLEAR_DTIM_COUNT_GROUP4(x)			((x) & (~BITS_DTIM_COUNT_GROUP4))
#define BIT_GET_DTIM_COUNT_GROUP4(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_GROUP4) & BIT_MASK_DTIM_COUNT_GROUP4)
#define BIT_SET_DTIM_COUNT_GROUP4(x, v)		(BIT_CLEAR_DTIM_COUNT_GROUP4(x) | BIT_DTIM_COUNT_GROUP4(v))


/* 2 REG_HIQ_NO_LMT_EN_V2			(Offset 0x05A8) */


#define BIT_SHIFT_BCNERR_CNT_EDCCA			(32 & CPU_OPT_WIDTH)
#define BIT_MASK_BCNERR_CNT_EDCCA			0xff
#define BIT_BCNERR_CNT_EDCCA(x)			(((x) & BIT_MASK_BCNERR_CNT_EDCCA) << BIT_SHIFT_BCNERR_CNT_EDCCA)
#define BITS_BCNERR_CNT_EDCCA				(BIT_MASK_BCNERR_CNT_EDCCA << BIT_SHIFT_BCNERR_CNT_EDCCA)
#define BIT_CLEAR_BCNERR_CNT_EDCCA(x)			((x) & (~BITS_BCNERR_CNT_EDCCA))
#define BIT_GET_BCNERR_CNT_EDCCA(x)			(((x) >> BIT_SHIFT_BCNERR_CNT_EDCCA) & BIT_MASK_BCNERR_CNT_EDCCA)
#define BIT_SET_BCNERR_CNT_EDCCA(x, v)			(BIT_CLEAR_BCNERR_CNT_EDCCA(x) | BIT_BCNERR_CNT_EDCCA(v))


#define BIT_SHIFT_ATIM_CFG_SEL				24
#define BIT_MASK_ATIM_CFG_SEL				0x3
#define BIT_ATIM_CFG_SEL(x)				(((x) & BIT_MASK_ATIM_CFG_SEL) << BIT_SHIFT_ATIM_CFG_SEL)
#define BITS_ATIM_CFG_SEL				(BIT_MASK_ATIM_CFG_SEL << BIT_SHIFT_ATIM_CFG_SEL)
#define BIT_CLEAR_ATIM_CFG_SEL(x)			((x) & (~BITS_ATIM_CFG_SEL))
#define BIT_GET_ATIM_CFG_SEL(x)			(((x) >> BIT_SHIFT_ATIM_CFG_SEL) & BIT_MASK_ATIM_CFG_SEL)
#define BIT_SET_ATIM_CFG_SEL(x, v)			(BIT_CLEAR_ATIM_CFG_SEL(x) | BIT_ATIM_CFG_SEL(v))


#define BIT_SHIFT_DIS_ATIM				16
#define BIT_MASK_DIS_ATIM				0xffff
#define BIT_DIS_ATIM(x)				(((x) & BIT_MASK_DIS_ATIM) << BIT_SHIFT_DIS_ATIM)
#define BITS_DIS_ATIM					(BIT_MASK_DIS_ATIM << BIT_SHIFT_DIS_ATIM)
#define BIT_CLEAR_DIS_ATIM(x)				((x) & (~BITS_DIS_ATIM))
#define BIT_GET_DIS_ATIM(x)				(((x) >> BIT_SHIFT_DIS_ATIM) & BIT_MASK_DIS_ATIM)
#define BIT_SET_DIS_ATIM(x, v)				(BIT_CLEAR_DIS_ATIM(x) | BIT_DIS_ATIM(v))


#define BIT_SHIFT_ATIM_URGENT_V1			16
#define BIT_MASK_ATIM_URGENT_V1			0xff
#define BIT_ATIM_URGENT_V1(x)				(((x) & BIT_MASK_ATIM_URGENT_V1) << BIT_SHIFT_ATIM_URGENT_V1)
#define BITS_ATIM_URGENT_V1				(BIT_MASK_ATIM_URGENT_V1 << BIT_SHIFT_ATIM_URGENT_V1)
#define BIT_CLEAR_ATIM_URGENT_V1(x)			((x) & (~BITS_ATIM_URGENT_V1))
#define BIT_GET_ATIM_URGENT_V1(x)			(((x) >> BIT_SHIFT_ATIM_URGENT_V1) & BIT_MASK_ATIM_URGENT_V1)
#define BIT_SET_ATIM_URGENT_V1(x, v)			(BIT_CLEAR_ATIM_URGENT_V1(x) | BIT_ATIM_URGENT_V1(v))


#define BIT_SHIFT_BCNERR_PORT_SEL_V1			16
#define BIT_MASK_BCNERR_PORT_SEL_V1			0xf
#define BIT_BCNERR_PORT_SEL_V1(x)			(((x) & BIT_MASK_BCNERR_PORT_SEL_V1) << BIT_SHIFT_BCNERR_PORT_SEL_V1)
#define BITS_BCNERR_PORT_SEL_V1			(BIT_MASK_BCNERR_PORT_SEL_V1 << BIT_SHIFT_BCNERR_PORT_SEL_V1)
#define BIT_CLEAR_BCNERR_PORT_SEL_V1(x)		((x) & (~BITS_BCNERR_PORT_SEL_V1))
#define BIT_GET_BCNERR_PORT_SEL_V1(x)			(((x) >> BIT_SHIFT_BCNERR_PORT_SEL_V1) & BIT_MASK_BCNERR_PORT_SEL_V1)
#define BIT_SET_BCNERR_PORT_SEL_V1(x, v)		(BIT_CLEAR_BCNERR_PORT_SEL_V1(x) | BIT_BCNERR_PORT_SEL_V1(v))

#define BIT_DIS_NDPA_NAV_CHK				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DTIM_COUNTER_ROOT			(Offset 0x05A8) */


#define BIT_SHIFT_DTIM_COUNT_ROOT			0
#define BIT_MASK_DTIM_COUNT_ROOT			0xff
#define BIT_DTIM_COUNT_ROOT(x)				(((x) & BIT_MASK_DTIM_COUNT_ROOT) << BIT_SHIFT_DTIM_COUNT_ROOT)
#define BITS_DTIM_COUNT_ROOT				(BIT_MASK_DTIM_COUNT_ROOT << BIT_SHIFT_DTIM_COUNT_ROOT)
#define BIT_CLEAR_DTIM_COUNT_ROOT(x)			((x) & (~BITS_DTIM_COUNT_ROOT))
#define BIT_GET_DTIM_COUNT_ROOT(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_ROOT) & BIT_MASK_DTIM_COUNT_ROOT)
#define BIT_SET_DTIM_COUNT_ROOT(x, v)			(BIT_CLEAR_DTIM_COUNT_ROOT(x) | BIT_DTIM_COUNT_ROOT(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIQ_NO_LMT_EN_V2			(Offset 0x05A8) */


#define BIT_SHIFT_MBID_BCNQ_EN				0
#define BIT_MASK_MBID_BCNQ_EN				0xffff
#define BIT_MBID_BCNQ_EN(x)				(((x) & BIT_MASK_MBID_BCNQ_EN) << BIT_SHIFT_MBID_BCNQ_EN)
#define BITS_MBID_BCNQ_EN				(BIT_MASK_MBID_BCNQ_EN << BIT_SHIFT_MBID_BCNQ_EN)
#define BIT_CLEAR_MBID_BCNQ_EN(x)			((x) & (~BITS_MBID_BCNQ_EN))
#define BIT_GET_MBID_BCNQ_EN(x)			(((x) >> BIT_SHIFT_MBID_BCNQ_EN) & BIT_MASK_MBID_BCNQ_EN)
#define BIT_SET_MBID_BCNQ_EN(x, v)			(BIT_CLEAR_MBID_BCNQ_EN(x) | BIT_MBID_BCNQ_EN(v))


#define BIT_SHIFT_MHDR_NAV_OFFSET			0
#define BIT_MASK_MHDR_NAV_OFFSET			0xff
#define BIT_MHDR_NAV_OFFSET(x)				(((x) & BIT_MASK_MHDR_NAV_OFFSET) << BIT_SHIFT_MHDR_NAV_OFFSET)
#define BITS_MHDR_NAV_OFFSET				(BIT_MASK_MHDR_NAV_OFFSET << BIT_SHIFT_MHDR_NAV_OFFSET)
#define BIT_CLEAR_MHDR_NAV_OFFSET(x)			((x) & (~BITS_MHDR_NAV_OFFSET))
#define BIT_GET_MHDR_NAV_OFFSET(x)			(((x) >> BIT_SHIFT_MHDR_NAV_OFFSET) & BIT_MASK_MHDR_NAV_OFFSET)
#define BIT_SET_MHDR_NAV_OFFSET(x, v)			(BIT_CLEAR_MHDR_NAV_OFFSET(x) | BIT_MHDR_NAV_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DTIM_COUNTER_VAP1			(Offset 0x05A9) */


#define BIT_SHIFT_DTIM_COUNT_VAP1			0
#define BIT_MASK_DTIM_COUNT_VAP1			0xff
#define BIT_DTIM_COUNT_VAP1(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP1) << BIT_SHIFT_DTIM_COUNT_VAP1)
#define BITS_DTIM_COUNT_VAP1				(BIT_MASK_DTIM_COUNT_VAP1 << BIT_SHIFT_DTIM_COUNT_VAP1)
#define BIT_CLEAR_DTIM_COUNT_VAP1(x)			((x) & (~BITS_DTIM_COUNT_VAP1))
#define BIT_GET_DTIM_COUNT_VAP1(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP1) & BIT_MASK_DTIM_COUNT_VAP1)
#define BIT_SET_DTIM_COUNT_VAP1(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP1(x) | BIT_DTIM_COUNT_VAP1(v))


/* 2 REG_DTIM_COUNTER_VAP2			(Offset 0x05AA) */


#define BIT_SHIFT_DTIM_COUNT_VAP2			0
#define BIT_MASK_DTIM_COUNT_VAP2			0xff
#define BIT_DTIM_COUNT_VAP2(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP2) << BIT_SHIFT_DTIM_COUNT_VAP2)
#define BITS_DTIM_COUNT_VAP2				(BIT_MASK_DTIM_COUNT_VAP2 << BIT_SHIFT_DTIM_COUNT_VAP2)
#define BIT_CLEAR_DTIM_COUNT_VAP2(x)			((x) & (~BITS_DTIM_COUNT_VAP2))
#define BIT_GET_DTIM_COUNT_VAP2(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP2) & BIT_MASK_DTIM_COUNT_VAP2)
#define BIT_SET_DTIM_COUNT_VAP2(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP2(x) | BIT_DTIM_COUNT_VAP2(v))


/* 2 REG_DTIM_COUNTER_VAP3			(Offset 0x05AB) */


#define BIT_SHIFT_DTIM_COUNT_VAP3			0
#define BIT_MASK_DTIM_COUNT_VAP3			0xff
#define BIT_DTIM_COUNT_VAP3(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP3) << BIT_SHIFT_DTIM_COUNT_VAP3)
#define BITS_DTIM_COUNT_VAP3				(BIT_MASK_DTIM_COUNT_VAP3 << BIT_SHIFT_DTIM_COUNT_VAP3)
#define BIT_CLEAR_DTIM_COUNT_VAP3(x)			((x) & (~BITS_DTIM_COUNT_VAP3))
#define BIT_GET_DTIM_COUNT_VAP3(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP3) & BIT_MASK_DTIM_COUNT_VAP3)
#define BIT_SET_DTIM_COUNT_VAP3(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP3(x) | BIT_DTIM_COUNT_VAP3(v))


/* 2 REG_DTIM_COUNTER_VAP4			(Offset 0x05AC) */


#define BIT_SHIFT_DTIM_COUNT_VAP4			0
#define BIT_MASK_DTIM_COUNT_VAP4			0xff
#define BIT_DTIM_COUNT_VAP4(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP4) << BIT_SHIFT_DTIM_COUNT_VAP4)
#define BITS_DTIM_COUNT_VAP4				(BIT_MASK_DTIM_COUNT_VAP4 << BIT_SHIFT_DTIM_COUNT_VAP4)
#define BIT_CLEAR_DTIM_COUNT_VAP4(x)			((x) & (~BITS_DTIM_COUNT_VAP4))
#define BIT_GET_DTIM_COUNT_VAP4(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP4) & BIT_MASK_DTIM_COUNT_VAP4)
#define BIT_SET_DTIM_COUNT_VAP4(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP4(x) | BIT_DTIM_COUNT_VAP4(v))


/* 2 REG_DTIM_COUNTER_VAP5			(Offset 0x05AD) */


#define BIT_SHIFT_DTIM_COUNT_VAP5			0
#define BIT_MASK_DTIM_COUNT_VAP5			0xff
#define BIT_DTIM_COUNT_VAP5(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP5) << BIT_SHIFT_DTIM_COUNT_VAP5)
#define BITS_DTIM_COUNT_VAP5				(BIT_MASK_DTIM_COUNT_VAP5 << BIT_SHIFT_DTIM_COUNT_VAP5)
#define BIT_CLEAR_DTIM_COUNT_VAP5(x)			((x) & (~BITS_DTIM_COUNT_VAP5))
#define BIT_GET_DTIM_COUNT_VAP5(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP5) & BIT_MASK_DTIM_COUNT_VAP5)
#define BIT_SET_DTIM_COUNT_VAP5(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP5(x) | BIT_DTIM_COUNT_VAP5(v))


/* 2 REG_DTIM_COUNTER_VAP6			(Offset 0x05AE) */


#define BIT_SHIFT_DTIM_COUNT_VAP6			0
#define BIT_MASK_DTIM_COUNT_VAP6			0xff
#define BIT_DTIM_COUNT_VAP6(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP6) << BIT_SHIFT_DTIM_COUNT_VAP6)
#define BITS_DTIM_COUNT_VAP6				(BIT_MASK_DTIM_COUNT_VAP6 << BIT_SHIFT_DTIM_COUNT_VAP6)
#define BIT_CLEAR_DTIM_COUNT_VAP6(x)			((x) & (~BITS_DTIM_COUNT_VAP6))
#define BIT_GET_DTIM_COUNT_VAP6(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP6) & BIT_MASK_DTIM_COUNT_VAP6)
#define BIT_SET_DTIM_COUNT_VAP6(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP6(x) | BIT_DTIM_COUNT_VAP6(v))


/* 2 REG_DTIM_COUNTER_VAP7			(Offset 0x05AF) */


#define BIT_SHIFT_DTIM_COUNT_VAP7			0
#define BIT_MASK_DTIM_COUNT_VAP7			0xff
#define BIT_DTIM_COUNT_VAP7(x)				(((x) & BIT_MASK_DTIM_COUNT_VAP7) << BIT_SHIFT_DTIM_COUNT_VAP7)
#define BITS_DTIM_COUNT_VAP7				(BIT_MASK_DTIM_COUNT_VAP7 << BIT_SHIFT_DTIM_COUNT_VAP7)
#define BIT_CLEAR_DTIM_COUNT_VAP7(x)			((x) & (~BITS_DTIM_COUNT_VAP7))
#define BIT_GET_DTIM_COUNT_VAP7(x)			(((x) >> BIT_SHIFT_DTIM_COUNT_VAP7) & BIT_MASK_DTIM_COUNT_VAP7)
#define BIT_SET_DTIM_COUNT_VAP7(x, v)			(BIT_CLEAR_DTIM_COUNT_VAP7(x) | BIT_DTIM_COUNT_VAP7(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DIS_ATIM				(Offset 0x05B0) */

#define BIT_DIS_ATIM_VAP7				BIT(7)
#define BIT_DIS_ATIM_VAP6				BIT(6)
#define BIT_DIS_ATIM_VAP5				BIT(5)
#define BIT_DIS_ATIM_VAP4				BIT(4)
#define BIT_DIS_ATIM_VAP3				BIT(3)
#define BIT_DIS_ATIM_VAP2				BIT(2)
#define BIT_DIS_ATIM_VAP1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_DIS_ATIM				(Offset 0x05B0) */

#define BIT_DIS_ATIM_ROOT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_EARLY_128US				(Offset 0x05B1) */


#define BIT_SHIFT_TSFT_SEL_TIMER1			3
#define BIT_MASK_TSFT_SEL_TIMER1			0x7
#define BIT_TSFT_SEL_TIMER1(x)				(((x) & BIT_MASK_TSFT_SEL_TIMER1) << BIT_SHIFT_TSFT_SEL_TIMER1)
#define BITS_TSFT_SEL_TIMER1				(BIT_MASK_TSFT_SEL_TIMER1 << BIT_SHIFT_TSFT_SEL_TIMER1)
#define BIT_CLEAR_TSFT_SEL_TIMER1(x)			((x) & (~BITS_TSFT_SEL_TIMER1))
#define BIT_GET_TSFT_SEL_TIMER1(x)			(((x) >> BIT_SHIFT_TSFT_SEL_TIMER1) & BIT_MASK_TSFT_SEL_TIMER1)
#define BIT_SET_TSFT_SEL_TIMER1(x, v)			(BIT_CLEAR_TSFT_SEL_TIMER1(x) | BIT_TSFT_SEL_TIMER1(v))


/* 2 REG_P2PPS1_CTRL				(Offset 0x05B2) */

#define BIT_P2P1_CTW_ALLSTASLEEP			BIT(7)
#define BIT_P2P1_PWR_MGT_EN				BIT(5)
#define BIT_P2P1_NOA1_EN				BIT(2)
#define BIT_P2P1_NOA0_EN				BIT(1)

/* 2 REG_P2PPS2_CTRL				(Offset 0x05B3) */

#define BIT_P2P2_CTW_ALLSTASLEEP			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_CTRL				(Offset 0x05B3) */

#define BIT_P2P2_OFF_DISTX_EN				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS2_CTRL				(Offset 0x05B3) */

#define BIT_P2P2_PWR_MGT_EN				BIT(5)
#define BIT_P2P2_NOA1_EN				BIT(2)
#define BIT_P2P2_NOA0_EN				BIT(1)

/* 2 REG_TIMER0_SRC_SEL			(Offset 0x05B4) */


#define BIT_SHIFT_SYNC_CLI_SEL				4
#define BIT_MASK_SYNC_CLI_SEL				0x7
#define BIT_SYNC_CLI_SEL(x)				(((x) & BIT_MASK_SYNC_CLI_SEL) << BIT_SHIFT_SYNC_CLI_SEL)
#define BITS_SYNC_CLI_SEL				(BIT_MASK_SYNC_CLI_SEL << BIT_SHIFT_SYNC_CLI_SEL)
#define BIT_CLEAR_SYNC_CLI_SEL(x)			((x) & (~BITS_SYNC_CLI_SEL))
#define BIT_GET_SYNC_CLI_SEL(x)			(((x) >> BIT_SHIFT_SYNC_CLI_SEL) & BIT_MASK_SYNC_CLI_SEL)
#define BIT_SET_SYNC_CLI_SEL(x, v)			(BIT_CLEAR_SYNC_CLI_SEL(x) | BIT_SYNC_CLI_SEL(v))


#define BIT_SHIFT_TSFT_SEL_TIMER0			0
#define BIT_MASK_TSFT_SEL_TIMER0			0x7
#define BIT_TSFT_SEL_TIMER0(x)				(((x) & BIT_MASK_TSFT_SEL_TIMER0) << BIT_SHIFT_TSFT_SEL_TIMER0)
#define BITS_TSFT_SEL_TIMER0				(BIT_MASK_TSFT_SEL_TIMER0 << BIT_SHIFT_TSFT_SEL_TIMER0)
#define BIT_CLEAR_TSFT_SEL_TIMER0(x)			((x) & (~BITS_TSFT_SEL_TIMER0))
#define BIT_GET_TSFT_SEL_TIMER0(x)			(((x) >> BIT_SHIFT_TSFT_SEL_TIMER0) & BIT_MASK_TSFT_SEL_TIMER0)
#define BIT_SET_TSFT_SEL_TIMER0(x, v)			(BIT_CLEAR_TSFT_SEL_TIMER0(x) | BIT_TSFT_SEL_TIMER0(v))


/* 2 REG_NOA_UNIT_SEL			(Offset 0x05B5) */


#define BIT_SHIFT_NOA_UNIT2_SEL			8
#define BIT_MASK_NOA_UNIT2_SEL				0x7
#define BIT_NOA_UNIT2_SEL(x)				(((x) & BIT_MASK_NOA_UNIT2_SEL) << BIT_SHIFT_NOA_UNIT2_SEL)
#define BITS_NOA_UNIT2_SEL				(BIT_MASK_NOA_UNIT2_SEL << BIT_SHIFT_NOA_UNIT2_SEL)
#define BIT_CLEAR_NOA_UNIT2_SEL(x)			((x) & (~BITS_NOA_UNIT2_SEL))
#define BIT_GET_NOA_UNIT2_SEL(x)			(((x) >> BIT_SHIFT_NOA_UNIT2_SEL) & BIT_MASK_NOA_UNIT2_SEL)
#define BIT_SET_NOA_UNIT2_SEL(x, v)			(BIT_CLEAR_NOA_UNIT2_SEL(x) | BIT_NOA_UNIT2_SEL(v))


#define BIT_SHIFT_NOA_UNIT1_SEL			4
#define BIT_MASK_NOA_UNIT1_SEL				0x7
#define BIT_NOA_UNIT1_SEL(x)				(((x) & BIT_MASK_NOA_UNIT1_SEL) << BIT_SHIFT_NOA_UNIT1_SEL)
#define BITS_NOA_UNIT1_SEL				(BIT_MASK_NOA_UNIT1_SEL << BIT_SHIFT_NOA_UNIT1_SEL)
#define BIT_CLEAR_NOA_UNIT1_SEL(x)			((x) & (~BITS_NOA_UNIT1_SEL))
#define BIT_GET_NOA_UNIT1_SEL(x)			(((x) >> BIT_SHIFT_NOA_UNIT1_SEL) & BIT_MASK_NOA_UNIT1_SEL)
#define BIT_SET_NOA_UNIT1_SEL(x, v)			(BIT_CLEAR_NOA_UNIT1_SEL(x) | BIT_NOA_UNIT1_SEL(v))


#define BIT_SHIFT_NOA_UNIT0_SEL			0
#define BIT_MASK_NOA_UNIT0_SEL				0x7
#define BIT_NOA_UNIT0_SEL(x)				(((x) & BIT_MASK_NOA_UNIT0_SEL) << BIT_SHIFT_NOA_UNIT0_SEL)
#define BITS_NOA_UNIT0_SEL				(BIT_MASK_NOA_UNIT0_SEL << BIT_SHIFT_NOA_UNIT0_SEL)
#define BIT_CLEAR_NOA_UNIT0_SEL(x)			((x) & (~BITS_NOA_UNIT0_SEL))
#define BIT_GET_NOA_UNIT0_SEL(x)			(((x) >> BIT_SHIFT_NOA_UNIT0_SEL) & BIT_MASK_NOA_UNIT0_SEL)
#define BIT_SET_NOA_UNIT0_SEL(x, v)			(BIT_CLEAR_NOA_UNIT0_SEL(x) | BIT_NOA_UNIT0_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2POFF_DIS_TXTIME			(Offset 0x05B7) */


#define BIT_SHIFT_P2POFF_DIS_TXTIME			0
#define BIT_MASK_P2POFF_DIS_TXTIME			0xff
#define BIT_P2POFF_DIS_TXTIME(x)			(((x) & BIT_MASK_P2POFF_DIS_TXTIME) << BIT_SHIFT_P2POFF_DIS_TXTIME)
#define BITS_P2POFF_DIS_TXTIME				(BIT_MASK_P2POFF_DIS_TXTIME << BIT_SHIFT_P2POFF_DIS_TXTIME)
#define BIT_CLEAR_P2POFF_DIS_TXTIME(x)			((x) & (~BITS_P2POFF_DIS_TXTIME))
#define BIT_GET_P2POFF_DIS_TXTIME(x)			(((x) >> BIT_SHIFT_P2POFF_DIS_TXTIME) & BIT_MASK_P2POFF_DIS_TXTIME)
#define BIT_SET_P2POFF_DIS_TXTIME(x, v)		(BIT_CLEAR_P2POFF_DIS_TXTIME(x) | BIT_P2POFF_DIS_TXTIME(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MBSSID_BCN_SPACE2			(Offset 0x05B8) */


#define BIT_SHIFT_BCN_SPACE_CLINT2			16
#define BIT_MASK_BCN_SPACE_CLINT2			0xfff
#define BIT_BCN_SPACE_CLINT2(x)			(((x) & BIT_MASK_BCN_SPACE_CLINT2) << BIT_SHIFT_BCN_SPACE_CLINT2)
#define BITS_BCN_SPACE_CLINT2				(BIT_MASK_BCN_SPACE_CLINT2 << BIT_SHIFT_BCN_SPACE_CLINT2)
#define BIT_CLEAR_BCN_SPACE_CLINT2(x)			((x) & (~BITS_BCN_SPACE_CLINT2))
#define BIT_GET_BCN_SPACE_CLINT2(x)			(((x) >> BIT_SHIFT_BCN_SPACE_CLINT2) & BIT_MASK_BCN_SPACE_CLINT2)
#define BIT_SET_BCN_SPACE_CLINT2(x, v)			(BIT_CLEAR_BCN_SPACE_CLINT2(x) | BIT_BCN_SPACE_CLINT2(v))


#define BIT_SHIFT_BCN_SPACE_CLINT1			0
#define BIT_MASK_BCN_SPACE_CLINT1			0xfff
#define BIT_BCN_SPACE_CLINT1(x)			(((x) & BIT_MASK_BCN_SPACE_CLINT1) << BIT_SHIFT_BCN_SPACE_CLINT1)
#define BITS_BCN_SPACE_CLINT1				(BIT_MASK_BCN_SPACE_CLINT1 << BIT_SHIFT_BCN_SPACE_CLINT1)
#define BIT_CLEAR_BCN_SPACE_CLINT1(x)			((x) & (~BITS_BCN_SPACE_CLINT1))
#define BIT_GET_BCN_SPACE_CLINT1(x)			(((x) >> BIT_SHIFT_BCN_SPACE_CLINT1) & BIT_MASK_BCN_SPACE_CLINT1)
#define BIT_SET_BCN_SPACE_CLINT1(x, v)			(BIT_CLEAR_BCN_SPACE_CLINT1(x) | BIT_BCN_SPACE_CLINT1(v))


/* 2 REG_MBSSID_BCN_SPACE3			(Offset 0x05BC) */


#define BIT_SHIFT_SUB_BCN_SPACE			16
#define BIT_MASK_SUB_BCN_SPACE				0xff
#define BIT_SUB_BCN_SPACE(x)				(((x) & BIT_MASK_SUB_BCN_SPACE) << BIT_SHIFT_SUB_BCN_SPACE)
#define BITS_SUB_BCN_SPACE				(BIT_MASK_SUB_BCN_SPACE << BIT_SHIFT_SUB_BCN_SPACE)
#define BIT_CLEAR_SUB_BCN_SPACE(x)			((x) & (~BITS_SUB_BCN_SPACE))
#define BIT_GET_SUB_BCN_SPACE(x)			(((x) >> BIT_SHIFT_SUB_BCN_SPACE) & BIT_MASK_SUB_BCN_SPACE)
#define BIT_SET_SUB_BCN_SPACE(x, v)			(BIT_CLEAR_SUB_BCN_SPACE(x) | BIT_SUB_BCN_SPACE(v))


#define BIT_SHIFT_BCN_SPACE_CLINT3			0
#define BIT_MASK_BCN_SPACE_CLINT3			0xfff
#define BIT_BCN_SPACE_CLINT3(x)			(((x) & BIT_MASK_BCN_SPACE_CLINT3) << BIT_SHIFT_BCN_SPACE_CLINT3)
#define BITS_BCN_SPACE_CLINT3				(BIT_MASK_BCN_SPACE_CLINT3 << BIT_SHIFT_BCN_SPACE_CLINT3)
#define BIT_CLEAR_BCN_SPACE_CLINT3(x)			((x) & (~BITS_BCN_SPACE_CLINT3))
#define BIT_GET_BCN_SPACE_CLINT3(x)			(((x) >> BIT_SHIFT_BCN_SPACE_CLINT3) & BIT_MASK_BCN_SPACE_CLINT3)
#define BIT_SET_BCN_SPACE_CLINT3(x, v)			(BIT_CLEAR_BCN_SPACE_CLINT3(x) | BIT_BCN_SPACE_CLINT3(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ACMHWCTRL				(Offset 0x05C0) */

#define BIT_BEQ_ACM_STATUS				BIT(7)
#define BIT_VIQ_ACM_STATUS				BIT(6)
#define BIT_VOQ_ACM_STATUS				BIT(5)
#define BIT_BEQ_ACM_EN					BIT(3)
#define BIT_VIQ_ACM_EN					BIT(2)
#define BIT_VOQ_ACM_EN					BIT(1)
#define BIT_ACMHWEN					BIT(0)

/* 2 REG_ACMRSTCTRL				(Offset 0x05C1) */

#define BIT_BE_ACM_RESET_USED_TIME			BIT(2)
#define BIT_VI_ACM_RESET_USED_TIME			BIT(1)
#define BIT_VO_ACM_RESET_USED_TIME			BIT(0)

/* 2 REG_ACMAVG				(Offset 0x05C2) */


#define BIT_SHIFT_AVGPERIOD				0
#define BIT_MASK_AVGPERIOD				0xffff
#define BIT_AVGPERIOD(x)				(((x) & BIT_MASK_AVGPERIOD) << BIT_SHIFT_AVGPERIOD)
#define BITS_AVGPERIOD					(BIT_MASK_AVGPERIOD << BIT_SHIFT_AVGPERIOD)
#define BIT_CLEAR_AVGPERIOD(x)				((x) & (~BITS_AVGPERIOD))
#define BIT_GET_AVGPERIOD(x)				(((x) >> BIT_SHIFT_AVGPERIOD) & BIT_MASK_AVGPERIOD)
#define BIT_SET_AVGPERIOD(x, v)			(BIT_CLEAR_AVGPERIOD(x) | BIT_AVGPERIOD(v))


/* 2 REG_VO_ADMTIME				(Offset 0x05C4) */


#define BIT_SHIFT_VO_ADMITTED_TIME			0
#define BIT_MASK_VO_ADMITTED_TIME			0xffff
#define BIT_VO_ADMITTED_TIME(x)			(((x) & BIT_MASK_VO_ADMITTED_TIME) << BIT_SHIFT_VO_ADMITTED_TIME)
#define BITS_VO_ADMITTED_TIME				(BIT_MASK_VO_ADMITTED_TIME << BIT_SHIFT_VO_ADMITTED_TIME)
#define BIT_CLEAR_VO_ADMITTED_TIME(x)			((x) & (~BITS_VO_ADMITTED_TIME))
#define BIT_GET_VO_ADMITTED_TIME(x)			(((x) >> BIT_SHIFT_VO_ADMITTED_TIME) & BIT_MASK_VO_ADMITTED_TIME)
#define BIT_SET_VO_ADMITTED_TIME(x, v)			(BIT_CLEAR_VO_ADMITTED_TIME(x) | BIT_VO_ADMITTED_TIME(v))


/* 2 REG_VI_ADMTIME				(Offset 0x05C6) */


#define BIT_SHIFT_VI_ADMITTED_TIME			0
#define BIT_MASK_VI_ADMITTED_TIME			0xffff
#define BIT_VI_ADMITTED_TIME(x)			(((x) & BIT_MASK_VI_ADMITTED_TIME) << BIT_SHIFT_VI_ADMITTED_TIME)
#define BITS_VI_ADMITTED_TIME				(BIT_MASK_VI_ADMITTED_TIME << BIT_SHIFT_VI_ADMITTED_TIME)
#define BIT_CLEAR_VI_ADMITTED_TIME(x)			((x) & (~BITS_VI_ADMITTED_TIME))
#define BIT_GET_VI_ADMITTED_TIME(x)			(((x) >> BIT_SHIFT_VI_ADMITTED_TIME) & BIT_MASK_VI_ADMITTED_TIME)
#define BIT_SET_VI_ADMITTED_TIME(x, v)			(BIT_CLEAR_VI_ADMITTED_TIME(x) | BIT_VI_ADMITTED_TIME(v))


/* 2 REG_BE_ADMTIME				(Offset 0x05C8) */


#define BIT_SHIFT_BE_ADMITTED_TIME			0
#define BIT_MASK_BE_ADMITTED_TIME			0xffff
#define BIT_BE_ADMITTED_TIME(x)			(((x) & BIT_MASK_BE_ADMITTED_TIME) << BIT_SHIFT_BE_ADMITTED_TIME)
#define BITS_BE_ADMITTED_TIME				(BIT_MASK_BE_ADMITTED_TIME << BIT_SHIFT_BE_ADMITTED_TIME)
#define BIT_CLEAR_BE_ADMITTED_TIME(x)			((x) & (~BITS_BE_ADMITTED_TIME))
#define BIT_GET_BE_ADMITTED_TIME(x)			(((x) >> BIT_SHIFT_BE_ADMITTED_TIME) & BIT_MASK_BE_ADMITTED_TIME)
#define BIT_SET_BE_ADMITTED_TIME(x, v)			(BIT_CLEAR_BE_ADMITTED_TIME(x) | BIT_BE_ADMITTED_TIME(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MAC_HEADER_NAV_OFFSET		(Offset 0x05CA) */


#define BIT_SHIFT_MAC_HEADER_NAV_OFFSET		0
#define BIT_MASK_MAC_HEADER_NAV_OFFSET			0xff
#define BIT_MAC_HEADER_NAV_OFFSET(x)			(((x) & BIT_MASK_MAC_HEADER_NAV_OFFSET) << BIT_SHIFT_MAC_HEADER_NAV_OFFSET)
#define BITS_MAC_HEADER_NAV_OFFSET			(BIT_MASK_MAC_HEADER_NAV_OFFSET << BIT_SHIFT_MAC_HEADER_NAV_OFFSET)
#define BIT_CLEAR_MAC_HEADER_NAV_OFFSET(x)		((x) & (~BITS_MAC_HEADER_NAV_OFFSET))
#define BIT_GET_MAC_HEADER_NAV_OFFSET(x)		(((x) >> BIT_SHIFT_MAC_HEADER_NAV_OFFSET) & BIT_MASK_MAC_HEADER_NAV_OFFSET)
#define BIT_SET_MAC_HEADER_NAV_OFFSET(x, v)		(BIT_CLEAR_MAC_HEADER_NAV_OFFSET(x) | BIT_MAC_HEADER_NAV_OFFSET(v))


/* 2 REG_DIS_NDPA_NAV_CHECK			(Offset 0x05CB) */

#define BIT_DIS_NDPA_NAV_CHECK				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_EDCA_RANDOM_GEN			(Offset 0x05CC) */


#define BIT_SHIFT_RANDOM_GEN				0
#define BIT_MASK_RANDOM_GEN				0xffffff
#define BIT_RANDOM_GEN(x)				(((x) & BIT_MASK_RANDOM_GEN) << BIT_SHIFT_RANDOM_GEN)
#define BITS_RANDOM_GEN				(BIT_MASK_RANDOM_GEN << BIT_SHIFT_RANDOM_GEN)
#define BIT_CLEAR_RANDOM_GEN(x)			((x) & (~BITS_RANDOM_GEN))
#define BIT_GET_RANDOM_GEN(x)				(((x) >> BIT_SHIFT_RANDOM_GEN) & BIT_MASK_RANDOM_GEN)
#define BIT_SET_RANDOM_GEN(x, v)			(BIT_CLEAR_RANDOM_GEN(x) | BIT_RANDOM_GEN(v))


#define BIT_SHIFT_TXCMD_SEG_SEL			0
#define BIT_MASK_TXCMD_SEG_SEL				0xf
#define BIT_TXCMD_SEG_SEL(x)				(((x) & BIT_MASK_TXCMD_SEG_SEL) << BIT_SHIFT_TXCMD_SEG_SEL)
#define BITS_TXCMD_SEG_SEL				(BIT_MASK_TXCMD_SEG_SEL << BIT_SHIFT_TXCMD_SEG_SEL)
#define BIT_CLEAR_TXCMD_SEG_SEL(x)			((x) & (~BITS_TXCMD_SEG_SEL))
#define BIT_GET_TXCMD_SEG_SEL(x)			(((x) >> BIT_SHIFT_TXCMD_SEG_SEL) & BIT_MASK_TXCMD_SEG_SEL)
#define BIT_SET_TXCMD_SEG_SEL(x, v)			(BIT_CLEAR_TXCMD_SEG_SEL(x) | BIT_TXCMD_SEG_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TXCMD_NOA_SEL			(Offset 0x05CF) */

#define BIT_NOA_SEL					BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXCMD_NOA_SEL			(Offset 0x05CF) */


#define BIT_SHIFT_NOA_SEL_V2				4
#define BIT_MASK_NOA_SEL_V2				0x7
#define BIT_NOA_SEL_V2(x)				(((x) & BIT_MASK_NOA_SEL_V2) << BIT_SHIFT_NOA_SEL_V2)
#define BITS_NOA_SEL_V2				(BIT_MASK_NOA_SEL_V2 << BIT_SHIFT_NOA_SEL_V2)
#define BIT_CLEAR_NOA_SEL_V2(x)			((x) & (~BITS_NOA_SEL_V2))
#define BIT_GET_NOA_SEL_V2(x)				(((x) >> BIT_SHIFT_NOA_SEL_V2) & BIT_MASK_NOA_SEL_V2)
#define BIT_SET_NOA_SEL_V2(x, v)			(BIT_CLEAR_NOA_SEL_V2(x) | BIT_NOA_SEL_V2(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NOA_PARAM				(Offset 0x05E0) */


#define BIT_SHIFT_NOA_COUNT				(96 & CPU_OPT_WIDTH)
#define BIT_MASK_NOA_COUNT				0xff
#define BIT_NOA_COUNT(x)				(((x) & BIT_MASK_NOA_COUNT) << BIT_SHIFT_NOA_COUNT)
#define BITS_NOA_COUNT					(BIT_MASK_NOA_COUNT << BIT_SHIFT_NOA_COUNT)
#define BIT_CLEAR_NOA_COUNT(x)				((x) & (~BITS_NOA_COUNT))
#define BIT_GET_NOA_COUNT(x)				(((x) >> BIT_SHIFT_NOA_COUNT) & BIT_MASK_NOA_COUNT)
#define BIT_SET_NOA_COUNT(x, v)			(BIT_CLEAR_NOA_COUNT(x) | BIT_NOA_COUNT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NOA_PARAM				(Offset 0x05E0) */


#define BIT_SHIFT_NOA_DURATION				0
#define BIT_MASK_NOA_DURATION				0xffffffffL
#define BIT_NOA_DURATION(x)				(((x) & BIT_MASK_NOA_DURATION) << BIT_SHIFT_NOA_DURATION)
#define BITS_NOA_DURATION				(BIT_MASK_NOA_DURATION << BIT_SHIFT_NOA_DURATION)
#define BIT_CLEAR_NOA_DURATION(x)			((x) & (~BITS_NOA_DURATION))
#define BIT_GET_NOA_DURATION(x)			(((x) >> BIT_SHIFT_NOA_DURATION) & BIT_MASK_NOA_DURATION)
#define BIT_SET_NOA_DURATION(x, v)			(BIT_CLEAR_NOA_DURATION(x) | BIT_NOA_DURATION(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_NOA_PARAM				(Offset 0x05E0) */


#define BIT_SHIFT_NOA_DURATION_V1			0
#define BIT_MASK_NOA_DURATION_V1			0xffffffffL
#define BIT_NOA_DURATION_V1(x)				(((x) & BIT_MASK_NOA_DURATION_V1) << BIT_SHIFT_NOA_DURATION_V1)
#define BITS_NOA_DURATION_V1				(BIT_MASK_NOA_DURATION_V1 << BIT_SHIFT_NOA_DURATION_V1)
#define BIT_CLEAR_NOA_DURATION_V1(x)			((x) & (~BITS_NOA_DURATION_V1))
#define BIT_GET_NOA_DURATION_V1(x)			(((x) >> BIT_SHIFT_NOA_DURATION_V1) & BIT_MASK_NOA_DURATION_V1)
#define BIT_SET_NOA_DURATION_V1(x, v)			(BIT_CLEAR_NOA_DURATION_V1(x) | BIT_NOA_DURATION_V1(v))


/* 2 REG_NOA_PARAM_1				(Offset 0x05E4) */


#define BIT_SHIFT_NOA_INTERVAL_V1			0
#define BIT_MASK_NOA_INTERVAL_V1			0xffffffffL
#define BIT_NOA_INTERVAL_V1(x)				(((x) & BIT_MASK_NOA_INTERVAL_V1) << BIT_SHIFT_NOA_INTERVAL_V1)
#define BITS_NOA_INTERVAL_V1				(BIT_MASK_NOA_INTERVAL_V1 << BIT_SHIFT_NOA_INTERVAL_V1)
#define BIT_CLEAR_NOA_INTERVAL_V1(x)			((x) & (~BITS_NOA_INTERVAL_V1))
#define BIT_GET_NOA_INTERVAL_V1(x)			(((x) >> BIT_SHIFT_NOA_INTERVAL_V1) & BIT_MASK_NOA_INTERVAL_V1)
#define BIT_SET_NOA_INTERVAL_V1(x, v)			(BIT_CLEAR_NOA_INTERVAL_V1(x) | BIT_NOA_INTERVAL_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_DBG_INFO				(Offset 0x05E8) */


#define BIT_SHIFT_MU_DBG_INFO				0
#define BIT_MASK_MU_DBG_INFO				0xffffffffL
#define BIT_MU_DBG_INFO(x)				(((x) & BIT_MASK_MU_DBG_INFO) << BIT_SHIFT_MU_DBG_INFO)
#define BITS_MU_DBG_INFO				(BIT_MASK_MU_DBG_INFO << BIT_SHIFT_MU_DBG_INFO)
#define BIT_CLEAR_MU_DBG_INFO(x)			((x) & (~BITS_MU_DBG_INFO))
#define BIT_GET_MU_DBG_INFO(x)				(((x) >> BIT_SHIFT_MU_DBG_INFO) & BIT_MASK_MU_DBG_INFO)
#define BIT_SET_MU_DBG_INFO(x, v)			(BIT_CLEAR_MU_DBG_INFO(x) | BIT_MU_DBG_INFO(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_NOA_PARAM_2				(Offset 0x05E8) */


#define BIT_SHIFT_NOA_START_TIME_V1			0
#define BIT_MASK_NOA_START_TIME_V1			0xffffffffL
#define BIT_NOA_START_TIME_V1(x)			(((x) & BIT_MASK_NOA_START_TIME_V1) << BIT_SHIFT_NOA_START_TIME_V1)
#define BITS_NOA_START_TIME_V1				(BIT_MASK_NOA_START_TIME_V1 << BIT_SHIFT_NOA_START_TIME_V1)
#define BIT_CLEAR_NOA_START_TIME_V1(x)			((x) & (~BITS_NOA_START_TIME_V1))
#define BIT_GET_NOA_START_TIME_V1(x)			(((x) >> BIT_SHIFT_NOA_START_TIME_V1) & BIT_MASK_NOA_START_TIME_V1)
#define BIT_SET_NOA_START_TIME_V1(x, v)		(BIT_CLEAR_NOA_START_TIME_V1(x) | BIT_NOA_START_TIME_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_DBG_INFO_1			(Offset 0x05EC) */


#define BIT_SHIFT_MU_DBG_INFO_1			0
#define BIT_MASK_MU_DBG_INFO_1				0xffffffffL
#define BIT_MU_DBG_INFO_1(x)				(((x) & BIT_MASK_MU_DBG_INFO_1) << BIT_SHIFT_MU_DBG_INFO_1)
#define BITS_MU_DBG_INFO_1				(BIT_MASK_MU_DBG_INFO_1 << BIT_SHIFT_MU_DBG_INFO_1)
#define BIT_CLEAR_MU_DBG_INFO_1(x)			((x) & (~BITS_MU_DBG_INFO_1))
#define BIT_GET_MU_DBG_INFO_1(x)			(((x) >> BIT_SHIFT_MU_DBG_INFO_1) & BIT_MASK_MU_DBG_INFO_1)
#define BIT_SET_MU_DBG_INFO_1(x, v)			(BIT_CLEAR_MU_DBG_INFO_1(x) | BIT_MU_DBG_INFO_1(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_NOA_PARAM_3				(Offset 0x05EC) */


#define BIT_SHIFT_NOA_COUNT_V1				0
#define BIT_MASK_NOA_COUNT_V1				0xffffffffL
#define BIT_NOA_COUNT_V1(x)				(((x) & BIT_MASK_NOA_COUNT_V1) << BIT_SHIFT_NOA_COUNT_V1)
#define BITS_NOA_COUNT_V1				(BIT_MASK_NOA_COUNT_V1 << BIT_SHIFT_NOA_COUNT_V1)
#define BIT_CLEAR_NOA_COUNT_V1(x)			((x) & (~BITS_NOA_COUNT_V1))
#define BIT_GET_NOA_COUNT_V1(x)			(((x) >> BIT_SHIFT_NOA_COUNT_V1) & BIT_MASK_NOA_COUNT_V1)
#define BIT_SET_NOA_COUNT_V1(x, v)			(BIT_CLEAR_NOA_COUNT_V1(x) | BIT_NOA_COUNT_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NOA_SUBIE				(Offset 0x05ED) */

#define BIT_MORE_NOA_DESC				BIT(19)
#define BIT_NOA_DESC1_VALID				BIT(18)
#define BIT_NOA_DESC0_VALID				BIT(17)
#define BIT_NOA_HEAD_VALID				BIT(16)
#define BIT_NOA_OPP_PS					BIT(15)

#define BIT_SHIFT_NOA_CTW				8
#define BIT_MASK_NOA_CTW				0x7f
#define BIT_NOA_CTW(x)					(((x) & BIT_MASK_NOA_CTW) << BIT_SHIFT_NOA_CTW)
#define BITS_NOA_CTW					(BIT_MASK_NOA_CTW << BIT_SHIFT_NOA_CTW)
#define BIT_CLEAR_NOA_CTW(x)				((x) & (~BITS_NOA_CTW))
#define BIT_GET_NOA_CTW(x)				(((x) >> BIT_SHIFT_NOA_CTW) & BIT_MASK_NOA_CTW)
#define BIT_SET_NOA_CTW(x, v)				(BIT_CLEAR_NOA_CTW(x) | BIT_NOA_CTW(v))


#define BIT_SHIFT_NOA_INDEX				0
#define BIT_MASK_NOA_INDEX				0xff
#define BIT_NOA_INDEX(x)				(((x) & BIT_MASK_NOA_INDEX) << BIT_SHIFT_NOA_INDEX)
#define BITS_NOA_INDEX					(BIT_MASK_NOA_INDEX << BIT_SHIFT_NOA_INDEX)
#define BIT_CLEAR_NOA_INDEX(x)				((x) & (~BITS_NOA_INDEX))
#define BIT_GET_NOA_INDEX(x)				(((x) >> BIT_SHIFT_NOA_INDEX) & BIT_MASK_NOA_INDEX)
#define BIT_SET_NOA_INDEX(x, v)			(BIT_CLEAR_NOA_INDEX(x) | BIT_NOA_INDEX(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2P_RST				(Offset 0x05F0) */

#define BIT_P2P2_PWR_RST1				BIT(5)
#define BIT_P2P2_PWR_RST0				BIT(4)
#define BIT_P2P1_PWR_RST1				BIT(3)
#define BIT_P2P1_PWR_RST0				BIT(2)
#define BIT_P2P_PWR_RST1_V1				BIT(1)
#define BIT_P2P_PWR_RST0_V1				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SCH_DBG_SEL				(Offset 0x05F0) */


#define BIT_SHIFT_SCH_DBG_SEL				0
#define BIT_MASK_SCH_DBG_SEL				0xff
#define BIT_SCH_DBG_SEL(x)				(((x) & BIT_MASK_SCH_DBG_SEL) << BIT_SHIFT_SCH_DBG_SEL)
#define BITS_SCH_DBG_SEL				(BIT_MASK_SCH_DBG_SEL << BIT_SHIFT_SCH_DBG_SEL)
#define BIT_CLEAR_SCH_DBG_SEL(x)			((x) & (~BITS_SCH_DBG_SEL))
#define BIT_GET_SCH_DBG_SEL(x)				(((x) >> BIT_SHIFT_SCH_DBG_SEL) & BIT_MASK_SCH_DBG_SEL)
#define BIT_SET_SCH_DBG_SEL(x, v)			(BIT_CLEAR_SCH_DBG_SEL(x) | BIT_SCH_DBG_SEL(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_MAC_STOP_CPUMGQ				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_SYNC_TSF_NOW				BIT(2)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_SYNC_CLI_ONCE_RIGHT_NOW			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_EN_P2P_CTWINDOW				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_SYNC_CLI					BIT(1)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_SYNC_CLI_ONCE_BY_TBTT			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SCHEDULER_RST			(Offset 0x05F1) */

#define BIT_SCHEDULER_RST_V1				BIT(0)
#define BIT_EN_P2P_BCNQ_AREA				BIT(0)

#define BIT_SHIFT_EARLY_128US				0
#define BIT_MASK_EARLY_128US				0x7
#define BIT_EARLY_128US(x)				(((x) & BIT_MASK_EARLY_128US) << BIT_SHIFT_EARLY_128US)
#define BITS_EARLY_128US				(BIT_MASK_EARLY_128US << BIT_SHIFT_EARLY_128US)
#define BIT_CLEAR_EARLY_128US(x)			((x) & (~BITS_EARLY_128US))
#define BIT_GET_EARLY_128US(x)				(((x) >> BIT_SHIFT_EARLY_128US) & BIT_MASK_EARLY_128US)
#define BIT_SET_EARLY_128US(x, v)			(BIT_CLEAR_EARLY_128US(x) | BIT_EARLY_128US(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_DBG_ERR_FLAG			(Offset 0x05F2) */

#define BIT_BCN_PORTID_ERR				BIT(2)

#define BIT_SHIFT_MU_DBG_ERR_FLAG			0
#define BIT_MASK_MU_DBG_ERR_FLAG			0x3
#define BIT_MU_DBG_ERR_FLAG(x)				(((x) & BIT_MASK_MU_DBG_ERR_FLAG) << BIT_SHIFT_MU_DBG_ERR_FLAG)
#define BITS_MU_DBG_ERR_FLAG				(BIT_MASK_MU_DBG_ERR_FLAG << BIT_SHIFT_MU_DBG_ERR_FLAG)
#define BIT_CLEAR_MU_DBG_ERR_FLAG(x)			((x) & (~BITS_MU_DBG_ERR_FLAG))
#define BIT_GET_MU_DBG_ERR_FLAG(x)			(((x) >> BIT_SHIFT_MU_DBG_ERR_FLAG) & BIT_MASK_MU_DBG_ERR_FLAG)
#define BIT_SET_MU_DBG_ERR_FLAG(x, v)			(BIT_CLEAR_MU_DBG_ERR_FLAG(x) | BIT_MU_DBG_ERR_FLAG(v))


/* 2 REG_TX_ERR_RECOVERY_RST			(Offset 0x05F3) */


#define BIT_SHIFT_ERR_RECOVER_CNT			4
#define BIT_MASK_ERR_RECOVER_CNT			0xf
#define BIT_ERR_RECOVER_CNT(x)				(((x) & BIT_MASK_ERR_RECOVER_CNT) << BIT_SHIFT_ERR_RECOVER_CNT)
#define BITS_ERR_RECOVER_CNT				(BIT_MASK_ERR_RECOVER_CNT << BIT_SHIFT_ERR_RECOVER_CNT)
#define BIT_CLEAR_ERR_RECOVER_CNT(x)			((x) & (~BITS_ERR_RECOVER_CNT))
#define BIT_GET_ERR_RECOVER_CNT(x)			(((x) >> BIT_SHIFT_ERR_RECOVER_CNT) & BIT_MASK_ERR_RECOVER_CNT)
#define BIT_SET_ERR_RECOVER_CNT(x, v)			(BIT_CLEAR_ERR_RECOVER_CNT(x) | BIT_ERR_RECOVER_CNT(v))

#define BIT_RX_HANG_ERR				BIT(2)
#define BIT_TX_HANG_ERR				BIT(1)
#define BIT_TX_ERR_RECOVERY_RST			BIT(0)

/* 2 REG_SCH_DBG_VALUE			(Offset 0x05F4) */


#define BIT_SHIFT_SCH_DBG_VALUE			0
#define BIT_MASK_SCH_DBG_VALUE				0xffffffffL
#define BIT_SCH_DBG_VALUE(x)				(((x) & BIT_MASK_SCH_DBG_VALUE) << BIT_SHIFT_SCH_DBG_VALUE)
#define BITS_SCH_DBG_VALUE				(BIT_MASK_SCH_DBG_VALUE << BIT_SHIFT_SCH_DBG_VALUE)
#define BIT_CLEAR_SCH_DBG_VALUE(x)			((x) & (~BITS_SCH_DBG_VALUE))
#define BIT_GET_SCH_DBG_VALUE(x)			(((x) >> BIT_SHIFT_SCH_DBG_VALUE) & BIT_MASK_SCH_DBG_VALUE)
#define BIT_SET_SCH_DBG_VALUE(x, v)			(BIT_CLEAR_SCH_DBG_VALUE(x) | BIT_SCH_DBG_VALUE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SCH_TXCMD				(Offset 0x05F8) */

#define BIT_DIS_RX_BSSID_FIT				BIT(6)
#define BIT_DIS_TSF_UDT				BIT(4)

#define BIT_SHIFT_SCH_TXCMD				0
#define BIT_MASK_SCH_TXCMD				0xffffffffL
#define BIT_SCH_TXCMD(x)				(((x) & BIT_MASK_SCH_TXCMD) << BIT_SHIFT_SCH_TXCMD)
#define BITS_SCH_TXCMD					(BIT_MASK_SCH_TXCMD << BIT_SHIFT_SCH_TXCMD)
#define BIT_CLEAR_SCH_TXCMD(x)				((x) & (~BITS_SCH_TXCMD))
#define BIT_GET_SCH_TXCMD(x)				(((x) >> BIT_SHIFT_SCH_TXCMD) & BIT_MASK_SCH_TXCMD)
#define BIT_SET_SCH_TXCMD(x, v)			(BIT_CLEAR_SCH_TXCMD(x) | BIT_SCH_TXCMD(v))


#define BIT_SHIFT_TBTT_PROHIBIT_SETUP			0
#define BIT_MASK_TBTT_PROHIBIT_SETUP			0xf
#define BIT_TBTT_PROHIBIT_SETUP(x)			(((x) & BIT_MASK_TBTT_PROHIBIT_SETUP) << BIT_SHIFT_TBTT_PROHIBIT_SETUP)
#define BITS_TBTT_PROHIBIT_SETUP			(BIT_MASK_TBTT_PROHIBIT_SETUP << BIT_SHIFT_TBTT_PROHIBIT_SETUP)
#define BIT_CLEAR_TBTT_PROHIBIT_SETUP(x)		((x) & (~BITS_TBTT_PROHIBIT_SETUP))
#define BIT_GET_TBTT_PROHIBIT_SETUP(x)			(((x) >> BIT_SHIFT_TBTT_PROHIBIT_SETUP) & BIT_MASK_TBTT_PROHIBIT_SETUP)
#define BIT_SET_TBTT_PROHIBIT_SETUP(x, v)		(BIT_CLEAR_TBTT_PROHIBIT_SETUP(x) | BIT_TBTT_PROHIBIT_SETUP(v))


#define BIT_SHIFT_DRVERLYITV				0
#define BIT_MASK_DRVERLYITV				0xff
#define BIT_DRVERLYITV(x)				(((x) & BIT_MASK_DRVERLYITV) << BIT_SHIFT_DRVERLYITV)
#define BITS_DRVERLYITV				(BIT_MASK_DRVERLYITV << BIT_SHIFT_DRVERLYITV)
#define BIT_CLEAR_DRVERLYITV(x)			((x) & (~BITS_DRVERLYITV))
#define BIT_GET_DRVERLYITV(x)				(((x) >> BIT_SHIFT_DRVERLYITV) & BIT_MASK_DRVERLYITV)
#define BIT_SET_DRVERLYITV(x, v)			(BIT_CLEAR_DRVERLYITV(x) | BIT_DRVERLYITV(v))


#define BIT_SHIFT_BCNDMATIM				0
#define BIT_MASK_BCNDMATIM				0xff
#define BIT_BCNDMATIM(x)				(((x) & BIT_MASK_BCNDMATIM) << BIT_SHIFT_BCNDMATIM)
#define BITS_BCNDMATIM					(BIT_MASK_BCNDMATIM << BIT_SHIFT_BCNDMATIM)
#define BIT_CLEAR_BCNDMATIM(x)				((x) & (~BITS_BCNDMATIM))
#define BIT_GET_BCNDMATIM(x)				(((x) >> BIT_SHIFT_BCNDMATIM) & BIT_MASK_BCNDMATIM)
#define BIT_SET_BCNDMATIM(x, v)			(BIT_CLEAR_BCNDMATIM(x) | BIT_BCNDMATIM(v))


#define BIT_SHIFT_CTWND				0
#define BIT_MASK_CTWND					0xff
#define BIT_CTWND(x)					(((x) & BIT_MASK_CTWND) << BIT_SHIFT_CTWND)
#define BITS_CTWND					(BIT_MASK_CTWND << BIT_SHIFT_CTWND)
#define BIT_CLEAR_CTWND(x)				((x) & (~BITS_CTWND))
#define BIT_GET_CTWND(x)				(((x) >> BIT_SHIFT_CTWND) & BIT_MASK_CTWND)
#define BIT_SET_CTWND(x, v)				(BIT_CLEAR_CTWND(x) | BIT_CTWND(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_CR				(Offset 0x0600) */

#define BIT_APSDOFF_STATUS				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_CR				(Offset 0x0600) */

#define BIT_APSDOFF					BIT(6)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_CR				(Offset 0x0600) */

#define BIT_STANDBY_STATUS				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_CR				(Offset 0x0600) */

#define BIT_IC_MACPHY_M				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */

#define BIT_FWEN					BIT(7)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */

#define BIT_FWRX_EN					BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */

#define BIT_PHYSTS_PKT_CTRL				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */

#define BIT_FWFULL_TO_RXFF_EN				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_FWPKT_CR			(Offset 0x0601) */

#define BIT_APPHDR_MIDSRCH_FAIL			BIT(4)
#define BIT_FWPARSING_EN				BIT(3)

#define BIT_SHIFT_APPEND_MHDR_LEN			0
#define BIT_MASK_APPEND_MHDR_LEN			0x7
#define BIT_APPEND_MHDR_LEN(x)				(((x) & BIT_MASK_APPEND_MHDR_LEN) << BIT_SHIFT_APPEND_MHDR_LEN)
#define BITS_APPEND_MHDR_LEN				(BIT_MASK_APPEND_MHDR_LEN << BIT_SHIFT_APPEND_MHDR_LEN)
#define BIT_CLEAR_APPEND_MHDR_LEN(x)			((x) & (~BITS_APPEND_MHDR_LEN))
#define BIT_GET_APPEND_MHDR_LEN(x)			(((x) >> BIT_SHIFT_APPEND_MHDR_LEN) & BIT_MASK_APPEND_MHDR_LEN)
#define BIT_SET_APPEND_MHDR_LEN(x, v)			(BIT_CLEAR_APPEND_MHDR_LEN(x) | BIT_APPEND_MHDR_LEN(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BWOPMODE				(Offset 0x0603) */

#define BIT_WMAC_20MHZBW				BIT(2)
#define BIT_WMAC_M11J					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_EN_RTS_ADDR				BIT(31)
#define BIT_WMAC_DISABLE_CCK				BIT(30)
#define BIT_WMAC_RAW_LEN				BIT(29)
#define BIT_WMAC_NOTX_IN_RXNDP				BIT(28)
#define BIT_WMAC_EN_EOF				BIT(27)
#define BIT_WMAC_BF_SEL				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_ANTMODE_SEL				BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCRPWRMGT_HWCTL			BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_RXLEN_SEL					BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCRPWRMGT_HWCTL_EN			BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_SMOOTH_VAL				BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_EN_SCRAM_INC				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_UNDERFLOWEN_CMPLEN_SEL			BIT(21)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */


#define BIT_SHIFT_TSFT_CMP				20
#define BIT_MASK_TSFT_CMP				0xf
#define BIT_TSFT_CMP(x)				(((x) & BIT_MASK_TSFT_CMP) << BIT_SHIFT_TSFT_CMP)
#define BITS_TSFT_CMP					(BIT_MASK_TSFT_CMP << BIT_SHIFT_TSFT_CMP)
#define BIT_CLEAR_TSFT_CMP(x)				((x) & (~BITS_TSFT_CMP))
#define BIT_GET_TSFT_CMP(x)				(((x) >> BIT_SHIFT_TSFT_CMP) & BIT_MASK_TSFT_CMP)
#define BIT_SET_TSFT_CMP(x, v)				(BIT_CLEAR_TSFT_CMP(x) | BIT_TSFT_CMP(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_FETCH_MPDU_AFTER_WSEC_RDY			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCR_EN_20MST				BIT(19)
#define BIT_WMAC_DIS_SIGTA				BIT(18)
#define BIT_WMAC_DIS_A2B0				BIT(17)
#define BIT_WMAC_MSK_SIGBCRC				BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCR_ERRSTEN_3				BIT(15)
#define BIT_WMAC_TCR_ERRSTEN_2				BIT(14)
#define BIT_WMAC_TCR_ERRSTEN_1				BIT(13)
#define BIT_WMAC_TCR_ERRSTEN_0				BIT(12)
#define BIT_WMAC_TCR_TXSK_PERPKT			BIT(11)
#define BIT_ICV					BIT(10)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_CFEND_FORMAT				BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_CRC					BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_PWRBIT_OW_EN				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCRPWRMGT_HWDATA_EN			BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_PWR_ST					BIT(6)
#define BIT_WMAC_TCR_UPD_TIMIE				BIT(5)
#define BIT_WMAC_TCR_UPD_HGQMD				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_VHTSIGA1_TXPS				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_PAD_SEL					BIT(2)
#define BIT_DIS_GCLK					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_TSFRST					BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_R_WMAC_TCR_LSIG				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TCR					(Offset 0x0604) */

#define BIT_WMAC_TCRPWRMGT_HWACT_EN			BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_APP_FCS					BIT(31)
#define BIT_APP_MIC					BIT(30)
#define BIT_APP_ICV					BIT(29)
#define BIT_APP_PHYSTS					BIT(28)
#define BIT_APP_BASSN					BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_VHT_DACK					BIT(26)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_TCPOFLD_EN					BIT(25)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_ENMBID					BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_ENADDRCAM					BIT(24)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_LSIGEN					BIT(23)
#define BIT_MFBEN					BIT(22)
#define BIT_DISCHKPPDLLEN				BIT(21)
#define BIT_PKTCTL_DLEN				BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_DISGCLK					BIT(19)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_TIM_PARSER_EN				BIT(18)
#define BIT_BC_MD_EN					BIT(17)
#define BIT_UC_MD_EN					BIT(16)
#define BIT_RXSK_PERPKT				BIT(15)
#define BIT_HTC_LOC_CTRL				BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_AMF					BIT(13)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_CHK_PREVTCA2				BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_ACK_WITH_CBSSID_DATA_OPTION		BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_ACF					BIT(12)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_RPFM_CAM_ENABLE				BIT(12)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_ADF					BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_TA_BCN					BIT(11)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RCR					(Offset 0x0608) */

#define BIT_DISDECMYPKT				BIT(10)
#define BIT_AICV					BIT(9)
#define BIT_ACRC32					BIT(8)
#define BIT_CBSSID_BCN					BIT(7)
#define BIT_CBSSID_DATA				BIT(6)
#define BIT_APWRMGT					BIT(5)
#define BIT_ADD3					BIT(4)
#define BIT_AB						BIT(3)
#define BIT_AM						BIT(2)
#define BIT_APM					BIT(1)
#define BIT_AAP					BIT(0)

/* 2 REG_RX_PKT_LIMIT			(Offset 0x060C) */


#define BIT_SHIFT_RXPKTLMT				0
#define BIT_MASK_RXPKTLMT				0x3f
#define BIT_RXPKTLMT(x)				(((x) & BIT_MASK_RXPKTLMT) << BIT_SHIFT_RXPKTLMT)
#define BITS_RXPKTLMT					(BIT_MASK_RXPKTLMT << BIT_SHIFT_RXPKTLMT)
#define BIT_CLEAR_RXPKTLMT(x)				((x) & (~BITS_RXPKTLMT))
#define BIT_GET_RXPKTLMT(x)				(((x) >> BIT_SHIFT_RXPKTLMT) & BIT_MASK_RXPKTLMT)
#define BIT_SET_RXPKTLMT(x, v)				(BIT_CLEAR_RXPKTLMT(x) | BIT_RXPKTLMT(v))


/* 2 REG_RX_DLK_TIME				(Offset 0x060D) */


#define BIT_SHIFT_RX_DLK_TIME				0
#define BIT_MASK_RX_DLK_TIME				0xff
#define BIT_RX_DLK_TIME(x)				(((x) & BIT_MASK_RX_DLK_TIME) << BIT_SHIFT_RX_DLK_TIME)
#define BITS_RX_DLK_TIME				(BIT_MASK_RX_DLK_TIME << BIT_SHIFT_RX_DLK_TIME)
#define BIT_CLEAR_RX_DLK_TIME(x)			((x) & (~BITS_RX_DLK_TIME))
#define BIT_GET_RX_DLK_TIME(x)				(((x) >> BIT_SHIFT_RX_DLK_TIME) & BIT_MASK_RX_DLK_TIME)
#define BIT_SET_RX_DLK_TIME(x, v)			(BIT_CLEAR_RX_DLK_TIME(x) | BIT_RX_DLK_TIME(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */

#define BIT_APP_PHYSTS_PER_SUBMPDU			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */

#define BIT_PHYSTS_PER_PKT_MODE			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */

#define BIT_APP_MH_SHIFT_VAL				BIT(6)
#define BIT_WMAC_ENSHIFT				BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */


#define BIT_SHIFT_DRVINFO_SZ				0
#define BIT_MASK_DRVINFO_SZ				0xff
#define BIT_DRVINFO_SZ(x)				(((x) & BIT_MASK_DRVINFO_SZ) << BIT_SHIFT_DRVINFO_SZ)
#define BITS_DRVINFO_SZ				(BIT_MASK_DRVINFO_SZ << BIT_SHIFT_DRVINFO_SZ)
#define BIT_CLEAR_DRVINFO_SZ(x)			((x) & (~BITS_DRVINFO_SZ))
#define BIT_GET_DRVINFO_SZ(x)				(((x) >> BIT_SHIFT_DRVINFO_SZ) & BIT_MASK_DRVINFO_SZ)
#define BIT_SET_DRVINFO_SZ(x, v)			(BIT_CLEAR_DRVINFO_SZ(x) | BIT_DRVINFO_SZ(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_DRVINFO_SZ			(Offset 0x060F) */


#define BIT_SHIFT_DRVINFO_SZ_V1			0
#define BIT_MASK_DRVINFO_SZ_V1				0xf
#define BIT_DRVINFO_SZ_V1(x)				(((x) & BIT_MASK_DRVINFO_SZ_V1) << BIT_SHIFT_DRVINFO_SZ_V1)
#define BITS_DRVINFO_SZ_V1				(BIT_MASK_DRVINFO_SZ_V1 << BIT_SHIFT_DRVINFO_SZ_V1)
#define BIT_CLEAR_DRVINFO_SZ_V1(x)			((x) & (~BITS_DRVINFO_SZ_V1))
#define BIT_GET_DRVINFO_SZ_V1(x)			(((x) >> BIT_SHIFT_DRVINFO_SZ_V1) & BIT_MASK_DRVINFO_SZ_V1)
#define BIT_SET_DRVINFO_SZ_V1(x, v)			(BIT_CLEAR_DRVINFO_SZ_V1(x) | BIT_DRVINFO_SZ_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID				(Offset 0x0610) */


#define BIT_SHIFT_MACID				0
#define BIT_MASK_MACID					0xffffffffffffL
#define BIT_MACID(x)					(((x) & BIT_MASK_MACID) << BIT_SHIFT_MACID)
#define BITS_MACID					(BIT_MASK_MACID << BIT_SHIFT_MACID)
#define BIT_CLEAR_MACID(x)				((x) & (~BITS_MACID))
#define BIT_GET_MACID(x)				(((x) >> BIT_SHIFT_MACID) & BIT_MASK_MACID)
#define BIT_SET_MACID(x, v)				(BIT_CLEAR_MACID(x) | BIT_MACID(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MACID				(Offset 0x0610) */


#define BIT_SHIFT_MACID_V1				0
#define BIT_MASK_MACID_V1				0xffffffffL
#define BIT_MACID_V1(x)				(((x) & BIT_MASK_MACID_V1) << BIT_SHIFT_MACID_V1)
#define BITS_MACID_V1					(BIT_MASK_MACID_V1 << BIT_SHIFT_MACID_V1)
#define BIT_CLEAR_MACID_V1(x)				((x) & (~BITS_MACID_V1))
#define BIT_GET_MACID_V1(x)				(((x) >> BIT_SHIFT_MACID_V1) & BIT_MASK_MACID_V1)
#define BIT_SET_MACID_V1(x, v)				(BIT_CLEAR_MACID_V1(x) | BIT_MACID_V1(v))


/* 2 REG_MACID_H				(Offset 0x0614) */


#define BIT_SHIFT_MACID_H_V1				0
#define BIT_MASK_MACID_H_V1				0xffff
#define BIT_MACID_H_V1(x)				(((x) & BIT_MASK_MACID_H_V1) << BIT_SHIFT_MACID_H_V1)
#define BITS_MACID_H_V1				(BIT_MASK_MACID_H_V1 << BIT_SHIFT_MACID_H_V1)
#define BIT_CLEAR_MACID_H_V1(x)			((x) & (~BITS_MACID_H_V1))
#define BIT_GET_MACID_H_V1(x)				(((x) >> BIT_SHIFT_MACID_H_V1) & BIT_MASK_MACID_H_V1)
#define BIT_SET_MACID_H_V1(x, v)			(BIT_CLEAR_MACID_H_V1(x) | BIT_MACID_H_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BSSID				(Offset 0x0618) */


#define BIT_SHIFT_BSSID				0
#define BIT_MASK_BSSID					0xffffffffffffL
#define BIT_BSSID(x)					(((x) & BIT_MASK_BSSID) << BIT_SHIFT_BSSID)
#define BITS_BSSID					(BIT_MASK_BSSID << BIT_SHIFT_BSSID)
#define BIT_CLEAR_BSSID(x)				((x) & (~BITS_BSSID))
#define BIT_GET_BSSID(x)				(((x) >> BIT_SHIFT_BSSID) & BIT_MASK_BSSID)
#define BIT_SET_BSSID(x, v)				(BIT_CLEAR_BSSID(x) | BIT_BSSID(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID				(Offset 0x0618) */


#define BIT_SHIFT_BSSID_V1				0
#define BIT_MASK_BSSID_V1				0xffffffffL
#define BIT_BSSID_V1(x)				(((x) & BIT_MASK_BSSID_V1) << BIT_SHIFT_BSSID_V1)
#define BITS_BSSID_V1					(BIT_MASK_BSSID_V1 << BIT_SHIFT_BSSID_V1)
#define BIT_CLEAR_BSSID_V1(x)				((x) & (~BITS_BSSID_V1))
#define BIT_GET_BSSID_V1(x)				(((x) >> BIT_SHIFT_BSSID_V1) & BIT_MASK_BSSID_V1)
#define BIT_SET_BSSID_V1(x, v)				(BIT_CLEAR_BSSID_V1(x) | BIT_BSSID_V1(v))


#define BIT_SHIFT_BSSID_H_V1				0
#define BIT_MASK_BSSID_H_V1				0xffff
#define BIT_BSSID_H_V1(x)				(((x) & BIT_MASK_BSSID_H_V1) << BIT_SHIFT_BSSID_H_V1)
#define BITS_BSSID_H_V1				(BIT_MASK_BSSID_H_V1 << BIT_SHIFT_BSSID_H_V1)
#define BIT_CLEAR_BSSID_H_V1(x)			((x) & (~BITS_BSSID_H_V1))
#define BIT_GET_BSSID_H_V1(x)				(((x) >> BIT_SHIFT_BSSID_H_V1) & BIT_MASK_BSSID_H_V1)
#define BIT_SET_BSSID_H_V1(x, v)			(BIT_CLEAR_BSSID_H_V1(x) | BIT_BSSID_H_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MAR					(Offset 0x0620) */


#define BIT_SHIFT_MAR					0
#define BIT_MASK_MAR					0xffffffffffffffffL
#define BIT_MAR(x)					(((x) & BIT_MASK_MAR) << BIT_SHIFT_MAR)
#define BITS_MAR					(BIT_MASK_MAR << BIT_SHIFT_MAR)
#define BIT_CLEAR_MAR(x)				((x) & (~BITS_MAR))
#define BIT_GET_MAR(x)					(((x) >> BIT_SHIFT_MAR) & BIT_MASK_MAR)
#define BIT_SET_MAR(x, v)				(BIT_CLEAR_MAR(x) | BIT_MAR(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MAR					(Offset 0x0620) */


#define BIT_SHIFT_MAR_V1				0
#define BIT_MASK_MAR_V1				0xffffffffL
#define BIT_MAR_V1(x)					(((x) & BIT_MASK_MAR_V1) << BIT_SHIFT_MAR_V1)
#define BITS_MAR_V1					(BIT_MASK_MAR_V1 << BIT_SHIFT_MAR_V1)
#define BIT_CLEAR_MAR_V1(x)				((x) & (~BITS_MAR_V1))
#define BIT_GET_MAR_V1(x)				(((x) >> BIT_SHIFT_MAR_V1) & BIT_MASK_MAR_V1)
#define BIT_SET_MAR_V1(x, v)				(BIT_CLEAR_MAR_V1(x) | BIT_MAR_V1(v))


/* 2 REG_MAR_H				(Offset 0x0624) */


#define BIT_SHIFT_MAR_H_V1				0
#define BIT_MASK_MAR_H_V1				0xffffffffL
#define BIT_MAR_H_V1(x)				(((x) & BIT_MASK_MAR_H_V1) << BIT_SHIFT_MAR_H_V1)
#define BITS_MAR_H_V1					(BIT_MASK_MAR_H_V1 << BIT_SHIFT_MAR_H_V1)
#define BIT_CLEAR_MAR_H_V1(x)				((x) & (~BITS_MAR_H_V1))
#define BIT_GET_MAR_H_V1(x)				(((x) >> BIT_SHIFT_MAR_H_V1) & BIT_MASK_MAR_H_V1)
#define BIT_SET_MAR_H_V1(x, v)				(BIT_CLEAR_MAR_H_V1(x) | BIT_MAR_H_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_1			(Offset 0x0628) */


#define BIT_SHIFT_MBIDCAM_RWDATA_L			0
#define BIT_MASK_MBIDCAM_RWDATA_L			0xffffffffL
#define BIT_MBIDCAM_RWDATA_L(x)			(((x) & BIT_MASK_MBIDCAM_RWDATA_L) << BIT_SHIFT_MBIDCAM_RWDATA_L)
#define BITS_MBIDCAM_RWDATA_L				(BIT_MASK_MBIDCAM_RWDATA_L << BIT_SHIFT_MBIDCAM_RWDATA_L)
#define BIT_CLEAR_MBIDCAM_RWDATA_L(x)			((x) & (~BITS_MBIDCAM_RWDATA_L))
#define BIT_GET_MBIDCAM_RWDATA_L(x)			(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_L) & BIT_MASK_MBIDCAM_RWDATA_L)
#define BIT_SET_MBIDCAM_RWDATA_L(x, v)			(BIT_CLEAR_MBIDCAM_RWDATA_L(x) | BIT_MBIDCAM_RWDATA_L(v))


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */

#define BIT_MBIDCAM_POLL				BIT(31)
#define BIT_MBIDCAM_WT_EN				BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */


#define BIT_SHIFT_MBIDCAM_ADDR				24
#define BIT_MASK_MBIDCAM_ADDR				0x1f
#define BIT_MBIDCAM_ADDR(x)				(((x) & BIT_MASK_MBIDCAM_ADDR) << BIT_SHIFT_MBIDCAM_ADDR)
#define BITS_MBIDCAM_ADDR				(BIT_MASK_MBIDCAM_ADDR << BIT_SHIFT_MBIDCAM_ADDR)
#define BIT_CLEAR_MBIDCAM_ADDR(x)			((x) & (~BITS_MBIDCAM_ADDR))
#define BIT_GET_MBIDCAM_ADDR(x)			(((x) >> BIT_SHIFT_MBIDCAM_ADDR) & BIT_MASK_MBIDCAM_ADDR)
#define BIT_SET_MBIDCAM_ADDR(x, v)			(BIT_CLEAR_MBIDCAM_ADDR(x) | BIT_MBIDCAM_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */


#define BIT_SHIFT_MBIDCAM_ADDR_V1			24
#define BIT_MASK_MBIDCAM_ADDR_V1			0x3f
#define BIT_MBIDCAM_ADDR_V1(x)				(((x) & BIT_MASK_MBIDCAM_ADDR_V1) << BIT_SHIFT_MBIDCAM_ADDR_V1)
#define BITS_MBIDCAM_ADDR_V1				(BIT_MASK_MBIDCAM_ADDR_V1 << BIT_SHIFT_MBIDCAM_ADDR_V1)
#define BIT_CLEAR_MBIDCAM_ADDR_V1(x)			((x) & (~BITS_MBIDCAM_ADDR_V1))
#define BIT_GET_MBIDCAM_ADDR_V1(x)			(((x) >> BIT_SHIFT_MBIDCAM_ADDR_V1) & BIT_MASK_MBIDCAM_ADDR_V1)
#define BIT_SET_MBIDCAM_ADDR_V1(x, v)			(BIT_CLEAR_MBIDCAM_ADDR_V1(x) | BIT_MBIDCAM_ADDR_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */

#define BIT_MBIDCAM_VALID				BIT(23)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */


#define BIT_SHIFT_MBIDCAM_ADDR_V2			23
#define BIT_MASK_MBIDCAM_ADDR_V2			0x7f
#define BIT_MBIDCAM_ADDR_V2(x)				(((x) & BIT_MASK_MBIDCAM_ADDR_V2) << BIT_SHIFT_MBIDCAM_ADDR_V2)
#define BITS_MBIDCAM_ADDR_V2				(BIT_MASK_MBIDCAM_ADDR_V2 << BIT_SHIFT_MBIDCAM_ADDR_V2)
#define BIT_CLEAR_MBIDCAM_ADDR_V2(x)			((x) & (~BITS_MBIDCAM_ADDR_V2))
#define BIT_GET_MBIDCAM_ADDR_V2(x)			(((x) >> BIT_SHIFT_MBIDCAM_ADDR_V2) & BIT_MASK_MBIDCAM_ADDR_V2)
#define BIT_SET_MBIDCAM_ADDR_V2(x, v)			(BIT_CLEAR_MBIDCAM_ADDR_V2(x) | BIT_MBIDCAM_ADDR_V2(v))

#define BIT_MBIDCAM_RST				BIT(19)
#define BIT_MBIDCAM_VALID_V1				BIT(18)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */

#define BIT_LSIC_TXOP_EN				BIT(17)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */

#define BIT_CTS_EN					BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */

#define BIT_REPEAT_MODE_EN				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_DEBUG_SEL			(Offset 0x062C) */


#define BIT_SHIFT_WMAC_ARB_DBG_SEL			3
#define BIT_MASK_WMAC_ARB_DBG_SEL			0x3
#define BIT_WMAC_ARB_DBG_SEL(x)			(((x) & BIT_MASK_WMAC_ARB_DBG_SEL) << BIT_SHIFT_WMAC_ARB_DBG_SEL)
#define BITS_WMAC_ARB_DBG_SEL				(BIT_MASK_WMAC_ARB_DBG_SEL << BIT_SHIFT_WMAC_ARB_DBG_SEL)
#define BIT_CLEAR_WMAC_ARB_DBG_SEL(x)			((x) & (~BITS_WMAC_ARB_DBG_SEL))
#define BIT_GET_WMAC_ARB_DBG_SEL(x)			(((x) >> BIT_SHIFT_WMAC_ARB_DBG_SEL) & BIT_MASK_WMAC_ARB_DBG_SEL)
#define BIT_SET_WMAC_ARB_DBG_SEL(x, v)			(BIT_CLEAR_WMAC_ARB_DBG_SEL(x) | BIT_WMAC_ARB_DBG_SEL(v))

#define BIT_WMAC_EXT_DBG_SEL				BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MBIDCAMCFG_2			(Offset 0x062C) */


#define BIT_SHIFT_MBIDCAM_RWDATA_H			0
#define BIT_MASK_MBIDCAM_RWDATA_H			0xffff
#define BIT_MBIDCAM_RWDATA_H(x)			(((x) & BIT_MASK_MBIDCAM_RWDATA_H) << BIT_SHIFT_MBIDCAM_RWDATA_H)
#define BITS_MBIDCAM_RWDATA_H				(BIT_MASK_MBIDCAM_RWDATA_H << BIT_SHIFT_MBIDCAM_RWDATA_H)
#define BIT_CLEAR_MBIDCAM_RWDATA_H(x)			((x) & (~BITS_MBIDCAM_RWDATA_H))
#define BIT_GET_MBIDCAM_RWDATA_H(x)			(((x) >> BIT_SHIFT_MBIDCAM_RWDATA_H) & BIT_MASK_MBIDCAM_RWDATA_H)
#define BIT_SET_MBIDCAM_RWDATA_H(x, v)			(BIT_CLEAR_MBIDCAM_RWDATA_H(x) | BIT_MBIDCAM_RWDATA_H(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_DEBUG_SEL			(Offset 0x062C) */


#define BIT_SHIFT_WMAC_MU_DBGSEL_V1			0
#define BIT_MASK_WMAC_MU_DBGSEL_V1			0x3
#define BIT_WMAC_MU_DBGSEL_V1(x)			(((x) & BIT_MASK_WMAC_MU_DBGSEL_V1) << BIT_SHIFT_WMAC_MU_DBGSEL_V1)
#define BITS_WMAC_MU_DBGSEL_V1				(BIT_MASK_WMAC_MU_DBGSEL_V1 << BIT_SHIFT_WMAC_MU_DBGSEL_V1)
#define BIT_CLEAR_WMAC_MU_DBGSEL_V1(x)			((x) & (~BITS_WMAC_MU_DBGSEL_V1))
#define BIT_GET_WMAC_MU_DBGSEL_V1(x)			(((x) >> BIT_SHIFT_WMAC_MU_DBGSEL_V1) & BIT_MASK_WMAC_MU_DBGSEL_V1)
#define BIT_SET_WMAC_MU_DBGSEL_V1(x, v)		(BIT_CLEAR_WMAC_MU_DBGSEL_V1(x) | BIT_WMAC_MU_DBGSEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MCU_TEST_1				(Offset 0x0630) */


#define BIT_SHIFT_MCU_RSVD				0
#define BIT_MASK_MCU_RSVD				0xffffffffL
#define BIT_MCU_RSVD(x)				(((x) & BIT_MASK_MCU_RSVD) << BIT_SHIFT_MCU_RSVD)
#define BITS_MCU_RSVD					(BIT_MASK_MCU_RSVD << BIT_SHIFT_MCU_RSVD)
#define BIT_CLEAR_MCU_RSVD(x)				((x) & (~BITS_MCU_RSVD))
#define BIT_GET_MCU_RSVD(x)				(((x) >> BIT_SHIFT_MCU_RSVD) & BIT_MASK_MCU_RSVD)
#define BIT_SET_MCU_RSVD(x, v)				(BIT_CLEAR_MCU_RSVD(x) | BIT_MCU_RSVD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_TCR_TSFT_OFS			(Offset 0x0630) */


#define BIT_SHIFT_WMAC_TCR_TSFT_OFS			0
#define BIT_MASK_WMAC_TCR_TSFT_OFS			0xffff
#define BIT_WMAC_TCR_TSFT_OFS(x)			(((x) & BIT_MASK_WMAC_TCR_TSFT_OFS) << BIT_SHIFT_WMAC_TCR_TSFT_OFS)
#define BITS_WMAC_TCR_TSFT_OFS				(BIT_MASK_WMAC_TCR_TSFT_OFS << BIT_SHIFT_WMAC_TCR_TSFT_OFS)
#define BIT_CLEAR_WMAC_TCR_TSFT_OFS(x)			((x) & (~BITS_WMAC_TCR_TSFT_OFS))
#define BIT_GET_WMAC_TCR_TSFT_OFS(x)			(((x) >> BIT_SHIFT_WMAC_TCR_TSFT_OFS) & BIT_MASK_WMAC_TCR_TSFT_OFS)
#define BIT_SET_WMAC_TCR_TSFT_OFS(x, v)		(BIT_CLEAR_WMAC_TCR_TSFT_OFS(x) | BIT_WMAC_TCR_TSFT_OFS(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_UDF_THSD				(Offset 0x0632) */

#define BIT_UDF_THSD_V1				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_UDF_THSD				(Offset 0x0632) */


#define BIT_SHIFT_UDF_THSD				0
#define BIT_MASK_UDF_THSD				0xff
#define BIT_UDF_THSD(x)				(((x) & BIT_MASK_UDF_THSD) << BIT_SHIFT_UDF_THSD)
#define BITS_UDF_THSD					(BIT_MASK_UDF_THSD << BIT_SHIFT_UDF_THSD)
#define BIT_CLEAR_UDF_THSD(x)				((x) & (~BITS_UDF_THSD))
#define BIT_GET_UDF_THSD(x)				(((x) >> BIT_SHIFT_UDF_THSD) & BIT_MASK_UDF_THSD)
#define BIT_SET_UDF_THSD(x, v)				(BIT_CLEAR_UDF_THSD(x) | BIT_UDF_THSD(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_UDF_THSD				(Offset 0x0632) */


#define BIT_SHIFT_UDF_THSD_VALUE			0
#define BIT_MASK_UDF_THSD_VALUE			0x7f
#define BIT_UDF_THSD_VALUE(x)				(((x) & BIT_MASK_UDF_THSD_VALUE) << BIT_SHIFT_UDF_THSD_VALUE)
#define BITS_UDF_THSD_VALUE				(BIT_MASK_UDF_THSD_VALUE << BIT_SHIFT_UDF_THSD_VALUE)
#define BIT_CLEAR_UDF_THSD_VALUE(x)			((x) & (~BITS_UDF_THSD_VALUE))
#define BIT_GET_UDF_THSD_VALUE(x)			(((x) >> BIT_SHIFT_UDF_THSD_VALUE) & BIT_MASK_UDF_THSD_VALUE)
#define BIT_SET_UDF_THSD_VALUE(x, v)			(BIT_CLEAR_UDF_THSD_VALUE(x) | BIT_UDF_THSD_VALUE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ZLD_NUM				(Offset 0x0633) */


#define BIT_SHIFT_ZLD_NUM				0
#define BIT_MASK_ZLD_NUM				0xff
#define BIT_ZLD_NUM(x)					(((x) & BIT_MASK_ZLD_NUM) << BIT_SHIFT_ZLD_NUM)
#define BITS_ZLD_NUM					(BIT_MASK_ZLD_NUM << BIT_SHIFT_ZLD_NUM)
#define BIT_CLEAR_ZLD_NUM(x)				((x) & (~BITS_ZLD_NUM))
#define BIT_GET_ZLD_NUM(x)				(((x) >> BIT_SHIFT_ZLD_NUM) & BIT_MASK_ZLD_NUM)
#define BIT_SET_ZLD_NUM(x, v)				(BIT_CLEAR_ZLD_NUM(x) | BIT_ZLD_NUM(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MCU_TEST_2				(Offset 0x0634) */


#define BIT_SHIFT_MCU_RSVD_2				0
#define BIT_MASK_MCU_RSVD_2				0xffffffffL
#define BIT_MCU_RSVD_2(x)				(((x) & BIT_MASK_MCU_RSVD_2) << BIT_SHIFT_MCU_RSVD_2)
#define BITS_MCU_RSVD_2				(BIT_MASK_MCU_RSVD_2 << BIT_SHIFT_MCU_RSVD_2)
#define BIT_CLEAR_MCU_RSVD_2(x)			((x) & (~BITS_MCU_RSVD_2))
#define BIT_GET_MCU_RSVD_2(x)				(((x) >> BIT_SHIFT_MCU_RSVD_2) & BIT_MASK_MCU_RSVD_2)
#define BIT_SET_MCU_RSVD_2(x, v)			(BIT_CLEAR_MCU_RSVD_2(x) | BIT_MCU_RSVD_2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_STMP_THSD				(Offset 0x0634) */


#define BIT_SHIFT_STMP_THSD				0
#define BIT_MASK_STMP_THSD				0xff
#define BIT_STMP_THSD(x)				(((x) & BIT_MASK_STMP_THSD) << BIT_SHIFT_STMP_THSD)
#define BITS_STMP_THSD					(BIT_MASK_STMP_THSD << BIT_SHIFT_STMP_THSD)
#define BIT_CLEAR_STMP_THSD(x)				((x) & (~BITS_STMP_THSD))
#define BIT_GET_STMP_THSD(x)				(((x) >> BIT_SHIFT_STMP_THSD) & BIT_MASK_STMP_THSD)
#define BIT_SET_STMP_THSD(x, v)			(BIT_CLEAR_STMP_THSD(x) | BIT_STMP_THSD(v))


/* 2 REG_WMAC_TXTIMEOUT			(Offset 0x0635) */


#define BIT_SHIFT_WMAC_TXTIMEOUT			0
#define BIT_MASK_WMAC_TXTIMEOUT			0xff
#define BIT_WMAC_TXTIMEOUT(x)				(((x) & BIT_MASK_WMAC_TXTIMEOUT) << BIT_SHIFT_WMAC_TXTIMEOUT)
#define BITS_WMAC_TXTIMEOUT				(BIT_MASK_WMAC_TXTIMEOUT << BIT_SHIFT_WMAC_TXTIMEOUT)
#define BIT_CLEAR_WMAC_TXTIMEOUT(x)			((x) & (~BITS_WMAC_TXTIMEOUT))
#define BIT_GET_WMAC_TXTIMEOUT(x)			(((x) >> BIT_SHIFT_WMAC_TXTIMEOUT) & BIT_MASK_WMAC_TXTIMEOUT)
#define BIT_SET_WMAC_TXTIMEOUT(x, v)			(BIT_CLEAR_WMAC_TXTIMEOUT(x) | BIT_WMAC_TXTIMEOUT(v))


/* 2 REG_MCU_TEST_2_V1			(Offset 0x0636) */


#define BIT_SHIFT_MCU_RSVD_2_V1			0
#define BIT_MASK_MCU_RSVD_2_V1				0xffff
#define BIT_MCU_RSVD_2_V1(x)				(((x) & BIT_MASK_MCU_RSVD_2_V1) << BIT_SHIFT_MCU_RSVD_2_V1)
#define BITS_MCU_RSVD_2_V1				(BIT_MASK_MCU_RSVD_2_V1 << BIT_SHIFT_MCU_RSVD_2_V1)
#define BIT_CLEAR_MCU_RSVD_2_V1(x)			((x) & (~BITS_MCU_RSVD_2_V1))
#define BIT_GET_MCU_RSVD_2_V1(x)			(((x) >> BIT_SHIFT_MCU_RSVD_2_V1) & BIT_MASK_MCU_RSVD_2_V1)
#define BIT_SET_MCU_RSVD_2_V1(x, v)			(BIT_CLEAR_MCU_RSVD_2_V1(x) | BIT_MCU_RSVD_2_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USTIME_EDCA				(Offset 0x0638) */


#define BIT_SHIFT_USTIME_EDCA				0
#define BIT_MASK_USTIME_EDCA				0xff
#define BIT_USTIME_EDCA(x)				(((x) & BIT_MASK_USTIME_EDCA) << BIT_SHIFT_USTIME_EDCA)
#define BITS_USTIME_EDCA				(BIT_MASK_USTIME_EDCA << BIT_SHIFT_USTIME_EDCA)
#define BIT_CLEAR_USTIME_EDCA(x)			((x) & (~BITS_USTIME_EDCA))
#define BIT_GET_USTIME_EDCA(x)				(((x) >> BIT_SHIFT_USTIME_EDCA) & BIT_MASK_USTIME_EDCA)
#define BIT_SET_USTIME_EDCA(x, v)			(BIT_CLEAR_USTIME_EDCA(x) | BIT_USTIME_EDCA(v))


#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_USTIME_EDCA				(Offset 0x0638) */


#define BIT_SHIFT_USTIME_EDCA_V1			0
#define BIT_MASK_USTIME_EDCA_V1			0x1ff
#define BIT_USTIME_EDCA_V1(x)				(((x) & BIT_MASK_USTIME_EDCA_V1) << BIT_SHIFT_USTIME_EDCA_V1)
#define BITS_USTIME_EDCA_V1				(BIT_MASK_USTIME_EDCA_V1 << BIT_SHIFT_USTIME_EDCA_V1)
#define BIT_CLEAR_USTIME_EDCA_V1(x)			((x) & (~BITS_USTIME_EDCA_V1))
#define BIT_GET_USTIME_EDCA_V1(x)			(((x) >> BIT_SHIFT_USTIME_EDCA_V1) & BIT_MASK_USTIME_EDCA_V1)
#define BIT_SET_USTIME_EDCA_V1(x, v)			(BIT_CLEAR_USTIME_EDCA_V1(x) | BIT_USTIME_EDCA_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_ACKTO_CCK				(Offset 0x0639) */


#define BIT_SHIFT_ACKTO_CCK				0
#define BIT_MASK_ACKTO_CCK				0xff
#define BIT_ACKTO_CCK(x)				(((x) & BIT_MASK_ACKTO_CCK) << BIT_SHIFT_ACKTO_CCK)
#define BITS_ACKTO_CCK					(BIT_MASK_ACKTO_CCK << BIT_SHIFT_ACKTO_CCK)
#define BIT_CLEAR_ACKTO_CCK(x)				((x) & (~BITS_ACKTO_CCK))
#define BIT_GET_ACKTO_CCK(x)				(((x) >> BIT_SHIFT_ACKTO_CCK) & BIT_MASK_ACKTO_CCK)
#define BIT_SET_ACKTO_CCK(x, v)			(BIT_CLEAR_ACKTO_CCK(x) | BIT_ACKTO_CCK(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MAC_SPEC_SIFS			(Offset 0x063A) */


#define BIT_SHIFT_SPEC_SIFS_OFDM			8
#define BIT_MASK_SPEC_SIFS_OFDM			0xff
#define BIT_SPEC_SIFS_OFDM(x)				(((x) & BIT_MASK_SPEC_SIFS_OFDM) << BIT_SHIFT_SPEC_SIFS_OFDM)
#define BITS_SPEC_SIFS_OFDM				(BIT_MASK_SPEC_SIFS_OFDM << BIT_SHIFT_SPEC_SIFS_OFDM)
#define BIT_CLEAR_SPEC_SIFS_OFDM(x)			((x) & (~BITS_SPEC_SIFS_OFDM))
#define BIT_GET_SPEC_SIFS_OFDM(x)			(((x) >> BIT_SHIFT_SPEC_SIFS_OFDM) & BIT_MASK_SPEC_SIFS_OFDM)
#define BIT_SET_SPEC_SIFS_OFDM(x, v)			(BIT_CLEAR_SPEC_SIFS_OFDM(x) | BIT_SPEC_SIFS_OFDM(v))


#define BIT_SHIFT_SPEC_SIFS_CCK			0
#define BIT_MASK_SPEC_SIFS_CCK				0xff
#define BIT_SPEC_SIFS_CCK(x)				(((x) & BIT_MASK_SPEC_SIFS_CCK) << BIT_SHIFT_SPEC_SIFS_CCK)
#define BITS_SPEC_SIFS_CCK				(BIT_MASK_SPEC_SIFS_CCK << BIT_SHIFT_SPEC_SIFS_CCK)
#define BIT_CLEAR_SPEC_SIFS_CCK(x)			((x) & (~BITS_SPEC_SIFS_CCK))
#define BIT_GET_SPEC_SIFS_CCK(x)			(((x) >> BIT_SHIFT_SPEC_SIFS_CCK) & BIT_MASK_SPEC_SIFS_CCK)
#define BIT_SET_SPEC_SIFS_CCK(x, v)			(BIT_CLEAR_SPEC_SIFS_CCK(x) | BIT_SPEC_SIFS_CCK(v))


/* 2 REG_RESP_SIFS_CCK			(Offset 0x063C) */


#define BIT_SHIFT_SIFS_R2T_CCK				8
#define BIT_MASK_SIFS_R2T_CCK				0xff
#define BIT_SIFS_R2T_CCK(x)				(((x) & BIT_MASK_SIFS_R2T_CCK) << BIT_SHIFT_SIFS_R2T_CCK)
#define BITS_SIFS_R2T_CCK				(BIT_MASK_SIFS_R2T_CCK << BIT_SHIFT_SIFS_R2T_CCK)
#define BIT_CLEAR_SIFS_R2T_CCK(x)			((x) & (~BITS_SIFS_R2T_CCK))
#define BIT_GET_SIFS_R2T_CCK(x)			(((x) >> BIT_SHIFT_SIFS_R2T_CCK) & BIT_MASK_SIFS_R2T_CCK)
#define BIT_SET_SIFS_R2T_CCK(x, v)			(BIT_CLEAR_SIFS_R2T_CCK(x) | BIT_SIFS_R2T_CCK(v))


#define BIT_SHIFT_SIFS_T2T_CCK				0
#define BIT_MASK_SIFS_T2T_CCK				0xff
#define BIT_SIFS_T2T_CCK(x)				(((x) & BIT_MASK_SIFS_T2T_CCK) << BIT_SHIFT_SIFS_T2T_CCK)
#define BITS_SIFS_T2T_CCK				(BIT_MASK_SIFS_T2T_CCK << BIT_SHIFT_SIFS_T2T_CCK)
#define BIT_CLEAR_SIFS_T2T_CCK(x)			((x) & (~BITS_SIFS_T2T_CCK))
#define BIT_GET_SIFS_T2T_CCK(x)			(((x) >> BIT_SHIFT_SIFS_T2T_CCK) & BIT_MASK_SIFS_T2T_CCK)
#define BIT_SET_SIFS_T2T_CCK(x, v)			(BIT_CLEAR_SIFS_T2T_CCK(x) | BIT_SIFS_T2T_CCK(v))


/* 2 REG_RESP_SIFS_OFDM			(Offset 0x063E) */


#define BIT_SHIFT_SIFS_R2T_OFDM			8
#define BIT_MASK_SIFS_R2T_OFDM				0xff
#define BIT_SIFS_R2T_OFDM(x)				(((x) & BIT_MASK_SIFS_R2T_OFDM) << BIT_SHIFT_SIFS_R2T_OFDM)
#define BITS_SIFS_R2T_OFDM				(BIT_MASK_SIFS_R2T_OFDM << BIT_SHIFT_SIFS_R2T_OFDM)
#define BIT_CLEAR_SIFS_R2T_OFDM(x)			((x) & (~BITS_SIFS_R2T_OFDM))
#define BIT_GET_SIFS_R2T_OFDM(x)			(((x) >> BIT_SHIFT_SIFS_R2T_OFDM) & BIT_MASK_SIFS_R2T_OFDM)
#define BIT_SET_SIFS_R2T_OFDM(x, v)			(BIT_CLEAR_SIFS_R2T_OFDM(x) | BIT_SIFS_R2T_OFDM(v))


#define BIT_SHIFT_SIFS_T2T_OFDM			0
#define BIT_MASK_SIFS_T2T_OFDM				0xff
#define BIT_SIFS_T2T_OFDM(x)				(((x) & BIT_MASK_SIFS_T2T_OFDM) << BIT_SHIFT_SIFS_T2T_OFDM)
#define BITS_SIFS_T2T_OFDM				(BIT_MASK_SIFS_T2T_OFDM << BIT_SHIFT_SIFS_T2T_OFDM)
#define BIT_CLEAR_SIFS_T2T_OFDM(x)			((x) & (~BITS_SIFS_T2T_OFDM))
#define BIT_GET_SIFS_T2T_OFDM(x)			(((x) >> BIT_SHIFT_SIFS_T2T_OFDM) & BIT_MASK_SIFS_T2T_OFDM)
#define BIT_SET_SIFS_T2T_OFDM(x, v)			(BIT_CLEAR_SIFS_T2T_OFDM(x) | BIT_SIFS_T2T_OFDM(v))


/* 2 REG_ACKTO				(Offset 0x0640) */


#define BIT_SHIFT_ACKTO				0
#define BIT_MASK_ACKTO					0xff
#define BIT_ACKTO(x)					(((x) & BIT_MASK_ACKTO) << BIT_SHIFT_ACKTO)
#define BITS_ACKTO					(BIT_MASK_ACKTO << BIT_SHIFT_ACKTO)
#define BIT_CLEAR_ACKTO(x)				((x) & (~BITS_ACKTO))
#define BIT_GET_ACKTO(x)				(((x) >> BIT_SHIFT_ACKTO) & BIT_MASK_ACKTO)
#define BIT_SET_ACKTO(x, v)				(BIT_CLEAR_ACKTO(x) | BIT_ACKTO(v))


/* 2 REG_CTS2TO				(Offset 0x0641) */


#define BIT_SHIFT_CTS2TO				0
#define BIT_MASK_CTS2TO				0xff
#define BIT_CTS2TO(x)					(((x) & BIT_MASK_CTS2TO) << BIT_SHIFT_CTS2TO)
#define BITS_CTS2TO					(BIT_MASK_CTS2TO << BIT_SHIFT_CTS2TO)
#define BIT_CLEAR_CTS2TO(x)				((x) & (~BITS_CTS2TO))
#define BIT_GET_CTS2TO(x)				(((x) >> BIT_SHIFT_CTS2TO) & BIT_MASK_CTS2TO)
#define BIT_SET_CTS2TO(x, v)				(BIT_CLEAR_CTS2TO(x) | BIT_CTS2TO(v))


/* 2 REG_EIFS				(Offset 0x0642) */


#define BIT_SHIFT_EIFS					0
#define BIT_MASK_EIFS					0xffff
#define BIT_EIFS(x)					(((x) & BIT_MASK_EIFS) << BIT_SHIFT_EIFS)
#define BITS_EIFS					(BIT_MASK_EIFS << BIT_SHIFT_EIFS)
#define BIT_CLEAR_EIFS(x)				((x) & (~BITS_EIFS))
#define BIT_GET_EIFS(x)				(((x) >> BIT_SHIFT_EIFS) & BIT_MASK_EIFS)
#define BIT_SET_EIFS(x, v)				(BIT_CLEAR_EIFS(x) | BIT_EIFS(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RPFM_MAP0				(Offset 0x0644) */

#define BIT_MGT_RPFM15EN				BIT(15)
#define BIT_MGT_RPFM14EN				BIT(14)
#define BIT_MGT_RPFM13EN				BIT(13)
#define BIT_MGT_RPFM12EN				BIT(12)
#define BIT_MGT_RPFM11EN				BIT(11)
#define BIT_MGT_RPFM10EN				BIT(10)
#define BIT_MGT_RPFM9EN				BIT(9)
#define BIT_MGT_RPFM8EN				BIT(8)
#define BIT_MGT_RPFM7EN				BIT(7)
#define BIT_MGT_RPFM6EN				BIT(6)
#define BIT_MGT_RPFM5EN				BIT(5)
#define BIT_MGT_RPFM4EN				BIT(4)
#define BIT_MGT_RPFM3EN				BIT(3)
#define BIT_MGT_RPFM2EN				BIT(2)
#define BIT_MGT_RPFM1EN				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RPFM_MAP0				(Offset 0x0644) */


#define BIT_SHIFT_RPFM_MAP0				0
#define BIT_MASK_RPFM_MAP0				0xffff
#define BIT_RPFM_MAP0(x)				(((x) & BIT_MASK_RPFM_MAP0) << BIT_SHIFT_RPFM_MAP0)
#define BITS_RPFM_MAP0					(BIT_MASK_RPFM_MAP0 << BIT_SHIFT_RPFM_MAP0)
#define BIT_CLEAR_RPFM_MAP0(x)				((x) & (~BITS_RPFM_MAP0))
#define BIT_GET_RPFM_MAP0(x)				(((x) >> BIT_SHIFT_RPFM_MAP0) & BIT_MASK_RPFM_MAP0)
#define BIT_SET_RPFM_MAP0(x, v)			(BIT_CLEAR_RPFM_MAP0(x) | BIT_RPFM_MAP0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RPFM_MAP0				(Offset 0x0644) */

#define BIT_MGT_RPFM0EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RPFM_MAP1_V1			(Offset 0x0646) */

#define BIT_DATA_RPFM15EN				BIT(15)
#define BIT_DATA_RPFM14EN				BIT(14)
#define BIT_DATA_RPFM13EN				BIT(13)
#define BIT_DATA_RPFM12EN				BIT(12)
#define BIT_DATA_RPFM11EN				BIT(11)
#define BIT_DATA_RPFM10EN				BIT(10)
#define BIT_DATA_RPFM9EN				BIT(9)
#define BIT_DATA_RPFM8EN				BIT(8)
#define BIT_DATA_RPFM7EN				BIT(7)
#define BIT_DATA_RPFM6EN				BIT(6)
#define BIT_DATA_RPFM5EN				BIT(5)
#define BIT_DATA_RPFM4EN				BIT(4)
#define BIT_DATA_RPFM3EN				BIT(3)
#define BIT_DATA_RPFM2EN				BIT(2)
#define BIT_DATA_RPFM1EN				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RPFM_MAP1				(Offset 0x0646) */


#define BIT_SHIFT_RPFM_MAP1				0
#define BIT_MASK_RPFM_MAP1				0xffff
#define BIT_RPFM_MAP1(x)				(((x) & BIT_MASK_RPFM_MAP1) << BIT_SHIFT_RPFM_MAP1)
#define BITS_RPFM_MAP1					(BIT_MASK_RPFM_MAP1 << BIT_SHIFT_RPFM_MAP1)
#define BIT_CLEAR_RPFM_MAP1(x)				((x) & (~BITS_RPFM_MAP1))
#define BIT_GET_RPFM_MAP1(x)				(((x) >> BIT_SHIFT_RPFM_MAP1) & BIT_MASK_RPFM_MAP1)
#define BIT_SET_RPFM_MAP1(x, v)			(BIT_CLEAR_RPFM_MAP1(x) | BIT_RPFM_MAP1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RPFM_MAP1_V1			(Offset 0x0646) */

#define BIT_DATA_RPFM0EN				BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RPFM_CAM_CMD			(Offset 0x0648) */

#define BIT_RPFM_CAM_POLLING				BIT(31)
#define BIT_RPFM_CAM_CLR				BIT(30)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_RPFM_CAM_CMD			(Offset 0x0648) */

#define BIT_RPFM_CAM_WR				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RPFM_CAM_CMD			(Offset 0x0648) */

#define BIT_RPFM_CAM_WE				BIT(16)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RPFM_CAM_CMD			(Offset 0x0648) */


#define BIT_SHIFT_RPFM_CAM_ADDR			0
#define BIT_MASK_RPFM_CAM_ADDR				0x7f
#define BIT_RPFM_CAM_ADDR(x)				(((x) & BIT_MASK_RPFM_CAM_ADDR) << BIT_SHIFT_RPFM_CAM_ADDR)
#define BITS_RPFM_CAM_ADDR				(BIT_MASK_RPFM_CAM_ADDR << BIT_SHIFT_RPFM_CAM_ADDR)
#define BIT_CLEAR_RPFM_CAM_ADDR(x)			((x) & (~BITS_RPFM_CAM_ADDR))
#define BIT_GET_RPFM_CAM_ADDR(x)			(((x) >> BIT_SHIFT_RPFM_CAM_ADDR) & BIT_MASK_RPFM_CAM_ADDR)
#define BIT_SET_RPFM_CAM_ADDR(x, v)			(BIT_CLEAR_RPFM_CAM_ADDR(x) | BIT_RPFM_CAM_ADDR(v))


/* 2 REG_RPFM_CAM_RWD			(Offset 0x064C) */


#define BIT_SHIFT_RPFM_CAM_RWD				0
#define BIT_MASK_RPFM_CAM_RWD				0xffffffffL
#define BIT_RPFM_CAM_RWD(x)				(((x) & BIT_MASK_RPFM_CAM_RWD) << BIT_SHIFT_RPFM_CAM_RWD)
#define BITS_RPFM_CAM_RWD				(BIT_MASK_RPFM_CAM_RWD << BIT_SHIFT_RPFM_CAM_RWD)
#define BIT_CLEAR_RPFM_CAM_RWD(x)			((x) & (~BITS_RPFM_CAM_RWD))
#define BIT_GET_RPFM_CAM_RWD(x)			(((x) >> BIT_SHIFT_RPFM_CAM_RWD) & BIT_MASK_RPFM_CAM_RWD)
#define BIT_SET_RPFM_CAM_RWD(x, v)			(BIT_CLEAR_RPFM_CAM_RWD(x) | BIT_RPFM_CAM_RWD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_NAV_CTRL				(Offset 0x0650) */


#define BIT_SHIFT_NAV_UPPER				16
#define BIT_MASK_NAV_UPPER				0xff
#define BIT_NAV_UPPER(x)				(((x) & BIT_MASK_NAV_UPPER) << BIT_SHIFT_NAV_UPPER)
#define BITS_NAV_UPPER					(BIT_MASK_NAV_UPPER << BIT_SHIFT_NAV_UPPER)
#define BIT_CLEAR_NAV_UPPER(x)				((x) & (~BITS_NAV_UPPER))
#define BIT_GET_NAV_UPPER(x)				(((x) >> BIT_SHIFT_NAV_UPPER) & BIT_MASK_NAV_UPPER)
#define BIT_SET_NAV_UPPER(x, v)			(BIT_CLEAR_NAV_UPPER(x) | BIT_NAV_UPPER(v))


#define BIT_SHIFT_RXMYRTS_NAV				8
#define BIT_MASK_RXMYRTS_NAV				0xf
#define BIT_RXMYRTS_NAV(x)				(((x) & BIT_MASK_RXMYRTS_NAV) << BIT_SHIFT_RXMYRTS_NAV)
#define BITS_RXMYRTS_NAV				(BIT_MASK_RXMYRTS_NAV << BIT_SHIFT_RXMYRTS_NAV)
#define BIT_CLEAR_RXMYRTS_NAV(x)			((x) & (~BITS_RXMYRTS_NAV))
#define BIT_GET_RXMYRTS_NAV(x)				(((x) >> BIT_SHIFT_RXMYRTS_NAV) & BIT_MASK_RXMYRTS_NAV)
#define BIT_SET_RXMYRTS_NAV(x, v)			(BIT_CLEAR_RXMYRTS_NAV(x) | BIT_RXMYRTS_NAV(v))


#define BIT_SHIFT_RTSRST				0
#define BIT_MASK_RTSRST				0xff
#define BIT_RTSRST(x)					(((x) & BIT_MASK_RTSRST) << BIT_SHIFT_RTSRST)
#define BITS_RTSRST					(BIT_MASK_RTSRST << BIT_SHIFT_RTSRST)
#define BIT_CLEAR_RTSRST(x)				((x) & (~BITS_RTSRST))
#define BIT_GET_RTSRST(x)				(((x) >> BIT_SHIFT_RTSRST) & BIT_MASK_RTSRST)
#define BIT_SET_RTSRST(x, v)				(BIT_CLEAR_RTSRST(x) | BIT_RTSRST(v))


/* 2 REG_BACAMCMD				(Offset 0x0654) */

#define BIT_BACAM_POLL					BIT(31)
#define BIT_BACAM_RST					BIT(17)
#define BIT_BACAM_RW					BIT(16)

#define BIT_SHIFT_TXSBM				14
#define BIT_MASK_TXSBM					0x3
#define BIT_TXSBM(x)					(((x) & BIT_MASK_TXSBM) << BIT_SHIFT_TXSBM)
#define BITS_TXSBM					(BIT_MASK_TXSBM << BIT_SHIFT_TXSBM)
#define BIT_CLEAR_TXSBM(x)				((x) & (~BITS_TXSBM))
#define BIT_GET_TXSBM(x)				(((x) >> BIT_SHIFT_TXSBM) & BIT_MASK_TXSBM)
#define BIT_SET_TXSBM(x, v)				(BIT_CLEAR_TXSBM(x) | BIT_TXSBM(v))


#define BIT_SHIFT_BACAM_ADDR				0
#define BIT_MASK_BACAM_ADDR				0x3f
#define BIT_BACAM_ADDR(x)				(((x) & BIT_MASK_BACAM_ADDR) << BIT_SHIFT_BACAM_ADDR)
#define BITS_BACAM_ADDR				(BIT_MASK_BACAM_ADDR << BIT_SHIFT_BACAM_ADDR)
#define BIT_CLEAR_BACAM_ADDR(x)			((x) & (~BITS_BACAM_ADDR))
#define BIT_GET_BACAM_ADDR(x)				(((x) >> BIT_SHIFT_BACAM_ADDR) & BIT_MASK_BACAM_ADDR)
#define BIT_SET_BACAM_ADDR(x, v)			(BIT_CLEAR_BACAM_ADDR(x) | BIT_BACAM_ADDR(v))


/* 2 REG_BACAMCONTENT			(Offset 0x0658) */


#define BIT_SHIFT_BA_CONTENT_L				0
#define BIT_MASK_BA_CONTENT_L				0xffffffffL
#define BIT_BA_CONTENT_L(x)				(((x) & BIT_MASK_BA_CONTENT_L) << BIT_SHIFT_BA_CONTENT_L)
#define BITS_BA_CONTENT_L				(BIT_MASK_BA_CONTENT_L << BIT_SHIFT_BA_CONTENT_L)
#define BIT_CLEAR_BA_CONTENT_L(x)			((x) & (~BITS_BA_CONTENT_L))
#define BIT_GET_BA_CONTENT_L(x)			(((x) >> BIT_SHIFT_BA_CONTENT_L) & BIT_MASK_BA_CONTENT_L)
#define BIT_SET_BA_CONTENT_L(x, v)			(BIT_CLEAR_BA_CONTENT_L(x) | BIT_BA_CONTENT_L(v))


/* 2 REG_LBDLY				(Offset 0x0660) */


#define BIT_SHIFT_LBDLY				0
#define BIT_MASK_LBDLY					0x1f
#define BIT_LBDLY(x)					(((x) & BIT_MASK_LBDLY) << BIT_SHIFT_LBDLY)
#define BITS_LBDLY					(BIT_MASK_LBDLY << BIT_SHIFT_LBDLY)
#define BIT_CLEAR_LBDLY(x)				((x) & (~BITS_LBDLY))
#define BIT_GET_LBDLY(x)				(((x) >> BIT_SHIFT_LBDLY) & BIT_MASK_LBDLY)
#define BIT_SET_LBDLY(x, v)				(BIT_CLEAR_LBDLY(x) | BIT_LBDLY(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_BACAM_RPMEN			(Offset 0x0661) */


#define BIT_SHIFT_BITMAP_SSNBK_COUNTER			2
#define BIT_MASK_BITMAP_SSNBK_COUNTER			0x3f
#define BIT_BITMAP_SSNBK_COUNTER(x)			(((x) & BIT_MASK_BITMAP_SSNBK_COUNTER) << BIT_SHIFT_BITMAP_SSNBK_COUNTER)
#define BITS_BITMAP_SSNBK_COUNTER			(BIT_MASK_BITMAP_SSNBK_COUNTER << BIT_SHIFT_BITMAP_SSNBK_COUNTER)
#define BIT_CLEAR_BITMAP_SSNBK_COUNTER(x)		((x) & (~BITS_BITMAP_SSNBK_COUNTER))
#define BIT_GET_BITMAP_SSNBK_COUNTER(x)		(((x) >> BIT_SHIFT_BITMAP_SSNBK_COUNTER) & BIT_MASK_BITMAP_SSNBK_COUNTER)
#define BIT_SET_BITMAP_SSNBK_COUNTER(x, v)		(BIT_CLEAR_BITMAP_SSNBK_COUNTER(x) | BIT_BITMAP_SSNBK_COUNTER(v))

#define BIT_BITMAP_EN					BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_BACAM_RPMEN			(Offset 0x0661) */

#define BIT_WMAC_BACAM_RPMEN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TX_RX				(Offset 0x0662) */


#define BIT_SHIFT_RXPKT_TYPE				2
#define BIT_MASK_RXPKT_TYPE				0x3f
#define BIT_RXPKT_TYPE(x)				(((x) & BIT_MASK_RXPKT_TYPE) << BIT_SHIFT_RXPKT_TYPE)
#define BITS_RXPKT_TYPE				(BIT_MASK_RXPKT_TYPE << BIT_SHIFT_RXPKT_TYPE)
#define BIT_CLEAR_RXPKT_TYPE(x)			((x) & (~BITS_RXPKT_TYPE))
#define BIT_GET_RXPKT_TYPE(x)				(((x) >> BIT_SHIFT_RXPKT_TYPE) & BIT_MASK_RXPKT_TYPE)
#define BIT_SET_RXPKT_TYPE(x, v)			(BIT_CLEAR_RXPKT_TYPE(x) | BIT_RXPKT_TYPE(v))

#define BIT_TXACT_IND					BIT(1)
#define BIT_RXACT_IND					BIT(0)

/* 2 REG_WMAC_BITMAP_CTL			(Offset 0x0663) */

#define BIT_BITMAP_VO					BIT(7)
#define BIT_BITMAP_VI					BIT(6)
#define BIT_BITMAP_BE					BIT(5)
#define BIT_BITMAP_BK					BIT(4)

#define BIT_SHIFT_BITMAP_CONDITION			2
#define BIT_MASK_BITMAP_CONDITION			0x3
#define BIT_BITMAP_CONDITION(x)			(((x) & BIT_MASK_BITMAP_CONDITION) << BIT_SHIFT_BITMAP_CONDITION)
#define BITS_BITMAP_CONDITION				(BIT_MASK_BITMAP_CONDITION << BIT_SHIFT_BITMAP_CONDITION)
#define BIT_CLEAR_BITMAP_CONDITION(x)			((x) & (~BITS_BITMAP_CONDITION))
#define BIT_GET_BITMAP_CONDITION(x)			(((x) >> BIT_SHIFT_BITMAP_CONDITION) & BIT_MASK_BITMAP_CONDITION)
#define BIT_SET_BITMAP_CONDITION(x, v)			(BIT_CLEAR_BITMAP_CONDITION(x) | BIT_BITMAP_CONDITION(v))

#define BIT_BITMAP_SSNBK_COUNTER_CLR			BIT(1)
#define BIT_BITMAP_FORCE				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */


#define BIT_SHIFT_RXERR_RPT_SEL_V1_3_0			28
#define BIT_MASK_RXERR_RPT_SEL_V1_3_0			0xf
#define BIT_RXERR_RPT_SEL_V1_3_0(x)			(((x) & BIT_MASK_RXERR_RPT_SEL_V1_3_0) << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0)
#define BITS_RXERR_RPT_SEL_V1_3_0			(BIT_MASK_RXERR_RPT_SEL_V1_3_0 << BIT_SHIFT_RXERR_RPT_SEL_V1_3_0)
#define BIT_CLEAR_RXERR_RPT_SEL_V1_3_0(x)		((x) & (~BITS_RXERR_RPT_SEL_V1_3_0))
#define BIT_GET_RXERR_RPT_SEL_V1_3_0(x)		(((x) >> BIT_SHIFT_RXERR_RPT_SEL_V1_3_0) & BIT_MASK_RXERR_RPT_SEL_V1_3_0)
#define BIT_SET_RXERR_RPT_SEL_V1_3_0(x, v)		(BIT_CLEAR_RXERR_RPT_SEL_V1_3_0(x) | BIT_RXERR_RPT_SEL_V1_3_0(v))


#endif


#if (HALMAC_8881A_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */


#define BIT_SHIFT_RXERR_RPT_SEL			28
#define BIT_MASK_RXERR_RPT_SEL				0xf
#define BIT_RXERR_RPT_SEL(x)				(((x) & BIT_MASK_RXERR_RPT_SEL) << BIT_SHIFT_RXERR_RPT_SEL)
#define BITS_RXERR_RPT_SEL				(BIT_MASK_RXERR_RPT_SEL << BIT_SHIFT_RXERR_RPT_SEL)
#define BIT_CLEAR_RXERR_RPT_SEL(x)			((x) & (~BITS_RXERR_RPT_SEL))
#define BIT_GET_RXERR_RPT_SEL(x)			(((x) >> BIT_SHIFT_RXERR_RPT_SEL) & BIT_MASK_RXERR_RPT_SEL)
#define BIT_SET_RXERR_RPT_SEL(x, v)			(BIT_CLEAR_RXERR_RPT_SEL(x) | BIT_RXERR_RPT_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */

#define BIT_RXERR_RPT_RST				BIT(27)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */

#define BIT_RXERR_RPT_SEL_V1_4				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */


#define BIT_SHIFT_UD_SELECT_BSSID_2_1			24
#define BIT_MASK_UD_SELECT_BSSID_2_1			0x3
#define BIT_UD_SELECT_BSSID_2_1(x)			(((x) & BIT_MASK_UD_SELECT_BSSID_2_1) << BIT_SHIFT_UD_SELECT_BSSID_2_1)
#define BITS_UD_SELECT_BSSID_2_1			(BIT_MASK_UD_SELECT_BSSID_2_1 << BIT_SHIFT_UD_SELECT_BSSID_2_1)
#define BIT_CLEAR_UD_SELECT_BSSID_2_1(x)		((x) & (~BITS_UD_SELECT_BSSID_2_1))
#define BIT_GET_UD_SELECT_BSSID_2_1(x)			(((x) >> BIT_SHIFT_UD_SELECT_BSSID_2_1) & BIT_MASK_UD_SELECT_BSSID_2_1)
#define BIT_SET_UD_SELECT_BSSID_2_1(x, v)		(BIT_CLEAR_UD_SELECT_BSSID_2_1(x) | BIT_UD_SELECT_BSSID_2_1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */

#define BIT_W1S					BIT(23)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */

#define BIT_UD_SELECT_BSSID				BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */

#define BIT_UD_SELECT_BSSID_0				BIT(22)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXERR_RPT				(Offset 0x0664) */


#define BIT_SHIFT_UD_SUB_TYPE				18
#define BIT_MASK_UD_SUB_TYPE				0xf
#define BIT_UD_SUB_TYPE(x)				(((x) & BIT_MASK_UD_SUB_TYPE) << BIT_SHIFT_UD_SUB_TYPE)
#define BITS_UD_SUB_TYPE				(BIT_MASK_UD_SUB_TYPE << BIT_SHIFT_UD_SUB_TYPE)
#define BIT_CLEAR_UD_SUB_TYPE(x)			((x) & (~BITS_UD_SUB_TYPE))
#define BIT_GET_UD_SUB_TYPE(x)				(((x) >> BIT_SHIFT_UD_SUB_TYPE) & BIT_MASK_UD_SUB_TYPE)
#define BIT_SET_UD_SUB_TYPE(x, v)			(BIT_CLEAR_UD_SUB_TYPE(x) | BIT_UD_SUB_TYPE(v))


#define BIT_SHIFT_UD_TYPE				16
#define BIT_MASK_UD_TYPE				0x3
#define BIT_UD_TYPE(x)					(((x) & BIT_MASK_UD_TYPE) << BIT_SHIFT_UD_TYPE)
#define BITS_UD_TYPE					(BIT_MASK_UD_TYPE << BIT_SHIFT_UD_TYPE)
#define BIT_CLEAR_UD_TYPE(x)				((x) & (~BITS_UD_TYPE))
#define BIT_GET_UD_TYPE(x)				(((x) >> BIT_SHIFT_UD_TYPE) & BIT_MASK_UD_TYPE)
#define BIT_SET_UD_TYPE(x, v)				(BIT_CLEAR_UD_TYPE(x) | BIT_UD_TYPE(v))


#define BIT_SHIFT_RPT_COUNTER				0
#define BIT_MASK_RPT_COUNTER				0xffff
#define BIT_RPT_COUNTER(x)				(((x) & BIT_MASK_RPT_COUNTER) << BIT_SHIFT_RPT_COUNTER)
#define BITS_RPT_COUNTER				(BIT_MASK_RPT_COUNTER << BIT_SHIFT_RPT_COUNTER)
#define BIT_CLEAR_RPT_COUNTER(x)			((x) & (~BITS_RPT_COUNTER))
#define BIT_GET_RPT_COUNTER(x)				(((x) >> BIT_SHIFT_RPT_COUNTER) & BIT_MASK_RPT_COUNTER)
#define BIT_SET_RPT_COUNTER(x, v)			(BIT_CLEAR_RPT_COUNTER(x) | BIT_RPT_COUNTER(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_RXBA_IGNOREA2				BIT(42)
#define BIT_EN_SAVE_ALL_TXOPADDR			BIT(41)
#define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV		BIT(40)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_DIS_TXBA_AMPDUFCSERR			BIT(39)
#define BIT_DIS_TXBA_RXBARINFULL			BIT(38)
#define BIT_DIS_TXCFE_INFULL				BIT(37)
#define BIT_DIS_TXCTS_INFULL				BIT(36)
#define BIT_EN_TXACKBA_IN_TX_RDG			BIT(35)
#define BIT_EN_TXACKBA_IN_TXOP				BIT(34)
#define BIT_EN_TXCTS_IN_RXNAV				BIT(33)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_EN_TXCTS_INTXOP				BIT(32)
#define BIT_BLK_EDCA_BBSLP				BIT(31)
#define BIT_BLK_EDCA_BBSBY				BIT(30)
#define BIT_ACKTO_BLOCK_SCH_EN				BIT(27)
#define BIT_EIFS_BLOCK_SCH_EN				BIT(26)
#define BIT_PLCPCHK_RST_EIFS				BIT(25)
#define BIT_CCA_RST_EIFS				BIT(24)
#define BIT_DIS_UPD_MYRXPKTNAV				BIT(23)
#define BIT_EARLY_TXBA					BIT(22)

#define BIT_SHIFT_RESP_CHNBUSY				20
#define BIT_MASK_RESP_CHNBUSY				0x3
#define BIT_RESP_CHNBUSY(x)				(((x) & BIT_MASK_RESP_CHNBUSY) << BIT_SHIFT_RESP_CHNBUSY)
#define BITS_RESP_CHNBUSY				(BIT_MASK_RESP_CHNBUSY << BIT_SHIFT_RESP_CHNBUSY)
#define BIT_CLEAR_RESP_CHNBUSY(x)			((x) & (~BITS_RESP_CHNBUSY))
#define BIT_GET_RESP_CHNBUSY(x)			(((x) >> BIT_SHIFT_RESP_CHNBUSY) & BIT_MASK_RESP_CHNBUSY)
#define BIT_SET_RESP_CHNBUSY(x, v)			(BIT_CLEAR_RESP_CHNBUSY(x) | BIT_RESP_CHNBUSY(v))

#define BIT_RESP_DCTS_EN				BIT(19)
#define BIT_RESP_DCFE_EN				BIT(18)
#define BIT_RESP_SPLCPEN				BIT(17)
#define BIT_RESP_SGIEN					BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_RESP_LDPC_EN				BIT(15)
#define BIT_DIS_RESP_ACKINCCA				BIT(14)
#define BIT_DIS_RESP_CTSINCCA				BIT(13)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER		10
#define BIT_MASK_R_WMAC_SECOND_CCA_TIMER		0x7
#define BIT_R_WMAC_SECOND_CCA_TIMER(x)			(((x) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER) << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER)
#define BITS_R_WMAC_SECOND_CCA_TIMER			(BIT_MASK_R_WMAC_SECOND_CCA_TIMER << BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER)
#define BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER(x)		((x) & (~BITS_R_WMAC_SECOND_CCA_TIMER))
#define BIT_GET_R_WMAC_SECOND_CCA_TIMER(x)		(((x) >> BIT_SHIFT_R_WMAC_SECOND_CCA_TIMER) & BIT_MASK_R_WMAC_SECOND_CCA_TIMER)
#define BIT_SET_R_WMAC_SECOND_CCA_TIMER(x, v)		(BIT_CLEAR_R_WMAC_SECOND_CCA_TIMER(x) | BIT_R_WMAC_SECOND_CCA_TIMER(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_SECOND_CCA_CNT			10
#define BIT_MASK_SECOND_CCA_CNT			0x7
#define BIT_SECOND_CCA_CNT(x)				(((x) & BIT_MASK_SECOND_CCA_CNT) << BIT_SHIFT_SECOND_CCA_CNT)
#define BITS_SECOND_CCA_CNT				(BIT_MASK_SECOND_CCA_CNT << BIT_SHIFT_SECOND_CCA_CNT)
#define BIT_CLEAR_SECOND_CCA_CNT(x)			((x) & (~BITS_SECOND_CCA_CNT))
#define BIT_GET_SECOND_CCA_CNT(x)			(((x) >> BIT_SHIFT_SECOND_CCA_CNT) & BIT_MASK_SECOND_CCA_CNT)
#define BIT_SET_SECOND_CCA_CNT(x, v)			(BIT_CLEAR_SECOND_CCA_CNT(x) | BIT_SECOND_CCA_CNT(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_RFMOD				7
#define BIT_MASK_RFMOD					0x3
#define BIT_RFMOD(x)					(((x) & BIT_MASK_RFMOD) << BIT_SHIFT_RFMOD)
#define BITS_RFMOD					(BIT_MASK_RFMOD << BIT_SHIFT_RFMOD)
#define BIT_CLEAR_RFMOD(x)				((x) & (~BITS_RFMOD))
#define BIT_GET_RFMOD(x)				(((x) >> BIT_SHIFT_RFMOD) & BIT_MASK_RFMOD)
#define BIT_SET_RFMOD(x, v)				(BIT_CLEAR_RFMOD(x) | BIT_RFMOD(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_RF_MOD				7
#define BIT_MASK_RF_MOD				0x3
#define BIT_RF_MOD(x)					(((x) & BIT_MASK_RF_MOD) << BIT_SHIFT_RF_MOD)
#define BITS_RF_MOD					(BIT_MASK_RF_MOD << BIT_SHIFT_RF_MOD)
#define BIT_CLEAR_RF_MOD(x)				((x) & (~BITS_RF_MOD))
#define BIT_GET_RF_MOD(x)				(((x) >> BIT_SHIFT_RF_MOD) & BIT_MASK_RF_MOD)
#define BIT_SET_RF_MOD(x, v)				(BIT_CLEAR_RF_MOD(x) | BIT_RF_MOD(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_RESP_CTS_DYNBW_SEL			5
#define BIT_MASK_RESP_CTS_DYNBW_SEL			0x3
#define BIT_RESP_CTS_DYNBW_SEL(x)			(((x) & BIT_MASK_RESP_CTS_DYNBW_SEL) << BIT_SHIFT_RESP_CTS_DYNBW_SEL)
#define BITS_RESP_CTS_DYNBW_SEL			(BIT_MASK_RESP_CTS_DYNBW_SEL << BIT_SHIFT_RESP_CTS_DYNBW_SEL)
#define BIT_CLEAR_RESP_CTS_DYNBW_SEL(x)		((x) & (~BITS_RESP_CTS_DYNBW_SEL))
#define BIT_GET_RESP_CTS_DYNBW_SEL(x)			(((x) >> BIT_SHIFT_RESP_CTS_DYNBW_SEL) & BIT_MASK_RESP_CTS_DYNBW_SEL)
#define BIT_SET_RESP_CTS_DYNBW_SEL(x, v)		(BIT_CLEAR_RESP_CTS_DYNBW_SEL(x) | BIT_RESP_CTS_DYNBW_SEL(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL		5
#define BIT_MASK_RESP_CTS_BW_DYNBW_SEL			0x3
#define BIT_RESP_CTS_BW_DYNBW_SEL(x)			(((x) & BIT_MASK_RESP_CTS_BW_DYNBW_SEL) << BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL)
#define BITS_RESP_CTS_BW_DYNBW_SEL			(BIT_MASK_RESP_CTS_BW_DYNBW_SEL << BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL)
#define BIT_CLEAR_RESP_CTS_BW_DYNBW_SEL(x)		((x) & (~BITS_RESP_CTS_BW_DYNBW_SEL))
#define BIT_GET_RESP_CTS_BW_DYNBW_SEL(x)		(((x) >> BIT_SHIFT_RESP_CTS_BW_DYNBW_SEL) & BIT_MASK_RESP_CTS_BW_DYNBW_SEL)
#define BIT_SET_RESP_CTS_BW_DYNBW_SEL(x, v)		(BIT_CLEAR_RESP_CTS_BW_DYNBW_SEL(x) | BIT_RESP_CTS_BW_DYNBW_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_DLY_TX_WAIT_RXANTSEL			BIT(4)

#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_DELAY_TX_USE_RX_ANTSEL			BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_TXRESP_BY_RXANTSEL				BIT(3)

#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_TX_USE_RX_ANTSEL				BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */

#define BIT_RESP_EARLY_TXACK_RWEPTKIP			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL			(Offset 0x0668) */


#define BIT_SHIFT_ORIG_DCTS_CHK			0
#define BIT_MASK_ORIG_DCTS_CHK				0x3
#define BIT_ORIG_DCTS_CHK(x)				(((x) & BIT_MASK_ORIG_DCTS_CHK) << BIT_SHIFT_ORIG_DCTS_CHK)
#define BITS_ORIG_DCTS_CHK				(BIT_MASK_ORIG_DCTS_CHK << BIT_SHIFT_ORIG_DCTS_CHK)
#define BIT_CLEAR_ORIG_DCTS_CHK(x)			((x) & (~BITS_ORIG_DCTS_CHK))
#define BIT_GET_ORIG_DCTS_CHK(x)			(((x) >> BIT_SHIFT_ORIG_DCTS_CHK) & BIT_MASK_ORIG_DCTS_CHK)
#define BIT_SET_ORIG_DCTS_CHK(x, v)			(BIT_CLEAR_ORIG_DCTS_CHK(x) | BIT_ORIG_DCTS_CHK(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WMAC_TRXPTCL_CTL_H			(Offset 0x066C) */

#define BIT_RPT_VALID					BIT(13)
#define BIT_RXBA_IGNOREA2_V1				BIT(10)
#define BIT_EN_SAVE_ALL_TXOPADDR_V1			BIT(9)
#define BIT_EN_TXCTS_TO_TXOPOWNER_INRXNAV_V1		BIT(8)
#define BIT_DIS_TXBA_AMPDUFCSERR_V1			BIT(7)
#define BIT_DIS_TXBA_RXBARINFULL_V1			BIT(6)
#define BIT_DIS_TXCFE_INFULL_V1			BIT(5)
#define BIT_DIS_TXCTS_INFULL_V1			BIT(4)
#define BIT_EN_TXACKBA_IN_TX_RDG_V1			BIT(3)
#define BIT_EN_TXACKBA_IN_TXOP_V1			BIT(2)
#define BIT_EN_TXCTS_IN_RXNAV_V1			BIT(1)
#define BIT_EN_TXCTS_INTXOP_V1				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */

#define BIT_SECCAM_POLLING				BIT(31)
#define BIT_SECCAM_CLR					BIT(30)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */

#define BIT_MFBCAM_CLR					BIT(29)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */

#define BIT_SECCAM_WE					BIT(16)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */


#define BIT_SHIFT_SECCAM_ADDR_V1			0
#define BIT_MASK_SECCAM_ADDR_V1			0xff
#define BIT_SECCAM_ADDR_V1(x)				(((x) & BIT_MASK_SECCAM_ADDR_V1) << BIT_SHIFT_SECCAM_ADDR_V1)
#define BITS_SECCAM_ADDR_V1				(BIT_MASK_SECCAM_ADDR_V1 << BIT_SHIFT_SECCAM_ADDR_V1)
#define BIT_CLEAR_SECCAM_ADDR_V1(x)			((x) & (~BITS_SECCAM_ADDR_V1))
#define BIT_GET_SECCAM_ADDR_V1(x)			(((x) >> BIT_SHIFT_SECCAM_ADDR_V1) & BIT_MASK_SECCAM_ADDR_V1)
#define BIT_SET_SECCAM_ADDR_V1(x, v)			(BIT_CLEAR_SECCAM_ADDR_V1(x) | BIT_SECCAM_ADDR_V1(v))


#define BIT_SHIFT_WKFCAM_NUM				0
#define BIT_MASK_WKFCAM_NUM				0x7f
#define BIT_WKFCAM_NUM(x)				(((x) & BIT_MASK_WKFCAM_NUM) << BIT_SHIFT_WKFCAM_NUM)
#define BITS_WKFCAM_NUM				(BIT_MASK_WKFCAM_NUM << BIT_SHIFT_WKFCAM_NUM)
#define BIT_CLEAR_WKFCAM_NUM(x)			((x) & (~BITS_WKFCAM_NUM))
#define BIT_GET_WKFCAM_NUM(x)				(((x) >> BIT_SHIFT_WKFCAM_NUM) & BIT_MASK_WKFCAM_NUM)
#define BIT_SET_WKFCAM_NUM(x, v)			(BIT_CLEAR_WKFCAM_NUM(x) | BIT_WKFCAM_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */


#define BIT_SHIFT_SECCAM_ADDR_V2			0
#define BIT_MASK_SECCAM_ADDR_V2			0x3ff
#define BIT_SECCAM_ADDR_V2(x)				(((x) & BIT_MASK_SECCAM_ADDR_V2) << BIT_SHIFT_SECCAM_ADDR_V2)
#define BITS_SECCAM_ADDR_V2				(BIT_MASK_SECCAM_ADDR_V2 << BIT_SHIFT_SECCAM_ADDR_V2)
#define BIT_CLEAR_SECCAM_ADDR_V2(x)			((x) & (~BITS_SECCAM_ADDR_V2))
#define BIT_GET_SECCAM_ADDR_V2(x)			(((x) >> BIT_SHIFT_SECCAM_ADDR_V2) & BIT_MASK_SECCAM_ADDR_V2)
#define BIT_SET_SECCAM_ADDR_V2(x, v)			(BIT_CLEAR_SECCAM_ADDR_V2(x) | BIT_SECCAM_ADDR_V2(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_CAMCMD				(Offset 0x0670) */


#define BIT_SHIFT_SECCAM_ADDR				0
#define BIT_MASK_SECCAM_ADDR				0xff
#define BIT_SECCAM_ADDR(x)				(((x) & BIT_MASK_SECCAM_ADDR) << BIT_SHIFT_SECCAM_ADDR)
#define BITS_SECCAM_ADDR				(BIT_MASK_SECCAM_ADDR << BIT_SHIFT_SECCAM_ADDR)
#define BIT_CLEAR_SECCAM_ADDR(x)			((x) & (~BITS_SECCAM_ADDR))
#define BIT_GET_SECCAM_ADDR(x)				(((x) >> BIT_SHIFT_SECCAM_ADDR) & BIT_MASK_SECCAM_ADDR)
#define BIT_SET_SECCAM_ADDR(x, v)			(BIT_CLEAR_SECCAM_ADDR(x) | BIT_SECCAM_ADDR(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMWRITE				(Offset 0x0674) */


#define BIT_SHIFT_CAMW_DATA				0
#define BIT_MASK_CAMW_DATA				0xffffffffL
#define BIT_CAMW_DATA(x)				(((x) & BIT_MASK_CAMW_DATA) << BIT_SHIFT_CAMW_DATA)
#define BITS_CAMW_DATA					(BIT_MASK_CAMW_DATA << BIT_SHIFT_CAMW_DATA)
#define BIT_CLEAR_CAMW_DATA(x)				((x) & (~BITS_CAMW_DATA))
#define BIT_GET_CAMW_DATA(x)				(((x) >> BIT_SHIFT_CAMW_DATA) & BIT_MASK_CAMW_DATA)
#define BIT_SET_CAMW_DATA(x, v)			(BIT_CLEAR_CAMW_DATA(x) | BIT_CAMW_DATA(v))


/* 2 REG_CAMREAD				(Offset 0x0678) */


#define BIT_SHIFT_CAMR_DATA				0
#define BIT_MASK_CAMR_DATA				0xffffffffL
#define BIT_CAMR_DATA(x)				(((x) & BIT_MASK_CAMR_DATA) << BIT_SHIFT_CAMR_DATA)
#define BITS_CAMR_DATA					(BIT_MASK_CAMR_DATA << BIT_SHIFT_CAMR_DATA)
#define BIT_CLEAR_CAMR_DATA(x)				((x) & (~BITS_CAMR_DATA))
#define BIT_GET_CAMR_DATA(x)				(((x) >> BIT_SHIFT_CAMR_DATA) & BIT_MASK_CAMR_DATA)
#define BIT_SET_CAMR_DATA(x, v)			(BIT_CLEAR_CAMR_DATA(x) | BIT_CAMR_DATA(v))


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_SECCAM_INFO				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_SEC_KEYFOUND_V1				BIT(19)

#define BIT_SHIFT_CAMDBG_SEC_TYPE_V1			16
#define BIT_MASK_CAMDBG_SEC_TYPE_V1			0x7
#define BIT_CAMDBG_SEC_TYPE_V1(x)			(((x) & BIT_MASK_CAMDBG_SEC_TYPE_V1) << BIT_SHIFT_CAMDBG_SEC_TYPE_V1)
#define BITS_CAMDBG_SEC_TYPE_V1			(BIT_MASK_CAMDBG_SEC_TYPE_V1 << BIT_SHIFT_CAMDBG_SEC_TYPE_V1)
#define BIT_CLEAR_CAMDBG_SEC_TYPE_V1(x)		((x) & (~BITS_CAMDBG_SEC_TYPE_V1))
#define BIT_GET_CAMDBG_SEC_TYPE_V1(x)			(((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE_V1) & BIT_MASK_CAMDBG_SEC_TYPE_V1)
#define BIT_SET_CAMDBG_SEC_TYPE_V1(x, v)		(BIT_CLEAR_CAMDBG_SEC_TYPE_V1(x) | BIT_CAMDBG_SEC_TYPE_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_SEC_KEYFOUND				BIT(15)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_CAMDBG_EXT_SEC_TYPE_V1			BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */


#define BIT_SHIFT_CAMDBG_SEC_TYPE			12
#define BIT_MASK_CAMDBG_SEC_TYPE			0x7
#define BIT_CAMDBG_SEC_TYPE(x)				(((x) & BIT_MASK_CAMDBG_SEC_TYPE) << BIT_SHIFT_CAMDBG_SEC_TYPE)
#define BITS_CAMDBG_SEC_TYPE				(BIT_MASK_CAMDBG_SEC_TYPE << BIT_SHIFT_CAMDBG_SEC_TYPE)
#define BIT_CLEAR_CAMDBG_SEC_TYPE(x)			((x) & (~BITS_CAMDBG_SEC_TYPE))
#define BIT_GET_CAMDBG_SEC_TYPE(x)			(((x) >> BIT_SHIFT_CAMDBG_SEC_TYPE) & BIT_MASK_CAMDBG_SEC_TYPE)
#define BIT_SET_CAMDBG_SEC_TYPE(x, v)			(BIT_CLEAR_CAMDBG_SEC_TYPE(x) | BIT_CAMDBG_SEC_TYPE(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_CAMDBG_EXT_SEC_TYPE			BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */

#define BIT_CAMDBG_EXT_SECTYPE				BIT(11)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */


#define BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1		7
#define BIT_MASK_CAMDBG_MIC_KEY_IDX_V1			0x7f
#define BIT_CAMDBG_MIC_KEY_IDX_V1(x)			(((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX_V1) << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1)
#define BITS_CAMDBG_MIC_KEY_IDX_V1			(BIT_MASK_CAMDBG_MIC_KEY_IDX_V1 << BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1)
#define BIT_CLEAR_CAMDBG_MIC_KEY_IDX_V1(x)		((x) & (~BITS_CAMDBG_MIC_KEY_IDX_V1))
#define BIT_GET_CAMDBG_MIC_KEY_IDX_V1(x)		(((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX_V1) & BIT_MASK_CAMDBG_MIC_KEY_IDX_V1)
#define BIT_SET_CAMDBG_MIC_KEY_IDX_V1(x, v)		(BIT_CLEAR_CAMDBG_MIC_KEY_IDX_V1(x) | BIT_CAMDBG_MIC_KEY_IDX_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */


#define BIT_SHIFT_CAMDBG_MIC_KEY_IDX			5
#define BIT_MASK_CAMDBG_MIC_KEY_IDX			0x1f
#define BIT_CAMDBG_MIC_KEY_IDX(x)			(((x) & BIT_MASK_CAMDBG_MIC_KEY_IDX) << BIT_SHIFT_CAMDBG_MIC_KEY_IDX)
#define BITS_CAMDBG_MIC_KEY_IDX			(BIT_MASK_CAMDBG_MIC_KEY_IDX << BIT_SHIFT_CAMDBG_MIC_KEY_IDX)
#define BIT_CLEAR_CAMDBG_MIC_KEY_IDX(x)		((x) & (~BITS_CAMDBG_MIC_KEY_IDX))
#define BIT_GET_CAMDBG_MIC_KEY_IDX(x)			(((x) >> BIT_SHIFT_CAMDBG_MIC_KEY_IDX) & BIT_MASK_CAMDBG_MIC_KEY_IDX)
#define BIT_SET_CAMDBG_MIC_KEY_IDX(x, v)		(BIT_CLEAR_CAMDBG_MIC_KEY_IDX(x) | BIT_CAMDBG_MIC_KEY_IDX(v))


#define BIT_SHIFT_CAMDBG_SEC_KEY_IDX			0
#define BIT_MASK_CAMDBG_SEC_KEY_IDX			0x1f
#define BIT_CAMDBG_SEC_KEY_IDX(x)			(((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX) << BIT_SHIFT_CAMDBG_SEC_KEY_IDX)
#define BITS_CAMDBG_SEC_KEY_IDX			(BIT_MASK_CAMDBG_SEC_KEY_IDX << BIT_SHIFT_CAMDBG_SEC_KEY_IDX)
#define BIT_CLEAR_CAMDBG_SEC_KEY_IDX(x)		((x) & (~BITS_CAMDBG_SEC_KEY_IDX))
#define BIT_GET_CAMDBG_SEC_KEY_IDX(x)			(((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX) & BIT_MASK_CAMDBG_SEC_KEY_IDX)
#define BIT_SET_CAMDBG_SEC_KEY_IDX(x, v)		(BIT_CLEAR_CAMDBG_SEC_KEY_IDX(x) | BIT_CAMDBG_SEC_KEY_IDX(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_CAMDBG				(Offset 0x067C) */


#define BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1		0
#define BIT_MASK_CAMDBG_SEC_KEY_IDX_V1			0x7f
#define BIT_CAMDBG_SEC_KEY_IDX_V1(x)			(((x) & BIT_MASK_CAMDBG_SEC_KEY_IDX_V1) << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1)
#define BITS_CAMDBG_SEC_KEY_IDX_V1			(BIT_MASK_CAMDBG_SEC_KEY_IDX_V1 << BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1)
#define BIT_CLEAR_CAMDBG_SEC_KEY_IDX_V1(x)		((x) & (~BITS_CAMDBG_SEC_KEY_IDX_V1))
#define BIT_GET_CAMDBG_SEC_KEY_IDX_V1(x)		(((x) >> BIT_SHIFT_CAMDBG_SEC_KEY_IDX_V1) & BIT_MASK_CAMDBG_SEC_KEY_IDX_V1)
#define BIT_SET_CAMDBG_SEC_KEY_IDX_V1(x, v)		(BIT_CLEAR_CAMDBG_SEC_KEY_IDX_V1(x) | BIT_CAMDBG_SEC_KEY_IDX_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SECCFG				(Offset 0x0680) */

#define BIT_DIS_GCLK_WAPI				BIT(15)
#define BIT_DIS_GCLK_AES				BIT(14)
#define BIT_DIS_GCLK_TKIP				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SECCFG				(Offset 0x0680) */

#define BIT_AES_SEL_QC_1				BIT(12)
#define BIT_AES_SEL_QC_0				BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_SECCFG				(Offset 0x0680) */

#define BIT_WMAC_CKECK_BMC				BIT(9)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SECCFG				(Offset 0x0680) */

#define BIT_CHK_BMC					BIT(9)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_SECCFG				(Offset 0x0680) */

#define BIT_CHK_KEYID					BIT(8)
#define BIT_RXBCUSEDK					BIT(7)
#define BIT_TXBCUSEDK					BIT(6)
#define BIT_NOSKMC					BIT(5)
#define BIT_SKBYA2					BIT(4)
#define BIT_RXDEC					BIT(3)
#define BIT_TXENC					BIT(2)
#define BIT_RXUHUSEDK					BIT(1)
#define BIT_TXUHUSEDK					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFILTER_CATEGORY_1			(Offset 0x0682) */


#define BIT_SHIFT_RXFILTER_CATEGORY_1			0
#define BIT_MASK_RXFILTER_CATEGORY_1			0xff
#define BIT_RXFILTER_CATEGORY_1(x)			(((x) & BIT_MASK_RXFILTER_CATEGORY_1) << BIT_SHIFT_RXFILTER_CATEGORY_1)
#define BITS_RXFILTER_CATEGORY_1			(BIT_MASK_RXFILTER_CATEGORY_1 << BIT_SHIFT_RXFILTER_CATEGORY_1)
#define BIT_CLEAR_RXFILTER_CATEGORY_1(x)		((x) & (~BITS_RXFILTER_CATEGORY_1))
#define BIT_GET_RXFILTER_CATEGORY_1(x)			(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_1) & BIT_MASK_RXFILTER_CATEGORY_1)
#define BIT_SET_RXFILTER_CATEGORY_1(x, v)		(BIT_CLEAR_RXFILTER_CATEGORY_1(x) | BIT_RXFILTER_CATEGORY_1(v))


/* 2 REG_RXFILTER_ACTION_1			(Offset 0x0683) */


#define BIT_SHIFT_RXFILTER_ACTION_1			0
#define BIT_MASK_RXFILTER_ACTION_1			0xff
#define BIT_RXFILTER_ACTION_1(x)			(((x) & BIT_MASK_RXFILTER_ACTION_1) << BIT_SHIFT_RXFILTER_ACTION_1)
#define BITS_RXFILTER_ACTION_1				(BIT_MASK_RXFILTER_ACTION_1 << BIT_SHIFT_RXFILTER_ACTION_1)
#define BIT_CLEAR_RXFILTER_ACTION_1(x)			((x) & (~BITS_RXFILTER_ACTION_1))
#define BIT_GET_RXFILTER_ACTION_1(x)			(((x) >> BIT_SHIFT_RXFILTER_ACTION_1) & BIT_MASK_RXFILTER_ACTION_1)
#define BIT_SET_RXFILTER_ACTION_1(x, v)		(BIT_CLEAR_RXFILTER_ACTION_1(x) | BIT_RXFILTER_ACTION_1(v))


/* 2 REG_RXFILTER_CATEGORY_2			(Offset 0x0684) */


#define BIT_SHIFT_RXFILTER_CATEGORY_2			0
#define BIT_MASK_RXFILTER_CATEGORY_2			0xff
#define BIT_RXFILTER_CATEGORY_2(x)			(((x) & BIT_MASK_RXFILTER_CATEGORY_2) << BIT_SHIFT_RXFILTER_CATEGORY_2)
#define BITS_RXFILTER_CATEGORY_2			(BIT_MASK_RXFILTER_CATEGORY_2 << BIT_SHIFT_RXFILTER_CATEGORY_2)
#define BIT_CLEAR_RXFILTER_CATEGORY_2(x)		((x) & (~BITS_RXFILTER_CATEGORY_2))
#define BIT_GET_RXFILTER_CATEGORY_2(x)			(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_2) & BIT_MASK_RXFILTER_CATEGORY_2)
#define BIT_SET_RXFILTER_CATEGORY_2(x, v)		(BIT_CLEAR_RXFILTER_CATEGORY_2(x) | BIT_RXFILTER_CATEGORY_2(v))


/* 2 REG_RXFILTER_ACTION_2			(Offset 0x0685) */


#define BIT_SHIFT_RXFILTER_ACTION_2			0
#define BIT_MASK_RXFILTER_ACTION_2			0xff
#define BIT_RXFILTER_ACTION_2(x)			(((x) & BIT_MASK_RXFILTER_ACTION_2) << BIT_SHIFT_RXFILTER_ACTION_2)
#define BITS_RXFILTER_ACTION_2				(BIT_MASK_RXFILTER_ACTION_2 << BIT_SHIFT_RXFILTER_ACTION_2)
#define BIT_CLEAR_RXFILTER_ACTION_2(x)			((x) & (~BITS_RXFILTER_ACTION_2))
#define BIT_GET_RXFILTER_ACTION_2(x)			(((x) >> BIT_SHIFT_RXFILTER_ACTION_2) & BIT_MASK_RXFILTER_ACTION_2)
#define BIT_SET_RXFILTER_ACTION_2(x, v)		(BIT_CLEAR_RXFILTER_ACTION_2(x) | BIT_RXFILTER_ACTION_2(v))


/* 2 REG_RXFILTER_CATEGORY_3			(Offset 0x0686) */


#define BIT_SHIFT_RXFILTER_CATEGORY_3			0
#define BIT_MASK_RXFILTER_CATEGORY_3			0xff
#define BIT_RXFILTER_CATEGORY_3(x)			(((x) & BIT_MASK_RXFILTER_CATEGORY_3) << BIT_SHIFT_RXFILTER_CATEGORY_3)
#define BITS_RXFILTER_CATEGORY_3			(BIT_MASK_RXFILTER_CATEGORY_3 << BIT_SHIFT_RXFILTER_CATEGORY_3)
#define BIT_CLEAR_RXFILTER_CATEGORY_3(x)		((x) & (~BITS_RXFILTER_CATEGORY_3))
#define BIT_GET_RXFILTER_CATEGORY_3(x)			(((x) >> BIT_SHIFT_RXFILTER_CATEGORY_3) & BIT_MASK_RXFILTER_CATEGORY_3)
#define BIT_SET_RXFILTER_CATEGORY_3(x, v)		(BIT_CLEAR_RXFILTER_CATEGORY_3(x) | BIT_RXFILTER_CATEGORY_3(v))


/* 2 REG_RXFILTER_ACTION_3			(Offset 0x0687) */


#define BIT_SHIFT_RXFILTER_ACTION_3			0
#define BIT_MASK_RXFILTER_ACTION_3			0xff
#define BIT_RXFILTER_ACTION_3(x)			(((x) & BIT_MASK_RXFILTER_ACTION_3) << BIT_SHIFT_RXFILTER_ACTION_3)
#define BITS_RXFILTER_ACTION_3				(BIT_MASK_RXFILTER_ACTION_3 << BIT_SHIFT_RXFILTER_ACTION_3)
#define BIT_CLEAR_RXFILTER_ACTION_3(x)			((x) & (~BITS_RXFILTER_ACTION_3))
#define BIT_GET_RXFILTER_ACTION_3(x)			(((x) >> BIT_SHIFT_RXFILTER_ACTION_3) & BIT_MASK_RXFILTER_ACTION_3)
#define BIT_SET_RXFILTER_ACTION_3(x, v)		(BIT_CLEAR_RXFILTER_ACTION_3(x) | BIT_RXFILTER_ACTION_3(v))


/* 2 REG_RXFLTMAP3				(Offset 0x0688) */

#define BIT_MGTFLT15EN_FW				BIT(15)
#define BIT_MGTFLT14EN_FW				BIT(14)
#define BIT_MGTFLT13EN_FW				BIT(13)
#define BIT_MGTFLT12EN_FW				BIT(12)
#define BIT_MGTFLT11EN_FW				BIT(11)
#define BIT_MGTFLT10EN_FW				BIT(10)
#define BIT_MGTFLT9EN_FW				BIT(9)
#define BIT_MGTFLT8EN_FW				BIT(8)
#define BIT_MGTFLT7EN_FW				BIT(7)
#define BIT_MGTFLT6EN_FW				BIT(6)
#define BIT_MGTFLT5EN_FW				BIT(5)
#define BIT_MGTFLT4EN_FW				BIT(4)
#define BIT_MGTFLT3EN_FW				BIT(3)
#define BIT_MGTFLT2EN_FW				BIT(2)
#define BIT_MGTFLT1EN_FW				BIT(1)
#define BIT_MGTFLT0EN_FW				BIT(0)

/* 2 REG_RXFLTMAP4				(Offset 0x068A) */

#define BIT_CTRLFLT15EN_FW				BIT(15)
#define BIT_CTRLFLT14EN_FW				BIT(14)
#define BIT_CTRLFLT13EN_FW				BIT(13)
#define BIT_CTRLFLT12EN_FW				BIT(12)
#define BIT_CTRLFLT11EN_FW				BIT(11)
#define BIT_CTRLFLT10EN_FW				BIT(10)
#define BIT_CTRLFLT9EN_FW				BIT(9)
#define BIT_CTRLFLT8EN_FW				BIT(8)
#define BIT_CTRLFLT7EN_FW				BIT(7)
#define BIT_CTRLFLT6EN_FW				BIT(6)
#define BIT_CTRLFLT5EN_FW				BIT(5)
#define BIT_CTRLFLT4EN_FW				BIT(4)
#define BIT_CTRLFLT3EN_FW				BIT(3)
#define BIT_CTRLFLT2EN_FW				BIT(2)
#define BIT_CTRLFLT1EN_FW				BIT(1)
#define BIT_CTRLFLT0EN_FW				BIT(0)

/* 2 REG_RXFLTMAP5				(Offset 0x068C) */

#define BIT_DATAFLT15EN_FW				BIT(15)
#define BIT_DATAFLT14EN_FW				BIT(14)
#define BIT_DATAFLT13EN_FW				BIT(13)
#define BIT_DATAFLT12EN_FW				BIT(12)
#define BIT_DATAFLT11EN_FW				BIT(11)
#define BIT_DATAFLT10EN_FW				BIT(10)
#define BIT_DATAFLT9EN_FW				BIT(9)
#define BIT_DATAFLT8EN_FW				BIT(8)
#define BIT_DATAFLT7EN_FW				BIT(7)
#define BIT_DATAFLT6EN_FW				BIT(6)
#define BIT_DATAFLT5EN_FW				BIT(5)
#define BIT_DATAFLT4EN_FW				BIT(4)
#define BIT_DATAFLT3EN_FW				BIT(3)
#define BIT_DATAFLT2EN_FW				BIT(2)
#define BIT_DATAFLT1EN_FW				BIT(1)
#define BIT_DATAFLT0EN_FW				BIT(0)

/* 2 REG_RXFLTMAP6				(Offset 0x068E) */

#define BIT_ACTIONFLT15EN_FW				BIT(15)
#define BIT_ACTIONFLT14EN_FW				BIT(14)
#define BIT_ACTIONFLT13EN_FW				BIT(13)
#define BIT_ACTIONFLT12EN_FW				BIT(12)
#define BIT_ACTIONFLT11EN_FW				BIT(11)
#define BIT_ACTIONFLT10EN_FW				BIT(10)
#define BIT_ACTIONFLT9EN_FW				BIT(9)
#define BIT_ACTIONFLT8EN_FW				BIT(8)
#define BIT_ACTIONFLT7EN_FW				BIT(7)
#define BIT_ACTIONFLT6EN_FW				BIT(6)
#define BIT_ACTIONFLT5EN_FW				BIT(5)
#define BIT_ACTIONFLT4EN_FW				BIT(4)
#define BIT_ACTIONFLT3EN_FW				BIT(3)
#define BIT_ACTIONFLT2EN_FW				BIT(2)
#define BIT_ACTIONFLT1EN_FW				BIT(1)
#define BIT_ACTIONFLT0EN_FW				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WOW_CTRL				(Offset 0x0690) */


#define BIT_SHIFT_PSF_BSSIDSEL_B2B1			6
#define BIT_MASK_PSF_BSSIDSEL_B2B1			0x3
#define BIT_PSF_BSSIDSEL_B2B1(x)			(((x) & BIT_MASK_PSF_BSSIDSEL_B2B1) << BIT_SHIFT_PSF_BSSIDSEL_B2B1)
#define BITS_PSF_BSSIDSEL_B2B1				(BIT_MASK_PSF_BSSIDSEL_B2B1 << BIT_SHIFT_PSF_BSSIDSEL_B2B1)
#define BIT_CLEAR_PSF_BSSIDSEL_B2B1(x)			((x) & (~BITS_PSF_BSSIDSEL_B2B1))
#define BIT_GET_PSF_BSSIDSEL_B2B1(x)			(((x) >> BIT_SHIFT_PSF_BSSIDSEL_B2B1) & BIT_MASK_PSF_BSSIDSEL_B2B1)
#define BIT_SET_PSF_BSSIDSEL_B2B1(x, v)		(BIT_CLEAR_PSF_BSSIDSEL_B2B1(x) | BIT_PSF_BSSIDSEL_B2B1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WOW_CTRL				(Offset 0x0690) */

#define BIT_WOWHCI					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WOW_CTRL				(Offset 0x0690) */

#define BIT_PSF_BSSIDSEL				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WOW_CTRL				(Offset 0x0690) */

#define BIT_PSF_BSSIDSEL_B0				BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WOW_CTRL				(Offset 0x0690) */

#define BIT_UWF					BIT(3)
#define BIT_MAGIC					BIT(2)
#define BIT_WOWEN					BIT(1)
#define BIT_FORCE_WAKEUP				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NAN_RX_TSF_FILTER			(Offset 0x0691) */

#define BIT_CHK_TSF_TA					BIT(2)
#define BIT_CHK_TSF_CBSSID				BIT(1)
#define BIT_CHK_TSF_EN					BIT(0)

/* 2 REG_PS_RX_INFO				(Offset 0x0692) */


#define BIT_SHIFT_PORTSEL__PS_RX_INFO			5
#define BIT_MASK_PORTSEL__PS_RX_INFO			0x7
#define BIT_PORTSEL__PS_RX_INFO(x)			(((x) & BIT_MASK_PORTSEL__PS_RX_INFO) << BIT_SHIFT_PORTSEL__PS_RX_INFO)
#define BITS_PORTSEL__PS_RX_INFO			(BIT_MASK_PORTSEL__PS_RX_INFO << BIT_SHIFT_PORTSEL__PS_RX_INFO)
#define BIT_CLEAR_PORTSEL__PS_RX_INFO(x)		((x) & (~BITS_PORTSEL__PS_RX_INFO))
#define BIT_GET_PORTSEL__PS_RX_INFO(x)			(((x) >> BIT_SHIFT_PORTSEL__PS_RX_INFO) & BIT_MASK_PORTSEL__PS_RX_INFO)
#define BIT_SET_PORTSEL__PS_RX_INFO(x, v)		(BIT_CLEAR_PORTSEL__PS_RX_INFO(x) | BIT_PORTSEL__PS_RX_INFO(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_PS_RX_INFO				(Offset 0x0692) */

#define BIT_RXCTRLIN0					BIT(4)
#define BIT_RXMGTIN0					BIT(3)
#define BIT_RXDATAIN2					BIT(2)
#define BIT_RXDATAIN1					BIT(1)
#define BIT_RXDATAIN0					BIT(0)

/* 2 REG_WMMPS_UAPSD_TID			(Offset 0x0693) */

#define BIT_WMMPS_UAPSD_TID7				BIT(7)
#define BIT_WMMPS_UAPSD_TID6				BIT(6)
#define BIT_WMMPS_UAPSD_TID5				BIT(5)
#define BIT_WMMPS_UAPSD_TID4				BIT(4)
#define BIT_WMMPS_UAPSD_TID3				BIT(3)
#define BIT_WMMPS_UAPSD_TID2				BIT(2)
#define BIT_WMMPS_UAPSD_TID1				BIT(1)
#define BIT_WMMPS_UAPSD_TID0				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_LPNAV_CTRL				(Offset 0x0694) */

#define BIT_LPNAV_EN					BIT(31)

#define BIT_SHIFT_LPNAV_EARLY				16
#define BIT_MASK_LPNAV_EARLY				0x7fff
#define BIT_LPNAV_EARLY(x)				(((x) & BIT_MASK_LPNAV_EARLY) << BIT_SHIFT_LPNAV_EARLY)
#define BITS_LPNAV_EARLY				(BIT_MASK_LPNAV_EARLY << BIT_SHIFT_LPNAV_EARLY)
#define BIT_CLEAR_LPNAV_EARLY(x)			((x) & (~BITS_LPNAV_EARLY))
#define BIT_GET_LPNAV_EARLY(x)				(((x) >> BIT_SHIFT_LPNAV_EARLY) & BIT_MASK_LPNAV_EARLY)
#define BIT_SET_LPNAV_EARLY(x, v)			(BIT_CLEAR_LPNAV_EARLY(x) | BIT_LPNAV_EARLY(v))


#define BIT_SHIFT_LPNAV_TH				0
#define BIT_MASK_LPNAV_TH				0xffff
#define BIT_LPNAV_TH(x)				(((x) & BIT_MASK_LPNAV_TH) << BIT_SHIFT_LPNAV_TH)
#define BITS_LPNAV_TH					(BIT_MASK_LPNAV_TH << BIT_SHIFT_LPNAV_TH)
#define BIT_CLEAR_LPNAV_TH(x)				((x) & (~BITS_LPNAV_TH))
#define BIT_GET_LPNAV_TH(x)				(((x) >> BIT_SHIFT_LPNAV_TH) & BIT_MASK_LPNAV_TH)
#define BIT_SET_LPNAV_TH(x, v)				(BIT_CLEAR_LPNAV_TH(x) | BIT_LPNAV_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */

#define BIT_WKFCAM_POLLING_V1				BIT(31)
#define BIT_WKFCAM_CLR_V1				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */

#define BIT_WKFCAM_WE					BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */


#define BIT_SHIFT_WKFCAM_ADDR_V2			8
#define BIT_MASK_WKFCAM_ADDR_V2			0xff
#define BIT_WKFCAM_ADDR_V2(x)				(((x) & BIT_MASK_WKFCAM_ADDR_V2) << BIT_SHIFT_WKFCAM_ADDR_V2)
#define BITS_WKFCAM_ADDR_V2				(BIT_MASK_WKFCAM_ADDR_V2 << BIT_SHIFT_WKFCAM_ADDR_V2)
#define BIT_CLEAR_WKFCAM_ADDR_V2(x)			((x) & (~BITS_WKFCAM_ADDR_V2))
#define BIT_GET_WKFCAM_ADDR_V2(x)			(((x) >> BIT_SHIFT_WKFCAM_ADDR_V2) & BIT_MASK_WKFCAM_ADDR_V2)
#define BIT_SET_WKFCAM_ADDR_V2(x, v)			(BIT_CLEAR_WKFCAM_ADDR_V2(x) | BIT_WKFCAM_ADDR_V2(v))

#define BIT_WMAC_RESP_NONSTA1_DIS			BIT(7)

#define BIT_SHIFT_WMAC_TXMU_ACKPOLICY			4
#define BIT_MASK_WMAC_TXMU_ACKPOLICY			0x3
#define BIT_WMAC_TXMU_ACKPOLICY(x)			(((x) & BIT_MASK_WMAC_TXMU_ACKPOLICY) << BIT_SHIFT_WMAC_TXMU_ACKPOLICY)
#define BITS_WMAC_TXMU_ACKPOLICY			(BIT_MASK_WMAC_TXMU_ACKPOLICY << BIT_SHIFT_WMAC_TXMU_ACKPOLICY)
#define BIT_CLEAR_WMAC_TXMU_ACKPOLICY(x)		((x) & (~BITS_WMAC_TXMU_ACKPOLICY))
#define BIT_GET_WMAC_TXMU_ACKPOLICY(x)			(((x) >> BIT_SHIFT_WMAC_TXMU_ACKPOLICY) & BIT_MASK_WMAC_TXMU_ACKPOLICY)
#define BIT_SET_WMAC_TXMU_ACKPOLICY(x, v)		(BIT_CLEAR_WMAC_TXMU_ACKPOLICY(x) | BIT_WMAC_TXMU_ACKPOLICY(v))


#define BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL		1
#define BIT_MASK_WMAC_MU_BFEE_PORT_SEL			0x7
#define BIT_WMAC_MU_BFEE_PORT_SEL(x)			(((x) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL) << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL)
#define BITS_WMAC_MU_BFEE_PORT_SEL			(BIT_MASK_WMAC_MU_BFEE_PORT_SEL << BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL)
#define BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL(x)		((x) & (~BITS_WMAC_MU_BFEE_PORT_SEL))
#define BIT_GET_WMAC_MU_BFEE_PORT_SEL(x)		(((x) >> BIT_SHIFT_WMAC_MU_BFEE_PORT_SEL) & BIT_MASK_WMAC_MU_BFEE_PORT_SEL)
#define BIT_SET_WMAC_MU_BFEE_PORT_SEL(x, v)		(BIT_CLEAR_WMAC_MU_BFEE_PORT_SEL(x) | BIT_WMAC_MU_BFEE_PORT_SEL(v))


#define BIT_SHIFT_WKFCAM_CAM_NUM_V1			0
#define BIT_MASK_WKFCAM_CAM_NUM_V1			0xff
#define BIT_WKFCAM_CAM_NUM_V1(x)			(((x) & BIT_MASK_WKFCAM_CAM_NUM_V1) << BIT_SHIFT_WKFCAM_CAM_NUM_V1)
#define BITS_WKFCAM_CAM_NUM_V1				(BIT_MASK_WKFCAM_CAM_NUM_V1 << BIT_SHIFT_WKFCAM_CAM_NUM_V1)
#define BIT_CLEAR_WKFCAM_CAM_NUM_V1(x)			((x) & (~BITS_WKFCAM_CAM_NUM_V1))
#define BIT_GET_WKFCAM_CAM_NUM_V1(x)			(((x) >> BIT_SHIFT_WKFCAM_CAM_NUM_V1) & BIT_MASK_WKFCAM_CAM_NUM_V1)
#define BIT_SET_WKFCAM_CAM_NUM_V1(x, v)		(BIT_CLEAR_WKFCAM_CAM_NUM_V1(x) | BIT_WKFCAM_CAM_NUM_V1(v))

#define BIT_WMAC_MU_BFEE_DIS				BIT(0)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_WKFMCAM_CMD				(Offset 0x0698) */


#define BIT_SHIFT_WKFCAM_ADDR				0
#define BIT_MASK_WKFCAM_ADDR				0x7f
#define BIT_WKFCAM_ADDR(x)				(((x) & BIT_MASK_WKFCAM_ADDR) << BIT_SHIFT_WKFCAM_ADDR)
#define BITS_WKFCAM_ADDR				(BIT_MASK_WKFCAM_ADDR << BIT_SHIFT_WKFCAM_ADDR)
#define BIT_CLEAR_WKFCAM_ADDR(x)			((x) & (~BITS_WKFCAM_ADDR))
#define BIT_GET_WKFCAM_ADDR(x)				(((x) >> BIT_SHIFT_WKFCAM_ADDR) & BIT_MASK_WKFCAM_ADDR)
#define BIT_SET_WKFCAM_ADDR(x, v)			(BIT_CLEAR_WKFCAM_ADDR(x) | BIT_WKFCAM_ADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WKFMCAM_RWD				(Offset 0x069C) */


#define BIT_SHIFT_WKFMCAM_RWD				0
#define BIT_MASK_WKFMCAM_RWD				0xffffffffL
#define BIT_WKFMCAM_RWD(x)				(((x) & BIT_MASK_WKFMCAM_RWD) << BIT_SHIFT_WKFMCAM_RWD)
#define BITS_WKFMCAM_RWD				(BIT_MASK_WKFMCAM_RWD << BIT_SHIFT_WKFMCAM_RWD)
#define BIT_CLEAR_WKFMCAM_RWD(x)			((x) & (~BITS_WKFMCAM_RWD))
#define BIT_GET_WKFMCAM_RWD(x)				(((x) >> BIT_SHIFT_WKFMCAM_RWD) & BIT_MASK_WKFMCAM_RWD)
#define BIT_SET_WKFMCAM_RWD(x, v)			(BIT_CLEAR_WKFMCAM_RWD(x) | BIT_WKFMCAM_RWD(v))


/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */

#define BIT_MGTFLT15EN					BIT(15)
#define BIT_MGTFLT14EN					BIT(14)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */

#define BIT_MGTFLT13EN					BIT(13)
#define BIT_MGTFLT12EN					BIT(12)
#define BIT_MGTFLT11EN					BIT(11)
#define BIT_MGTFLT10EN					BIT(10)
#define BIT_MGTFLT9EN					BIT(9)
#define BIT_MGTFLT8EN					BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */

#define BIT_MGTFLT7EN					BIT(7)
#define BIT_MGTFLT6EN					BIT(6)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP0				(Offset 0x06A0) */

#define BIT_MGTFLT5EN					BIT(5)
#define BIT_MGTFLT4EN					BIT(4)
#define BIT_MGTFLT3EN					BIT(3)
#define BIT_MGTFLT2EN					BIT(2)
#define BIT_MGTFLT1EN					BIT(1)
#define BIT_MGTFLT0EN					BIT(0)

/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT15EN				BIT(15)
#define BIT_DATAFLT15EN				BIT(15)
#define BIT_CTRLFLT14EN				BIT(14)
#define BIT_DATAFLT14EN				BIT(14)
#define BIT_CTRLFLT13EN				BIT(13)
#define BIT_DATAFLT13EN				BIT(13)
#define BIT_CTRLFLT12EN				BIT(12)
#define BIT_DATAFLT12EN				BIT(12)
#define BIT_CTRLFLT11EN				BIT(11)
#define BIT_DATAFLT11EN				BIT(11)
#define BIT_CTRLFLT10EN				BIT(10)
#define BIT_DATAFLT10EN				BIT(10)
#define BIT_CTRLFLT9EN					BIT(9)
#define BIT_DATAFLT9EN					BIT(9)
#define BIT_CTRLFLT8EN					BIT(8)
#define BIT_DATAFLT8EN					BIT(8)
#define BIT_CTRLFLT7EN					BIT(7)
#define BIT_DATAFLT7EN					BIT(7)
#define BIT_CTRLFLT6EN					BIT(6)
#define BIT_DATAFLT6EN					BIT(6)
#define BIT_DATAFLT5EN					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT5EN					BIT(5)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_DATAFLT4EN					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT4EN					BIT(4)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_DATAFLT3EN					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT3EN					BIT(3)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_DATAFLT2EN					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT2EN					BIT(2)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_DATAFLT1EN					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT1EN					BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_DATAFLT0EN					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXFLTMAP1				(Offset 0x06A2) */

#define BIT_CTRLFLT0EN					BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BCN_PSR_RPT				(Offset 0x06A8) */


#define BIT_SHIFT_DTIM_CNT				24
#define BIT_MASK_DTIM_CNT				0xff
#define BIT_DTIM_CNT(x)				(((x) & BIT_MASK_DTIM_CNT) << BIT_SHIFT_DTIM_CNT)
#define BITS_DTIM_CNT					(BIT_MASK_DTIM_CNT << BIT_SHIFT_DTIM_CNT)
#define BIT_CLEAR_DTIM_CNT(x)				((x) & (~BITS_DTIM_CNT))
#define BIT_GET_DTIM_CNT(x)				(((x) >> BIT_SHIFT_DTIM_CNT) & BIT_MASK_DTIM_CNT)
#define BIT_SET_DTIM_CNT(x, v)				(BIT_CLEAR_DTIM_CNT(x) | BIT_DTIM_CNT(v))


#define BIT_SHIFT_DTIM_PERIOD				16
#define BIT_MASK_DTIM_PERIOD				0xff
#define BIT_DTIM_PERIOD(x)				(((x) & BIT_MASK_DTIM_PERIOD) << BIT_SHIFT_DTIM_PERIOD)
#define BITS_DTIM_PERIOD				(BIT_MASK_DTIM_PERIOD << BIT_SHIFT_DTIM_PERIOD)
#define BIT_CLEAR_DTIM_PERIOD(x)			((x) & (~BITS_DTIM_PERIOD))
#define BIT_GET_DTIM_PERIOD(x)				(((x) >> BIT_SHIFT_DTIM_PERIOD) & BIT_MASK_DTIM_PERIOD)
#define BIT_SET_DTIM_PERIOD(x, v)			(BIT_CLEAR_DTIM_PERIOD(x) | BIT_DTIM_PERIOD(v))

#define BIT_DTIM					BIT(15)
#define BIT_TIM					BIT(14)

#define BIT_SHIFT_PS_AID_0				0
#define BIT_MASK_PS_AID_0				0x7ff
#define BIT_PS_AID_0(x)				(((x) & BIT_MASK_PS_AID_0) << BIT_SHIFT_PS_AID_0)
#define BITS_PS_AID_0					(BIT_MASK_PS_AID_0 << BIT_SHIFT_PS_AID_0)
#define BIT_CLEAR_PS_AID_0(x)				((x) & (~BITS_PS_AID_0))
#define BIT_GET_PS_AID_0(x)				(((x) >> BIT_SHIFT_PS_AID_0) & BIT_MASK_PS_AID_0)
#define BIT_SET_PS_AID_0(x, v)				(BIT_CLEAR_PS_AID_0(x) | BIT_PS_AID_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_FLC_RPC				(Offset 0x06AC) */


#define BIT_SHIFT_FLC_RPC				0
#define BIT_MASK_FLC_RPC				0xff
#define BIT_FLC_RPC(x)					(((x) & BIT_MASK_FLC_RPC) << BIT_SHIFT_FLC_RPC)
#define BITS_FLC_RPC					(BIT_MASK_FLC_RPC << BIT_SHIFT_FLC_RPC)
#define BIT_CLEAR_FLC_RPC(x)				((x) & (~BITS_FLC_RPC))
#define BIT_GET_FLC_RPC(x)				(((x) >> BIT_SHIFT_FLC_RPC) & BIT_MASK_FLC_RPC)
#define BIT_SET_FLC_RPC(x, v)				(BIT_CLEAR_FLC_RPC(x) | BIT_FLC_RPC(v))


/* 2 REG_FLC_RPCT				(Offset 0x06AD) */


#define BIT_SHIFT_FLC_RPCT				0
#define BIT_MASK_FLC_RPCT				0xff
#define BIT_FLC_RPCT(x)				(((x) & BIT_MASK_FLC_RPCT) << BIT_SHIFT_FLC_RPCT)
#define BITS_FLC_RPCT					(BIT_MASK_FLC_RPCT << BIT_SHIFT_FLC_RPCT)
#define BIT_CLEAR_FLC_RPCT(x)				((x) & (~BITS_FLC_RPCT))
#define BIT_GET_FLC_RPCT(x)				(((x) >> BIT_SHIFT_FLC_RPCT) & BIT_MASK_FLC_RPCT)
#define BIT_SET_FLC_RPCT(x, v)				(BIT_CLEAR_FLC_RPCT(x) | BIT_FLC_RPCT(v))


/* 2 REG_FLC_PTS				(Offset 0x06AE) */

#define BIT_CMF					BIT(2)
#define BIT_CCF					BIT(1)
#define BIT_CDF					BIT(0)

/* 2 REG_FLC_TRPC				(Offset 0x06AF) */

#define BIT_FLC_RPCT_V1				BIT(7)
#define BIT_MODE					BIT(6)

#define BIT_SHIFT_TRPCD				0
#define BIT_MASK_TRPCD					0x3f
#define BIT_TRPCD(x)					(((x) & BIT_MASK_TRPCD) << BIT_SHIFT_TRPCD)
#define BITS_TRPCD					(BIT_MASK_TRPCD << BIT_SHIFT_TRPCD)
#define BIT_CLEAR_TRPCD(x)				((x) & (~BITS_TRPCD))
#define BIT_GET_TRPCD(x)				(((x) >> BIT_SHIFT_TRPCD) & BIT_MASK_TRPCD)
#define BIT_SET_TRPCD(x, v)				(BIT_CLEAR_TRPCD(x) | BIT_TRPCD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXPKTMON_CTRL			(Offset 0x06B0) */


#define BIT_SHIFT_RXBKQPKT_SEQ				20
#define BIT_MASK_RXBKQPKT_SEQ				0xf
#define BIT_RXBKQPKT_SEQ(x)				(((x) & BIT_MASK_RXBKQPKT_SEQ) << BIT_SHIFT_RXBKQPKT_SEQ)
#define BITS_RXBKQPKT_SEQ				(BIT_MASK_RXBKQPKT_SEQ << BIT_SHIFT_RXBKQPKT_SEQ)
#define BIT_CLEAR_RXBKQPKT_SEQ(x)			((x) & (~BITS_RXBKQPKT_SEQ))
#define BIT_GET_RXBKQPKT_SEQ(x)			(((x) >> BIT_SHIFT_RXBKQPKT_SEQ) & BIT_MASK_RXBKQPKT_SEQ)
#define BIT_SET_RXBKQPKT_SEQ(x, v)			(BIT_CLEAR_RXBKQPKT_SEQ(x) | BIT_RXBKQPKT_SEQ(v))


#define BIT_SHIFT_RXBEQPKT_SEQ				16
#define BIT_MASK_RXBEQPKT_SEQ				0xf
#define BIT_RXBEQPKT_SEQ(x)				(((x) & BIT_MASK_RXBEQPKT_SEQ) << BIT_SHIFT_RXBEQPKT_SEQ)
#define BITS_RXBEQPKT_SEQ				(BIT_MASK_RXBEQPKT_SEQ << BIT_SHIFT_RXBEQPKT_SEQ)
#define BIT_CLEAR_RXBEQPKT_SEQ(x)			((x) & (~BITS_RXBEQPKT_SEQ))
#define BIT_GET_RXBEQPKT_SEQ(x)			(((x) >> BIT_SHIFT_RXBEQPKT_SEQ) & BIT_MASK_RXBEQPKT_SEQ)
#define BIT_SET_RXBEQPKT_SEQ(x, v)			(BIT_CLEAR_RXBEQPKT_SEQ(x) | BIT_RXBEQPKT_SEQ(v))


#define BIT_SHIFT_RXVIQPKT_SEQ				12
#define BIT_MASK_RXVIQPKT_SEQ				0xf
#define BIT_RXVIQPKT_SEQ(x)				(((x) & BIT_MASK_RXVIQPKT_SEQ) << BIT_SHIFT_RXVIQPKT_SEQ)
#define BITS_RXVIQPKT_SEQ				(BIT_MASK_RXVIQPKT_SEQ << BIT_SHIFT_RXVIQPKT_SEQ)
#define BIT_CLEAR_RXVIQPKT_SEQ(x)			((x) & (~BITS_RXVIQPKT_SEQ))
#define BIT_GET_RXVIQPKT_SEQ(x)			(((x) >> BIT_SHIFT_RXVIQPKT_SEQ) & BIT_MASK_RXVIQPKT_SEQ)
#define BIT_SET_RXVIQPKT_SEQ(x, v)			(BIT_CLEAR_RXVIQPKT_SEQ(x) | BIT_RXVIQPKT_SEQ(v))


#define BIT_SHIFT_RXVOQPKT_SEQ				8
#define BIT_MASK_RXVOQPKT_SEQ				0xf
#define BIT_RXVOQPKT_SEQ(x)				(((x) & BIT_MASK_RXVOQPKT_SEQ) << BIT_SHIFT_RXVOQPKT_SEQ)
#define BITS_RXVOQPKT_SEQ				(BIT_MASK_RXVOQPKT_SEQ << BIT_SHIFT_RXVOQPKT_SEQ)
#define BIT_CLEAR_RXVOQPKT_SEQ(x)			((x) & (~BITS_RXVOQPKT_SEQ))
#define BIT_GET_RXVOQPKT_SEQ(x)			(((x) >> BIT_SHIFT_RXVOQPKT_SEQ) & BIT_MASK_RXVOQPKT_SEQ)
#define BIT_SET_RXVOQPKT_SEQ(x, v)			(BIT_CLEAR_RXVOQPKT_SEQ(x) | BIT_RXVOQPKT_SEQ(v))

#define BIT_RXBKQPKT_ERR				BIT(7)
#define BIT_RXBEQPKT_ERR				BIT(6)
#define BIT_RXVIQPKT_ERR				BIT(5)
#define BIT_RXVOQPKT_ERR				BIT(4)
#define BIT_RXDMA_MON_EN				BIT(2)
#define BIT_RXPKT_MON_RST				BIT(1)
#define BIT_RXPKT_MON_EN				BIT(0)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_STATE_MON				(Offset 0x06B4) */


#define BIT_SHIFT_DMA_MON_EN				24
#define BIT_MASK_DMA_MON_EN				0x1f
#define BIT_DMA_MON_EN(x)				(((x) & BIT_MASK_DMA_MON_EN) << BIT_SHIFT_DMA_MON_EN)
#define BITS_DMA_MON_EN				(BIT_MASK_DMA_MON_EN << BIT_SHIFT_DMA_MON_EN)
#define BIT_CLEAR_DMA_MON_EN(x)			((x) & (~BITS_DMA_MON_EN))
#define BIT_GET_DMA_MON_EN(x)				(((x) >> BIT_SHIFT_DMA_MON_EN) & BIT_MASK_DMA_MON_EN)
#define BIT_SET_DMA_MON_EN(x, v)			(BIT_CLEAR_DMA_MON_EN(x) | BIT_DMA_MON_EN(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_STATE_MON				(Offset 0x06B4) */


#define BIT_SHIFT_STATE_SEL				24
#define BIT_MASK_STATE_SEL				0x1f
#define BIT_STATE_SEL(x)				(((x) & BIT_MASK_STATE_SEL) << BIT_SHIFT_STATE_SEL)
#define BITS_STATE_SEL					(BIT_MASK_STATE_SEL << BIT_SHIFT_STATE_SEL)
#define BIT_CLEAR_STATE_SEL(x)				((x) & (~BITS_STATE_SEL))
#define BIT_GET_STATE_SEL(x)				(((x) >> BIT_SHIFT_STATE_SEL) & BIT_MASK_STATE_SEL)
#define BIT_SET_STATE_SEL(x, v)			(BIT_CLEAR_STATE_SEL(x) | BIT_STATE_SEL(v))


#define BIT_SHIFT_STATE_INFO				8
#define BIT_MASK_STATE_INFO				0xff
#define BIT_STATE_INFO(x)				(((x) & BIT_MASK_STATE_INFO) << BIT_SHIFT_STATE_INFO)
#define BITS_STATE_INFO				(BIT_MASK_STATE_INFO << BIT_SHIFT_STATE_INFO)
#define BIT_CLEAR_STATE_INFO(x)			((x) & (~BITS_STATE_INFO))
#define BIT_GET_STATE_INFO(x)				(((x) >> BIT_SHIFT_STATE_INFO) & BIT_MASK_STATE_INFO)
#define BIT_SET_STATE_INFO(x, v)			(BIT_CLEAR_STATE_INFO(x) | BIT_STATE_INFO(v))

#define BIT_UPD_NXT_STATE				BIT(7)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_STATE_MON				(Offset 0x06B4) */


#define BIT_SHIFT_PKT_MON_EN				0
#define BIT_MASK_PKT_MON_EN				0x7f
#define BIT_PKT_MON_EN(x)				(((x) & BIT_MASK_PKT_MON_EN) << BIT_SHIFT_PKT_MON_EN)
#define BITS_PKT_MON_EN				(BIT_MASK_PKT_MON_EN << BIT_SHIFT_PKT_MON_EN)
#define BIT_CLEAR_PKT_MON_EN(x)			((x) & (~BITS_PKT_MON_EN))
#define BIT_GET_PKT_MON_EN(x)				(((x) >> BIT_SHIFT_PKT_MON_EN) & BIT_MASK_PKT_MON_EN)
#define BIT_SET_PKT_MON_EN(x, v)			(BIT_CLEAR_PKT_MON_EN(x) | BIT_PKT_MON_EN(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_STATE_MON				(Offset 0x06B4) */


#define BIT_SHIFT_CUR_STATE				0
#define BIT_MASK_CUR_STATE				0x7f
#define BIT_CUR_STATE(x)				(((x) & BIT_MASK_CUR_STATE) << BIT_SHIFT_CUR_STATE)
#define BITS_CUR_STATE					(BIT_MASK_CUR_STATE << BIT_SHIFT_CUR_STATE)
#define BIT_CLEAR_CUR_STATE(x)				((x) & (~BITS_CUR_STATE))
#define BIT_GET_CUR_STATE(x)				(((x) >> BIT_SHIFT_CUR_STATE) & BIT_MASK_CUR_STATE)
#define BIT_SET_CUR_STATE(x, v)			(BIT_CLEAR_CUR_STATE(x) | BIT_CUR_STATE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_CSIRPT_LEN_BB_MORE_THAN_MAC		BIT(23)
#define BIT_CSI_CHKSUM_ERROR				BIT(22)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_BFM_RPTNUM_ERROR				BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_MACRX_ERR_5				BIT(21)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_BFM_CHECKSUM_ERROR				BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_MACRX_ERR_4				BIT(20)
#define BIT_MACRX_ERR_3				BIT(19)
#define BIT_MACRX_ERR_2				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_MACRX_ERR_1				BIT(17)
#define BIT_MACRX_ERR_0				BIT(16)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_PRETX_ERRHDL_EN				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_WMAC_PRETX_ERRHDL_EN			BIT(15)
#define BIT_MACTX_ERR_5				BIT(5)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_MACTX_ERR_4				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ERROR_MON				(Offset 0x06B8) */

#define BIT_MACTX_ERR_3				BIT(3)
#define BIT_MACTX_ERR_2				BIT(2)
#define BIT_MACTX_ERR_1				BIT(1)
#define BIT_MACTX_ERR_0				BIT(0)

/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */

#define BIT_EN_TXRPTBUF_CLK				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */


#define BIT_SHIFT_INFO_INDEX_OFFSET			16
#define BIT_MASK_INFO_INDEX_OFFSET			0x1fff
#define BIT_INFO_INDEX_OFFSET(x)			(((x) & BIT_MASK_INFO_INDEX_OFFSET) << BIT_SHIFT_INFO_INDEX_OFFSET)
#define BITS_INFO_INDEX_OFFSET				(BIT_MASK_INFO_INDEX_OFFSET << BIT_SHIFT_INFO_INDEX_OFFSET)
#define BIT_CLEAR_INFO_INDEX_OFFSET(x)			((x) & (~BITS_INFO_INDEX_OFFSET))
#define BIT_GET_INFO_INDEX_OFFSET(x)			(((x) >> BIT_SHIFT_INFO_INDEX_OFFSET) & BIT_MASK_INFO_INDEX_OFFSET)
#define BIT_SET_INFO_INDEX_OFFSET(x, v)		(BIT_CLEAR_INFO_INDEX_OFFSET(x) | BIT_INFO_INDEX_OFFSET(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */

#define BIT_WMAC_SRCH_FIFOFULL				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SEARCH_MACID			(Offset 0x06BC) */

#define BIT_DIS_INFOSRCH				BIT(14)
#define BIT_DISABLE_B0					BIT(13)

#define BIT_SHIFT_INFO_ADDR_OFFSET			0
#define BIT_MASK_INFO_ADDR_OFFSET			0x1fff
#define BIT_INFO_ADDR_OFFSET(x)			(((x) & BIT_MASK_INFO_ADDR_OFFSET) << BIT_SHIFT_INFO_ADDR_OFFSET)
#define BITS_INFO_ADDR_OFFSET				(BIT_MASK_INFO_ADDR_OFFSET << BIT_SHIFT_INFO_ADDR_OFFSET)
#define BIT_CLEAR_INFO_ADDR_OFFSET(x)			((x) & (~BITS_INFO_ADDR_OFFSET))
#define BIT_GET_INFO_ADDR_OFFSET(x)			(((x) >> BIT_SHIFT_INFO_ADDR_OFFSET) & BIT_MASK_INFO_ADDR_OFFSET)
#define BIT_SET_INFO_ADDR_OFFSET(x, v)			(BIT_CLEAR_INFO_ADDR_OFFSET(x) | BIT_INFO_ADDR_OFFSET(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BT_COEX_TABLE			(Offset 0x06C0) */

#define BIT_PRI_MASK_RX_RESP				BIT(126)
#define BIT_PRI_MASK_RXOFDM				BIT(125)
#define BIT_PRI_MASK_RXCCK				BIT(124)
#define BIT_PRI_MASK_CCK				BIT(108)
#define BIT_PRI_MASK_OFDM				BIT(107)
#define BIT_PRI_MASK_RTY				BIT(106)
#define BIT_OOB					BIT(97)
#define BIT_ANT_SEL					BIT(96)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_BT_COEX_TABLE			(Offset 0x06C0) */


#define BIT_SHIFT_COEX_TABLE_1				0
#define BIT_MASK_COEX_TABLE_1				0xffffffffL
#define BIT_COEX_TABLE_1(x)				(((x) & BIT_MASK_COEX_TABLE_1) << BIT_SHIFT_COEX_TABLE_1)
#define BITS_COEX_TABLE_1				(BIT_MASK_COEX_TABLE_1 << BIT_SHIFT_COEX_TABLE_1)
#define BIT_CLEAR_COEX_TABLE_1(x)			((x) & (~BITS_COEX_TABLE_1))
#define BIT_GET_COEX_TABLE_1(x)			(((x) >> BIT_SHIFT_COEX_TABLE_1) & BIT_MASK_COEX_TABLE_1)
#define BIT_SET_COEX_TABLE_1(x, v)			(BIT_CLEAR_COEX_TABLE_1(x) | BIT_COEX_TABLE_1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BT_COEX_TABLE_H			(Offset 0x06CC) */

#define BIT_PRI_MASK_RX_RESP_V1			BIT(30)
#define BIT_PRI_MASK_RXOFDM_V1				BIT(29)
#define BIT_PRI_MASK_RXCCK_V1				BIT(28)
#define BIT_PRI_MASK_CCK_V1				BIT(12)
#define BIT_PRI_MASK_OFDM_V1				BIT(11)
#define BIT_PRI_MASK_RTY_V1				BIT(10)
#define BIT_OOB_V1					BIT(1)
#define BIT_ANT_SEL_V1					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXCMD_0				(Offset 0x06D0) */

#define BIT_RXCMD_EN					BIT(31)

#define BIT_SHIFT_RXCMD_INFO				0
#define BIT_MASK_RXCMD_INFO				0x7fffffffL
#define BIT_RXCMD_INFO(x)				(((x) & BIT_MASK_RXCMD_INFO) << BIT_SHIFT_RXCMD_INFO)
#define BITS_RXCMD_INFO				(BIT_MASK_RXCMD_INFO << BIT_SHIFT_RXCMD_INFO)
#define BIT_CLEAR_RXCMD_INFO(x)			((x) & (~BITS_RXCMD_INFO))
#define BIT_GET_RXCMD_INFO(x)				(((x) >> BIT_SHIFT_RXCMD_INFO) & BIT_MASK_RXCMD_INFO)
#define BIT_SET_RXCMD_INFO(x, v)			(BIT_CLEAR_RXCMD_INFO(x) | BIT_RXCMD_INFO(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RXCMD_1				(Offset 0x06D4) */


#define BIT_SHIFT_CSI_RADDR_LATCH			24
#define BIT_MASK_CSI_RADDR_LATCH			0xff
#define BIT_CSI_RADDR_LATCH(x)				(((x) & BIT_MASK_CSI_RADDR_LATCH) << BIT_SHIFT_CSI_RADDR_LATCH)
#define BITS_CSI_RADDR_LATCH				(BIT_MASK_CSI_RADDR_LATCH << BIT_SHIFT_CSI_RADDR_LATCH)
#define BIT_CLEAR_CSI_RADDR_LATCH(x)			((x) & (~BITS_CSI_RADDR_LATCH))
#define BIT_GET_CSI_RADDR_LATCH(x)			(((x) >> BIT_SHIFT_CSI_RADDR_LATCH) & BIT_MASK_CSI_RADDR_LATCH)
#define BIT_SET_CSI_RADDR_LATCH(x, v)			(BIT_CLEAR_CSI_RADDR_LATCH(x) | BIT_CSI_RADDR_LATCH(v))


#define BIT_SHIFT_CSI_WADDR_LATCH			16
#define BIT_MASK_CSI_WADDR_LATCH			0xff
#define BIT_CSI_WADDR_LATCH(x)				(((x) & BIT_MASK_CSI_WADDR_LATCH) << BIT_SHIFT_CSI_WADDR_LATCH)
#define BITS_CSI_WADDR_LATCH				(BIT_MASK_CSI_WADDR_LATCH << BIT_SHIFT_CSI_WADDR_LATCH)
#define BIT_CLEAR_CSI_WADDR_LATCH(x)			((x) & (~BITS_CSI_WADDR_LATCH))
#define BIT_GET_CSI_WADDR_LATCH(x)			(((x) >> BIT_SHIFT_CSI_WADDR_LATCH) & BIT_MASK_CSI_WADDR_LATCH)
#define BIT_SET_CSI_WADDR_LATCH(x, v)			(BIT_CLEAR_CSI_WADDR_LATCH(x) | BIT_CSI_WADDR_LATCH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RXCMD_1				(Offset 0x06D4) */


#define BIT_SHIFT_RXCMD_PRD				0
#define BIT_MASK_RXCMD_PRD				0xffff
#define BIT_RXCMD_PRD(x)				(((x) & BIT_MASK_RXCMD_PRD) << BIT_SHIFT_RXCMD_PRD)
#define BITS_RXCMD_PRD					(BIT_MASK_RXCMD_PRD << BIT_SHIFT_RXCMD_PRD)
#define BIT_CLEAR_RXCMD_PRD(x)				((x) & (~BITS_RXCMD_PRD))
#define BIT_GET_RXCMD_PRD(x)				(((x) >> BIT_SHIFT_RXCMD_PRD) & BIT_MASK_RXCMD_PRD)
#define BIT_SET_RXCMD_PRD(x, v)			(BIT_CLEAR_RXCMD_PRD(x) | BIT_RXCMD_PRD(v))


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_WMAC_RESP_MFB			25
#define BIT_MASK_WMAC_RESP_MFB				0x7f
#define BIT_WMAC_RESP_MFB(x)				(((x) & BIT_MASK_WMAC_RESP_MFB) << BIT_SHIFT_WMAC_RESP_MFB)
#define BITS_WMAC_RESP_MFB				(BIT_MASK_WMAC_RESP_MFB << BIT_SHIFT_WMAC_RESP_MFB)
#define BIT_CLEAR_WMAC_RESP_MFB(x)			((x) & (~BITS_WMAC_RESP_MFB))
#define BIT_GET_WMAC_RESP_MFB(x)			(((x) >> BIT_SHIFT_WMAC_RESP_MFB) & BIT_MASK_WMAC_RESP_MFB)
#define BIT_SET_WMAC_RESP_MFB(x, v)			(BIT_CLEAR_WMAC_RESP_MFB(x) | BIT_WMAC_RESP_MFB(v))


#define BIT_SHIFT_WMAC_ANTINF_SEL			23
#define BIT_MASK_WMAC_ANTINF_SEL			0x3
#define BIT_WMAC_ANTINF_SEL(x)				(((x) & BIT_MASK_WMAC_ANTINF_SEL) << BIT_SHIFT_WMAC_ANTINF_SEL)
#define BITS_WMAC_ANTINF_SEL				(BIT_MASK_WMAC_ANTINF_SEL << BIT_SHIFT_WMAC_ANTINF_SEL)
#define BIT_CLEAR_WMAC_ANTINF_SEL(x)			((x) & (~BITS_WMAC_ANTINF_SEL))
#define BIT_GET_WMAC_ANTINF_SEL(x)			(((x) >> BIT_SHIFT_WMAC_ANTINF_SEL) & BIT_MASK_WMAC_ANTINF_SEL)
#define BIT_SET_WMAC_ANTINF_SEL(x, v)			(BIT_CLEAR_WMAC_ANTINF_SEL(x) | BIT_WMAC_ANTINF_SEL(v))


#define BIT_SHIFT_WMAC_ANTSEL_SEL			21
#define BIT_MASK_WMAC_ANTSEL_SEL			0x3
#define BIT_WMAC_ANTSEL_SEL(x)				(((x) & BIT_MASK_WMAC_ANTSEL_SEL) << BIT_SHIFT_WMAC_ANTSEL_SEL)
#define BITS_WMAC_ANTSEL_SEL				(BIT_MASK_WMAC_ANTSEL_SEL << BIT_SHIFT_WMAC_ANTSEL_SEL)
#define BIT_CLEAR_WMAC_ANTSEL_SEL(x)			((x) & (~BITS_WMAC_ANTSEL_SEL))
#define BIT_GET_WMAC_ANTSEL_SEL(x)			(((x) >> BIT_SHIFT_WMAC_ANTSEL_SEL) & BIT_MASK_WMAC_ANTSEL_SEL)
#define BIT_SET_WMAC_ANTSEL_SEL(x, v)			(BIT_CLEAR_WMAC_ANTSEL_SEL(x) | BIT_WMAC_ANTSEL_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_RESP_TXPOWER				18
#define BIT_MASK_RESP_TXPOWER				0x7
#define BIT_RESP_TXPOWER(x)				(((x) & BIT_MASK_RESP_TXPOWER) << BIT_SHIFT_RESP_TXPOWER)
#define BITS_RESP_TXPOWER				(BIT_MASK_RESP_TXPOWER << BIT_SHIFT_RESP_TXPOWER)
#define BIT_CLEAR_RESP_TXPOWER(x)			((x) & (~BITS_RESP_TXPOWER))
#define BIT_GET_RESP_TXPOWER(x)			(((x) >> BIT_SHIFT_RESP_TXPOWER) & BIT_MASK_RESP_TXPOWER)
#define BIT_SET_RESP_TXPOWER(x, v)			(BIT_CLEAR_RESP_TXPOWER(x) | BIT_RESP_TXPOWER(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_R_WMAC_RESP_TXPOWER			18
#define BIT_MASK_R_WMAC_RESP_TXPOWER			0x7
#define BIT_R_WMAC_RESP_TXPOWER(x)			(((x) & BIT_MASK_R_WMAC_RESP_TXPOWER) << BIT_SHIFT_R_WMAC_RESP_TXPOWER)
#define BITS_R_WMAC_RESP_TXPOWER			(BIT_MASK_R_WMAC_RESP_TXPOWER << BIT_SHIFT_R_WMAC_RESP_TXPOWER)
#define BIT_CLEAR_R_WMAC_RESP_TXPOWER(x)		((x) & (~BITS_R_WMAC_RESP_TXPOWER))
#define BIT_GET_R_WMAC_RESP_TXPOWER(x)			(((x) >> BIT_SHIFT_R_WMAC_RESP_TXPOWER) & BIT_MASK_R_WMAC_RESP_TXPOWER)
#define BIT_SET_R_WMAC_RESP_TXPOWER(x, v)		(BIT_CLEAR_R_WMAC_RESP_TXPOWER(x) | BIT_R_WMAC_RESP_TXPOWER(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE	18
#define BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE	0x3
#define BIT_WMAC_RESP_TXPOWER_OFFSET_TYPE(x)		(((x) & BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE) << BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE)
#define BITS_WMAC_RESP_TXPOWER_OFFSET_TYPE		(BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE << BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE)
#define BIT_CLEAR_WMAC_RESP_TXPOWER_OFFSET_TYPE(x)	((x) & (~BITS_WMAC_RESP_TXPOWER_OFFSET_TYPE))
#define BIT_GET_WMAC_RESP_TXPOWER_OFFSET_TYPE(x)	(((x) >> BIT_SHIFT_WMAC_RESP_TXPOWER_OFFSET_TYPE) & BIT_MASK_WMAC_RESP_TXPOWER_OFFSET_TYPE)
#define BIT_SET_WMAC_RESP_TXPOWER_OFFSET_TYPE(x, v)	(BIT_CLEAR_WMAC_RESP_TXPOWER_OFFSET_TYPE(x) | BIT_WMAC_RESP_TXPOWER_OFFSET_TYPE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_RESP_TXAGC_B				13
#define BIT_MASK_RESP_TXAGC_B				0x1f
#define BIT_RESP_TXAGC_B(x)				(((x) & BIT_MASK_RESP_TXAGC_B) << BIT_SHIFT_RESP_TXAGC_B)
#define BITS_RESP_TXAGC_B				(BIT_MASK_RESP_TXAGC_B << BIT_SHIFT_RESP_TXAGC_B)
#define BIT_CLEAR_RESP_TXAGC_B(x)			((x) & (~BITS_RESP_TXAGC_B))
#define BIT_GET_RESP_TXAGC_B(x)			(((x) >> BIT_SHIFT_RESP_TXAGC_B) & BIT_MASK_RESP_TXAGC_B)
#define BIT_SET_RESP_TXAGC_B(x, v)			(BIT_CLEAR_RESP_TXAGC_B(x) | BIT_RESP_TXAGC_B(v))


#define BIT_SHIFT_RESP_TXAGC_A				8
#define BIT_MASK_RESP_TXAGC_A				0x1f
#define BIT_RESP_TXAGC_A(x)				(((x) & BIT_MASK_RESP_TXAGC_A) << BIT_SHIFT_RESP_TXAGC_A)
#define BITS_RESP_TXAGC_A				(BIT_MASK_RESP_TXAGC_A << BIT_SHIFT_RESP_TXAGC_A)
#define BIT_CLEAR_RESP_TXAGC_A(x)			((x) & (~BITS_RESP_TXAGC_A))
#define BIT_GET_RESP_TXAGC_A(x)			(((x) >> BIT_SHIFT_RESP_TXAGC_A) & BIT_MASK_RESP_TXAGC_A)
#define BIT_SET_RESP_TXAGC_A(x, v)			(BIT_CLEAR_RESP_TXAGC_A(x) | BIT_RESP_TXAGC_A(v))

#define BIT_RESP_ANTSEL_B				BIT(7)
#define BIT_RESP_ANTSEL_A				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_WMAC_RESP_TXANT_V1			6
#define BIT_MASK_WMAC_RESP_TXANT_V1			0xfff
#define BIT_WMAC_RESP_TXANT_V1(x)			(((x) & BIT_MASK_WMAC_RESP_TXANT_V1) << BIT_SHIFT_WMAC_RESP_TXANT_V1)
#define BITS_WMAC_RESP_TXANT_V1			(BIT_MASK_WMAC_RESP_TXANT_V1 << BIT_SHIFT_WMAC_RESP_TXANT_V1)
#define BIT_CLEAR_WMAC_RESP_TXANT_V1(x)		((x) & (~BITS_WMAC_RESP_TXANT_V1))
#define BIT_GET_WMAC_RESP_TXANT_V1(x)			(((x) >> BIT_SHIFT_WMAC_RESP_TXANT_V1) & BIT_MASK_WMAC_RESP_TXANT_V1)
#define BIT_SET_WMAC_RESP_TXANT_V1(x, v)		(BIT_CLEAR_WMAC_RESP_TXANT_V1(x) | BIT_WMAC_RESP_TXANT_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_RESP_TXANT_CCK			4
#define BIT_MASK_RESP_TXANT_CCK			0x3
#define BIT_RESP_TXANT_CCK(x)				(((x) & BIT_MASK_RESP_TXANT_CCK) << BIT_SHIFT_RESP_TXANT_CCK)
#define BITS_RESP_TXANT_CCK				(BIT_MASK_RESP_TXANT_CCK << BIT_SHIFT_RESP_TXANT_CCK)
#define BIT_CLEAR_RESP_TXANT_CCK(x)			((x) & (~BITS_RESP_TXANT_CCK))
#define BIT_GET_RESP_TXANT_CCK(x)			(((x) >> BIT_SHIFT_RESP_TXANT_CCK) & BIT_MASK_RESP_TXANT_CCK)
#define BIT_SET_RESP_TXANT_CCK(x, v)			(BIT_CLEAR_RESP_TXANT_CCK(x) | BIT_RESP_TXANT_CCK(v))


#define BIT_SHIFT_RESP_TXANT_L				2
#define BIT_MASK_RESP_TXANT_L				0x3
#define BIT_RESP_TXANT_L(x)				(((x) & BIT_MASK_RESP_TXANT_L) << BIT_SHIFT_RESP_TXANT_L)
#define BITS_RESP_TXANT_L				(BIT_MASK_RESP_TXANT_L << BIT_SHIFT_RESP_TXANT_L)
#define BIT_CLEAR_RESP_TXANT_L(x)			((x) & (~BITS_RESP_TXANT_L))
#define BIT_GET_RESP_TXANT_L(x)			(((x) >> BIT_SHIFT_RESP_TXANT_L) & BIT_MASK_RESP_TXANT_L)
#define BIT_SET_RESP_TXANT_L(x, v)			(BIT_CLEAR_RESP_TXANT_L(x) | BIT_RESP_TXANT_L(v))


#define BIT_SHIFT_RESP_TXANT_HT			0
#define BIT_MASK_RESP_TXANT_HT				0x3
#define BIT_RESP_TXANT_HT(x)				(((x) & BIT_MASK_RESP_TXANT_HT) << BIT_SHIFT_RESP_TXANT_HT)
#define BITS_RESP_TXANT_HT				(BIT_MASK_RESP_TXANT_HT << BIT_SHIFT_RESP_TXANT_HT)
#define BIT_CLEAR_RESP_TXANT_HT(x)			((x) & (~BITS_RESP_TXANT_HT))
#define BIT_GET_RESP_TXANT_HT(x)			(((x) >> BIT_SHIFT_RESP_TXANT_HT) & BIT_MASK_RESP_TXANT_HT)
#define BIT_SET_RESP_TXANT_HT(x, v)			(BIT_CLEAR_RESP_TXANT_HT(x) | BIT_RESP_TXANT_HT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_RESP_TXINFO			(Offset 0x06D8) */


#define BIT_SHIFT_WMAC_RESP_TXANT			0
#define BIT_MASK_WMAC_RESP_TXANT			0x3ffff
#define BIT_WMAC_RESP_TXANT(x)				(((x) & BIT_MASK_WMAC_RESP_TXANT) << BIT_SHIFT_WMAC_RESP_TXANT)
#define BITS_WMAC_RESP_TXANT				(BIT_MASK_WMAC_RESP_TXANT << BIT_SHIFT_WMAC_RESP_TXANT)
#define BIT_CLEAR_WMAC_RESP_TXANT(x)			((x) & (~BITS_WMAC_RESP_TXANT))
#define BIT_GET_WMAC_RESP_TXANT(x)			(((x) >> BIT_SHIFT_WMAC_RESP_TXANT) & BIT_MASK_WMAC_RESP_TXANT)
#define BIT_SET_WMAC_RESP_TXANT(x, v)			(BIT_CLEAR_WMAC_RESP_TXANT(x) | BIT_WMAC_RESP_TXANT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_CTL_IDLE_CLR_CSI_RPT			BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_WMAC_USE_NDPARATE				BIT(30)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_WMAC_CSI_LDPC_EN				BIT(29)
#define BIT_WMAC_CSI_STBC_EN				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */


#define BIT_SHIFT_WMAC_CSI_RATE			24
#define BIT_MASK_WMAC_CSI_RATE				0x3f
#define BIT_WMAC_CSI_RATE(x)				(((x) & BIT_MASK_WMAC_CSI_RATE) << BIT_SHIFT_WMAC_CSI_RATE)
#define BITS_WMAC_CSI_RATE				(BIT_MASK_WMAC_CSI_RATE << BIT_SHIFT_WMAC_CSI_RATE)
#define BIT_CLEAR_WMAC_CSI_RATE(x)			((x) & (~BITS_WMAC_CSI_RATE))
#define BIT_GET_WMAC_CSI_RATE(x)			(((x) >> BIT_SHIFT_WMAC_CSI_RATE) & BIT_MASK_WMAC_CSI_RATE)
#define BIT_SET_WMAC_CSI_RATE(x, v)			(BIT_CLEAR_WMAC_CSI_RATE(x) | BIT_WMAC_CSI_RATE(v))


#define BIT_SHIFT_WMAC_RESP_TXRATE			16
#define BIT_MASK_WMAC_RESP_TXRATE			0xff
#define BIT_WMAC_RESP_TXRATE(x)			(((x) & BIT_MASK_WMAC_RESP_TXRATE) << BIT_SHIFT_WMAC_RESP_TXRATE)
#define BITS_WMAC_RESP_TXRATE				(BIT_MASK_WMAC_RESP_TXRATE << BIT_SHIFT_WMAC_RESP_TXRATE)
#define BIT_CLEAR_WMAC_RESP_TXRATE(x)			((x) & (~BITS_WMAC_RESP_TXRATE))
#define BIT_GET_WMAC_RESP_TXRATE(x)			(((x) >> BIT_SHIFT_WMAC_RESP_TXRATE) & BIT_MASK_WMAC_RESP_TXRATE)
#define BIT_SET_WMAC_RESP_TXRATE(x, v)			(BIT_CLEAR_WMAC_RESP_TXRATE(x) | BIT_WMAC_RESP_TXRATE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_WMAC_CSI_RATE_FORCE_EN			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_CSI_FORCE_RATE_EN				BIT(15)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */


#define BIT_SHIFT_WMAC_CSI_RSC_FORCE			13
#define BIT_MASK_WMAC_CSI_RSC_FORCE			0x3
#define BIT_WMAC_CSI_RSC_FORCE(x)			(((x) & BIT_MASK_WMAC_CSI_RSC_FORCE) << BIT_SHIFT_WMAC_CSI_RSC_FORCE)
#define BITS_WMAC_CSI_RSC_FORCE			(BIT_MASK_WMAC_CSI_RSC_FORCE << BIT_SHIFT_WMAC_CSI_RSC_FORCE)
#define BIT_CLEAR_WMAC_CSI_RSC_FORCE(x)		((x) & (~BITS_WMAC_CSI_RSC_FORCE))
#define BIT_GET_WMAC_CSI_RSC_FORCE(x)			(((x) >> BIT_SHIFT_WMAC_CSI_RSC_FORCE) & BIT_MASK_WMAC_CSI_RSC_FORCE)
#define BIT_SET_WMAC_CSI_RSC_FORCE(x, v)		(BIT_CLEAR_WMAC_CSI_RSC_FORCE(x) | BIT_WMAC_CSI_RSC_FORCE(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */


#define BIT_SHIFT_CSI_RSC				13
#define BIT_MASK_CSI_RSC				0x3
#define BIT_CSI_RSC(x)					(((x) & BIT_MASK_CSI_RSC) << BIT_SHIFT_CSI_RSC)
#define BITS_CSI_RSC					(BIT_MASK_CSI_RSC << BIT_SHIFT_CSI_RSC)
#define BIT_CLEAR_CSI_RSC(x)				((x) & (~BITS_CSI_RSC))
#define BIT_GET_CSI_RSC(x)				(((x) >> BIT_SHIFT_CSI_RSC) & BIT_MASK_CSI_RSC)
#define BIT_SET_CSI_RSC(x, v)				(BIT_CLEAR_CSI_RSC(x) | BIT_CSI_RSC(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_WMAC_CSI_GID_SEL				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_CSI_GID_SEL				BIT(12)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_RDCSIMD_FLAG_TRIG_SEL			BIT(11)
#define BIT_NDPVLD_POS_RST_FFPTR_DIS_V1		BIT(10)
#define BIT_NDPVLD_PROTECT_RDRDY_DIS			BIT(9)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_CSIRD_EMPTY_APPZERO			BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_RDCSI_EMPTY_APPZERO			BIT(8)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_WMC_CSI_RATE_FB_EN				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_CSI_RATE_FB_EN				BIT(7)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_RXFIFO_WRPTR_WO_CHKSUM			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_BBPSF_MPDUCHKEN				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_BBPSF_MHCHKEN				BIT(4)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */


#define BIT_SHIFT_WMAC_CSI_RRSC_BITMAP			4
#define BIT_MASK_WMAC_CSI_RRSC_BITMAP			0xffffff
#define BIT_WMAC_CSI_RRSC_BITMAP(x)			(((x) & BIT_MASK_WMAC_CSI_RRSC_BITMAP) << BIT_SHIFT_WMAC_CSI_RRSC_BITMAP)
#define BITS_WMAC_CSI_RRSC_BITMAP			(BIT_MASK_WMAC_CSI_RRSC_BITMAP << BIT_SHIFT_WMAC_CSI_RRSC_BITMAP)
#define BIT_CLEAR_WMAC_CSI_RRSC_BITMAP(x)		((x) & (~BITS_WMAC_CSI_RRSC_BITMAP))
#define BIT_GET_WMAC_CSI_RRSC_BITMAP(x)		(((x) >> BIT_SHIFT_WMAC_CSI_RRSC_BITMAP) & BIT_MASK_WMAC_CSI_RRSC_BITMAP)
#define BIT_SET_WMAC_CSI_RRSC_BITMAP(x, v)		(BIT_CLEAR_WMAC_CSI_RRSC_BITMAP(x) | BIT_WMAC_CSI_RRSC_BITMAP(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */

#define BIT_BBPSF_ERRCHKEN				BIT(3)

#define BIT_SHIFT_BBPSF_ERRTHR				0
#define BIT_MASK_BBPSF_ERRTHR				0x7
#define BIT_BBPSF_ERRTHR(x)				(((x) & BIT_MASK_BBPSF_ERRTHR) << BIT_SHIFT_BBPSF_ERRTHR)
#define BITS_BBPSF_ERRTHR				(BIT_MASK_BBPSF_ERRTHR << BIT_SHIFT_BBPSF_ERRTHR)
#define BIT_CLEAR_BBPSF_ERRTHR(x)			((x) & (~BITS_BBPSF_ERRTHR))
#define BIT_GET_BBPSF_ERRTHR(x)			(((x) >> BIT_SHIFT_BBPSF_ERRTHR) & BIT_MASK_BBPSF_ERRTHR)
#define BIT_SET_BBPSF_ERRTHR(x, v)			(BIT_CLEAR_BBPSF_ERRTHR(x) | BIT_BBPSF_ERRTHR(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_BBPSF_CTRL				(Offset 0x06DC) */


#define BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH			0
#define BIT_MASK_WMAC_CSI_OFDM_LEN_TH			0xf
#define BIT_WMAC_CSI_OFDM_LEN_TH(x)			(((x) & BIT_MASK_WMAC_CSI_OFDM_LEN_TH) << BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH)
#define BITS_WMAC_CSI_OFDM_LEN_TH			(BIT_MASK_WMAC_CSI_OFDM_LEN_TH << BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH)
#define BIT_CLEAR_WMAC_CSI_OFDM_LEN_TH(x)		((x) & (~BITS_WMAC_CSI_OFDM_LEN_TH))
#define BIT_GET_WMAC_CSI_OFDM_LEN_TH(x)		(((x) >> BIT_SHIFT_WMAC_CSI_OFDM_LEN_TH) & BIT_MASK_WMAC_CSI_OFDM_LEN_TH)
#define BIT_SET_WMAC_CSI_OFDM_LEN_TH(x, v)		(BIT_CLEAR_WMAC_CSI_OFDM_LEN_TH(x) | BIT_WMAC_CSI_OFDM_LEN_TH(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */

#define BIT_NOA_PARSER_EN				BIT(15)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */

#define BIT_BSSID_SEL					BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */


#define BIT_SHIFT_BSSID_SEL_V1				12
#define BIT_MASK_BSSID_SEL_V1				0x7
#define BIT_BSSID_SEL_V1(x)				(((x) & BIT_MASK_BSSID_SEL_V1) << BIT_SHIFT_BSSID_SEL_V1)
#define BITS_BSSID_SEL_V1				(BIT_MASK_BSSID_SEL_V1 << BIT_SHIFT_BSSID_SEL_V1)
#define BIT_CLEAR_BSSID_SEL_V1(x)			((x) & (~BITS_BSSID_SEL_V1))
#define BIT_GET_BSSID_SEL_V1(x)			(((x) >> BIT_SHIFT_BSSID_SEL_V1) & BIT_MASK_BSSID_SEL_V1)
#define BIT_SET_BSSID_SEL_V1(x, v)			(BIT_CLEAR_BSSID_SEL_V1(x) | BIT_BSSID_SEL_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2P_RX_BCN_NOA			(Offset 0x06E0) */


#define BIT_SHIFT_P2P_OUI_TYPE				0
#define BIT_MASK_P2P_OUI_TYPE				0xff
#define BIT_P2P_OUI_TYPE(x)				(((x) & BIT_MASK_P2P_OUI_TYPE) << BIT_SHIFT_P2P_OUI_TYPE)
#define BITS_P2P_OUI_TYPE				(BIT_MASK_P2P_OUI_TYPE << BIT_SHIFT_P2P_OUI_TYPE)
#define BIT_CLEAR_P2P_OUI_TYPE(x)			((x) & (~BITS_P2P_OUI_TYPE))
#define BIT_GET_P2P_OUI_TYPE(x)			(((x) >> BIT_SHIFT_P2P_OUI_TYPE) & BIT_MASK_P2P_OUI_TYPE)
#define BIT_SET_P2P_OUI_TYPE(x, v)			(BIT_CLEAR_P2P_OUI_TYPE(x) | BIT_P2P_OUI_TYPE(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ASSOCIATED_BFMER0_INFO		(Offset 0x06E4) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0		0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0		0xffffffffffffL
#define BIT_R_WMAC_SOUNDING_RXADD_R0(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0)
#define BITS_R_WMAC_SOUNDING_RXADD_R0			(BIT_MASK_R_WMAC_SOUNDING_RXADD_R0 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0(x)		((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R0(x)		(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R0(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0(x) | BIT_R_WMAC_SOUNDING_RXADD_R0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_ASSOCIATED_BFMER0_INFO		(Offset 0x06E4) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1		0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1		0xffffffffL
#define BIT_R_WMAC_SOUNDING_RXADD_R0_V1(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1)
#define BITS_R_WMAC_SOUNDING_RXADD_R0_V1		(BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_V1(x)	((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_V1))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_V1(x)	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_V1) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_V1)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_V1(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_V1(x) | BIT_R_WMAC_SOUNDING_RXADD_R0_V1(v))


/* 2 REG_ASSOCIATED_BFMER0_INFO_H		(Offset 0x06E8) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1	0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1	0xffff
#define BIT_R_WMAC_SOUNDING_RXADD_R0_H_V1(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1)
#define BITS_R_WMAC_SOUNDING_RXADD_R0_H_V1		(BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H_V1(x)	((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R0_H_V1))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R0_H_V1(x)	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R0_H_V1) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R0_H_V1)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R0_H_V1(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R0_H_V1(x) | BIT_R_WMAC_SOUNDING_RXADD_R0_H_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ASSOCIATED_BFMER1_INFO		(Offset 0x06EC) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1		0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1		0xffffffffffffL
#define BIT_R_WMAC_SOUNDING_RXADD_R1(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1)
#define BITS_R_WMAC_SOUNDING_RXADD_R1			(BIT_MASK_R_WMAC_SOUNDING_RXADD_R1 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1(x)		((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R1(x)		(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R1(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1(x) | BIT_R_WMAC_SOUNDING_RXADD_R1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_ASSOCIATED_BFMER1_INFO		(Offset 0x06EC) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1		0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1		0xffffffffL
#define BIT_R_WMAC_SOUNDING_RXADD_R1_V1(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1)
#define BITS_R_WMAC_SOUNDING_RXADD_R1_V1		(BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V1(x)	((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_V1))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_V1(x)	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_V1) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_V1)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_V1(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_V1(x) | BIT_R_WMAC_SOUNDING_RXADD_R1_V1(v))


/* 2 REG_ASSOCIATED_BFMER1_INFO_H		(Offset 0x06F0) */


#define BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1	0
#define BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1	0xffff
#define BIT_R_WMAC_SOUNDING_RXADD_R1_H_V1(x)		(((x) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1) << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1)
#define BITS_R_WMAC_SOUNDING_RXADD_R1_H_V1		(BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1 << BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1)
#define BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V1(x)	((x) & (~BITS_R_WMAC_SOUNDING_RXADD_R1_H_V1))
#define BIT_GET_R_WMAC_SOUNDING_RXADD_R1_H_V1(x)	(((x) >> BIT_SHIFT_R_WMAC_SOUNDING_RXADD_R1_H_V1) & BIT_MASK_R_WMAC_SOUNDING_RXADD_R1_H_V1)
#define BIT_SET_R_WMAC_SOUNDING_RXADD_R1_H_V1(x, v)	(BIT_CLEAR_R_WMAC_SOUNDING_RXADD_R1_H_V1(x) | BIT_R_WMAC_SOUNDING_RXADD_R1_H_V1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW20		(Offset 0x06F4) */


#define BIT_SHIFT_R_WMAC_BFINFO_20M_1			16
#define BIT_MASK_R_WMAC_BFINFO_20M_1			0xfff
#define BIT_R_WMAC_BFINFO_20M_1(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_20M_1) << BIT_SHIFT_R_WMAC_BFINFO_20M_1)
#define BITS_R_WMAC_BFINFO_20M_1			(BIT_MASK_R_WMAC_BFINFO_20M_1 << BIT_SHIFT_R_WMAC_BFINFO_20M_1)
#define BIT_CLEAR_R_WMAC_BFINFO_20M_1(x)		((x) & (~BITS_R_WMAC_BFINFO_20M_1))
#define BIT_GET_R_WMAC_BFINFO_20M_1(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_1) & BIT_MASK_R_WMAC_BFINFO_20M_1)
#define BIT_SET_R_WMAC_BFINFO_20M_1(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_20M_1(x) | BIT_R_WMAC_BFINFO_20M_1(v))


#define BIT_SHIFT_R_WMAC_BFINFO_20M_0			0
#define BIT_MASK_R_WMAC_BFINFO_20M_0			0xfff
#define BIT_R_WMAC_BFINFO_20M_0(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_20M_0) << BIT_SHIFT_R_WMAC_BFINFO_20M_0)
#define BITS_R_WMAC_BFINFO_20M_0			(BIT_MASK_R_WMAC_BFINFO_20M_0 << BIT_SHIFT_R_WMAC_BFINFO_20M_0)
#define BIT_CLEAR_R_WMAC_BFINFO_20M_0(x)		((x) & (~BITS_R_WMAC_BFINFO_20M_0))
#define BIT_GET_R_WMAC_BFINFO_20M_0(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_20M_0) & BIT_MASK_R_WMAC_BFINFO_20M_0)
#define BIT_SET_R_WMAC_BFINFO_20M_0(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_20M_0(x) | BIT_R_WMAC_BFINFO_20M_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */


#define BIT_SHIFT_R_WMAC_BFINFO_40M_1			13
#define BIT_MASK_R_WMAC_BFINFO_40M_1			0x7fff
#define BIT_R_WMAC_BFINFO_40M_1(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_40M_1) << BIT_SHIFT_R_WMAC_BFINFO_40M_1)
#define BITS_R_WMAC_BFINFO_40M_1			(BIT_MASK_R_WMAC_BFINFO_40M_1 << BIT_SHIFT_R_WMAC_BFINFO_40M_1)
#define BIT_CLEAR_R_WMAC_BFINFO_40M_1(x)		((x) & (~BITS_R_WMAC_BFINFO_40M_1))
#define BIT_GET_R_WMAC_BFINFO_40M_1(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_40M_1) & BIT_MASK_R_WMAC_BFINFO_40M_1)
#define BIT_SET_R_WMAC_BFINFO_40M_1(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_40M_1(x) | BIT_R_WMAC_BFINFO_40M_1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */


#define BIT_SHIFT_WMAC_RESP_ANTD			12
#define BIT_MASK_WMAC_RESP_ANTD			0xf
#define BIT_WMAC_RESP_ANTD(x)				(((x) & BIT_MASK_WMAC_RESP_ANTD) << BIT_SHIFT_WMAC_RESP_ANTD)
#define BITS_WMAC_RESP_ANTD				(BIT_MASK_WMAC_RESP_ANTD << BIT_SHIFT_WMAC_RESP_ANTD)
#define BIT_CLEAR_WMAC_RESP_ANTD(x)			((x) & (~BITS_WMAC_RESP_ANTD))
#define BIT_GET_WMAC_RESP_ANTD(x)			(((x) >> BIT_SHIFT_WMAC_RESP_ANTD) & BIT_MASK_WMAC_RESP_ANTD)
#define BIT_SET_WMAC_RESP_ANTD(x, v)			(BIT_CLEAR_WMAC_RESP_ANTD(x) | BIT_WMAC_RESP_ANTD(v))


#define BIT_SHIFT_WMAC_RESP_ANTC			8
#define BIT_MASK_WMAC_RESP_ANTC			0xf
#define BIT_WMAC_RESP_ANTC(x)				(((x) & BIT_MASK_WMAC_RESP_ANTC) << BIT_SHIFT_WMAC_RESP_ANTC)
#define BITS_WMAC_RESP_ANTC				(BIT_MASK_WMAC_RESP_ANTC << BIT_SHIFT_WMAC_RESP_ANTC)
#define BIT_CLEAR_WMAC_RESP_ANTC(x)			((x) & (~BITS_WMAC_RESP_ANTC))
#define BIT_GET_WMAC_RESP_ANTC(x)			(((x) >> BIT_SHIFT_WMAC_RESP_ANTC) & BIT_MASK_WMAC_RESP_ANTC)
#define BIT_SET_WMAC_RESP_ANTC(x, v)			(BIT_CLEAR_WMAC_RESP_ANTC(x) | BIT_WMAC_RESP_ANTC(v))


#define BIT_SHIFT_WMAC_RESP_ANTB			4
#define BIT_MASK_WMAC_RESP_ANTB			0xf
#define BIT_WMAC_RESP_ANTB(x)				(((x) & BIT_MASK_WMAC_RESP_ANTB) << BIT_SHIFT_WMAC_RESP_ANTB)
#define BITS_WMAC_RESP_ANTB				(BIT_MASK_WMAC_RESP_ANTB << BIT_SHIFT_WMAC_RESP_ANTB)
#define BIT_CLEAR_WMAC_RESP_ANTB(x)			((x) & (~BITS_WMAC_RESP_ANTB))
#define BIT_GET_WMAC_RESP_ANTB(x)			(((x) >> BIT_SHIFT_WMAC_RESP_ANTB) & BIT_MASK_WMAC_RESP_ANTB)
#define BIT_SET_WMAC_RESP_ANTB(x, v)			(BIT_CLEAR_WMAC_RESP_ANTB(x) | BIT_WMAC_RESP_ANTB(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */


#define BIT_SHIFT_R_WMAC_BFINFO_40M_0			0
#define BIT_MASK_R_WMAC_BFINFO_40M_0			0xfff
#define BIT_R_WMAC_BFINFO_40M_0(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_40M_0) << BIT_SHIFT_R_WMAC_BFINFO_40M_0)
#define BITS_R_WMAC_BFINFO_40M_0			(BIT_MASK_R_WMAC_BFINFO_40M_0 << BIT_SHIFT_R_WMAC_BFINFO_40M_0)
#define BIT_CLEAR_R_WMAC_BFINFO_40M_0(x)		((x) & (~BITS_R_WMAC_BFINFO_40M_0))
#define BIT_GET_R_WMAC_BFINFO_40M_0(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_40M_0) & BIT_MASK_R_WMAC_BFINFO_40M_0)
#define BIT_SET_R_WMAC_BFINFO_40M_0(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_40M_0(x) | BIT_R_WMAC_BFINFO_40M_0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */


#define BIT_SHIFT_WMAC_RESP_ANTCD			0
#define BIT_MASK_WMAC_RESP_ANTCD			0xf
#define BIT_WMAC_RESP_ANTCD(x)				(((x) & BIT_MASK_WMAC_RESP_ANTCD) << BIT_SHIFT_WMAC_RESP_ANTCD)
#define BITS_WMAC_RESP_ANTCD				(BIT_MASK_WMAC_RESP_ANTCD << BIT_SHIFT_WMAC_RESP_ANTCD)
#define BIT_CLEAR_WMAC_RESP_ANTCD(x)			((x) & (~BITS_WMAC_RESP_ANTCD))
#define BIT_GET_WMAC_RESP_ANTCD(x)			(((x) >> BIT_SHIFT_WMAC_RESP_ANTCD) & BIT_MASK_WMAC_RESP_ANTCD)
#define BIT_SET_WMAC_RESP_ANTCD(x, v)			(BIT_CLEAR_WMAC_RESP_ANTCD(x) | BIT_WMAC_RESP_ANTCD(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW40		(Offset 0x06F8) */


#define BIT_SHIFT_WMAC_RESP_ANTA			0
#define BIT_MASK_WMAC_RESP_ANTA			0xf
#define BIT_WMAC_RESP_ANTA(x)				(((x) & BIT_MASK_WMAC_RESP_ANTA) << BIT_SHIFT_WMAC_RESP_ANTA)
#define BITS_WMAC_RESP_ANTA				(BIT_MASK_WMAC_RESP_ANTA << BIT_SHIFT_WMAC_RESP_ANTA)
#define BIT_CLEAR_WMAC_RESP_ANTA(x)			((x) & (~BITS_WMAC_RESP_ANTA))
#define BIT_GET_WMAC_RESP_ANTA(x)			(((x) >> BIT_SHIFT_WMAC_RESP_ANTA) & BIT_MASK_WMAC_RESP_ANTA)
#define BIT_SET_WMAC_RESP_ANTA(x, v)			(BIT_CLEAR_WMAC_RESP_ANTA(x) | BIT_WMAC_RESP_ANTA(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_TX_CSI_RPT_PARAM_BW80		(Offset 0x06FC) */


#define BIT_SHIFT_R_WMAC_BFINFO_80M_1			16
#define BIT_MASK_R_WMAC_BFINFO_80M_1			0xfff
#define BIT_R_WMAC_BFINFO_80M_1(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_80M_1) << BIT_SHIFT_R_WMAC_BFINFO_80M_1)
#define BITS_R_WMAC_BFINFO_80M_1			(BIT_MASK_R_WMAC_BFINFO_80M_1 << BIT_SHIFT_R_WMAC_BFINFO_80M_1)
#define BIT_CLEAR_R_WMAC_BFINFO_80M_1(x)		((x) & (~BITS_R_WMAC_BFINFO_80M_1))
#define BIT_GET_R_WMAC_BFINFO_80M_1(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_80M_1) & BIT_MASK_R_WMAC_BFINFO_80M_1)
#define BIT_SET_R_WMAC_BFINFO_80M_1(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_80M_1(x) | BIT_R_WMAC_BFINFO_80M_1(v))


#define BIT_SHIFT_R_WMAC_BFINFO_80M_0			0
#define BIT_MASK_R_WMAC_BFINFO_80M_0			0xfff
#define BIT_R_WMAC_BFINFO_80M_0(x)			(((x) & BIT_MASK_R_WMAC_BFINFO_80M_0) << BIT_SHIFT_R_WMAC_BFINFO_80M_0)
#define BITS_R_WMAC_BFINFO_80M_0			(BIT_MASK_R_WMAC_BFINFO_80M_0 << BIT_SHIFT_R_WMAC_BFINFO_80M_0)
#define BIT_CLEAR_R_WMAC_BFINFO_80M_0(x)		((x) & (~BITS_R_WMAC_BFINFO_80M_0))
#define BIT_GET_R_WMAC_BFINFO_80M_0(x)			(((x) >> BIT_SHIFT_R_WMAC_BFINFO_80M_0) & BIT_MASK_R_WMAC_BFINFO_80M_0)
#define BIT_SET_R_WMAC_BFINFO_80M_0(x, v)		(BIT_CLEAR_R_WMAC_BFINFO_80M_0(x) | BIT_R_WMAC_BFINFO_80M_0(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_MACID1				(Offset 0x0700) */


#define BIT_SHIFT_MACID1				0
#define BIT_MASK_MACID1				0xffffffffffffL
#define BIT_MACID1(x)					(((x) & BIT_MASK_MACID1) << BIT_SHIFT_MACID1)
#define BITS_MACID1					(BIT_MASK_MACID1 << BIT_SHIFT_MACID1)
#define BIT_CLEAR_MACID1(x)				((x) & (~BITS_MACID1))
#define BIT_GET_MACID1(x)				(((x) >> BIT_SHIFT_MACID1) & BIT_MASK_MACID1)
#define BIT_SET_MACID1(x, v)				(BIT_CLEAR_MACID1(x) | BIT_MACID1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MACID1				(Offset 0x0700) */


#define BIT_SHIFT_MACID1_0				0
#define BIT_MASK_MACID1_0				0xffffffffL
#define BIT_MACID1_0(x)				(((x) & BIT_MASK_MACID1_0) << BIT_SHIFT_MACID1_0)
#define BITS_MACID1_0					(BIT_MASK_MACID1_0 << BIT_SHIFT_MACID1_0)
#define BIT_CLEAR_MACID1_0(x)				((x) & (~BITS_MACID1_0))
#define BIT_GET_MACID1_0(x)				(((x) >> BIT_SHIFT_MACID1_0) & BIT_MASK_MACID1_0)
#define BIT_SET_MACID1_0(x, v)				(BIT_CLEAR_MACID1_0(x) | BIT_MACID1_0(v))


/* 2 REG_MACID1_1				(Offset 0x0704) */


#define BIT_SHIFT_MACID1_1				0
#define BIT_MASK_MACID1_1				0xffff
#define BIT_MACID1_1(x)				(((x) & BIT_MASK_MACID1_1) << BIT_SHIFT_MACID1_1)
#define BITS_MACID1_1					(BIT_MASK_MACID1_1 << BIT_SHIFT_MACID1_1)
#define BIT_CLEAR_MACID1_1(x)				((x) & (~BITS_MACID1_1))
#define BIT_GET_MACID1_1(x)				(((x) >> BIT_SHIFT_MACID1_1) & BIT_MASK_MACID1_1)
#define BIT_SET_MACID1_1(x, v)				(BIT_CLEAR_MACID1_1(x) | BIT_MACID1_1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BSSID1				(Offset 0x0708) */


#define BIT_SHIFT_BSSID1				0
#define BIT_MASK_BSSID1				0xffffffffffffL
#define BIT_BSSID1(x)					(((x) & BIT_MASK_BSSID1) << BIT_SHIFT_BSSID1)
#define BITS_BSSID1					(BIT_MASK_BSSID1 << BIT_SHIFT_BSSID1)
#define BIT_CLEAR_BSSID1(x)				((x) & (~BITS_BSSID1))
#define BIT_GET_BSSID1(x)				(((x) >> BIT_SHIFT_BSSID1) & BIT_MASK_BSSID1)
#define BIT_SET_BSSID1(x, v)				(BIT_CLEAR_BSSID1(x) | BIT_BSSID1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID1				(Offset 0x0708) */


#define BIT_SHIFT_BSSID1_0				0
#define BIT_MASK_BSSID1_0				0xffffffffL
#define BIT_BSSID1_0(x)				(((x) & BIT_MASK_BSSID1_0) << BIT_SHIFT_BSSID1_0)
#define BITS_BSSID1_0					(BIT_MASK_BSSID1_0 << BIT_SHIFT_BSSID1_0)
#define BIT_CLEAR_BSSID1_0(x)				((x) & (~BITS_BSSID1_0))
#define BIT_GET_BSSID1_0(x)				(((x) >> BIT_SHIFT_BSSID1_0) & BIT_MASK_BSSID1_0)
#define BIT_SET_BSSID1_0(x, v)				(BIT_CLEAR_BSSID1_0(x) | BIT_BSSID1_0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_FORCE_LINK_L		(Offset 0x0709) */

#define BIT_PCIE_CFG_FORCE_EN				BIT(7)

/* 2 REG_PCIE_CFG_FORCE_LINK_H		(Offset 0x070A) */

#define BIT_PCIE_CFG_TRXACT_DIS_IDLE_TIMER		BIT(6)

#define BIT_SHIFT_PCIE_CFG_LINK_STATE			0
#define BIT_MASK_PCIE_CFG_LINK_STATE			0x3f
#define BIT_PCIE_CFG_LINK_STATE(x)			(((x) & BIT_MASK_PCIE_CFG_LINK_STATE) << BIT_SHIFT_PCIE_CFG_LINK_STATE)
#define BITS_PCIE_CFG_LINK_STATE			(BIT_MASK_PCIE_CFG_LINK_STATE << BIT_SHIFT_PCIE_CFG_LINK_STATE)
#define BIT_CLEAR_PCIE_CFG_LINK_STATE(x)		((x) & (~BITS_PCIE_CFG_LINK_STATE))
#define BIT_GET_PCIE_CFG_LINK_STATE(x)			(((x) >> BIT_SHIFT_PCIE_CFG_LINK_STATE) & BIT_MASK_PCIE_CFG_LINK_STATE)
#define BIT_SET_PCIE_CFG_LINK_STATE(x, v)		(BIT_CLEAR_PCIE_CFG_LINK_STATE(x) | BIT_PCIE_CFG_LINK_STATE(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID1_1				(Offset 0x070C) */


#define BIT_SHIFT_BSSID1_1				0
#define BIT_MASK_BSSID1_1				0xffff
#define BIT_BSSID1_1(x)				(((x) & BIT_MASK_BSSID1_1) << BIT_SHIFT_BSSID1_1)
#define BITS_BSSID1_1					(BIT_MASK_BSSID1_1 << BIT_SHIFT_BSSID1_1)
#define BIT_CLEAR_BSSID1_1(x)				((x) & (~BITS_BSSID1_1))
#define BIT_GET_BSSID1_1(x)				(((x) >> BIT_SHIFT_BSSID1_1) & BIT_MASK_BSSID1_1)
#define BIT_SET_BSSID1_1(x, v)				(BIT_CLEAR_BSSID1_1(x) | BIT_BSSID1_1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_DEFAULT_ACK_FREQUENCY	(Offset 0x070C) */


#define BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY	0
#define BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY	0xff
#define BIT_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x)		(((x) & BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY) << BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
#define BITS_PCIE_CFG_DEFAULT_ACK_FREQUENCY		(BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY << BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
#define BIT_CLEAR_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x)	((x) & (~BITS_PCIE_CFG_DEFAULT_ACK_FREQUENCY))
#define BIT_GET_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x)	(((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_ACK_FREQUENCY) & BIT_MASK_PCIE_CFG_DEFAULT_ACK_FREQUENCY)
#define BIT_SET_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x, v)	(BIT_CLEAR_PCIE_CFG_DEFAULT_ACK_FREQUENCY(x) | BIT_PCIE_CFG_DEFAULT_ACK_FREQUENCY(v))


/* 2 REG_PCIE_CFG_CX_NFTS			(Offset 0x070D) */


#define BIT_SHIFT_PCIE_CFG_CX_NFTS			0
#define BIT_MASK_PCIE_CFG_CX_NFTS			0xff
#define BIT_PCIE_CFG_CX_NFTS(x)			(((x) & BIT_MASK_PCIE_CFG_CX_NFTS) << BIT_SHIFT_PCIE_CFG_CX_NFTS)
#define BITS_PCIE_CFG_CX_NFTS				(BIT_MASK_PCIE_CFG_CX_NFTS << BIT_SHIFT_PCIE_CFG_CX_NFTS)
#define BIT_CLEAR_PCIE_CFG_CX_NFTS(x)			((x) & (~BITS_PCIE_CFG_CX_NFTS))
#define BIT_GET_PCIE_CFG_CX_NFTS(x)			(((x) >> BIT_SHIFT_PCIE_CFG_CX_NFTS) & BIT_MASK_PCIE_CFG_CX_NFTS)
#define BIT_SET_PCIE_CFG_CX_NFTS(x, v)			(BIT_CLEAR_PCIE_CFG_CX_NFTS(x) | BIT_PCIE_CFG_CX_NFTS(v))


/* 2 REG_PCIE_CFG_DEFAULT_ENTR_LATENCY	(Offset 0x070F) */

#define BIT_PCIE_CFG_REAL_EN_L0S			BIT(7)
#define BIT_PCIE_CFG_ENTER_ASPM			BIT(6)

#define BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY	3
#define BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY	0x7
#define BIT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x)	(((x) & BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY) << BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
#define BITS_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY		(BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY << BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
#define BIT_CLEAR_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x)	((x) & (~BITS_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY))
#define BIT_GET_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x)	(((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY) & BIT_MASK_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY)
#define BIT_SET_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x, v)	(BIT_CLEAR_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(x) | BIT_PCIE_CFG_DEFAULT_L1_ENTR_LATENCY(v))


#define BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY	0
#define BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY	0x7
#define BIT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x)	(((x) & BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY) << BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
#define BITS_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY	(BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY << BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
#define BIT_CLEAR_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x)	((x) & (~BITS_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY))
#define BIT_GET_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x)	(((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY) & BIT_MASK_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY)
#define BIT_SET_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x, v)	(BIT_CLEAR_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(x) | BIT_PCIE_CFG_DEFAULT_L0S_ENTR_LATENCY(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_PSR_RPT1			(Offset 0x0710) */

#define BIT_TXUSER_ID1					BIT(25)

#define BIT_SHIFT_DTIM_CNT1				24
#define BIT_MASK_DTIM_CNT1				0xff
#define BIT_DTIM_CNT1(x)				(((x) & BIT_MASK_DTIM_CNT1) << BIT_SHIFT_DTIM_CNT1)
#define BITS_DTIM_CNT1					(BIT_MASK_DTIM_CNT1 << BIT_SHIFT_DTIM_CNT1)
#define BIT_CLEAR_DTIM_CNT1(x)				((x) & (~BITS_DTIM_CNT1))
#define BIT_GET_DTIM_CNT1(x)				(((x) >> BIT_SHIFT_DTIM_CNT1) & BIT_MASK_DTIM_CNT1)
#define BIT_SET_DTIM_CNT1(x, v)			(BIT_CLEAR_DTIM_CNT1(x) | BIT_DTIM_CNT1(v))


#define BIT_SHIFT_DTIM_PERIOD1				16
#define BIT_MASK_DTIM_PERIOD1				0xff
#define BIT_DTIM_PERIOD1(x)				(((x) & BIT_MASK_DTIM_PERIOD1) << BIT_SHIFT_DTIM_PERIOD1)
#define BITS_DTIM_PERIOD1				(BIT_MASK_DTIM_PERIOD1 << BIT_SHIFT_DTIM_PERIOD1)
#define BIT_CLEAR_DTIM_PERIOD1(x)			((x) & (~BITS_DTIM_PERIOD1))
#define BIT_GET_DTIM_PERIOD1(x)			(((x) >> BIT_SHIFT_DTIM_PERIOD1) & BIT_MASK_DTIM_PERIOD1)
#define BIT_SET_DTIM_PERIOD1(x, v)			(BIT_CLEAR_DTIM_PERIOD1(x) | BIT_DTIM_PERIOD1(v))


#define BIT_SHIFT_AID1					16
#define BIT_MASK_AID1					0x1ff
#define BIT_AID1(x)					(((x) & BIT_MASK_AID1) << BIT_SHIFT_AID1)
#define BITS_AID1					(BIT_MASK_AID1 << BIT_SHIFT_AID1)
#define BIT_CLEAR_AID1(x)				((x) & (~BITS_AID1))
#define BIT_GET_AID1(x)				(((x) >> BIT_SHIFT_AID1) & BIT_MASK_AID1)
#define BIT_SET_AID1(x, v)				(BIT_CLEAR_AID1(x) | BIT_AID1(v))

#define BIT_DTIM1					BIT(15)
#define BIT_TIM1					BIT(14)
#define BIT_TXUSER_ID0					BIT(9)

#define BIT_SHIFT_PS_AID_1				0
#define BIT_MASK_PS_AID_1				0x7ff
#define BIT_PS_AID_1(x)				(((x) & BIT_MASK_PS_AID_1) << BIT_SHIFT_PS_AID_1)
#define BITS_PS_AID_1					(BIT_MASK_PS_AID_1 << BIT_SHIFT_PS_AID_1)
#define BIT_CLEAR_PS_AID_1(x)				((x) & (~BITS_PS_AID_1))
#define BIT_GET_PS_AID_1(x)				(((x) >> BIT_SHIFT_PS_AID_1) & BIT_MASK_PS_AID_1)
#define BIT_SET_PS_AID_1(x, v)				(BIT_CLEAR_PS_AID_1(x) | BIT_PS_AID_1(v))


#define BIT_SHIFT_AID0					0
#define BIT_MASK_AID0					0x1ff
#define BIT_AID0(x)					(((x) & BIT_MASK_AID0) << BIT_SHIFT_AID0)
#define BITS_AID0					(BIT_MASK_AID0 << BIT_SHIFT_AID0)
#define BIT_CLEAR_AID0(x)				((x) & (~BITS_AID0))
#define BIT_GET_AID0(x)				(((x) >> BIT_SHIFT_AID0) & BIT_MASK_AID0)
#define BIT_SET_AID0(x, v)				(BIT_CLEAR_AID0(x) | BIT_AID0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_L1_MISC_SEL		(Offset 0x0711) */

#define BIT_PCIE_CFG_L1_RIDLE_SEL			BIT(6)
#define BIT_PCIE_CFG_L1_TIMEOUT_SEL			BIT(5)
#define BIT_PCIE_CFG_L1_EIDLE_SEL			BIT(4)

#define BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE		0
#define BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE		0xf
#define BIT_PCIE_CFG_DEFAULT_LINK_RATE(x)		(((x) & BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE) << BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE)
#define BITS_PCIE_CFG_DEFAULT_LINK_RATE		(BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE << BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE)
#define BIT_CLEAR_PCIE_CFG_DEFAULT_LINK_RATE(x)	((x) & (~BITS_PCIE_CFG_DEFAULT_LINK_RATE))
#define BIT_GET_PCIE_CFG_DEFAULT_LINK_RATE(x)		(((x) >> BIT_SHIFT_PCIE_CFG_DEFAULT_LINK_RATE) & BIT_MASK_PCIE_CFG_DEFAULT_LINK_RATE)
#define BIT_SET_PCIE_CFG_DEFAULT_LINK_RATE(x, v)	(BIT_CLEAR_PCIE_CFG_DEFAULT_LINK_RATE(x) | BIT_PCIE_CFG_DEFAULT_LINK_RATE(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_ASSOCIATED_BFMEE_SEL		(Offset 0x0714) */


#define BIT_SHIFT_RD_BF_SEL				29
#define BIT_MASK_RD_BF_SEL				0x7
#define BIT_RD_BF_SEL(x)				(((x) & BIT_MASK_RD_BF_SEL) << BIT_SHIFT_RD_BF_SEL)
#define BITS_RD_BF_SEL					(BIT_MASK_RD_BF_SEL << BIT_SHIFT_RD_BF_SEL)
#define BIT_CLEAR_RD_BF_SEL(x)				((x) & (~BITS_RD_BF_SEL))
#define BIT_GET_RD_BF_SEL(x)				(((x) >> BIT_SHIFT_RD_BF_SEL) & BIT_MASK_RD_BF_SEL)
#define BIT_SET_RD_BF_SEL(x, v)			(BIT_CLEAR_RD_BF_SEL(x) | BIT_RD_BF_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_NDP_RX_STANDBY_TIMER			24
#define BIT_MASK_NDP_RX_STANDBY_TIMER			0xff
#define BIT_NDP_RX_STANDBY_TIMER(x)			(((x) & BIT_MASK_NDP_RX_STANDBY_TIMER) << BIT_SHIFT_NDP_RX_STANDBY_TIMER)
#define BITS_NDP_RX_STANDBY_TIMER			(BIT_MASK_NDP_RX_STANDBY_TIMER << BIT_SHIFT_NDP_RX_STANDBY_TIMER)
#define BIT_CLEAR_NDP_RX_STANDBY_TIMER(x)		((x) & (~BITS_NDP_RX_STANDBY_TIMER))
#define BIT_GET_NDP_RX_STANDBY_TIMER(x)		(((x) >> BIT_SHIFT_NDP_RX_STANDBY_TIMER) & BIT_MASK_NDP_RX_STANDBY_TIMER)
#define BIT_SET_NDP_RX_STANDBY_TIMER(x, v)		(BIT_CLEAR_NDP_RX_STANDBY_TIMER(x) | BIT_NDP_RX_STANDBY_TIMER(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_WMAC_CHK_RPTPOLL_A2_DIS			BIT(23)
#define BIT_WMAC_CHK_UCNDPA_A2_DIS			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_CSI_RPT_OFFSET_HT			16
#define BIT_MASK_CSI_RPT_OFFSET_HT			0xff
#define BIT_CSI_RPT_OFFSET_HT(x)			(((x) & BIT_MASK_CSI_RPT_OFFSET_HT) << BIT_SHIFT_CSI_RPT_OFFSET_HT)
#define BITS_CSI_RPT_OFFSET_HT				(BIT_MASK_CSI_RPT_OFFSET_HT << BIT_SHIFT_CSI_RPT_OFFSET_HT)
#define BIT_CLEAR_CSI_RPT_OFFSET_HT(x)			((x) & (~BITS_CSI_RPT_OFFSET_HT))
#define BIT_GET_CSI_RPT_OFFSET_HT(x)			(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT) & BIT_MASK_CSI_RPT_OFFSET_HT)
#define BIT_SET_CSI_RPT_OFFSET_HT(x, v)		(BIT_CLEAR_CSI_RPT_OFFSET_HT(x) | BIT_CSI_RPT_OFFSET_HT(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_CSI_RPT_OFFSET_HT_V1			16
#define BIT_MASK_CSI_RPT_OFFSET_HT_V1			0x3f
#define BIT_CSI_RPT_OFFSET_HT_V1(x)			(((x) & BIT_MASK_CSI_RPT_OFFSET_HT_V1) << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1)
#define BITS_CSI_RPT_OFFSET_HT_V1			(BIT_MASK_CSI_RPT_OFFSET_HT_V1 << BIT_SHIFT_CSI_RPT_OFFSET_HT_V1)
#define BIT_CLEAR_CSI_RPT_OFFSET_HT_V1(x)		((x) & (~BITS_CSI_RPT_OFFSET_HT_V1))
#define BIT_GET_CSI_RPT_OFFSET_HT_V1(x)		(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_HT_V1) & BIT_MASK_CSI_RPT_OFFSET_HT_V1)
#define BIT_SET_CSI_RPT_OFFSET_HT_V1(x, v)		(BIT_CLEAR_CSI_RPT_OFFSET_HT_V1(x) | BIT_CSI_RPT_OFFSET_HT_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_WMAC_OFFSET_RPTPOLL_EN			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_VHTNDP_RPTPOLL_CSI_STR_OFFSET_SEL		BIT(15)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_WMAC_CSI_CHKSUM_DIS			BIT(14)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_NDPVLD_POS_RST_FFPTR_DIS			BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_CSI_RPT_OFFSET_VHT			8
#define BIT_MASK_CSI_RPT_OFFSET_VHT			0xff
#define BIT_CSI_RPT_OFFSET_VHT(x)			(((x) & BIT_MASK_CSI_RPT_OFFSET_VHT) << BIT_SHIFT_CSI_RPT_OFFSET_VHT)
#define BITS_CSI_RPT_OFFSET_VHT			(BIT_MASK_CSI_RPT_OFFSET_VHT << BIT_SHIFT_CSI_RPT_OFFSET_VHT)
#define BIT_CLEAR_CSI_RPT_OFFSET_VHT(x)		((x) & (~BITS_CSI_RPT_OFFSET_VHT))
#define BIT_GET_CSI_RPT_OFFSET_VHT(x)			(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_VHT) & BIT_MASK_CSI_RPT_OFFSET_VHT)
#define BIT_SET_CSI_RPT_OFFSET_VHT(x, v)		(BIT_CLEAR_CSI_RPT_OFFSET_VHT(x) | BIT_CSI_RPT_OFFSET_VHT(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1		8
#define BIT_MASK_CSI_RPT_OFFSET_VHT_V1			0x3f
#define BIT_CSI_RPT_OFFSET_VHT_V1(x)			(((x) & BIT_MASK_CSI_RPT_OFFSET_VHT_V1) << BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1)
#define BITS_CSI_RPT_OFFSET_VHT_V1			(BIT_MASK_CSI_RPT_OFFSET_VHT_V1 << BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1)
#define BIT_CLEAR_CSI_RPT_OFFSET_VHT_V1(x)		((x) & (~BITS_CSI_RPT_OFFSET_VHT_V1))
#define BIT_GET_CSI_RPT_OFFSET_VHT_V1(x)		(((x) >> BIT_SHIFT_CSI_RPT_OFFSET_VHT_V1) & BIT_MASK_CSI_RPT_OFFSET_VHT_V1)
#define BIT_SET_CSI_RPT_OFFSET_VHT_V1(x, v)		(BIT_CLEAR_CSI_RPT_OFFSET_VHT_V1(x) | BIT_CSI_RPT_OFFSET_VHT_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_R_WMAC_VHT_CATEGORY			8
#define BIT_MASK_R_WMAC_VHT_CATEGORY			0xff
#define BIT_R_WMAC_VHT_CATEGORY(x)			(((x) & BIT_MASK_R_WMAC_VHT_CATEGORY) << BIT_SHIFT_R_WMAC_VHT_CATEGORY)
#define BITS_R_WMAC_VHT_CATEGORY			(BIT_MASK_R_WMAC_VHT_CATEGORY << BIT_SHIFT_R_WMAC_VHT_CATEGORY)
#define BIT_CLEAR_R_WMAC_VHT_CATEGORY(x)		((x) & (~BITS_R_WMAC_VHT_CATEGORY))
#define BIT_GET_R_WMAC_VHT_CATEGORY(x)			(((x) >> BIT_SHIFT_R_WMAC_VHT_CATEGORY) & BIT_MASK_R_WMAC_VHT_CATEGORY)
#define BIT_SET_R_WMAC_VHT_CATEGORY(x, v)		(BIT_CLEAR_R_WMAC_VHT_CATEGORY(x) | BIT_R_WMAC_VHT_CATEGORY(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */


#define BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1		8
#define BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1		0x3f
#define BIT_R_CSI_RPT_OFFSET_VHT_V1(x)			(((x) & BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1) << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1)
#define BITS_R_CSI_RPT_OFFSET_VHT_V1			(BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1 << BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1)
#define BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1(x)		((x) & (~BITS_R_CSI_RPT_OFFSET_VHT_V1))
#define BIT_GET_R_CSI_RPT_OFFSET_VHT_V1(x)		(((x) >> BIT_SHIFT_R_CSI_RPT_OFFSET_VHT_V1) & BIT_MASK_R_CSI_RPT_OFFSET_VHT_V1)
#define BIT_SET_R_CSI_RPT_OFFSET_VHT_V1(x, v)		(BIT_CLEAR_R_CSI_RPT_OFFSET_VHT_V1(x) | BIT_R_CSI_RPT_OFFSET_VHT_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_R_WMAC_USE_NSTS				BIT(7)
#define BIT_R_DISABLE_CHECK_VHTSIGB_CRC		BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */

#define BIT_PCIE_CFG_REAL_PTM_ENABLE			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_R_DISABLE_CHECK_VHTSIGA_CRC		BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */

#define BIT_PCIE_CFG_REAL_EN_L1SUB			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SND_PTCL_CTRL			(Offset 0x0718) */

#define BIT_R_WMAC_BFPARAM_SEL				BIT(4)
#define BIT_R_WMAC_CSISEQ_SEL				BIT(3)
#define BIT_R_WMAC_CSI_WITHHTC_EN			BIT(2)
#define BIT_R_WMAC_HT_NDPA_EN				BIT(1)
#define BIT_R_WMAC_VHT_NDPA_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_TIMER_CTRL_MAX_FUNC_NUM_OFF (Offset 0x0718) */


#define BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM		0
#define BIT_MASK_PCIE_CFG_MAX_FUNC_NUM			0x7
#define BIT_PCIE_CFG_MAX_FUNC_NUM(x)			(((x) & BIT_MASK_PCIE_CFG_MAX_FUNC_NUM) << BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM)
#define BITS_PCIE_CFG_MAX_FUNC_NUM			(BIT_MASK_PCIE_CFG_MAX_FUNC_NUM << BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM)
#define BIT_CLEAR_PCIE_CFG_MAX_FUNC_NUM(x)		((x) & (~BITS_PCIE_CFG_MAX_FUNC_NUM))
#define BIT_GET_PCIE_CFG_MAX_FUNC_NUM(x)		(((x) >> BIT_SHIFT_PCIE_CFG_MAX_FUNC_NUM) & BIT_MASK_PCIE_CFG_MAX_FUNC_NUM)
#define BIT_SET_PCIE_CFG_MAX_FUNC_NUM(x, v)		(BIT_CLEAR_PCIE_CFG_MAX_FUNC_NUM(x) | BIT_PCIE_CFG_MAX_FUNC_NUM(v))


/* 2 REG_PCIE_CFG_FORCE_CLKREQ_N_PAD		(Offset 0x0719) */

#define BIT_PCIE_CFG_REAL_EN_64BITS			BIT(5)
#define BIT_PCIE_CFG_REAL_EN_CLKREQ			BIT(4)
#define BIT_PCIE_CFG_REAL_EN_L1			BIT(3)
#define BIT_PCIE_CFG_WAKE_N_EN				BIT(2)
#define BIT_PCIE_CFG_BYPASS_LTR_OPTION			BIT(1)
#define BIT_PCIE_CFG_FORCE_CLKREQ_N_PAD		BIT(0)

/* 2 REG_PCIE_CFG_TIMER_MODIFIER_FOR_ACK_NAK_LATENCY (Offset 0x071A) */


#define BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK		0
#define BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK		0xff
#define BIT_PCIE_CFG_TIMER_MOD_ACK_NAK(x)		(((x) & BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK) << BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK)
#define BITS_PCIE_CFG_TIMER_MOD_ACK_NAK		(BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK << BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK)
#define BIT_CLEAR_PCIE_CFG_TIMER_MOD_ACK_NAK(x)	((x) & (~BITS_PCIE_CFG_TIMER_MOD_ACK_NAK))
#define BIT_GET_PCIE_CFG_TIMER_MOD_ACK_NAK(x)		(((x) >> BIT_SHIFT_PCIE_CFG_TIMER_MOD_ACK_NAK) & BIT_MASK_PCIE_CFG_TIMER_MOD_ACK_NAK)
#define BIT_SET_PCIE_CFG_TIMER_MOD_ACK_NAK(x, v)	(BIT_CLEAR_PCIE_CFG_TIMER_MOD_ACK_NAK(x) | BIT_PCIE_CFG_TIMER_MOD_ACK_NAK(v))


/* 2 REG_PCIE_CFG_TIMER_MODIFIER_FOR_FLOW_CONTROL_WATCHDOG (Offset 0x071B) */

#define BIT_PCIE_CFG_BYPASS_L1_SUBSTATE_OPTION	BIT(7)

#define BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR	5
#define BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR	0x3
#define BIT_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x)	(((x) & BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR) << BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
#define BITS_PCIE_CFG_FAST_LINK_SCALING_FACTOR	(BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR << BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
#define BIT_CLEAR_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x)	((x) & (~BITS_PCIE_CFG_FAST_LINK_SCALING_FACTOR))
#define BIT_GET_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x)	(((x) >> BIT_SHIFT_PCIE_CFG_FAST_LINK_SCALING_FACTOR) & BIT_MASK_PCIE_CFG_FAST_LINK_SCALING_FACTOR)
#define BIT_SET_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x, v)	(BIT_CLEAR_PCIE_CFG_FAST_LINK_SCALING_FACTOR(x) | BIT_PCIE_CFG_FAST_LINK_SCALING_FACTOR(v))


#define BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER		0
#define BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER		0x1f
#define BIT_PCIE_CFG_UPDATE_FREQ_TIMER(x)		(((x) & BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER) << BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER)
#define BITS_PCIE_CFG_UPDATE_FREQ_TIMER		(BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER << BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER)
#define BIT_CLEAR_PCIE_CFG_UPDATE_FREQ_TIMER(x)	((x) & (~BITS_PCIE_CFG_UPDATE_FREQ_TIMER))
#define BIT_GET_PCIE_CFG_UPDATE_FREQ_TIMER(x)		(((x) >> BIT_SHIFT_PCIE_CFG_UPDATE_FREQ_TIMER) & BIT_MASK_PCIE_CFG_UPDATE_FREQ_TIMER)
#define BIT_SET_PCIE_CFG_UPDATE_FREQ_TIMER(x, v)	(BIT_CLEAR_PCIE_CFG_UPDATE_FREQ_TIMER(x) | BIT_PCIE_CFG_UPDATE_FREQ_TIMER(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RX_CSI_RPT_INFO			(Offset 0x071C) */

#define BIT_WRITE_ENABLE				BIT(31)
#define BIT_WRITE_USERID				BIT(12)

#define BIT_SHIFT_WRITE_BW				10
#define BIT_MASK_WRITE_BW				0x3
#define BIT_WRITE_BW(x)				(((x) & BIT_MASK_WRITE_BW) << BIT_SHIFT_WRITE_BW)
#define BITS_WRITE_BW					(BIT_MASK_WRITE_BW << BIT_SHIFT_WRITE_BW)
#define BIT_CLEAR_WRITE_BW(x)				((x) & (~BITS_WRITE_BW))
#define BIT_GET_WRITE_BW(x)				(((x) >> BIT_SHIFT_WRITE_BW) & BIT_MASK_WRITE_BW)
#define BIT_SET_WRITE_BW(x, v)				(BIT_CLEAR_WRITE_BW(x) | BIT_WRITE_BW(v))


#define BIT_SHIFT_WRITE_CB				8
#define BIT_MASK_WRITE_CB				0x3
#define BIT_WRITE_CB(x)				(((x) & BIT_MASK_WRITE_CB) << BIT_SHIFT_WRITE_CB)
#define BITS_WRITE_CB					(BIT_MASK_WRITE_CB << BIT_SHIFT_WRITE_CB)
#define BIT_CLEAR_WRITE_CB(x)				((x) & (~BITS_WRITE_CB))
#define BIT_GET_WRITE_CB(x)				(((x) >> BIT_SHIFT_WRITE_CB) & BIT_MASK_WRITE_CB)
#define BIT_SET_WRITE_CB(x, v)				(BIT_CLEAR_WRITE_CB(x) | BIT_WRITE_CB(v))


#define BIT_SHIFT_WRITE_GROUPING			6
#define BIT_MASK_WRITE_GROUPING			0x3
#define BIT_WRITE_GROUPING(x)				(((x) & BIT_MASK_WRITE_GROUPING) << BIT_SHIFT_WRITE_GROUPING)
#define BITS_WRITE_GROUPING				(BIT_MASK_WRITE_GROUPING << BIT_SHIFT_WRITE_GROUPING)
#define BIT_CLEAR_WRITE_GROUPING(x)			((x) & (~BITS_WRITE_GROUPING))
#define BIT_GET_WRITE_GROUPING(x)			(((x) >> BIT_SHIFT_WRITE_GROUPING) & BIT_MASK_WRITE_GROUPING)
#define BIT_SET_WRITE_GROUPING(x, v)			(BIT_CLEAR_WRITE_GROUPING(x) | BIT_WRITE_GROUPING(v))


#define BIT_SHIFT_WRITE_NR				3
#define BIT_MASK_WRITE_NR				0x7
#define BIT_WRITE_NR(x)				(((x) & BIT_MASK_WRITE_NR) << BIT_SHIFT_WRITE_NR)
#define BITS_WRITE_NR					(BIT_MASK_WRITE_NR << BIT_SHIFT_WRITE_NR)
#define BIT_CLEAR_WRITE_NR(x)				((x) & (~BITS_WRITE_NR))
#define BIT_GET_WRITE_NR(x)				(((x) >> BIT_SHIFT_WRITE_NR) & BIT_MASK_WRITE_NR)
#define BIT_SET_WRITE_NR(x, v)				(BIT_CLEAR_WRITE_NR(x) | BIT_WRITE_NR(v))


#define BIT_SHIFT_WRITE_NC				0
#define BIT_MASK_WRITE_NC				0x7
#define BIT_WRITE_NC(x)				(((x) & BIT_MASK_WRITE_NC) << BIT_SHIFT_WRITE_NC)
#define BITS_WRITE_NC					(BIT_MASK_WRITE_NC << BIT_SHIFT_WRITE_NC)
#define BIT_CLEAR_WRITE_NC(x)				((x) & (~BITS_WRITE_NC))
#define BIT_GET_WRITE_NC(x)				(((x) >> BIT_SHIFT_WRITE_NC) & BIT_MASK_WRITE_NC)
#define BIT_SET_WRITE_NC(x, v)				(BIT_CLEAR_WRITE_NC(x) | BIT_WRITE_NC(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_SKP_INTERVAL_VALUE_L	(Offset 0x071C) */


#define BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L	0
#define BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L	0xff
#define BIT_PCIE_CFG_SKP_INTERVAL_VALUE_L(x)		(((x) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L) << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L)
#define BITS_PCIE_CFG_SKP_INTERVAL_VALUE_L		(BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L)
#define BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_L(x)	((x) & (~BITS_PCIE_CFG_SKP_INTERVAL_VALUE_L))
#define BIT_GET_PCIE_CFG_SKP_INTERVAL_VALUE_L(x)	(((x) >> BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_L) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_L)
#define BIT_SET_PCIE_CFG_SKP_INTERVAL_VALUE_L(x, v)	(BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_L(x) | BIT_PCIE_CFG_SKP_INTERVAL_VALUE_L(v))


/* 2 REG_PCIE_CFG_SKP_INTERVAL_VALUE_H	(Offset 0x071D) */

#define BIT_PCIE_CFG_DISABLE_FC_WATCHDOG_TIMER	BIT(7)

#define BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H	0
#define BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H	0x7
#define BIT_PCIE_CFG_SKP_INTERVAL_VALUE_H(x)		(((x) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H) << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H)
#define BITS_PCIE_CFG_SKP_INTERVAL_VALUE_H		(BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H << BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H)
#define BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_H(x)	((x) & (~BITS_PCIE_CFG_SKP_INTERVAL_VALUE_H))
#define BIT_GET_PCIE_CFG_SKP_INTERVAL_VALUE_H(x)	(((x) >> BIT_SHIFT_PCIE_CFG_SKP_INTERVAL_VALUE_H) & BIT_MASK_PCIE_CFG_SKP_INTERVAL_VALUE_H)
#define BIT_SET_PCIE_CFG_SKP_INTERVAL_VALUE_H(x, v)	(BIT_CLEAR_PCIE_CFG_SKP_INTERVAL_VALUE_H(x) | BIT_PCIE_CFG_SKP_INTERVAL_VALUE_H(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NS_ARP_CTRL				(Offset 0x0720) */

#define BIT_R_WMAC_NSARP_RSPEN				BIT(15)
#define BIT_R_WMAC_NSARP_RARP				BIT(9)
#define BIT_R_WMAC_NSARP_RIPV6				BIT(8)

#define BIT_SHIFT_R_WMAC_NSARP_MODEN			6
#define BIT_MASK_R_WMAC_NSARP_MODEN			0x3
#define BIT_R_WMAC_NSARP_MODEN(x)			(((x) & BIT_MASK_R_WMAC_NSARP_MODEN) << BIT_SHIFT_R_WMAC_NSARP_MODEN)
#define BITS_R_WMAC_NSARP_MODEN			(BIT_MASK_R_WMAC_NSARP_MODEN << BIT_SHIFT_R_WMAC_NSARP_MODEN)
#define BIT_CLEAR_R_WMAC_NSARP_MODEN(x)		((x) & (~BITS_R_WMAC_NSARP_MODEN))
#define BIT_GET_R_WMAC_NSARP_MODEN(x)			(((x) >> BIT_SHIFT_R_WMAC_NSARP_MODEN) & BIT_MASK_R_WMAC_NSARP_MODEN)
#define BIT_SET_R_WMAC_NSARP_MODEN(x, v)		(BIT_CLEAR_R_WMAC_NSARP_MODEN(x) | BIT_R_WMAC_NSARP_MODEN(v))


#define BIT_SHIFT_R_WMAC_NSARP_RSPFTP			4
#define BIT_MASK_R_WMAC_NSARP_RSPFTP			0x3
#define BIT_R_WMAC_NSARP_RSPFTP(x)			(((x) & BIT_MASK_R_WMAC_NSARP_RSPFTP) << BIT_SHIFT_R_WMAC_NSARP_RSPFTP)
#define BITS_R_WMAC_NSARP_RSPFTP			(BIT_MASK_R_WMAC_NSARP_RSPFTP << BIT_SHIFT_R_WMAC_NSARP_RSPFTP)
#define BIT_CLEAR_R_WMAC_NSARP_RSPFTP(x)		((x) & (~BITS_R_WMAC_NSARP_RSPFTP))
#define BIT_GET_R_WMAC_NSARP_RSPFTP(x)			(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPFTP) & BIT_MASK_R_WMAC_NSARP_RSPFTP)
#define BIT_SET_R_WMAC_NSARP_RSPFTP(x, v)		(BIT_CLEAR_R_WMAC_NSARP_RSPFTP(x) | BIT_R_WMAC_NSARP_RSPFTP(v))


#define BIT_SHIFT_R_WMAC_NSARP_RSPSEC			0
#define BIT_MASK_R_WMAC_NSARP_RSPSEC			0xf
#define BIT_R_WMAC_NSARP_RSPSEC(x)			(((x) & BIT_MASK_R_WMAC_NSARP_RSPSEC) << BIT_SHIFT_R_WMAC_NSARP_RSPSEC)
#define BITS_R_WMAC_NSARP_RSPSEC			(BIT_MASK_R_WMAC_NSARP_RSPSEC << BIT_SHIFT_R_WMAC_NSARP_RSPSEC)
#define BIT_CLEAR_R_WMAC_NSARP_RSPSEC(x)		((x) & (~BITS_R_WMAC_NSARP_RSPSEC))
#define BIT_GET_R_WMAC_NSARP_RSPSEC(x)			(((x) >> BIT_SHIFT_R_WMAC_NSARP_RSPSEC) & BIT_MASK_R_WMAC_NSARP_RSPSEC)
#define BIT_SET_R_WMAC_NSARP_RSPSEC(x, v)		(BIT_CLEAR_R_WMAC_NSARP_RSPSEC(x) | BIT_R_WMAC_NSARP_RSPSEC(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NS_ARP_INFO				(Offset 0x0724) */

#define BIT_REQ_IS_MCNS				BIT(23)
#define BIT_REQ_IS_UCNS				BIT(22)
#define BIT_REQ_IS_USNS				BIT(21)
#define BIT_REQ_IS_ARP					BIT(20)
#define BIT_EXPRSP_MH_WITHQC				BIT(19)

#define BIT_SHIFT_EXPRSP_SECTYPE			16
#define BIT_MASK_EXPRSP_SECTYPE			0x7
#define BIT_EXPRSP_SECTYPE(x)				(((x) & BIT_MASK_EXPRSP_SECTYPE) << BIT_SHIFT_EXPRSP_SECTYPE)
#define BITS_EXPRSP_SECTYPE				(BIT_MASK_EXPRSP_SECTYPE << BIT_SHIFT_EXPRSP_SECTYPE)
#define BIT_CLEAR_EXPRSP_SECTYPE(x)			((x) & (~BITS_EXPRSP_SECTYPE))
#define BIT_GET_EXPRSP_SECTYPE(x)			(((x) >> BIT_SHIFT_EXPRSP_SECTYPE) & BIT_MASK_EXPRSP_SECTYPE)
#define BIT_SET_EXPRSP_SECTYPE(x, v)			(BIT_CLEAR_EXPRSP_SECTYPE(x) | BIT_EXPRSP_SECTYPE(v))


#define BIT_SHIFT_EXPRSP_CHKSM_7_TO_0			8
#define BIT_MASK_EXPRSP_CHKSM_7_TO_0			0xff
#define BIT_EXPRSP_CHKSM_7_TO_0(x)			(((x) & BIT_MASK_EXPRSP_CHKSM_7_TO_0) << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0)
#define BITS_EXPRSP_CHKSM_7_TO_0			(BIT_MASK_EXPRSP_CHKSM_7_TO_0 << BIT_SHIFT_EXPRSP_CHKSM_7_TO_0)
#define BIT_CLEAR_EXPRSP_CHKSM_7_TO_0(x)		((x) & (~BITS_EXPRSP_CHKSM_7_TO_0))
#define BIT_GET_EXPRSP_CHKSM_7_TO_0(x)			(((x) >> BIT_SHIFT_EXPRSP_CHKSM_7_TO_0) & BIT_MASK_EXPRSP_CHKSM_7_TO_0)
#define BIT_SET_EXPRSP_CHKSM_7_TO_0(x, v)		(BIT_CLEAR_EXPRSP_CHKSM_7_TO_0(x) | BIT_EXPRSP_CHKSM_7_TO_0(v))


#define BIT_SHIFT_EXPRSP_CHKSM_15_TO_8			0
#define BIT_MASK_EXPRSP_CHKSM_15_TO_8			0xff
#define BIT_EXPRSP_CHKSM_15_TO_8(x)			(((x) & BIT_MASK_EXPRSP_CHKSM_15_TO_8) << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8)
#define BITS_EXPRSP_CHKSM_15_TO_8			(BIT_MASK_EXPRSP_CHKSM_15_TO_8 << BIT_SHIFT_EXPRSP_CHKSM_15_TO_8)
#define BIT_CLEAR_EXPRSP_CHKSM_15_TO_8(x)		((x) & (~BITS_EXPRSP_CHKSM_15_TO_8))
#define BIT_GET_EXPRSP_CHKSM_15_TO_8(x)		(((x) >> BIT_SHIFT_EXPRSP_CHKSM_15_TO_8) & BIT_MASK_EXPRSP_CHKSM_15_TO_8)
#define BIT_SET_EXPRSP_CHKSM_15_TO_8(x, v)		(BIT_CLEAR_EXPRSP_CHKSM_15_TO_8(x) | BIT_EXPRSP_CHKSM_15_TO_8(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PCIE_CFG_L1_UNIT_SEL		(Offset 0x0724) */


#define BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL			0
#define BIT_MASK_PCIE_CFG_L1_UNIT_SEL			0xff
#define BIT_PCIE_CFG_L1_UNIT_SEL(x)			(((x) & BIT_MASK_PCIE_CFG_L1_UNIT_SEL) << BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL)
#define BITS_PCIE_CFG_L1_UNIT_SEL			(BIT_MASK_PCIE_CFG_L1_UNIT_SEL << BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL)
#define BIT_CLEAR_PCIE_CFG_L1_UNIT_SEL(x)		((x) & (~BITS_PCIE_CFG_L1_UNIT_SEL))
#define BIT_GET_PCIE_CFG_L1_UNIT_SEL(x)		(((x) >> BIT_SHIFT_PCIE_CFG_L1_UNIT_SEL) & BIT_MASK_PCIE_CFG_L1_UNIT_SEL)
#define BIT_SET_PCIE_CFG_L1_UNIT_SEL(x, v)		(BIT_CLEAR_PCIE_CFG_L1_UNIT_SEL(x) | BIT_PCIE_CFG_L1_UNIT_SEL(v))


/* 2 REG_PCIE_CFG_MIN_CLKREQ_SEL		(Offset 0x0725) */


#define BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL		0
#define BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL		0xf
#define BIT_PCIE_CFG_MIN_CLKREQ_SEL(x)			(((x) & BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL) << BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL)
#define BITS_PCIE_CFG_MIN_CLKREQ_SEL			(BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL << BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL)
#define BIT_CLEAR_PCIE_CFG_MIN_CLKREQ_SEL(x)		((x) & (~BITS_PCIE_CFG_MIN_CLKREQ_SEL))
#define BIT_GET_PCIE_CFG_MIN_CLKREQ_SEL(x)		(((x) >> BIT_SHIFT_PCIE_CFG_MIN_CLKREQ_SEL) & BIT_MASK_PCIE_CFG_MIN_CLKREQ_SEL)
#define BIT_SET_PCIE_CFG_MIN_CLKREQ_SEL(x, v)		(BIT_CLEAR_PCIE_CFG_MIN_CLKREQ_SEL(x) | BIT_PCIE_CFG_MIN_CLKREQ_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BEAMFORMING_INFO_NSARP_V1		(Offset 0x0728) */


#define BIT_SHIFT_WMAC_ARPIP				0
#define BIT_MASK_WMAC_ARPIP				0xffffffffL
#define BIT_WMAC_ARPIP(x)				(((x) & BIT_MASK_WMAC_ARPIP) << BIT_SHIFT_WMAC_ARPIP)
#define BITS_WMAC_ARPIP				(BIT_MASK_WMAC_ARPIP << BIT_SHIFT_WMAC_ARPIP)
#define BIT_CLEAR_WMAC_ARPIP(x)			((x) & (~BITS_WMAC_ARPIP))
#define BIT_GET_WMAC_ARPIP(x)				(((x) >> BIT_SHIFT_WMAC_ARPIP) & BIT_MASK_WMAC_ARPIP)
#define BIT_SET_WMAC_ARPIP(x, v)			(BIT_CLEAR_WMAC_ARPIP(x) | BIT_WMAC_ARPIP(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BEAMFORMING_INFO_NSARP		(Offset 0x072C) */


#define BIT_SHIFT_BEAMFORMING_INFO			0
#define BIT_MASK_BEAMFORMING_INFO			0xffffffffL
#define BIT_BEAMFORMING_INFO(x)			(((x) & BIT_MASK_BEAMFORMING_INFO) << BIT_SHIFT_BEAMFORMING_INFO)
#define BITS_BEAMFORMING_INFO				(BIT_MASK_BEAMFORMING_INFO << BIT_SHIFT_BEAMFORMING_INFO)
#define BIT_CLEAR_BEAMFORMING_INFO(x)			((x) & (~BITS_BEAMFORMING_INFO))
#define BIT_GET_BEAMFORMING_INFO(x)			(((x) >> BIT_SHIFT_BEAMFORMING_INFO) & BIT_MASK_BEAMFORMING_INFO)
#define BIT_SET_BEAMFORMING_INFO(x, v)			(BIT_CLEAR_BEAMFORMING_INFO(x) | BIT_BEAMFORMING_INFO(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_IPV6				(Offset 0x0730) */


#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0			0
#define BIT_MASK_R_WMAC_IPV6_MYIPAD_0			0xffffffffL
#define BIT_R_WMAC_IPV6_MYIPAD_0(x)			(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_0) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0)
#define BITS_R_WMAC_IPV6_MYIPAD_0			(BIT_MASK_R_WMAC_IPV6_MYIPAD_0 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0)
#define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_0(x)		((x) & (~BITS_R_WMAC_IPV6_MYIPAD_0))
#define BIT_GET_R_WMAC_IPV6_MYIPAD_0(x)		(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_0) & BIT_MASK_R_WMAC_IPV6_MYIPAD_0)
#define BIT_SET_R_WMAC_IPV6_MYIPAD_0(x, v)		(BIT_CLEAR_R_WMAC_IPV6_MYIPAD_0(x) | BIT_R_WMAC_IPV6_MYIPAD_0(v))


/* 2 REG_IPV6_1				(Offset 0x0734) */


#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1			0
#define BIT_MASK_R_WMAC_IPV6_MYIPAD_1			0xffffffffL
#define BIT_R_WMAC_IPV6_MYIPAD_1(x)			(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_1) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1)
#define BITS_R_WMAC_IPV6_MYIPAD_1			(BIT_MASK_R_WMAC_IPV6_MYIPAD_1 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1)
#define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_1(x)		((x) & (~BITS_R_WMAC_IPV6_MYIPAD_1))
#define BIT_GET_R_WMAC_IPV6_MYIPAD_1(x)		(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_1) & BIT_MASK_R_WMAC_IPV6_MYIPAD_1)
#define BIT_SET_R_WMAC_IPV6_MYIPAD_1(x, v)		(BIT_CLEAR_R_WMAC_IPV6_MYIPAD_1(x) | BIT_R_WMAC_IPV6_MYIPAD_1(v))


/* 2 REG_IPV6_2				(Offset 0x0738) */


#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2			0
#define BIT_MASK_R_WMAC_IPV6_MYIPAD_2			0xffffffffL
#define BIT_R_WMAC_IPV6_MYIPAD_2(x)			(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_2) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2)
#define BITS_R_WMAC_IPV6_MYIPAD_2			(BIT_MASK_R_WMAC_IPV6_MYIPAD_2 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2)
#define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_2(x)		((x) & (~BITS_R_WMAC_IPV6_MYIPAD_2))
#define BIT_GET_R_WMAC_IPV6_MYIPAD_2(x)		(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_2) & BIT_MASK_R_WMAC_IPV6_MYIPAD_2)
#define BIT_SET_R_WMAC_IPV6_MYIPAD_2(x, v)		(BIT_CLEAR_R_WMAC_IPV6_MYIPAD_2(x) | BIT_R_WMAC_IPV6_MYIPAD_2(v))


/* 2 REG_IPV6_3				(Offset 0x073C) */


#define BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3			0
#define BIT_MASK_R_WMAC_IPV6_MYIPAD_3			0xffffffffL
#define BIT_R_WMAC_IPV6_MYIPAD_3(x)			(((x) & BIT_MASK_R_WMAC_IPV6_MYIPAD_3) << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3)
#define BITS_R_WMAC_IPV6_MYIPAD_3			(BIT_MASK_R_WMAC_IPV6_MYIPAD_3 << BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3)
#define BIT_CLEAR_R_WMAC_IPV6_MYIPAD_3(x)		((x) & (~BITS_R_WMAC_IPV6_MYIPAD_3))
#define BIT_GET_R_WMAC_IPV6_MYIPAD_3(x)		(((x) >> BIT_SHIFT_R_WMAC_IPV6_MYIPAD_3) & BIT_MASK_R_WMAC_IPV6_MYIPAD_3)
#define BIT_SET_R_WMAC_IPV6_MYIPAD_3(x, v)		(BIT_CLEAR_R_WMAC_IPV6_MYIPAD_3(x) | BIT_R_WMAC_IPV6_MYIPAD_3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_RTX_CTX_SUBTYPE_CFG		(Offset 0x0750) */


#define BIT_SHIFT_R_WMAC_CTX_SUBTYPE			4
#define BIT_MASK_R_WMAC_CTX_SUBTYPE			0xf
#define BIT_R_WMAC_CTX_SUBTYPE(x)			(((x) & BIT_MASK_R_WMAC_CTX_SUBTYPE) << BIT_SHIFT_R_WMAC_CTX_SUBTYPE)
#define BITS_R_WMAC_CTX_SUBTYPE			(BIT_MASK_R_WMAC_CTX_SUBTYPE << BIT_SHIFT_R_WMAC_CTX_SUBTYPE)
#define BIT_CLEAR_R_WMAC_CTX_SUBTYPE(x)		((x) & (~BITS_R_WMAC_CTX_SUBTYPE))
#define BIT_GET_R_WMAC_CTX_SUBTYPE(x)			(((x) >> BIT_SHIFT_R_WMAC_CTX_SUBTYPE) & BIT_MASK_R_WMAC_CTX_SUBTYPE)
#define BIT_SET_R_WMAC_CTX_SUBTYPE(x, v)		(BIT_CLEAR_R_WMAC_CTX_SUBTYPE(x) | BIT_R_WMAC_CTX_SUBTYPE(v))


#define BIT_SHIFT_R_WMAC_RTX_SUBTYPE			0
#define BIT_MASK_R_WMAC_RTX_SUBTYPE			0xf
#define BIT_R_WMAC_RTX_SUBTYPE(x)			(((x) & BIT_MASK_R_WMAC_RTX_SUBTYPE) << BIT_SHIFT_R_WMAC_RTX_SUBTYPE)
#define BITS_R_WMAC_RTX_SUBTYPE			(BIT_MASK_R_WMAC_RTX_SUBTYPE << BIT_SHIFT_R_WMAC_RTX_SUBTYPE)
#define BIT_CLEAR_R_WMAC_RTX_SUBTYPE(x)		((x) & (~BITS_R_WMAC_RTX_SUBTYPE))
#define BIT_GET_R_WMAC_RTX_SUBTYPE(x)			(((x) >> BIT_SHIFT_R_WMAC_RTX_SUBTYPE) & BIT_MASK_R_WMAC_RTX_SUBTYPE)
#define BIT_SET_R_WMAC_RTX_SUBTYPE(x, v)		(BIT_CLEAR_R_WMAC_RTX_SUBTYPE(x) | BIT_R_WMAC_RTX_SUBTYPE(v))


/* 2 REG_BT_COEX_V2				(Offset 0x0762) */

#define BIT_GNT_BT_POLARITY				BIT(12)
#define BIT_GNT_BT_BYPASS_PRIORITY			BIT(8)

#define BIT_SHIFT_TIMER				0
#define BIT_MASK_TIMER					0xff
#define BIT_TIMER(x)					(((x) & BIT_MASK_TIMER) << BIT_SHIFT_TIMER)
#define BITS_TIMER					(BIT_MASK_TIMER << BIT_SHIFT_TIMER)
#define BIT_CLEAR_TIMER(x)				((x) & (~BITS_TIMER))
#define BIT_GET_TIMER(x)				(((x) >> BIT_SHIFT_TIMER) & BIT_MASK_TIMER)
#define BIT_SET_TIMER(x, v)				(BIT_CLEAR_TIMER(x) | BIT_TIMER(v))


/* 2 REG_BT_COEX				(Offset 0x0764) */

#define BIT_R_GNT_BT_RFC_SW				BIT(12)
#define BIT_R_GNT_BT_RFC_SW_EN				BIT(11)
#define BIT_R_GNT_BT_BB_SW				BIT(10)
#define BIT_R_GNT_BT_BB_SW_EN				BIT(9)
#define BIT_R_BT_CNT_THREN				BIT(8)

#define BIT_SHIFT_R_BT_CNT_THR				0
#define BIT_MASK_R_BT_CNT_THR				0xff
#define BIT_R_BT_CNT_THR(x)				(((x) & BIT_MASK_R_BT_CNT_THR) << BIT_SHIFT_R_BT_CNT_THR)
#define BITS_R_BT_CNT_THR				(BIT_MASK_R_BT_CNT_THR << BIT_SHIFT_R_BT_CNT_THR)
#define BIT_CLEAR_R_BT_CNT_THR(x)			((x) & (~BITS_R_BT_CNT_THR))
#define BIT_GET_R_BT_CNT_THR(x)			(((x) >> BIT_SHIFT_R_BT_CNT_THR) & BIT_MASK_R_BT_CNT_THR)
#define BIT_SET_R_BT_CNT_THR(x, v)			(BIT_CLEAR_R_BT_CNT_THR(x) | BIT_R_BT_CNT_THR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */

#define BIT_WLRX_TER_BY_CTL				BIT(43)
#define BIT_WLRX_TER_BY_AD				BIT(42)
#define BIT_ANT_DIVERSITY_SEL				BIT(41)
#define BIT_ANTSEL_FOR_BT_CTRL_EN			BIT(40)
#define BIT_WLACT_LOW_GNTWL_EN				BIT(34)
#define BIT_WLACT_HIGH_GNTBT_EN			BIT(33)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */

#define BIT_NAV_UPPER_V1				BIT(32)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WLAN_ACT_MASK_CTRL			(Offset 0x0768) */


#define BIT_SHIFT_RXMYRTS_NAV_V1			8
#define BIT_MASK_RXMYRTS_NAV_V1			0xff
#define BIT_RXMYRTS_NAV_V1(x)				(((x) & BIT_MASK_RXMYRTS_NAV_V1) << BIT_SHIFT_RXMYRTS_NAV_V1)
#define BITS_RXMYRTS_NAV_V1				(BIT_MASK_RXMYRTS_NAV_V1 << BIT_SHIFT_RXMYRTS_NAV_V1)
#define BIT_CLEAR_RXMYRTS_NAV_V1(x)			((x) & (~BITS_RXMYRTS_NAV_V1))
#define BIT_GET_RXMYRTS_NAV_V1(x)			(((x) >> BIT_SHIFT_RXMYRTS_NAV_V1) & BIT_MASK_RXMYRTS_NAV_V1)
#define BIT_SET_RXMYRTS_NAV_V1(x, v)			(BIT_CLEAR_RXMYRTS_NAV_V1(x) | BIT_RXMYRTS_NAV_V1(v))


#define BIT_SHIFT_RTSRST_V1				0
#define BIT_MASK_RTSRST_V1				0xff
#define BIT_RTSRST_V1(x)				(((x) & BIT_MASK_RTSRST_V1) << BIT_SHIFT_RTSRST_V1)
#define BITS_RTSRST_V1					(BIT_MASK_RTSRST_V1 << BIT_SHIFT_RTSRST_V1)
#define BIT_CLEAR_RTSRST_V1(x)				((x) & (~BITS_RTSRST_V1))
#define BIT_GET_RTSRST_V1(x)				(((x) >> BIT_SHIFT_RTSRST_V1) & BIT_MASK_RTSRST_V1)
#define BIT_SET_RTSRST_V1(x, v)			(BIT_CLEAR_RTSRST_V1(x) | BIT_RTSRST_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WLAN_ACT_MASK_CTRL_1		(Offset 0x076C) */

#define BIT_WLRX_TER_BY_CTL_1				BIT(11)
#define BIT_WLRX_TER_BY_AD_1				BIT(10)
#define BIT_ANT_DIVERSITY_SEL_1			BIT(9)
#define BIT_ANTSEL_FOR_BT_CTRL_EN_1			BIT(8)
#define BIT_WLACT_LOW_GNTWL_EN_1			BIT(2)
#define BIT_WLACT_HIGH_GNTBT_EN_1			BIT(1)
#define BIT_NAV_UPPER_1_V1				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_COEX_ENHANCED_INTR_CTRL		(Offset 0x076E) */


#define BIT_SHIFT_BT_STAT_DELAY			12
#define BIT_MASK_BT_STAT_DELAY				0xf
#define BIT_BT_STAT_DELAY(x)				(((x) & BIT_MASK_BT_STAT_DELAY) << BIT_SHIFT_BT_STAT_DELAY)
#define BITS_BT_STAT_DELAY				(BIT_MASK_BT_STAT_DELAY << BIT_SHIFT_BT_STAT_DELAY)
#define BIT_CLEAR_BT_STAT_DELAY(x)			((x) & (~BITS_BT_STAT_DELAY))
#define BIT_GET_BT_STAT_DELAY(x)			(((x) >> BIT_SHIFT_BT_STAT_DELAY) & BIT_MASK_BT_STAT_DELAY)
#define BIT_SET_BT_STAT_DELAY(x, v)			(BIT_CLEAR_BT_STAT_DELAY(x) | BIT_BT_STAT_DELAY(v))


#define BIT_SHIFT_BT_TRX_INIT_DETECT			8
#define BIT_MASK_BT_TRX_INIT_DETECT			0xf
#define BIT_BT_TRX_INIT_DETECT(x)			(((x) & BIT_MASK_BT_TRX_INIT_DETECT) << BIT_SHIFT_BT_TRX_INIT_DETECT)
#define BITS_BT_TRX_INIT_DETECT			(BIT_MASK_BT_TRX_INIT_DETECT << BIT_SHIFT_BT_TRX_INIT_DETECT)
#define BIT_CLEAR_BT_TRX_INIT_DETECT(x)		((x) & (~BITS_BT_TRX_INIT_DETECT))
#define BIT_GET_BT_TRX_INIT_DETECT(x)			(((x) >> BIT_SHIFT_BT_TRX_INIT_DETECT) & BIT_MASK_BT_TRX_INIT_DETECT)
#define BIT_SET_BT_TRX_INIT_DETECT(x, v)		(BIT_CLEAR_BT_TRX_INIT_DETECT(x) | BIT_BT_TRX_INIT_DETECT(v))


#define BIT_SHIFT_BT_PRI_DETECT_TO			4
#define BIT_MASK_BT_PRI_DETECT_TO			0xf
#define BIT_BT_PRI_DETECT_TO(x)			(((x) & BIT_MASK_BT_PRI_DETECT_TO) << BIT_SHIFT_BT_PRI_DETECT_TO)
#define BITS_BT_PRI_DETECT_TO				(BIT_MASK_BT_PRI_DETECT_TO << BIT_SHIFT_BT_PRI_DETECT_TO)
#define BIT_CLEAR_BT_PRI_DETECT_TO(x)			((x) & (~BITS_BT_PRI_DETECT_TO))
#define BIT_GET_BT_PRI_DETECT_TO(x)			(((x) >> BIT_SHIFT_BT_PRI_DETECT_TO) & BIT_MASK_BT_PRI_DETECT_TO)
#define BIT_SET_BT_PRI_DETECT_TO(x, v)			(BIT_CLEAR_BT_PRI_DETECT_TO(x) | BIT_BT_PRI_DETECT_TO(v))

#define BIT_R_GRANTALL_WLMASK				BIT(3)
#define BIT_STATIS_BT_EN				BIT(2)
#define BIT_WL_ACT_MASK_ENABLE				BIT(1)
#define BIT_ENHANCED_BT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_ACT_STATISTICS			(Offset 0x0770) */


#define BIT_SHIFT_STATIS_BT_LO_RX			(48 & CPU_OPT_WIDTH)
#define BIT_MASK_STATIS_BT_LO_RX			0xffff
#define BIT_STATIS_BT_LO_RX(x)				(((x) & BIT_MASK_STATIS_BT_LO_RX) << BIT_SHIFT_STATIS_BT_LO_RX)
#define BITS_STATIS_BT_LO_RX				(BIT_MASK_STATIS_BT_LO_RX << BIT_SHIFT_STATIS_BT_LO_RX)
#define BIT_CLEAR_STATIS_BT_LO_RX(x)			((x) & (~BITS_STATIS_BT_LO_RX))
#define BIT_GET_STATIS_BT_LO_RX(x)			(((x) >> BIT_SHIFT_STATIS_BT_LO_RX) & BIT_MASK_STATIS_BT_LO_RX)
#define BIT_SET_STATIS_BT_LO_RX(x, v)			(BIT_CLEAR_STATIS_BT_LO_RX(x) | BIT_STATIS_BT_LO_RX(v))


#define BIT_SHIFT_STATIS_BT_LO_TX			(32 & CPU_OPT_WIDTH)
#define BIT_MASK_STATIS_BT_LO_TX			0xffff
#define BIT_STATIS_BT_LO_TX(x)				(((x) & BIT_MASK_STATIS_BT_LO_TX) << BIT_SHIFT_STATIS_BT_LO_TX)
#define BITS_STATIS_BT_LO_TX				(BIT_MASK_STATIS_BT_LO_TX << BIT_SHIFT_STATIS_BT_LO_TX)
#define BIT_CLEAR_STATIS_BT_LO_TX(x)			((x) & (~BITS_STATIS_BT_LO_TX))
#define BIT_GET_STATIS_BT_LO_TX(x)			(((x) >> BIT_SHIFT_STATIS_BT_LO_TX) & BIT_MASK_STATIS_BT_LO_TX)
#define BIT_SET_STATIS_BT_LO_TX(x, v)			(BIT_CLEAR_STATIS_BT_LO_TX(x) | BIT_STATIS_BT_LO_TX(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_ACT_STATISTICS			(Offset 0x0770) */


#define BIT_SHIFT_STATIS_BT_HI_RX			16
#define BIT_MASK_STATIS_BT_HI_RX			0xffff
#define BIT_STATIS_BT_HI_RX(x)				(((x) & BIT_MASK_STATIS_BT_HI_RX) << BIT_SHIFT_STATIS_BT_HI_RX)
#define BITS_STATIS_BT_HI_RX				(BIT_MASK_STATIS_BT_HI_RX << BIT_SHIFT_STATIS_BT_HI_RX)
#define BIT_CLEAR_STATIS_BT_HI_RX(x)			((x) & (~BITS_STATIS_BT_HI_RX))
#define BIT_GET_STATIS_BT_HI_RX(x)			(((x) >> BIT_SHIFT_STATIS_BT_HI_RX) & BIT_MASK_STATIS_BT_HI_RX)
#define BIT_SET_STATIS_BT_HI_RX(x, v)			(BIT_CLEAR_STATIS_BT_HI_RX(x) | BIT_STATIS_BT_HI_RX(v))


#define BIT_SHIFT_STATIS_BT_HI_TX			0
#define BIT_MASK_STATIS_BT_HI_TX			0xffff
#define BIT_STATIS_BT_HI_TX(x)				(((x) & BIT_MASK_STATIS_BT_HI_TX) << BIT_SHIFT_STATIS_BT_HI_TX)
#define BITS_STATIS_BT_HI_TX				(BIT_MASK_STATIS_BT_HI_TX << BIT_SHIFT_STATIS_BT_HI_TX)
#define BIT_CLEAR_STATIS_BT_HI_TX(x)			((x) & (~BITS_STATIS_BT_HI_TX))
#define BIT_GET_STATIS_BT_HI_TX(x)			(((x) >> BIT_SHIFT_STATIS_BT_HI_TX) & BIT_MASK_STATIS_BT_HI_TX)
#define BIT_SET_STATIS_BT_HI_TX(x, v)			(BIT_CLEAR_STATIS_BT_HI_TX(x) | BIT_STATIS_BT_HI_TX(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BT_ACT_STATISTICS_1			(Offset 0x0774) */


#define BIT_SHIFT_STATIS_BT_LO_RX_1			16
#define BIT_MASK_STATIS_BT_LO_RX_1			0xffff
#define BIT_STATIS_BT_LO_RX_1(x)			(((x) & BIT_MASK_STATIS_BT_LO_RX_1) << BIT_SHIFT_STATIS_BT_LO_RX_1)
#define BITS_STATIS_BT_LO_RX_1				(BIT_MASK_STATIS_BT_LO_RX_1 << BIT_SHIFT_STATIS_BT_LO_RX_1)
#define BIT_CLEAR_STATIS_BT_LO_RX_1(x)			((x) & (~BITS_STATIS_BT_LO_RX_1))
#define BIT_GET_STATIS_BT_LO_RX_1(x)			(((x) >> BIT_SHIFT_STATIS_BT_LO_RX_1) & BIT_MASK_STATIS_BT_LO_RX_1)
#define BIT_SET_STATIS_BT_LO_RX_1(x, v)		(BIT_CLEAR_STATIS_BT_LO_RX_1(x) | BIT_STATIS_BT_LO_RX_1(v))


#define BIT_SHIFT_STATIS_BT_LO_TX_1			0
#define BIT_MASK_STATIS_BT_LO_TX_1			0xffff
#define BIT_STATIS_BT_LO_TX_1(x)			(((x) & BIT_MASK_STATIS_BT_LO_TX_1) << BIT_SHIFT_STATIS_BT_LO_TX_1)
#define BITS_STATIS_BT_LO_TX_1				(BIT_MASK_STATIS_BT_LO_TX_1 << BIT_SHIFT_STATIS_BT_LO_TX_1)
#define BIT_CLEAR_STATIS_BT_LO_TX_1(x)			((x) & (~BITS_STATIS_BT_LO_TX_1))
#define BIT_GET_STATIS_BT_LO_TX_1(x)			(((x) >> BIT_SHIFT_STATIS_BT_LO_TX_1) & BIT_MASK_STATIS_BT_LO_TX_1)
#define BIT_SET_STATIS_BT_LO_TX_1(x, v)		(BIT_CLEAR_STATIS_BT_LO_TX_1(x) | BIT_STATIS_BT_LO_TX_1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_STATISTICS_CONTROL_REGISTER	(Offset 0x0778) */


#define BIT_SHIFT_R_BT_CMD_RPT				16
#define BIT_MASK_R_BT_CMD_RPT				0xffff
#define BIT_R_BT_CMD_RPT(x)				(((x) & BIT_MASK_R_BT_CMD_RPT) << BIT_SHIFT_R_BT_CMD_RPT)
#define BITS_R_BT_CMD_RPT				(BIT_MASK_R_BT_CMD_RPT << BIT_SHIFT_R_BT_CMD_RPT)
#define BIT_CLEAR_R_BT_CMD_RPT(x)			((x) & (~BITS_R_BT_CMD_RPT))
#define BIT_GET_R_BT_CMD_RPT(x)			(((x) >> BIT_SHIFT_R_BT_CMD_RPT) & BIT_MASK_R_BT_CMD_RPT)
#define BIT_SET_R_BT_CMD_RPT(x, v)			(BIT_CLEAR_R_BT_CMD_RPT(x) | BIT_R_BT_CMD_RPT(v))


#define BIT_SHIFT_R_RPT_FROM_BT			8
#define BIT_MASK_R_RPT_FROM_BT				0xff
#define BIT_R_RPT_FROM_BT(x)				(((x) & BIT_MASK_R_RPT_FROM_BT) << BIT_SHIFT_R_RPT_FROM_BT)
#define BITS_R_RPT_FROM_BT				(BIT_MASK_R_RPT_FROM_BT << BIT_SHIFT_R_RPT_FROM_BT)
#define BIT_CLEAR_R_RPT_FROM_BT(x)			((x) & (~BITS_R_RPT_FROM_BT))
#define BIT_GET_R_RPT_FROM_BT(x)			(((x) >> BIT_SHIFT_R_RPT_FROM_BT) & BIT_MASK_R_RPT_FROM_BT)
#define BIT_SET_R_RPT_FROM_BT(x, v)			(BIT_CLEAR_R_RPT_FROM_BT(x) | BIT_R_RPT_FROM_BT(v))


#define BIT_SHIFT_BT_HID_ISR_SET			6
#define BIT_MASK_BT_HID_ISR_SET			0x3
#define BIT_BT_HID_ISR_SET(x)				(((x) & BIT_MASK_BT_HID_ISR_SET) << BIT_SHIFT_BT_HID_ISR_SET)
#define BITS_BT_HID_ISR_SET				(BIT_MASK_BT_HID_ISR_SET << BIT_SHIFT_BT_HID_ISR_SET)
#define BIT_CLEAR_BT_HID_ISR_SET(x)			((x) & (~BITS_BT_HID_ISR_SET))
#define BIT_GET_BT_HID_ISR_SET(x)			(((x) >> BIT_SHIFT_BT_HID_ISR_SET) & BIT_MASK_BT_HID_ISR_SET)
#define BIT_SET_BT_HID_ISR_SET(x, v)			(BIT_CLEAR_BT_HID_ISR_SET(x) | BIT_BT_HID_ISR_SET(v))

#define BIT_TDMA_BT_START_NOTIFY			BIT(5)
#define BIT_ENABLE_TDMA_FW_MODE			BIT(4)
#define BIT_ENABLE_PTA_TDMA_MODE			BIT(3)
#define BIT_ENABLE_COEXIST_TAB_IN_TDMA			BIT(2)
#define BIT_GPIO2_GPIO3_EXANGE_OR_NO_BT_CCA		BIT(1)
#define BIT_RTK_BT_ENABLE				BIT(0)

/* 2 REG_BT_STATUS_REPORT_REGISTER		(Offset 0x077C) */


#define BIT_SHIFT_BT_PROFILE				24
#define BIT_MASK_BT_PROFILE				0xff
#define BIT_BT_PROFILE(x)				(((x) & BIT_MASK_BT_PROFILE) << BIT_SHIFT_BT_PROFILE)
#define BITS_BT_PROFILE				(BIT_MASK_BT_PROFILE << BIT_SHIFT_BT_PROFILE)
#define BIT_CLEAR_BT_PROFILE(x)			((x) & (~BITS_BT_PROFILE))
#define BIT_GET_BT_PROFILE(x)				(((x) >> BIT_SHIFT_BT_PROFILE) & BIT_MASK_BT_PROFILE)
#define BIT_SET_BT_PROFILE(x, v)			(BIT_CLEAR_BT_PROFILE(x) | BIT_BT_PROFILE(v))


#define BIT_SHIFT_BT_POWER				16
#define BIT_MASK_BT_POWER				0xff
#define BIT_BT_POWER(x)				(((x) & BIT_MASK_BT_POWER) << BIT_SHIFT_BT_POWER)
#define BITS_BT_POWER					(BIT_MASK_BT_POWER << BIT_SHIFT_BT_POWER)
#define BIT_CLEAR_BT_POWER(x)				((x) & (~BITS_BT_POWER))
#define BIT_GET_BT_POWER(x)				(((x) >> BIT_SHIFT_BT_POWER) & BIT_MASK_BT_POWER)
#define BIT_SET_BT_POWER(x, v)				(BIT_CLEAR_BT_POWER(x) | BIT_BT_POWER(v))


#define BIT_SHIFT_BT_PREDECT_STATUS			8
#define BIT_MASK_BT_PREDECT_STATUS			0xff
#define BIT_BT_PREDECT_STATUS(x)			(((x) & BIT_MASK_BT_PREDECT_STATUS) << BIT_SHIFT_BT_PREDECT_STATUS)
#define BITS_BT_PREDECT_STATUS				(BIT_MASK_BT_PREDECT_STATUS << BIT_SHIFT_BT_PREDECT_STATUS)
#define BIT_CLEAR_BT_PREDECT_STATUS(x)			((x) & (~BITS_BT_PREDECT_STATUS))
#define BIT_GET_BT_PREDECT_STATUS(x)			(((x) >> BIT_SHIFT_BT_PREDECT_STATUS) & BIT_MASK_BT_PREDECT_STATUS)
#define BIT_SET_BT_PREDECT_STATUS(x, v)		(BIT_CLEAR_BT_PREDECT_STATUS(x) | BIT_BT_PREDECT_STATUS(v))


#define BIT_SHIFT_BT_CMD_INFO				0
#define BIT_MASK_BT_CMD_INFO				0xff
#define BIT_BT_CMD_INFO(x)				(((x) & BIT_MASK_BT_CMD_INFO) << BIT_SHIFT_BT_CMD_INFO)
#define BITS_BT_CMD_INFO				(BIT_MASK_BT_CMD_INFO << BIT_SHIFT_BT_CMD_INFO)
#define BIT_CLEAR_BT_CMD_INFO(x)			((x) & (~BITS_BT_CMD_INFO))
#define BIT_GET_BT_CMD_INFO(x)				(((x) >> BIT_SHIFT_BT_CMD_INFO) & BIT_MASK_BT_CMD_INFO)
#define BIT_SET_BT_CMD_INFO(x, v)			(BIT_CLEAR_BT_CMD_INFO(x) | BIT_BT_CMD_INFO(v))


/* 2 REG_BT_INTERRUPT_CONTROL_REGISTER	(Offset 0x0780) */

#define BIT_EN_MAC_NULL_PKT_NOTIFY			BIT(31)
#define BIT_EN_WLAN_RPT_AND_BT_QUERY			BIT(30)
#define BIT_EN_BT_STSTUS_RPT				BIT(29)
#define BIT_EN_BT_POWER				BIT(28)
#define BIT_EN_BT_CHANNEL				BIT(27)
#define BIT_EN_BT_SLOT_CHANGE				BIT(26)
#define BIT_EN_BT_PROFILE_OR_HID			BIT(25)
#define BIT_WLAN_RPT_NOTIFY				BIT(24)

#define BIT_SHIFT_WLAN_RPT_DATA			16
#define BIT_MASK_WLAN_RPT_DATA				0xff
#define BIT_WLAN_RPT_DATA(x)				(((x) & BIT_MASK_WLAN_RPT_DATA) << BIT_SHIFT_WLAN_RPT_DATA)
#define BITS_WLAN_RPT_DATA				(BIT_MASK_WLAN_RPT_DATA << BIT_SHIFT_WLAN_RPT_DATA)
#define BIT_CLEAR_WLAN_RPT_DATA(x)			((x) & (~BITS_WLAN_RPT_DATA))
#define BIT_GET_WLAN_RPT_DATA(x)			(((x) >> BIT_SHIFT_WLAN_RPT_DATA) & BIT_MASK_WLAN_RPT_DATA)
#define BIT_SET_WLAN_RPT_DATA(x, v)			(BIT_CLEAR_WLAN_RPT_DATA(x) | BIT_WLAN_RPT_DATA(v))


#define BIT_SHIFT_CMD_ID				8
#define BIT_MASK_CMD_ID				0xff
#define BIT_CMD_ID(x)					(((x) & BIT_MASK_CMD_ID) << BIT_SHIFT_CMD_ID)
#define BITS_CMD_ID					(BIT_MASK_CMD_ID << BIT_SHIFT_CMD_ID)
#define BIT_CLEAR_CMD_ID(x)				((x) & (~BITS_CMD_ID))
#define BIT_GET_CMD_ID(x)				(((x) >> BIT_SHIFT_CMD_ID) & BIT_MASK_CMD_ID)
#define BIT_SET_CMD_ID(x, v)				(BIT_CLEAR_CMD_ID(x) | BIT_CMD_ID(v))


#define BIT_SHIFT_BT_DATA				0
#define BIT_MASK_BT_DATA				0xff
#define BIT_BT_DATA(x)					(((x) & BIT_MASK_BT_DATA) << BIT_SHIFT_BT_DATA)
#define BITS_BT_DATA					(BIT_MASK_BT_DATA << BIT_SHIFT_BT_DATA)
#define BIT_CLEAR_BT_DATA(x)				((x) & (~BITS_BT_DATA))
#define BIT_GET_BT_DATA(x)				(((x) >> BIT_SHIFT_BT_DATA) & BIT_MASK_BT_DATA)
#define BIT_SET_BT_DATA(x, v)				(BIT_CLEAR_BT_DATA(x) | BIT_BT_DATA(v))


/* 2 REG_WLAN_REPORT_TIME_OUT_CONTROL_REGISTER (Offset 0x0784) */


#define BIT_SHIFT_WLAN_RPT_TO				0
#define BIT_MASK_WLAN_RPT_TO				0xff
#define BIT_WLAN_RPT_TO(x)				(((x) & BIT_MASK_WLAN_RPT_TO) << BIT_SHIFT_WLAN_RPT_TO)
#define BITS_WLAN_RPT_TO				(BIT_MASK_WLAN_RPT_TO << BIT_SHIFT_WLAN_RPT_TO)
#define BIT_CLEAR_WLAN_RPT_TO(x)			((x) & (~BITS_WLAN_RPT_TO))
#define BIT_GET_WLAN_RPT_TO(x)				(((x) >> BIT_SHIFT_WLAN_RPT_TO) & BIT_MASK_WLAN_RPT_TO)
#define BIT_SET_WLAN_RPT_TO(x, v)			(BIT_CLEAR_WLAN_RPT_TO(x) | BIT_WLAN_RPT_TO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */


#define BIT_SHIFT_ISOLATION_CHK			1
#define BIT_MASK_ISOLATION_CHK				0x7fffffffffffffffffffL
#define BIT_ISOLATION_CHK(x)				(((x) & BIT_MASK_ISOLATION_CHK) << BIT_SHIFT_ISOLATION_CHK)
#define BITS_ISOLATION_CHK				(BIT_MASK_ISOLATION_CHK << BIT_SHIFT_ISOLATION_CHK)
#define BIT_CLEAR_ISOLATION_CHK(x)			((x) & (~BITS_ISOLATION_CHK))
#define BIT_GET_ISOLATION_CHK(x)			(((x) >> BIT_SHIFT_ISOLATION_CHK) & BIT_MASK_ISOLATION_CHK)
#define BIT_SET_ISOLATION_CHK(x, v)			(BIT_CLEAR_ISOLATION_CHK(x) | BIT_ISOLATION_CHK(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */


#define BIT_SHIFT_ISOLATION_CHK_0			1
#define BIT_MASK_ISOLATION_CHK_0			0x7fffff
#define BIT_ISOLATION_CHK_0(x)				(((x) & BIT_MASK_ISOLATION_CHK_0) << BIT_SHIFT_ISOLATION_CHK_0)
#define BITS_ISOLATION_CHK_0				(BIT_MASK_ISOLATION_CHK_0 << BIT_SHIFT_ISOLATION_CHK_0)
#define BIT_CLEAR_ISOLATION_CHK_0(x)			((x) & (~BITS_ISOLATION_CHK_0))
#define BIT_GET_ISOLATION_CHK_0(x)			(((x) >> BIT_SHIFT_ISOLATION_CHK_0) & BIT_MASK_ISOLATION_CHK_0)
#define BIT_SET_ISOLATION_CHK_0(x, v)			(BIT_CLEAR_ISOLATION_CHK_0(x) | BIT_ISOLATION_CHK_0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER (Offset 0x0785) */

#define BIT_ISOLATION_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_1 (Offset 0x0788) */


#define BIT_SHIFT_ISOLATION_CHK_1			0
#define BIT_MASK_ISOLATION_CHK_1			0xffffffffL
#define BIT_ISOLATION_CHK_1(x)				(((x) & BIT_MASK_ISOLATION_CHK_1) << BIT_SHIFT_ISOLATION_CHK_1)
#define BITS_ISOLATION_CHK_1				(BIT_MASK_ISOLATION_CHK_1 << BIT_SHIFT_ISOLATION_CHK_1)
#define BIT_CLEAR_ISOLATION_CHK_1(x)			((x) & (~BITS_ISOLATION_CHK_1))
#define BIT_GET_ISOLATION_CHK_1(x)			(((x) >> BIT_SHIFT_ISOLATION_CHK_1) & BIT_MASK_ISOLATION_CHK_1)
#define BIT_SET_ISOLATION_CHK_1(x, v)			(BIT_CLEAR_ISOLATION_CHK_1(x) | BIT_ISOLATION_CHK_1(v))


/* 2 REG_BT_ISOLATION_TABLE_REGISTER_REGISTER_2 (Offset 0x078C) */

#define BIT_APPEND_MACID_IN_RESP_EN_1			BIT(18)
#define BIT_ADDR2_MATCH_EN_1				BIT(17)
#define BIT_ANTTRN_EN_1				BIT(16)

#define BIT_SHIFT_ISOLATION_CHK_2			0
#define BIT_MASK_ISOLATION_CHK_2			0xffffff
#define BIT_ISOLATION_CHK_2(x)				(((x) & BIT_MASK_ISOLATION_CHK_2) << BIT_SHIFT_ISOLATION_CHK_2)
#define BITS_ISOLATION_CHK_2				(BIT_MASK_ISOLATION_CHK_2 << BIT_SHIFT_ISOLATION_CHK_2)
#define BIT_CLEAR_ISOLATION_CHK_2(x)			((x) & (~BITS_ISOLATION_CHK_2))
#define BIT_GET_ISOLATION_CHK_2(x)			(((x) >> BIT_SHIFT_ISOLATION_CHK_2) & BIT_MASK_ISOLATION_CHK_2)
#define BIT_SET_ISOLATION_CHK_2(x, v)			(BIT_CLEAR_ISOLATION_CHK_2(x) | BIT_ISOLATION_CHK_2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BT_INTERRUPT_STATUS_REGISTER	(Offset 0x078F) */

#define BIT_BT_HID_ISR					BIT(7)
#define BIT_BT_QUERY_ISR				BIT(6)
#define BIT_MAC_NULL_PKT_NOTIFY_ISR			BIT(5)
#define BIT_WLAN_RPT_ISR				BIT(4)
#define BIT_BT_POWER_ISR				BIT(3)
#define BIT_BT_CHANNEL_ISR				BIT(2)
#define BIT_BT_SLOT_CHANGE_ISR				BIT(1)
#define BIT_BT_PROFILE_ISR				BIT(0)

/* 2 REG_BT_TDMA_TIME_REGISTER		(Offset 0x0790) */


#define BIT_SHIFT_BT_TIME				6
#define BIT_MASK_BT_TIME				0x3ffffff
#define BIT_BT_TIME(x)					(((x) & BIT_MASK_BT_TIME) << BIT_SHIFT_BT_TIME)
#define BITS_BT_TIME					(BIT_MASK_BT_TIME << BIT_SHIFT_BT_TIME)
#define BIT_CLEAR_BT_TIME(x)				((x) & (~BITS_BT_TIME))
#define BIT_GET_BT_TIME(x)				(((x) >> BIT_SHIFT_BT_TIME) & BIT_MASK_BT_TIME)
#define BIT_SET_BT_TIME(x, v)				(BIT_CLEAR_BT_TIME(x) | BIT_BT_TIME(v))


#define BIT_SHIFT_BT_RPT_SAMPLE_RATE			0
#define BIT_MASK_BT_RPT_SAMPLE_RATE			0x3f
#define BIT_BT_RPT_SAMPLE_RATE(x)			(((x) & BIT_MASK_BT_RPT_SAMPLE_RATE) << BIT_SHIFT_BT_RPT_SAMPLE_RATE)
#define BITS_BT_RPT_SAMPLE_RATE			(BIT_MASK_BT_RPT_SAMPLE_RATE << BIT_SHIFT_BT_RPT_SAMPLE_RATE)
#define BIT_CLEAR_BT_RPT_SAMPLE_RATE(x)		((x) & (~BITS_BT_RPT_SAMPLE_RATE))
#define BIT_GET_BT_RPT_SAMPLE_RATE(x)			(((x) >> BIT_SHIFT_BT_RPT_SAMPLE_RATE) & BIT_MASK_BT_RPT_SAMPLE_RATE)
#define BIT_SET_BT_RPT_SAMPLE_RATE(x, v)		(BIT_CLEAR_BT_RPT_SAMPLE_RATE(x) | BIT_BT_RPT_SAMPLE_RATE(v))


/* 2 REG_BT_ACT_REGISTER			(Offset 0x0794) */


#define BIT_SHIFT_BT_EISR_EN				16
#define BIT_MASK_BT_EISR_EN				0xff
#define BIT_BT_EISR_EN(x)				(((x) & BIT_MASK_BT_EISR_EN) << BIT_SHIFT_BT_EISR_EN)
#define BITS_BT_EISR_EN				(BIT_MASK_BT_EISR_EN << BIT_SHIFT_BT_EISR_EN)
#define BIT_CLEAR_BT_EISR_EN(x)			((x) & (~BITS_BT_EISR_EN))
#define BIT_GET_BT_EISR_EN(x)				(((x) >> BIT_SHIFT_BT_EISR_EN) & BIT_MASK_BT_EISR_EN)
#define BIT_SET_BT_EISR_EN(x, v)			(BIT_CLEAR_BT_EISR_EN(x) | BIT_BT_EISR_EN(v))

#define BIT_BT_ACT_FALLING_ISR				BIT(10)
#define BIT_BT_ACT_RISING_ISR				BIT(9)
#define BIT_TDMA_TO_ISR				BIT(8)

#define BIT_SHIFT_BT_CH				0
#define BIT_MASK_BT_CH					0xff
#define BIT_BT_CH(x)					(((x) & BIT_MASK_BT_CH) << BIT_SHIFT_BT_CH)
#define BITS_BT_CH					(BIT_MASK_BT_CH << BIT_SHIFT_BT_CH)
#define BIT_CLEAR_BT_CH(x)				((x) & (~BITS_BT_CH))
#define BIT_GET_BT_CH(x)				(((x) >> BIT_SHIFT_BT_CH) & BIT_MASK_BT_CH)
#define BIT_SET_BT_CH(x, v)				(BIT_CLEAR_BT_CH(x) | BIT_BT_CH(v))


/* 2 REG_OBFF_CTRL_BASIC			(Offset 0x0798) */

#define BIT_OBFF_EN_V1					BIT(31)

#define BIT_SHIFT_OBFF_STATE_V1			28
#define BIT_MASK_OBFF_STATE_V1				0x3
#define BIT_OBFF_STATE_V1(x)				(((x) & BIT_MASK_OBFF_STATE_V1) << BIT_SHIFT_OBFF_STATE_V1)
#define BITS_OBFF_STATE_V1				(BIT_MASK_OBFF_STATE_V1 << BIT_SHIFT_OBFF_STATE_V1)
#define BIT_CLEAR_OBFF_STATE_V1(x)			((x) & (~BITS_OBFF_STATE_V1))
#define BIT_GET_OBFF_STATE_V1(x)			(((x) >> BIT_SHIFT_OBFF_STATE_V1) & BIT_MASK_OBFF_STATE_V1)
#define BIT_SET_OBFF_STATE_V1(x, v)			(BIT_CLEAR_OBFF_STATE_V1(x) | BIT_OBFF_STATE_V1(v))

#define BIT_OBFF_ACT_RXDMA_EN				BIT(27)
#define BIT_OBFF_BLOCK_INT_EN				BIT(26)
#define BIT_OBFF_AUTOACT_EN				BIT(25)
#define BIT_OBFF_AUTOIDLE_EN				BIT(24)

#define BIT_SHIFT_WAKE_MAX_PLS				20
#define BIT_MASK_WAKE_MAX_PLS				0x7
#define BIT_WAKE_MAX_PLS(x)				(((x) & BIT_MASK_WAKE_MAX_PLS) << BIT_SHIFT_WAKE_MAX_PLS)
#define BITS_WAKE_MAX_PLS				(BIT_MASK_WAKE_MAX_PLS << BIT_SHIFT_WAKE_MAX_PLS)
#define BIT_CLEAR_WAKE_MAX_PLS(x)			((x) & (~BITS_WAKE_MAX_PLS))
#define BIT_GET_WAKE_MAX_PLS(x)			(((x) >> BIT_SHIFT_WAKE_MAX_PLS) & BIT_MASK_WAKE_MAX_PLS)
#define BIT_SET_WAKE_MAX_PLS(x, v)			(BIT_CLEAR_WAKE_MAX_PLS(x) | BIT_WAKE_MAX_PLS(v))


#define BIT_SHIFT_WAKE_MIN_PLS				16
#define BIT_MASK_WAKE_MIN_PLS				0x7
#define BIT_WAKE_MIN_PLS(x)				(((x) & BIT_MASK_WAKE_MIN_PLS) << BIT_SHIFT_WAKE_MIN_PLS)
#define BITS_WAKE_MIN_PLS				(BIT_MASK_WAKE_MIN_PLS << BIT_SHIFT_WAKE_MIN_PLS)
#define BIT_CLEAR_WAKE_MIN_PLS(x)			((x) & (~BITS_WAKE_MIN_PLS))
#define BIT_GET_WAKE_MIN_PLS(x)			(((x) >> BIT_SHIFT_WAKE_MIN_PLS) & BIT_MASK_WAKE_MIN_PLS)
#define BIT_SET_WAKE_MIN_PLS(x, v)			(BIT_CLEAR_WAKE_MIN_PLS(x) | BIT_WAKE_MIN_PLS(v))


#define BIT_SHIFT_WAKE_MAX_F2F				12
#define BIT_MASK_WAKE_MAX_F2F				0x7
#define BIT_WAKE_MAX_F2F(x)				(((x) & BIT_MASK_WAKE_MAX_F2F) << BIT_SHIFT_WAKE_MAX_F2F)
#define BITS_WAKE_MAX_F2F				(BIT_MASK_WAKE_MAX_F2F << BIT_SHIFT_WAKE_MAX_F2F)
#define BIT_CLEAR_WAKE_MAX_F2F(x)			((x) & (~BITS_WAKE_MAX_F2F))
#define BIT_GET_WAKE_MAX_F2F(x)			(((x) >> BIT_SHIFT_WAKE_MAX_F2F) & BIT_MASK_WAKE_MAX_F2F)
#define BIT_SET_WAKE_MAX_F2F(x, v)			(BIT_CLEAR_WAKE_MAX_F2F(x) | BIT_WAKE_MAX_F2F(v))


#define BIT_SHIFT_WAKE_MIN_F2F				8
#define BIT_MASK_WAKE_MIN_F2F				0x7
#define BIT_WAKE_MIN_F2F(x)				(((x) & BIT_MASK_WAKE_MIN_F2F) << BIT_SHIFT_WAKE_MIN_F2F)
#define BITS_WAKE_MIN_F2F				(BIT_MASK_WAKE_MIN_F2F << BIT_SHIFT_WAKE_MIN_F2F)
#define BIT_CLEAR_WAKE_MIN_F2F(x)			((x) & (~BITS_WAKE_MIN_F2F))
#define BIT_GET_WAKE_MIN_F2F(x)			(((x) >> BIT_SHIFT_WAKE_MIN_F2F) & BIT_MASK_WAKE_MIN_F2F)
#define BIT_SET_WAKE_MIN_F2F(x, v)			(BIT_CLEAR_WAKE_MIN_F2F(x) | BIT_WAKE_MIN_F2F(v))

#define BIT_APP_CPU_ACT_V1				BIT(3)
#define BIT_APP_OBFF_V1				BIT(2)
#define BIT_APP_IDLE_V1				BIT(1)
#define BIT_APP_INIT_V1				BIT(0)

/* 2 REG_OBFF_CTRL2_TIMER			(Offset 0x079C) */


#define BIT_SHIFT_RX_HIGH_TIMER_IDX			24
#define BIT_MASK_RX_HIGH_TIMER_IDX			0x7
#define BIT_RX_HIGH_TIMER_IDX(x)			(((x) & BIT_MASK_RX_HIGH_TIMER_IDX) << BIT_SHIFT_RX_HIGH_TIMER_IDX)
#define BITS_RX_HIGH_TIMER_IDX				(BIT_MASK_RX_HIGH_TIMER_IDX << BIT_SHIFT_RX_HIGH_TIMER_IDX)
#define BIT_CLEAR_RX_HIGH_TIMER_IDX(x)			((x) & (~BITS_RX_HIGH_TIMER_IDX))
#define BIT_GET_RX_HIGH_TIMER_IDX(x)			(((x) >> BIT_SHIFT_RX_HIGH_TIMER_IDX) & BIT_MASK_RX_HIGH_TIMER_IDX)
#define BIT_SET_RX_HIGH_TIMER_IDX(x, v)		(BIT_CLEAR_RX_HIGH_TIMER_IDX(x) | BIT_RX_HIGH_TIMER_IDX(v))


#define BIT_SHIFT_RX_MED_TIMER_IDX			16
#define BIT_MASK_RX_MED_TIMER_IDX			0x7
#define BIT_RX_MED_TIMER_IDX(x)			(((x) & BIT_MASK_RX_MED_TIMER_IDX) << BIT_SHIFT_RX_MED_TIMER_IDX)
#define BITS_RX_MED_TIMER_IDX				(BIT_MASK_RX_MED_TIMER_IDX << BIT_SHIFT_RX_MED_TIMER_IDX)
#define BIT_CLEAR_RX_MED_TIMER_IDX(x)			((x) & (~BITS_RX_MED_TIMER_IDX))
#define BIT_GET_RX_MED_TIMER_IDX(x)			(((x) >> BIT_SHIFT_RX_MED_TIMER_IDX) & BIT_MASK_RX_MED_TIMER_IDX)
#define BIT_SET_RX_MED_TIMER_IDX(x, v)			(BIT_CLEAR_RX_MED_TIMER_IDX(x) | BIT_RX_MED_TIMER_IDX(v))


#define BIT_SHIFT_RX_LOW_TIMER_IDX			8
#define BIT_MASK_RX_LOW_TIMER_IDX			0x7
#define BIT_RX_LOW_TIMER_IDX(x)			(((x) & BIT_MASK_RX_LOW_TIMER_IDX) << BIT_SHIFT_RX_LOW_TIMER_IDX)
#define BITS_RX_LOW_TIMER_IDX				(BIT_MASK_RX_LOW_TIMER_IDX << BIT_SHIFT_RX_LOW_TIMER_IDX)
#define BIT_CLEAR_RX_LOW_TIMER_IDX(x)			((x) & (~BITS_RX_LOW_TIMER_IDX))
#define BIT_GET_RX_LOW_TIMER_IDX(x)			(((x) >> BIT_SHIFT_RX_LOW_TIMER_IDX) & BIT_MASK_RX_LOW_TIMER_IDX)
#define BIT_SET_RX_LOW_TIMER_IDX(x, v)			(BIT_CLEAR_RX_LOW_TIMER_IDX(x) | BIT_RX_LOW_TIMER_IDX(v))


#define BIT_SHIFT_OBFF_INT_TIMER_IDX			0
#define BIT_MASK_OBFF_INT_TIMER_IDX			0x7
#define BIT_OBFF_INT_TIMER_IDX(x)			(((x) & BIT_MASK_OBFF_INT_TIMER_IDX) << BIT_SHIFT_OBFF_INT_TIMER_IDX)
#define BITS_OBFF_INT_TIMER_IDX			(BIT_MASK_OBFF_INT_TIMER_IDX << BIT_SHIFT_OBFF_INT_TIMER_IDX)
#define BIT_CLEAR_OBFF_INT_TIMER_IDX(x)		((x) & (~BITS_OBFF_INT_TIMER_IDX))
#define BIT_GET_OBFF_INT_TIMER_IDX(x)			(((x) >> BIT_SHIFT_OBFF_INT_TIMER_IDX) & BIT_MASK_OBFF_INT_TIMER_IDX)
#define BIT_SET_OBFF_INT_TIMER_IDX(x, v)		(BIT_CLEAR_OBFF_INT_TIMER_IDX(x) | BIT_OBFF_INT_TIMER_IDX(v))


/* 2 REG_LTR_CTRL_BASIC			(Offset 0x07A0) */

#define BIT_LTR_EN_V1					BIT(31)
#define BIT_LTR_HW_EN_V1				BIT(30)
#define BIT_LRT_ACT_CTS_EN				BIT(29)
#define BIT_LTR_ACT_RXPKT_EN				BIT(28)
#define BIT_LTR_ACT_RXDMA_EN				BIT(27)
#define BIT_LTR_IDLE_NO_SNOOP				BIT(26)
#define BIT_SPDUP_MGTPKT				BIT(25)
#define BIT_RX_AGG_EN					BIT(24)
#define BIT_APP_LTR_ACT				BIT(23)
#define BIT_APP_LTR_IDLE				BIT(22)

#define BIT_SHIFT_HIGH_RATE_TRIG_SEL			20
#define BIT_MASK_HIGH_RATE_TRIG_SEL			0x3
#define BIT_HIGH_RATE_TRIG_SEL(x)			(((x) & BIT_MASK_HIGH_RATE_TRIG_SEL) << BIT_SHIFT_HIGH_RATE_TRIG_SEL)
#define BITS_HIGH_RATE_TRIG_SEL			(BIT_MASK_HIGH_RATE_TRIG_SEL << BIT_SHIFT_HIGH_RATE_TRIG_SEL)
#define BIT_CLEAR_HIGH_RATE_TRIG_SEL(x)		((x) & (~BITS_HIGH_RATE_TRIG_SEL))
#define BIT_GET_HIGH_RATE_TRIG_SEL(x)			(((x) >> BIT_SHIFT_HIGH_RATE_TRIG_SEL) & BIT_MASK_HIGH_RATE_TRIG_SEL)
#define BIT_SET_HIGH_RATE_TRIG_SEL(x, v)		(BIT_CLEAR_HIGH_RATE_TRIG_SEL(x) | BIT_HIGH_RATE_TRIG_SEL(v))


#define BIT_SHIFT_MED_RATE_TRIG_SEL			18
#define BIT_MASK_MED_RATE_TRIG_SEL			0x3
#define BIT_MED_RATE_TRIG_SEL(x)			(((x) & BIT_MASK_MED_RATE_TRIG_SEL) << BIT_SHIFT_MED_RATE_TRIG_SEL)
#define BITS_MED_RATE_TRIG_SEL				(BIT_MASK_MED_RATE_TRIG_SEL << BIT_SHIFT_MED_RATE_TRIG_SEL)
#define BIT_CLEAR_MED_RATE_TRIG_SEL(x)			((x) & (~BITS_MED_RATE_TRIG_SEL))
#define BIT_GET_MED_RATE_TRIG_SEL(x)			(((x) >> BIT_SHIFT_MED_RATE_TRIG_SEL) & BIT_MASK_MED_RATE_TRIG_SEL)
#define BIT_SET_MED_RATE_TRIG_SEL(x, v)		(BIT_CLEAR_MED_RATE_TRIG_SEL(x) | BIT_MED_RATE_TRIG_SEL(v))


#define BIT_SHIFT_LOW_RATE_TRIG_SEL			16
#define BIT_MASK_LOW_RATE_TRIG_SEL			0x3
#define BIT_LOW_RATE_TRIG_SEL(x)			(((x) & BIT_MASK_LOW_RATE_TRIG_SEL) << BIT_SHIFT_LOW_RATE_TRIG_SEL)
#define BITS_LOW_RATE_TRIG_SEL				(BIT_MASK_LOW_RATE_TRIG_SEL << BIT_SHIFT_LOW_RATE_TRIG_SEL)
#define BIT_CLEAR_LOW_RATE_TRIG_SEL(x)			((x) & (~BITS_LOW_RATE_TRIG_SEL))
#define BIT_GET_LOW_RATE_TRIG_SEL(x)			(((x) >> BIT_SHIFT_LOW_RATE_TRIG_SEL) & BIT_MASK_LOW_RATE_TRIG_SEL)
#define BIT_SET_LOW_RATE_TRIG_SEL(x, v)		(BIT_CLEAR_LOW_RATE_TRIG_SEL(x) | BIT_LOW_RATE_TRIG_SEL(v))


#define BIT_SHIFT_HIGH_RATE_BD_IDX			8
#define BIT_MASK_HIGH_RATE_BD_IDX			0x7f
#define BIT_HIGH_RATE_BD_IDX(x)			(((x) & BIT_MASK_HIGH_RATE_BD_IDX) << BIT_SHIFT_HIGH_RATE_BD_IDX)
#define BITS_HIGH_RATE_BD_IDX				(BIT_MASK_HIGH_RATE_BD_IDX << BIT_SHIFT_HIGH_RATE_BD_IDX)
#define BIT_CLEAR_HIGH_RATE_BD_IDX(x)			((x) & (~BITS_HIGH_RATE_BD_IDX))
#define BIT_GET_HIGH_RATE_BD_IDX(x)			(((x) >> BIT_SHIFT_HIGH_RATE_BD_IDX) & BIT_MASK_HIGH_RATE_BD_IDX)
#define BIT_SET_HIGH_RATE_BD_IDX(x, v)			(BIT_CLEAR_HIGH_RATE_BD_IDX(x) | BIT_HIGH_RATE_BD_IDX(v))


#define BIT_SHIFT_LOW_RATE_BD_IDX			0
#define BIT_MASK_LOW_RATE_BD_IDX			0x7f
#define BIT_LOW_RATE_BD_IDX(x)				(((x) & BIT_MASK_LOW_RATE_BD_IDX) << BIT_SHIFT_LOW_RATE_BD_IDX)
#define BITS_LOW_RATE_BD_IDX				(BIT_MASK_LOW_RATE_BD_IDX << BIT_SHIFT_LOW_RATE_BD_IDX)
#define BIT_CLEAR_LOW_RATE_BD_IDX(x)			((x) & (~BITS_LOW_RATE_BD_IDX))
#define BIT_GET_LOW_RATE_BD_IDX(x)			(((x) >> BIT_SHIFT_LOW_RATE_BD_IDX) & BIT_MASK_LOW_RATE_BD_IDX)
#define BIT_SET_LOW_RATE_BD_IDX(x, v)			(BIT_CLEAR_LOW_RATE_BD_IDX(x) | BIT_LOW_RATE_BD_IDX(v))


/* 2 REG_LTR_CTRL2_TIMER_THRESHOLD		(Offset 0x07A4) */


#define BIT_SHIFT_RX_EMPTY_TIMER_IDX			24
#define BIT_MASK_RX_EMPTY_TIMER_IDX			0x7
#define BIT_RX_EMPTY_TIMER_IDX(x)			(((x) & BIT_MASK_RX_EMPTY_TIMER_IDX) << BIT_SHIFT_RX_EMPTY_TIMER_IDX)
#define BITS_RX_EMPTY_TIMER_IDX			(BIT_MASK_RX_EMPTY_TIMER_IDX << BIT_SHIFT_RX_EMPTY_TIMER_IDX)
#define BIT_CLEAR_RX_EMPTY_TIMER_IDX(x)		((x) & (~BITS_RX_EMPTY_TIMER_IDX))
#define BIT_GET_RX_EMPTY_TIMER_IDX(x)			(((x) >> BIT_SHIFT_RX_EMPTY_TIMER_IDX) & BIT_MASK_RX_EMPTY_TIMER_IDX)
#define BIT_SET_RX_EMPTY_TIMER_IDX(x, v)		(BIT_CLEAR_RX_EMPTY_TIMER_IDX(x) | BIT_RX_EMPTY_TIMER_IDX(v))


#define BIT_SHIFT_RX_AFULL_TH_IDX			20
#define BIT_MASK_RX_AFULL_TH_IDX			0x7
#define BIT_RX_AFULL_TH_IDX(x)				(((x) & BIT_MASK_RX_AFULL_TH_IDX) << BIT_SHIFT_RX_AFULL_TH_IDX)
#define BITS_RX_AFULL_TH_IDX				(BIT_MASK_RX_AFULL_TH_IDX << BIT_SHIFT_RX_AFULL_TH_IDX)
#define BIT_CLEAR_RX_AFULL_TH_IDX(x)			((x) & (~BITS_RX_AFULL_TH_IDX))
#define BIT_GET_RX_AFULL_TH_IDX(x)			(((x) >> BIT_SHIFT_RX_AFULL_TH_IDX) & BIT_MASK_RX_AFULL_TH_IDX)
#define BIT_SET_RX_AFULL_TH_IDX(x, v)			(BIT_CLEAR_RX_AFULL_TH_IDX(x) | BIT_RX_AFULL_TH_IDX(v))


#define BIT_SHIFT_RX_HIGH_TH_IDX			16
#define BIT_MASK_RX_HIGH_TH_IDX			0x7
#define BIT_RX_HIGH_TH_IDX(x)				(((x) & BIT_MASK_RX_HIGH_TH_IDX) << BIT_SHIFT_RX_HIGH_TH_IDX)
#define BITS_RX_HIGH_TH_IDX				(BIT_MASK_RX_HIGH_TH_IDX << BIT_SHIFT_RX_HIGH_TH_IDX)
#define BIT_CLEAR_RX_HIGH_TH_IDX(x)			((x) & (~BITS_RX_HIGH_TH_IDX))
#define BIT_GET_RX_HIGH_TH_IDX(x)			(((x) >> BIT_SHIFT_RX_HIGH_TH_IDX) & BIT_MASK_RX_HIGH_TH_IDX)
#define BIT_SET_RX_HIGH_TH_IDX(x, v)			(BIT_CLEAR_RX_HIGH_TH_IDX(x) | BIT_RX_HIGH_TH_IDX(v))


#define BIT_SHIFT_RX_MED_TH_IDX			12
#define BIT_MASK_RX_MED_TH_IDX				0x7
#define BIT_RX_MED_TH_IDX(x)				(((x) & BIT_MASK_RX_MED_TH_IDX) << BIT_SHIFT_RX_MED_TH_IDX)
#define BITS_RX_MED_TH_IDX				(BIT_MASK_RX_MED_TH_IDX << BIT_SHIFT_RX_MED_TH_IDX)
#define BIT_CLEAR_RX_MED_TH_IDX(x)			((x) & (~BITS_RX_MED_TH_IDX))
#define BIT_GET_RX_MED_TH_IDX(x)			(((x) >> BIT_SHIFT_RX_MED_TH_IDX) & BIT_MASK_RX_MED_TH_IDX)
#define BIT_SET_RX_MED_TH_IDX(x, v)			(BIT_CLEAR_RX_MED_TH_IDX(x) | BIT_RX_MED_TH_IDX(v))


#define BIT_SHIFT_RX_LOW_TH_IDX			8
#define BIT_MASK_RX_LOW_TH_IDX				0x7
#define BIT_RX_LOW_TH_IDX(x)				(((x) & BIT_MASK_RX_LOW_TH_IDX) << BIT_SHIFT_RX_LOW_TH_IDX)
#define BITS_RX_LOW_TH_IDX				(BIT_MASK_RX_LOW_TH_IDX << BIT_SHIFT_RX_LOW_TH_IDX)
#define BIT_CLEAR_RX_LOW_TH_IDX(x)			((x) & (~BITS_RX_LOW_TH_IDX))
#define BIT_GET_RX_LOW_TH_IDX(x)			(((x) >> BIT_SHIFT_RX_LOW_TH_IDX) & BIT_MASK_RX_LOW_TH_IDX)
#define BIT_SET_RX_LOW_TH_IDX(x, v)			(BIT_CLEAR_RX_LOW_TH_IDX(x) | BIT_RX_LOW_TH_IDX(v))


#define BIT_SHIFT_LTR_SPACE_IDX			4
#define BIT_MASK_LTR_SPACE_IDX				0x3
#define BIT_LTR_SPACE_IDX(x)				(((x) & BIT_MASK_LTR_SPACE_IDX) << BIT_SHIFT_LTR_SPACE_IDX)
#define BITS_LTR_SPACE_IDX				(BIT_MASK_LTR_SPACE_IDX << BIT_SHIFT_LTR_SPACE_IDX)
#define BIT_CLEAR_LTR_SPACE_IDX(x)			((x) & (~BITS_LTR_SPACE_IDX))
#define BIT_GET_LTR_SPACE_IDX(x)			(((x) >> BIT_SHIFT_LTR_SPACE_IDX) & BIT_MASK_LTR_SPACE_IDX)
#define BIT_SET_LTR_SPACE_IDX(x, v)			(BIT_CLEAR_LTR_SPACE_IDX(x) | BIT_LTR_SPACE_IDX(v))


#define BIT_SHIFT_LTR_IDLE_TIMER_IDX			0
#define BIT_MASK_LTR_IDLE_TIMER_IDX			0x7
#define BIT_LTR_IDLE_TIMER_IDX(x)			(((x) & BIT_MASK_LTR_IDLE_TIMER_IDX) << BIT_SHIFT_LTR_IDLE_TIMER_IDX)
#define BITS_LTR_IDLE_TIMER_IDX			(BIT_MASK_LTR_IDLE_TIMER_IDX << BIT_SHIFT_LTR_IDLE_TIMER_IDX)
#define BIT_CLEAR_LTR_IDLE_TIMER_IDX(x)		((x) & (~BITS_LTR_IDLE_TIMER_IDX))
#define BIT_GET_LTR_IDLE_TIMER_IDX(x)			(((x) >> BIT_SHIFT_LTR_IDLE_TIMER_IDX) & BIT_MASK_LTR_IDLE_TIMER_IDX)
#define BIT_SET_LTR_IDLE_TIMER_IDX(x, v)		(BIT_CLEAR_LTR_IDLE_TIMER_IDX(x) | BIT_LTR_IDLE_TIMER_IDX(v))


/* 2 REG_LTR_IDLE_LATENCY_V1			(Offset 0x07A8) */


#define BIT_SHIFT_LTR_IDLE_L				0
#define BIT_MASK_LTR_IDLE_L				0xffffffffL
#define BIT_LTR_IDLE_L(x)				(((x) & BIT_MASK_LTR_IDLE_L) << BIT_SHIFT_LTR_IDLE_L)
#define BITS_LTR_IDLE_L				(BIT_MASK_LTR_IDLE_L << BIT_SHIFT_LTR_IDLE_L)
#define BIT_CLEAR_LTR_IDLE_L(x)			((x) & (~BITS_LTR_IDLE_L))
#define BIT_GET_LTR_IDLE_L(x)				(((x) >> BIT_SHIFT_LTR_IDLE_L) & BIT_MASK_LTR_IDLE_L)
#define BIT_SET_LTR_IDLE_L(x, v)			(BIT_CLEAR_LTR_IDLE_L(x) | BIT_LTR_IDLE_L(v))


/* 2 REG_LTR_ACTIVE_LATENCY_V1		(Offset 0x07AC) */


#define BIT_SHIFT_LTR_ACT_L				0
#define BIT_MASK_LTR_ACT_L				0xffffffffL
#define BIT_LTR_ACT_L(x)				(((x) & BIT_MASK_LTR_ACT_L) << BIT_SHIFT_LTR_ACT_L)
#define BITS_LTR_ACT_L					(BIT_MASK_LTR_ACT_L << BIT_SHIFT_LTR_ACT_L)
#define BIT_CLEAR_LTR_ACT_L(x)				((x) & (~BITS_LTR_ACT_L))
#define BIT_GET_LTR_ACT_L(x)				(((x) >> BIT_SHIFT_LTR_ACT_L) & BIT_MASK_LTR_ACT_L)
#define BIT_SET_LTR_ACT_L(x, v)			(BIT_CLEAR_LTR_ACT_L(x) | BIT_LTR_ACT_L(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_LTR_ACTIVE_LATENCY_V1		(Offset 0x07AC) */


#define BIT_SHIFT_ANT_ADDR2_1				0
#define BIT_MASK_ANT_ADDR2_1				0xffffffffL
#define BIT_ANT_ADDR2_1(x)				(((x) & BIT_MASK_ANT_ADDR2_1) << BIT_SHIFT_ANT_ADDR2_1)
#define BITS_ANT_ADDR2_1				(BIT_MASK_ANT_ADDR2_1 << BIT_SHIFT_ANT_ADDR2_1)
#define BIT_CLEAR_ANT_ADDR2_1(x)			((x) & (~BITS_ANT_ADDR2_1))
#define BIT_GET_ANT_ADDR2_1(x)				(((x) >> BIT_SHIFT_ANT_ADDR2_1) & BIT_MASK_ANT_ADDR2_1)
#define BIT_SET_ANT_ADDR2_1(x, v)			(BIT_CLEAR_ANT_ADDR2_1(x) | BIT_ANT_ADDR2_1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER	(Offset 0x07B0) */

#define BIT_APPEND_MACID_IN_RESP_EN			BIT(50)
#define BIT_ADDR2_MATCH_EN				BIT(49)
#define BIT_ANTTRN_EN					BIT(48)

#define BIT_SHIFT_TRAIN_STA_ADDR			0
#define BIT_MASK_TRAIN_STA_ADDR			0xffffffffffffL
#define BIT_TRAIN_STA_ADDR(x)				(((x) & BIT_MASK_TRAIN_STA_ADDR) << BIT_SHIFT_TRAIN_STA_ADDR)
#define BITS_TRAIN_STA_ADDR				(BIT_MASK_TRAIN_STA_ADDR << BIT_SHIFT_TRAIN_STA_ADDR)
#define BIT_CLEAR_TRAIN_STA_ADDR(x)			((x) & (~BITS_TRAIN_STA_ADDR))
#define BIT_GET_TRAIN_STA_ADDR(x)			(((x) >> BIT_SHIFT_TRAIN_STA_ADDR) & BIT_MASK_TRAIN_STA_ADDR)
#define BIT_SET_TRAIN_STA_ADDR(x, v)			(BIT_CLEAR_TRAIN_STA_ADDR(x) | BIT_TRAIN_STA_ADDR(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER	(Offset 0x07B0) */


#define BIT_SHIFT_TRAIN_STA_ADDR_0			0
#define BIT_MASK_TRAIN_STA_ADDR_0			0xffffffffL
#define BIT_TRAIN_STA_ADDR_0(x)			(((x) & BIT_MASK_TRAIN_STA_ADDR_0) << BIT_SHIFT_TRAIN_STA_ADDR_0)
#define BITS_TRAIN_STA_ADDR_0				(BIT_MASK_TRAIN_STA_ADDR_0 << BIT_SHIFT_TRAIN_STA_ADDR_0)
#define BIT_CLEAR_TRAIN_STA_ADDR_0(x)			((x) & (~BITS_TRAIN_STA_ADDR_0))
#define BIT_GET_TRAIN_STA_ADDR_0(x)			(((x) >> BIT_SHIFT_TRAIN_STA_ADDR_0) & BIT_MASK_TRAIN_STA_ADDR_0)
#define BIT_SET_TRAIN_STA_ADDR_0(x, v)			(BIT_CLEAR_TRAIN_STA_ADDR_0(x) | BIT_TRAIN_STA_ADDR_0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SMART_ANT_CTRL			(Offset 0x07B4) */

#define BIT_ANTTRN_SWITCH				BIT(19)

#define BIT_SHIFT_ANT_ADDR2_2				0
#define BIT_MASK_ANT_ADDR2_2				0xffff
#define BIT_ANT_ADDR2_2(x)				(((x) & BIT_MASK_ANT_ADDR2_2) << BIT_SHIFT_ANT_ADDR2_2)
#define BITS_ANT_ADDR2_2				(BIT_MASK_ANT_ADDR2_2 << BIT_SHIFT_ANT_ADDR2_2)
#define BIT_CLEAR_ANT_ADDR2_2(x)			((x) & (~BITS_ANT_ADDR2_2))
#define BIT_GET_ANT_ADDR2_2(x)				(((x) >> BIT_SHIFT_ANT_ADDR2_2) & BIT_MASK_ANT_ADDR2_2)
#define BIT_SET_ANT_ADDR2_2(x, v)			(BIT_CLEAR_ANT_ADDR2_2(x) | BIT_ANT_ADDR2_2(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_ANTENNA_TRAINING_CONTROL_REGISTER_1 (Offset 0x07B4) */


#define BIT_SHIFT_TRAIN_STA_ADDR_1			0
#define BIT_MASK_TRAIN_STA_ADDR_1			0xffff
#define BIT_TRAIN_STA_ADDR_1(x)			(((x) & BIT_MASK_TRAIN_STA_ADDR_1) << BIT_SHIFT_TRAIN_STA_ADDR_1)
#define BITS_TRAIN_STA_ADDR_1				(BIT_MASK_TRAIN_STA_ADDR_1 << BIT_SHIFT_TRAIN_STA_ADDR_1)
#define BIT_CLEAR_TRAIN_STA_ADDR_1(x)			((x) & (~BITS_TRAIN_STA_ADDR_1))
#define BIT_GET_TRAIN_STA_ADDR_1(x)			(((x) >> BIT_SHIFT_TRAIN_STA_ADDR_1) & BIT_MASK_TRAIN_STA_ADDR_1)
#define BIT_SET_TRAIN_STA_ADDR_1(x, v)			(BIT_CLEAR_TRAIN_STA_ADDR_1(x) | BIT_TRAIN_STA_ADDR_1(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_WMAC_PKTCNT_RWD			(Offset 0x07B8) */


#define BIT_SHIFT_PKTCNT_BSSIDMAP			4
#define BIT_MASK_PKTCNT_BSSIDMAP			0xf
#define BIT_PKTCNT_BSSIDMAP(x)				(((x) & BIT_MASK_PKTCNT_BSSIDMAP) << BIT_SHIFT_PKTCNT_BSSIDMAP)
#define BITS_PKTCNT_BSSIDMAP				(BIT_MASK_PKTCNT_BSSIDMAP << BIT_SHIFT_PKTCNT_BSSIDMAP)
#define BIT_CLEAR_PKTCNT_BSSIDMAP(x)			((x) & (~BITS_PKTCNT_BSSIDMAP))
#define BIT_GET_PKTCNT_BSSIDMAP(x)			(((x) >> BIT_SHIFT_PKTCNT_BSSIDMAP) & BIT_MASK_PKTCNT_BSSIDMAP)
#define BIT_SET_PKTCNT_BSSIDMAP(x, v)			(BIT_CLEAR_PKTCNT_BSSIDMAP(x) | BIT_PKTCNT_BSSIDMAP(v))

#define BIT_PKTCNT_CNTRST				BIT(1)
#define BIT_PKTCNT_CNTEN				BIT(0)

/* 2 REG_WMAC_PKTCNT_CTRL			(Offset 0x07BC) */

#define BIT_WMAC_PKTCNT_TRST				BIT(9)
#define BIT_WMAC_PKTCNT_FEN				BIT(8)

#define BIT_SHIFT_WMAC_PKTCNT_CFGAD			0
#define BIT_MASK_WMAC_PKTCNT_CFGAD			0xff
#define BIT_WMAC_PKTCNT_CFGAD(x)			(((x) & BIT_MASK_WMAC_PKTCNT_CFGAD) << BIT_SHIFT_WMAC_PKTCNT_CFGAD)
#define BITS_WMAC_PKTCNT_CFGAD				(BIT_MASK_WMAC_PKTCNT_CFGAD << BIT_SHIFT_WMAC_PKTCNT_CFGAD)
#define BIT_CLEAR_WMAC_PKTCNT_CFGAD(x)			((x) & (~BITS_WMAC_PKTCNT_CFGAD))
#define BIT_GET_WMAC_PKTCNT_CFGAD(x)			(((x) >> BIT_SHIFT_WMAC_PKTCNT_CFGAD) & BIT_MASK_WMAC_PKTCNT_CFGAD)
#define BIT_SET_WMAC_PKTCNT_CFGAD(x, v)		(BIT_CLEAR_WMAC_PKTCNT_CFGAD(x) | BIT_WMAC_PKTCNT_CFGAD(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_IQ_DUMP				(Offset 0x07C0) */


#define BIT_SHIFT_R_WMAC_MATCH_REF_MAC			(64 & CPU_OPT_WIDTH)
#define BIT_MASK_R_WMAC_MATCH_REF_MAC			0xffffffffL
#define BIT_R_WMAC_MATCH_REF_MAC(x)			(((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC) << BIT_SHIFT_R_WMAC_MATCH_REF_MAC)
#define BITS_R_WMAC_MATCH_REF_MAC			(BIT_MASK_R_WMAC_MATCH_REF_MAC << BIT_SHIFT_R_WMAC_MATCH_REF_MAC)
#define BIT_CLEAR_R_WMAC_MATCH_REF_MAC(x)		((x) & (~BITS_R_WMAC_MATCH_REF_MAC))
#define BIT_GET_R_WMAC_MATCH_REF_MAC(x)		(((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC) & BIT_MASK_R_WMAC_MATCH_REF_MAC)
#define BIT_SET_R_WMAC_MATCH_REF_MAC(x, v)		(BIT_CLEAR_R_WMAC_MATCH_REF_MAC(x) | BIT_R_WMAC_MATCH_REF_MAC(v))


#define BIT_SHIFT_R_WMAC_RX_FIL_LEN			(64 & CPU_OPT_WIDTH)
#define BIT_MASK_R_WMAC_RX_FIL_LEN			0xffff
#define BIT_R_WMAC_RX_FIL_LEN(x)			(((x) & BIT_MASK_R_WMAC_RX_FIL_LEN) << BIT_SHIFT_R_WMAC_RX_FIL_LEN)
#define BITS_R_WMAC_RX_FIL_LEN				(BIT_MASK_R_WMAC_RX_FIL_LEN << BIT_SHIFT_R_WMAC_RX_FIL_LEN)
#define BIT_CLEAR_R_WMAC_RX_FIL_LEN(x)			((x) & (~BITS_R_WMAC_RX_FIL_LEN))
#define BIT_GET_R_WMAC_RX_FIL_LEN(x)			(((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN) & BIT_MASK_R_WMAC_RX_FIL_LEN)
#define BIT_SET_R_WMAC_RX_FIL_LEN(x, v)		(BIT_CLEAR_R_WMAC_RX_FIL_LEN(x) | BIT_R_WMAC_RX_FIL_LEN(v))


#define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH		(56 & CPU_OPT_WIDTH)
#define BIT_MASK_R_WMAC_RXFIFO_FULL_TH			0xff
#define BIT_R_WMAC_RXFIFO_FULL_TH(x)			(((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH) << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH)
#define BITS_R_WMAC_RXFIFO_FULL_TH			(BIT_MASK_R_WMAC_RXFIFO_FULL_TH << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH)
#define BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH(x)		((x) & (~BITS_R_WMAC_RXFIFO_FULL_TH))
#define BIT_GET_R_WMAC_RXFIFO_FULL_TH(x)		(((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH)
#define BIT_SET_R_WMAC_RXFIFO_FULL_TH(x, v)		(BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH(x) | BIT_R_WMAC_RXFIFO_FULL_TH(v))

#define BIT_R_WMAC_SRCH_TXRPT_TYPE			BIT(51)
#define BIT_R_WMAC_NDP_RST				BIT(50)
#define BIT_R_WMAC_POWINT_EN				BIT(49)
#define BIT_R_WMAC_SRCH_TXRPT_PERPKT			BIT(48)
#define BIT_R_WMAC_SRCH_TXRPT_MID			BIT(47)
#define BIT_R_WMAC_PFIN_TOEN				BIT(46)
#define BIT_R_WMAC_FIL_SECERR				BIT(45)
#define BIT_R_WMAC_FIL_CTLPKTLEN			BIT(44)
#define BIT_R_WMAC_FIL_FCTYPE				BIT(43)
#define BIT_R_WMAC_FIL_FCPROVER			BIT(42)
#define BIT_R_WMAC_PHYSTS_SNIF				BIT(41)
#define BIT_R_WMAC_PHYSTS_PLCP				BIT(40)
#define BIT_R_MAC_TCR_VBONF_RD				BIT(39)
#define BIT_R_WMAC_TCR_MPAR_NDP			BIT(38)
#define BIT_R_WMAC_NDP_FILTER				BIT(37)
#define BIT_R_WMAC_RXLEN_SEL				BIT(36)
#define BIT_R_WMAC_RXLEN_SEL1				BIT(35)
#define BIT_R_OFDM_FILTER				BIT(34)
#define BIT_R_WMAC_CHK_OFDM_LEN			BIT(33)

#define BIT_SHIFT_R_WMAC_MASK_LA_MAC			(32 & CPU_OPT_WIDTH)
#define BIT_MASK_R_WMAC_MASK_LA_MAC			0xffffffffL
#define BIT_R_WMAC_MASK_LA_MAC(x)			(((x) & BIT_MASK_R_WMAC_MASK_LA_MAC) << BIT_SHIFT_R_WMAC_MASK_LA_MAC)
#define BITS_R_WMAC_MASK_LA_MAC			(BIT_MASK_R_WMAC_MASK_LA_MAC << BIT_SHIFT_R_WMAC_MASK_LA_MAC)
#define BIT_CLEAR_R_WMAC_MASK_LA_MAC(x)		((x) & (~BITS_R_WMAC_MASK_LA_MAC))
#define BIT_GET_R_WMAC_MASK_LA_MAC(x)			(((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC) & BIT_MASK_R_WMAC_MASK_LA_MAC)
#define BIT_SET_R_WMAC_MASK_LA_MAC(x, v)		(BIT_CLEAR_R_WMAC_MASK_LA_MAC(x) | BIT_R_WMAC_MASK_LA_MAC(v))

#define BIT_R_WMAC_CHK_CCK_LEN				BIT(32)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_IQ_DUMP				(Offset 0x07C0) */


#define BIT_SHIFT_R_OFDM_LEN				26
#define BIT_MASK_R_OFDM_LEN				0x3f
#define BIT_R_OFDM_LEN(x)				(((x) & BIT_MASK_R_OFDM_LEN) << BIT_SHIFT_R_OFDM_LEN)
#define BITS_R_OFDM_LEN				(BIT_MASK_R_OFDM_LEN << BIT_SHIFT_R_OFDM_LEN)
#define BIT_CLEAR_R_OFDM_LEN(x)			((x) & (~BITS_R_OFDM_LEN))
#define BIT_GET_R_OFDM_LEN(x)				(((x) >> BIT_SHIFT_R_OFDM_LEN) & BIT_MASK_R_OFDM_LEN)
#define BIT_SET_R_OFDM_LEN(x, v)			(BIT_CLEAR_R_OFDM_LEN(x) | BIT_R_OFDM_LEN(v))


#define BIT_SHIFT_DUMP_OK_ADDR				16
#define BIT_MASK_DUMP_OK_ADDR				0xffff
#define BIT_DUMP_OK_ADDR(x)				(((x) & BIT_MASK_DUMP_OK_ADDR) << BIT_SHIFT_DUMP_OK_ADDR)
#define BITS_DUMP_OK_ADDR				(BIT_MASK_DUMP_OK_ADDR << BIT_SHIFT_DUMP_OK_ADDR)
#define BIT_CLEAR_DUMP_OK_ADDR(x)			((x) & (~BITS_DUMP_OK_ADDR))
#define BIT_GET_DUMP_OK_ADDR(x)			(((x) >> BIT_SHIFT_DUMP_OK_ADDR) & BIT_MASK_DUMP_OK_ADDR)
#define BIT_SET_DUMP_OK_ADDR(x, v)			(BIT_CLEAR_DUMP_OK_ADDR(x) | BIT_DUMP_OK_ADDR(v))


#define BIT_SHIFT_R_TRIG_TIME_SEL			8
#define BIT_MASK_R_TRIG_TIME_SEL			0x7f
#define BIT_R_TRIG_TIME_SEL(x)				(((x) & BIT_MASK_R_TRIG_TIME_SEL) << BIT_SHIFT_R_TRIG_TIME_SEL)
#define BITS_R_TRIG_TIME_SEL				(BIT_MASK_R_TRIG_TIME_SEL << BIT_SHIFT_R_TRIG_TIME_SEL)
#define BIT_CLEAR_R_TRIG_TIME_SEL(x)			((x) & (~BITS_R_TRIG_TIME_SEL))
#define BIT_GET_R_TRIG_TIME_SEL(x)			(((x) >> BIT_SHIFT_R_TRIG_TIME_SEL) & BIT_MASK_R_TRIG_TIME_SEL)
#define BIT_SET_R_TRIG_TIME_SEL(x, v)			(BIT_CLEAR_R_TRIG_TIME_SEL(x) | BIT_R_TRIG_TIME_SEL(v))


#define BIT_SHIFT_R_MAC_TRIG_SEL			6
#define BIT_MASK_R_MAC_TRIG_SEL			0x3
#define BIT_R_MAC_TRIG_SEL(x)				(((x) & BIT_MASK_R_MAC_TRIG_SEL) << BIT_SHIFT_R_MAC_TRIG_SEL)
#define BITS_R_MAC_TRIG_SEL				(BIT_MASK_R_MAC_TRIG_SEL << BIT_SHIFT_R_MAC_TRIG_SEL)
#define BIT_CLEAR_R_MAC_TRIG_SEL(x)			((x) & (~BITS_R_MAC_TRIG_SEL))
#define BIT_GET_R_MAC_TRIG_SEL(x)			(((x) >> BIT_SHIFT_R_MAC_TRIG_SEL) & BIT_MASK_R_MAC_TRIG_SEL)
#define BIT_SET_R_MAC_TRIG_SEL(x, v)			(BIT_CLEAR_R_MAC_TRIG_SEL(x) | BIT_R_MAC_TRIG_SEL(v))

#define BIT_MAC_TRIG_REG				BIT(5)

#define BIT_SHIFT_R_LEVEL_PULSE_SEL			3
#define BIT_MASK_R_LEVEL_PULSE_SEL			0x3
#define BIT_R_LEVEL_PULSE_SEL(x)			(((x) & BIT_MASK_R_LEVEL_PULSE_SEL) << BIT_SHIFT_R_LEVEL_PULSE_SEL)
#define BITS_R_LEVEL_PULSE_SEL				(BIT_MASK_R_LEVEL_PULSE_SEL << BIT_SHIFT_R_LEVEL_PULSE_SEL)
#define BIT_CLEAR_R_LEVEL_PULSE_SEL(x)			((x) & (~BITS_R_LEVEL_PULSE_SEL))
#define BIT_GET_R_LEVEL_PULSE_SEL(x)			(((x) >> BIT_SHIFT_R_LEVEL_PULSE_SEL) & BIT_MASK_R_LEVEL_PULSE_SEL)
#define BIT_SET_R_LEVEL_PULSE_SEL(x, v)		(BIT_CLEAR_R_LEVEL_PULSE_SEL(x) | BIT_R_LEVEL_PULSE_SEL(v))

#define BIT_EN_LA_MAC					BIT(2)
#define BIT_R_EN_IQDUMP				BIT(1)
#define BIT_R_IQDATA_DUMP				BIT(0)

#define BIT_SHIFT_R_CCK_LEN				0
#define BIT_MASK_R_CCK_LEN				0xffff
#define BIT_R_CCK_LEN(x)				(((x) & BIT_MASK_R_CCK_LEN) << BIT_SHIFT_R_CCK_LEN)
#define BITS_R_CCK_LEN					(BIT_MASK_R_CCK_LEN << BIT_SHIFT_R_CCK_LEN)
#define BIT_CLEAR_R_CCK_LEN(x)				((x) & (~BITS_R_CCK_LEN))
#define BIT_GET_R_CCK_LEN(x)				(((x) >> BIT_SHIFT_R_CCK_LEN) & BIT_MASK_R_CCK_LEN)
#define BIT_SET_R_CCK_LEN(x, v)			(BIT_CLEAR_R_CCK_LEN(x) | BIT_R_CCK_LEN(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_IQ_DUMP_1				(Offset 0x07C4) */


#define BIT_SHIFT_R_WMAC_MASK_LA_MAC_1			0
#define BIT_MASK_R_WMAC_MASK_LA_MAC_1			0xffffffffL
#define BIT_R_WMAC_MASK_LA_MAC_1(x)			(((x) & BIT_MASK_R_WMAC_MASK_LA_MAC_1) << BIT_SHIFT_R_WMAC_MASK_LA_MAC_1)
#define BITS_R_WMAC_MASK_LA_MAC_1			(BIT_MASK_R_WMAC_MASK_LA_MAC_1 << BIT_SHIFT_R_WMAC_MASK_LA_MAC_1)
#define BIT_CLEAR_R_WMAC_MASK_LA_MAC_1(x)		((x) & (~BITS_R_WMAC_MASK_LA_MAC_1))
#define BIT_GET_R_WMAC_MASK_LA_MAC_1(x)		(((x) >> BIT_SHIFT_R_WMAC_MASK_LA_MAC_1) & BIT_MASK_R_WMAC_MASK_LA_MAC_1)
#define BIT_SET_R_WMAC_MASK_LA_MAC_1(x, v)		(BIT_CLEAR_R_WMAC_MASK_LA_MAC_1(x) | BIT_R_WMAC_MASK_LA_MAC_1(v))


/* 2 REG_IQ_DUMP_2				(Offset 0x07C8) */


#define BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2		0
#define BIT_MASK_R_WMAC_MATCH_REF_MAC_2		0xffffffffL
#define BIT_R_WMAC_MATCH_REF_MAC_2(x)			(((x) & BIT_MASK_R_WMAC_MATCH_REF_MAC_2) << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2)
#define BITS_R_WMAC_MATCH_REF_MAC_2			(BIT_MASK_R_WMAC_MATCH_REF_MAC_2 << BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2)
#define BIT_CLEAR_R_WMAC_MATCH_REF_MAC_2(x)		((x) & (~BITS_R_WMAC_MATCH_REF_MAC_2))
#define BIT_GET_R_WMAC_MATCH_REF_MAC_2(x)		(((x) >> BIT_SHIFT_R_WMAC_MATCH_REF_MAC_2) & BIT_MASK_R_WMAC_MATCH_REF_MAC_2)
#define BIT_SET_R_WMAC_MATCH_REF_MAC_2(x, v)		(BIT_CLEAR_R_WMAC_MATCH_REF_MAC_2(x) | BIT_R_WMAC_MATCH_REF_MAC_2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_FTM_CTL			(Offset 0x07CC) */

#define BIT_RXFTM_TXACK_SC				BIT(6)
#define BIT_RXFTM_TXACK_BW				BIT(5)
#define BIT_RXFTM_EN					BIT(3)
#define BIT_RXFTMREQ_BYDRV				BIT(2)
#define BIT_RXFTMREQ_EN				BIT(1)
#define BIT_FTM_EN					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_IQ_DUMP_EXT				(Offset 0x07CF) */


#define BIT_SHIFT_R_TIME_UNIT_SEL			0
#define BIT_MASK_R_TIME_UNIT_SEL			0x7
#define BIT_R_TIME_UNIT_SEL(x)				(((x) & BIT_MASK_R_TIME_UNIT_SEL) << BIT_SHIFT_R_TIME_UNIT_SEL)
#define BITS_R_TIME_UNIT_SEL				(BIT_MASK_R_TIME_UNIT_SEL << BIT_SHIFT_R_TIME_UNIT_SEL)
#define BIT_CLEAR_R_TIME_UNIT_SEL(x)			((x) & (~BITS_R_TIME_UNIT_SEL))
#define BIT_GET_R_TIME_UNIT_SEL(x)			(((x) >> BIT_SHIFT_R_TIME_UNIT_SEL) & BIT_MASK_R_TIME_UNIT_SEL)
#define BIT_SET_R_TIME_UNIT_SEL(x, v)			(BIT_CLEAR_R_TIME_UNIT_SEL(x) | BIT_R_TIME_UNIT_SEL(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_OFDM_CCK_LEN_MASK			(Offset 0x07D0) */

#define BIT_MICICV_CLR					BIT(86)
#define BIT_MPDU_RDY_SET				BIT(85)
#define BIT_CLR_SEC_TYPE				BIT(84)
#define BIT_NEWPKT_IN					BIT(83)
#define BIT_FCS_END					BIT(82)
#define BIT_DEL_MESH_TYPE				BIT(81)
#define BIT_MASK_MESH_TYPE				BIT(80)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WMAC_OPTION_FUNCTION_1		(Offset 0x07D4) */


#define BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1		24
#define BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1		0xff
#define BIT_R_WMAC_RXFIFO_FULL_TH_1(x)			(((x) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1) << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1)
#define BITS_R_WMAC_RXFIFO_FULL_TH_1			(BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1 << BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1)
#define BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_1(x)		((x) & (~BITS_R_WMAC_RXFIFO_FULL_TH_1))
#define BIT_GET_R_WMAC_RXFIFO_FULL_TH_1(x)		(((x) >> BIT_SHIFT_R_WMAC_RXFIFO_FULL_TH_1) & BIT_MASK_R_WMAC_RXFIFO_FULL_TH_1)
#define BIT_SET_R_WMAC_RXFIFO_FULL_TH_1(x, v)		(BIT_CLEAR_R_WMAC_RXFIFO_FULL_TH_1(x) | BIT_R_WMAC_RXFIFO_FULL_TH_1(v))

#define BIT_R_WMAC_RX_SYNCFIFO_SYNC_1			BIT(23)
#define BIT_R_WMAC_RXRST_DLY_1				BIT(22)
#define BIT_R_WMAC_SRCH_TXRPT_REF_DROP_1		BIT(21)
#define BIT_R_WMAC_SRCH_TXRPT_UA1_1			BIT(20)
#define BIT_R_WMAC_SRCH_TXRPT_TYPE_1			BIT(19)
#define BIT_R_WMAC_NDP_RST_1				BIT(18)
#define BIT_R_WMAC_POWINT_EN_1				BIT(17)
#define BIT_R_WMAC_SRCH_TXRPT_PERPKT_1			BIT(16)
#define BIT_R_WMAC_SRCH_TXRPT_MID_1			BIT(15)
#define BIT_R_WMAC_PFIN_TOEN_1				BIT(14)
#define BIT_R_WMAC_FIL_SECERR_1			BIT(13)
#define BIT_R_WMAC_FIL_CTLPKTLEN_1			BIT(12)
#define BIT_R_WMAC_FIL_FCTYPE_1			BIT(11)
#define BIT_R_WMAC_FIL_FCPROVER_1			BIT(10)
#define BIT_R_WMAC_PHYSTS_SNIF_1			BIT(9)
#define BIT_R_WMAC_PHYSTS_PLCP_1			BIT(8)
#define BIT_R_MAC_TCR_VBONF_RD_1			BIT(7)
#define BIT_R_WMAC_TCR_MPAR_NDP_1			BIT(6)
#define BIT_R_WMAC_NDP_FILTER_1			BIT(5)
#define BIT_R_WMAC_RXLEN_SEL_1				BIT(4)
#define BIT_R_WMAC_RXLEN_SEL1_1			BIT(3)
#define BIT_R_OFDM_FILTER_1				BIT(2)
#define BIT_R_WMAC_CHK_OFDM_LEN_1			BIT(1)
#define BIT_R_WMAC_CHK_CCK_LEN_1			BIT(0)

/* 2 REG_WMAC_OPTION_FUNCTION_2		(Offset 0x07D8) */


#define BIT_SHIFT_R_WMAC_RX_FIL_LEN_2			0
#define BIT_MASK_R_WMAC_RX_FIL_LEN_2			0xffff
#define BIT_R_WMAC_RX_FIL_LEN_2(x)			(((x) & BIT_MASK_R_WMAC_RX_FIL_LEN_2) << BIT_SHIFT_R_WMAC_RX_FIL_LEN_2)
#define BITS_R_WMAC_RX_FIL_LEN_2			(BIT_MASK_R_WMAC_RX_FIL_LEN_2 << BIT_SHIFT_R_WMAC_RX_FIL_LEN_2)
#define BIT_CLEAR_R_WMAC_RX_FIL_LEN_2(x)		((x) & (~BITS_R_WMAC_RX_FIL_LEN_2))
#define BIT_GET_R_WMAC_RX_FIL_LEN_2(x)			(((x) >> BIT_SHIFT_R_WMAC_RX_FIL_LEN_2) & BIT_MASK_R_WMAC_RX_FIL_LEN_2)
#define BIT_SET_R_WMAC_RX_FIL_LEN_2(x, v)		(BIT_CLEAR_R_WMAC_RX_FIL_LEN_2(x) | BIT_R_WMAC_RX_FIL_LEN_2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_WMAC_RXHANG_EN				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_WMAC_MHRDDY_LATCH			BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_MHRDDY_CLR				BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_WMAC_MHRDDY_CLR				BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY1		BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_WMAC_DIS_VHT_PLCP_CHK_MU			BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_WMAC_DIS_VHT_PLCP_CHK_MU			BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_RX_FILTER_FUNCTION			(Offset 0x07DA) */

#define BIT_R_CHK_DELIMIT_LEN				BIT(10)
#define BIT_R_REAPTER_ADDR_MATCH			BIT(9)
#define BIT_R_RXPKTCTL_FSM_BASED_MPDURDY		BIT(8)
#define BIT_R_LATCH_MACHRDY				BIT(7)
#define BIT_R_WMAC_RXFIL_REND				BIT(6)
#define BIT_R_WMAC_MPDURDY_CLR				BIT(5)
#define BIT_R_WMAC_CLRRXSEC				BIT(4)
#define BIT_R_WMAC_RXFIL_RDEL				BIT(3)
#define BIT_R_WMAC_RXFIL_FCSE				BIT(2)
#define BIT_R_WMAC_RXFIL_MESH_DEL			BIT(1)
#define BIT_R_WMAC_RXFIL_MASKM				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NDP_SIG				(Offset 0x07E0) */


#define BIT_SHIFT_R_WMAC_TXNDP_SIGB			0
#define BIT_MASK_R_WMAC_TXNDP_SIGB			0x1fffff
#define BIT_R_WMAC_TXNDP_SIGB(x)			(((x) & BIT_MASK_R_WMAC_TXNDP_SIGB) << BIT_SHIFT_R_WMAC_TXNDP_SIGB)
#define BITS_R_WMAC_TXNDP_SIGB				(BIT_MASK_R_WMAC_TXNDP_SIGB << BIT_SHIFT_R_WMAC_TXNDP_SIGB)
#define BIT_CLEAR_R_WMAC_TXNDP_SIGB(x)			((x) & (~BITS_R_WMAC_TXNDP_SIGB))
#define BIT_GET_R_WMAC_TXNDP_SIGB(x)			(((x) >> BIT_SHIFT_R_WMAC_TXNDP_SIGB) & BIT_MASK_R_WMAC_TXNDP_SIGB)
#define BIT_SET_R_WMAC_TXNDP_SIGB(x, v)		(BIT_CLEAR_R_WMAC_TXNDP_SIGB(x) | BIT_R_WMAC_TXNDP_SIGB(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXCMD_INFO_FOR_RSP_PKT		(Offset 0x07E4) */


#define BIT_SHIFT_R_MAC_DEBUG				(32 & CPU_OPT_WIDTH)
#define BIT_MASK_R_MAC_DEBUG				0xffffffffL
#define BIT_R_MAC_DEBUG(x)				(((x) & BIT_MASK_R_MAC_DEBUG) << BIT_SHIFT_R_MAC_DEBUG)
#define BITS_R_MAC_DEBUG				(BIT_MASK_R_MAC_DEBUG << BIT_SHIFT_R_MAC_DEBUG)
#define BIT_CLEAR_R_MAC_DEBUG(x)			((x) & (~BITS_R_MAC_DEBUG))
#define BIT_GET_R_MAC_DEBUG(x)				(((x) >> BIT_SHIFT_R_MAC_DEBUG) & BIT_MASK_R_MAC_DEBUG)
#define BIT_SET_R_MAC_DEBUG(x, v)			(BIT_CLEAR_R_MAC_DEBUG(x) | BIT_R_MAC_DEBUG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TXCMD_INFO_FOR_RSP_PKT		(Offset 0x07E4) */


#define BIT_SHIFT_R_MAC_DBG_SHIFT			8
#define BIT_MASK_R_MAC_DBG_SHIFT			0x7
#define BIT_R_MAC_DBG_SHIFT(x)				(((x) & BIT_MASK_R_MAC_DBG_SHIFT) << BIT_SHIFT_R_MAC_DBG_SHIFT)
#define BITS_R_MAC_DBG_SHIFT				(BIT_MASK_R_MAC_DBG_SHIFT << BIT_SHIFT_R_MAC_DBG_SHIFT)
#define BIT_CLEAR_R_MAC_DBG_SHIFT(x)			((x) & (~BITS_R_MAC_DBG_SHIFT))
#define BIT_GET_R_MAC_DBG_SHIFT(x)			(((x) >> BIT_SHIFT_R_MAC_DBG_SHIFT) & BIT_MASK_R_MAC_DBG_SHIFT)
#define BIT_SET_R_MAC_DBG_SHIFT(x, v)			(BIT_CLEAR_R_MAC_DBG_SHIFT(x) | BIT_R_MAC_DBG_SHIFT(v))


#define BIT_SHIFT_R_MAC_DBG_SEL			0
#define BIT_MASK_R_MAC_DBG_SEL				0x3
#define BIT_R_MAC_DBG_SEL(x)				(((x) & BIT_MASK_R_MAC_DBG_SEL) << BIT_SHIFT_R_MAC_DBG_SEL)
#define BITS_R_MAC_DBG_SEL				(BIT_MASK_R_MAC_DBG_SEL << BIT_SHIFT_R_MAC_DBG_SEL)
#define BIT_CLEAR_R_MAC_DBG_SEL(x)			((x) & (~BITS_R_MAC_DBG_SEL))
#define BIT_GET_R_MAC_DBG_SEL(x)			(((x) >> BIT_SHIFT_R_MAC_DBG_SEL) & BIT_MASK_R_MAC_DBG_SEL)
#define BIT_SET_R_MAC_DBG_SEL(x, v)			(BIT_CLEAR_R_MAC_DBG_SEL(x) | BIT_R_MAC_DBG_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TXCMD_INFO_FOR_RSP_PKT_1		(Offset 0x07E8) */


#define BIT_SHIFT_R_MAC_DEBUG_1			0
#define BIT_MASK_R_MAC_DEBUG_1				0xffffffffL
#define BIT_R_MAC_DEBUG_1(x)				(((x) & BIT_MASK_R_MAC_DEBUG_1) << BIT_SHIFT_R_MAC_DEBUG_1)
#define BITS_R_MAC_DEBUG_1				(BIT_MASK_R_MAC_DEBUG_1 << BIT_SHIFT_R_MAC_DEBUG_1)
#define BIT_CLEAR_R_MAC_DEBUG_1(x)			((x) & (~BITS_R_MAC_DEBUG_1))
#define BIT_GET_R_MAC_DEBUG_1(x)			(((x) >> BIT_SHIFT_R_MAC_DEBUG_1) & BIT_MASK_R_MAC_DEBUG_1)
#define BIT_SET_R_MAC_DEBUG_1(x, v)			(BIT_CLEAR_R_MAC_DEBUG_1(x) | BIT_R_MAC_DEBUG_1(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WSEC_OPTION				(Offset 0x07EC) */

#define BIT_RXDEC_BM_MGNT				BIT(22)
#define BIT_TXENC_BM_MGNT				BIT(21)
#define BIT_RXDEC_UNI_MGNT				BIT(20)
#define BIT_TXENC_UNI_MGNT				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SEC_OPT_V2				(Offset 0x07EC) */

#define BIT_MASK_IV					BIT(18)
#define BIT_EIVL_ENDIAN				BIT(17)
#define BIT_EIVH_ENDIAN				BIT(16)

#define BIT_SHIFT_BT_TIME_CNT				0
#define BIT_MASK_BT_TIME_CNT				0xff
#define BIT_BT_TIME_CNT(x)				(((x) & BIT_MASK_BT_TIME_CNT) << BIT_SHIFT_BT_TIME_CNT)
#define BITS_BT_TIME_CNT				(BIT_MASK_BT_TIME_CNT << BIT_SHIFT_BT_TIME_CNT)
#define BIT_CLEAR_BT_TIME_CNT(x)			((x) & (~BITS_BT_TIME_CNT))
#define BIT_GET_BT_TIME_CNT(x)				(((x) >> BIT_SHIFT_BT_TIME_CNT) & BIT_MASK_BT_TIME_CNT)
#define BIT_SET_BT_TIME_CNT(x, v)			(BIT_CLEAR_BT_TIME_CNT(x) | BIT_BT_TIME_CNT(v))


#endif


#if (HALMAC_8814AMP_SUPPORT)


/* 2 REG_RTS_ADDR0				(Offset 0x07F0) */


#define BIT_SHIFT_RTS_ADDR0				0
#define BIT_MASK_RTS_ADDR0				0xffffffffffffL
#define BIT_RTS_ADDR0(x)				(((x) & BIT_MASK_RTS_ADDR0) << BIT_SHIFT_RTS_ADDR0)
#define BITS_RTS_ADDR0					(BIT_MASK_RTS_ADDR0 << BIT_SHIFT_RTS_ADDR0)
#define BIT_CLEAR_RTS_ADDR0(x)				((x) & (~BITS_RTS_ADDR0))
#define BIT_GET_RTS_ADDR0(x)				(((x) >> BIT_SHIFT_RTS_ADDR0) & BIT_MASK_RTS_ADDR0)
#define BIT_SET_RTS_ADDR0(x, v)			(BIT_CLEAR_RTS_ADDR0(x) | BIT_RTS_ADDR0(v))


/* 2 REG_RTS_ADDR1				(Offset 0x07F8) */


#define BIT_SHIFT_RTS_ADDR1				0
#define BIT_MASK_RTS_ADDR1				0xffffffffffffL
#define BIT_RTS_ADDR1(x)				(((x) & BIT_MASK_RTS_ADDR1) << BIT_SHIFT_RTS_ADDR1)
#define BITS_RTS_ADDR1					(BIT_MASK_RTS_ADDR1 << BIT_SHIFT_RTS_ADDR1)
#define BIT_CLEAR_RTS_ADDR1(x)				((x) & (~BITS_RTS_ADDR1))
#define BIT_GET_RTS_ADDR1(x)				(((x) >> BIT_SHIFT_RTS_ADDR1) & BIT_MASK_RTS_ADDR1)
#define BIT_SET_RTS_ADDR1(x, v)			(BIT_CLEAR_RTS_ADDR1(x) | BIT_RTS_ADDR1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG3				(Offset 0x1000) */

#define BIT_FEN_BB_GLB_RSTN_V1				BIT(17)
#define BIT_FEN_BBRSTB_V1				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CFG3				(Offset 0x1000) */

#define BIT_PWC_MA33V					BIT(15)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG3				(Offset 0x1000) */

#define BIT_PWC_EV25V_1				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CFG3				(Offset 0x1000) */

#define BIT_PWC_MA12V					BIT(14)
#define BIT_PWC_MD12V					BIT(13)
#define BIT_PWC_PD12V					BIT(12)
#define BIT_PWC_UD12V					BIT(11)
#define BIT_ISO_MA2MD					BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ANAPARSW_MAC_0			(Offset 0x1013) */

#define BIT_OCP_L_0					BIT(31)
#define BIT_POWOCP_L					BIT(30)

#define BIT_SHIFT_CF_L_1_0				28
#define BIT_MASK_CF_L_1_0				0x3
#define BIT_CF_L_1_0(x)				(((x) & BIT_MASK_CF_L_1_0) << BIT_SHIFT_CF_L_1_0)
#define BITS_CF_L_1_0					(BIT_MASK_CF_L_1_0 << BIT_SHIFT_CF_L_1_0)
#define BIT_CLEAR_CF_L_1_0(x)				((x) & (~BITS_CF_L_1_0))
#define BIT_GET_CF_L_1_0(x)				(((x) >> BIT_SHIFT_CF_L_1_0) & BIT_MASK_CF_L_1_0)
#define BIT_SET_CF_L_1_0(x, v)				(BIT_CLEAR_CF_L_1_0(x) | BIT_CF_L_1_0(v))


#define BIT_SHIFT_CFC_L_1_0				26
#define BIT_MASK_CFC_L_1_0				0x3
#define BIT_CFC_L_1_0(x)				(((x) & BIT_MASK_CFC_L_1_0) << BIT_SHIFT_CFC_L_1_0)
#define BITS_CFC_L_1_0					(BIT_MASK_CFC_L_1_0 << BIT_SHIFT_CFC_L_1_0)
#define BIT_CLEAR_CFC_L_1_0(x)				((x) & (~BITS_CFC_L_1_0))
#define BIT_GET_CFC_L_1_0(x)				(((x) >> BIT_SHIFT_CFC_L_1_0) & BIT_MASK_CFC_L_1_0)
#define BIT_SET_CFC_L_1_0(x, v)			(BIT_CLEAR_CFC_L_1_0(x) | BIT_CFC_L_1_0(v))


#define BIT_SHIFT_R3_L_1_0				24
#define BIT_MASK_R3_L_1_0				0x3
#define BIT_R3_L_1_0(x)				(((x) & BIT_MASK_R3_L_1_0) << BIT_SHIFT_R3_L_1_0)
#define BITS_R3_L_1_0					(BIT_MASK_R3_L_1_0 << BIT_SHIFT_R3_L_1_0)
#define BIT_CLEAR_R3_L_1_0(x)				((x) & (~BITS_R3_L_1_0))
#define BIT_GET_R3_L_1_0(x)				(((x) >> BIT_SHIFT_R3_L_1_0) & BIT_MASK_R3_L_1_0)
#define BIT_SET_R3_L_1_0(x, v)				(BIT_CLEAR_R3_L_1_0(x) | BIT_R3_L_1_0(v))


#define BIT_SHIFT_R2_L_1_0				22
#define BIT_MASK_R2_L_1_0				0x3
#define BIT_R2_L_1_0(x)				(((x) & BIT_MASK_R2_L_1_0) << BIT_SHIFT_R2_L_1_0)
#define BITS_R2_L_1_0					(BIT_MASK_R2_L_1_0 << BIT_SHIFT_R2_L_1_0)
#define BIT_CLEAR_R2_L_1_0(x)				((x) & (~BITS_R2_L_1_0))
#define BIT_GET_R2_L_1_0(x)				(((x) >> BIT_SHIFT_R2_L_1_0) & BIT_MASK_R2_L_1_0)
#define BIT_SET_R2_L_1_0(x, v)				(BIT_CLEAR_R2_L_1_0(x) | BIT_R2_L_1_0(v))


#define BIT_SHIFT_R1_L_1_0				20
#define BIT_MASK_R1_L_1_0				0x3
#define BIT_R1_L_1_0(x)				(((x) & BIT_MASK_R1_L_1_0) << BIT_SHIFT_R1_L_1_0)
#define BITS_R1_L_1_0					(BIT_MASK_R1_L_1_0 << BIT_SHIFT_R1_L_1_0)
#define BIT_CLEAR_R1_L_1_0(x)				((x) & (~BITS_R1_L_1_0))
#define BIT_GET_R1_L_1_0(x)				(((x) >> BIT_SHIFT_R1_L_1_0) & BIT_MASK_R1_L_1_0)
#define BIT_SET_R1_L_1_0(x, v)				(BIT_CLEAR_R1_L_1_0(x) | BIT_R1_L_1_0(v))


#define BIT_SHIFT_C3_L_1_0				18
#define BIT_MASK_C3_L_1_0				0x3
#define BIT_C3_L_1_0(x)				(((x) & BIT_MASK_C3_L_1_0) << BIT_SHIFT_C3_L_1_0)
#define BITS_C3_L_1_0					(BIT_MASK_C3_L_1_0 << BIT_SHIFT_C3_L_1_0)
#define BIT_CLEAR_C3_L_1_0(x)				((x) & (~BITS_C3_L_1_0))
#define BIT_GET_C3_L_1_0(x)				(((x) >> BIT_SHIFT_C3_L_1_0) & BIT_MASK_C3_L_1_0)
#define BIT_SET_C3_L_1_0(x, v)				(BIT_CLEAR_C3_L_1_0(x) | BIT_C3_L_1_0(v))


#define BIT_SHIFT_C2_L_1_0				16
#define BIT_MASK_C2_L_1_0				0x3
#define BIT_C2_L_1_0(x)				(((x) & BIT_MASK_C2_L_1_0) << BIT_SHIFT_C2_L_1_0)
#define BITS_C2_L_1_0					(BIT_MASK_C2_L_1_0 << BIT_SHIFT_C2_L_1_0)
#define BIT_CLEAR_C2_L_1_0(x)				((x) & (~BITS_C2_L_1_0))
#define BIT_GET_C2_L_1_0(x)				(((x) >> BIT_SHIFT_C2_L_1_0) & BIT_MASK_C2_L_1_0)
#define BIT_SET_C2_L_1_0(x, v)				(BIT_CLEAR_C2_L_1_0(x) | BIT_C2_L_1_0(v))


#define BIT_SHIFT_C1_L_1_0				14
#define BIT_MASK_C1_L_1_0				0x3
#define BIT_C1_L_1_0(x)				(((x) & BIT_MASK_C1_L_1_0) << BIT_SHIFT_C1_L_1_0)
#define BITS_C1_L_1_0					(BIT_MASK_C1_L_1_0 << BIT_SHIFT_C1_L_1_0)
#define BIT_CLEAR_C1_L_1_0(x)				((x) & (~BITS_C1_L_1_0))
#define BIT_GET_C1_L_1_0(x)				(((x) >> BIT_SHIFT_C1_L_1_0) & BIT_MASK_C1_L_1_0)
#define BIT_SET_C1_L_1_0(x, v)				(BIT_CLEAR_C1_L_1_0(x) | BIT_C1_L_1_0(v))

#define BIT_REG_TYPE_L_V2				BIT(13)
#define BIT_REG_PWM_L					BIT(12)

#define BIT_SHIFT_V15ADJ_L_2_0				9
#define BIT_MASK_V15ADJ_L_2_0				0x7
#define BIT_V15ADJ_L_2_0(x)				(((x) & BIT_MASK_V15ADJ_L_2_0) << BIT_SHIFT_V15ADJ_L_2_0)
#define BITS_V15ADJ_L_2_0				(BIT_MASK_V15ADJ_L_2_0 << BIT_SHIFT_V15ADJ_L_2_0)
#define BIT_CLEAR_V15ADJ_L_2_0(x)			((x) & (~BITS_V15ADJ_L_2_0))
#define BIT_GET_V15ADJ_L_2_0(x)			(((x) >> BIT_SHIFT_V15ADJ_L_2_0) & BIT_MASK_V15ADJ_L_2_0)
#define BIT_SET_V15ADJ_L_2_0(x, v)			(BIT_CLEAR_V15ADJ_L_2_0(x) | BIT_V15ADJ_L_2_0(v))


#define BIT_SHIFT_IN_L_2_0				6
#define BIT_MASK_IN_L_2_0				0x7
#define BIT_IN_L_2_0(x)				(((x) & BIT_MASK_IN_L_2_0) << BIT_SHIFT_IN_L_2_0)
#define BITS_IN_L_2_0					(BIT_MASK_IN_L_2_0 << BIT_SHIFT_IN_L_2_0)
#define BIT_CLEAR_IN_L_2_0(x)				((x) & (~BITS_IN_L_2_0))
#define BIT_GET_IN_L_2_0(x)				(((x) >> BIT_SHIFT_IN_L_2_0) & BIT_MASK_IN_L_2_0)
#define BIT_SET_IN_L_2_0(x, v)				(BIT_CLEAR_IN_L_2_0(x) | BIT_IN_L_2_0(v))


#define BIT_SHIFT_STD_L_1_0				4
#define BIT_MASK_STD_L_1_0				0x3
#define BIT_STD_L_1_0(x)				(((x) & BIT_MASK_STD_L_1_0) << BIT_SHIFT_STD_L_1_0)
#define BITS_STD_L_1_0					(BIT_MASK_STD_L_1_0 << BIT_SHIFT_STD_L_1_0)
#define BIT_CLEAR_STD_L_1_0(x)				((x) & (~BITS_STD_L_1_0))
#define BIT_GET_STD_L_1_0(x)				(((x) >> BIT_SHIFT_STD_L_1_0) & BIT_MASK_STD_L_1_0)
#define BIT_SET_STD_L_1_0(x, v)			(BIT_CLEAR_STD_L_1_0(x) | BIT_STD_L_1_0(v))


#define BIT_SHIFT_VOL_L_3_0				0
#define BIT_MASK_VOL_L_3_0				0xf
#define BIT_VOL_L_3_0(x)				(((x) & BIT_MASK_VOL_L_3_0) << BIT_SHIFT_VOL_L_3_0)
#define BITS_VOL_L_3_0					(BIT_MASK_VOL_L_3_0 << BIT_SHIFT_VOL_L_3_0)
#define BIT_CLEAR_VOL_L_3_0(x)				((x) & (~BITS_VOL_L_3_0))
#define BIT_GET_VOL_L_3_0(x)				(((x) >> BIT_SHIFT_VOL_L_3_0) & BIT_MASK_VOL_L_3_0)
#define BIT_SET_VOL_L_3_0(x, v)			(BIT_CLEAR_VOL_L_3_0(x) | BIT_VOL_L_3_0(v))


/* 2 REG_ANAPARSW_MAC_1			(Offset 0x1016) */


#define BIT_SHIFT_REG_FREQ_L_V1			20
#define BIT_MASK_REG_FREQ_L_V1				0x7
#define BIT_REG_FREQ_L_V1(x)				(((x) & BIT_MASK_REG_FREQ_L_V1) << BIT_SHIFT_REG_FREQ_L_V1)
#define BITS_REG_FREQ_L_V1				(BIT_MASK_REG_FREQ_L_V1 << BIT_SHIFT_REG_FREQ_L_V1)
#define BIT_CLEAR_REG_FREQ_L_V1(x)			((x) & (~BITS_REG_FREQ_L_V1))
#define BIT_GET_REG_FREQ_L_V1(x)			(((x) >> BIT_SHIFT_REG_FREQ_L_V1) & BIT_MASK_REG_FREQ_L_V1)
#define BIT_SET_REG_FREQ_L_V1(x, v)			(BIT_CLEAR_REG_FREQ_L_V1(x) | BIT_REG_FREQ_L_V1(v))

#define BIT_EN_DUTY					BIT(19)

#define BIT_SHIFT_REG_MOS_HALF				17
#define BIT_MASK_REG_MOS_HALF				0x3
#define BIT_REG_MOS_HALF(x)				(((x) & BIT_MASK_REG_MOS_HALF) << BIT_SHIFT_REG_MOS_HALF)
#define BITS_REG_MOS_HALF				(BIT_MASK_REG_MOS_HALF << BIT_SHIFT_REG_MOS_HALF)
#define BIT_CLEAR_REG_MOS_HALF(x)			((x) & (~BITS_REG_MOS_HALF))
#define BIT_GET_REG_MOS_HALF(x)			(((x) >> BIT_SHIFT_REG_MOS_HALF) & BIT_MASK_REG_MOS_HALF)
#define BIT_SET_REG_MOS_HALF(x, v)			(BIT_CLEAR_REG_MOS_HALF(x) | BIT_REG_MOS_HALF(v))

#define BIT_EN_SP					BIT(16)
#define BIT_REG_AUTO_L_V1				BIT(15)
#define BIT_REG_LDOF_L_V2				BIT(14)
#define BIT_REG_OCPS_L_V2				BIT(13)
#define BIT_ARENB_L_V1					BIT(11)

#define BIT_SHIFT_TBOX_L1_1_0				9
#define BIT_MASK_TBOX_L1_1_0				0x3
#define BIT_TBOX_L1_1_0(x)				(((x) & BIT_MASK_TBOX_L1_1_0) << BIT_SHIFT_TBOX_L1_1_0)
#define BITS_TBOX_L1_1_0				(BIT_MASK_TBOX_L1_1_0 << BIT_SHIFT_TBOX_L1_1_0)
#define BIT_CLEAR_TBOX_L1_1_0(x)			((x) & (~BITS_TBOX_L1_1_0))
#define BIT_GET_TBOX_L1_1_0(x)				(((x) >> BIT_SHIFT_TBOX_L1_1_0) & BIT_MASK_TBOX_L1_1_0)
#define BIT_SET_TBOX_L1_1_0(x, v)			(BIT_CLEAR_TBOX_L1_1_0(x) | BIT_TBOX_L1_1_0(v))


#define BIT_SHIFT_REG_DELAY_L_1_0			7
#define BIT_MASK_REG_DELAY_L_1_0			0x3
#define BIT_REG_DELAY_L_1_0(x)				(((x) & BIT_MASK_REG_DELAY_L_1_0) << BIT_SHIFT_REG_DELAY_L_1_0)
#define BITS_REG_DELAY_L_1_0				(BIT_MASK_REG_DELAY_L_1_0 << BIT_SHIFT_REG_DELAY_L_1_0)
#define BIT_CLEAR_REG_DELAY_L_1_0(x)			((x) & (~BITS_REG_DELAY_L_1_0))
#define BIT_GET_REG_DELAY_L_1_0(x)			(((x) >> BIT_SHIFT_REG_DELAY_L_1_0) & BIT_MASK_REG_DELAY_L_1_0)
#define BIT_SET_REG_DELAY_L_1_0(x, v)			(BIT_CLEAR_REG_DELAY_L_1_0(x) | BIT_REG_DELAY_L_1_0(v))

#define BIT_REG_CLAMP_D_L				BIT(6)
#define BIT_REG_BYPASS_L_V1				BIT(5)
#define BIT_REG_AUTOZCD_L				BIT(4)
#define BIT_POW_ZCD_L_V1				BIT(3)

#define BIT_SHIFT_OCP_L_2_1				0
#define BIT_MASK_OCP_L_2_1				0x3
#define BIT_OCP_L_2_1(x)				(((x) & BIT_MASK_OCP_L_2_1) << BIT_SHIFT_OCP_L_2_1)
#define BITS_OCP_L_2_1					(BIT_MASK_OCP_L_2_1 << BIT_SHIFT_OCP_L_2_1)
#define BIT_CLEAR_OCP_L_2_1(x)				((x) & (~BITS_OCP_L_2_1))
#define BIT_GET_OCP_L_2_1(x)				(((x) >> BIT_SHIFT_OCP_L_2_1) & BIT_MASK_OCP_L_2_1)
#define BIT_SET_OCP_L_2_1(x, v)			(BIT_CLEAR_OCP_L_2_1(x) | BIT_OCP_L_2_1(v))


/* 2 REG_ANAPAR_MAC_0			(Offset 0x101B) */


#define BIT_SHIFT_LPF_C2_1_0				30
#define BIT_MASK_LPF_C2_1_0				0x3
#define BIT_LPF_C2_1_0(x)				(((x) & BIT_MASK_LPF_C2_1_0) << BIT_SHIFT_LPF_C2_1_0)
#define BITS_LPF_C2_1_0				(BIT_MASK_LPF_C2_1_0 << BIT_SHIFT_LPF_C2_1_0)
#define BIT_CLEAR_LPF_C2_1_0(x)			((x) & (~BITS_LPF_C2_1_0))
#define BIT_GET_LPF_C2_1_0(x)				(((x) >> BIT_SHIFT_LPF_C2_1_0) & BIT_MASK_LPF_C2_1_0)
#define BIT_SET_LPF_C2_1_0(x, v)			(BIT_CLEAR_LPF_C2_1_0(x) | BIT_LPF_C2_1_0(v))


#define BIT_SHIFT_LPF_C1_5_0				24
#define BIT_MASK_LPF_C1_5_0				0x3f
#define BIT_LPF_C1_5_0(x)				(((x) & BIT_MASK_LPF_C1_5_0) << BIT_SHIFT_LPF_C1_5_0)
#define BITS_LPF_C1_5_0				(BIT_MASK_LPF_C1_5_0 << BIT_SHIFT_LPF_C1_5_0)
#define BIT_CLEAR_LPF_C1_5_0(x)			((x) & (~BITS_LPF_C1_5_0))
#define BIT_GET_LPF_C1_5_0(x)				(((x) >> BIT_SHIFT_LPF_C1_5_0) & BIT_MASK_LPF_C1_5_0)
#define BIT_SET_LPF_C1_5_0(x, v)			(BIT_CLEAR_LPF_C1_5_0(x) | BIT_LPF_C1_5_0(v))

#define BIT_LPF_TIEL					BIT(23)
#define BIT_LPF_TIEH					BIT(22)

#define BIT_SHIFT_LOCKDET_VREF_L_1_0			20
#define BIT_MASK_LOCKDET_VREF_L_1_0			0x3
#define BIT_LOCKDET_VREF_L_1_0(x)			(((x) & BIT_MASK_LOCKDET_VREF_L_1_0) << BIT_SHIFT_LOCKDET_VREF_L_1_0)
#define BITS_LOCKDET_VREF_L_1_0			(BIT_MASK_LOCKDET_VREF_L_1_0 << BIT_SHIFT_LOCKDET_VREF_L_1_0)
#define BIT_CLEAR_LOCKDET_VREF_L_1_0(x)		((x) & (~BITS_LOCKDET_VREF_L_1_0))
#define BIT_GET_LOCKDET_VREF_L_1_0(x)			(((x) >> BIT_SHIFT_LOCKDET_VREF_L_1_0) & BIT_MASK_LOCKDET_VREF_L_1_0)
#define BIT_SET_LOCKDET_VREF_L_1_0(x, v)		(BIT_CLEAR_LOCKDET_VREF_L_1_0(x) | BIT_LOCKDET_VREF_L_1_0(v))


#define BIT_SHIFT_LOCKDET_VREF_H_1_0			18
#define BIT_MASK_LOCKDET_VREF_H_1_0			0x3
#define BIT_LOCKDET_VREF_H_1_0(x)			(((x) & BIT_MASK_LOCKDET_VREF_H_1_0) << BIT_SHIFT_LOCKDET_VREF_H_1_0)
#define BITS_LOCKDET_VREF_H_1_0			(BIT_MASK_LOCKDET_VREF_H_1_0 << BIT_SHIFT_LOCKDET_VREF_H_1_0)
#define BIT_CLEAR_LOCKDET_VREF_H_1_0(x)		((x) & (~BITS_LOCKDET_VREF_H_1_0))
#define BIT_GET_LOCKDET_VREF_H_1_0(x)			(((x) >> BIT_SHIFT_LOCKDET_VREF_H_1_0) & BIT_MASK_LOCKDET_VREF_H_1_0)
#define BIT_SET_LOCKDET_VREF_H_1_0(x, v)		(BIT_CLEAR_LOCKDET_VREF_H_1_0(x) | BIT_LOCKDET_VREF_H_1_0(v))


#define BIT_SHIFT_LDO_SEL_1_0				16
#define BIT_MASK_LDO_SEL_1_0				0x3
#define BIT_LDO_SEL_1_0(x)				(((x) & BIT_MASK_LDO_SEL_1_0) << BIT_SHIFT_LDO_SEL_1_0)
#define BITS_LDO_SEL_1_0				(BIT_MASK_LDO_SEL_1_0 << BIT_SHIFT_LDO_SEL_1_0)
#define BIT_CLEAR_LDO_SEL_1_0(x)			((x) & (~BITS_LDO_SEL_1_0))
#define BIT_GET_LDO_SEL_1_0(x)				(((x) >> BIT_SHIFT_LDO_SEL_1_0) & BIT_MASK_LDO_SEL_1_0)
#define BIT_SET_LDO_SEL_1_0(x, v)			(BIT_CLEAR_LDO_SEL_1_0(x) | BIT_LDO_SEL_1_0(v))


#define BIT_SHIFT_IOFFSET_5_0				10
#define BIT_MASK_IOFFSET_5_0				0x3f
#define BIT_IOFFSET_5_0(x)				(((x) & BIT_MASK_IOFFSET_5_0) << BIT_SHIFT_IOFFSET_5_0)
#define BITS_IOFFSET_5_0				(BIT_MASK_IOFFSET_5_0 << BIT_SHIFT_IOFFSET_5_0)
#define BIT_CLEAR_IOFFSET_5_0(x)			((x) & (~BITS_IOFFSET_5_0))
#define BIT_GET_IOFFSET_5_0(x)				(((x) >> BIT_SHIFT_IOFFSET_5_0) & BIT_MASK_IOFFSET_5_0)
#define BIT_SET_IOFFSET_5_0(x, v)			(BIT_CLEAR_IOFFSET_5_0(x) | BIT_IOFFSET_5_0(v))

#define BIT_CP_ICPX2					BIT(9)

#define BIT_SHIFT_CP_ICP_SEL_4_0			4
#define BIT_MASK_CP_ICP_SEL_4_0			0x1f
#define BIT_CP_ICP_SEL_4_0(x)				(((x) & BIT_MASK_CP_ICP_SEL_4_0) << BIT_SHIFT_CP_ICP_SEL_4_0)
#define BITS_CP_ICP_SEL_4_0				(BIT_MASK_CP_ICP_SEL_4_0 << BIT_SHIFT_CP_ICP_SEL_4_0)
#define BIT_CLEAR_CP_ICP_SEL_4_0(x)			((x) & (~BITS_CP_ICP_SEL_4_0))
#define BIT_GET_CP_ICP_SEL_4_0(x)			(((x) >> BIT_SHIFT_CP_ICP_SEL_4_0) & BIT_MASK_CP_ICP_SEL_4_0)
#define BIT_SET_CP_ICP_SEL_4_0(x, v)			(BIT_CLEAR_CP_ICP_SEL_4_0(x) | BIT_CP_ICP_SEL_4_0(v))


#define BIT_SHIFT_IB_PI_1_0				2
#define BIT_MASK_IB_PI_1_0				0x3
#define BIT_IB_PI_1_0(x)				(((x) & BIT_MASK_IB_PI_1_0) << BIT_SHIFT_IB_PI_1_0)
#define BITS_IB_PI_1_0					(BIT_MASK_IB_PI_1_0 << BIT_SHIFT_IB_PI_1_0)
#define BIT_CLEAR_IB_PI_1_0(x)				((x) & (~BITS_IB_PI_1_0))
#define BIT_GET_IB_PI_1_0(x)				(((x) >> BIT_SHIFT_IB_PI_1_0) & BIT_MASK_IB_PI_1_0)
#define BIT_SET_IB_PI_1_0(x, v)			(BIT_CLEAR_IB_PI_1_0(x) | BIT_IB_PI_1_0(v))


#define BIT_SHIFT_LDO_VSEL				0
#define BIT_MASK_LDO_VSEL				0x3
#define BIT_LDO_VSEL(x)				(((x) & BIT_MASK_LDO_VSEL) << BIT_SHIFT_LDO_VSEL)
#define BITS_LDO_VSEL					(BIT_MASK_LDO_VSEL << BIT_SHIFT_LDO_VSEL)
#define BIT_CLEAR_LDO_VSEL(x)				((x) & (~BITS_LDO_VSEL))
#define BIT_GET_LDO_VSEL(x)				(((x) >> BIT_SHIFT_LDO_VSEL) & BIT_MASK_LDO_VSEL)
#define BIT_SET_LDO_VSEL(x, v)				(BIT_CLEAR_LDO_VSEL(x) | BIT_LDO_VSEL(v))


/* 2 REG_ANAPAR_MAC_1			(Offset 0x101F) */


#define BIT_SHIFT_CKX_USB_IB_SEL			29
#define BIT_MASK_CKX_USB_IB_SEL			0x7
#define BIT_CKX_USB_IB_SEL(x)				(((x) & BIT_MASK_CKX_USB_IB_SEL) << BIT_SHIFT_CKX_USB_IB_SEL)
#define BITS_CKX_USB_IB_SEL				(BIT_MASK_CKX_USB_IB_SEL << BIT_SHIFT_CKX_USB_IB_SEL)
#define BIT_CLEAR_CKX_USB_IB_SEL(x)			((x) & (~BITS_CKX_USB_IB_SEL))
#define BIT_GET_CKX_USB_IB_SEL(x)			(((x) >> BIT_SHIFT_CKX_USB_IB_SEL) & BIT_MASK_CKX_USB_IB_SEL)
#define BIT_SET_CKX_USB_IB_SEL(x, v)			(BIT_CLEAR_CKX_USB_IB_SEL(x) | BIT_CKX_USB_IB_SEL(v))

#define BIT_PFD_DN_GATED				BIT(28)
#define BIT_PFD_UP_GATED				BIT(27)
#define BIT_PFD_RESET_GATED				BIT(26)

#define BIT_SHIFT_PFD_OUT_DRV_1_0			24
#define BIT_MASK_PFD_OUT_DRV_1_0			0x3
#define BIT_PFD_OUT_DRV_1_0(x)				(((x) & BIT_MASK_PFD_OUT_DRV_1_0) << BIT_SHIFT_PFD_OUT_DRV_1_0)
#define BITS_PFD_OUT_DRV_1_0				(BIT_MASK_PFD_OUT_DRV_1_0 << BIT_SHIFT_PFD_OUT_DRV_1_0)
#define BIT_CLEAR_PFD_OUT_DRV_1_0(x)			((x) & (~BITS_PFD_OUT_DRV_1_0))
#define BIT_GET_PFD_OUT_DRV_1_0(x)			(((x) >> BIT_SHIFT_PFD_OUT_DRV_1_0) & BIT_MASK_PFD_OUT_DRV_1_0)
#define BIT_SET_PFD_OUT_DRV_1_0(x, v)			(BIT_CLEAR_PFD_OUT_DRV_1_0(x) | BIT_PFD_OUT_DRV_1_0(v))


#define BIT_SHIFT_LPF_TIEMID_2_0			20
#define BIT_MASK_LPF_TIEMID_2_0			0x7
#define BIT_LPF_TIEMID_2_0(x)				(((x) & BIT_MASK_LPF_TIEMID_2_0) << BIT_SHIFT_LPF_TIEMID_2_0)
#define BITS_LPF_TIEMID_2_0				(BIT_MASK_LPF_TIEMID_2_0 << BIT_SHIFT_LPF_TIEMID_2_0)
#define BIT_CLEAR_LPF_TIEMID_2_0(x)			((x) & (~BITS_LPF_TIEMID_2_0))
#define BIT_GET_LPF_TIEMID_2_0(x)			(((x) >> BIT_SHIFT_LPF_TIEMID_2_0) & BIT_MASK_LPF_TIEMID_2_0)
#define BIT_SET_LPF_TIEMID_2_0(x, v)			(BIT_CLEAR_LPF_TIEMID_2_0(x) | BIT_LPF_TIEMID_2_0(v))


#define BIT_SHIFT_LPF_R3_4_0				15
#define BIT_MASK_LPF_R3_4_0				0x1f
#define BIT_LPF_R3_4_0(x)				(((x) & BIT_MASK_LPF_R3_4_0) << BIT_SHIFT_LPF_R3_4_0)
#define BITS_LPF_R3_4_0				(BIT_MASK_LPF_R3_4_0 << BIT_SHIFT_LPF_R3_4_0)
#define BIT_CLEAR_LPF_R3_4_0(x)			((x) & (~BITS_LPF_R3_4_0))
#define BIT_GET_LPF_R3_4_0(x)				(((x) >> BIT_SHIFT_LPF_R3_4_0) & BIT_MASK_LPF_R3_4_0)
#define BIT_SET_LPF_R3_4_0(x, v)			(BIT_CLEAR_LPF_R3_4_0(x) | BIT_LPF_R3_4_0(v))


#define BIT_SHIFT_LPF_R2_4_0				10
#define BIT_MASK_LPF_R2_4_0				0x1f
#define BIT_LPF_R2_4_0(x)				(((x) & BIT_MASK_LPF_R2_4_0) << BIT_SHIFT_LPF_R2_4_0)
#define BITS_LPF_R2_4_0				(BIT_MASK_LPF_R2_4_0 << BIT_SHIFT_LPF_R2_4_0)
#define BIT_CLEAR_LPF_R2_4_0(x)			((x) & (~BITS_LPF_R2_4_0))
#define BIT_GET_LPF_R2_4_0(x)				(((x) >> BIT_SHIFT_LPF_R2_4_0) & BIT_MASK_LPF_R2_4_0)
#define BIT_SET_LPF_R2_4_0(x, v)			(BIT_CLEAR_LPF_R2_4_0(x) | BIT_LPF_R2_4_0(v))


#define BIT_SHIFT_LPF_C3_5_0				4
#define BIT_MASK_LPF_C3_5_0				0x3f
#define BIT_LPF_C3_5_0(x)				(((x) & BIT_MASK_LPF_C3_5_0) << BIT_SHIFT_LPF_C3_5_0)
#define BITS_LPF_C3_5_0				(BIT_MASK_LPF_C3_5_0 << BIT_SHIFT_LPF_C3_5_0)
#define BIT_CLEAR_LPF_C3_5_0(x)			((x) & (~BITS_LPF_C3_5_0))
#define BIT_GET_LPF_C3_5_0(x)				(((x) >> BIT_SHIFT_LPF_C3_5_0) & BIT_MASK_LPF_C3_5_0)
#define BIT_SET_LPF_C3_5_0(x, v)			(BIT_CLEAR_LPF_C3_5_0(x) | BIT_LPF_C3_5_0(v))


#define BIT_SHIFT_LPF_C2_5_2				0
#define BIT_MASK_LPF_C2_5_2				0xf
#define BIT_LPF_C2_5_2(x)				(((x) & BIT_MASK_LPF_C2_5_2) << BIT_SHIFT_LPF_C2_5_2)
#define BITS_LPF_C2_5_2				(BIT_MASK_LPF_C2_5_2 << BIT_SHIFT_LPF_C2_5_2)
#define BIT_CLEAR_LPF_C2_5_2(x)			((x) & (~BITS_LPF_C2_5_2))
#define BIT_GET_LPF_C2_5_2(x)				(((x) >> BIT_SHIFT_LPF_C2_5_2) & BIT_MASK_LPF_C2_5_2)
#define BIT_SET_LPF_C2_5_2(x, v)			(BIT_CLEAR_LPF_C2_5_2(x) | BIT_LPF_C2_5_2(v))


/* 2 REG_ANAPAR_MAC_2			(Offset 0x1023) */

#define BIT_CK_PHASE_SEL				BIT(31)
#define BIT_CK960M_EN					BIT(30)
#define BIT_CK640M_EN					BIT(29)
#define BIT_CK240M_EN					BIT(28)

#define BIT_SHIFT_CK_MON_SEL_2_0			25
#define BIT_MASK_CK_MON_SEL_2_0			0x7
#define BIT_CK_MON_SEL_2_0(x)				(((x) & BIT_MASK_CK_MON_SEL_2_0) << BIT_SHIFT_CK_MON_SEL_2_0)
#define BITS_CK_MON_SEL_2_0				(BIT_MASK_CK_MON_SEL_2_0 << BIT_SHIFT_CK_MON_SEL_2_0)
#define BIT_CLEAR_CK_MON_SEL_2_0(x)			((x) & (~BITS_CK_MON_SEL_2_0))
#define BIT_GET_CK_MON_SEL_2_0(x)			(((x) >> BIT_SHIFT_CK_MON_SEL_2_0) & BIT_MASK_CK_MON_SEL_2_0)
#define BIT_SET_CK_MON_SEL_2_0(x, v)			(BIT_CLEAR_CK_MON_SEL_2_0(x) | BIT_CK_MON_SEL_2_0(v))

#define BIT_CK_MON_EN_V1				BIT(24)
#define BIT_XTAL_SOURCE_SEL				BIT(23)
#define BIT_XTAL_FREQ_SEL				BIT(22)
#define BIT_XTAL_EDGE_SEL				BIT(21)
#define BIT_XTAL_BUF_SEL				BIT(20)

#define BIT_SHIFT_VCO_CV_7_0				4
#define BIT_MASK_VCO_CV_7_0				0xff
#define BIT_VCO_CV_7_0(x)				(((x) & BIT_MASK_VCO_CV_7_0) << BIT_SHIFT_VCO_CV_7_0)
#define BITS_VCO_CV_7_0				(BIT_MASK_VCO_CV_7_0 << BIT_SHIFT_VCO_CV_7_0)
#define BIT_CLEAR_VCO_CV_7_0(x)			((x) & (~BITS_VCO_CV_7_0))
#define BIT_GET_VCO_CV_7_0(x)				(((x) >> BIT_SHIFT_VCO_CV_7_0) & BIT_MASK_VCO_CV_7_0)
#define BIT_SET_VCO_CV_7_0(x, v)			(BIT_CLEAR_VCO_CV_7_0(x) | BIT_VCO_CV_7_0(v))

#define BIT_VCO_KVCO					BIT(3)
#define BIT_SDM_EDGE_SEL				BIT(2)
#define BIT_SDM_CK_SEL					BIT(1)
#define BIT_SDM_CK_GATED				BIT(0)

/* 2 REG_ANAPAR_MAC_3			(Offset 0x1027) */


#define BIT_SHIFT_LCK_WAIT_CYCLE_2_0			28
#define BIT_MASK_LCK_WAIT_CYCLE_2_0			0x7
#define BIT_LCK_WAIT_CYCLE_2_0(x)			(((x) & BIT_MASK_LCK_WAIT_CYCLE_2_0) << BIT_SHIFT_LCK_WAIT_CYCLE_2_0)
#define BITS_LCK_WAIT_CYCLE_2_0			(BIT_MASK_LCK_WAIT_CYCLE_2_0 << BIT_SHIFT_LCK_WAIT_CYCLE_2_0)
#define BIT_CLEAR_LCK_WAIT_CYCLE_2_0(x)		((x) & (~BITS_LCK_WAIT_CYCLE_2_0))
#define BIT_GET_LCK_WAIT_CYCLE_2_0(x)			(((x) >> BIT_SHIFT_LCK_WAIT_CYCLE_2_0) & BIT_MASK_LCK_WAIT_CYCLE_2_0)
#define BIT_SET_LCK_WAIT_CYCLE_2_0(x, v)		(BIT_CLEAR_LCK_WAIT_CYCLE_2_0(x) | BIT_LCK_WAIT_CYCLE_2_0(v))


#define BIT_SHIFT_LCK_VCO_DIVISOR_1_0			26
#define BIT_MASK_LCK_VCO_DIVISOR_1_0			0x3
#define BIT_LCK_VCO_DIVISOR_1_0(x)			(((x) & BIT_MASK_LCK_VCO_DIVISOR_1_0) << BIT_SHIFT_LCK_VCO_DIVISOR_1_0)
#define BITS_LCK_VCO_DIVISOR_1_0			(BIT_MASK_LCK_VCO_DIVISOR_1_0 << BIT_SHIFT_LCK_VCO_DIVISOR_1_0)
#define BIT_CLEAR_LCK_VCO_DIVISOR_1_0(x)		((x) & (~BITS_LCK_VCO_DIVISOR_1_0))
#define BIT_GET_LCK_VCO_DIVISOR_1_0(x)			(((x) >> BIT_SHIFT_LCK_VCO_DIVISOR_1_0) & BIT_MASK_LCK_VCO_DIVISOR_1_0)
#define BIT_SET_LCK_VCO_DIVISOR_1_0(x, v)		(BIT_CLEAR_LCK_VCO_DIVISOR_1_0(x) | BIT_LCK_VCO_DIVISOR_1_0(v))


#define BIT_SHIFT_LCK_SEARCH_MODE_1_0			24
#define BIT_MASK_LCK_SEARCH_MODE_1_0			0x3
#define BIT_LCK_SEARCH_MODE_1_0(x)			(((x) & BIT_MASK_LCK_SEARCH_MODE_1_0) << BIT_SHIFT_LCK_SEARCH_MODE_1_0)
#define BITS_LCK_SEARCH_MODE_1_0			(BIT_MASK_LCK_SEARCH_MODE_1_0 << BIT_SHIFT_LCK_SEARCH_MODE_1_0)
#define BIT_CLEAR_LCK_SEARCH_MODE_1_0(x)		((x) & (~BITS_LCK_SEARCH_MODE_1_0))
#define BIT_GET_LCK_SEARCH_MODE_1_0(x)			(((x) >> BIT_SHIFT_LCK_SEARCH_MODE_1_0) & BIT_MASK_LCK_SEARCH_MODE_1_0)
#define BIT_SET_LCK_SEARCH_MODE_1_0(x, v)		(BIT_CLEAR_LCK_SEARCH_MODE_1_0(x) | BIT_LCK_SEARCH_MODE_1_0(v))


#define BIT_SHIFT_LS_CV_OFFSET_3_0			12
#define BIT_MASK_LS_CV_OFFSET_3_0			0xf
#define BIT_LS_CV_OFFSET_3_0(x)			(((x) & BIT_MASK_LS_CV_OFFSET_3_0) << BIT_SHIFT_LS_CV_OFFSET_3_0)
#define BITS_LS_CV_OFFSET_3_0				(BIT_MASK_LS_CV_OFFSET_3_0 << BIT_SHIFT_LS_CV_OFFSET_3_0)
#define BIT_CLEAR_LS_CV_OFFSET_3_0(x)			((x) & (~BITS_LS_CV_OFFSET_3_0))
#define BIT_GET_LS_CV_OFFSET_3_0(x)			(((x) >> BIT_SHIFT_LS_CV_OFFSET_3_0) & BIT_MASK_LS_CV_OFFSET_3_0)
#define BIT_SET_LS_CV_OFFSET_3_0(x, v)			(BIT_CLEAR_LS_CV_OFFSET_3_0(x) | BIT_LS_CV_OFFSET_3_0(v))

#define BIT_LS_EN_LC_CK40M				BIT(11)
#define BIT_LS__CV_MANUAL				BIT(10)
#define BIT_LS_PYPASS_PI				BIT(9)
#define BIT_MBIASE					BIT(4)

/* 2 REG_ANAPAR_MAC_4			(Offset 0x102B) */

#define BIT_LS_TIE_MID_MODE				BIT(28)

#define BIT_SHIFT_LS_SYNC_CYCLE_1_0			26
#define BIT_MASK_LS_SYNC_CYCLE_1_0			0x3
#define BIT_LS_SYNC_CYCLE_1_0(x)			(((x) & BIT_MASK_LS_SYNC_CYCLE_1_0) << BIT_SHIFT_LS_SYNC_CYCLE_1_0)
#define BITS_LS_SYNC_CYCLE_1_0				(BIT_MASK_LS_SYNC_CYCLE_1_0 << BIT_SHIFT_LS_SYNC_CYCLE_1_0)
#define BIT_CLEAR_LS_SYNC_CYCLE_1_0(x)			((x) & (~BITS_LS_SYNC_CYCLE_1_0))
#define BIT_GET_LS_SYNC_CYCLE_1_0(x)			(((x) >> BIT_SHIFT_LS_SYNC_CYCLE_1_0) & BIT_MASK_LS_SYNC_CYCLE_1_0)
#define BIT_SET_LS_SYNC_CYCLE_1_0(x, v)		(BIT_CLEAR_LS_SYNC_CYCLE_1_0(x) | BIT_LS_SYNC_CYCLE_1_0(v))

#define BIT_LS_SDM_ORDER				BIT(25)
#define BIT_LS_RST_LC_CAL				BIT(14)
#define BIT_LS_RSTB					BIT(13)
#define BIT_LS_POW_LC_CAL_PREP				BIT(11)

#define BIT_SHIFT_LCK_XTAL_DIVISOR_1_0			0
#define BIT_MASK_LCK_XTAL_DIVISOR_1_0			0x3
#define BIT_LCK_XTAL_DIVISOR_1_0(x)			(((x) & BIT_MASK_LCK_XTAL_DIVISOR_1_0) << BIT_SHIFT_LCK_XTAL_DIVISOR_1_0)
#define BITS_LCK_XTAL_DIVISOR_1_0			(BIT_MASK_LCK_XTAL_DIVISOR_1_0 << BIT_SHIFT_LCK_XTAL_DIVISOR_1_0)
#define BIT_CLEAR_LCK_XTAL_DIVISOR_1_0(x)		((x) & (~BITS_LCK_XTAL_DIVISOR_1_0))
#define BIT_GET_LCK_XTAL_DIVISOR_1_0(x)		(((x) >> BIT_SHIFT_LCK_XTAL_DIVISOR_1_0) & BIT_MASK_LCK_XTAL_DIVISOR_1_0)
#define BIT_SET_LCK_XTAL_DIVISOR_1_0(x, v)		(BIT_CLEAR_LCK_XTAL_DIVISOR_1_0(x) | BIT_LCK_XTAL_DIVISOR_1_0(v))


/* 2 REG_ANAPAR_MAC_5			(Offset 0x102C) */


#define BIT_SHIFT_LS_XTAL_SEL_3_0			0
#define BIT_MASK_LS_XTAL_SEL_3_0			0xf
#define BIT_LS_XTAL_SEL_3_0(x)				(((x) & BIT_MASK_LS_XTAL_SEL_3_0) << BIT_SHIFT_LS_XTAL_SEL_3_0)
#define BITS_LS_XTAL_SEL_3_0				(BIT_MASK_LS_XTAL_SEL_3_0 << BIT_SHIFT_LS_XTAL_SEL_3_0)
#define BIT_CLEAR_LS_XTAL_SEL_3_0(x)			((x) & (~BITS_LS_XTAL_SEL_3_0))
#define BIT_GET_LS_XTAL_SEL_3_0(x)			(((x) >> BIT_SHIFT_LS_XTAL_SEL_3_0) & BIT_MASK_LS_XTAL_SEL_3_0)
#define BIT_SET_LS_XTAL_SEL_3_0(x, v)			(BIT_CLEAR_LS_XTAL_SEL_3_0(x) | BIT_LS_XTAL_SEL_3_0(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SYS_CFG4				(Offset 0x1034) */

#define BIT_EF_CSER_1					BIT(26)
#define BIT_SW_PG_EN_1					BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ANAPAR_XTAL_0			(Offset 0x1043) */

#define BIT_XTAL_DRV_RF1_0				BIT(31)
#define BIT_XTAL_GATED_RF1N				BIT(30)
#define BIT_XTAL_GATED_RF1P				BIT(29)
#define BIT_XTAL_GM_SEP_V2				BIT(28)

#define BIT_SHIFT_XTAL_LDO_1_0				26
#define BIT_MASK_XTAL_LDO_1_0				0x3
#define BIT_XTAL_LDO_1_0(x)				(((x) & BIT_MASK_XTAL_LDO_1_0) << BIT_SHIFT_XTAL_LDO_1_0)
#define BITS_XTAL_LDO_1_0				(BIT_MASK_XTAL_LDO_1_0 << BIT_SHIFT_XTAL_LDO_1_0)
#define BIT_CLEAR_XTAL_LDO_1_0(x)			((x) & (~BITS_XTAL_LDO_1_0))
#define BIT_GET_XTAL_LDO_1_0(x)			(((x) >> BIT_SHIFT_XTAL_LDO_1_0) & BIT_MASK_XTAL_LDO_1_0)
#define BIT_SET_XTAL_LDO_1_0(x, v)			(BIT_CLEAR_XTAL_LDO_1_0(x) | BIT_XTAL_LDO_1_0(v))

#define BIT_XQSEL_V1					BIT(25)
#define BIT_GATED_XTAL_OK0				BIT(24)

#define BIT_SHIFT_XTAL_SC_XO_6_0			17
#define BIT_MASK_XTAL_SC_XO_6_0			0x7f
#define BIT_XTAL_SC_XO_6_0(x)				(((x) & BIT_MASK_XTAL_SC_XO_6_0) << BIT_SHIFT_XTAL_SC_XO_6_0)
#define BITS_XTAL_SC_XO_6_0				(BIT_MASK_XTAL_SC_XO_6_0 << BIT_SHIFT_XTAL_SC_XO_6_0)
#define BIT_CLEAR_XTAL_SC_XO_6_0(x)			((x) & (~BITS_XTAL_SC_XO_6_0))
#define BIT_GET_XTAL_SC_XO_6_0(x)			(((x) >> BIT_SHIFT_XTAL_SC_XO_6_0) & BIT_MASK_XTAL_SC_XO_6_0)
#define BIT_SET_XTAL_SC_XO_6_0(x, v)			(BIT_CLEAR_XTAL_SC_XO_6_0(x) | BIT_XTAL_SC_XO_6_0(v))


#define BIT_SHIFT_XTAL_SC_XI_6_0			10
#define BIT_MASK_XTAL_SC_XI_6_0			0x7f
#define BIT_XTAL_SC_XI_6_0(x)				(((x) & BIT_MASK_XTAL_SC_XI_6_0) << BIT_SHIFT_XTAL_SC_XI_6_0)
#define BITS_XTAL_SC_XI_6_0				(BIT_MASK_XTAL_SC_XI_6_0 << BIT_SHIFT_XTAL_SC_XI_6_0)
#define BIT_CLEAR_XTAL_SC_XI_6_0(x)			((x) & (~BITS_XTAL_SC_XI_6_0))
#define BIT_GET_XTAL_SC_XI_6_0(x)			(((x) >> BIT_SHIFT_XTAL_SC_XI_6_0) & BIT_MASK_XTAL_SC_XI_6_0)
#define BIT_SET_XTAL_SC_XI_6_0(x, v)			(BIT_CLEAR_XTAL_SC_XI_6_0(x) | BIT_XTAL_SC_XI_6_0(v))


#define BIT_SHIFT_XTAL_GMN_4_0				5
#define BIT_MASK_XTAL_GMN_4_0				0x1f
#define BIT_XTAL_GMN_4_0(x)				(((x) & BIT_MASK_XTAL_GMN_4_0) << BIT_SHIFT_XTAL_GMN_4_0)
#define BITS_XTAL_GMN_4_0				(BIT_MASK_XTAL_GMN_4_0 << BIT_SHIFT_XTAL_GMN_4_0)
#define BIT_CLEAR_XTAL_GMN_4_0(x)			((x) & (~BITS_XTAL_GMN_4_0))
#define BIT_GET_XTAL_GMN_4_0(x)			(((x) >> BIT_SHIFT_XTAL_GMN_4_0) & BIT_MASK_XTAL_GMN_4_0)
#define BIT_SET_XTAL_GMN_4_0(x, v)			(BIT_CLEAR_XTAL_GMN_4_0(x) | BIT_XTAL_GMN_4_0(v))


#define BIT_SHIFT_XTAL_GMP_4_0				0
#define BIT_MASK_XTAL_GMP_4_0				0x1f
#define BIT_XTAL_GMP_4_0(x)				(((x) & BIT_MASK_XTAL_GMP_4_0) << BIT_SHIFT_XTAL_GMP_4_0)
#define BITS_XTAL_GMP_4_0				(BIT_MASK_XTAL_GMP_4_0 << BIT_SHIFT_XTAL_GMP_4_0)
#define BIT_CLEAR_XTAL_GMP_4_0(x)			((x) & (~BITS_XTAL_GMP_4_0))
#define BIT_GET_XTAL_GMP_4_0(x)			(((x) >> BIT_SHIFT_XTAL_GMP_4_0) & BIT_MASK_XTAL_GMP_4_0)
#define BIT_SET_XTAL_GMP_4_0(x, v)			(BIT_CLEAR_XTAL_GMP_4_0(x) | BIT_XTAL_GMP_4_0(v))


/* 2 REG_ANAPAR_XTAL_1			(Offset 0x1047) */


#define BIT_SHIFT_XTAL_LDO_OK_1_0			30
#define BIT_MASK_XTAL_LDO_OK_1_0			0x3
#define BIT_XTAL_LDO_OK_1_0(x)				(((x) & BIT_MASK_XTAL_LDO_OK_1_0) << BIT_SHIFT_XTAL_LDO_OK_1_0)
#define BITS_XTAL_LDO_OK_1_0				(BIT_MASK_XTAL_LDO_OK_1_0 << BIT_SHIFT_XTAL_LDO_OK_1_0)
#define BIT_CLEAR_XTAL_LDO_OK_1_0(x)			((x) & (~BITS_XTAL_LDO_OK_1_0))
#define BIT_GET_XTAL_LDO_OK_1_0(x)			(((x) >> BIT_SHIFT_XTAL_LDO_OK_1_0) & BIT_MASK_XTAL_LDO_OK_1_0)
#define BIT_SET_XTAL_LDO_OK_1_0(x, v)			(BIT_CLEAR_XTAL_LDO_OK_1_0(x) | BIT_XTAL_LDO_OK_1_0(v))


#define BIT_SHIFT_XTAL_XORES_SEL_2_0			27
#define BIT_MASK_XTAL_XORES_SEL_2_0			0x7
#define BIT_XTAL_XORES_SEL_2_0(x)			(((x) & BIT_MASK_XTAL_XORES_SEL_2_0) << BIT_SHIFT_XTAL_XORES_SEL_2_0)
#define BITS_XTAL_XORES_SEL_2_0			(BIT_MASK_XTAL_XORES_SEL_2_0 << BIT_SHIFT_XTAL_XORES_SEL_2_0)
#define BIT_CLEAR_XTAL_XORES_SEL_2_0(x)		((x) & (~BITS_XTAL_XORES_SEL_2_0))
#define BIT_GET_XTAL_XORES_SEL_2_0(x)			(((x) >> BIT_SHIFT_XTAL_XORES_SEL_2_0) & BIT_MASK_XTAL_XORES_SEL_2_0)
#define BIT_SET_XTAL_XORES_SEL_2_0(x, v)		(BIT_CLEAR_XTAL_XORES_SEL_2_0(x) | BIT_XTAL_XORES_SEL_2_0(v))


#define BIT_SHIFT_XTAL_AAC_PK_SEL_1_0			25
#define BIT_MASK_XTAL_AAC_PK_SEL_1_0			0x3
#define BIT_XTAL_AAC_PK_SEL_1_0(x)			(((x) & BIT_MASK_XTAL_AAC_PK_SEL_1_0) << BIT_SHIFT_XTAL_AAC_PK_SEL_1_0)
#define BITS_XTAL_AAC_PK_SEL_1_0			(BIT_MASK_XTAL_AAC_PK_SEL_1_0 << BIT_SHIFT_XTAL_AAC_PK_SEL_1_0)
#define BIT_CLEAR_XTAL_AAC_PK_SEL_1_0(x)		((x) & (~BITS_XTAL_AAC_PK_SEL_1_0))
#define BIT_GET_XTAL_AAC_PK_SEL_1_0(x)			(((x) >> BIT_SHIFT_XTAL_AAC_PK_SEL_1_0) & BIT_MASK_XTAL_AAC_PK_SEL_1_0)
#define BIT_SET_XTAL_AAC_PK_SEL_1_0(x, v)		(BIT_CLEAR_XTAL_AAC_PK_SEL_1_0(x) | BIT_XTAL_AAC_PK_SEL_1_0(v))

#define BIT_EN_XTAL_AAC_PKDET				BIT(24)
#define BIT_EN_XTAL_AAC_GM				BIT(23)
#define BIT_XTAL_LPMODE				BIT(22)

#define BIT_SHIFT_XTAL_SEL_TOK_2_0			19
#define BIT_MASK_XTAL_SEL_TOK_2_0			0x7
#define BIT_XTAL_SEL_TOK_2_0(x)			(((x) & BIT_MASK_XTAL_SEL_TOK_2_0) << BIT_SHIFT_XTAL_SEL_TOK_2_0)
#define BITS_XTAL_SEL_TOK_2_0				(BIT_MASK_XTAL_SEL_TOK_2_0 << BIT_SHIFT_XTAL_SEL_TOK_2_0)
#define BIT_CLEAR_XTAL_SEL_TOK_2_0(x)			((x) & (~BITS_XTAL_SEL_TOK_2_0))
#define BIT_GET_XTAL_SEL_TOK_2_0(x)			(((x) >> BIT_SHIFT_XTAL_SEL_TOK_2_0) & BIT_MASK_XTAL_SEL_TOK_2_0)
#define BIT_SET_XTAL_SEL_TOK_2_0(x, v)			(BIT_CLEAR_XTAL_SEL_TOK_2_0(x) | BIT_XTAL_SEL_TOK_2_0(v))

#define BIT_XQSEL_RF_AWAKE_V2				BIT(18)
#define BIT_XQSEL_RF_INITIAL_V2			BIT(17)
#define BIT_XTAL_DELAY_USB_V1				BIT(16)
#define BIT_XTAL_DELAY_DIGI_V1				BIT(15)
#define BIT_XTAL_DELAY_AFE_V1				BIT(14)
#define BIT_XTAL_DRV_RF_LATCH_V3			BIT(13)

#define BIT_SHIFT_XTAL_DRV_DIGI_1_0			11
#define BIT_MASK_XTAL_DRV_DIGI_1_0			0x3
#define BIT_XTAL_DRV_DIGI_1_0(x)			(((x) & BIT_MASK_XTAL_DRV_DIGI_1_0) << BIT_SHIFT_XTAL_DRV_DIGI_1_0)
#define BITS_XTAL_DRV_DIGI_1_0				(BIT_MASK_XTAL_DRV_DIGI_1_0 << BIT_SHIFT_XTAL_DRV_DIGI_1_0)
#define BIT_CLEAR_XTAL_DRV_DIGI_1_0(x)			((x) & (~BITS_XTAL_DRV_DIGI_1_0))
#define BIT_GET_XTAL_DRV_DIGI_1_0(x)			(((x) >> BIT_SHIFT_XTAL_DRV_DIGI_1_0) & BIT_MASK_XTAL_DRV_DIGI_1_0)
#define BIT_SET_XTAL_DRV_DIGI_1_0(x, v)		(BIT_CLEAR_XTAL_DRV_DIGI_1_0(x) | BIT_XTAL_DRV_DIGI_1_0(v))

#define BIT_XTAL_GATED_DIGIN				BIT(10)
#define BIT_XTAL_GATED_DIGIP				BIT(9)

#define BIT_SHIFT_XTAL_DRV_USB_1_0			7
#define BIT_MASK_XTAL_DRV_USB_1_0			0x3
#define BIT_XTAL_DRV_USB_1_0(x)			(((x) & BIT_MASK_XTAL_DRV_USB_1_0) << BIT_SHIFT_XTAL_DRV_USB_1_0)
#define BITS_XTAL_DRV_USB_1_0				(BIT_MASK_XTAL_DRV_USB_1_0 << BIT_SHIFT_XTAL_DRV_USB_1_0)
#define BIT_CLEAR_XTAL_DRV_USB_1_0(x)			((x) & (~BITS_XTAL_DRV_USB_1_0))
#define BIT_GET_XTAL_DRV_USB_1_0(x)			(((x) >> BIT_SHIFT_XTAL_DRV_USB_1_0) & BIT_MASK_XTAL_DRV_USB_1_0)
#define BIT_SET_XTAL_DRV_USB_1_0(x, v)			(BIT_CLEAR_XTAL_DRV_USB_1_0(x) | BIT_XTAL_DRV_USB_1_0(v))

#define BIT_XTAL_GATED_USBN				BIT(6)
#define BIT_XTAL_GATED_USBP				BIT(5)

#define BIT_SHIFT_XTAL_DRV_AFE_1_0			3
#define BIT_MASK_XTAL_DRV_AFE_1_0			0x3
#define BIT_XTAL_DRV_AFE_1_0(x)			(((x) & BIT_MASK_XTAL_DRV_AFE_1_0) << BIT_SHIFT_XTAL_DRV_AFE_1_0)
#define BITS_XTAL_DRV_AFE_1_0				(BIT_MASK_XTAL_DRV_AFE_1_0 << BIT_SHIFT_XTAL_DRV_AFE_1_0)
#define BIT_CLEAR_XTAL_DRV_AFE_1_0(x)			((x) & (~BITS_XTAL_DRV_AFE_1_0))
#define BIT_GET_XTAL_DRV_AFE_1_0(x)			(((x) >> BIT_SHIFT_XTAL_DRV_AFE_1_0) & BIT_MASK_XTAL_DRV_AFE_1_0)
#define BIT_SET_XTAL_DRV_AFE_1_0(x, v)			(BIT_CLEAR_XTAL_DRV_AFE_1_0(x) | BIT_XTAL_DRV_AFE_1_0(v))

#define BIT_XTAL_GATED_AFEN				BIT(2)
#define BIT_XTAL_GATED_AFEP				BIT(1)
#define BIT_XTAL_DRV_RF1_1				BIT(0)

/* 2 REG_ANAPAR_XTAL_2			(Offset 0x1048) */

#define BIT_XTAL_DRV_RF2_LATCH				BIT(6)

#define BIT_SHIFT_XTAL_DRV_RF2_1_0			4
#define BIT_MASK_XTAL_DRV_RF2_1_0			0x3
#define BIT_XTAL_DRV_RF2_1_0(x)			(((x) & BIT_MASK_XTAL_DRV_RF2_1_0) << BIT_SHIFT_XTAL_DRV_RF2_1_0)
#define BITS_XTAL_DRV_RF2_1_0				(BIT_MASK_XTAL_DRV_RF2_1_0 << BIT_SHIFT_XTAL_DRV_RF2_1_0)
#define BIT_CLEAR_XTAL_DRV_RF2_1_0(x)			((x) & (~BITS_XTAL_DRV_RF2_1_0))
#define BIT_GET_XTAL_DRV_RF2_1_0(x)			(((x) >> BIT_SHIFT_XTAL_DRV_RF2_1_0) & BIT_MASK_XTAL_DRV_RF2_1_0)
#define BIT_SET_XTAL_DRV_RF2_1_0(x, v)			(BIT_CLEAR_XTAL_DRV_RF2_1_0(x) | BIT_XTAL_DRV_RF2_1_0(v))

#define BIT_XTAL_GATED_RF2N				BIT(3)
#define BIT_XTAL_GATED_RF2P				BIT(2)
#define BIT_XTAL_LDO_DI				BIT(1)
#define BIT_XTAL_SEL_PWR				BIT(0)

/* 2 REG_ANAPAR_XTAL_AAC			(Offset 0x104F) */

#define BIT_EN_XTAL_AAC_TRIG				BIT(28)
#define BIT_EN_XTAL_AAC				BIT(27)
#define BIT_EN_XTAL_AAC_DIGI				BIT(26)

#define BIT_SHIFT_GM_MANUAL_4_0			21
#define BIT_MASK_GM_MANUAL_4_0				0x1f
#define BIT_GM_MANUAL_4_0(x)				(((x) & BIT_MASK_GM_MANUAL_4_0) << BIT_SHIFT_GM_MANUAL_4_0)
#define BITS_GM_MANUAL_4_0				(BIT_MASK_GM_MANUAL_4_0 << BIT_SHIFT_GM_MANUAL_4_0)
#define BIT_CLEAR_GM_MANUAL_4_0(x)			((x) & (~BITS_GM_MANUAL_4_0))
#define BIT_GET_GM_MANUAL_4_0(x)			(((x) >> BIT_SHIFT_GM_MANUAL_4_0) & BIT_MASK_GM_MANUAL_4_0)
#define BIT_SET_GM_MANUAL_4_0(x, v)			(BIT_CLEAR_GM_MANUAL_4_0(x) | BIT_GM_MANUAL_4_0(v))


#define BIT_SHIFT_GM_STUP_4_0				16
#define BIT_MASK_GM_STUP_4_0				0x1f
#define BIT_GM_STUP_4_0(x)				(((x) & BIT_MASK_GM_STUP_4_0) << BIT_SHIFT_GM_STUP_4_0)
#define BITS_GM_STUP_4_0				(BIT_MASK_GM_STUP_4_0 << BIT_SHIFT_GM_STUP_4_0)
#define BIT_CLEAR_GM_STUP_4_0(x)			((x) & (~BITS_GM_STUP_4_0))
#define BIT_GET_GM_STUP_4_0(x)				(((x) >> BIT_SHIFT_GM_STUP_4_0) & BIT_MASK_GM_STUP_4_0)
#define BIT_SET_GM_STUP_4_0(x, v)			(BIT_CLEAR_GM_STUP_4_0(x) | BIT_GM_STUP_4_0(v))


#define BIT_SHIFT_XTAL_CK_SET_2_0			13
#define BIT_MASK_XTAL_CK_SET_2_0			0x7
#define BIT_XTAL_CK_SET_2_0(x)				(((x) & BIT_MASK_XTAL_CK_SET_2_0) << BIT_SHIFT_XTAL_CK_SET_2_0)
#define BITS_XTAL_CK_SET_2_0				(BIT_MASK_XTAL_CK_SET_2_0 << BIT_SHIFT_XTAL_CK_SET_2_0)
#define BIT_CLEAR_XTAL_CK_SET_2_0(x)			((x) & (~BITS_XTAL_CK_SET_2_0))
#define BIT_GET_XTAL_CK_SET_2_0(x)			(((x) >> BIT_SHIFT_XTAL_CK_SET_2_0) & BIT_MASK_XTAL_CK_SET_2_0)
#define BIT_SET_XTAL_CK_SET_2_0(x, v)			(BIT_CLEAR_XTAL_CK_SET_2_0(x) | BIT_XTAL_CK_SET_2_0(v))


#define BIT_SHIFT_GM_INIT_4_0				8
#define BIT_MASK_GM_INIT_4_0				0x1f
#define BIT_GM_INIT_4_0(x)				(((x) & BIT_MASK_GM_INIT_4_0) << BIT_SHIFT_GM_INIT_4_0)
#define BITS_GM_INIT_4_0				(BIT_MASK_GM_INIT_4_0 << BIT_SHIFT_GM_INIT_4_0)
#define BIT_CLEAR_GM_INIT_4_0(x)			((x) & (~BITS_GM_INIT_4_0))
#define BIT_GET_GM_INIT_4_0(x)				(((x) >> BIT_SHIFT_GM_INIT_4_0) & BIT_MASK_GM_INIT_4_0)
#define BIT_SET_GM_INIT_4_0(x, v)			(BIT_CLEAR_GM_INIT_4_0(x) | BIT_GM_INIT_4_0(v))

#define BIT_GM_STEP					BIT(7)

#define BIT_SHIFT_XAAC_GM_OFFSET_4_0			2
#define BIT_MASK_XAAC_GM_OFFSET_4_0			0x1f
#define BIT_XAAC_GM_OFFSET_4_0(x)			(((x) & BIT_MASK_XAAC_GM_OFFSET_4_0) << BIT_SHIFT_XAAC_GM_OFFSET_4_0)
#define BITS_XAAC_GM_OFFSET_4_0			(BIT_MASK_XAAC_GM_OFFSET_4_0 << BIT_SHIFT_XAAC_GM_OFFSET_4_0)
#define BIT_CLEAR_XAAC_GM_OFFSET_4_0(x)		((x) & (~BITS_XAAC_GM_OFFSET_4_0))
#define BIT_GET_XAAC_GM_OFFSET_4_0(x)			(((x) >> BIT_SHIFT_XAAC_GM_OFFSET_4_0) & BIT_MASK_XAAC_GM_OFFSET_4_0)
#define BIT_SET_XAAC_GM_OFFSET_4_0(x, v)		(BIT_CLEAR_XAAC_GM_OFFSET_4_0(x) | BIT_XAAC_GM_OFFSET_4_0(v))

#define BIT_OFFSET_PLUS				BIT(1)
#define BIT_RESET_N					BIT(0)

/* 2 REG_ANAPAR_XTAL_R_ONLY			(Offset 0x1050) */

#define BIT_XTAL_PKDET_OUT				BIT(6)

#define BIT_SHIFT_XTAL_GM_AAC_4_0			1
#define BIT_MASK_XTAL_GM_AAC_4_0			0x1f
#define BIT_XTAL_GM_AAC_4_0(x)				(((x) & BIT_MASK_XTAL_GM_AAC_4_0) << BIT_SHIFT_XTAL_GM_AAC_4_0)
#define BITS_XTAL_GM_AAC_4_0				(BIT_MASK_XTAL_GM_AAC_4_0 << BIT_SHIFT_XTAL_GM_AAC_4_0)
#define BIT_CLEAR_XTAL_GM_AAC_4_0(x)			((x) & (~BITS_XTAL_GM_AAC_4_0))
#define BIT_GET_XTAL_GM_AAC_4_0(x)			(((x) >> BIT_SHIFT_XTAL_GM_AAC_4_0) & BIT_MASK_XTAL_GM_AAC_4_0)
#define BIT_SET_XTAL_GM_AAC_4_0(x, v)			(BIT_CLEAR_XTAL_GM_AAC_4_0(x) | BIT_XTAL_GM_AAC_4_0(v))

#define BIT_XAAC_READY					BIT(0)

/* 2 REG_CPHY_LDO				(Offset 0x1054) */


#define BIT_SHIFT_CPHY_LDO_PD				12
#define BIT_MASK_CPHY_LDO_PD				0x3
#define BIT_CPHY_LDO_PD(x)				(((x) & BIT_MASK_CPHY_LDO_PD) << BIT_SHIFT_CPHY_LDO_PD)
#define BITS_CPHY_LDO_PD				(BIT_MASK_CPHY_LDO_PD << BIT_SHIFT_CPHY_LDO_PD)
#define BIT_CLEAR_CPHY_LDO_PD(x)			((x) & (~BITS_CPHY_LDO_PD))
#define BIT_GET_CPHY_LDO_PD(x)				(((x) >> BIT_SHIFT_CPHY_LDO_PD) & BIT_MASK_CPHY_LDO_PD)
#define BIT_SET_CPHY_LDO_PD(x, v)			(BIT_CLEAR_CPHY_LDO_PD(x) | BIT_CPHY_LDO_PD(v))


#define BIT_SHIFT_CPHY_LDO_SR				10
#define BIT_MASK_CPHY_LDO_SR				0x3
#define BIT_CPHY_LDO_SR(x)				(((x) & BIT_MASK_CPHY_LDO_SR) << BIT_SHIFT_CPHY_LDO_SR)
#define BITS_CPHY_LDO_SR				(BIT_MASK_CPHY_LDO_SR << BIT_SHIFT_CPHY_LDO_SR)
#define BIT_CLEAR_CPHY_LDO_SR(x)			((x) & (~BITS_CPHY_LDO_SR))
#define BIT_GET_CPHY_LDO_SR(x)				(((x) >> BIT_SHIFT_CPHY_LDO_SR) & BIT_MASK_CPHY_LDO_SR)
#define BIT_SET_CPHY_LDO_SR(x, v)			(BIT_CLEAR_CPHY_LDO_SR(x) | BIT_CPHY_LDO_SR(v))


#define BIT_SHIFT_CPHY_LDO_TUNEREF			8
#define BIT_MASK_CPHY_LDO_TUNEREF			0x3
#define BIT_CPHY_LDO_TUNEREF(x)			(((x) & BIT_MASK_CPHY_LDO_TUNEREF) << BIT_SHIFT_CPHY_LDO_TUNEREF)
#define BITS_CPHY_LDO_TUNEREF				(BIT_MASK_CPHY_LDO_TUNEREF << BIT_SHIFT_CPHY_LDO_TUNEREF)
#define BIT_CLEAR_CPHY_LDO_TUNEREF(x)			((x) & (~BITS_CPHY_LDO_TUNEREF))
#define BIT_GET_CPHY_LDO_TUNEREF(x)			(((x) >> BIT_SHIFT_CPHY_LDO_TUNEREF) & BIT_MASK_CPHY_LDO_TUNEREF)
#define BIT_SET_CPHY_LDO_TUNEREF(x, v)			(BIT_CLEAR_CPHY_LDO_TUNEREF(x) | BIT_CPHY_LDO_TUNEREF(v))


#define BIT_SHIFT_CPHY_LDO_TUNE_VO			5
#define BIT_MASK_CPHY_LDO_TUNE_VO			0x7
#define BIT_CPHY_LDO_TUNE_VO(x)			(((x) & BIT_MASK_CPHY_LDO_TUNE_VO) << BIT_SHIFT_CPHY_LDO_TUNE_VO)
#define BITS_CPHY_LDO_TUNE_VO				(BIT_MASK_CPHY_LDO_TUNE_VO << BIT_SHIFT_CPHY_LDO_TUNE_VO)
#define BIT_CLEAR_CPHY_LDO_TUNE_VO(x)			((x) & (~BITS_CPHY_LDO_TUNE_VO))
#define BIT_GET_CPHY_LDO_TUNE_VO(x)			(((x) >> BIT_SHIFT_CPHY_LDO_TUNE_VO) & BIT_MASK_CPHY_LDO_TUNE_VO)
#define BIT_SET_CPHY_LDO_TUNE_VO(x, v)			(BIT_CLEAR_CPHY_LDO_TUNE_VO(x) | BIT_CPHY_LDO_TUNE_VO(v))


#define BIT_SHIFT_CPHY_LDO_OCP_VTH			2
#define BIT_MASK_CPHY_LDO_OCP_VTH			0x7
#define BIT_CPHY_LDO_OCP_VTH(x)			(((x) & BIT_MASK_CPHY_LDO_OCP_VTH) << BIT_SHIFT_CPHY_LDO_OCP_VTH)
#define BITS_CPHY_LDO_OCP_VTH				(BIT_MASK_CPHY_LDO_OCP_VTH << BIT_SHIFT_CPHY_LDO_OCP_VTH)
#define BIT_CLEAR_CPHY_LDO_OCP_VTH(x)			((x) & (~BITS_CPHY_LDO_OCP_VTH))
#define BIT_GET_CPHY_LDO_OCP_VTH(x)			(((x) >> BIT_SHIFT_CPHY_LDO_OCP_VTH) & BIT_MASK_CPHY_LDO_OCP_VTH)
#define BIT_SET_CPHY_LDO_OCP_VTH(x, v)			(BIT_CLEAR_CPHY_LDO_OCP_VTH(x) | BIT_CPHY_LDO_OCP_VTH(v))


#define BIT_SHIFT_VREF_LDO_OK				0
#define BIT_MASK_VREF_LDO_OK				0x3
#define BIT_VREF_LDO_OK(x)				(((x) & BIT_MASK_VREF_LDO_OK) << BIT_SHIFT_VREF_LDO_OK)
#define BITS_VREF_LDO_OK				(BIT_MASK_VREF_LDO_OK << BIT_SHIFT_VREF_LDO_OK)
#define BIT_CLEAR_VREF_LDO_OK(x)			((x) & (~BITS_VREF_LDO_OK))
#define BIT_GET_VREF_LDO_OK(x)				(((x) >> BIT_SHIFT_VREF_LDO_OK) & BIT_MASK_VREF_LDO_OK)
#define BIT_SET_VREF_LDO_OK(x, v)			(BIT_CLEAR_VREF_LDO_OK(x) | BIT_VREF_LDO_OK(v))


/* 2 REG_CPHY_BG				(Offset 0x1058) */

#define BIT_TXBCN_OK_PORT4				BIT(31)
#define BIT_ATIMEND_PORT4				BIT(31)
#define BIT_TXBCN_OK_PORT3				BIT(30)
#define BIT_ATIMEND_PORT3				BIT(30)
#define BIT_TXBCN_OK_PORT2				BIT(29)
#define BIT_ATIMEND_PORT2				BIT(29)
#define BIT_TXBCN_OK_PORT1				BIT(28)
#define BIT_ATIMEND_PORT1				BIT(28)
#define BIT_TXBCN15OK					BIT(23)
#define BIT_BCNDMAINT15				BIT(23)
#define BIT_ATIMEND15					BIT(23)
#define BIT_TXBCN14OK					BIT(22)
#define BIT_BCNDMAINT14				BIT(22)
#define BIT_ATIMEND14					BIT(22)
#define BIT_TXBCN13OK					BIT(21)
#define BIT_BCNDMAINT13				BIT(21)
#define BIT_ATIMEND13					BIT(21)
#define BIT_TXBCN12OK					BIT(20)
#define BIT_BCNDMAINT12				BIT(20)
#define BIT_ATIMEND12					BIT(20)
#define BIT_TXBCN11OK					BIT(19)
#define BIT_BCNDMAINT11				BIT(19)
#define BIT_ATIMEND11					BIT(19)
#define BIT_TXBCN10OK					BIT(18)
#define BIT_BCNDMAINT10				BIT(18)
#define BIT_ATIMEND10					BIT(18)
#define BIT_TXBCN9OK					BIT(17)
#define BIT_BCNDMAINT9					BIT(17)
#define BIT_ATIMEND9					BIT(17)
#define BIT_TXBCN8OK					BIT(16)
#define BIT_BCNDMAINT8					BIT(16)
#define BIT_ATIMEND8					BIT(16)
#define BIT_BCNDERR_PORT4				BIT(15)
#define BIT_BCNDERR_PORT3				BIT(14)
#define BIT_BCNDERR_PORT2				BIT(13)
#define BIT_BCNDERR_PORT1				BIT(12)
#define BIT_TXBCN15ERR					BIT(7)
#define BIT_BCNDERR15					BIT(7)
#define BIT_TXBCN14ERR					BIT(6)
#define BIT_BCNDERR14					BIT(6)
#define BIT_TXBCN13ERR					BIT(5)
#define BIT_BCNDERR13					BIT(5)
#define BIT_PS_TIMER_EARLY_INT_5			BIT(5)
#define BIT_TXBCN12ERR					BIT(4)
#define BIT_BCNDERR12					BIT(4)
#define BIT_PS_TIMER_EARLY_INT_4			BIT(4)
#define BIT_TXBCN11ERR					BIT(3)
#define BIT_BCNDERR11					BIT(3)
#define BIT_PS_TIMER_EARLY_INT_3			BIT(3)
#define BIT_TXBCN10ERR					BIT(2)
#define BIT_BCNDERR10					BIT(2)
#define BIT_PS_TIMER_EARLY_INT_2			BIT(2)
#define BIT_TXBCN9ERR					BIT(1)
#define BIT_BCNDERR9					BIT(1)
#define BIT_PS_TIMER_EARLY_INT_1			BIT(1)

#define BIT_SHIFT_BG					0
#define BIT_MASK_BG					0x7
#define BIT_BG(x)					(((x) & BIT_MASK_BG) << BIT_SHIFT_BG)
#define BITS_BG					(BIT_MASK_BG << BIT_SHIFT_BG)
#define BIT_CLEAR_BG(x)				((x) & (~BITS_BG))
#define BIT_GET_BG(x)					(((x) >> BIT_SHIFT_BG) & BIT_MASK_BG)
#define BIT_SET_BG(x, v)				(BIT_CLEAR_BG(x) | BIT_BG(v))

#define BIT_TXBCN8ERR					BIT(0)
#define BIT_BCNDERR8					BIT(0)
#define BIT_PS_TIMER_EARLY_INT_0			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SYS_CFG5				(Offset 0x1070) */

#define BIT_LPS_STATUS					BIT(3)
#define BIT_HCI_TXDMA_BUSY				BIT(2)
#define BIT_HCI_TXDMA_ALLOW				BIT(1)
#define BIT_FW_CTRL_HCI_TXDMA_EN			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */

#define BIT_WDT_AUTO_MODE				BIT(22)
#define BIT_WDT_PLATFORM_EN				BIT(21)
#define BIT_WDT_CPU_EN					BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */

#define BIT_WDT_OPT_IOWRAPPER				BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */

#define BIT_ANA_PORT_IDLE				BIT(18)
#define BIT_MAC_PORT_IDLE				BIT(17)
#define BIT_WL_PLATFORM_RST				BIT(16)
#define BIT_WL_SECURITY_CLK				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */

#define BIT_DDMA_EN					BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPU_DMEM_CON			(Offset 0x1080) */


#define BIT_SHIFT_CPU_DMEM_CON				0
#define BIT_MASK_CPU_DMEM_CON				0xff
#define BIT_CPU_DMEM_CON(x)				(((x) & BIT_MASK_CPU_DMEM_CON) << BIT_SHIFT_CPU_DMEM_CON)
#define BITS_CPU_DMEM_CON				(BIT_MASK_CPU_DMEM_CON << BIT_SHIFT_CPU_DMEM_CON)
#define BIT_CLEAR_CPU_DMEM_CON(x)			((x) & (~BITS_CPU_DMEM_CON))
#define BIT_GET_CPU_DMEM_CON(x)			(((x) >> BIT_SHIFT_CPU_DMEM_CON) & BIT_MASK_CPU_DMEM_CON)
#define BIT_SET_CPU_DMEM_CON(x, v)			(BIT_CLEAR_CPU_DMEM_CON(x) | BIT_CPU_DMEM_CON(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BOOT_REASON				(Offset 0x1088) */


#define BIT_SHIFT_BOOT_REASON_V1			0
#define BIT_MASK_BOOT_REASON_V1			0x7
#define BIT_BOOT_REASON_V1(x)				(((x) & BIT_MASK_BOOT_REASON_V1) << BIT_SHIFT_BOOT_REASON_V1)
#define BITS_BOOT_REASON_V1				(BIT_MASK_BOOT_REASON_V1 << BIT_SHIFT_BOOT_REASON_V1)
#define BIT_CLEAR_BOOT_REASON_V1(x)			((x) & (~BITS_BOOT_REASON_V1))
#define BIT_GET_BOOT_REASON_V1(x)			(((x) >> BIT_SHIFT_BOOT_REASON_V1) & BIT_MASK_BOOT_REASON_V1)
#define BIT_SET_BOOT_REASON_V1(x, v)			(BIT_CLEAR_BOOT_REASON_V1(x) | BIT_BOOT_REASON_V1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_ATIM_END_INT16_MSK				BIT(32)
#define BIT_ATIM_END_INT15_MSK				BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_DATA_FW_READY				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_ATIM_END_INT14_MSK				BIT(30)
#define BIT_ATIM_END_INT13_MSK				BIT(29)
#define BIT_ATIM_END_INT12_MSK				BIT(28)
#define BIT_ATIM_END_INT11_MSK				BIT(27)
#define BIT_ATIM_END_INT10_MSK				BIT(26)
#define BIT_ATIM_END_INT9_MSK				BIT(25)
#define BIT_ATIM_END_INT8_MSK				BIT(24)
#define BIT_TX_BCN_ERR_INT15_MSK			BIT(23)
#define BIT_TX_BCN_ERR_INT14_MSK			BIT(22)
#define BIT_TX_BCN_ERR_INT13_MSK			BIT(21)
#define BIT_TX_BCN_ERR_INT12_MSK			BIT(20)
#define BIT_TX_BCN_ERR_INT11_MSK			BIT(19)
#define BIT_TX_BCN_ERR_INT10_MSK			BIT(18)
#define BIT_TX_BCN_ERR_INT9_MSK			BIT(17)
#define BIT_TX_BCN_ERR_INT8_MSK			BIT(16)
#define BIT_TX_BCN_OK_INT15_MSK			BIT(15)
#define BIT_TX_BCN_OK_INT14_MSK			BIT(14)
#define BIT_TX_BCN_OK_INT13_MSK			BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_WDT_SYS_RST				BIT(13)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_TX_BCN_OK_INT12_MSK			BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_WDT_ENABLE					BIT(12)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_TX_BCN_OK_INT11_MSK			BIT(11)
#define BIT_TX_BCN_OK_INT10_MSK			BIT(10)
#define BIT_TX_BCN_OK_INT9_MSK				BIT(9)
#define BIT_TX_BCN_OK_INT8_MSK				BIT(8)
#define BIT_BCN_DMA_INT15_MSK				BIT(7)
#define BIT_BCN_DMA_INT14_MSK				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */


#define BIT_SHIFT_BOOT_SEL				6
#define BIT_MASK_BOOT_SEL				0x3
#define BIT_BOOT_SEL(x)				(((x) & BIT_MASK_BOOT_SEL) << BIT_SHIFT_BOOT_SEL)
#define BITS_BOOT_SEL					(BIT_MASK_BOOT_SEL << BIT_SHIFT_BOOT_SEL)
#define BIT_CLEAR_BOOT_SEL(x)				((x) & (~BITS_BOOT_SEL))
#define BIT_GET_BOOT_SEL(x)				(((x) >> BIT_SHIFT_BOOT_SEL) & BIT_MASK_BOOT_SEL)
#define BIT_SET_BOOT_SEL(x, v)				(BIT_CLEAR_BOOT_SEL(x) | BIT_BOOT_SEL(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_BCN_DMA_INT13_MSK				BIT(5)
#define BIT_BCN_DMA_INT12_MSK				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_CLK_SEL					BIT(4)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_BCN_DMA_INT11_MSK				BIT(3)
#define BIT_BCN_DMA_INT10_MSK				BIT(2)
#define BIT_BCN_DMA_INT9_MSK				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_DATA_PLATFORM_RST				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR4				(Offset 0x1090) */

#define BIT_BCN_DMA_INT8_MSK				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL0			(Offset 0x1090) */

#define BIT_DATA_CPU_RST				BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_TX_BCN_ERR_INT15				BIT(23)
#define BIT_TX_BCN_ERR_INT14				BIT(22)
#define BIT_TX_BCN_ERR_INT13				BIT(21)
#define BIT_TX_BCN_ERR_INT12				BIT(20)
#define BIT_TX_BCN_ERR_INT11				BIT(19)
#define BIT_TX_BCN_ERR_INT10				BIT(18)
#define BIT_TX_BCN_ERR_INT9				BIT(17)
#define BIT_TX_BCN_ERR_INT8				BIT(16)
#define BIT_TX_BCN_OK_INT15				BIT(15)
#define BIT_TX_BCN_OK_INT14				BIT(14)
#define BIT_TX_BCN_OK_INT13				BIT(13)
#define BIT_TX_BCN_OK_INT12				BIT(12)
#define BIT_TX_BCN_OK_INT11				BIT(11)
#define BIT_TX_BCN_OK_INT10				BIT(10)
#define BIT_TX_BCN_OK_INT9				BIT(9)
#define BIT_TX_BCN_OK_INT8				BIT(8)
#define BIT_BCN_DMA_INT15				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_HOST_INTERFACE_IO_PATH			BIT(7)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT14				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_TXDMA_OFLD				BIT(6)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT13				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_RXDMA_OFLD				BIT(5)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT12				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_HCI_DMA_TX				BIT(4)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT11				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_HCI_DMA_RX				BIT(3)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT10				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_AXI_DMA_TX				BIT(2)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT9				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_AXI_DMA_RX				BIT(1)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR4				(Offset 0x1094) */

#define BIT_BCN_DMA_INT8				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DATA_CPU_CTL1			(Offset 0x1094) */

#define BIT_EN_PKT_ENG					BIT(0)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HIMR5				(Offset 0x1098) */

#define BIT_BCN_QDMA_ERR_INT15_MSK			BIT(7)
#define BIT_BCN_QDMA_ERR_INT14_MSK			BIT(6)
#define BIT_BCN_QDMA_ERR_INT13_MSK			BIT(5)
#define BIT_BCN_QDMA_ERR_INT12_MSK			BIT(4)
#define BIT_BCN_QDMA_ERR_INT11_MSK			BIT(3)
#define BIT_BCN_QDMA_ERR_INT10_MSK			BIT(2)
#define BIT_BCN_QDMA_ERR_INT9_MSK			BIT(1)
#define BIT_BCN_QDMA_ERR_INT8_MSK			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STOP_HIMR			(Offset 0x1098) */


#define BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK		0
#define BIT_MASK_NTH_TXDMA_STOP_INT_MSK		0x1ffff
#define BIT_NTH_TXDMA_STOP_INT_MSK(x)			(((x) & BIT_MASK_NTH_TXDMA_STOP_INT_MSK) << BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK)
#define BITS_NTH_TXDMA_STOP_INT_MSK			(BIT_MASK_NTH_TXDMA_STOP_INT_MSK << BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK)
#define BIT_CLEAR_NTH_TXDMA_STOP_INT_MSK(x)		((x) & (~BITS_NTH_TXDMA_STOP_INT_MSK))
#define BIT_GET_NTH_TXDMA_STOP_INT_MSK(x)		(((x) >> BIT_SHIFT_NTH_TXDMA_STOP_INT_MSK) & BIT_MASK_NTH_TXDMA_STOP_INT_MSK)
#define BIT_SET_NTH_TXDMA_STOP_INT_MSK(x, v)		(BIT_CLEAR_NTH_TXDMA_STOP_INT_MSK(x) | BIT_NTH_TXDMA_STOP_INT_MSK(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HISR5				(Offset 0x109C) */

#define BIT_BCN_QDMA_ERR_INT15				BIT(7)
#define BIT_BCN_QDMA_ERR_INT14				BIT(6)
#define BIT_BCN_QDMA_ERR_INT13				BIT(5)
#define BIT_BCN_QDMA_ERR_INT12				BIT(4)
#define BIT_BCN_QDMA_ERR_INT11				BIT(3)
#define BIT_BCN_QDMA_ERR_INT10				BIT(2)
#define BIT_BCN_QDMA_ERR_INT9				BIT(1)
#define BIT_BCN_QDMA_ERR_INT8				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TXDMA_STOP_HISR			(Offset 0x109C) */


#define BIT_SHIFT_NTH_TXDMA_STOP_INT			0
#define BIT_MASK_NTH_TXDMA_STOP_INT			0x1ffff
#define BIT_NTH_TXDMA_STOP_INT(x)			(((x) & BIT_MASK_NTH_TXDMA_STOP_INT) << BIT_SHIFT_NTH_TXDMA_STOP_INT)
#define BITS_NTH_TXDMA_STOP_INT			(BIT_MASK_NTH_TXDMA_STOP_INT << BIT_SHIFT_NTH_TXDMA_STOP_INT)
#define BIT_CLEAR_NTH_TXDMA_STOP_INT(x)		((x) & (~BITS_NTH_TXDMA_STOP_INT))
#define BIT_GET_NTH_TXDMA_STOP_INT(x)			(((x) >> BIT_SHIFT_NTH_TXDMA_STOP_INT) & BIT_MASK_NTH_TXDMA_STOP_INT)
#define BIT_SET_NTH_TXDMA_STOP_INT(x, v)		(BIT_CLEAR_NTH_TXDMA_STOP_INT(x) | BIT_NTH_TXDMA_STOP_INT(v))


/* 2 REG_TXDMA_START_HIMR			(Offset 0x10A0) */


#define BIT_SHIFT_NTH_TXDMA_START_INT_MSK		0
#define BIT_MASK_NTH_TXDMA_START_INT_MSK		0x1ffff
#define BIT_NTH_TXDMA_START_INT_MSK(x)			(((x) & BIT_MASK_NTH_TXDMA_START_INT_MSK) << BIT_SHIFT_NTH_TXDMA_START_INT_MSK)
#define BITS_NTH_TXDMA_START_INT_MSK			(BIT_MASK_NTH_TXDMA_START_INT_MSK << BIT_SHIFT_NTH_TXDMA_START_INT_MSK)
#define BIT_CLEAR_NTH_TXDMA_START_INT_MSK(x)		((x) & (~BITS_NTH_TXDMA_START_INT_MSK))
#define BIT_GET_NTH_TXDMA_START_INT_MSK(x)		(((x) >> BIT_SHIFT_NTH_TXDMA_START_INT_MSK) & BIT_MASK_NTH_TXDMA_START_INT_MSK)
#define BIT_SET_NTH_TXDMA_START_INT_MSK(x, v)		(BIT_CLEAR_NTH_TXDMA_START_INT_MSK(x) | BIT_NTH_TXDMA_START_INT_MSK(v))


/* 2 REG_TXDMA_START_HISR			(Offset 0x10A4) */


#define BIT_SHIFT_NTH_TXDMA_START_INT			0
#define BIT_MASK_NTH_TXDMA_START_INT			0x1ffff
#define BIT_NTH_TXDMA_START_INT(x)			(((x) & BIT_MASK_NTH_TXDMA_START_INT) << BIT_SHIFT_NTH_TXDMA_START_INT)
#define BITS_NTH_TXDMA_START_INT			(BIT_MASK_NTH_TXDMA_START_INT << BIT_SHIFT_NTH_TXDMA_START_INT)
#define BIT_CLEAR_NTH_TXDMA_START_INT(x)		((x) & (~BITS_NTH_TXDMA_START_INT))
#define BIT_GET_NTH_TXDMA_START_INT(x)			(((x) >> BIT_SHIFT_NTH_TXDMA_START_INT) & BIT_MASK_NTH_TXDMA_START_INT)
#define BIT_SET_NTH_TXDMA_START_INT(x, v)		(BIT_CLEAR_NTH_TXDMA_START_INT(x) | BIT_NTH_TXDMA_START_INT(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_NFCPAD_CTRL				(Offset 0x10A8) */

#define BIT_PAD_SHUTDW					BIT(18)
#define BIT_SYSON_NFC_PAD				BIT(17)
#define BIT_NFC_INT_PAD_CTRL				BIT(16)
#define BIT_NFC_RFDIS_PAD_CTRL				BIT(15)
#define BIT_NFC_CLK_PAD_CTRL				BIT(14)
#define BIT_NFC_DATA_PAD_CTRL				BIT(13)
#define BIT_NFC_PAD_PULL_CTRL				BIT(12)

#define BIT_SHIFT_NFCPAD_IO_SEL			8
#define BIT_MASK_NFCPAD_IO_SEL				0xf
#define BIT_NFCPAD_IO_SEL(x)				(((x) & BIT_MASK_NFCPAD_IO_SEL) << BIT_SHIFT_NFCPAD_IO_SEL)
#define BITS_NFCPAD_IO_SEL				(BIT_MASK_NFCPAD_IO_SEL << BIT_SHIFT_NFCPAD_IO_SEL)
#define BIT_CLEAR_NFCPAD_IO_SEL(x)			((x) & (~BITS_NFCPAD_IO_SEL))
#define BIT_GET_NFCPAD_IO_SEL(x)			(((x) >> BIT_SHIFT_NFCPAD_IO_SEL) & BIT_MASK_NFCPAD_IO_SEL)
#define BIT_SET_NFCPAD_IO_SEL(x, v)			(BIT_CLEAR_NFCPAD_IO_SEL(x) | BIT_NFCPAD_IO_SEL(v))


#define BIT_SHIFT_NFCPAD_OUT				4
#define BIT_MASK_NFCPAD_OUT				0xf
#define BIT_NFCPAD_OUT(x)				(((x) & BIT_MASK_NFCPAD_OUT) << BIT_SHIFT_NFCPAD_OUT)
#define BITS_NFCPAD_OUT				(BIT_MASK_NFCPAD_OUT << BIT_SHIFT_NFCPAD_OUT)
#define BIT_CLEAR_NFCPAD_OUT(x)			((x) & (~BITS_NFCPAD_OUT))
#define BIT_GET_NFCPAD_OUT(x)				(((x) >> BIT_SHIFT_NFCPAD_OUT) & BIT_MASK_NFCPAD_OUT)
#define BIT_SET_NFCPAD_OUT(x, v)			(BIT_CLEAR_NFCPAD_OUT(x) | BIT_NFCPAD_OUT(v))


#define BIT_SHIFT_NFCPAD_IN				0
#define BIT_MASK_NFCPAD_IN				0xf
#define BIT_NFCPAD_IN(x)				(((x) & BIT_MASK_NFCPAD_IN) << BIT_SHIFT_NFCPAD_IN)
#define BITS_NFCPAD_IN					(BIT_MASK_NFCPAD_IN << BIT_SHIFT_NFCPAD_IN)
#define BIT_CLEAR_NFCPAD_IN(x)				((x) & (~BITS_NFCPAD_IN))
#define BIT_GET_NFCPAD_IN(x)				(((x) >> BIT_SHIFT_NFCPAD_IN) & BIT_MASK_NFCPAD_IN)
#define BIT_SET_NFCPAD_IN(x, v)			(BIT_CLEAR_NFCPAD_IN(x) | BIT_NFCPAD_IN(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR2				(Offset 0x10B0) */

#define BIT_BCNDMAINT_P4_MSK				BIT(31)
#define BIT_BCNDMAINT_P4				BIT(31)
#define BIT_BCNDMAINT_P3_MSK				BIT(30)
#define BIT_BCNDMAINT_P3				BIT(30)
#define BIT_BCNDMAINT_P2_MSK				BIT(29)
#define BIT_BCNDMAINT_P2				BIT(29)
#define BIT_BCNDMAINT_P1_MSK				BIT(28)
#define BIT_BCNDMAINT_P1				BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR2				(Offset 0x10B0) */

#define BIT_SCH_PHY_TXOP_SIFS_INT_MSK			BIT(23)
#define BIT_SCH_PHY_TXOP_SIFS_INT			BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR2				(Offset 0x10B0) */

#define BIT_ATIMEND7_MSK				BIT(22)
#define BIT_ATIMEND7					BIT(22)
#define BIT_ATIMEND6_MSK				BIT(21)
#define BIT_ATIMEND6					BIT(21)
#define BIT_ATIMEND5_MSK				BIT(20)
#define BIT_ATIMEND5					BIT(20)
#define BIT_ATIMEND4_MSK				BIT(19)
#define BIT_ATIMEND4					BIT(19)
#define BIT_ATIMEND3_MSK				BIT(18)
#define BIT_ATIMEND3					BIT(18)
#define BIT_ATIMEND2_MSK				BIT(17)
#define BIT_ATIMEND2					BIT(17)
#define BIT_ATIMEND1_MSK				BIT(16)
#define BIT_ATIMEND1					BIT(16)
#define BIT_TXBCN7OK_MSK				BIT(14)
#define BIT_TXBCN7OK					BIT(14)
#define BIT_TXBCN6OK_MSK				BIT(13)
#define BIT_TXBCN6OK					BIT(13)
#define BIT_TXBCN5OK_MSK				BIT(12)
#define BIT_TXBCN5OK					BIT(12)
#define BIT_TXBCN4OK_MSK				BIT(11)
#define BIT_TXBCN4OK					BIT(11)
#define BIT_TXBCN3OK_MSK				BIT(10)
#define BIT_TXBCN3OK					BIT(10)
#define BIT_TXBCN2OK_MSK				BIT(9)
#define BIT_TXBCN2OK					BIT(9)
#define BIT_TXBCN1OK_MSK_V1				BIT(8)
#define BIT_TXBCN1OK					BIT(8)
#define BIT_TXBCN7ERR_MSK				BIT(6)
#define BIT_TXBCN7ERR					BIT(6)
#define BIT_TXBCN6ERR_MSK				BIT(5)
#define BIT_TXBCN6ERR					BIT(5)
#define BIT_TXBCN5ERR_MSK				BIT(4)
#define BIT_TXBCN5ERR					BIT(4)
#define BIT_TXBCN4ERR_MSK				BIT(3)
#define BIT_TXBCN4ERR					BIT(3)
#define BIT_TXBCN3ERR_MSK				BIT(2)
#define BIT_TXBCN3ERR					BIT(2)
#define BIT_TXBCN2ERR_MSK				BIT(1)
#define BIT_TXBCN2ERR					BIT(1)
#define BIT_TXBCN1ERR_MSK_V1				BIT(0)
#define BIT_TXBCN1ERR					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_GTINT12_MSK				BIT(24)
#define BIT_GTINT12					BIT(24)
#define BIT_GTINT11_MSK				BIT(23)
#define BIT_GTINT11					BIT(23)
#define BIT_GTINT10_MSK				BIT(22)
#define BIT_GTINT10					BIT(22)
#define BIT_GTINT9_MSK					BIT(21)
#define BIT_GTINT9					BIT(21)
#define BIT_RX_DESC_BUF_FULL_MSK			BIT(20)
#define BIT_RX_DESC_BUF_FULL				BIT(20)
#define BIT_CPHY_LDO_OCP_DET_INT_MSK			BIT(19)
#define BIT_CPHY_LDO_OCP_DET_INT			BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_WDT_PLATFORM_INT_MSK			BIT(18)
#define BIT_WDT_PLATFORM_INT				BIT(18)
#define BIT_WDT_CPU_INT_MSK				BIT(17)
#define BIT_WDT_CPU_INT				BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_SETH2CDOK_MASK				BIT(16)
#define BIT_SETH2CDOK					BIT(16)
#define BIT_H2C_CMD_FULL_MASK				BIT(15)
#define BIT_H2C_CMD_FULL				BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PWR_INT_127_MASK				BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PKT_TRANS_ERR_MASK				BIT(14)
#define BIT_PKT_TRANS_ERR				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_TXSHORTCUT_TXDESUPDATEOK_MASK		BIT(13)
#define BIT_TXSHORTCUT_TXDESUPDATEOK			BIT(13)
#define BIT_TXSHORTCUT_BKUPDATEOK_MASK			BIT(12)
#define BIT_TXSHORTCUT_BKUPDATEOK			BIT(12)
#define BIT_TXSHORTCUT_BEUPDATEOK_MASK			BIT(11)
#define BIT_TXSHORTCUT_BEUPDATEOK			BIT(11)
#define BIT_TXSHORTCUT_VIUPDATEOK_MAS			BIT(10)
#define BIT_TXSHORTCUT_VIUPDATEOK			BIT(10)
#define BIT_TXSHORTCUT_VOUPDATEOK_MASK			BIT(9)
#define BIT_TXSHORTCUT_VOUPDATEOK			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PWR_INT_127_MASK_V1			BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_SEARCH_FAIL_MSK				BIT(8)
#define BIT_SEARCH_FAIL				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PWR_INT_126TO96_MASK			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PWR_INT_127TO96_MASK			BIT(7)
#define BIT_PWR_INT_127TO96				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_PWR_INT_95TO64_MASK			BIT(6)
#define BIT_PWR_INT_95TO64				BIT(6)
#define BIT_PWR_INT_63TO32_MASK			BIT(5)
#define BIT_PWR_INT_63TO32				BIT(5)
#define BIT_PWR_INT_31TO0_MASK				BIT(4)
#define BIT_PWR_INT_31TO0				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_RX_DMA_STUCK_MSK				BIT(3)
#define BIT_RX_DMA_STUCK				BIT(3)
#define BIT_TX_DMA_STUCK_MSK				BIT(2)
#define BIT_TX_DMA_STUCK				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HIMR3				(Offset 0x10B8) */

#define BIT_DDMA0_LP_INT_MSK				BIT(1)
#define BIT_DDMA0_LP_INT				BIT(1)
#define BIT_DDMA0_HP_INT_MSK				BIT(0)
#define BIT_DDMA0_HP_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_HISR3				(Offset 0x10BC) */

#define BIT_PWR_INT_127				BIT(14)
#define BIT_PWR_INT_127_V1				BIT(8)
#define BIT_PWR_INT_126TO96				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SW_MDIO				(Offset 0x10C0) */

#define BIT_DIS_TIMEOUT_IO				BIT(24)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_SW_MDIO				(Offset 0x10C0) */

#define BIT_SUS_PL					BIT(18)
#define BIT_SOP_ESUS					BIT(17)
#define BIT_SOP_DLDO					BIT(16)
#define BIT_R_OCP_ST_CLR				BIT(8)
#define BIT_SW_USB3_MD_SEL				BIT(5)
#define BIT_SW_PCIE_MD_SEL				BIT(4)
#define BIT_SW_MDCK					BIT(2)
#define BIT_SW_MDI					BIT(1)
#define BIT_MDO					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SW_FLUSH				(Offset 0x10C4) */

#define BIT_FLUSH_HOLDN_EN				BIT(25)
#define BIT_FLUSH_WR_EN				BIT(24)
#define BIT_SW_FLASH_CONTROL				BIT(23)
#define BIT_SW_FLASH_WEN_E				BIT(19)
#define BIT_SW_FLASH_HOLDN_E				BIT(18)
#define BIT_SW_FLASH_SO_E				BIT(17)
#define BIT_SW_FLASH_SI_E				BIT(16)
#define BIT_SW_FLASH_SK_O				BIT(13)
#define BIT_SW_FLASH_CEN_O				BIT(12)
#define BIT_SW_FLASH_WEN_O				BIT(11)
#define BIT_SW_FLASH_HOLDN_O				BIT(10)
#define BIT_SW_FLASH_SO_O				BIT(9)
#define BIT_SW_FLASH_SI_O				BIT(8)
#define BIT_SW_FLASH_WEN_I				BIT(3)
#define BIT_SW_FLASH_HOLDN_I				BIT(2)
#define BIT_SW_FLASH_SO_I				BIT(1)
#define BIT_SW_FLASH_SI_I				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_DATA_CPU_WDT_INT_MSK			BIT(31)
#define BIT_OFLD_TXDMA_ERR_MSK				BIT(30)
#define BIT_OFLD_TXDMA_FULL_MSK			BIT(29)
#define BIT_OFLD_RXDMA_OVR_MSK				BIT(28)
#define BIT_OFLD_RXDMA_ERR_MSK				BIT(27)
#define BIT_OFLD_RXDMA_DES_UA_MSK			BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_7			21
#define BIT_MASK_DBG_GPIO_BMUX_7			0x7
#define BIT_DBG_GPIO_BMUX_7(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_7) << BIT_SHIFT_DBG_GPIO_BMUX_7)
#define BITS_DBG_GPIO_BMUX_7				(BIT_MASK_DBG_GPIO_BMUX_7 << BIT_SHIFT_DBG_GPIO_BMUX_7)
#define BIT_CLEAR_DBG_GPIO_BMUX_7(x)			((x) & (~BITS_DBG_GPIO_BMUX_7))
#define BIT_GET_DBG_GPIO_BMUX_7(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_7) & BIT_MASK_DBG_GPIO_BMUX_7)
#define BIT_SET_DBG_GPIO_BMUX_7(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_7(x) | BIT_DBG_GPIO_BMUX_7(v))


#define BIT_SHIFT_DBG_GPIO_BMUX_6			18
#define BIT_MASK_DBG_GPIO_BMUX_6			0x7
#define BIT_DBG_GPIO_BMUX_6(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_6) << BIT_SHIFT_DBG_GPIO_BMUX_6)
#define BITS_DBG_GPIO_BMUX_6				(BIT_MASK_DBG_GPIO_BMUX_6 << BIT_SHIFT_DBG_GPIO_BMUX_6)
#define BIT_CLEAR_DBG_GPIO_BMUX_6(x)			((x) & (~BITS_DBG_GPIO_BMUX_6))
#define BIT_GET_DBG_GPIO_BMUX_6(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_6) & BIT_MASK_DBG_GPIO_BMUX_6)
#define BIT_SET_DBG_GPIO_BMUX_6(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_6(x) | BIT_DBG_GPIO_BMUX_6(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_TXDMAOK_CHANNEL_16_MSK			BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_5			15
#define BIT_MASK_DBG_GPIO_BMUX_5			0x7
#define BIT_DBG_GPIO_BMUX_5(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_5) << BIT_SHIFT_DBG_GPIO_BMUX_5)
#define BITS_DBG_GPIO_BMUX_5				(BIT_MASK_DBG_GPIO_BMUX_5 << BIT_SHIFT_DBG_GPIO_BMUX_5)
#define BIT_CLEAR_DBG_GPIO_BMUX_5(x)			((x) & (~BITS_DBG_GPIO_BMUX_5))
#define BIT_GET_DBG_GPIO_BMUX_5(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_5) & BIT_MASK_DBG_GPIO_BMUX_5)
#define BIT_SET_DBG_GPIO_BMUX_5(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_5(x) | BIT_DBG_GPIO_BMUX_5(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_TXDMAOK_CHANNEL_13_MSK			BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_4			12
#define BIT_MASK_DBG_GPIO_BMUX_4			0x7
#define BIT_DBG_GPIO_BMUX_4(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_4) << BIT_SHIFT_DBG_GPIO_BMUX_4)
#define BITS_DBG_GPIO_BMUX_4				(BIT_MASK_DBG_GPIO_BMUX_4 << BIT_SHIFT_DBG_GPIO_BMUX_4)
#define BIT_CLEAR_DBG_GPIO_BMUX_4(x)			((x) & (~BITS_DBG_GPIO_BMUX_4))
#define BIT_GET_DBG_GPIO_BMUX_4(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_4) & BIT_MASK_DBG_GPIO_BMUX_4)
#define BIT_SET_DBG_GPIO_BMUX_4(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_4(x) | BIT_DBG_GPIO_BMUX_4(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_TXDMAOK_CHANNEL_12_MSK			BIT(12)
#define BIT_TXDMAOK_CHANNEL_11_MSK			BIT(11)
#define BIT_TXDMAOK_CHANNEL_10_MSK			BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_3			9
#define BIT_MASK_DBG_GPIO_BMUX_3			0x7
#define BIT_DBG_GPIO_BMUX_3(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_3) << BIT_SHIFT_DBG_GPIO_BMUX_3)
#define BITS_DBG_GPIO_BMUX_3				(BIT_MASK_DBG_GPIO_BMUX_3 << BIT_SHIFT_DBG_GPIO_BMUX_3)
#define BIT_CLEAR_DBG_GPIO_BMUX_3(x)			((x) & (~BITS_DBG_GPIO_BMUX_3))
#define BIT_GET_DBG_GPIO_BMUX_3(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_3) & BIT_MASK_DBG_GPIO_BMUX_3)
#define BIT_SET_DBG_GPIO_BMUX_3(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_3(x) | BIT_DBG_GPIO_BMUX_3(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_TXDMAOK_CHANNEL_9_MSK			BIT(9)
#define BIT_TXDMAOK_CHANNEL_8_MSK			BIT(8)
#define BIT_TXDMAOK_CHANNEL_7_MSK			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_2			6
#define BIT_MASK_DBG_GPIO_BMUX_2			0x7
#define BIT_DBG_GPIO_BMUX_2(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_2) << BIT_SHIFT_DBG_GPIO_BMUX_2)
#define BITS_DBG_GPIO_BMUX_2				(BIT_MASK_DBG_GPIO_BMUX_2 << BIT_SHIFT_DBG_GPIO_BMUX_2)
#define BIT_CLEAR_DBG_GPIO_BMUX_2(x)			((x) & (~BITS_DBG_GPIO_BMUX_2))
#define BIT_GET_DBG_GPIO_BMUX_2(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_2) & BIT_MASK_DBG_GPIO_BMUX_2)
#define BIT_SET_DBG_GPIO_BMUX_2(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_2(x) | BIT_DBG_GPIO_BMUX_2(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIMR_7				(Offset 0x10C8) */

#define BIT_TXDMAOK_CHANNEL_6_MSK			BIT(6)
#define BIT_TXDMAOK_CHANNEL_5_MSK			BIT(5)
#define BIT_TXDMAOK_CHANNEL_4_MSK			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_DBG_GPIO_BMUX			(Offset 0x10C8) */


#define BIT_SHIFT_DBG_GPIO_BMUX_1			3
#define BIT_MASK_DBG_GPIO_BMUX_1			0x7
#define BIT_DBG_GPIO_BMUX_1(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_1) << BIT_SHIFT_DBG_GPIO_BMUX_1)
#define BITS_DBG_GPIO_BMUX_1				(BIT_MASK_DBG_GPIO_BMUX_1 << BIT_SHIFT_DBG_GPIO_BMUX_1)
#define BIT_CLEAR_DBG_GPIO_BMUX_1(x)			((x) & (~BITS_DBG_GPIO_BMUX_1))
#define BIT_GET_DBG_GPIO_BMUX_1(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_1) & BIT_MASK_DBG_GPIO_BMUX_1)
#define BIT_SET_DBG_GPIO_BMUX_1(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_1(x) | BIT_DBG_GPIO_BMUX_1(v))


#define BIT_SHIFT_DBG_GPIO_BMUX_0			0
#define BIT_MASK_DBG_GPIO_BMUX_0			0x7
#define BIT_DBG_GPIO_BMUX_0(x)				(((x) & BIT_MASK_DBG_GPIO_BMUX_0) << BIT_SHIFT_DBG_GPIO_BMUX_0)
#define BITS_DBG_GPIO_BMUX_0				(BIT_MASK_DBG_GPIO_BMUX_0 << BIT_SHIFT_DBG_GPIO_BMUX_0)
#define BIT_CLEAR_DBG_GPIO_BMUX_0(x)			((x) & (~BITS_DBG_GPIO_BMUX_0))
#define BIT_GET_DBG_GPIO_BMUX_0(x)			(((x) >> BIT_SHIFT_DBG_GPIO_BMUX_0) & BIT_MASK_DBG_GPIO_BMUX_0)
#define BIT_SET_DBG_GPIO_BMUX_0(x, v)			(BIT_CLEAR_DBG_GPIO_BMUX_0(x) | BIT_DBG_GPIO_BMUX_0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HISR_7				(Offset 0x10CC) */

#define BIT_DATA_CPU_WDT_INT				BIT(31)
#define BIT_OFLD_TXDMA_ERR				BIT(30)
#define BIT_OFLD_TXDMA_FULL				BIT(29)
#define BIT_OFLD_RXDMA_OVR				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FPGA_TAG				(Offset 0x10CC) */

#define BIT_WL_DSS_RSTN				BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HISR_7				(Offset 0x10CC) */

#define BIT_OFLD_RXDMA_ERR				BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FPGA_TAG				(Offset 0x10CC) */

#define BIT_WL_DSS_EN_CLK				BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HISR_7				(Offset 0x10CC) */

#define BIT_OFLD_RXDMA_DES_UA				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FPGA_TAG				(Offset 0x10CC) */

#define BIT_WL_DSS_SPEED_EN				BIT(25)
#define BIT_WL_DSS_WIRE_SEL				BIT(24)

#define BIT_SHIFT_WL_DSS_RO_SEL			20
#define BIT_MASK_WL_DSS_RO_SEL				0x7
#define BIT_WL_DSS_RO_SEL(x)				(((x) & BIT_MASK_WL_DSS_RO_SEL) << BIT_SHIFT_WL_DSS_RO_SEL)
#define BITS_WL_DSS_RO_SEL				(BIT_MASK_WL_DSS_RO_SEL << BIT_SHIFT_WL_DSS_RO_SEL)
#define BIT_CLEAR_WL_DSS_RO_SEL(x)			((x) & (~BITS_WL_DSS_RO_SEL))
#define BIT_GET_WL_DSS_RO_SEL(x)			(((x) >> BIT_SHIFT_WL_DSS_RO_SEL) & BIT_MASK_WL_DSS_RO_SEL)
#define BIT_SET_WL_DSS_RO_SEL(x, v)			(BIT_CLEAR_WL_DSS_RO_SEL(x) | BIT_WL_DSS_RO_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HISR_7				(Offset 0x10CC) */

#define BIT_TXDMAOK_CHANNEL_16				BIT(16)
#define BIT_TXDMAOK_CHANNEL_13				BIT(13)
#define BIT_TXDMAOK_CHANNEL_12				BIT(12)
#define BIT_TXDMAOK_CHANNEL_11				BIT(11)
#define BIT_TXDMAOK_CHANNEL_10				BIT(10)
#define BIT_TXDMAOK_CHANNEL_9				BIT(9)
#define BIT_TXDMAOK_CHANNEL_8				BIT(8)
#define BIT_TXDMAOK_CHANNEL_7				BIT(7)
#define BIT_TXDMAOK_CHANNEL_6				BIT(6)
#define BIT_TXDMAOK_CHANNEL_5				BIT(5)
#define BIT_TXDMAOK_CHANNEL_4				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FPGA_TAG				(Offset 0x10CC) */


#define BIT_SHIFT_FPGA_TAG				0
#define BIT_MASK_FPGA_TAG				0xffffffffL
#define BIT_FPGA_TAG(x)				(((x) & BIT_MASK_FPGA_TAG) << BIT_SHIFT_FPGA_TAG)
#define BITS_FPGA_TAG					(BIT_MASK_FPGA_TAG << BIT_SHIFT_FPGA_TAG)
#define BIT_CLEAR_FPGA_TAG(x)				((x) & (~BITS_FPGA_TAG))
#define BIT_GET_FPGA_TAG(x)				(((x) >> BIT_SHIFT_FPGA_TAG) & BIT_MASK_FPGA_TAG)
#define BIT_SET_FPGA_TAG(x, v)				(BIT_CLEAR_FPGA_TAG(x) | BIT_FPGA_TAG(v))


#define BIT_SHIFT_WL_DSS_COUNT_OUT			0
#define BIT_MASK_WL_DSS_COUNT_OUT			0xfffff
#define BIT_WL_DSS_COUNT_OUT(x)			(((x) & BIT_MASK_WL_DSS_COUNT_OUT) << BIT_SHIFT_WL_DSS_COUNT_OUT)
#define BITS_WL_DSS_COUNT_OUT				(BIT_MASK_WL_DSS_COUNT_OUT << BIT_SHIFT_WL_DSS_COUNT_OUT)
#define BIT_CLEAR_WL_DSS_COUNT_OUT(x)			((x) & (~BITS_WL_DSS_COUNT_OUT))
#define BIT_GET_WL_DSS_COUNT_OUT(x)			(((x) >> BIT_SHIFT_WL_DSS_COUNT_OUT) & BIT_MASK_WL_DSS_COUNT_OUT)
#define BIT_SET_WL_DSS_COUNT_OUT(x, v)			(BIT_CLEAR_WL_DSS_COUNT_OUT(x) | BIT_WL_DSS_COUNT_OUT(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2C_PKT_READADDR			(Offset 0x10D0) */


#define BIT_SHIFT_H2C_PKT_READADDR			0
#define BIT_MASK_H2C_PKT_READADDR			0x3ffff
#define BIT_H2C_PKT_READADDR(x)			(((x) & BIT_MASK_H2C_PKT_READADDR) << BIT_SHIFT_H2C_PKT_READADDR)
#define BITS_H2C_PKT_READADDR				(BIT_MASK_H2C_PKT_READADDR << BIT_SHIFT_H2C_PKT_READADDR)
#define BIT_CLEAR_H2C_PKT_READADDR(x)			((x) & (~BITS_H2C_PKT_READADDR))
#define BIT_GET_H2C_PKT_READADDR(x)			(((x) >> BIT_SHIFT_H2C_PKT_READADDR) & BIT_MASK_H2C_PKT_READADDR)
#define BIT_SET_H2C_PKT_READADDR(x, v)			(BIT_CLEAR_H2C_PKT_READADDR(x) | BIT_H2C_PKT_READADDR(v))


/* 2 REG_H2C_PKT_WRITEADDR			(Offset 0x10D4) */


#define BIT_SHIFT_H2C_PKT_WRITEADDR			0
#define BIT_MASK_H2C_PKT_WRITEADDR			0x3ffff
#define BIT_H2C_PKT_WRITEADDR(x)			(((x) & BIT_MASK_H2C_PKT_WRITEADDR) << BIT_SHIFT_H2C_PKT_WRITEADDR)
#define BITS_H2C_PKT_WRITEADDR				(BIT_MASK_H2C_PKT_WRITEADDR << BIT_SHIFT_H2C_PKT_WRITEADDR)
#define BIT_CLEAR_H2C_PKT_WRITEADDR(x)			((x) & (~BITS_H2C_PKT_WRITEADDR))
#define BIT_GET_H2C_PKT_WRITEADDR(x)			(((x) >> BIT_SHIFT_H2C_PKT_WRITEADDR) & BIT_MASK_H2C_PKT_WRITEADDR)
#define BIT_SET_H2C_PKT_WRITEADDR(x, v)		(BIT_CLEAR_H2C_PKT_WRITEADDR(x) | BIT_H2C_PKT_WRITEADDR(v))


/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */

#define BIT_MEM_BB_SD					BIT(17)
#define BIT_MEM_BB_DS					BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */

#define BIT_MEM_DENG_LS				BIT(13)
#define BIT_MEM_DENG_DS				BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */

#define BIT_MEM_BT_DS					BIT(10)
#define BIT_MEM_SDIO_LS				BIT(9)
#define BIT_MEM_SDIO_DS				BIT(8)
#define BIT_MEM_USB_LS					BIT(7)
#define BIT_MEM_USB_DS					BIT(6)
#define BIT_MEM_PCI_LS					BIT(5)
#define BIT_MEM_PCI_DS					BIT(4)
#define BIT_MEM_WLMAC_LS				BIT(3)
#define BIT_MEM_WLMAC_DS				BIT(2)
#define BIT_MEM_WLMCU_LS				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_WL_DSS_CTRL1			(Offset 0x10D8) */


#define BIT_SHIFT_WL_DSS_DATA_IN			0
#define BIT_MASK_WL_DSS_DATA_IN			0xfffff
#define BIT_WL_DSS_DATA_IN(x)				(((x) & BIT_MASK_WL_DSS_DATA_IN) << BIT_SHIFT_WL_DSS_DATA_IN)
#define BITS_WL_DSS_DATA_IN				(BIT_MASK_WL_DSS_DATA_IN << BIT_SHIFT_WL_DSS_DATA_IN)
#define BIT_CLEAR_WL_DSS_DATA_IN(x)			((x) & (~BITS_WL_DSS_DATA_IN))
#define BIT_GET_WL_DSS_DATA_IN(x)			(((x) >> BIT_SHIFT_WL_DSS_DATA_IN) & BIT_MASK_WL_DSS_DATA_IN)
#define BIT_SET_WL_DSS_DATA_IN(x, v)			(BIT_CLEAR_WL_DSS_DATA_IN(x) | BIT_WL_DSS_DATA_IN(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MEM_PWR_CRTL			(Offset 0x10D8) */

#define BIT_MEM_WLMCU_DS				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_WL_DSS_STATUS1			(Offset 0x10DC) */

#define BIT_WL_DSS_READY				BIT(21)
#define BIT_WL_DSS_WSORT_GO				BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FW_DRV_HANDSHAKE			(Offset 0x10DC) */


#define BIT_SHIFT_FW_DRV_HANDSHAKE			0
#define BIT_MASK_FW_DRV_HANDSHAKE			0xffffffffL
#define BIT_FW_DRV_HANDSHAKE(x)			(((x) & BIT_MASK_FW_DRV_HANDSHAKE) << BIT_SHIFT_FW_DRV_HANDSHAKE)
#define BITS_FW_DRV_HANDSHAKE				(BIT_MASK_FW_DRV_HANDSHAKE << BIT_SHIFT_FW_DRV_HANDSHAKE)
#define BIT_CLEAR_FW_DRV_HANDSHAKE(x)			((x) & (~BITS_FW_DRV_HANDSHAKE))
#define BIT_GET_FW_DRV_HANDSHAKE(x)			(((x) >> BIT_SHIFT_FW_DRV_HANDSHAKE) & BIT_MASK_FW_DRV_HANDSHAKE)
#define BIT_SET_FW_DRV_HANDSHAKE(x, v)			(BIT_CLEAR_FW_DRV_HANDSHAKE(x) | BIT_FW_DRV_HANDSHAKE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FW_DBG0				(Offset 0x10E0) */


#define BIT_SHIFT_FW_DBG0				0
#define BIT_MASK_FW_DBG0				0xffffffffL
#define BIT_FW_DBG0(x)					(((x) & BIT_MASK_FW_DBG0) << BIT_SHIFT_FW_DBG0)
#define BITS_FW_DBG0					(BIT_MASK_FW_DBG0 << BIT_SHIFT_FW_DBG0)
#define BIT_CLEAR_FW_DBG0(x)				((x) & (~BITS_FW_DBG0))
#define BIT_GET_FW_DBG0(x)				(((x) >> BIT_SHIFT_FW_DBG0) & BIT_MASK_FW_DBG0)
#define BIT_SET_FW_DBG0(x, v)				(BIT_CLEAR_FW_DBG0(x) | BIT_FW_DBG0(v))


/* 2 REG_FW_DBG1				(Offset 0x10E4) */


#define BIT_SHIFT_FW_DBG1				0
#define BIT_MASK_FW_DBG1				0xffffffffL
#define BIT_FW_DBG1(x)					(((x) & BIT_MASK_FW_DBG1) << BIT_SHIFT_FW_DBG1)
#define BITS_FW_DBG1					(BIT_MASK_FW_DBG1 << BIT_SHIFT_FW_DBG1)
#define BIT_CLEAR_FW_DBG1(x)				((x) & (~BITS_FW_DBG1))
#define BIT_GET_FW_DBG1(x)				(((x) >> BIT_SHIFT_FW_DBG1) & BIT_MASK_FW_DBG1)
#define BIT_SET_FW_DBG1(x, v)				(BIT_CLEAR_FW_DBG1(x) | BIT_FW_DBG1(v))


/* 2 REG_FW_DBG2				(Offset 0x10E8) */


#define BIT_SHIFT_FW_DBG2				0
#define BIT_MASK_FW_DBG2				0xffffffffL
#define BIT_FW_DBG2(x)					(((x) & BIT_MASK_FW_DBG2) << BIT_SHIFT_FW_DBG2)
#define BITS_FW_DBG2					(BIT_MASK_FW_DBG2 << BIT_SHIFT_FW_DBG2)
#define BIT_CLEAR_FW_DBG2(x)				((x) & (~BITS_FW_DBG2))
#define BIT_GET_FW_DBG2(x)				(((x) >> BIT_SHIFT_FW_DBG2) & BIT_MASK_FW_DBG2)
#define BIT_SET_FW_DBG2(x, v)				(BIT_CLEAR_FW_DBG2(x) | BIT_FW_DBG2(v))


/* 2 REG_FW_DBG3				(Offset 0x10EC) */


#define BIT_SHIFT_FW_DBG3				0
#define BIT_MASK_FW_DBG3				0xffffffffL
#define BIT_FW_DBG3(x)					(((x) & BIT_MASK_FW_DBG3) << BIT_SHIFT_FW_DBG3)
#define BITS_FW_DBG3					(BIT_MASK_FW_DBG3 << BIT_SHIFT_FW_DBG3)
#define BIT_CLEAR_FW_DBG3(x)				((x) & (~BITS_FW_DBG3))
#define BIT_GET_FW_DBG3(x)				(((x) >> BIT_SHIFT_FW_DBG3) & BIT_MASK_FW_DBG3)
#define BIT_SET_FW_DBG3(x, v)				(BIT_CLEAR_FW_DBG3(x) | BIT_FW_DBG3(v))


/* 2 REG_FW_DBG4				(Offset 0x10F0) */


#define BIT_SHIFT_FW_DBG4				0
#define BIT_MASK_FW_DBG4				0xffffffffL
#define BIT_FW_DBG4(x)					(((x) & BIT_MASK_FW_DBG4) << BIT_SHIFT_FW_DBG4)
#define BITS_FW_DBG4					(BIT_MASK_FW_DBG4 << BIT_SHIFT_FW_DBG4)
#define BIT_CLEAR_FW_DBG4(x)				((x) & (~BITS_FW_DBG4))
#define BIT_GET_FW_DBG4(x)				(((x) >> BIT_SHIFT_FW_DBG4) & BIT_MASK_FW_DBG4)
#define BIT_SET_FW_DBG4(x, v)				(BIT_CLEAR_FW_DBG4(x) | BIT_FW_DBG4(v))


/* 2 REG_FW_DBG5				(Offset 0x10F4) */


#define BIT_SHIFT_FW_DBG5				0
#define BIT_MASK_FW_DBG5				0xffffffffL
#define BIT_FW_DBG5(x)					(((x) & BIT_MASK_FW_DBG5) << BIT_SHIFT_FW_DBG5)
#define BITS_FW_DBG5					(BIT_MASK_FW_DBG5 << BIT_SHIFT_FW_DBG5)
#define BIT_CLEAR_FW_DBG5(x)				((x) & (~BITS_FW_DBG5))
#define BIT_GET_FW_DBG5(x)				(((x) >> BIT_SHIFT_FW_DBG5) & BIT_MASK_FW_DBG5)
#define BIT_SET_FW_DBG5(x, v)				(BIT_CLEAR_FW_DBG5(x) | BIT_FW_DBG5(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FW_DBG6				(Offset 0x10F8) */


#define BIT_SHIFT_FW_DBG6				0
#define BIT_MASK_FW_DBG6				0xffffffffL
#define BIT_FW_DBG6(x)					(((x) & BIT_MASK_FW_DBG6) << BIT_SHIFT_FW_DBG6)
#define BITS_FW_DBG6					(BIT_MASK_FW_DBG6 << BIT_SHIFT_FW_DBG6)
#define BIT_CLEAR_FW_DBG6(x)				((x) & (~BITS_FW_DBG6))
#define BIT_GET_FW_DBG6(x)				(((x) >> BIT_SHIFT_FW_DBG6) & BIT_MASK_FW_DBG6)
#define BIT_SET_FW_DBG6(x, v)				(BIT_CLEAR_FW_DBG6(x) | BIT_FW_DBG6(v))


/* 2 REG_FW_DBG7				(Offset 0x10FC) */


#define BIT_SHIFT_FW_DBG7				0
#define BIT_MASK_FW_DBG7				0xffffffffL
#define BIT_FW_DBG7(x)					(((x) & BIT_MASK_FW_DBG7) << BIT_SHIFT_FW_DBG7)
#define BITS_FW_DBG7					(BIT_MASK_FW_DBG7 << BIT_SHIFT_FW_DBG7)
#define BIT_CLEAR_FW_DBG7(x)				((x) & (~BITS_FW_DBG7))
#define BIT_GET_FW_DBG7(x)				(((x) >> BIT_SHIFT_FW_DBG7) & BIT_MASK_FW_DBG7)
#define BIT_SET_FW_DBG7(x, v)				(BIT_CLEAR_FW_DBG7(x) | BIT_FW_DBG7(v))


/* 2 REG_CR_EXT				(Offset 0x1100) */


#define BIT_SHIFT_PHY_REQ_DELAY			24
#define BIT_MASK_PHY_REQ_DELAY				0xf
#define BIT_PHY_REQ_DELAY(x)				(((x) & BIT_MASK_PHY_REQ_DELAY) << BIT_SHIFT_PHY_REQ_DELAY)
#define BITS_PHY_REQ_DELAY				(BIT_MASK_PHY_REQ_DELAY << BIT_SHIFT_PHY_REQ_DELAY)
#define BIT_CLEAR_PHY_REQ_DELAY(x)			((x) & (~BITS_PHY_REQ_DELAY))
#define BIT_GET_PHY_REQ_DELAY(x)			(((x) >> BIT_SHIFT_PHY_REQ_DELAY) & BIT_MASK_PHY_REQ_DELAY)
#define BIT_SET_PHY_REQ_DELAY(x, v)			(BIT_CLEAR_PHY_REQ_DELAY(x) | BIT_PHY_REQ_DELAY(v))

#define BIT_SPD_DOWN					BIT(16)

#define BIT_SHIFT_NETYPE4				4
#define BIT_MASK_NETYPE4				0x3
#define BIT_NETYPE4(x)					(((x) & BIT_MASK_NETYPE4) << BIT_SHIFT_NETYPE4)
#define BITS_NETYPE4					(BIT_MASK_NETYPE4 << BIT_SHIFT_NETYPE4)
#define BIT_CLEAR_NETYPE4(x)				((x) & (~BITS_NETYPE4))
#define BIT_GET_NETYPE4(x)				(((x) >> BIT_SHIFT_NETYPE4) & BIT_MASK_NETYPE4)
#define BIT_SET_NETYPE4(x, v)				(BIT_CLEAR_NETYPE4(x) | BIT_NETYPE4(v))


#define BIT_SHIFT_NETYPE3				2
#define BIT_MASK_NETYPE3				0x3
#define BIT_NETYPE3(x)					(((x) & BIT_MASK_NETYPE3) << BIT_SHIFT_NETYPE3)
#define BITS_NETYPE3					(BIT_MASK_NETYPE3 << BIT_SHIFT_NETYPE3)
#define BIT_CLEAR_NETYPE3(x)				((x) & (~BITS_NETYPE3))
#define BIT_GET_NETYPE3(x)				(((x) >> BIT_SHIFT_NETYPE3) & BIT_MASK_NETYPE3)
#define BIT_SET_NETYPE3(x, v)				(BIT_CLEAR_NETYPE3(x) | BIT_NETYPE3(v))


#define BIT_SHIFT_NETYPE2				0
#define BIT_MASK_NETYPE2				0x3
#define BIT_NETYPE2(x)					(((x) & BIT_MASK_NETYPE2) << BIT_SHIFT_NETYPE2)
#define BITS_NETYPE2					(BIT_MASK_NETYPE2 << BIT_SHIFT_NETYPE2)
#define BIT_CLEAR_NETYPE2(x)				((x) & (~BITS_NETYPE2))
#define BIT_GET_NETYPE2(x)				(((x) >> BIT_SHIFT_NETYPE2) & BIT_MASK_NETYPE2)
#define BIT_SET_NETYPE2(x, v)				(BIT_CLEAR_NETYPE2(x) | BIT_NETYPE2(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TC9_CTRL				(Offset 0x1104) */

#define BIT_TC9INT_EN					BIT(26)
#define BIT_TC9MODE					BIT(25)
#define BIT_TC9EN					BIT(24)

#define BIT_SHIFT_TC9DATA				0
#define BIT_MASK_TC9DATA				0xffffff
#define BIT_TC9DATA(x)					(((x) & BIT_MASK_TC9DATA) << BIT_SHIFT_TC9DATA)
#define BITS_TC9DATA					(BIT_MASK_TC9DATA << BIT_SHIFT_TC9DATA)
#define BIT_CLEAR_TC9DATA(x)				((x) & (~BITS_TC9DATA))
#define BIT_GET_TC9DATA(x)				(((x) >> BIT_SHIFT_TC9DATA) & BIT_MASK_TC9DATA)
#define BIT_SET_TC9DATA(x, v)				(BIT_CLEAR_TC9DATA(x) | BIT_TC9DATA(v))


/* 2 REG_TC10_CTRL				(Offset 0x1108) */

#define BIT_TC10INT_EN					BIT(26)
#define BIT_TC10MODE					BIT(25)
#define BIT_TC10EN					BIT(24)

#define BIT_SHIFT_TC10DATA				0
#define BIT_MASK_TC10DATA				0xffffff
#define BIT_TC10DATA(x)				(((x) & BIT_MASK_TC10DATA) << BIT_SHIFT_TC10DATA)
#define BITS_TC10DATA					(BIT_MASK_TC10DATA << BIT_SHIFT_TC10DATA)
#define BIT_CLEAR_TC10DATA(x)				((x) & (~BITS_TC10DATA))
#define BIT_GET_TC10DATA(x)				(((x) >> BIT_SHIFT_TC10DATA) & BIT_MASK_TC10DATA)
#define BIT_SET_TC10DATA(x, v)				(BIT_CLEAR_TC10DATA(x) | BIT_TC10DATA(v))


/* 2 REG_TC11_CTRL				(Offset 0x110C) */

#define BIT_TC11INT_EN					BIT(26)
#define BIT_TC11MODE					BIT(25)
#define BIT_TC11EN					BIT(24)

#define BIT_SHIFT_TC11DATA				0
#define BIT_MASK_TC11DATA				0xffffff
#define BIT_TC11DATA(x)				(((x) & BIT_MASK_TC11DATA) << BIT_SHIFT_TC11DATA)
#define BITS_TC11DATA					(BIT_MASK_TC11DATA << BIT_SHIFT_TC11DATA)
#define BIT_CLEAR_TC11DATA(x)				((x) & (~BITS_TC11DATA))
#define BIT_GET_TC11DATA(x)				(((x) >> BIT_SHIFT_TC11DATA) & BIT_MASK_TC11DATA)
#define BIT_SET_TC11DATA(x, v)				(BIT_CLEAR_TC11DATA(x) | BIT_TC11DATA(v))


/* 2 REG_TC12_CTRL				(Offset 0x1110) */

#define BIT_TC12INT_EN					BIT(26)
#define BIT_TC12MODE					BIT(25)
#define BIT_TC12EN					BIT(24)
#define BIT_P2P_PWROFF_NOA2_ERLY_INT			BIT(22)
#define BIT_P2P_PWROFF_NOA1_ERLY_INT			BIT(21)
#define BIT_P2P_PWROFF_NOA0_ERLY_INT			BIT(20)

#define BIT_SHIFT_TC12DATA				0
#define BIT_MASK_TC12DATA				0xffffff
#define BIT_TC12DATA(x)				(((x) & BIT_MASK_TC12DATA) << BIT_SHIFT_TC12DATA)
#define BITS_TC12DATA					(BIT_MASK_TC12DATA << BIT_SHIFT_TC12DATA)
#define BIT_CLEAR_TC12DATA(x)				((x) & (~BITS_TC12DATA))
#define BIT_GET_TC12DATA(x)				(((x) >> BIT_SHIFT_TC12DATA) & BIT_MASK_TC12DATA)
#define BIT_SET_TC12DATA(x, v)				(BIT_CLEAR_TC12DATA(x) | BIT_TC12DATA(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */


#define BIT_SHIFT_PKTNUM_TH				24
#define BIT_MASK_PKTNUM_TH				0xff
#define BIT_PKTNUM_TH(x)				(((x) & BIT_MASK_PKTNUM_TH) << BIT_SHIFT_PKTNUM_TH)
#define BITS_PKTNUM_TH					(BIT_MASK_PKTNUM_TH << BIT_SHIFT_PKTNUM_TH)
#define BIT_CLEAR_PKTNUM_TH(x)				((x) & (~BITS_PKTNUM_TH))
#define BIT_GET_PKTNUM_TH(x)				(((x) >> BIT_SHIFT_PKTNUM_TH) & BIT_MASK_PKTNUM_TH)
#define BIT_SET_PKTNUM_TH(x, v)			(BIT_CLEAR_PKTNUM_TH(x) | BIT_PKTNUM_TH(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */


#define BIT_SHIFT_PKTNUM_TH_V1				24
#define BIT_MASK_PKTNUM_TH_V1				0xff
#define BIT_PKTNUM_TH_V1(x)				(((x) & BIT_MASK_PKTNUM_TH_V1) << BIT_SHIFT_PKTNUM_TH_V1)
#define BITS_PKTNUM_TH_V1				(BIT_MASK_PKTNUM_TH_V1 << BIT_SHIFT_PKTNUM_TH_V1)
#define BIT_CLEAR_PKTNUM_TH_V1(x)			((x) & (~BITS_PKTNUM_TH_V1))
#define BIT_GET_PKTNUM_TH_V1(x)			(((x) >> BIT_SHIFT_PKTNUM_TH_V1) & BIT_MASK_PKTNUM_TH_V1)
#define BIT_SET_PKTNUM_TH_V1(x, v)			(BIT_CLEAR_PKTNUM_TH_V1(x) | BIT_PKTNUM_TH_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */


#define BIT_SHIFT_TIMER_TH				16
#define BIT_MASK_TIMER_TH				0xff
#define BIT_TIMER_TH(x)				(((x) & BIT_MASK_TIMER_TH) << BIT_SHIFT_TIMER_TH)
#define BITS_TIMER_TH					(BIT_MASK_TIMER_TH << BIT_SHIFT_TIMER_TH)
#define BIT_CLEAR_TIMER_TH(x)				((x) & (~BITS_TIMER_TH))
#define BIT_GET_TIMER_TH(x)				(((x) >> BIT_SHIFT_TIMER_TH) & BIT_MASK_TIMER_TH)
#define BIT_SET_TIMER_TH(x, v)				(BIT_CLEAR_TIMER_TH(x) | BIT_TIMER_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */

#define BIT_EN_RXDMA_ALIGN_V1				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */


#define BIT_SHIFT_RXPKT1ENADDR				0
#define BIT_MASK_RXPKT1ENADDR				0xffff
#define BIT_RXPKT1ENADDR(x)				(((x) & BIT_MASK_RXPKT1ENADDR) << BIT_SHIFT_RXPKT1ENADDR)
#define BITS_RXPKT1ENADDR				(BIT_MASK_RXPKT1ENADDR << BIT_SHIFT_RXPKT1ENADDR)
#define BIT_CLEAR_RXPKT1ENADDR(x)			((x) & (~BITS_RXPKT1ENADDR))
#define BIT_GET_RXPKT1ENADDR(x)			(((x) >> BIT_SHIFT_RXPKT1ENADDR) & BIT_MASK_RXPKT1ENADDR)
#define BIT_SET_RXPKT1ENADDR(x, v)			(BIT_CLEAR_RXPKT1ENADDR(x) | BIT_RXPKT1ENADDR(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FWFF				(Offset 0x1114) */

#define BIT_EN_TXDMA_ALIGN_V1				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2IMR				(Offset 0x1120) */

#define BIT__FE4ISR__IND_MSK				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2IMR				(Offset 0x1120) */

#define BIT_FS_TXSC_DESC_DONE_INT_EN			BIT(28)
#define BIT_FS_TXSC_BKDONE_INT_EN			BIT(27)
#define BIT_FS_TXSC_BEDONE_INT_EN			BIT(26)
#define BIT_FS_TXSC_VIDONE_INT_EN			BIT(25)
#define BIT_FS_TXSC_VODONE_INT_EN			BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2IMR				(Offset 0x1120) */

#define BIT_FS_ATIM_MB7_INT_EN				BIT(23)
#define BIT_FS_ATIM_MB6_INT_EN				BIT(22)
#define BIT_FS_ATIM_MB5_INT_EN				BIT(21)
#define BIT_FS_ATIM_MB4_INT_EN				BIT(20)
#define BIT_FS_ATIM_MB3_INT_EN				BIT(19)
#define BIT_FS_ATIM_MB2_INT_EN				BIT(18)
#define BIT_FS_ATIM_MB1_INT_EN				BIT(17)
#define BIT_FS_ATIM_MB0_INT_EN				BIT(16)
#define BIT_FS_TBTT4INT_EN				BIT(11)
#define BIT_FS_TBTT3INT_EN				BIT(10)
#define BIT_FS_TBTT2INT_EN				BIT(9)
#define BIT_FS_TBTT1INT_EN				BIT(8)
#define BIT_FS_TBTT0_MB7INT_EN				BIT(7)
#define BIT_FS_TBTT0_MB6INT_EN				BIT(6)
#define BIT_FS_TBTT0_MB5INT_EN				BIT(5)
#define BIT_FS_TBTT0_MB4INT_EN				BIT(4)
#define BIT_FS_TBTT0_MB3INT_EN				BIT(3)
#define BIT_FS_TBTT0_MB2INT_EN				BIT(2)
#define BIT_FS_TBTT0_MB1INT_EN				BIT(1)
#define BIT_FS_TBTT0_INT_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2ISR				(Offset 0x1124) */

#define BIT__FE4ISR__IND_INT				BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2ISR				(Offset 0x1124) */

#define BIT_FS_TXSC_DESC_DONE_INT			BIT(28)
#define BIT_FS_TXSC_BKDONE_INT				BIT(27)
#define BIT_FS_TXSC_BEDONE_INT				BIT(26)
#define BIT_FS_TXSC_VIDONE_INT				BIT(25)
#define BIT_FS_TXSC_VODONE_INT				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE2ISR				(Offset 0x1124) */

#define BIT_FS_ATIM_MB7_INT				BIT(23)
#define BIT_FS_ATIM_MB6_INT				BIT(22)
#define BIT_FS_ATIM_MB5_INT				BIT(21)
#define BIT_FS_ATIM_MB4_INT				BIT(20)
#define BIT_FS_ATIM_MB3_INT				BIT(19)
#define BIT_FS_ATIM_MB2_INT				BIT(18)
#define BIT_FS_ATIM_MB1_INT				BIT(17)
#define BIT_FS_ATIM_MB0_INT				BIT(16)
#define BIT_FS_TBTT4INT				BIT(11)
#define BIT_FS_TBTT3INT				BIT(10)
#define BIT_FS_TBTT2INT				BIT(9)
#define BIT_FS_TBTT1INT				BIT(8)
#define BIT_FS_TBTT0_MB7INT				BIT(7)
#define BIT_FS_TBTT0_MB6INT				BIT(6)
#define BIT_FS_TBTT0_MB5INT				BIT(5)
#define BIT_FS_TBTT0_MB4INT				BIT(4)
#define BIT_FS_TBTT0_MB3INT				BIT(3)
#define BIT_FS_TBTT0_MB2INT				BIT(2)
#define BIT_FS_TBTT0_MB1INT				BIT(1)
#define BIT_FS_TBTT0_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_BCNELY4_AGGR_INT_EN			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT__EN		BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_BCNELY3_AGGR_INT_EN			BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT__EN		BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_BCNELY2_AGGR_INT_EN			BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT__EN		BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_BCNELY1_AGGR_INT_EN			BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT__EN		BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3IMR				(Offset 0x1128) */

#define BIT_FS_BCNDMA4_INT_EN				BIT(27)
#define BIT_FS_BCNDMA3_INT_EN				BIT(26)
#define BIT_FS_BCNDMA2_INT_EN				BIT(25)
#define BIT_FS_BCNDMA1_INT_EN				BIT(24)
#define BIT_FS_BCNDMA0_MB7_INT_EN			BIT(23)
#define BIT_FS_BCNDMA0_MB6_INT_EN			BIT(22)
#define BIT_FS_BCNDMA0_MB5_INT_EN			BIT(21)
#define BIT_FS_BCNDMA0_MB4_INT_EN			BIT(20)
#define BIT_FS_BCNDMA0_MB3_INT_EN			BIT(19)
#define BIT_FS_BCNDMA0_MB2_INT_EN			BIT(18)
#define BIT_FS_BCNDMA0_MB1_INT_EN			BIT(17)
#define BIT_FS_BCNDMA0_INT_EN				BIT(16)
#define BIT_FS_MTI_BCNIVLEAR_INT__EN			BIT(15)
#define BIT_FS_BCNERLY4_INT_EN				BIT(11)
#define BIT_FS_BCNERLY3_INT_EN				BIT(10)
#define BIT_FS_BCNERLY2_INT_EN				BIT(9)
#define BIT_FS_BCNERLY1_INT_EN				BIT(8)
#define BIT_FS_BCNERLY0_MB7INT_EN			BIT(7)
#define BIT_FS_BCNERLY0_MB6INT_EN			BIT(6)
#define BIT_FS_BCNERLY0_MB5INT_EN			BIT(5)
#define BIT_FS_BCNERLY0_MB4INT_EN			BIT(4)
#define BIT_FS_BCNERLY0_MB3INT_EN			BIT(3)
#define BIT_FS_BCNERLY0_MB2INT_EN			BIT(2)
#define BIT_FS_BCNERLY0_MB1INT_EN			BIT(1)
#define BIT_FS_BCNERLY0_INT_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_BCNELY4_AGGR_INT			BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_CLI3_MTI_BCNIVLEAR_INT			BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_BCNELY3_AGGR_INT			BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_CLI2_MTI_BCNIVLEAR_INT			BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_BCNELY2_AGGR_INT			BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_CLI1_MTI_BCNIVLEAR_INT			BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_BCNELY1_AGGR_INT			BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_CLI0_MTI_BCNIVLEAR_INT			BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE3ISR				(Offset 0x112C) */

#define BIT_FS_BCNDMA4_INT				BIT(27)
#define BIT_FS_BCNDMA3_INT				BIT(26)
#define BIT_FS_BCNDMA2_INT				BIT(25)
#define BIT_FS_BCNDMA1_INT				BIT(24)
#define BIT_FS_BCNDMA0_MB7_INT				BIT(23)
#define BIT_FS_BCNDMA0_MB6_INT				BIT(22)
#define BIT_FS_BCNDMA0_MB5_INT				BIT(21)
#define BIT_FS_BCNDMA0_MB4_INT				BIT(20)
#define BIT_FS_BCNDMA0_MB3_INT				BIT(19)
#define BIT_FS_BCNDMA0_MB2_INT				BIT(18)
#define BIT_FS_BCNDMA0_MB1_INT				BIT(17)
#define BIT_FS_BCNDMA0_INT				BIT(16)
#define BIT_FS_MTI_BCNIVLEAR_INT			BIT(15)
#define BIT_FS_BCNERLY4_INT				BIT(11)
#define BIT_FS_BCNERLY3_INT				BIT(10)
#define BIT_FS_BCNERLY2_INT				BIT(9)
#define BIT_FS_BCNERLY1_INT				BIT(8)
#define BIT_FS_BCNERLY0_MB7INT				BIT(7)
#define BIT_FS_BCNERLY0_MB6INT				BIT(6)
#define BIT_FS_BCNERLY0_MB5INT				BIT(5)
#define BIT_FS_BCNERLY0_MB4INT				BIT(4)
#define BIT_FS_BCNERLY0_MB3INT				BIT(3)
#define BIT_FS_BCNERLY0_MB2INT				BIT(2)
#define BIT_FS_BCNERLY0_MB1INT				BIT(1)
#define BIT_FS_BCNERLY0_INT				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT4_PKTIN_INT_EN				BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI3_TXPKTIN_INT_EN			BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT3_PKTIN_INT_EN				BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI2_TXPKTIN_INT_EN			BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT2_PKTIN_INT_EN				BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI1_TXPKTIN_INT_EN			BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT1_PKTIN_INT_EN				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI0_TXPKTIN_INT_EN			BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT4_RXUCMD0_OK_INT_EN			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI3_RX_UMD0_INT_EN			BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT4_RXUCMD1_OK_INT_EN			BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI3_RX_UMD1_INT_EN			BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT4_RXBCMD0_OK_INT_EN			BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI3_RX_BMD0_INT_EN			BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT4_RXBCMD1_OK_INT_EN			BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI3_RX_BMD1_INT_EN			BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT3_RXUCMD0_OK_INT_EN			BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI2_RX_UMD0_INT_EN			BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT3_RXUCMD1_OK_INT_EN			BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI2_RX_UMD1_INT_EN			BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT3_RXBCMD0_OK_INT_EN			BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI2_RX_BMD0_INT_EN			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT3_RXBCMD1_OK_INT_EN			BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI2_RX_BMD1_INT_EN			BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT2_RXUCMD0_OK_INT_EN			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI1_RX_UMD0_INT_EN			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT2_RXUCMD1_OK_INT_EN			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI1_RX_UMD1_INT_EN			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT2_RXBCMD0_OK_INT_EN			BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI1_RX_BMD0_INT_EN			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT2_RXBCMD1_OK_INT_EN			BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI1_RX_BMD1_INT_EN			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT1_RXUCMD0_OK_INT_EN			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI0_RX_UMD0_INT_EN			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT1_RXUCMD1_OK_INT_EN			BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_DMEM1_WPTR_UPDATE_INT_EN		BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI0_RX_UMD1_INT_EN			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT1_RXBCMD0_OK_INT_EN			BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI0_RX_BMD0_INT_EN			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_PORT1_RXBCMD1_OK_INT_EN			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4IMR				(Offset 0x1130) */

#define BIT_FS_CLI0_RX_BMD1_INT_EN			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT4_PKTIN_INT				BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI3_TXPKTIN_INT			BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT3_PKTIN_INT				BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI2_TXPKTIN_INT			BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT2_PKTIN_INT				BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI1_TXPKTIN_INT			BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT1_PKTIN_INT				BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI0_TXPKTIN_INT			BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT4_RXUCMD0_OK_INT			BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI3_RX_UMD0_INT			BIT(15)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT4_RXUCMD1_OK_INT			BIT(14)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI3_RX_UMD1_INT			BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT4_RXBCMD0_OK_INT			BIT(13)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI3_RX_BMD0_INT			BIT(13)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT4_RXBCMD1_OK_INT			BIT(12)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI3_RX_BMD1_INT			BIT(12)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT3_RXUCMD0_OK_INT			BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI2_RX_UMD0_INT			BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT3_RXUCMD1_OK_INT			BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI2_RX_UMD1_INT			BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT3_RXBCMD0_OK_INT			BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI2_RX_BMD0_INT			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT3_RXBCMD1_OK_INT			BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI2_RX_BMD1_INT			BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT2_RXUCMD0_OK_INT			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI1_RX_UMD0_INT			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT2_RXUCMD1_OK_INT			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI1_RX_UMD1_INT			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT2_RXBCMD0_OK_INT			BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI1_RX_BMD0_INT			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT2_RXBCMD1_OK_INT			BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI1_RX_BMD1_INT			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT1_RXUCMD0_OK_INT			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI0_RX_UMD0_INT			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT1_RXUCMD1_OK_INT			BIT(2)

#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_DMEM1_WPTR_UPDATE_INT			BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI0_RX_UMD1_INT			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT1_RXBCMD0_OK_INT			BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI0_RX_BMD0_INT			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_PORT1_RXBCMD1_OK_INT			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FE4ISR				(Offset 0x1134) */

#define BIT_FS_CLI0_RX_BMD1_INT			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1IMR				(Offset 0x1138) */

#define BIT__FT2ISR__IND_MSK				BIT(30)
#define BIT_FTM_PTT_INT_EN				BIT(29)
#define BIT_RXFTMREQ_INT_EN				BIT(28)
#define BIT_RXFTM_INT_EN				BIT(27)
#define BIT_TXFTM_INT_EN				BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1IMR				(Offset 0x1138) */

#define BIT_FS_H2C_CMD_OK_INT_EN			BIT(25)
#define BIT_FS_H2C_CMD_FULL_INT_EN			BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1IMR				(Offset 0x1138) */

#define BIT_FS_MACID_PWRCHANGE5_INT_EN			BIT(23)
#define BIT_FS_MACID_PWRCHANGE4_INT_EN			BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1IMR				(Offset 0x1138) */

#define BIT_FS_MACID_SEARCH_FAIL_INT_EN		BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1IMR				(Offset 0x1138) */

#define BIT_FS_MACID_PWRCHANGE3_INT_EN			BIT(21)
#define BIT_FS_MACID_PWRCHANGE2_INT_EN			BIT(20)
#define BIT_FS_MACID_PWRCHANGE1_INT_EN			BIT(19)
#define BIT_FS_MACID_PWRCHANGE0_INT_EN			BIT(18)
#define BIT_FS_CTWEND2_INT_EN				BIT(17)
#define BIT_FS_CTWEND1_INT_EN				BIT(16)
#define BIT_FS_CTWEND0_INT_EN				BIT(15)
#define BIT_FS_TX_NULL1_INT_EN				BIT(14)
#define BIT_FS_TX_NULL0_INT_EN				BIT(13)
#define BIT_FS_TSF_BIT32_TOGGLE_EN			BIT(12)
#define BIT_FS_P2P_RFON2_INT_EN			BIT(11)
#define BIT_FS_P2P_RFOFF2_INT_EN			BIT(10)
#define BIT_FS_P2P_RFON1_INT_EN			BIT(9)
#define BIT_FS_P2P_RFOFF1_INT_EN			BIT(8)
#define BIT_FS_P2P_RFON0_INT_EN			BIT(7)
#define BIT_FS_P2P_RFOFF0_INT_EN			BIT(6)
#define BIT_FS_RX_UAPSDMD1_EN				BIT(5)
#define BIT_FS_RX_UAPSDMD0_EN				BIT(4)
#define BIT_FS_TRIGGER_PKT_EN				BIT(3)
#define BIT_FS_EOSP_INT_EN				BIT(2)
#define BIT_FS_RPWM2_INT_EN				BIT(1)
#define BIT_FS_RPWM_INT_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT__FT2ISR__IND_INT				BIT(30)
#define BIT_FTM_PTT_INT				BIT(29)
#define BIT_RXFTMREQ_INT				BIT(28)
#define BIT_RXFTM_INT					BIT(27)
#define BIT_TXFTM_INT					BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_H2C_CMD_OK_INT				BIT(25)
#define BIT_FS_H2C_CMD_FULL_INT			BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_MACID_PWRCHANGE5_INT			BIT(23)
#define BIT_FS_MACID_PWRCHANGE4_INT			BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_MACID_SEARCH_FAIL_INT			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_MACID_PWRCHANGE3_INT			BIT(21)
#define BIT_FS_MACID_PWRCHANGE2_INT			BIT(20)
#define BIT_FS_MACID_PWRCHANGE1_INT			BIT(19)
#define BIT_FS_MACID_PWRCHANGE0_INT			BIT(18)
#define BIT_FS_CTWEND2_INT				BIT(17)
#define BIT_FS_CTWEND1_INT				BIT(16)
#define BIT_FS_CTWEND0_INT				BIT(15)
#define BIT_FS_TX_NULL1_INT				BIT(14)
#define BIT_FS_TX_NULL0_INT				BIT(13)
#define BIT_FS_TSF_BIT32_TOGGLE_INT			BIT(12)
#define BIT_FS_P2P_RFON2_INT				BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNOK_PORT4_INT_EN			BIT(11)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_P2P_RFOFF2_INT				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNOK_PORT3_INT_EN			BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_P2P_RFON1_INT				BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNOK_PORT2_INT_EN			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_P2P_RFOFF1_INT				BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNOK_PORT1_INT_EN			BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_P2P_RFON0_INT				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNERR_PORT4_INT_EN			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_P2P_RFOFF0_INT				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNERR_PORT3_INT_EN			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_RX_UAPSDMD1_INT				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNERR_PORT2_INT_EN			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_RX_UAPSDMD0_INT				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TXBCNERR_PORT1_INT_EN			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_TRIGGER_PKT_INT				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_ATIM_PORT4_INT_EN			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_EOSP_INT				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_ATIM_PORT3_INT_EN			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_RPWM2_INT				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_ATIM_PORT2_INT_EN			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_RPWM_INT				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FT1ISR				(Offset 0x113C) */

#define BIT_FS_ATIM_PORT1_INT_EN			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_SPWR0				(Offset 0x1140) */


#define BIT_SHIFT_MID_31TO0				0
#define BIT_MASK_MID_31TO0				0xffffffffL
#define BIT_MID_31TO0(x)				(((x) & BIT_MASK_MID_31TO0) << BIT_SHIFT_MID_31TO0)
#define BITS_MID_31TO0					(BIT_MASK_MID_31TO0 << BIT_SHIFT_MID_31TO0)
#define BIT_CLEAR_MID_31TO0(x)				((x) & (~BITS_MID_31TO0))
#define BIT_GET_MID_31TO0(x)				(((x) >> BIT_SHIFT_MID_31TO0) & BIT_MASK_MID_31TO0)
#define BIT_SET_MID_31TO0(x, v)			(BIT_CLEAR_MID_31TO0(x) | BIT_MID_31TO0(v))


/* 2 REG_SPWR1				(Offset 0x1144) */


#define BIT_SHIFT_MID_63TO32				0
#define BIT_MASK_MID_63TO32				0xffffffffL
#define BIT_MID_63TO32(x)				(((x) & BIT_MASK_MID_63TO32) << BIT_SHIFT_MID_63TO32)
#define BITS_MID_63TO32				(BIT_MASK_MID_63TO32 << BIT_SHIFT_MID_63TO32)
#define BIT_CLEAR_MID_63TO32(x)			((x) & (~BITS_MID_63TO32))
#define BIT_GET_MID_63TO32(x)				(((x) >> BIT_SHIFT_MID_63TO32) & BIT_MASK_MID_63TO32)
#define BIT_SET_MID_63TO32(x, v)			(BIT_CLEAR_MID_63TO32(x) | BIT_MID_63TO32(v))


/* 2 REG_SPWR2				(Offset 0x1148) */


#define BIT_SHIFT_MID_95O64				0
#define BIT_MASK_MID_95O64				0xffffffffL
#define BIT_MID_95O64(x)				(((x) & BIT_MASK_MID_95O64) << BIT_SHIFT_MID_95O64)
#define BITS_MID_95O64					(BIT_MASK_MID_95O64 << BIT_SHIFT_MID_95O64)
#define BIT_CLEAR_MID_95O64(x)				((x) & (~BITS_MID_95O64))
#define BIT_GET_MID_95O64(x)				(((x) >> BIT_SHIFT_MID_95O64) & BIT_MASK_MID_95O64)
#define BIT_SET_MID_95O64(x, v)			(BIT_CLEAR_MID_95O64(x) | BIT_MID_95O64(v))


/* 2 REG_SPWR3				(Offset 0x114C) */


#define BIT_SHIFT_MID_127TO96				0
#define BIT_MASK_MID_127TO96				0xffffffffL
#define BIT_MID_127TO96(x)				(((x) & BIT_MASK_MID_127TO96) << BIT_SHIFT_MID_127TO96)
#define BITS_MID_127TO96				(BIT_MASK_MID_127TO96 << BIT_SHIFT_MID_127TO96)
#define BIT_CLEAR_MID_127TO96(x)			((x) & (~BITS_MID_127TO96))
#define BIT_GET_MID_127TO96(x)				(((x) >> BIT_SHIFT_MID_127TO96) & BIT_MASK_MID_127TO96)
#define BIT_SET_MID_127TO96(x, v)			(BIT_CLEAR_MID_127TO96(x) | BIT_MID_127TO96(v))


/* 2 REG_POWSEQ				(Offset 0x1150) */


#define BIT_SHIFT_SEQNUM_MID				16
#define BIT_MASK_SEQNUM_MID				0xffff
#define BIT_SEQNUM_MID(x)				(((x) & BIT_MASK_SEQNUM_MID) << BIT_SHIFT_SEQNUM_MID)
#define BITS_SEQNUM_MID				(BIT_MASK_SEQNUM_MID << BIT_SHIFT_SEQNUM_MID)
#define BIT_CLEAR_SEQNUM_MID(x)			((x) & (~BITS_SEQNUM_MID))
#define BIT_GET_SEQNUM_MID(x)				(((x) >> BIT_SHIFT_SEQNUM_MID) & BIT_MASK_SEQNUM_MID)
#define BIT_SET_SEQNUM_MID(x, v)			(BIT_CLEAR_SEQNUM_MID(x) | BIT_SEQNUM_MID(v))


#define BIT_SHIFT_REF_MID				0
#define BIT_MASK_REF_MID				0x7f
#define BIT_REF_MID(x)					(((x) & BIT_MASK_REF_MID) << BIT_SHIFT_REF_MID)
#define BITS_REF_MID					(BIT_MASK_REF_MID << BIT_SHIFT_REF_MID)
#define BIT_CLEAR_REF_MID(x)				((x) & (~BITS_REF_MID))
#define BIT_GET_REF_MID(x)				(((x) >> BIT_SHIFT_REF_MID) & BIT_MASK_REF_MID)
#define BIT_SET_REF_MID(x, v)				(BIT_CLEAR_REF_MID(x) | BIT_REF_MID(v))


/* 2 REG_TC7_CTRL_V1				(Offset 0x1158) */

#define BIT_TC7INT_EN					BIT(26)
#define BIT_TC7MODE					BIT(25)
#define BIT_TC7EN					BIT(24)

#define BIT_SHIFT_TC7DATA				0
#define BIT_MASK_TC7DATA				0xffffff
#define BIT_TC7DATA(x)					(((x) & BIT_MASK_TC7DATA) << BIT_SHIFT_TC7DATA)
#define BITS_TC7DATA					(BIT_MASK_TC7DATA << BIT_SHIFT_TC7DATA)
#define BIT_CLEAR_TC7DATA(x)				((x) & (~BITS_TC7DATA))
#define BIT_GET_TC7DATA(x)				(((x) >> BIT_SHIFT_TC7DATA) & BIT_MASK_TC7DATA)
#define BIT_SET_TC7DATA(x, v)				(BIT_CLEAR_TC7DATA(x) | BIT_TC7DATA(v))


/* 2 REG_TC8_CTRL_V1				(Offset 0x115C) */

#define BIT_TC8INT_EN					BIT(26)
#define BIT_TC8MODE					BIT(25)
#define BIT_TC8EN					BIT(24)

#define BIT_SHIFT_TC8DATA				0
#define BIT_MASK_TC8DATA				0xffffff
#define BIT_TC8DATA(x)					(((x) & BIT_MASK_TC8DATA) << BIT_SHIFT_TC8DATA)
#define BITS_TC8DATA					(BIT_MASK_TC8DATA << BIT_SHIFT_TC8DATA)
#define BIT_CLEAR_TC8DATA(x)				((x) & (~BITS_TC8DATA))
#define BIT_GET_TC8DATA(x)				(((x) >> BIT_SHIFT_TC8DATA) & BIT_MASK_TC8DATA)
#define BIT_SET_TC8DATA(x, v)				(BIT_CLEAR_TC8DATA(x) | BIT_TC8DATA(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RX_BCN_TBTT_ITVL0			(Offset 0x1160) */


#define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2		24
#define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2		0xff
#define BIT_RX_BCN_TBTT_ITVL_CLIENT2(x)		(((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2) << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2)
#define BITS_RX_BCN_TBTT_ITVL_CLIENT2			(BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2 << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2)
#define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT2(x)		((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT2))
#define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT2(x)		(((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT2) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT2)
#define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT2(x, v)	(BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT2(x) | BIT_RX_BCN_TBTT_ITVL_CLIENT2(v))


#define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1		16
#define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1		0xff
#define BIT_RX_BCN_TBTT_ITVL_CLIENT1(x)		(((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1) << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1)
#define BITS_RX_BCN_TBTT_ITVL_CLIENT1			(BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1 << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1)
#define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT1(x)		((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT1))
#define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT1(x)		(((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT1) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT1)
#define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT1(x, v)	(BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT1(x) | BIT_RX_BCN_TBTT_ITVL_CLIENT1(v))


#define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0		8
#define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0		0xff
#define BIT_RX_BCN_TBTT_ITVL_CLIENT0(x)		(((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0) << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0)
#define BITS_RX_BCN_TBTT_ITVL_CLIENT0			(BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0 << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0)
#define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT0(x)		((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT0))
#define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT0(x)		(((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT0) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT0)
#define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT0(x, v)	(BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT0(x) | BIT_RX_BCN_TBTT_ITVL_CLIENT0(v))


#define BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0		0
#define BIT_MASK_RX_BCN_TBTT_ITVL_PORT0		0xff
#define BIT_RX_BCN_TBTT_ITVL_PORT0(x)			(((x) & BIT_MASK_RX_BCN_TBTT_ITVL_PORT0) << BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0)
#define BITS_RX_BCN_TBTT_ITVL_PORT0			(BIT_MASK_RX_BCN_TBTT_ITVL_PORT0 << BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0)
#define BIT_CLEAR_RX_BCN_TBTT_ITVL_PORT0(x)		((x) & (~BITS_RX_BCN_TBTT_ITVL_PORT0))
#define BIT_GET_RX_BCN_TBTT_ITVL_PORT0(x)		(((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_PORT0) & BIT_MASK_RX_BCN_TBTT_ITVL_PORT0)
#define BIT_SET_RX_BCN_TBTT_ITVL_PORT0(x, v)		(BIT_CLEAR_RX_BCN_TBTT_ITVL_PORT0(x) | BIT_RX_BCN_TBTT_ITVL_PORT0(v))


/* 2 REG_RX_BCN_TBTT_ITVL1			(Offset 0x1164) */


#define BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3		0
#define BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3		0xff
#define BIT_RX_BCN_TBTT_ITVL_CLIENT3(x)		(((x) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3) << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3)
#define BITS_RX_BCN_TBTT_ITVL_CLIENT3			(BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3 << BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3)
#define BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT3(x)		((x) & (~BITS_RX_BCN_TBTT_ITVL_CLIENT3))
#define BIT_GET_RX_BCN_TBTT_ITVL_CLIENT3(x)		(((x) >> BIT_SHIFT_RX_BCN_TBTT_ITVL_CLIENT3) & BIT_MASK_RX_BCN_TBTT_ITVL_CLIENT3)
#define BIT_SET_RX_BCN_TBTT_ITVL_CLIENT3(x, v)	(BIT_CLEAR_RX_BCN_TBTT_ITVL_CLIENT3(x) | BIT_RX_BCN_TBTT_ITVL_CLIENT3(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_FWIMR1				(Offset 0x1168) */

#define BIT_FS_ATIM_MB15_INT_EN			BIT(31)
#define BIT_FS_ATIM_MB14_INT_EN			BIT(30)
#define BIT_FS_ATIM_MB13_INT_EN			BIT(29)
#define BIT_FS_ATIM_MB12_INT_EN			BIT(28)
#define BIT_FS_ATIM_MB11_INT_EN			BIT(27)
#define BIT_FS_ATIM_MB10_INT_EN			BIT(26)
#define BIT_FS_ATIM_MB9_INT_EN				BIT(25)
#define BIT_FS_ATIM_MB8_INT_EN				BIT(24)
#define BIT_FS_TXBCNERR_MB15_INT_EN			BIT(23)
#define BIT_FS_TXBCNERR_MB14_INT_EN			BIT(22)
#define BIT_FS_TXBCNERR_MB13_INT_EN			BIT(21)
#define BIT_FS_TXBCNERR_MB12_INT_EN			BIT(20)
#define BIT_FS_TXBCNERR_MB11_INT_EN			BIT(19)
#define BIT_FS_TXBCNERR_MB10_INT_EN			BIT(18)
#define BIT_FS_TXBCNERR_MB9_INT_EN			BIT(17)
#define BIT_FS_TXBCNERR_MB8_INT_EN			BIT(16)
#define BIT_FS_TXBCNOK_MB15_INT_EN			BIT(15)
#define BIT_FS_TXBCNOK_MB14_INT_EN			BIT(14)
#define BIT_FS_TXBCNOK_MB13_INT_EN			BIT(13)
#define BIT_FS_TXBCNOK_MB12_INT_EN			BIT(12)
#define BIT_FS_TXBCNOK_MB11_INT_EN			BIT(11)
#define BIT_FS_TXBCNOK_MB10_INT_EN			BIT(10)
#define BIT_FS_TXBCNOK_MB9_INT_EN			BIT(9)
#define BIT_FS_TXBCNOK_MB8_INT_EN			BIT(8)
#define BIT_FS_BCNERLY0_MB15INT_EN			BIT(7)
#define BIT_FS_BCNERLY0_MB14INT_EN			BIT(6)
#define BIT_FS_BCNERLY0_MB13INT_EN			BIT(5)
#define BIT_FS_BCNERLY0_MB12INT_EN			BIT(4)
#define BIT_FS_BCNERLY0_MB11INT_EN			BIT(3)
#define BIT_FS_BCNERLY0_MB10INT_EN			BIT(2)
#define BIT_FS_BCNERLY0_MB9INT_EN			BIT(1)
#define BIT_FS_BCNERLY0_MB8INT_EN			BIT(0)

/* 2 REG_FWISR1				(Offset 0x116C) */

#define BIT_FS_ATIM_MB15_INT				BIT(31)
#define BIT_FS_ATIM_MB14_INT				BIT(30)
#define BIT_FS_ATIM_MB13_INT				BIT(29)
#define BIT_FS_ATIM_MB12_INT				BIT(28)
#define BIT_FS_ATIM_MB11_INT				BIT(27)
#define BIT_FS_ATIM_MB10_INT				BIT(26)
#define BIT_FS_ATIM_MB9_INT				BIT(25)
#define BIT_FS_ATIM_MB8_INT				BIT(24)
#define BIT_FS_TXBCNERR_MB15_INT			BIT(23)
#define BIT_FS_TXBCNERR_MB14_INT			BIT(22)
#define BIT_FS_TXBCNERR_MB13_INT			BIT(21)
#define BIT_FS_TXBCNERR_MB12_INT			BIT(20)
#define BIT_FS_TXBCNERR_MB11_INT			BIT(19)
#define BIT_FS_TXBCNERR_MB10_INT			BIT(18)
#define BIT_FS_TXBCNERR_MB9_INT			BIT(17)
#define BIT_FS_TXBCNERR_MB8_INT			BIT(16)
#define BIT_FS_TXBCNOK_MB15_INT			BIT(15)
#define BIT_FS_TXBCNOK_MB14_INT			BIT(14)
#define BIT_FS_TXBCNOK_MB13_INT			BIT(13)
#define BIT_FS_TXBCNOK_MB12_INT			BIT(12)
#define BIT_FS_TXBCNOK_MB11_INT			BIT(11)
#define BIT_FS_TXBCNOK_MB10_INT			BIT(10)
#define BIT_FS_TXBCNOK_MB9_INT				BIT(9)
#define BIT_FS_TXBCNOK_MB8_INT				BIT(8)
#define BIT_FS_BCNERLY0_MB15INT			BIT(7)
#define BIT_FS_BCNERLY0_MB14INT			BIT(6)
#define BIT_FS_BCNERLY0_MB13INT			BIT(5)
#define BIT_FS_BCNERLY0_MB12INT			BIT(4)
#define BIT_FS_BCNERLY0_MB11INT			BIT(3)
#define BIT_FS_BCNERLY0_MB10INT			BIT(2)
#define BIT_FS_BCNERLY0_MB9INT				BIT(1)
#define BIT_FS_BCNERLY0_MB8INT				BIT(0)

/* 2 REG_FWIMR2				(Offset 0x1170) */

#define BIT_FS_BCNDMA0_MB15_INT_EN			BIT(15)
#define BIT_FS_BCNDMA0_MB14_INT_EN			BIT(14)
#define BIT_FS_BCNDMA0_MB13_INT_EN			BIT(13)
#define BIT_FS_BCNDMA0_MB12_INT_EN			BIT(12)
#define BIT_FS_BCNDMA0_MB11_INT_EN			BIT(11)
#define BIT_FS_BCNDMA0_MB10_INT_EN			BIT(10)
#define BIT_FS_BCNDMA0_MB9_INT_EN			BIT(9)
#define BIT_FS_BCNDMA0_MB8_INT_EN			BIT(8)
#define BIT_FS_TBTT0_MB15INT_EN			BIT(7)
#define BIT_FS_TBTT0_MB14INT_EN			BIT(6)
#define BIT_FS_TBTT0_MB13INT_EN			BIT(5)
#define BIT_FS_TBTT0_MB12INT_EN			BIT(4)
#define BIT_FS_TBTT0_MB11INT_EN			BIT(3)
#define BIT_FS_TBTT0_MB10INT_EN			BIT(2)
#define BIT_FS_TBTT0_MB9INT_EN				BIT(1)
#define BIT_FS_TBTT0_MB8INT_EN				BIT(0)

/* 2 REG_FWISR2				(Offset 0x1174) */

#define BIT_FS_BCNDMA0_MB15_INT			BIT(15)
#define BIT_FS_BCNDMA0_MB14_INT			BIT(14)
#define BIT_FS_BCNDMA0_MB13_INT			BIT(13)
#define BIT_FS_BCNDMA0_MB12_INT			BIT(12)
#define BIT_FS_BCNDMA0_MB11_INT			BIT(11)
#define BIT_FS_BCNDMA0_MB10_INT			BIT(10)
#define BIT_FS_BCNDMA0_MB9_INT				BIT(9)
#define BIT_FS_BCNDMA0_MB8_INT				BIT(8)
#define BIT_FS_TBTT0_MB15INT				BIT(7)
#define BIT_FS_TBTT0_MB14INT				BIT(6)
#define BIT_FS_TBTT0_MB13INT				BIT(5)
#define BIT_FS_TBTT0_MB12INT				BIT(4)
#define BIT_FS_TBTT0_MB11INT				BIT(3)
#define BIT_FS_TBTT0_MB10INT				BIT(2)
#define BIT_FS_TBTT0_MB9INT				BIT(1)
#define BIT_FS_TBTT0_MB8INT				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWISR3				(Offset 0x117C) */

#define BIT_FS_TXBCNOK_PORT4_INT			BIT(11)
#define BIT_FS_TXBCNOK_PORT3_INT			BIT(10)
#define BIT_FS_TXBCNOK_PORT2_INT			BIT(9)
#define BIT_FS_TXBCNOK_PORT1_INT			BIT(8)
#define BIT_FS_TXBCNERR_PORT4_INT			BIT(7)
#define BIT_FS_TXBCNERR_PORT3_INT			BIT(6)
#define BIT_FS_TXBCNERR_PORT2_INT			BIT(5)
#define BIT_FS_TXBCNERR_PORT1_INT			BIT(4)
#define BIT_FS_ATIM_PORT4_INT				BIT(3)
#define BIT_FS_ATIM_PORT3_INT				BIT(2)
#define BIT_FS_ATIM_PORT2_INT				BIT(1)
#define BIT_FS_ATIM_PORT1_INT				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_SPEED_SENSOR			(Offset 0x1180) */

#define BIT_DSS_1_RST_N				BIT(31)
#define BIT_DSS_1_SPEED_EN				BIT(30)
#define BIT_DSS_1_WIRE_SEL				BIT(29)
#define BIT_DSS_ENCLK					BIT(28)

#define BIT_SHIFT_DSS_1_RO_SEL				24
#define BIT_MASK_DSS_1_RO_SEL				0x7
#define BIT_DSS_1_RO_SEL(x)				(((x) & BIT_MASK_DSS_1_RO_SEL) << BIT_SHIFT_DSS_1_RO_SEL)
#define BITS_DSS_1_RO_SEL				(BIT_MASK_DSS_1_RO_SEL << BIT_SHIFT_DSS_1_RO_SEL)
#define BIT_CLEAR_DSS_1_RO_SEL(x)			((x) & (~BITS_DSS_1_RO_SEL))
#define BIT_GET_DSS_1_RO_SEL(x)			(((x) >> BIT_SHIFT_DSS_1_RO_SEL) & BIT_MASK_DSS_1_RO_SEL)
#define BIT_SET_DSS_1_RO_SEL(x, v)			(BIT_CLEAR_DSS_1_RO_SEL(x) | BIT_DSS_1_RO_SEL(v))


#define BIT_SHIFT_DSS_1_DATA_IN			0
#define BIT_MASK_DSS_1_DATA_IN				0xfffff
#define BIT_DSS_1_DATA_IN(x)				(((x) & BIT_MASK_DSS_1_DATA_IN) << BIT_SHIFT_DSS_1_DATA_IN)
#define BITS_DSS_1_DATA_IN				(BIT_MASK_DSS_1_DATA_IN << BIT_SHIFT_DSS_1_DATA_IN)
#define BIT_CLEAR_DSS_1_DATA_IN(x)			((x) & (~BITS_DSS_1_DATA_IN))
#define BIT_GET_DSS_1_DATA_IN(x)			(((x) >> BIT_SHIFT_DSS_1_DATA_IN) & BIT_MASK_DSS_1_DATA_IN)
#define BIT_SET_DSS_1_DATA_IN(x, v)			(BIT_CLEAR_DSS_1_DATA_IN(x) | BIT_DSS_1_DATA_IN(v))


/* 2 REG_SPEED_SENSOR1			(Offset 0x1184) */

#define BIT_DSS_1_READY				BIT(31)
#define BIT_DSS_1_WSORT_GO				BIT(30)

#define BIT_SHIFT_DSS_1_COUNT_OUT			0
#define BIT_MASK_DSS_1_COUNT_OUT			0xfffff
#define BIT_DSS_1_COUNT_OUT(x)				(((x) & BIT_MASK_DSS_1_COUNT_OUT) << BIT_SHIFT_DSS_1_COUNT_OUT)
#define BITS_DSS_1_COUNT_OUT				(BIT_MASK_DSS_1_COUNT_OUT << BIT_SHIFT_DSS_1_COUNT_OUT)
#define BIT_CLEAR_DSS_1_COUNT_OUT(x)			((x) & (~BITS_DSS_1_COUNT_OUT))
#define BIT_GET_DSS_1_COUNT_OUT(x)			(((x) >> BIT_SHIFT_DSS_1_COUNT_OUT) & BIT_MASK_DSS_1_COUNT_OUT)
#define BIT_SET_DSS_1_COUNT_OUT(x, v)			(BIT_CLEAR_DSS_1_COUNT_OUT(x) | BIT_DSS_1_COUNT_OUT(v))


/* 2 REG_SPEED_SENSOR2			(Offset 0x1188) */

#define BIT_DSS_2_RST_N				BIT(31)
#define BIT_DSS_2_SPEED_EN				BIT(30)
#define BIT_DSS_2_WIRE_SEL				BIT(29)

#define BIT_SHIFT_DSS_2_RO_SEL				24
#define BIT_MASK_DSS_2_RO_SEL				0x7
#define BIT_DSS_2_RO_SEL(x)				(((x) & BIT_MASK_DSS_2_RO_SEL) << BIT_SHIFT_DSS_2_RO_SEL)
#define BITS_DSS_2_RO_SEL				(BIT_MASK_DSS_2_RO_SEL << BIT_SHIFT_DSS_2_RO_SEL)
#define BIT_CLEAR_DSS_2_RO_SEL(x)			((x) & (~BITS_DSS_2_RO_SEL))
#define BIT_GET_DSS_2_RO_SEL(x)			(((x) >> BIT_SHIFT_DSS_2_RO_SEL) & BIT_MASK_DSS_2_RO_SEL)
#define BIT_SET_DSS_2_RO_SEL(x, v)			(BIT_CLEAR_DSS_2_RO_SEL(x) | BIT_DSS_2_RO_SEL(v))


#define BIT_SHIFT_DSS_2_DATA_IN			0
#define BIT_MASK_DSS_2_DATA_IN				0xfffff
#define BIT_DSS_2_DATA_IN(x)				(((x) & BIT_MASK_DSS_2_DATA_IN) << BIT_SHIFT_DSS_2_DATA_IN)
#define BITS_DSS_2_DATA_IN				(BIT_MASK_DSS_2_DATA_IN << BIT_SHIFT_DSS_2_DATA_IN)
#define BIT_CLEAR_DSS_2_DATA_IN(x)			((x) & (~BITS_DSS_2_DATA_IN))
#define BIT_GET_DSS_2_DATA_IN(x)			(((x) >> BIT_SHIFT_DSS_2_DATA_IN) & BIT_MASK_DSS_2_DATA_IN)
#define BIT_SET_DSS_2_DATA_IN(x, v)			(BIT_CLEAR_DSS_2_DATA_IN(x) | BIT_DSS_2_DATA_IN(v))


/* 2 REG_SPEED_SENSOR3			(Offset 0x118C) */

#define BIT_DSS_2_READY				BIT(31)
#define BIT_DSS_2_WSORT_GO				BIT(30)

#define BIT_SHIFT_DSS_2_COUNT_OUT			0
#define BIT_MASK_DSS_2_COUNT_OUT			0xfffff
#define BIT_DSS_2_COUNT_OUT(x)				(((x) & BIT_MASK_DSS_2_COUNT_OUT) << BIT_SHIFT_DSS_2_COUNT_OUT)
#define BITS_DSS_2_COUNT_OUT				(BIT_MASK_DSS_2_COUNT_OUT << BIT_SHIFT_DSS_2_COUNT_OUT)
#define BIT_CLEAR_DSS_2_COUNT_OUT(x)			((x) & (~BITS_DSS_2_COUNT_OUT))
#define BIT_GET_DSS_2_COUNT_OUT(x)			(((x) >> BIT_SHIFT_DSS_2_COUNT_OUT) & BIT_MASK_DSS_2_COUNT_OUT)
#define BIT_SET_DSS_2_COUNT_OUT(x, v)			(BIT_CLEAR_DSS_2_COUNT_OUT(x) | BIT_DSS_2_COUNT_OUT(v))


/* 2 REG_SPEED_SENSOR4			(Offset 0x1190) */

#define BIT_DSS_3_RST_N				BIT(31)
#define BIT_DSS_3_SPEED_EN				BIT(30)
#define BIT_DSS_3_WIRE_SEL				BIT(29)

#define BIT_SHIFT_DSS_3_RO_SEL				24
#define BIT_MASK_DSS_3_RO_SEL				0x7
#define BIT_DSS_3_RO_SEL(x)				(((x) & BIT_MASK_DSS_3_RO_SEL) << BIT_SHIFT_DSS_3_RO_SEL)
#define BITS_DSS_3_RO_SEL				(BIT_MASK_DSS_3_RO_SEL << BIT_SHIFT_DSS_3_RO_SEL)
#define BIT_CLEAR_DSS_3_RO_SEL(x)			((x) & (~BITS_DSS_3_RO_SEL))
#define BIT_GET_DSS_3_RO_SEL(x)			(((x) >> BIT_SHIFT_DSS_3_RO_SEL) & BIT_MASK_DSS_3_RO_SEL)
#define BIT_SET_DSS_3_RO_SEL(x, v)			(BIT_CLEAR_DSS_3_RO_SEL(x) | BIT_DSS_3_RO_SEL(v))


#define BIT_SHIFT_DSS_3_DATA_IN			0
#define BIT_MASK_DSS_3_DATA_IN				0xfffff
#define BIT_DSS_3_DATA_IN(x)				(((x) & BIT_MASK_DSS_3_DATA_IN) << BIT_SHIFT_DSS_3_DATA_IN)
#define BITS_DSS_3_DATA_IN				(BIT_MASK_DSS_3_DATA_IN << BIT_SHIFT_DSS_3_DATA_IN)
#define BIT_CLEAR_DSS_3_DATA_IN(x)			((x) & (~BITS_DSS_3_DATA_IN))
#define BIT_GET_DSS_3_DATA_IN(x)			(((x) >> BIT_SHIFT_DSS_3_DATA_IN) & BIT_MASK_DSS_3_DATA_IN)
#define BIT_SET_DSS_3_DATA_IN(x, v)			(BIT_CLEAR_DSS_3_DATA_IN(x) | BIT_DSS_3_DATA_IN(v))


/* 2 REG_SPEED_SENSOR5			(Offset 0x1194) */

#define BIT_DSS_3_READY				BIT(31)
#define BIT_DSS_3_WSORT_GO				BIT(30)

#define BIT_SHIFT_DSS_3_COUNT_OUT			0
#define BIT_MASK_DSS_3_COUNT_OUT			0xfffff
#define BIT_DSS_3_COUNT_OUT(x)				(((x) & BIT_MASK_DSS_3_COUNT_OUT) << BIT_SHIFT_DSS_3_COUNT_OUT)
#define BITS_DSS_3_COUNT_OUT				(BIT_MASK_DSS_3_COUNT_OUT << BIT_SHIFT_DSS_3_COUNT_OUT)
#define BIT_CLEAR_DSS_3_COUNT_OUT(x)			((x) & (~BITS_DSS_3_COUNT_OUT))
#define BIT_GET_DSS_3_COUNT_OUT(x)			(((x) >> BIT_SHIFT_DSS_3_COUNT_OUT) & BIT_MASK_DSS_3_COUNT_OUT)
#define BIT_SET_DSS_3_COUNT_OUT(x, v)			(BIT_CLEAR_DSS_3_COUNT_OUT(x) | BIT_DSS_3_COUNT_OUT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXPKTBUF_1_MAX_ADDR			(Offset 0x1198) */


#define BIT_SHIFT_RXPKTBUF_SIZE			30
#define BIT_MASK_RXPKTBUF_SIZE				0x3
#define BIT_RXPKTBUF_SIZE(x)				(((x) & BIT_MASK_RXPKTBUF_SIZE) << BIT_SHIFT_RXPKTBUF_SIZE)
#define BITS_RXPKTBUF_SIZE				(BIT_MASK_RXPKTBUF_SIZE << BIT_SHIFT_RXPKTBUF_SIZE)
#define BIT_CLEAR_RXPKTBUF_SIZE(x)			((x) & (~BITS_RXPKTBUF_SIZE))
#define BIT_GET_RXPKTBUF_SIZE(x)			(((x) >> BIT_SHIFT_RXPKTBUF_SIZE) & BIT_MASK_RXPKTBUF_SIZE)
#define BIT_SET_RXPKTBUF_SIZE(x, v)			(BIT_CLEAR_RXPKTBUF_SIZE(x) | BIT_RXPKTBUF_SIZE(v))

#define BIT_RXPKTBUF_DBG_SEL				BIT(29)

#define BIT_SHIFT_RXPKTBUF_1_MAX_ADDR			0
#define BIT_MASK_RXPKTBUF_1_MAX_ADDR			0x3ffff
#define BIT_RXPKTBUF_1_MAX_ADDR(x)			(((x) & BIT_MASK_RXPKTBUF_1_MAX_ADDR) << BIT_SHIFT_RXPKTBUF_1_MAX_ADDR)
#define BITS_RXPKTBUF_1_MAX_ADDR			(BIT_MASK_RXPKTBUF_1_MAX_ADDR << BIT_SHIFT_RXPKTBUF_1_MAX_ADDR)
#define BIT_CLEAR_RXPKTBUF_1_MAX_ADDR(x)		((x) & (~BITS_RXPKTBUF_1_MAX_ADDR))
#define BIT_GET_RXPKTBUF_1_MAX_ADDR(x)			(((x) >> BIT_SHIFT_RXPKTBUF_1_MAX_ADDR) & BIT_MASK_RXPKTBUF_1_MAX_ADDR)
#define BIT_SET_RXPKTBUF_1_MAX_ADDR(x, v)		(BIT_CLEAR_RXPKTBUF_1_MAX_ADDR(x) | BIT_RXPKTBUF_1_MAX_ADDR(v))


/* 2 REG_RXFWBUF_1_MAX_ADDR			(Offset 0x119C) */


#define BIT_SHIFT_RXFWBUF_1_MAX_ADDR			0
#define BIT_MASK_RXFWBUF_1_MAX_ADDR			0xffff
#define BIT_RXFWBUF_1_MAX_ADDR(x)			(((x) & BIT_MASK_RXFWBUF_1_MAX_ADDR) << BIT_SHIFT_RXFWBUF_1_MAX_ADDR)
#define BITS_RXFWBUF_1_MAX_ADDR			(BIT_MASK_RXFWBUF_1_MAX_ADDR << BIT_SHIFT_RXFWBUF_1_MAX_ADDR)
#define BIT_CLEAR_RXFWBUF_1_MAX_ADDR(x)		((x) & (~BITS_RXFWBUF_1_MAX_ADDR))
#define BIT_GET_RXFWBUF_1_MAX_ADDR(x)			(((x) >> BIT_SHIFT_RXFWBUF_1_MAX_ADDR) & BIT_MASK_RXFWBUF_1_MAX_ADDR)
#define BIT_SET_RXFWBUF_1_MAX_ADDR(x, v)		(BIT_CLEAR_RXFWBUF_1_MAX_ADDR(x) | BIT_RXFWBUF_1_MAX_ADDR(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_IO_WRAP_ERR_FLAG_V1			(Offset 0x11A0) */

#define BIT_IO_WRAP_ERR				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXPKTBUF_1_READ			(Offset 0x11A4) */


#define BIT_SHIFT_RXPKTBUF_1_READ			0
#define BIT_MASK_RXPKTBUF_1_READ			0x3ffff
#define BIT_RXPKTBUF_1_READ(x)				(((x) & BIT_MASK_RXPKTBUF_1_READ) << BIT_SHIFT_RXPKTBUF_1_READ)
#define BITS_RXPKTBUF_1_READ				(BIT_MASK_RXPKTBUF_1_READ << BIT_SHIFT_RXPKTBUF_1_READ)
#define BIT_CLEAR_RXPKTBUF_1_READ(x)			((x) & (~BITS_RXPKTBUF_1_READ))
#define BIT_GET_RXPKTBUF_1_READ(x)			(((x) >> BIT_SHIFT_RXPKTBUF_1_READ) & BIT_MASK_RXPKTBUF_1_READ)
#define BIT_SET_RXPKTBUF_1_READ(x, v)			(BIT_CLEAR_RXPKTBUF_1_READ(x) | BIT_RXPKTBUF_1_READ(v))


/* 2 REG_RXPKTBUF_1_WRITE			(Offset 0x11A8) */


#define BIT_SHIFT_R_OQT_DBG_SEL			16
#define BIT_MASK_R_OQT_DBG_SEL				0xff
#define BIT_R_OQT_DBG_SEL(x)				(((x) & BIT_MASK_R_OQT_DBG_SEL) << BIT_SHIFT_R_OQT_DBG_SEL)
#define BITS_R_OQT_DBG_SEL				(BIT_MASK_R_OQT_DBG_SEL << BIT_SHIFT_R_OQT_DBG_SEL)
#define BIT_CLEAR_R_OQT_DBG_SEL(x)			((x) & (~BITS_R_OQT_DBG_SEL))
#define BIT_GET_R_OQT_DBG_SEL(x)			(((x) >> BIT_SHIFT_R_OQT_DBG_SEL) & BIT_MASK_R_OQT_DBG_SEL)
#define BIT_SET_R_OQT_DBG_SEL(x, v)			(BIT_CLEAR_R_OQT_DBG_SEL(x) | BIT_R_OQT_DBG_SEL(v))


#define BIT_SHIFT_R_TXPKTBF_DBG_SEL			8
#define BIT_MASK_R_TXPKTBF_DBG_SEL			0x7
#define BIT_R_TXPKTBF_DBG_SEL(x)			(((x) & BIT_MASK_R_TXPKTBF_DBG_SEL) << BIT_SHIFT_R_TXPKTBF_DBG_SEL)
#define BITS_R_TXPKTBF_DBG_SEL				(BIT_MASK_R_TXPKTBF_DBG_SEL << BIT_SHIFT_R_TXPKTBF_DBG_SEL)
#define BIT_CLEAR_R_TXPKTBF_DBG_SEL(x)			((x) & (~BITS_R_TXPKTBF_DBG_SEL))
#define BIT_GET_R_TXPKTBF_DBG_SEL(x)			(((x) >> BIT_SHIFT_R_TXPKTBF_DBG_SEL) & BIT_MASK_R_TXPKTBF_DBG_SEL)
#define BIT_SET_R_TXPKTBF_DBG_SEL(x, v)		(BIT_CLEAR_R_TXPKTBF_DBG_SEL(x) | BIT_R_TXPKTBF_DBG_SEL(v))


#define BIT_SHIFT_R_RXPKT_DBG_SEL			6
#define BIT_MASK_R_RXPKT_DBG_SEL			0x3
#define BIT_R_RXPKT_DBG_SEL(x)				(((x) & BIT_MASK_R_RXPKT_DBG_SEL) << BIT_SHIFT_R_RXPKT_DBG_SEL)
#define BITS_R_RXPKT_DBG_SEL				(BIT_MASK_R_RXPKT_DBG_SEL << BIT_SHIFT_R_RXPKT_DBG_SEL)
#define BIT_CLEAR_R_RXPKT_DBG_SEL(x)			((x) & (~BITS_R_RXPKT_DBG_SEL))
#define BIT_GET_R_RXPKT_DBG_SEL(x)			(((x) >> BIT_SHIFT_R_RXPKT_DBG_SEL) & BIT_MASK_R_RXPKT_DBG_SEL)
#define BIT_SET_R_RXPKT_DBG_SEL(x, v)			(BIT_CLEAR_R_RXPKT_DBG_SEL(x) | BIT_R_RXPKT_DBG_SEL(v))


#define BIT_SHIFT_RXPKTBUF_1_WRITE			0
#define BIT_MASK_RXPKTBUF_1_WRITE			0x3ffff
#define BIT_RXPKTBUF_1_WRITE(x)			(((x) & BIT_MASK_RXPKTBUF_1_WRITE) << BIT_SHIFT_RXPKTBUF_1_WRITE)
#define BITS_RXPKTBUF_1_WRITE				(BIT_MASK_RXPKTBUF_1_WRITE << BIT_SHIFT_RXPKTBUF_1_WRITE)
#define BIT_CLEAR_RXPKTBUF_1_WRITE(x)			((x) & (~BITS_RXPKTBUF_1_WRITE))
#define BIT_GET_RXPKTBUF_1_WRITE(x)			(((x) >> BIT_SHIFT_RXPKTBUF_1_WRITE) & BIT_MASK_RXPKTBUF_1_WRITE)
#define BIT_SET_RXPKTBUF_1_WRITE(x, v)			(BIT_CLEAR_RXPKTBUF_1_WRITE(x) | BIT_RXPKTBUF_1_WRITE(v))


#define BIT_SHIFT_R_RXPKTBF_DBG_SEL			0
#define BIT_MASK_R_RXPKTBF_DBG_SEL			0x3
#define BIT_R_RXPKTBF_DBG_SEL(x)			(((x) & BIT_MASK_R_RXPKTBF_DBG_SEL) << BIT_SHIFT_R_RXPKTBF_DBG_SEL)
#define BITS_R_RXPKTBF_DBG_SEL				(BIT_MASK_R_RXPKTBF_DBG_SEL << BIT_SHIFT_R_RXPKTBF_DBG_SEL)
#define BIT_CLEAR_R_RXPKTBF_DBG_SEL(x)			((x) & (~BITS_R_RXPKTBF_DBG_SEL))
#define BIT_GET_R_RXPKTBF_DBG_SEL(x)			(((x) >> BIT_SHIFT_R_RXPKTBF_DBG_SEL) & BIT_MASK_R_RXPKTBF_DBG_SEL)
#define BIT_SET_R_RXPKTBF_DBG_SEL(x, v)		(BIT_CLEAR_R_RXPKTBF_DBG_SEL(x) | BIT_R_RXPKTBF_DBG_SEL(v))


/* 2 REG_RFE_CTRL_PAD_E2			(Offset 0x11B0) */

#define BIT_RFE_CTRL_ANTSW_E2				BIT(16)
#define BIT_RFE_CTRL_PIN15_E2				BIT(15)
#define BIT_RFE_CTRL_PIN14_E2				BIT(14)
#define BIT_RFE_CTRL_PIN13_E2				BIT(13)
#define BIT_RFE_CTRL_PIN12_E2				BIT(12)
#define BIT_RFE_CTRL_PIN11_E2				BIT(11)
#define BIT_RFE_CTRL_PIN10_E2				BIT(10)
#define BIT_RFE_CTRL_PIN9_E2				BIT(9)
#define BIT_RFE_CTRL_PIN8_E2				BIT(8)
#define BIT_RFE_CTRL_PIN7_E2				BIT(7)
#define BIT_RFE_CTRL_PIN6_E2				BIT(6)
#define BIT_RFE_CTRL_PIN5_E2				BIT(5)
#define BIT_RFE_CTRL_PIN4_E2				BIT(4)
#define BIT_RFE_CTRL_PIN3_E2				BIT(3)
#define BIT_RFE_CTRL_PIN2_E2				BIT(2)
#define BIT_RFE_CTRL_PIN1_E2				BIT(1)
#define BIT_RFE_CTRL_PIN0_E2				BIT(0)

/* 2 REG_RFE_CTRL_PAD_SR			(Offset 0x11B4) */

#define BIT_RFE_CTRL_ANTSW_SR				BIT(16)
#define BIT_RFE_CTRL_PIN15_SR				BIT(15)
#define BIT_RFE_CTRL_PIN14_SR				BIT(14)
#define BIT_RFE_CTRL_PIN13_SR				BIT(13)
#define BIT_RFE_CTRL_PIN12_SR				BIT(12)
#define BIT_RFE_CTRL_PIN11_SR				BIT(11)
#define BIT_RFE_CTRL_PIN10_SR				BIT(10)
#define BIT_RFE_CTRL_PIN9_SR				BIT(9)
#define BIT_RFE_CTRL_PIN8_SR				BIT(8)
#define BIT_RFE_CTRL_PIN7_SR				BIT(7)
#define BIT_RFE_CTRL_PIN6_SR				BIT(6)
#define BIT_RFE_CTRL_PIN5_SR				BIT(5)
#define BIT_RFE_CTRL_PIN4_SR				BIT(4)
#define BIT_RFE_CTRL_PIN3_SR				BIT(3)
#define BIT_RFE_CTRL_PIN2_SR				BIT(2)
#define BIT_RFE_CTRL_PIN1_SR				BIT(1)
#define BIT_RFE_CTRL_PIN0_SR				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_EXT_QUEUE_REG			(Offset 0x11C0) */


#define BIT_SHIFT_PCIE_PRIORITY_SEL			0
#define BIT_MASK_PCIE_PRIORITY_SEL			0x3
#define BIT_PCIE_PRIORITY_SEL(x)			(((x) & BIT_MASK_PCIE_PRIORITY_SEL) << BIT_SHIFT_PCIE_PRIORITY_SEL)
#define BITS_PCIE_PRIORITY_SEL				(BIT_MASK_PCIE_PRIORITY_SEL << BIT_SHIFT_PCIE_PRIORITY_SEL)
#define BIT_CLEAR_PCIE_PRIORITY_SEL(x)			((x) & (~BITS_PCIE_PRIORITY_SEL))
#define BIT_GET_PCIE_PRIORITY_SEL(x)			(((x) >> BIT_SHIFT_PCIE_PRIORITY_SEL) & BIT_MASK_PCIE_PRIORITY_SEL)
#define BIT_SET_PCIE_PRIORITY_SEL(x, v)		(BIT_CLEAR_PCIE_PRIORITY_SEL(x) | BIT_PCIE_PRIORITY_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2C_PRIORITY_SEL			(Offset 0x11C0) */


#define BIT_SHIFT_H2C_PRIORITY_SEL			0
#define BIT_MASK_H2C_PRIORITY_SEL			0x3
#define BIT_H2C_PRIORITY_SEL(x)			(((x) & BIT_MASK_H2C_PRIORITY_SEL) << BIT_SHIFT_H2C_PRIORITY_SEL)
#define BITS_H2C_PRIORITY_SEL				(BIT_MASK_H2C_PRIORITY_SEL << BIT_SHIFT_H2C_PRIORITY_SEL)
#define BIT_CLEAR_H2C_PRIORITY_SEL(x)			((x) & (~BITS_H2C_PRIORITY_SEL))
#define BIT_GET_H2C_PRIORITY_SEL(x)			(((x) >> BIT_SHIFT_H2C_PRIORITY_SEL) & BIT_MASK_H2C_PRIORITY_SEL)
#define BIT_SET_H2C_PRIORITY_SEL(x, v)			(BIT_CLEAR_H2C_PRIORITY_SEL(x) | BIT_H2C_PRIORITY_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_EN_USB_CNT					BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_USB_COUNT_EN				BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_EN_PCIE_CNT				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_PCIE_COUNT_EN				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_RQPN_CNT					BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_RQPN_COUNT_EN				BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_RDE_CNT					BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_RDE_COUNT_EN				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_TDE_CNT					BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_TDE_COUNT_EN				BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_CONTROL			(Offset 0x11C4) */

#define BIT_DIS_CNT					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_CTRL			(Offset 0x11C4) */

#define BIT_DISABLE_COUNTER				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_TH				(Offset 0x11C8) */

#define BIT_CNT_ALL_MACID				BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_THRESHOLD			(Offset 0x11C8) */

#define BIT_SEL_ALL_MACID				BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_TH				(Offset 0x11C8) */


#define BIT_SHIFT_CNT_MACID				24
#define BIT_MASK_CNT_MACID				0x7f
#define BIT_CNT_MACID(x)				(((x) & BIT_MASK_CNT_MACID) << BIT_SHIFT_CNT_MACID)
#define BITS_CNT_MACID					(BIT_MASK_CNT_MACID << BIT_SHIFT_CNT_MACID)
#define BIT_CLEAR_CNT_MACID(x)				((x) & (~BITS_CNT_MACID))
#define BIT_GET_CNT_MACID(x)				(((x) >> BIT_SHIFT_CNT_MACID) & BIT_MASK_CNT_MACID)
#define BIT_SET_CNT_MACID(x, v)			(BIT_CLEAR_CNT_MACID(x) | BIT_CNT_MACID(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_THRESHOLD			(Offset 0x11C8) */


#define BIT_SHIFT_COUNTER_MACID			24
#define BIT_MASK_COUNTER_MACID				0x7f
#define BIT_COUNTER_MACID(x)				(((x) & BIT_MASK_COUNTER_MACID) << BIT_SHIFT_COUNTER_MACID)
#define BITS_COUNTER_MACID				(BIT_MASK_COUNTER_MACID << BIT_SHIFT_COUNTER_MACID)
#define BIT_CLEAR_COUNTER_MACID(x)			((x) & (~BITS_COUNTER_MACID))
#define BIT_GET_COUNTER_MACID(x)			(((x) >> BIT_SHIFT_COUNTER_MACID) & BIT_MASK_COUNTER_MACID)
#define BIT_SET_COUNTER_MACID(x, v)			(BIT_CLEAR_COUNTER_MACID(x) | BIT_COUNTER_MACID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_SET				(Offset 0x11CC) */

#define BIT_RTS_RST					BIT(24)
#define BIT_PTCL_RST					BIT(23)
#define BIT_SCH_RST					BIT(22)
#define BIT_EDCA_RST					BIT(21)
#define BIT_RQPN_RST					BIT(20)
#define BIT_USB_RST					BIT(19)
#define BIT_PCIE_RST					BIT(18)
#define BIT_RXDMA_RST					BIT(17)
#define BIT_TXDMA_RST					BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_SET				(Offset 0x11CC) */


#define BIT_SHIFT_REQUEST_RESET			16
#define BIT_MASK_REQUEST_RESET				0xffff
#define BIT_REQUEST_RESET(x)				(((x) & BIT_MASK_REQUEST_RESET) << BIT_SHIFT_REQUEST_RESET)
#define BITS_REQUEST_RESET				(BIT_MASK_REQUEST_RESET << BIT_SHIFT_REQUEST_RESET)
#define BIT_CLEAR_REQUEST_RESET(x)			((x) & (~BITS_REQUEST_RESET))
#define BIT_GET_REQUEST_RESET(x)			(((x) >> BIT_SHIFT_REQUEST_RESET) & BIT_MASK_REQUEST_RESET)
#define BIT_SET_REQUEST_RESET(x, v)			(BIT_CLEAR_REQUEST_RESET(x) | BIT_REQUEST_RESET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_SET				(Offset 0x11CC) */

#define BIT_EN_RTS_START				BIT(8)
#define BIT_EN_PTCL_START				BIT(7)
#define BIT_EN_SCH_START				BIT(6)
#define BIT_EN_EDCA_START				BIT(5)
#define BIT_EN_RQPN_START				BIT(4)
#define BIT_EN_USB_START				BIT(3)
#define BIT_EN_PCIE_START				BIT(2)
#define BIT_EN_RXDMA_START				BIT(1)
#define BIT_EN_TXDMA_START				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_SET				(Offset 0x11CC) */


#define BIT_SHIFT_REQUEST_START			0
#define BIT_MASK_REQUEST_START				0xffff
#define BIT_REQUEST_START(x)				(((x) & BIT_MASK_REQUEST_START) << BIT_SHIFT_REQUEST_START)
#define BITS_REQUEST_START				(BIT_MASK_REQUEST_START << BIT_SHIFT_REQUEST_START)
#define BIT_CLEAR_REQUEST_START(x)			((x) & (~BITS_REQUEST_START))
#define BIT_GET_REQUEST_START(x)			(((x) >> BIT_SHIFT_REQUEST_START) & BIT_MASK_REQUEST_START)
#define BIT_SET_REQUEST_START(x, v)			(BIT_CLEAR_REQUEST_START(x) | BIT_REQUEST_START(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_COUNTER_OVERFLOW			(Offset 0x11D0) */

#define BIT_RTS_OVF					BIT(8)
#define BIT_PTCL_OVF					BIT(7)
#define BIT_SCH_OVF					BIT(6)
#define BIT_EDCA_OVF					BIT(5)
#define BIT_RQPN_OVF					BIT(4)
#define BIT_USB_OVF					BIT(3)
#define BIT_PCIE_OVF					BIT(2)
#define BIT_RXDMA_OVF					BIT(1)
#define BIT_TXDMA_OVF					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_COUNTER_OVERFLOW			(Offset 0x11D0) */


#define BIT_SHIFT_CNT_OVF_REG				0
#define BIT_MASK_CNT_OVF_REG				0xffff
#define BIT_CNT_OVF_REG(x)				(((x) & BIT_MASK_CNT_OVF_REG) << BIT_SHIFT_CNT_OVF_REG)
#define BITS_CNT_OVF_REG				(BIT_MASK_CNT_OVF_REG << BIT_SHIFT_CNT_OVF_REG)
#define BIT_CLEAR_CNT_OVF_REG(x)			((x) & (~BITS_CNT_OVF_REG))
#define BIT_GET_CNT_OVF_REG(x)				(((x) >> BIT_SHIFT_CNT_OVF_REG) & BIT_MASK_CNT_OVF_REG)
#define BIT_SET_CNT_OVF_REG(x, v)			(BIT_CLEAR_CNT_OVF_REG(x) | BIT_CNT_OVF_REG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TDE_LEN_TH				(Offset 0x11D4) */


#define BIT_SHIFT_TXDMA_LEN_TH0			16
#define BIT_MASK_TXDMA_LEN_TH0				0xffff
#define BIT_TXDMA_LEN_TH0(x)				(((x) & BIT_MASK_TXDMA_LEN_TH0) << BIT_SHIFT_TXDMA_LEN_TH0)
#define BITS_TXDMA_LEN_TH0				(BIT_MASK_TXDMA_LEN_TH0 << BIT_SHIFT_TXDMA_LEN_TH0)
#define BIT_CLEAR_TXDMA_LEN_TH0(x)			((x) & (~BITS_TXDMA_LEN_TH0))
#define BIT_GET_TXDMA_LEN_TH0(x)			(((x) >> BIT_SHIFT_TXDMA_LEN_TH0) & BIT_MASK_TXDMA_LEN_TH0)
#define BIT_SET_TXDMA_LEN_TH0(x, v)			(BIT_CLEAR_TXDMA_LEN_TH0(x) | BIT_TXDMA_LEN_TH0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TXDMA_LEN_THRESHOLD			(Offset 0x11D4) */


#define BIT_SHIFT_TDE_LEN_TH1				16
#define BIT_MASK_TDE_LEN_TH1				0xffff
#define BIT_TDE_LEN_TH1(x)				(((x) & BIT_MASK_TDE_LEN_TH1) << BIT_SHIFT_TDE_LEN_TH1)
#define BITS_TDE_LEN_TH1				(BIT_MASK_TDE_LEN_TH1 << BIT_SHIFT_TDE_LEN_TH1)
#define BIT_CLEAR_TDE_LEN_TH1(x)			((x) & (~BITS_TDE_LEN_TH1))
#define BIT_GET_TDE_LEN_TH1(x)				(((x) >> BIT_SHIFT_TDE_LEN_TH1) & BIT_MASK_TDE_LEN_TH1)
#define BIT_SET_TDE_LEN_TH1(x, v)			(BIT_CLEAR_TDE_LEN_TH1(x) | BIT_TDE_LEN_TH1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_TDE_LEN_TH				(Offset 0x11D4) */


#define BIT_SHIFT_TXDMA_LEN_TH1			0
#define BIT_MASK_TXDMA_LEN_TH1				0xffff
#define BIT_TXDMA_LEN_TH1(x)				(((x) & BIT_MASK_TXDMA_LEN_TH1) << BIT_SHIFT_TXDMA_LEN_TH1)
#define BITS_TXDMA_LEN_TH1				(BIT_MASK_TXDMA_LEN_TH1 << BIT_SHIFT_TXDMA_LEN_TH1)
#define BIT_CLEAR_TXDMA_LEN_TH1(x)			((x) & (~BITS_TXDMA_LEN_TH1))
#define BIT_GET_TXDMA_LEN_TH1(x)			(((x) >> BIT_SHIFT_TXDMA_LEN_TH1) & BIT_MASK_TXDMA_LEN_TH1)
#define BIT_SET_TXDMA_LEN_TH1(x, v)			(BIT_CLEAR_TXDMA_LEN_TH1(x) | BIT_TXDMA_LEN_TH1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TXDMA_LEN_THRESHOLD			(Offset 0x11D4) */


#define BIT_SHIFT_TDE_LEN_TH0				0
#define BIT_MASK_TDE_LEN_TH0				0xffff
#define BIT_TDE_LEN_TH0(x)				(((x) & BIT_MASK_TDE_LEN_TH0) << BIT_SHIFT_TDE_LEN_TH0)
#define BITS_TDE_LEN_TH0				(BIT_MASK_TDE_LEN_TH0 << BIT_SHIFT_TDE_LEN_TH0)
#define BIT_CLEAR_TDE_LEN_TH0(x)			((x) & (~BITS_TDE_LEN_TH0))
#define BIT_GET_TDE_LEN_TH0(x)				(((x) >> BIT_SHIFT_TDE_LEN_TH0) & BIT_MASK_TDE_LEN_TH0)
#define BIT_SET_TDE_LEN_TH0(x, v)			(BIT_CLEAR_TDE_LEN_TH0(x) | BIT_TDE_LEN_TH0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RDE_LEN_TH				(Offset 0x11D8) */


#define BIT_SHIFT_RXDMA_LEN_TH0			16
#define BIT_MASK_RXDMA_LEN_TH0				0xffff
#define BIT_RXDMA_LEN_TH0(x)				(((x) & BIT_MASK_RXDMA_LEN_TH0) << BIT_SHIFT_RXDMA_LEN_TH0)
#define BITS_RXDMA_LEN_TH0				(BIT_MASK_RXDMA_LEN_TH0 << BIT_SHIFT_RXDMA_LEN_TH0)
#define BIT_CLEAR_RXDMA_LEN_TH0(x)			((x) & (~BITS_RXDMA_LEN_TH0))
#define BIT_GET_RXDMA_LEN_TH0(x)			(((x) >> BIT_SHIFT_RXDMA_LEN_TH0) & BIT_MASK_RXDMA_LEN_TH0)
#define BIT_SET_RXDMA_LEN_TH0(x, v)			(BIT_CLEAR_RXDMA_LEN_TH0(x) | BIT_RXDMA_LEN_TH0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RXDMA_LEN_THRESHOLD			(Offset 0x11D8) */


#define BIT_SHIFT_RDE_LEN_TH1				16
#define BIT_MASK_RDE_LEN_TH1				0xffff
#define BIT_RDE_LEN_TH1(x)				(((x) & BIT_MASK_RDE_LEN_TH1) << BIT_SHIFT_RDE_LEN_TH1)
#define BITS_RDE_LEN_TH1				(BIT_MASK_RDE_LEN_TH1 << BIT_SHIFT_RDE_LEN_TH1)
#define BIT_CLEAR_RDE_LEN_TH1(x)			((x) & (~BITS_RDE_LEN_TH1))
#define BIT_GET_RDE_LEN_TH1(x)				(((x) >> BIT_SHIFT_RDE_LEN_TH1) & BIT_MASK_RDE_LEN_TH1)
#define BIT_SET_RDE_LEN_TH1(x, v)			(BIT_CLEAR_RDE_LEN_TH1(x) | BIT_RDE_LEN_TH1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_RDE_LEN_TH				(Offset 0x11D8) */


#define BIT_SHIFT_RXDMA_LEN_TH1			0
#define BIT_MASK_RXDMA_LEN_TH1				0xffff
#define BIT_RXDMA_LEN_TH1(x)				(((x) & BIT_MASK_RXDMA_LEN_TH1) << BIT_SHIFT_RXDMA_LEN_TH1)
#define BITS_RXDMA_LEN_TH1				(BIT_MASK_RXDMA_LEN_TH1 << BIT_SHIFT_RXDMA_LEN_TH1)
#define BIT_CLEAR_RXDMA_LEN_TH1(x)			((x) & (~BITS_RXDMA_LEN_TH1))
#define BIT_GET_RXDMA_LEN_TH1(x)			(((x) >> BIT_SHIFT_RXDMA_LEN_TH1) & BIT_MASK_RXDMA_LEN_TH1)
#define BIT_SET_RXDMA_LEN_TH1(x, v)			(BIT_CLEAR_RXDMA_LEN_TH1(x) | BIT_RXDMA_LEN_TH1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_RXDMA_LEN_THRESHOLD			(Offset 0x11D8) */


#define BIT_SHIFT_RDE_LEN_TH0				0
#define BIT_MASK_RDE_LEN_TH0				0xffff
#define BIT_RDE_LEN_TH0(x)				(((x) & BIT_MASK_RDE_LEN_TH0) << BIT_SHIFT_RDE_LEN_TH0)
#define BITS_RDE_LEN_TH0				(BIT_MASK_RDE_LEN_TH0 << BIT_SHIFT_RDE_LEN_TH0)
#define BIT_CLEAR_RDE_LEN_TH0(x)			((x) & (~BITS_RDE_LEN_TH0))
#define BIT_GET_RDE_LEN_TH0(x)				(((x) >> BIT_SHIFT_RDE_LEN_TH0) & BIT_MASK_RDE_LEN_TH0)
#define BIT_SET_RDE_LEN_TH0(x, v)			(BIT_CLEAR_RDE_LEN_TH0(x) | BIT_RDE_LEN_TH0(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PCIE_EXEC_TIME			(Offset 0x11DC) */


#define BIT_SHIFT_COUNTER_INTERVAL_SEL			16
#define BIT_MASK_COUNTER_INTERVAL_SEL			0x3
#define BIT_COUNTER_INTERVAL_SEL(x)			(((x) & BIT_MASK_COUNTER_INTERVAL_SEL) << BIT_SHIFT_COUNTER_INTERVAL_SEL)
#define BITS_COUNTER_INTERVAL_SEL			(BIT_MASK_COUNTER_INTERVAL_SEL << BIT_SHIFT_COUNTER_INTERVAL_SEL)
#define BIT_CLEAR_COUNTER_INTERVAL_SEL(x)		((x) & (~BITS_COUNTER_INTERVAL_SEL))
#define BIT_GET_COUNTER_INTERVAL_SEL(x)		(((x) >> BIT_SHIFT_COUNTER_INTERVAL_SEL) & BIT_MASK_COUNTER_INTERVAL_SEL)
#define BIT_SET_COUNTER_INTERVAL_SEL(x, v)		(BIT_CLEAR_COUNTER_INTERVAL_SEL(x) | BIT_COUNTER_INTERVAL_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_PCIE_EXEC_TIME_THRESHOLD		(Offset 0x11DC) */


#define BIT_SHIFT_COUNT_INT_SEL			16
#define BIT_MASK_COUNT_INT_SEL				0x3
#define BIT_COUNT_INT_SEL(x)				(((x) & BIT_MASK_COUNT_INT_SEL) << BIT_SHIFT_COUNT_INT_SEL)
#define BITS_COUNT_INT_SEL				(BIT_MASK_COUNT_INT_SEL << BIT_SHIFT_COUNT_INT_SEL)
#define BIT_CLEAR_COUNT_INT_SEL(x)			((x) & (~BITS_COUNT_INT_SEL))
#define BIT_GET_COUNT_INT_SEL(x)			(((x) >> BIT_SHIFT_COUNT_INT_SEL) & BIT_MASK_COUNT_INT_SEL)
#define BIT_SET_COUNT_INT_SEL(x, v)			(BIT_CLEAR_COUNT_INT_SEL(x) | BIT_COUNT_INT_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT)


/* 2 REG_PCIE_EXEC_TIME			(Offset 0x11DC) */


#define BIT_SHIFT_PCIE_TRANS_DATA_TH1			0
#define BIT_MASK_PCIE_TRANS_DATA_TH1			0xffff
#define BIT_PCIE_TRANS_DATA_TH1(x)			(((x) & BIT_MASK_PCIE_TRANS_DATA_TH1) << BIT_SHIFT_PCIE_TRANS_DATA_TH1)
#define BITS_PCIE_TRANS_DATA_TH1			(BIT_MASK_PCIE_TRANS_DATA_TH1 << BIT_SHIFT_PCIE_TRANS_DATA_TH1)
#define BIT_CLEAR_PCIE_TRANS_DATA_TH1(x)		((x) & (~BITS_PCIE_TRANS_DATA_TH1))
#define BIT_GET_PCIE_TRANS_DATA_TH1(x)			(((x) >> BIT_SHIFT_PCIE_TRANS_DATA_TH1) & BIT_MASK_PCIE_TRANS_DATA_TH1)
#define BIT_SET_PCIE_TRANS_DATA_TH1(x, v)		(BIT_CLEAR_PCIE_TRANS_DATA_TH1(x) | BIT_PCIE_TRANS_DATA_TH1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_PCIE_EXEC_TIME_THRESHOLD		(Offset 0x11DC) */


#define BIT_SHIFT_EXEC_TIME_TH				0
#define BIT_MASK_EXEC_TIME_TH				0xffff
#define BIT_EXEC_TIME_TH(x)				(((x) & BIT_MASK_EXEC_TIME_TH) << BIT_SHIFT_EXEC_TIME_TH)
#define BITS_EXEC_TIME_TH				(BIT_MASK_EXEC_TIME_TH << BIT_SHIFT_EXEC_TIME_TH)
#define BIT_CLEAR_EXEC_TIME_TH(x)			((x) & (~BITS_EXEC_TIME_TH))
#define BIT_GET_EXEC_TIME_TH(x)			(((x) >> BIT_SHIFT_EXEC_TIME_TH) & BIT_MASK_EXEC_TIME_TH)
#define BIT_SET_EXEC_TIME_TH(x, v)			(BIT_CLEAR_EXEC_TIME_TH(x) | BIT_EXEC_TIME_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_RX_UCMD1_UAPSD0_OK_INT_EN		BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_RX_UAPSDMD1_EN			BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_RX_UCMD0_UAPSD0_OK_INT_EN		BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_RX_UAPSDMD0_EN			BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_TRIPKT_OK_INT_EN			BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_TRIGGER_PKT_EN			BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_RX_EOSP_OK_INT_EN			BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_EOSP_INT_EN			BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_RX_UCMD1_UAPSD0_OK_INT_EN		BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_RX_UAPSDMD1_EN			BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_RX_UCMD0_UAPSD0_OK_INT_EN		BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_RX_UAPSDMD0_EN			BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_TRIPKT_OK_INT_EN			BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_TRIGGER_PKT_EN			BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_RX_EOSP_OK_INT_EN			BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_EOSP_INT_EN			BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_RX_UCMD1_UAPSD0_OK_INT_EN		BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_RX_UAPSDMD1_EN			BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_RX_UCMD0_UAPSD0_OK_INT_EN		BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_RX_UAPSDMD0_EN			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_TRIPKT_OK_INT_EN			BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_TRIGGER_PKT_EN			BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_RX_EOSP_OK_INT_EN			BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_EOSP_INT_EN			BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_RX_UCMD1_UAPSD0_OK_INT_EN		BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_RX_UAPSDMD1_EN			BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_RX_UCMD0_UAPSD0_OK_INT_EN		BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_RX_UAPSDMD0_EN			BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_TRIPKT_OK_INT_EN			BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_TRIGGER_PKT_EN			BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_RX_EOSP_OK_INT_EN			BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_EOSP_INT_EN			BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_NOA2_TSFT_BIT32_TOGGLE_INT_EN		BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_EN		BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_NOA1_TSFT_BIT32_TOGGLE_INT_EN		BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_EN		BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_TX_NULL1_DONE_INT_EN			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_TX_NULL1_INT_EN			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT4_TX_NULL0_DONE_INT_EN			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI3_TX_NULL0_INT_EN			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_TX_NULL1_DONE_INT_EN			BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_TX_NULL1_INT_EN			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT3_TX_NULL0_DONE_INT_EN			BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI2_TX_NULL0_INT_EN			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_TX_NULL1_DONE_INT_EN			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_TX_NULL1_INT_EN			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT2_TX_NULL0_DONE_INT_EN			BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI1_TX_NULL0_INT_EN			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_TX_NULL1_DONE_INT_EN			BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_TX_NULL1_INT_EN			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_PORT1_TX_NULL0_DONE_INT_EN			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2IMR				(Offset 0x11E0) */

#define BIT_FS_CLI0_TX_NULL0_INT_EN			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_RX_UCMD1_UAPSD0_OK_INT		BIT(31)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_RX_UAPSDMD1_INT			BIT(31)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_RX_UCMD0_UAPSD0_OK_INT		BIT(30)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_RX_UAPSDMD0_INT			BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_TRIPKT_OK_INT			BIT(29)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_TRIGGER_PKT_INT			BIT(29)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_RX_EOSP_OK_INT			BIT(28)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_EOSP_INT				BIT(28)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_RX_UCMD1_UAPSD0_OK_INT		BIT(27)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_RX_UAPSDMD1_INT			BIT(27)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_RX_UCMD0_UAPSD0_OK_INT		BIT(26)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_RX_UAPSDMD0_INT			BIT(26)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_TRIPKT_OK_INT			BIT(25)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_TRIGGER_PKT_INT			BIT(25)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_RX_EOSP_OK_INT			BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_EOSP_INT				BIT(24)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_RX_UCMD1_UAPSD0_OK_INT		BIT(23)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_RX_UAPSDMD1_INT			BIT(23)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_RX_UCMD0_UAPSD0_OK_INT		BIT(22)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_RX_UAPSDMD0_INT			BIT(22)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_TRIPKT_OK_INT			BIT(21)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_TRIGGER_PKT_INT			BIT(21)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_RX_EOSP_OK_INT			BIT(20)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_EOSP_INT				BIT(20)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_RX_UCMD1_UAPSD0_OK_INT		BIT(19)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_RX_UAPSDMD1_INT			BIT(19)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_RX_UCMD0_UAPSD0_OK_INT		BIT(18)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_RX_UAPSDMD0_INT			BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_TRIPKT_OK_INT			BIT(17)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_TRIGGER_PKT_INT			BIT(17)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_RX_EOSP_OK_INT			BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_EOSP_INT				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_NOA2_TSFT_BIT32_TOGGLE_INT			BIT(9)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_TSF_BIT32_TOGGLE_P2P2_INT		BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_NOA1_TSFT_BIT32_TOGGLE_INT			BIT(8)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_TSF_BIT32_TOGGLE_P2P1_INT		BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_TX_NULL1_DONE_INT			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_TX_NULL1_INT			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT4_TX_NULL0_DONE_INT			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI3_TX_NULL0_INT			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_TX_NULL1_DONE_INT			BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_TX_NULL1_INT			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT3_TX_NULL0_DONE_INT			BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI2_TX_NULL0_INT			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_TX_NULL1_DONE_INT			BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_TX_NULL1_INT			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT2_TX_NULL0_DONE_INT			BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI1_TX_NULL0_INT			BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_TX_NULL1_DONE_INT			BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_TX_NULL1_INT			BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_PORT1_TX_NULL0_DONE_INT			BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FT2ISR				(Offset 0x11E4) */

#define BIT_FS_CLI0_TX_NULL0_INT			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MSG2				(Offset 0x11F0) */


#define BIT_SHIFT_FW_MSG2				0
#define BIT_MASK_FW_MSG2				0xffffffffL
#define BIT_FW_MSG2(x)					(((x) & BIT_MASK_FW_MSG2) << BIT_SHIFT_FW_MSG2)
#define BITS_FW_MSG2					(BIT_MASK_FW_MSG2 << BIT_SHIFT_FW_MSG2)
#define BIT_CLEAR_FW_MSG2(x)				((x) & (~BITS_FW_MSG2))
#define BIT_GET_FW_MSG2(x)				(((x) >> BIT_SHIFT_FW_MSG2) & BIT_MASK_FW_MSG2)
#define BIT_SET_FW_MSG2(x, v)				(BIT_CLEAR_FW_MSG2(x) | BIT_FW_MSG2(v))


/* 2 REG_MSG3				(Offset 0x11F4) */


#define BIT_SHIFT_FW_MSG3				0
#define BIT_MASK_FW_MSG3				0xffffffffL
#define BIT_FW_MSG3(x)					(((x) & BIT_MASK_FW_MSG3) << BIT_SHIFT_FW_MSG3)
#define BITS_FW_MSG3					(BIT_MASK_FW_MSG3 << BIT_SHIFT_FW_MSG3)
#define BIT_CLEAR_FW_MSG3(x)				((x) & (~BITS_FW_MSG3))
#define BIT_GET_FW_MSG3(x)				(((x) >> BIT_SHIFT_FW_MSG3) & BIT_MASK_FW_MSG3)
#define BIT_SET_FW_MSG3(x, v)				(BIT_CLEAR_FW_MSG3(x) | BIT_FW_MSG3(v))


/* 2 REG_MSG4				(Offset 0x11F8) */


#define BIT_SHIFT_FW_MSG4				0
#define BIT_MASK_FW_MSG4				0xffffffffL
#define BIT_FW_MSG4(x)					(((x) & BIT_MASK_FW_MSG4) << BIT_SHIFT_FW_MSG4)
#define BITS_FW_MSG4					(BIT_MASK_FW_MSG4 << BIT_SHIFT_FW_MSG4)
#define BIT_CLEAR_FW_MSG4(x)				((x) & (~BITS_FW_MSG4))
#define BIT_GET_FW_MSG4(x)				(((x) >> BIT_SHIFT_FW_MSG4) & BIT_MASK_FW_MSG4)
#define BIT_SET_FW_MSG4(x, v)				(BIT_CLEAR_FW_MSG4(x) | BIT_FW_MSG4(v))


/* 2 REG_MSG5				(Offset 0x11FC) */


#define BIT_SHIFT_FW_MSG5				0
#define BIT_MASK_FW_MSG5				0xffffffffL
#define BIT_FW_MSG5(x)					(((x) & BIT_MASK_FW_MSG5) << BIT_SHIFT_FW_MSG5)
#define BITS_FW_MSG5					(BIT_MASK_FW_MSG5 << BIT_SHIFT_FW_MSG5)
#define BIT_CLEAR_FW_MSG5(x)				((x) & (~BITS_FW_MSG5))
#define BIT_GET_FW_MSG5(x)				(((x) >> BIT_SHIFT_FW_MSG5) & BIT_MASK_FW_MSG5)
#define BIT_SET_FW_MSG5(x, v)				(BIT_CLEAR_FW_MSG5(x) | BIT_FW_MSG5(v))


/* 2 REG_DDMA_CH0SA				(Offset 0x1200) */


#define BIT_SHIFT_DDMACH0_SA				0
#define BIT_MASK_DDMACH0_SA				0xffffffffL
#define BIT_DDMACH0_SA(x)				(((x) & BIT_MASK_DDMACH0_SA) << BIT_SHIFT_DDMACH0_SA)
#define BITS_DDMACH0_SA				(BIT_MASK_DDMACH0_SA << BIT_SHIFT_DDMACH0_SA)
#define BIT_CLEAR_DDMACH0_SA(x)			((x) & (~BITS_DDMACH0_SA))
#define BIT_GET_DDMACH0_SA(x)				(((x) >> BIT_SHIFT_DDMACH0_SA) & BIT_MASK_DDMACH0_SA)
#define BIT_SET_DDMACH0_SA(x, v)			(BIT_CLEAR_DDMACH0_SA(x) | BIT_DDMACH0_SA(v))


/* 2 REG_DDMA_CH0DA				(Offset 0x1204) */


#define BIT_SHIFT_DDMACH0_DA				0
#define BIT_MASK_DDMACH0_DA				0xffffffffL
#define BIT_DDMACH0_DA(x)				(((x) & BIT_MASK_DDMACH0_DA) << BIT_SHIFT_DDMACH0_DA)
#define BITS_DDMACH0_DA				(BIT_MASK_DDMACH0_DA << BIT_SHIFT_DDMACH0_DA)
#define BIT_CLEAR_DDMACH0_DA(x)			((x) & (~BITS_DDMACH0_DA))
#define BIT_GET_DDMACH0_DA(x)				(((x) >> BIT_SHIFT_DDMACH0_DA) & BIT_MASK_DDMACH0_DA)
#define BIT_SET_DDMACH0_DA(x, v)			(BIT_CLEAR_DDMACH0_DA(x) | BIT_DDMACH0_DA(v))


/* 2 REG_DDMA_CH0CTRL			(Offset 0x1208) */

#define BIT_DDMACH0_OWN				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DDMA_CH0CTRL			(Offset 0x1208) */

#define BIT_DDMACH0_ERR_MON				BIT(30)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH0CTRL			(Offset 0x1208) */

#define BIT_DDMACH0_IDMEM_ERR				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH0CTRL			(Offset 0x1208) */

#define BIT_DDMACH0_CHKSUM_EN				BIT(29)
#define BIT_DDMACH0_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH0_CHKSUM_STS				BIT(27)
#define BIT_DDMACH0_DDMA_MODE				BIT(26)
#define BIT_DDMACH0_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH0_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH0_DLEN				0
#define BIT_MASK_DDMACH0_DLEN				0x3ffff
#define BIT_DDMACH0_DLEN(x)				(((x) & BIT_MASK_DDMACH0_DLEN) << BIT_SHIFT_DDMACH0_DLEN)
#define BITS_DDMACH0_DLEN				(BIT_MASK_DDMACH0_DLEN << BIT_SHIFT_DDMACH0_DLEN)
#define BIT_CLEAR_DDMACH0_DLEN(x)			((x) & (~BITS_DDMACH0_DLEN))
#define BIT_GET_DDMACH0_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH0_DLEN) & BIT_MASK_DDMACH0_DLEN)
#define BIT_SET_DDMACH0_DLEN(x, v)			(BIT_CLEAR_DDMACH0_DLEN(x) | BIT_DDMACH0_DLEN(v))


/* 2 REG_DDMA_CH1SA				(Offset 0x1210) */


#define BIT_SHIFT_DDMACH1_SA				0
#define BIT_MASK_DDMACH1_SA				0xffffffffL
#define BIT_DDMACH1_SA(x)				(((x) & BIT_MASK_DDMACH1_SA) << BIT_SHIFT_DDMACH1_SA)
#define BITS_DDMACH1_SA				(BIT_MASK_DDMACH1_SA << BIT_SHIFT_DDMACH1_SA)
#define BIT_CLEAR_DDMACH1_SA(x)			((x) & (~BITS_DDMACH1_SA))
#define BIT_GET_DDMACH1_SA(x)				(((x) >> BIT_SHIFT_DDMACH1_SA) & BIT_MASK_DDMACH1_SA)
#define BIT_SET_DDMACH1_SA(x, v)			(BIT_CLEAR_DDMACH1_SA(x) | BIT_DDMACH1_SA(v))


/* 2 REG_DDMA_CH1DA				(Offset 0x1214) */


#define BIT_SHIFT_DDMACH1_DA				0
#define BIT_MASK_DDMACH1_DA				0xffffffffL
#define BIT_DDMACH1_DA(x)				(((x) & BIT_MASK_DDMACH1_DA) << BIT_SHIFT_DDMACH1_DA)
#define BITS_DDMACH1_DA				(BIT_MASK_DDMACH1_DA << BIT_SHIFT_DDMACH1_DA)
#define BIT_CLEAR_DDMACH1_DA(x)			((x) & (~BITS_DDMACH1_DA))
#define BIT_GET_DDMACH1_DA(x)				(((x) >> BIT_SHIFT_DDMACH1_DA) & BIT_MASK_DDMACH1_DA)
#define BIT_SET_DDMACH1_DA(x, v)			(BIT_CLEAR_DDMACH1_DA(x) | BIT_DDMACH1_DA(v))


/* 2 REG_DDMA_CH1CTRL			(Offset 0x1218) */

#define BIT_DDMACH1_OWN				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DDMA_CH1CTRL			(Offset 0x1218) */

#define BIT_DDMACH1_ERR_MON				BIT(30)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH1CTRL			(Offset 0x1218) */

#define BIT_DDMACH1_IDMEM_ERR				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH1CTRL			(Offset 0x1218) */

#define BIT_DDMACH1_CHKSUM_EN				BIT(29)
#define BIT_DDMACH1_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH1_CHKSUM_STS				BIT(27)
#define BIT_DDMACH1_DDMA_MODE				BIT(26)
#define BIT_DDMACH1_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH1_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH1_DLEN				0
#define BIT_MASK_DDMACH1_DLEN				0x3ffff
#define BIT_DDMACH1_DLEN(x)				(((x) & BIT_MASK_DDMACH1_DLEN) << BIT_SHIFT_DDMACH1_DLEN)
#define BITS_DDMACH1_DLEN				(BIT_MASK_DDMACH1_DLEN << BIT_SHIFT_DDMACH1_DLEN)
#define BIT_CLEAR_DDMACH1_DLEN(x)			((x) & (~BITS_DDMACH1_DLEN))
#define BIT_GET_DDMACH1_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH1_DLEN) & BIT_MASK_DDMACH1_DLEN)
#define BIT_SET_DDMACH1_DLEN(x, v)			(BIT_CLEAR_DDMACH1_DLEN(x) | BIT_DDMACH1_DLEN(v))


/* 2 REG_DDMA_CH2SA				(Offset 0x1220) */


#define BIT_SHIFT_DDMACH2_SA				0
#define BIT_MASK_DDMACH2_SA				0xffffffffL
#define BIT_DDMACH2_SA(x)				(((x) & BIT_MASK_DDMACH2_SA) << BIT_SHIFT_DDMACH2_SA)
#define BITS_DDMACH2_SA				(BIT_MASK_DDMACH2_SA << BIT_SHIFT_DDMACH2_SA)
#define BIT_CLEAR_DDMACH2_SA(x)			((x) & (~BITS_DDMACH2_SA))
#define BIT_GET_DDMACH2_SA(x)				(((x) >> BIT_SHIFT_DDMACH2_SA) & BIT_MASK_DDMACH2_SA)
#define BIT_SET_DDMACH2_SA(x, v)			(BIT_CLEAR_DDMACH2_SA(x) | BIT_DDMACH2_SA(v))


/* 2 REG_DDMA_CH2DA				(Offset 0x1224) */


#define BIT_SHIFT_DDMACH2_DA				0
#define BIT_MASK_DDMACH2_DA				0xffffffffL
#define BIT_DDMACH2_DA(x)				(((x) & BIT_MASK_DDMACH2_DA) << BIT_SHIFT_DDMACH2_DA)
#define BITS_DDMACH2_DA				(BIT_MASK_DDMACH2_DA << BIT_SHIFT_DDMACH2_DA)
#define BIT_CLEAR_DDMACH2_DA(x)			((x) & (~BITS_DDMACH2_DA))
#define BIT_GET_DDMACH2_DA(x)				(((x) >> BIT_SHIFT_DDMACH2_DA) & BIT_MASK_DDMACH2_DA)
#define BIT_SET_DDMACH2_DA(x, v)			(BIT_CLEAR_DDMACH2_DA(x) | BIT_DDMACH2_DA(v))


/* 2 REG_DDMA_CH2CTRL			(Offset 0x1228) */

#define BIT_DDMACH2_OWN				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DDMA_CH2CTRL			(Offset 0x1228) */

#define BIT_DDMACH2_ERR_MON				BIT(30)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH2CTRL			(Offset 0x1228) */

#define BIT_DDMACH2_IDMEM_ERR				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH2CTRL			(Offset 0x1228) */

#define BIT_DDMACH2_CHKSUM_EN				BIT(29)
#define BIT_DDMACH2_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH2_CHKSUM_STS				BIT(27)
#define BIT_DDMACH2_DDMA_MODE				BIT(26)
#define BIT_DDMACH2_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH2_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH2_DLEN				0
#define BIT_MASK_DDMACH2_DLEN				0x3ffff
#define BIT_DDMACH2_DLEN(x)				(((x) & BIT_MASK_DDMACH2_DLEN) << BIT_SHIFT_DDMACH2_DLEN)
#define BITS_DDMACH2_DLEN				(BIT_MASK_DDMACH2_DLEN << BIT_SHIFT_DDMACH2_DLEN)
#define BIT_CLEAR_DDMACH2_DLEN(x)			((x) & (~BITS_DDMACH2_DLEN))
#define BIT_GET_DDMACH2_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH2_DLEN) & BIT_MASK_DDMACH2_DLEN)
#define BIT_SET_DDMACH2_DLEN(x, v)			(BIT_CLEAR_DDMACH2_DLEN(x) | BIT_DDMACH2_DLEN(v))


/* 2 REG_DDMA_CH3SA				(Offset 0x1230) */


#define BIT_SHIFT_DDMACH3_SA				0
#define BIT_MASK_DDMACH3_SA				0xffffffffL
#define BIT_DDMACH3_SA(x)				(((x) & BIT_MASK_DDMACH3_SA) << BIT_SHIFT_DDMACH3_SA)
#define BITS_DDMACH3_SA				(BIT_MASK_DDMACH3_SA << BIT_SHIFT_DDMACH3_SA)
#define BIT_CLEAR_DDMACH3_SA(x)			((x) & (~BITS_DDMACH3_SA))
#define BIT_GET_DDMACH3_SA(x)				(((x) >> BIT_SHIFT_DDMACH3_SA) & BIT_MASK_DDMACH3_SA)
#define BIT_SET_DDMACH3_SA(x, v)			(BIT_CLEAR_DDMACH3_SA(x) | BIT_DDMACH3_SA(v))


/* 2 REG_DDMA_CH3DA				(Offset 0x1234) */


#define BIT_SHIFT_DDMACH3_DA				0
#define BIT_MASK_DDMACH3_DA				0xffffffffL
#define BIT_DDMACH3_DA(x)				(((x) & BIT_MASK_DDMACH3_DA) << BIT_SHIFT_DDMACH3_DA)
#define BITS_DDMACH3_DA				(BIT_MASK_DDMACH3_DA << BIT_SHIFT_DDMACH3_DA)
#define BIT_CLEAR_DDMACH3_DA(x)			((x) & (~BITS_DDMACH3_DA))
#define BIT_GET_DDMACH3_DA(x)				(((x) >> BIT_SHIFT_DDMACH3_DA) & BIT_MASK_DDMACH3_DA)
#define BIT_SET_DDMACH3_DA(x, v)			(BIT_CLEAR_DDMACH3_DA(x) | BIT_DDMACH3_DA(v))


/* 2 REG_DDMA_CH3CTRL			(Offset 0x1238) */

#define BIT_DDMACH3_OWN				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DDMA_CH3CTRL			(Offset 0x1238) */

#define BIT_DDMACH3_ERR_MON				BIT(30)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH3CTRL			(Offset 0x1238) */

#define BIT_DDMACH3_IDMEM_ERR				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH3CTRL			(Offset 0x1238) */

#define BIT_DDMACH3_CHKSUM_EN				BIT(29)
#define BIT_DDMACH3_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH3_CHKSUM_STS				BIT(27)
#define BIT_DDMACH3_DDMA_MODE				BIT(26)
#define BIT_DDMACH3_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH3_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH3_DLEN				0
#define BIT_MASK_DDMACH3_DLEN				0x3ffff
#define BIT_DDMACH3_DLEN(x)				(((x) & BIT_MASK_DDMACH3_DLEN) << BIT_SHIFT_DDMACH3_DLEN)
#define BITS_DDMACH3_DLEN				(BIT_MASK_DDMACH3_DLEN << BIT_SHIFT_DDMACH3_DLEN)
#define BIT_CLEAR_DDMACH3_DLEN(x)			((x) & (~BITS_DDMACH3_DLEN))
#define BIT_GET_DDMACH3_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH3_DLEN) & BIT_MASK_DDMACH3_DLEN)
#define BIT_SET_DDMACH3_DLEN(x, v)			(BIT_CLEAR_DDMACH3_DLEN(x) | BIT_DDMACH3_DLEN(v))


/* 2 REG_DDMA_CH4SA				(Offset 0x1240) */


#define BIT_SHIFT_DDMACH4_SA				0
#define BIT_MASK_DDMACH4_SA				0xffffffffL
#define BIT_DDMACH4_SA(x)				(((x) & BIT_MASK_DDMACH4_SA) << BIT_SHIFT_DDMACH4_SA)
#define BITS_DDMACH4_SA				(BIT_MASK_DDMACH4_SA << BIT_SHIFT_DDMACH4_SA)
#define BIT_CLEAR_DDMACH4_SA(x)			((x) & (~BITS_DDMACH4_SA))
#define BIT_GET_DDMACH4_SA(x)				(((x) >> BIT_SHIFT_DDMACH4_SA) & BIT_MASK_DDMACH4_SA)
#define BIT_SET_DDMACH4_SA(x, v)			(BIT_CLEAR_DDMACH4_SA(x) | BIT_DDMACH4_SA(v))


/* 2 REG_DDMA_CH4DA				(Offset 0x1244) */


#define BIT_SHIFT_DDMACH4_DA				0
#define BIT_MASK_DDMACH4_DA				0xffffffffL
#define BIT_DDMACH4_DA(x)				(((x) & BIT_MASK_DDMACH4_DA) << BIT_SHIFT_DDMACH4_DA)
#define BITS_DDMACH4_DA				(BIT_MASK_DDMACH4_DA << BIT_SHIFT_DDMACH4_DA)
#define BIT_CLEAR_DDMACH4_DA(x)			((x) & (~BITS_DDMACH4_DA))
#define BIT_GET_DDMACH4_DA(x)				(((x) >> BIT_SHIFT_DDMACH4_DA) & BIT_MASK_DDMACH4_DA)
#define BIT_SET_DDMACH4_DA(x, v)			(BIT_CLEAR_DDMACH4_DA(x) | BIT_DDMACH4_DA(v))


/* 2 REG_DDMA_CH4CTRL			(Offset 0x1248) */

#define BIT_DDMACH4_OWN				BIT(31)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_DDMA_CH4CTRL			(Offset 0x1248) */

#define BIT_DDMACH4_ERR_MON				BIT(30)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH4CTRL			(Offset 0x1248) */

#define BIT_DDMACH4_IDMEM_ERR				BIT(30)
#define BIT_DDMACH5_IDMEM_ERR				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_CH4CTRL			(Offset 0x1248) */

#define BIT_DDMACH4_CHKSUM_EN				BIT(29)
#define BIT_DDMACH4_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH4_CHKSUM_STS				BIT(27)
#define BIT_DDMACH4_DDMA_MODE				BIT(26)
#define BIT_DDMACH4_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH4_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH4_DLEN				0
#define BIT_MASK_DDMACH4_DLEN				0x3ffff
#define BIT_DDMACH4_DLEN(x)				(((x) & BIT_MASK_DDMACH4_DLEN) << BIT_SHIFT_DDMACH4_DLEN)
#define BITS_DDMACH4_DLEN				(BIT_MASK_DDMACH4_DLEN << BIT_SHIFT_DDMACH4_DLEN)
#define BIT_CLEAR_DDMACH4_DLEN(x)			((x) & (~BITS_DDMACH4_DLEN))
#define BIT_GET_DDMACH4_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH4_DLEN) & BIT_MASK_DDMACH4_DLEN)
#define BIT_SET_DDMACH4_DLEN(x, v)			(BIT_CLEAR_DDMACH4_DLEN(x) | BIT_DDMACH4_DLEN(v))


/* 2 REG_DDMA_CH5SA				(Offset 0x1250) */


#define BIT_SHIFT_DDMACH5_SA				0
#define BIT_MASK_DDMACH5_SA				0xffffffffL
#define BIT_DDMACH5_SA(x)				(((x) & BIT_MASK_DDMACH5_SA) << BIT_SHIFT_DDMACH5_SA)
#define BITS_DDMACH5_SA				(BIT_MASK_DDMACH5_SA << BIT_SHIFT_DDMACH5_SA)
#define BIT_CLEAR_DDMACH5_SA(x)			((x) & (~BITS_DDMACH5_SA))
#define BIT_GET_DDMACH5_SA(x)				(((x) >> BIT_SHIFT_DDMACH5_SA) & BIT_MASK_DDMACH5_SA)
#define BIT_SET_DDMACH5_SA(x, v)			(BIT_CLEAR_DDMACH5_SA(x) | BIT_DDMACH5_SA(v))


/* 2 REG_DDMA_CH5DA				(Offset 0x1254) */

#define BIT_DDMACH5_OWN				BIT(31)
#define BIT_DDMACH5_CHKSUM_EN				BIT(29)
#define BIT_DDMACH5_DA_W_DISABLE			BIT(28)
#define BIT_DDMACH5_CHKSUM_STS				BIT(27)
#define BIT_DDMACH5_DDMA_MODE				BIT(26)
#define BIT_DDMACH5_RESET_CHKSUM_STS			BIT(25)
#define BIT_DDMACH5_CHKSUM_CONT			BIT(24)

#define BIT_SHIFT_DDMACH5_DA				0
#define BIT_MASK_DDMACH5_DA				0xffffffffL
#define BIT_DDMACH5_DA(x)				(((x) & BIT_MASK_DDMACH5_DA) << BIT_SHIFT_DDMACH5_DA)
#define BITS_DDMACH5_DA				(BIT_MASK_DDMACH5_DA << BIT_SHIFT_DDMACH5_DA)
#define BIT_CLEAR_DDMACH5_DA(x)			((x) & (~BITS_DDMACH5_DA))
#define BIT_GET_DDMACH5_DA(x)				(((x) >> BIT_SHIFT_DDMACH5_DA) & BIT_MASK_DDMACH5_DA)
#define BIT_SET_DDMACH5_DA(x, v)			(BIT_CLEAR_DDMACH5_DA(x) | BIT_DDMACH5_DA(v))


#define BIT_SHIFT_DDMACH5_DLEN				0
#define BIT_MASK_DDMACH5_DLEN				0x3ffff
#define BIT_DDMACH5_DLEN(x)				(((x) & BIT_MASK_DDMACH5_DLEN) << BIT_SHIFT_DDMACH5_DLEN)
#define BITS_DDMACH5_DLEN				(BIT_MASK_DDMACH5_DLEN << BIT_SHIFT_DDMACH5_DLEN)
#define BIT_CLEAR_DDMACH5_DLEN(x)			((x) & (~BITS_DDMACH5_DLEN))
#define BIT_GET_DDMACH5_DLEN(x)			(((x) >> BIT_SHIFT_DDMACH5_DLEN) & BIT_MASK_DDMACH5_DLEN)
#define BIT_SET_DDMACH5_DLEN(x, v)			(BIT_CLEAR_DDMACH5_DLEN(x) | BIT_DDMACH5_DLEN(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_REG_DDMA_CH5CTRL			(Offset 0x1258) */

#define BIT_DDMACH5_ERR_MON				BIT(30)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_DDMA_INT_MSK			(Offset 0x12E0) */

#define BIT_DDMACH5_MSK				BIT(5)
#define BIT_DDMACH4_MSK				BIT(4)
#define BIT_DDMACH3_MSK				BIT(3)
#define BIT_DDMACH2_MSK				BIT(2)
#define BIT_DDMACH1_MSK				BIT(1)
#define BIT_DDMACH0_MSK				BIT(0)

/* 2 REG_DDMA_CHSTATUS			(Offset 0x12E8) */

#define BIT_DDMACH5_BUSY				BIT(5)
#define BIT_DDMACH4_BUSY				BIT(4)
#define BIT_DDMACH3_BUSY				BIT(3)
#define BIT_DDMACH2_BUSY				BIT(2)
#define BIT_DDMACH1_BUSY				BIT(1)
#define BIT_DDMACH0_BUSY				BIT(0)

/* 2 REG_DDMA_CHKSUM				(Offset 0x12F0) */


#define BIT_SHIFT_IDDMA0_CHKSUM			0
#define BIT_MASK_IDDMA0_CHKSUM				0xffff
#define BIT_IDDMA0_CHKSUM(x)				(((x) & BIT_MASK_IDDMA0_CHKSUM) << BIT_SHIFT_IDDMA0_CHKSUM)
#define BITS_IDDMA0_CHKSUM				(BIT_MASK_IDDMA0_CHKSUM << BIT_SHIFT_IDDMA0_CHKSUM)
#define BIT_CLEAR_IDDMA0_CHKSUM(x)			((x) & (~BITS_IDDMA0_CHKSUM))
#define BIT_GET_IDDMA0_CHKSUM(x)			(((x) >> BIT_SHIFT_IDDMA0_CHKSUM) & BIT_MASK_IDDMA0_CHKSUM)
#define BIT_SET_IDDMA0_CHKSUM(x, v)			(BIT_CLEAR_IDDMA0_CHKSUM(x) | BIT_IDDMA0_CHKSUM(v))


/* 2 REG_DDMA_MONITOR			(Offset 0x12FC) */

#define BIT_IDDMA0_PERMU_UNDERFLOW			BIT(14)
#define BIT_IDDMA0_FIFO_UNDERFLOW			BIT(13)
#define BIT_IDDMA0_FIFO_OVERFLOW			BIT(12)
#define BIT_CH5_ERR					BIT(5)
#define BIT_CH4_ERR					BIT(4)
#define BIT_CH3_ERR					BIT(3)
#define BIT_CH2_ERR					BIT(2)
#define BIT_CH1_ERR					BIT(1)
#define BIT_CH0_ERR					BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_STC_INT_CS				(Offset 0x1300) */

#define BIT_STC_INT_EN					BIT(31)

#define BIT_SHIFT_STC_INT_FLAG				16
#define BIT_MASK_STC_INT_FLAG				0xff
#define BIT_STC_INT_FLAG(x)				(((x) & BIT_MASK_STC_INT_FLAG) << BIT_SHIFT_STC_INT_FLAG)
#define BITS_STC_INT_FLAG				(BIT_MASK_STC_INT_FLAG << BIT_SHIFT_STC_INT_FLAG)
#define BIT_CLEAR_STC_INT_FLAG(x)			((x) & (~BITS_STC_INT_FLAG))
#define BIT_GET_STC_INT_FLAG(x)			(((x) >> BIT_SHIFT_STC_INT_FLAG) & BIT_MASK_STC_INT_FLAG)
#define BIT_SET_STC_INT_FLAG(x, v)			(BIT_CLEAR_STC_INT_FLAG(x) | BIT_STC_INT_FLAG(v))


#define BIT_SHIFT_STC_INT_IDX				8
#define BIT_MASK_STC_INT_IDX				0x7
#define BIT_STC_INT_IDX(x)				(((x) & BIT_MASK_STC_INT_IDX) << BIT_SHIFT_STC_INT_IDX)
#define BITS_STC_INT_IDX				(BIT_MASK_STC_INT_IDX << BIT_SHIFT_STC_INT_IDX)
#define BIT_CLEAR_STC_INT_IDX(x)			((x) & (~BITS_STC_INT_IDX))
#define BIT_GET_STC_INT_IDX(x)				(((x) >> BIT_SHIFT_STC_INT_IDX) & BIT_MASK_STC_INT_IDX)
#define BIT_SET_STC_INT_IDX(x, v)			(BIT_CLEAR_STC_INT_IDX(x) | BIT_STC_INT_IDX(v))


#define BIT_SHIFT_STC_INT_REALTIME_CS			0
#define BIT_MASK_STC_INT_REALTIME_CS			0x3f
#define BIT_STC_INT_REALTIME_CS(x)			(((x) & BIT_MASK_STC_INT_REALTIME_CS) << BIT_SHIFT_STC_INT_REALTIME_CS)
#define BITS_STC_INT_REALTIME_CS			(BIT_MASK_STC_INT_REALTIME_CS << BIT_SHIFT_STC_INT_REALTIME_CS)
#define BIT_CLEAR_STC_INT_REALTIME_CS(x)		((x) & (~BITS_STC_INT_REALTIME_CS))
#define BIT_GET_STC_INT_REALTIME_CS(x)			(((x) >> BIT_SHIFT_STC_INT_REALTIME_CS) & BIT_MASK_STC_INT_REALTIME_CS)
#define BIT_SET_STC_INT_REALTIME_CS(x, v)		(BIT_CLEAR_STC_INT_REALTIME_CS(x) | BIT_STC_INT_REALTIME_CS(v))


/* 2 REG_ST_INT_CFG				(Offset 0x1304) */

#define BIT_STC_INT_GRP_EN				BIT(31)

#define BIT_SHIFT_STC_INT_EXPECT_LS			8
#define BIT_MASK_STC_INT_EXPECT_LS			0x3f
#define BIT_STC_INT_EXPECT_LS(x)			(((x) & BIT_MASK_STC_INT_EXPECT_LS) << BIT_SHIFT_STC_INT_EXPECT_LS)
#define BITS_STC_INT_EXPECT_LS				(BIT_MASK_STC_INT_EXPECT_LS << BIT_SHIFT_STC_INT_EXPECT_LS)
#define BIT_CLEAR_STC_INT_EXPECT_LS(x)			((x) & (~BITS_STC_INT_EXPECT_LS))
#define BIT_GET_STC_INT_EXPECT_LS(x)			(((x) >> BIT_SHIFT_STC_INT_EXPECT_LS) & BIT_MASK_STC_INT_EXPECT_LS)
#define BIT_SET_STC_INT_EXPECT_LS(x, v)		(BIT_CLEAR_STC_INT_EXPECT_LS(x) | BIT_STC_INT_EXPECT_LS(v))


#define BIT_SHIFT_STC_INT_EXPECT_CS			0
#define BIT_MASK_STC_INT_EXPECT_CS			0x3f
#define BIT_STC_INT_EXPECT_CS(x)			(((x) & BIT_MASK_STC_INT_EXPECT_CS) << BIT_SHIFT_STC_INT_EXPECT_CS)
#define BITS_STC_INT_EXPECT_CS				(BIT_MASK_STC_INT_EXPECT_CS << BIT_SHIFT_STC_INT_EXPECT_CS)
#define BIT_CLEAR_STC_INT_EXPECT_CS(x)			((x) & (~BITS_STC_INT_EXPECT_CS))
#define BIT_GET_STC_INT_EXPECT_CS(x)			(((x) >> BIT_SHIFT_STC_INT_EXPECT_CS) & BIT_MASK_STC_INT_EXPECT_CS)
#define BIT_SET_STC_INT_EXPECT_CS(x, v)		(BIT_CLEAR_STC_INT_EXPECT_CS(x) | BIT_STC_INT_EXPECT_CS(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH4_ACH5_TXBD_NUM			(Offset 0x130C) */

#define BIT_PCIE_ACH5_FLAG				BIT(30)

#define BIT_SHIFT_ACH5_DESC_MODE			28
#define BIT_MASK_ACH5_DESC_MODE			0x3
#define BIT_ACH5_DESC_MODE(x)				(((x) & BIT_MASK_ACH5_DESC_MODE) << BIT_SHIFT_ACH5_DESC_MODE)
#define BITS_ACH5_DESC_MODE				(BIT_MASK_ACH5_DESC_MODE << BIT_SHIFT_ACH5_DESC_MODE)
#define BIT_CLEAR_ACH5_DESC_MODE(x)			((x) & (~BITS_ACH5_DESC_MODE))
#define BIT_GET_ACH5_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH5_DESC_MODE) & BIT_MASK_ACH5_DESC_MODE)
#define BIT_SET_ACH5_DESC_MODE(x, v)			(BIT_CLEAR_ACH5_DESC_MODE(x) | BIT_ACH5_DESC_MODE(v))


#define BIT_SHIFT_ACH5_DESC_NUM			16
#define BIT_MASK_ACH5_DESC_NUM				0xfff
#define BIT_ACH5_DESC_NUM(x)				(((x) & BIT_MASK_ACH5_DESC_NUM) << BIT_SHIFT_ACH5_DESC_NUM)
#define BITS_ACH5_DESC_NUM				(BIT_MASK_ACH5_DESC_NUM << BIT_SHIFT_ACH5_DESC_NUM)
#define BIT_CLEAR_ACH5_DESC_NUM(x)			((x) & (~BITS_ACH5_DESC_NUM))
#define BIT_GET_ACH5_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH5_DESC_NUM) & BIT_MASK_ACH5_DESC_NUM)
#define BIT_SET_ACH5_DESC_NUM(x, v)			(BIT_CLEAR_ACH5_DESC_NUM(x) | BIT_ACH5_DESC_NUM(v))

#define BIT_PCIE_ACH4_FLAG				BIT(14)

#define BIT_SHIFT_ACH4_DESC_MODE			12
#define BIT_MASK_ACH4_DESC_MODE			0x3
#define BIT_ACH4_DESC_MODE(x)				(((x) & BIT_MASK_ACH4_DESC_MODE) << BIT_SHIFT_ACH4_DESC_MODE)
#define BITS_ACH4_DESC_MODE				(BIT_MASK_ACH4_DESC_MODE << BIT_SHIFT_ACH4_DESC_MODE)
#define BIT_CLEAR_ACH4_DESC_MODE(x)			((x) & (~BITS_ACH4_DESC_MODE))
#define BIT_GET_ACH4_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH4_DESC_MODE) & BIT_MASK_ACH4_DESC_MODE)
#define BIT_SET_ACH4_DESC_MODE(x, v)			(BIT_CLEAR_ACH4_DESC_MODE(x) | BIT_ACH4_DESC_MODE(v))


#define BIT_SHIFT_ACH4_DESC_NUM			0
#define BIT_MASK_ACH4_DESC_NUM				0xfff
#define BIT_ACH4_DESC_NUM(x)				(((x) & BIT_MASK_ACH4_DESC_NUM) << BIT_SHIFT_ACH4_DESC_NUM)
#define BITS_ACH4_DESC_NUM				(BIT_MASK_ACH4_DESC_NUM << BIT_SHIFT_ACH4_DESC_NUM)
#define BIT_CLEAR_ACH4_DESC_NUM(x)			((x) & (~BITS_ACH4_DESC_NUM))
#define BIT_GET_ACH4_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH4_DESC_NUM) & BIT_MASK_ACH4_DESC_NUM)
#define BIT_SET_ACH4_DESC_NUM(x, v)			(BIT_CLEAR_ACH4_DESC_NUM(x) | BIT_ACH4_DESC_NUM(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMU_DLY_CTRL			(Offset 0x1310) */

#define BIT_CMU_DLY_EN					BIT(31)
#define BIT_CMU_DLY_MODE				BIT(30)

#define BIT_SHIFT_CMU_DLY_PRE_DIV			0
#define BIT_MASK_CMU_DLY_PRE_DIV			0xff
#define BIT_CMU_DLY_PRE_DIV(x)				(((x) & BIT_MASK_CMU_DLY_PRE_DIV) << BIT_SHIFT_CMU_DLY_PRE_DIV)
#define BITS_CMU_DLY_PRE_DIV				(BIT_MASK_CMU_DLY_PRE_DIV << BIT_SHIFT_CMU_DLY_PRE_DIV)
#define BIT_CLEAR_CMU_DLY_PRE_DIV(x)			((x) & (~BITS_CMU_DLY_PRE_DIV))
#define BIT_GET_CMU_DLY_PRE_DIV(x)			(((x) >> BIT_SHIFT_CMU_DLY_PRE_DIV) & BIT_MASK_CMU_DLY_PRE_DIV)
#define BIT_SET_CMU_DLY_PRE_DIV(x, v)			(BIT_CLEAR_CMU_DLY_PRE_DIV(x) | BIT_CMU_DLY_PRE_DIV(v))


/* 2 REG_CMU_DLY_CFG				(Offset 0x1314) */


#define BIT_SHIFT_CMU_DLY_LTR_A2I			24
#define BIT_MASK_CMU_DLY_LTR_A2I			0xff
#define BIT_CMU_DLY_LTR_A2I(x)				(((x) & BIT_MASK_CMU_DLY_LTR_A2I) << BIT_SHIFT_CMU_DLY_LTR_A2I)
#define BITS_CMU_DLY_LTR_A2I				(BIT_MASK_CMU_DLY_LTR_A2I << BIT_SHIFT_CMU_DLY_LTR_A2I)
#define BIT_CLEAR_CMU_DLY_LTR_A2I(x)			((x) & (~BITS_CMU_DLY_LTR_A2I))
#define BIT_GET_CMU_DLY_LTR_A2I(x)			(((x) >> BIT_SHIFT_CMU_DLY_LTR_A2I) & BIT_MASK_CMU_DLY_LTR_A2I)
#define BIT_SET_CMU_DLY_LTR_A2I(x, v)			(BIT_CLEAR_CMU_DLY_LTR_A2I(x) | BIT_CMU_DLY_LTR_A2I(v))


#define BIT_SHIFT_CMU_DLY_LTR_I2A			16
#define BIT_MASK_CMU_DLY_LTR_I2A			0xff
#define BIT_CMU_DLY_LTR_I2A(x)				(((x) & BIT_MASK_CMU_DLY_LTR_I2A) << BIT_SHIFT_CMU_DLY_LTR_I2A)
#define BITS_CMU_DLY_LTR_I2A				(BIT_MASK_CMU_DLY_LTR_I2A << BIT_SHIFT_CMU_DLY_LTR_I2A)
#define BIT_CLEAR_CMU_DLY_LTR_I2A(x)			((x) & (~BITS_CMU_DLY_LTR_I2A))
#define BIT_GET_CMU_DLY_LTR_I2A(x)			(((x) >> BIT_SHIFT_CMU_DLY_LTR_I2A) & BIT_MASK_CMU_DLY_LTR_I2A)
#define BIT_SET_CMU_DLY_LTR_I2A(x, v)			(BIT_CLEAR_CMU_DLY_LTR_I2A(x) | BIT_CMU_DLY_LTR_I2A(v))


#define BIT_SHIFT_CMU_DLY_LTR_IDLE			8
#define BIT_MASK_CMU_DLY_LTR_IDLE			0xff
#define BIT_CMU_DLY_LTR_IDLE(x)			(((x) & BIT_MASK_CMU_DLY_LTR_IDLE) << BIT_SHIFT_CMU_DLY_LTR_IDLE)
#define BITS_CMU_DLY_LTR_IDLE				(BIT_MASK_CMU_DLY_LTR_IDLE << BIT_SHIFT_CMU_DLY_LTR_IDLE)
#define BIT_CLEAR_CMU_DLY_LTR_IDLE(x)			((x) & (~BITS_CMU_DLY_LTR_IDLE))
#define BIT_GET_CMU_DLY_LTR_IDLE(x)			(((x) >> BIT_SHIFT_CMU_DLY_LTR_IDLE) & BIT_MASK_CMU_DLY_LTR_IDLE)
#define BIT_SET_CMU_DLY_LTR_IDLE(x, v)			(BIT_CLEAR_CMU_DLY_LTR_IDLE(x) | BIT_CMU_DLY_LTR_IDLE(v))


#define BIT_SHIFT_CMU_DLY_LTR_ACT			0
#define BIT_MASK_CMU_DLY_LTR_ACT			0xff
#define BIT_CMU_DLY_LTR_ACT(x)				(((x) & BIT_MASK_CMU_DLY_LTR_ACT) << BIT_SHIFT_CMU_DLY_LTR_ACT)
#define BITS_CMU_DLY_LTR_ACT				(BIT_MASK_CMU_DLY_LTR_ACT << BIT_SHIFT_CMU_DLY_LTR_ACT)
#define BIT_CLEAR_CMU_DLY_LTR_ACT(x)			((x) & (~BITS_CMU_DLY_LTR_ACT))
#define BIT_GET_CMU_DLY_LTR_ACT(x)			(((x) >> BIT_SHIFT_CMU_DLY_LTR_ACT) & BIT_MASK_CMU_DLY_LTR_ACT)
#define BIT_SET_CMU_DLY_LTR_ACT(x, v)			(BIT_CLEAR_CMU_DLY_LTR_ACT(x) | BIT_CMU_DLY_LTR_ACT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_FWCMDQ_TXBD_IDX			(Offset 0x1318) */


#define BIT_SHIFT_FWCMDQ_HW_IDX			16
#define BIT_MASK_FWCMDQ_HW_IDX				0xfff
#define BIT_FWCMDQ_HW_IDX(x)				(((x) & BIT_MASK_FWCMDQ_HW_IDX) << BIT_SHIFT_FWCMDQ_HW_IDX)
#define BITS_FWCMDQ_HW_IDX				(BIT_MASK_FWCMDQ_HW_IDX << BIT_SHIFT_FWCMDQ_HW_IDX)
#define BIT_CLEAR_FWCMDQ_HW_IDX(x)			((x) & (~BITS_FWCMDQ_HW_IDX))
#define BIT_GET_FWCMDQ_HW_IDX(x)			(((x) >> BIT_SHIFT_FWCMDQ_HW_IDX) & BIT_MASK_FWCMDQ_HW_IDX)
#define BIT_SET_FWCMDQ_HW_IDX(x, v)			(BIT_CLEAR_FWCMDQ_HW_IDX(x) | BIT_FWCMDQ_HW_IDX(v))


#define BIT_SHIFT_FWCMDQ_HOST_IDX			0
#define BIT_MASK_FWCMDQ_HOST_IDX			0xfff
#define BIT_FWCMDQ_HOST_IDX(x)				(((x) & BIT_MASK_FWCMDQ_HOST_IDX) << BIT_SHIFT_FWCMDQ_HOST_IDX)
#define BITS_FWCMDQ_HOST_IDX				(BIT_MASK_FWCMDQ_HOST_IDX << BIT_SHIFT_FWCMDQ_HOST_IDX)
#define BIT_CLEAR_FWCMDQ_HOST_IDX(x)			((x) & (~BITS_FWCMDQ_HOST_IDX))
#define BIT_GET_FWCMDQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_FWCMDQ_HOST_IDX) & BIT_MASK_FWCMDQ_HOST_IDX)
#define BIT_SET_FWCMDQ_HOST_IDX(x, v)			(BIT_CLEAR_FWCMDQ_HOST_IDX(x) | BIT_FWCMDQ_HOST_IDX(v))


/* 2 REG_P0HI8Q_TXBD_IDX			(Offset 0x131C) */


#define BIT_SHIFT_P0HI8Q_HW_IDX			16
#define BIT_MASK_P0HI8Q_HW_IDX				0xfff
#define BIT_P0HI8Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI8Q_HW_IDX) << BIT_SHIFT_P0HI8Q_HW_IDX)
#define BITS_P0HI8Q_HW_IDX				(BIT_MASK_P0HI8Q_HW_IDX << BIT_SHIFT_P0HI8Q_HW_IDX)
#define BIT_CLEAR_P0HI8Q_HW_IDX(x)			((x) & (~BITS_P0HI8Q_HW_IDX))
#define BIT_GET_P0HI8Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI8Q_HW_IDX) & BIT_MASK_P0HI8Q_HW_IDX)
#define BIT_SET_P0HI8Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI8Q_HW_IDX(x) | BIT_P0HI8Q_HW_IDX(v))


#define BIT_SHIFT_P0HI8Q_HOST_IDX			0
#define BIT_MASK_P0HI8Q_HOST_IDX			0xfff
#define BIT_P0HI8Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI8Q_HOST_IDX) << BIT_SHIFT_P0HI8Q_HOST_IDX)
#define BITS_P0HI8Q_HOST_IDX				(BIT_MASK_P0HI8Q_HOST_IDX << BIT_SHIFT_P0HI8Q_HOST_IDX)
#define BIT_CLEAR_P0HI8Q_HOST_IDX(x)			((x) & (~BITS_P0HI8Q_HOST_IDX))
#define BIT_GET_P0HI8Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI8Q_HOST_IDX) & BIT_MASK_P0HI8Q_HOST_IDX)
#define BIT_SET_P0HI8Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI8Q_HOST_IDX(x) | BIT_P0HI8Q_HOST_IDX(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2CQ_TXBD_DESA			(Offset 0x1320) */


#define BIT_SHIFT_H2CQ_TXBD_DESA			0
#define BIT_MASK_H2CQ_TXBD_DESA			0xffffffffffffffffL
#define BIT_H2CQ_TXBD_DESA(x)				(((x) & BIT_MASK_H2CQ_TXBD_DESA) << BIT_SHIFT_H2CQ_TXBD_DESA)
#define BITS_H2CQ_TXBD_DESA				(BIT_MASK_H2CQ_TXBD_DESA << BIT_SHIFT_H2CQ_TXBD_DESA)
#define BIT_CLEAR_H2CQ_TXBD_DESA(x)			((x) & (~BITS_H2CQ_TXBD_DESA))
#define BIT_GET_H2CQ_TXBD_DESA(x)			(((x) >> BIT_SHIFT_H2CQ_TXBD_DESA) & BIT_MASK_H2CQ_TXBD_DESA)
#define BIT_SET_H2CQ_TXBD_DESA(x, v)			(BIT_CLEAR_H2CQ_TXBD_DESA(x) | BIT_H2CQ_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_H2CQ_TXBD_DESA_L			(Offset 0x1320) */


#define BIT_SHIFT_H2CQ_TXBD_DESA_L			0
#define BIT_MASK_H2CQ_TXBD_DESA_L			0xffffffffL
#define BIT_H2CQ_TXBD_DESA_L(x)			(((x) & BIT_MASK_H2CQ_TXBD_DESA_L) << BIT_SHIFT_H2CQ_TXBD_DESA_L)
#define BITS_H2CQ_TXBD_DESA_L				(BIT_MASK_H2CQ_TXBD_DESA_L << BIT_SHIFT_H2CQ_TXBD_DESA_L)
#define BIT_CLEAR_H2CQ_TXBD_DESA_L(x)			((x) & (~BITS_H2CQ_TXBD_DESA_L))
#define BIT_GET_H2CQ_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_L) & BIT_MASK_H2CQ_TXBD_DESA_L)
#define BIT_SET_H2CQ_TXBD_DESA_L(x, v)			(BIT_CLEAR_H2CQ_TXBD_DESA_L(x) | BIT_H2CQ_TXBD_DESA_L(v))


/* 2 REG_H2CQ_TXBD_DESA_H			(Offset 0x1324) */


#define BIT_SHIFT_H2CQ_TXBD_DESA_H			0
#define BIT_MASK_H2CQ_TXBD_DESA_H			0xffffffffL
#define BIT_H2CQ_TXBD_DESA_H(x)			(((x) & BIT_MASK_H2CQ_TXBD_DESA_H) << BIT_SHIFT_H2CQ_TXBD_DESA_H)
#define BITS_H2CQ_TXBD_DESA_H				(BIT_MASK_H2CQ_TXBD_DESA_H << BIT_SHIFT_H2CQ_TXBD_DESA_H)
#define BIT_CLEAR_H2CQ_TXBD_DESA_H(x)			((x) & (~BITS_H2CQ_TXBD_DESA_H))
#define BIT_GET_H2CQ_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_H2CQ_TXBD_DESA_H) & BIT_MASK_H2CQ_TXBD_DESA_H)
#define BIT_SET_H2CQ_TXBD_DESA_H(x, v)			(BIT_CLEAR_H2CQ_TXBD_DESA_H(x) | BIT_H2CQ_TXBD_DESA_H(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_H2CQ_TXBD_NUM			(Offset 0x1328) */

#define BIT_HCI_H2CQ_FLAG				BIT(14)

#endif


#if (HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2CQ_TXBD_NUM			(Offset 0x1328) */

#define BIT_PCIE_H2CQ_FLAG				BIT(14)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_H2CQ_TXBD_NUM			(Offset 0x1328) */


#define BIT_SHIFT_H2CQ_DESC_MODE			12
#define BIT_MASK_H2CQ_DESC_MODE			0x3
#define BIT_H2CQ_DESC_MODE(x)				(((x) & BIT_MASK_H2CQ_DESC_MODE) << BIT_SHIFT_H2CQ_DESC_MODE)
#define BITS_H2CQ_DESC_MODE				(BIT_MASK_H2CQ_DESC_MODE << BIT_SHIFT_H2CQ_DESC_MODE)
#define BIT_CLEAR_H2CQ_DESC_MODE(x)			((x) & (~BITS_H2CQ_DESC_MODE))
#define BIT_GET_H2CQ_DESC_MODE(x)			(((x) >> BIT_SHIFT_H2CQ_DESC_MODE) & BIT_MASK_H2CQ_DESC_MODE)
#define BIT_SET_H2CQ_DESC_MODE(x, v)			(BIT_CLEAR_H2CQ_DESC_MODE(x) | BIT_H2CQ_DESC_MODE(v))


#define BIT_SHIFT_H2CQ_DESC_NUM			0
#define BIT_MASK_H2CQ_DESC_NUM				0xfff
#define BIT_H2CQ_DESC_NUM(x)				(((x) & BIT_MASK_H2CQ_DESC_NUM) << BIT_SHIFT_H2CQ_DESC_NUM)
#define BITS_H2CQ_DESC_NUM				(BIT_MASK_H2CQ_DESC_NUM << BIT_SHIFT_H2CQ_DESC_NUM)
#define BIT_CLEAR_H2CQ_DESC_NUM(x)			((x) & (~BITS_H2CQ_DESC_NUM))
#define BIT_GET_H2CQ_DESC_NUM(x)			(((x) >> BIT_SHIFT_H2CQ_DESC_NUM) & BIT_MASK_H2CQ_DESC_NUM)
#define BIT_SET_H2CQ_DESC_NUM(x, v)			(BIT_CLEAR_H2CQ_DESC_NUM(x) | BIT_H2CQ_DESC_NUM(v))


/* 2 REG_H2CQ_TXBD_IDX			(Offset 0x132C) */


#define BIT_SHIFT_H2CQ_HW_IDX				16
#define BIT_MASK_H2CQ_HW_IDX				0xfff
#define BIT_H2CQ_HW_IDX(x)				(((x) & BIT_MASK_H2CQ_HW_IDX) << BIT_SHIFT_H2CQ_HW_IDX)
#define BITS_H2CQ_HW_IDX				(BIT_MASK_H2CQ_HW_IDX << BIT_SHIFT_H2CQ_HW_IDX)
#define BIT_CLEAR_H2CQ_HW_IDX(x)			((x) & (~BITS_H2CQ_HW_IDX))
#define BIT_GET_H2CQ_HW_IDX(x)				(((x) >> BIT_SHIFT_H2CQ_HW_IDX) & BIT_MASK_H2CQ_HW_IDX)
#define BIT_SET_H2CQ_HW_IDX(x, v)			(BIT_CLEAR_H2CQ_HW_IDX(x) | BIT_H2CQ_HW_IDX(v))


#define BIT_SHIFT_H2CQ_HOST_IDX			0
#define BIT_MASK_H2CQ_HOST_IDX				0xfff
#define BIT_H2CQ_HOST_IDX(x)				(((x) & BIT_MASK_H2CQ_HOST_IDX) << BIT_SHIFT_H2CQ_HOST_IDX)
#define BITS_H2CQ_HOST_IDX				(BIT_MASK_H2CQ_HOST_IDX << BIT_SHIFT_H2CQ_HOST_IDX)
#define BIT_CLEAR_H2CQ_HOST_IDX(x)			((x) & (~BITS_H2CQ_HOST_IDX))
#define BIT_GET_H2CQ_HOST_IDX(x)			(((x) >> BIT_SHIFT_H2CQ_HOST_IDX) & BIT_MASK_H2CQ_HOST_IDX)
#define BIT_SET_H2CQ_HOST_IDX(x, v)			(BIT_CLEAR_H2CQ_HOST_IDX(x) | BIT_H2CQ_HOST_IDX(v))


/* 2 REG_H2CQ_CSR				(Offset 0x1330) */

#define BIT_H2CQ_FULL					BIT(31)
#define BIT_CLR_H2CQ_HOST_IDX				BIT(16)
#define BIT_CLR_H2CQ_HW_IDX				BIT(8)
#define BIT_STOP_H2CQ					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P0HI9Q_TXBD_IDX			(Offset 0x1334) */


#define BIT_SHIFT_P0HI9Q_HW_IDX			16
#define BIT_MASK_P0HI9Q_HW_IDX				0xfff
#define BIT_P0HI9Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI9Q_HW_IDX) << BIT_SHIFT_P0HI9Q_HW_IDX)
#define BITS_P0HI9Q_HW_IDX				(BIT_MASK_P0HI9Q_HW_IDX << BIT_SHIFT_P0HI9Q_HW_IDX)
#define BIT_CLEAR_P0HI9Q_HW_IDX(x)			((x) & (~BITS_P0HI9Q_HW_IDX))
#define BIT_GET_P0HI9Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI9Q_HW_IDX) & BIT_MASK_P0HI9Q_HW_IDX)
#define BIT_SET_P0HI9Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI9Q_HW_IDX(x) | BIT_P0HI9Q_HW_IDX(v))


#define BIT_SHIFT_P0HI9Q_HOST_IDX			0
#define BIT_MASK_P0HI9Q_HOST_IDX			0xfff
#define BIT_P0HI9Q_HOST_IDX(x)				(((x) & BIT_MASK_P0HI9Q_HOST_IDX) << BIT_SHIFT_P0HI9Q_HOST_IDX)
#define BITS_P0HI9Q_HOST_IDX				(BIT_MASK_P0HI9Q_HOST_IDX << BIT_SHIFT_P0HI9Q_HOST_IDX)
#define BIT_CLEAR_P0HI9Q_HOST_IDX(x)			((x) & (~BITS_P0HI9Q_HOST_IDX))
#define BIT_GET_P0HI9Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI9Q_HOST_IDX) & BIT_MASK_P0HI9Q_HOST_IDX)
#define BIT_SET_P0HI9Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI9Q_HOST_IDX(x) | BIT_P0HI9Q_HOST_IDX(v))


/* 2 REG_P0HI10Q_TXBD_IDX			(Offset 0x1338) */


#define BIT_SHIFT_P0HI10Q_HW_IDX			16
#define BIT_MASK_P0HI10Q_HW_IDX			0xfff
#define BIT_P0HI10Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI10Q_HW_IDX) << BIT_SHIFT_P0HI10Q_HW_IDX)
#define BITS_P0HI10Q_HW_IDX				(BIT_MASK_P0HI10Q_HW_IDX << BIT_SHIFT_P0HI10Q_HW_IDX)
#define BIT_CLEAR_P0HI10Q_HW_IDX(x)			((x) & (~BITS_P0HI10Q_HW_IDX))
#define BIT_GET_P0HI10Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI10Q_HW_IDX) & BIT_MASK_P0HI10Q_HW_IDX)
#define BIT_SET_P0HI10Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI10Q_HW_IDX(x) | BIT_P0HI10Q_HW_IDX(v))


#define BIT_SHIFT_P0HI10Q_HOST_IDX			0
#define BIT_MASK_P0HI10Q_HOST_IDX			0xfff
#define BIT_P0HI10Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI10Q_HOST_IDX) << BIT_SHIFT_P0HI10Q_HOST_IDX)
#define BITS_P0HI10Q_HOST_IDX				(BIT_MASK_P0HI10Q_HOST_IDX << BIT_SHIFT_P0HI10Q_HOST_IDX)
#define BIT_CLEAR_P0HI10Q_HOST_IDX(x)			((x) & (~BITS_P0HI10Q_HOST_IDX))
#define BIT_GET_P0HI10Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI10Q_HOST_IDX) & BIT_MASK_P0HI10Q_HOST_IDX)
#define BIT_SET_P0HI10Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI10Q_HOST_IDX(x) | BIT_P0HI10Q_HOST_IDX(v))


/* 2 REG_P0HI11Q_TXBD_IDX			(Offset 0x133C) */


#define BIT_SHIFT_P0HI11Q_HW_IDX			16
#define BIT_MASK_P0HI11Q_HW_IDX			0xfff
#define BIT_P0HI11Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI11Q_HW_IDX) << BIT_SHIFT_P0HI11Q_HW_IDX)
#define BITS_P0HI11Q_HW_IDX				(BIT_MASK_P0HI11Q_HW_IDX << BIT_SHIFT_P0HI11Q_HW_IDX)
#define BIT_CLEAR_P0HI11Q_HW_IDX(x)			((x) & (~BITS_P0HI11Q_HW_IDX))
#define BIT_GET_P0HI11Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI11Q_HW_IDX) & BIT_MASK_P0HI11Q_HW_IDX)
#define BIT_SET_P0HI11Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI11Q_HW_IDX(x) | BIT_P0HI11Q_HW_IDX(v))


#define BIT_SHIFT_P0HI11Q_HOST_IDX			0
#define BIT_MASK_P0HI11Q_HOST_IDX			0xfff
#define BIT_P0HI11Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI11Q_HOST_IDX) << BIT_SHIFT_P0HI11Q_HOST_IDX)
#define BITS_P0HI11Q_HOST_IDX				(BIT_MASK_P0HI11Q_HOST_IDX << BIT_SHIFT_P0HI11Q_HOST_IDX)
#define BIT_CLEAR_P0HI11Q_HOST_IDX(x)			((x) & (~BITS_P0HI11Q_HOST_IDX))
#define BIT_GET_P0HI11Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI11Q_HOST_IDX) & BIT_MASK_P0HI11Q_HOST_IDX)
#define BIT_SET_P0HI11Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI11Q_HOST_IDX(x) | BIT_P0HI11Q_HOST_IDX(v))


/* 2 REG_P0HI12Q_TXBD_IDX			(Offset 0x1340) */


#define BIT_SHIFT_P0HI12Q_HW_IDX			16
#define BIT_MASK_P0HI12Q_HW_IDX			0xfff
#define BIT_P0HI12Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI12Q_HW_IDX) << BIT_SHIFT_P0HI12Q_HW_IDX)
#define BITS_P0HI12Q_HW_IDX				(BIT_MASK_P0HI12Q_HW_IDX << BIT_SHIFT_P0HI12Q_HW_IDX)
#define BIT_CLEAR_P0HI12Q_HW_IDX(x)			((x) & (~BITS_P0HI12Q_HW_IDX))
#define BIT_GET_P0HI12Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI12Q_HW_IDX) & BIT_MASK_P0HI12Q_HW_IDX)
#define BIT_SET_P0HI12Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI12Q_HW_IDX(x) | BIT_P0HI12Q_HW_IDX(v))


#define BIT_SHIFT_P0HI12Q_HOST_IDX			0
#define BIT_MASK_P0HI12Q_HOST_IDX			0xfff
#define BIT_P0HI12Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI12Q_HOST_IDX) << BIT_SHIFT_P0HI12Q_HOST_IDX)
#define BITS_P0HI12Q_HOST_IDX				(BIT_MASK_P0HI12Q_HOST_IDX << BIT_SHIFT_P0HI12Q_HOST_IDX)
#define BIT_CLEAR_P0HI12Q_HOST_IDX(x)			((x) & (~BITS_P0HI12Q_HOST_IDX))
#define BIT_GET_P0HI12Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI12Q_HOST_IDX) & BIT_MASK_P0HI12Q_HOST_IDX)
#define BIT_SET_P0HI12Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI12Q_HOST_IDX(x) | BIT_P0HI12Q_HOST_IDX(v))


/* 2 REG_P0HI13Q_TXBD_IDX			(Offset 0x1344) */


#define BIT_SHIFT_P0HI13Q_HW_IDX			16
#define BIT_MASK_P0HI13Q_HW_IDX			0xfff
#define BIT_P0HI13Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI13Q_HW_IDX) << BIT_SHIFT_P0HI13Q_HW_IDX)
#define BITS_P0HI13Q_HW_IDX				(BIT_MASK_P0HI13Q_HW_IDX << BIT_SHIFT_P0HI13Q_HW_IDX)
#define BIT_CLEAR_P0HI13Q_HW_IDX(x)			((x) & (~BITS_P0HI13Q_HW_IDX))
#define BIT_GET_P0HI13Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI13Q_HW_IDX) & BIT_MASK_P0HI13Q_HW_IDX)
#define BIT_SET_P0HI13Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI13Q_HW_IDX(x) | BIT_P0HI13Q_HW_IDX(v))


#define BIT_SHIFT_P0HI13Q_HOST_IDX			0
#define BIT_MASK_P0HI13Q_HOST_IDX			0xfff
#define BIT_P0HI13Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI13Q_HOST_IDX) << BIT_SHIFT_P0HI13Q_HOST_IDX)
#define BITS_P0HI13Q_HOST_IDX				(BIT_MASK_P0HI13Q_HOST_IDX << BIT_SHIFT_P0HI13Q_HOST_IDX)
#define BIT_CLEAR_P0HI13Q_HOST_IDX(x)			((x) & (~BITS_P0HI13Q_HOST_IDX))
#define BIT_GET_P0HI13Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI13Q_HOST_IDX) & BIT_MASK_P0HI13Q_HOST_IDX)
#define BIT_SET_P0HI13Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI13Q_HOST_IDX(x) | BIT_P0HI13Q_HOST_IDX(v))


/* 2 REG_P0HI14Q_TXBD_IDX			(Offset 0x1348) */


#define BIT_SHIFT_P0HI14Q_HW_IDX			16
#define BIT_MASK_P0HI14Q_HW_IDX			0xfff
#define BIT_P0HI14Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI14Q_HW_IDX) << BIT_SHIFT_P0HI14Q_HW_IDX)
#define BITS_P0HI14Q_HW_IDX				(BIT_MASK_P0HI14Q_HW_IDX << BIT_SHIFT_P0HI14Q_HW_IDX)
#define BIT_CLEAR_P0HI14Q_HW_IDX(x)			((x) & (~BITS_P0HI14Q_HW_IDX))
#define BIT_GET_P0HI14Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI14Q_HW_IDX) & BIT_MASK_P0HI14Q_HW_IDX)
#define BIT_SET_P0HI14Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI14Q_HW_IDX(x) | BIT_P0HI14Q_HW_IDX(v))


#define BIT_SHIFT_P0HI14Q_HOST_IDX			0
#define BIT_MASK_P0HI14Q_HOST_IDX			0xfff
#define BIT_P0HI14Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI14Q_HOST_IDX) << BIT_SHIFT_P0HI14Q_HOST_IDX)
#define BITS_P0HI14Q_HOST_IDX				(BIT_MASK_P0HI14Q_HOST_IDX << BIT_SHIFT_P0HI14Q_HOST_IDX)
#define BIT_CLEAR_P0HI14Q_HOST_IDX(x)			((x) & (~BITS_P0HI14Q_HOST_IDX))
#define BIT_GET_P0HI14Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI14Q_HOST_IDX) & BIT_MASK_P0HI14Q_HOST_IDX)
#define BIT_SET_P0HI14Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI14Q_HOST_IDX(x) | BIT_P0HI14Q_HOST_IDX(v))


/* 2 REG_P0HI15Q_TXBD_IDX			(Offset 0x134C) */


#define BIT_SHIFT_P0HI15Q_HW_IDX			16
#define BIT_MASK_P0HI15Q_HW_IDX			0xfff
#define BIT_P0HI15Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI15Q_HW_IDX) << BIT_SHIFT_P0HI15Q_HW_IDX)
#define BITS_P0HI15Q_HW_IDX				(BIT_MASK_P0HI15Q_HW_IDX << BIT_SHIFT_P0HI15Q_HW_IDX)
#define BIT_CLEAR_P0HI15Q_HW_IDX(x)			((x) & (~BITS_P0HI15Q_HW_IDX))
#define BIT_GET_P0HI15Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI15Q_HW_IDX) & BIT_MASK_P0HI15Q_HW_IDX)
#define BIT_SET_P0HI15Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI15Q_HW_IDX(x) | BIT_P0HI15Q_HW_IDX(v))


#define BIT_SHIFT_RXDMA_ERR_CNT			8
#define BIT_MASK_RXDMA_ERR_CNT				0xff
#define BIT_RXDMA_ERR_CNT(x)				(((x) & BIT_MASK_RXDMA_ERR_CNT) << BIT_SHIFT_RXDMA_ERR_CNT)
#define BITS_RXDMA_ERR_CNT				(BIT_MASK_RXDMA_ERR_CNT << BIT_SHIFT_RXDMA_ERR_CNT)
#define BIT_CLEAR_RXDMA_ERR_CNT(x)			((x) & (~BITS_RXDMA_ERR_CNT))
#define BIT_GET_RXDMA_ERR_CNT(x)			(((x) >> BIT_SHIFT_RXDMA_ERR_CNT) & BIT_MASK_RXDMA_ERR_CNT)
#define BIT_SET_RXDMA_ERR_CNT(x, v)			(BIT_CLEAR_RXDMA_ERR_CNT(x) | BIT_RXDMA_ERR_CNT(v))

#define BIT_TXDMA_ERR_HANDLE_REQ			BIT(7)
#define BIT_TXDMA_ERROR_PS				BIT(6)
#define BIT_EN_TXDMA_STUCK_ERR_HANDLE			BIT(5)
#define BIT_EN_TXDMA_RTN_ERR_HANDLE			BIT(4)
#define BIT_RXDMA_ERR_HANDLE_REQ			BIT(3)
#define BIT_RXDMA_ERROR_PS				BIT(2)
#define BIT_EN_RXDMA_STUCK_ERR_HANDLE			BIT(1)

#define BIT_SHIFT_P0HI15Q_HOST_IDX			0
#define BIT_MASK_P0HI15Q_HOST_IDX			0xfff
#define BIT_P0HI15Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI15Q_HOST_IDX) << BIT_SHIFT_P0HI15Q_HOST_IDX)
#define BITS_P0HI15Q_HOST_IDX				(BIT_MASK_P0HI15Q_HOST_IDX << BIT_SHIFT_P0HI15Q_HOST_IDX)
#define BIT_CLEAR_P0HI15Q_HOST_IDX(x)			((x) & (~BITS_P0HI15Q_HOST_IDX))
#define BIT_GET_P0HI15Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI15Q_HOST_IDX) & BIT_MASK_P0HI15Q_HOST_IDX)
#define BIT_SET_P0HI15Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI15Q_HOST_IDX(x) | BIT_P0HI15Q_HOST_IDX(v))

#define BIT_EN_RXDMA_RTN_ERR_HANDLE			BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_RXDMA_TIMEOUT_RE			BIT(21)
#define BIT_AXI_TXDMA_TIMEOUT_RE			BIT(20)
#define BIT_AXI_DECERR_W_RE				BIT(19)
#define BIT_AXI_DECERR_R_RE				BIT(18)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */

#define BIT_CHANGE_PCIE_SPEED				BIT(18)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_SLVERR_W_RE				BIT(17)
#define BIT_AXI_SLVERR_R_RE				BIT(16)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */


#define BIT_SHIFT_GEN1_GEN2				16
#define BIT_MASK_GEN1_GEN2				0x3
#define BIT_GEN1_GEN2(x)				(((x) & BIT_MASK_GEN1_GEN2) << BIT_SHIFT_GEN1_GEN2)
#define BITS_GEN1_GEN2					(BIT_MASK_GEN1_GEN2 << BIT_SHIFT_GEN1_GEN2)
#define BIT_CLEAR_GEN1_GEN2(x)				((x) & (~BITS_GEN1_GEN2))
#define BIT_GET_GEN1_GEN2(x)				(((x) >> BIT_SHIFT_GEN1_GEN2) & BIT_MASK_GEN1_GEN2)
#define BIT_SET_GEN1_GEN2(x, v)			(BIT_CLEAR_GEN1_GEN2(x) | BIT_GEN1_GEN2(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_RXDMA_TIMEOUT_IE			BIT(13)
#define BIT_AXI_TXDMA_TIMEOUT_IE			BIT(12)
#define BIT_AXI_DECERR_W_IE				BIT(11)
#define BIT_AXI_DECERR_R_IE				BIT(10)
#define BIT_AXI_SLVERR_W_IE				BIT(9)
#define BIT_AXI_SLVERR_R_IE				BIT(8)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */


#define BIT_SHIFT_RXDMA_ERROR_COUNTER			8
#define BIT_MASK_RXDMA_ERROR_COUNTER			0xff
#define BIT_RXDMA_ERROR_COUNTER(x)			(((x) & BIT_MASK_RXDMA_ERROR_COUNTER) << BIT_SHIFT_RXDMA_ERROR_COUNTER)
#define BITS_RXDMA_ERROR_COUNTER			(BIT_MASK_RXDMA_ERROR_COUNTER << BIT_SHIFT_RXDMA_ERROR_COUNTER)
#define BIT_CLEAR_RXDMA_ERROR_COUNTER(x)		((x) & (~BITS_RXDMA_ERROR_COUNTER))
#define BIT_GET_RXDMA_ERROR_COUNTER(x)			(((x) >> BIT_SHIFT_RXDMA_ERROR_COUNTER) & BIT_MASK_RXDMA_ERROR_COUNTER)
#define BIT_SET_RXDMA_ERROR_COUNTER(x, v)		(BIT_CLEAR_RXDMA_ERROR_COUNTER(x) | BIT_RXDMA_ERROR_COUNTER(v))

#define BIT_TXDMA_ERROR_HANDLE_STATUS			BIT(7)
#define BIT_TXDMA_ERROR_PULSE				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_RXDMA_TIMEOUT_FLAG			BIT(5)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */

#define BIT_TXDMA_STUCK_ERROR_HANDLE_ENABLE		BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_TXDMA_TIMEOUT_FLAG			BIT(4)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */

#define BIT_TXDMA_RETURN_ERROR_ENABLE			BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_DECERR_W_FLAG				BIT(3)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */

#define BIT_RXDMA_ERROR_HANDLE_STATUS			BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_CS			(Offset 0x1350) */

#define BIT_AXI_DECERR_R_FLAG				BIT(2)
#define BIT_AXI_SLVERR_W_FLAG				BIT(1)
#define BIT_AXI_SLVERR_R_FLAG				BIT(0)

#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_CHANGE_PCIE_SPEED			(Offset 0x1350) */


#define BIT_SHIFT_AUTO_HANG_RELEASE			0
#define BIT_MASK_AUTO_HANG_RELEASE			0x7
#define BIT_AUTO_HANG_RELEASE(x)			(((x) & BIT_MASK_AUTO_HANG_RELEASE) << BIT_SHIFT_AUTO_HANG_RELEASE)
#define BITS_AUTO_HANG_RELEASE				(BIT_MASK_AUTO_HANG_RELEASE << BIT_SHIFT_AUTO_HANG_RELEASE)
#define BIT_CLEAR_AUTO_HANG_RELEASE(x)			((x) & (~BITS_AUTO_HANG_RELEASE))
#define BIT_GET_AUTO_HANG_RELEASE(x)			(((x) >> BIT_SHIFT_AUTO_HANG_RELEASE) & BIT_MASK_AUTO_HANG_RELEASE)
#define BIT_SET_AUTO_HANG_RELEASE(x, v)		(BIT_CLEAR_AUTO_HANG_RELEASE(x) | BIT_AUTO_HANG_RELEASE(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_AXI_EXCEPT_TIME			(Offset 0x1354) */


#define BIT_SHIFT_AXI_RECOVERY_TIME			24
#define BIT_MASK_AXI_RECOVERY_TIME			0xff
#define BIT_AXI_RECOVERY_TIME(x)			(((x) & BIT_MASK_AXI_RECOVERY_TIME) << BIT_SHIFT_AXI_RECOVERY_TIME)
#define BITS_AXI_RECOVERY_TIME				(BIT_MASK_AXI_RECOVERY_TIME << BIT_SHIFT_AXI_RECOVERY_TIME)
#define BIT_CLEAR_AXI_RECOVERY_TIME(x)			((x) & (~BITS_AXI_RECOVERY_TIME))
#define BIT_GET_AXI_RECOVERY_TIME(x)			(((x) >> BIT_SHIFT_AXI_RECOVERY_TIME) & BIT_MASK_AXI_RECOVERY_TIME)
#define BIT_SET_AXI_RECOVERY_TIME(x, v)		(BIT_CLEAR_AXI_RECOVERY_TIME(x) | BIT_AXI_RECOVERY_TIME(v))


#define BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL		12
#define BIT_MASK_AXI_RXDMA_TIMEOUT_VAL			0xfff
#define BIT_AXI_RXDMA_TIMEOUT_VAL(x)			(((x) & BIT_MASK_AXI_RXDMA_TIMEOUT_VAL) << BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL)
#define BITS_AXI_RXDMA_TIMEOUT_VAL			(BIT_MASK_AXI_RXDMA_TIMEOUT_VAL << BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL)
#define BIT_CLEAR_AXI_RXDMA_TIMEOUT_VAL(x)		((x) & (~BITS_AXI_RXDMA_TIMEOUT_VAL))
#define BIT_GET_AXI_RXDMA_TIMEOUT_VAL(x)		(((x) >> BIT_SHIFT_AXI_RXDMA_TIMEOUT_VAL) & BIT_MASK_AXI_RXDMA_TIMEOUT_VAL)
#define BIT_SET_AXI_RXDMA_TIMEOUT_VAL(x, v)		(BIT_CLEAR_AXI_RXDMA_TIMEOUT_VAL(x) | BIT_AXI_RXDMA_TIMEOUT_VAL(v))


#define BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL		0
#define BIT_MASK_AXI_TXDMA_TIMEOUT_VAL			0xfff
#define BIT_AXI_TXDMA_TIMEOUT_VAL(x)			(((x) & BIT_MASK_AXI_TXDMA_TIMEOUT_VAL) << BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL)
#define BITS_AXI_TXDMA_TIMEOUT_VAL			(BIT_MASK_AXI_TXDMA_TIMEOUT_VAL << BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL)
#define BIT_CLEAR_AXI_TXDMA_TIMEOUT_VAL(x)		((x) & (~BITS_AXI_TXDMA_TIMEOUT_VAL))
#define BIT_GET_AXI_TXDMA_TIMEOUT_VAL(x)		(((x) >> BIT_SHIFT_AXI_TXDMA_TIMEOUT_VAL) & BIT_MASK_AXI_TXDMA_TIMEOUT_VAL)
#define BIT_SET_AXI_TXDMA_TIMEOUT_VAL(x, v)		(BIT_CLEAR_AXI_TXDMA_TIMEOUT_VAL(x) | BIT_AXI_TXDMA_TIMEOUT_VAL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DEBUG_STATE1			(Offset 0x1354) */


#define BIT_SHIFT_DEBUG_STATE1				0
#define BIT_MASK_DEBUG_STATE1				0xffffffffL
#define BIT_DEBUG_STATE1(x)				(((x) & BIT_MASK_DEBUG_STATE1) << BIT_SHIFT_DEBUG_STATE1)
#define BITS_DEBUG_STATE1				(BIT_MASK_DEBUG_STATE1 << BIT_SHIFT_DEBUG_STATE1)
#define BIT_CLEAR_DEBUG_STATE1(x)			((x) & (~BITS_DEBUG_STATE1))
#define BIT_GET_DEBUG_STATE1(x)			(((x) >> BIT_SHIFT_DEBUG_STATE1) & BIT_MASK_DEBUG_STATE1)
#define BIT_SET_DEBUG_STATE1(x, v)			(BIT_CLEAR_DEBUG_STATE1(x) | BIT_DEBUG_STATE1(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI8Q_TXBD_IDX			(Offset 0x1358) */


#define BIT_SHIFT_HI8Q_HW_IDX				16
#define BIT_MASK_HI8Q_HW_IDX				0xfff
#define BIT_HI8Q_HW_IDX(x)				(((x) & BIT_MASK_HI8Q_HW_IDX) << BIT_SHIFT_HI8Q_HW_IDX)
#define BITS_HI8Q_HW_IDX				(BIT_MASK_HI8Q_HW_IDX << BIT_SHIFT_HI8Q_HW_IDX)
#define BIT_CLEAR_HI8Q_HW_IDX(x)			((x) & (~BITS_HI8Q_HW_IDX))
#define BIT_GET_HI8Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI8Q_HW_IDX) & BIT_MASK_HI8Q_HW_IDX)
#define BIT_SET_HI8Q_HW_IDX(x, v)			(BIT_CLEAR_HI8Q_HW_IDX(x) | BIT_HI8Q_HW_IDX(v))


#define BIT_SHIFT_HI8Q_HOST_IDX			0
#define BIT_MASK_HI8Q_HOST_IDX				0xfff
#define BIT_HI8Q_HOST_IDX(x)				(((x) & BIT_MASK_HI8Q_HOST_IDX) << BIT_SHIFT_HI8Q_HOST_IDX)
#define BITS_HI8Q_HOST_IDX				(BIT_MASK_HI8Q_HOST_IDX << BIT_SHIFT_HI8Q_HOST_IDX)
#define BIT_CLEAR_HI8Q_HOST_IDX(x)			((x) & (~BITS_HI8Q_HOST_IDX))
#define BIT_GET_HI8Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI8Q_HOST_IDX) & BIT_MASK_HI8Q_HOST_IDX)
#define BIT_SET_HI8Q_HOST_IDX(x, v)			(BIT_CLEAR_HI8Q_HOST_IDX(x) | BIT_HI8Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DEBUG_STATE2			(Offset 0x1358) */


#define BIT_SHIFT_DEBUG_STATE2				0
#define BIT_MASK_DEBUG_STATE2				0xffffffffL
#define BIT_DEBUG_STATE2(x)				(((x) & BIT_MASK_DEBUG_STATE2) << BIT_SHIFT_DEBUG_STATE2)
#define BITS_DEBUG_STATE2				(BIT_MASK_DEBUG_STATE2 << BIT_SHIFT_DEBUG_STATE2)
#define BIT_CLEAR_DEBUG_STATE2(x)			((x) & (~BITS_DEBUG_STATE2))
#define BIT_GET_DEBUG_STATE2(x)			(((x) >> BIT_SHIFT_DEBUG_STATE2) & BIT_MASK_DEBUG_STATE2)
#define BIT_SET_DEBUG_STATE2(x, v)			(BIT_CLEAR_DEBUG_STATE2(x) | BIT_DEBUG_STATE2(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI9Q_TXBD_IDX			(Offset 0x135C) */


#define BIT_SHIFT_HI9Q_HW_IDX				16
#define BIT_MASK_HI9Q_HW_IDX				0xfff
#define BIT_HI9Q_HW_IDX(x)				(((x) & BIT_MASK_HI9Q_HW_IDX) << BIT_SHIFT_HI9Q_HW_IDX)
#define BITS_HI9Q_HW_IDX				(BIT_MASK_HI9Q_HW_IDX << BIT_SHIFT_HI9Q_HW_IDX)
#define BIT_CLEAR_HI9Q_HW_IDX(x)			((x) & (~BITS_HI9Q_HW_IDX))
#define BIT_GET_HI9Q_HW_IDX(x)				(((x) >> BIT_SHIFT_HI9Q_HW_IDX) & BIT_MASK_HI9Q_HW_IDX)
#define BIT_SET_HI9Q_HW_IDX(x, v)			(BIT_CLEAR_HI9Q_HW_IDX(x) | BIT_HI9Q_HW_IDX(v))


#define BIT_SHIFT_HI9Q_HOST_IDX			0
#define BIT_MASK_HI9Q_HOST_IDX				0xfff
#define BIT_HI9Q_HOST_IDX(x)				(((x) & BIT_MASK_HI9Q_HOST_IDX) << BIT_SHIFT_HI9Q_HOST_IDX)
#define BITS_HI9Q_HOST_IDX				(BIT_MASK_HI9Q_HOST_IDX << BIT_SHIFT_HI9Q_HOST_IDX)
#define BIT_CLEAR_HI9Q_HOST_IDX(x)			((x) & (~BITS_HI9Q_HOST_IDX))
#define BIT_GET_HI9Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI9Q_HOST_IDX) & BIT_MASK_HI9Q_HOST_IDX)
#define BIT_SET_HI9Q_HOST_IDX(x, v)			(BIT_CLEAR_HI9Q_HOST_IDX(x) | BIT_HI9Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DEBUG_STATE3			(Offset 0x135C) */


#define BIT_SHIFT_DEBUG_STATE3				0
#define BIT_MASK_DEBUG_STATE3				0xffffffffL
#define BIT_DEBUG_STATE3(x)				(((x) & BIT_MASK_DEBUG_STATE3) << BIT_SHIFT_DEBUG_STATE3)
#define BITS_DEBUG_STATE3				(BIT_MASK_DEBUG_STATE3 << BIT_SHIFT_DEBUG_STATE3)
#define BIT_CLEAR_DEBUG_STATE3(x)			((x) & (~BITS_DEBUG_STATE3))
#define BIT_GET_DEBUG_STATE3(x)			(((x) >> BIT_SHIFT_DEBUG_STATE3) & BIT_MASK_DEBUG_STATE3)
#define BIT_SET_DEBUG_STATE3(x, v)			(BIT_CLEAR_DEBUG_STATE3(x) | BIT_DEBUG_STATE3(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI10Q_TXBD_IDX			(Offset 0x1360) */


#define BIT_SHIFT_HI10Q_HW_IDX				16
#define BIT_MASK_HI10Q_HW_IDX				0xfff
#define BIT_HI10Q_HW_IDX(x)				(((x) & BIT_MASK_HI10Q_HW_IDX) << BIT_SHIFT_HI10Q_HW_IDX)
#define BITS_HI10Q_HW_IDX				(BIT_MASK_HI10Q_HW_IDX << BIT_SHIFT_HI10Q_HW_IDX)
#define BIT_CLEAR_HI10Q_HW_IDX(x)			((x) & (~BITS_HI10Q_HW_IDX))
#define BIT_GET_HI10Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI10Q_HW_IDX) & BIT_MASK_HI10Q_HW_IDX)
#define BIT_SET_HI10Q_HW_IDX(x, v)			(BIT_CLEAR_HI10Q_HW_IDX(x) | BIT_HI10Q_HW_IDX(v))


#define BIT_SHIFT_HI10Q_HOST_IDX			0
#define BIT_MASK_HI10Q_HOST_IDX			0xfff
#define BIT_HI10Q_HOST_IDX(x)				(((x) & BIT_MASK_HI10Q_HOST_IDX) << BIT_SHIFT_HI10Q_HOST_IDX)
#define BITS_HI10Q_HOST_IDX				(BIT_MASK_HI10Q_HOST_IDX << BIT_SHIFT_HI10Q_HOST_IDX)
#define BIT_CLEAR_HI10Q_HOST_IDX(x)			((x) & (~BITS_HI10Q_HOST_IDX))
#define BIT_GET_HI10Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI10Q_HOST_IDX) & BIT_MASK_HI10Q_HOST_IDX)
#define BIT_SET_HI10Q_HOST_IDX(x, v)			(BIT_CLEAR_HI10Q_HOST_IDX(x) | BIT_HI10Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH5_TXBD_DESA_L			(Offset 0x1360) */


#define BIT_SHIFT_ACH5_TXBD_DESA_L			0
#define BIT_MASK_ACH5_TXBD_DESA_L			0xffffffffL
#define BIT_ACH5_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH5_TXBD_DESA_L) << BIT_SHIFT_ACH5_TXBD_DESA_L)
#define BITS_ACH5_TXBD_DESA_L				(BIT_MASK_ACH5_TXBD_DESA_L << BIT_SHIFT_ACH5_TXBD_DESA_L)
#define BIT_CLEAR_ACH5_TXBD_DESA_L(x)			((x) & (~BITS_ACH5_TXBD_DESA_L))
#define BIT_GET_ACH5_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH5_TXBD_DESA_L) & BIT_MASK_ACH5_TXBD_DESA_L)
#define BIT_SET_ACH5_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH5_TXBD_DESA_L(x) | BIT_ACH5_TXBD_DESA_L(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI11Q_TXBD_IDX			(Offset 0x1364) */


#define BIT_SHIFT_HI11Q_HW_IDX				16
#define BIT_MASK_HI11Q_HW_IDX				0xfff
#define BIT_HI11Q_HW_IDX(x)				(((x) & BIT_MASK_HI11Q_HW_IDX) << BIT_SHIFT_HI11Q_HW_IDX)
#define BITS_HI11Q_HW_IDX				(BIT_MASK_HI11Q_HW_IDX << BIT_SHIFT_HI11Q_HW_IDX)
#define BIT_CLEAR_HI11Q_HW_IDX(x)			((x) & (~BITS_HI11Q_HW_IDX))
#define BIT_GET_HI11Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI11Q_HW_IDX) & BIT_MASK_HI11Q_HW_IDX)
#define BIT_SET_HI11Q_HW_IDX(x, v)			(BIT_CLEAR_HI11Q_HW_IDX(x) | BIT_HI11Q_HW_IDX(v))


#define BIT_SHIFT_HI11Q_HOST_IDX			0
#define BIT_MASK_HI11Q_HOST_IDX			0xfff
#define BIT_HI11Q_HOST_IDX(x)				(((x) & BIT_MASK_HI11Q_HOST_IDX) << BIT_SHIFT_HI11Q_HOST_IDX)
#define BITS_HI11Q_HOST_IDX				(BIT_MASK_HI11Q_HOST_IDX << BIT_SHIFT_HI11Q_HOST_IDX)
#define BIT_CLEAR_HI11Q_HOST_IDX(x)			((x) & (~BITS_HI11Q_HOST_IDX))
#define BIT_GET_HI11Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI11Q_HOST_IDX) & BIT_MASK_HI11Q_HOST_IDX)
#define BIT_SET_HI11Q_HOST_IDX(x, v)			(BIT_CLEAR_HI11Q_HOST_IDX(x) | BIT_HI11Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH5_TXBD_DESA_H			(Offset 0x1364) */


#define BIT_SHIFT_ACH5_TXBD_DESA_H			0
#define BIT_MASK_ACH5_TXBD_DESA_H			0xffffffffL
#define BIT_ACH5_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH5_TXBD_DESA_H) << BIT_SHIFT_ACH5_TXBD_DESA_H)
#define BITS_ACH5_TXBD_DESA_H				(BIT_MASK_ACH5_TXBD_DESA_H << BIT_SHIFT_ACH5_TXBD_DESA_H)
#define BIT_CLEAR_ACH5_TXBD_DESA_H(x)			((x) & (~BITS_ACH5_TXBD_DESA_H))
#define BIT_GET_ACH5_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH5_TXBD_DESA_H) & BIT_MASK_ACH5_TXBD_DESA_H)
#define BIT_SET_ACH5_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH5_TXBD_DESA_H(x) | BIT_ACH5_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI12Q_TXBD_IDX			(Offset 0x1368) */


#define BIT_SHIFT_HI12Q_HW_IDX				16
#define BIT_MASK_HI12Q_HW_IDX				0xfff
#define BIT_HI12Q_HW_IDX(x)				(((x) & BIT_MASK_HI12Q_HW_IDX) << BIT_SHIFT_HI12Q_HW_IDX)
#define BITS_HI12Q_HW_IDX				(BIT_MASK_HI12Q_HW_IDX << BIT_SHIFT_HI12Q_HW_IDX)
#define BIT_CLEAR_HI12Q_HW_IDX(x)			((x) & (~BITS_HI12Q_HW_IDX))
#define BIT_GET_HI12Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI12Q_HW_IDX) & BIT_MASK_HI12Q_HW_IDX)
#define BIT_SET_HI12Q_HW_IDX(x, v)			(BIT_CLEAR_HI12Q_HW_IDX(x) | BIT_HI12Q_HW_IDX(v))


#define BIT_SHIFT_HI12Q_HOST_IDX			0
#define BIT_MASK_HI12Q_HOST_IDX			0xfff
#define BIT_HI12Q_HOST_IDX(x)				(((x) & BIT_MASK_HI12Q_HOST_IDX) << BIT_SHIFT_HI12Q_HOST_IDX)
#define BITS_HI12Q_HOST_IDX				(BIT_MASK_HI12Q_HOST_IDX << BIT_SHIFT_HI12Q_HOST_IDX)
#define BIT_CLEAR_HI12Q_HOST_IDX(x)			((x) & (~BITS_HI12Q_HOST_IDX))
#define BIT_GET_HI12Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI12Q_HOST_IDX) & BIT_MASK_HI12Q_HOST_IDX)
#define BIT_SET_HI12Q_HOST_IDX(x, v)			(BIT_CLEAR_HI12Q_HOST_IDX(x) | BIT_HI12Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH6_TXBD_DESA_L			(Offset 0x1368) */


#define BIT_SHIFT_ACH6_TXBD_DESA_L			0
#define BIT_MASK_ACH6_TXBD_DESA_L			0xffffffffL
#define BIT_ACH6_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH6_TXBD_DESA_L) << BIT_SHIFT_ACH6_TXBD_DESA_L)
#define BITS_ACH6_TXBD_DESA_L				(BIT_MASK_ACH6_TXBD_DESA_L << BIT_SHIFT_ACH6_TXBD_DESA_L)
#define BIT_CLEAR_ACH6_TXBD_DESA_L(x)			((x) & (~BITS_ACH6_TXBD_DESA_L))
#define BIT_GET_ACH6_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH6_TXBD_DESA_L) & BIT_MASK_ACH6_TXBD_DESA_L)
#define BIT_SET_ACH6_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH6_TXBD_DESA_L(x) | BIT_ACH6_TXBD_DESA_L(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI13Q_TXBD_IDX			(Offset 0x136C) */


#define BIT_SHIFT_HI13Q_HW_IDX				16
#define BIT_MASK_HI13Q_HW_IDX				0xfff
#define BIT_HI13Q_HW_IDX(x)				(((x) & BIT_MASK_HI13Q_HW_IDX) << BIT_SHIFT_HI13Q_HW_IDX)
#define BITS_HI13Q_HW_IDX				(BIT_MASK_HI13Q_HW_IDX << BIT_SHIFT_HI13Q_HW_IDX)
#define BIT_CLEAR_HI13Q_HW_IDX(x)			((x) & (~BITS_HI13Q_HW_IDX))
#define BIT_GET_HI13Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI13Q_HW_IDX) & BIT_MASK_HI13Q_HW_IDX)
#define BIT_SET_HI13Q_HW_IDX(x, v)			(BIT_CLEAR_HI13Q_HW_IDX(x) | BIT_HI13Q_HW_IDX(v))


#define BIT_SHIFT_HI13Q_HOST_IDX			0
#define BIT_MASK_HI13Q_HOST_IDX			0xfff
#define BIT_HI13Q_HOST_IDX(x)				(((x) & BIT_MASK_HI13Q_HOST_IDX) << BIT_SHIFT_HI13Q_HOST_IDX)
#define BITS_HI13Q_HOST_IDX				(BIT_MASK_HI13Q_HOST_IDX << BIT_SHIFT_HI13Q_HOST_IDX)
#define BIT_CLEAR_HI13Q_HOST_IDX(x)			((x) & (~BITS_HI13Q_HOST_IDX))
#define BIT_GET_HI13Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI13Q_HOST_IDX) & BIT_MASK_HI13Q_HOST_IDX)
#define BIT_SET_HI13Q_HOST_IDX(x, v)			(BIT_CLEAR_HI13Q_HOST_IDX(x) | BIT_HI13Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH6_TXBD_DESA_H			(Offset 0x136C) */


#define BIT_SHIFT_ACH6_TXBD_DESA_H			0
#define BIT_MASK_ACH6_TXBD_DESA_H			0xffffffffL
#define BIT_ACH6_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH6_TXBD_DESA_H) << BIT_SHIFT_ACH6_TXBD_DESA_H)
#define BITS_ACH6_TXBD_DESA_H				(BIT_MASK_ACH6_TXBD_DESA_H << BIT_SHIFT_ACH6_TXBD_DESA_H)
#define BIT_CLEAR_ACH6_TXBD_DESA_H(x)			((x) & (~BITS_ACH6_TXBD_DESA_H))
#define BIT_GET_ACH6_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH6_TXBD_DESA_H) & BIT_MASK_ACH6_TXBD_DESA_H)
#define BIT_SET_ACH6_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH6_TXBD_DESA_H(x) | BIT_ACH6_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI14Q_TXBD_IDX			(Offset 0x1370) */


#define BIT_SHIFT_HI14Q_HW_IDX				16
#define BIT_MASK_HI14Q_HW_IDX				0xfff
#define BIT_HI14Q_HW_IDX(x)				(((x) & BIT_MASK_HI14Q_HW_IDX) << BIT_SHIFT_HI14Q_HW_IDX)
#define BITS_HI14Q_HW_IDX				(BIT_MASK_HI14Q_HW_IDX << BIT_SHIFT_HI14Q_HW_IDX)
#define BIT_CLEAR_HI14Q_HW_IDX(x)			((x) & (~BITS_HI14Q_HW_IDX))
#define BIT_GET_HI14Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI14Q_HW_IDX) & BIT_MASK_HI14Q_HW_IDX)
#define BIT_SET_HI14Q_HW_IDX(x, v)			(BIT_CLEAR_HI14Q_HW_IDX(x) | BIT_HI14Q_HW_IDX(v))


#define BIT_SHIFT_HI14Q_HOST_IDX			0
#define BIT_MASK_HI14Q_HOST_IDX			0xfff
#define BIT_HI14Q_HOST_IDX(x)				(((x) & BIT_MASK_HI14Q_HOST_IDX) << BIT_SHIFT_HI14Q_HOST_IDX)
#define BITS_HI14Q_HOST_IDX				(BIT_MASK_HI14Q_HOST_IDX << BIT_SHIFT_HI14Q_HOST_IDX)
#define BIT_CLEAR_HI14Q_HOST_IDX(x)			((x) & (~BITS_HI14Q_HOST_IDX))
#define BIT_GET_HI14Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI14Q_HOST_IDX) & BIT_MASK_HI14Q_HOST_IDX)
#define BIT_SET_HI14Q_HOST_IDX(x, v)			(BIT_CLEAR_HI14Q_HOST_IDX(x) | BIT_HI14Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH7_TXBD_DESA_L			(Offset 0x1370) */


#define BIT_SHIFT_ACH7_TXBD_DESA_L			0
#define BIT_MASK_ACH7_TXBD_DESA_L			0xffffffffL
#define BIT_ACH7_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH7_TXBD_DESA_L) << BIT_SHIFT_ACH7_TXBD_DESA_L)
#define BITS_ACH7_TXBD_DESA_L				(BIT_MASK_ACH7_TXBD_DESA_L << BIT_SHIFT_ACH7_TXBD_DESA_L)
#define BIT_CLEAR_ACH7_TXBD_DESA_L(x)			((x) & (~BITS_ACH7_TXBD_DESA_L))
#define BIT_GET_ACH7_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH7_TXBD_DESA_L) & BIT_MASK_ACH7_TXBD_DESA_L)
#define BIT_SET_ACH7_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH7_TXBD_DESA_L(x) | BIT_ACH7_TXBD_DESA_L(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI15Q_TXBD_IDX			(Offset 0x1374) */


#define BIT_SHIFT_HI15Q_HW_IDX				16
#define BIT_MASK_HI15Q_HW_IDX				0xfff
#define BIT_HI15Q_HW_IDX(x)				(((x) & BIT_MASK_HI15Q_HW_IDX) << BIT_SHIFT_HI15Q_HW_IDX)
#define BITS_HI15Q_HW_IDX				(BIT_MASK_HI15Q_HW_IDX << BIT_SHIFT_HI15Q_HW_IDX)
#define BIT_CLEAR_HI15Q_HW_IDX(x)			((x) & (~BITS_HI15Q_HW_IDX))
#define BIT_GET_HI15Q_HW_IDX(x)			(((x) >> BIT_SHIFT_HI15Q_HW_IDX) & BIT_MASK_HI15Q_HW_IDX)
#define BIT_SET_HI15Q_HW_IDX(x, v)			(BIT_CLEAR_HI15Q_HW_IDX(x) | BIT_HI15Q_HW_IDX(v))


#define BIT_SHIFT_HI15Q_HOST_IDX			0
#define BIT_MASK_HI15Q_HOST_IDX			0xfff
#define BIT_HI15Q_HOST_IDX(x)				(((x) & BIT_MASK_HI15Q_HOST_IDX) << BIT_SHIFT_HI15Q_HOST_IDX)
#define BITS_HI15Q_HOST_IDX				(BIT_MASK_HI15Q_HOST_IDX << BIT_SHIFT_HI15Q_HOST_IDX)
#define BIT_CLEAR_HI15Q_HOST_IDX(x)			((x) & (~BITS_HI15Q_HOST_IDX))
#define BIT_GET_HI15Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_HI15Q_HOST_IDX) & BIT_MASK_HI15Q_HOST_IDX)
#define BIT_SET_HI15Q_HOST_IDX(x, v)			(BIT_CLEAR_HI15Q_HOST_IDX(x) | BIT_HI15Q_HOST_IDX(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH7_TXBD_DESA_H			(Offset 0x1374) */


#define BIT_SHIFT_ACH7_TXBD_DESA_H			0
#define BIT_MASK_ACH7_TXBD_DESA_H			0xffffffffL
#define BIT_ACH7_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH7_TXBD_DESA_H) << BIT_SHIFT_ACH7_TXBD_DESA_H)
#define BITS_ACH7_TXBD_DESA_H				(BIT_MASK_ACH7_TXBD_DESA_H << BIT_SHIFT_ACH7_TXBD_DESA_H)
#define BIT_CLEAR_ACH7_TXBD_DESA_H(x)			((x) & (~BITS_ACH7_TXBD_DESA_H))
#define BIT_GET_ACH7_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH7_TXBD_DESA_H) & BIT_MASK_ACH7_TXBD_DESA_H)
#define BIT_SET_ACH7_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH7_TXBD_DESA_H(x) | BIT_ACH7_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI8Q_TXBD_DESA			(Offset 0x1378) */


#define BIT_SHIFT_HI8Q_TXBD_DESA			0
#define BIT_MASK_HI8Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI8Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI8Q_TXBD_DESA) << BIT_SHIFT_HI8Q_TXBD_DESA)
#define BITS_HI8Q_TXBD_DESA				(BIT_MASK_HI8Q_TXBD_DESA << BIT_SHIFT_HI8Q_TXBD_DESA)
#define BIT_CLEAR_HI8Q_TXBD_DESA(x)			((x) & (~BITS_HI8Q_TXBD_DESA))
#define BIT_GET_HI8Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI8Q_TXBD_DESA) & BIT_MASK_HI8Q_TXBD_DESA)
#define BIT_SET_HI8Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI8Q_TXBD_DESA(x) | BIT_HI8Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH8_TXBD_DESA_L			(Offset 0x1378) */


#define BIT_SHIFT_ACH8_TXBD_DESA_L			0
#define BIT_MASK_ACH8_TXBD_DESA_L			0xffffffffL
#define BIT_ACH8_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH8_TXBD_DESA_L) << BIT_SHIFT_ACH8_TXBD_DESA_L)
#define BITS_ACH8_TXBD_DESA_L				(BIT_MASK_ACH8_TXBD_DESA_L << BIT_SHIFT_ACH8_TXBD_DESA_L)
#define BIT_CLEAR_ACH8_TXBD_DESA_L(x)			((x) & (~BITS_ACH8_TXBD_DESA_L))
#define BIT_GET_ACH8_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH8_TXBD_DESA_L) & BIT_MASK_ACH8_TXBD_DESA_L)
#define BIT_SET_ACH8_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH8_TXBD_DESA_L(x) | BIT_ACH8_TXBD_DESA_L(v))


/* 2 REG_ACH8_TXBD_DESA_H			(Offset 0x137C) */


#define BIT_SHIFT_ACH8_TXBD_DESA_H			0
#define BIT_MASK_ACH8_TXBD_DESA_H			0xffffffffL
#define BIT_ACH8_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH8_TXBD_DESA_H) << BIT_SHIFT_ACH8_TXBD_DESA_H)
#define BITS_ACH8_TXBD_DESA_H				(BIT_MASK_ACH8_TXBD_DESA_H << BIT_SHIFT_ACH8_TXBD_DESA_H)
#define BIT_CLEAR_ACH8_TXBD_DESA_H(x)			((x) & (~BITS_ACH8_TXBD_DESA_H))
#define BIT_GET_ACH8_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH8_TXBD_DESA_H) & BIT_MASK_ACH8_TXBD_DESA_H)
#define BIT_SET_ACH8_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH8_TXBD_DESA_H(x) | BIT_ACH8_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI9Q_TXBD_DESA			(Offset 0x1380) */


#define BIT_SHIFT_HI9Q_TXBD_DESA			0
#define BIT_MASK_HI9Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI9Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI9Q_TXBD_DESA) << BIT_SHIFT_HI9Q_TXBD_DESA)
#define BITS_HI9Q_TXBD_DESA				(BIT_MASK_HI9Q_TXBD_DESA << BIT_SHIFT_HI9Q_TXBD_DESA)
#define BIT_CLEAR_HI9Q_TXBD_DESA(x)			((x) & (~BITS_HI9Q_TXBD_DESA))
#define BIT_GET_HI9Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI9Q_TXBD_DESA) & BIT_MASK_HI9Q_TXBD_DESA)
#define BIT_SET_HI9Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI9Q_TXBD_DESA(x) | BIT_HI9Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH9_TXBD_DESA_L			(Offset 0x1380) */


#define BIT_SHIFT_ACH9_TXBD_DESA_L			0
#define BIT_MASK_ACH9_TXBD_DESA_L			0xffffffffL
#define BIT_ACH9_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH9_TXBD_DESA_L) << BIT_SHIFT_ACH9_TXBD_DESA_L)
#define BITS_ACH9_TXBD_DESA_L				(BIT_MASK_ACH9_TXBD_DESA_L << BIT_SHIFT_ACH9_TXBD_DESA_L)
#define BIT_CLEAR_ACH9_TXBD_DESA_L(x)			((x) & (~BITS_ACH9_TXBD_DESA_L))
#define BIT_GET_ACH9_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH9_TXBD_DESA_L) & BIT_MASK_ACH9_TXBD_DESA_L)
#define BIT_SET_ACH9_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH9_TXBD_DESA_L(x) | BIT_ACH9_TXBD_DESA_L(v))


/* 2 REG_ACH9_TXBD_DESA_H			(Offset 0x1384) */


#define BIT_SHIFT_ACH9_TXBD_DESA_H			0
#define BIT_MASK_ACH9_TXBD_DESA_H			0xffffffffL
#define BIT_ACH9_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH9_TXBD_DESA_H) << BIT_SHIFT_ACH9_TXBD_DESA_H)
#define BITS_ACH9_TXBD_DESA_H				(BIT_MASK_ACH9_TXBD_DESA_H << BIT_SHIFT_ACH9_TXBD_DESA_H)
#define BIT_CLEAR_ACH9_TXBD_DESA_H(x)			((x) & (~BITS_ACH9_TXBD_DESA_H))
#define BIT_GET_ACH9_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH9_TXBD_DESA_H) & BIT_MASK_ACH9_TXBD_DESA_H)
#define BIT_SET_ACH9_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH9_TXBD_DESA_H(x) | BIT_ACH9_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI10Q_TXBD_DESA			(Offset 0x1388) */


#define BIT_SHIFT_HI10Q_TXBD_DESA			0
#define BIT_MASK_HI10Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI10Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI10Q_TXBD_DESA) << BIT_SHIFT_HI10Q_TXBD_DESA)
#define BITS_HI10Q_TXBD_DESA				(BIT_MASK_HI10Q_TXBD_DESA << BIT_SHIFT_HI10Q_TXBD_DESA)
#define BIT_CLEAR_HI10Q_TXBD_DESA(x)			((x) & (~BITS_HI10Q_TXBD_DESA))
#define BIT_GET_HI10Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI10Q_TXBD_DESA) & BIT_MASK_HI10Q_TXBD_DESA)
#define BIT_SET_HI10Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI10Q_TXBD_DESA(x) | BIT_HI10Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH10_TXBD_DESA_L			(Offset 0x1388) */


#define BIT_SHIFT_ACH10_TXBD_DESA_L			0
#define BIT_MASK_ACH10_TXBD_DESA_L			0xffffffffL
#define BIT_ACH10_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH10_TXBD_DESA_L) << BIT_SHIFT_ACH10_TXBD_DESA_L)
#define BITS_ACH10_TXBD_DESA_L				(BIT_MASK_ACH10_TXBD_DESA_L << BIT_SHIFT_ACH10_TXBD_DESA_L)
#define BIT_CLEAR_ACH10_TXBD_DESA_L(x)			((x) & (~BITS_ACH10_TXBD_DESA_L))
#define BIT_GET_ACH10_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH10_TXBD_DESA_L) & BIT_MASK_ACH10_TXBD_DESA_L)
#define BIT_SET_ACH10_TXBD_DESA_L(x, v)		(BIT_CLEAR_ACH10_TXBD_DESA_L(x) | BIT_ACH10_TXBD_DESA_L(v))


/* 2 REG_ACH10_TXBD_DESA_H			(Offset 0x138C) */


#define BIT_SHIFT_ACH10_TXBD_DESA_H			0
#define BIT_MASK_ACH10_TXBD_DESA_H			0xffffffffL
#define BIT_ACH10_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH10_TXBD_DESA_H) << BIT_SHIFT_ACH10_TXBD_DESA_H)
#define BITS_ACH10_TXBD_DESA_H				(BIT_MASK_ACH10_TXBD_DESA_H << BIT_SHIFT_ACH10_TXBD_DESA_H)
#define BIT_CLEAR_ACH10_TXBD_DESA_H(x)			((x) & (~BITS_ACH10_TXBD_DESA_H))
#define BIT_GET_ACH10_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH10_TXBD_DESA_H) & BIT_MASK_ACH10_TXBD_DESA_H)
#define BIT_SET_ACH10_TXBD_DESA_H(x, v)		(BIT_CLEAR_ACH10_TXBD_DESA_H(x) | BIT_ACH10_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI11Q_TXBD_DESA			(Offset 0x1390) */


#define BIT_SHIFT_HI11Q_TXBD_DESA			0
#define BIT_MASK_HI11Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI11Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI11Q_TXBD_DESA) << BIT_SHIFT_HI11Q_TXBD_DESA)
#define BITS_HI11Q_TXBD_DESA				(BIT_MASK_HI11Q_TXBD_DESA << BIT_SHIFT_HI11Q_TXBD_DESA)
#define BIT_CLEAR_HI11Q_TXBD_DESA(x)			((x) & (~BITS_HI11Q_TXBD_DESA))
#define BIT_GET_HI11Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI11Q_TXBD_DESA) & BIT_MASK_HI11Q_TXBD_DESA)
#define BIT_SET_HI11Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI11Q_TXBD_DESA(x) | BIT_HI11Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH11_TXBD_DESA_L			(Offset 0x1390) */


#define BIT_SHIFT_ACH11_TXBD_DESA_L			0
#define BIT_MASK_ACH11_TXBD_DESA_L			0xffffffffL
#define BIT_ACH11_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH11_TXBD_DESA_L) << BIT_SHIFT_ACH11_TXBD_DESA_L)
#define BITS_ACH11_TXBD_DESA_L				(BIT_MASK_ACH11_TXBD_DESA_L << BIT_SHIFT_ACH11_TXBD_DESA_L)
#define BIT_CLEAR_ACH11_TXBD_DESA_L(x)			((x) & (~BITS_ACH11_TXBD_DESA_L))
#define BIT_GET_ACH11_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH11_TXBD_DESA_L) & BIT_MASK_ACH11_TXBD_DESA_L)
#define BIT_SET_ACH11_TXBD_DESA_L(x, v)		(BIT_CLEAR_ACH11_TXBD_DESA_L(x) | BIT_ACH11_TXBD_DESA_L(v))


/* 2 REG_ACH11_TXBD_DESA_H			(Offset 0x1394) */


#define BIT_SHIFT_ACH11_TXBD_DESA_H			0
#define BIT_MASK_ACH11_TXBD_DESA_H			0xffffffffL
#define BIT_ACH11_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH11_TXBD_DESA_H) << BIT_SHIFT_ACH11_TXBD_DESA_H)
#define BITS_ACH11_TXBD_DESA_H				(BIT_MASK_ACH11_TXBD_DESA_H << BIT_SHIFT_ACH11_TXBD_DESA_H)
#define BIT_CLEAR_ACH11_TXBD_DESA_H(x)			((x) & (~BITS_ACH11_TXBD_DESA_H))
#define BIT_GET_ACH11_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH11_TXBD_DESA_H) & BIT_MASK_ACH11_TXBD_DESA_H)
#define BIT_SET_ACH11_TXBD_DESA_H(x, v)		(BIT_CLEAR_ACH11_TXBD_DESA_H(x) | BIT_ACH11_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI12Q_TXBD_DESA			(Offset 0x1398) */


#define BIT_SHIFT_HI12Q_TXBD_DESA			0
#define BIT_MASK_HI12Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI12Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI12Q_TXBD_DESA) << BIT_SHIFT_HI12Q_TXBD_DESA)
#define BITS_HI12Q_TXBD_DESA				(BIT_MASK_HI12Q_TXBD_DESA << BIT_SHIFT_HI12Q_TXBD_DESA)
#define BIT_CLEAR_HI12Q_TXBD_DESA(x)			((x) & (~BITS_HI12Q_TXBD_DESA))
#define BIT_GET_HI12Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI12Q_TXBD_DESA) & BIT_MASK_HI12Q_TXBD_DESA)
#define BIT_SET_HI12Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI12Q_TXBD_DESA(x) | BIT_HI12Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH12_TXBD_DESA_L			(Offset 0x1398) */


#define BIT_SHIFT_ACH12_TXBD_DESA_L			0
#define BIT_MASK_ACH12_TXBD_DESA_L			0xffffffffL
#define BIT_ACH12_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH12_TXBD_DESA_L) << BIT_SHIFT_ACH12_TXBD_DESA_L)
#define BITS_ACH12_TXBD_DESA_L				(BIT_MASK_ACH12_TXBD_DESA_L << BIT_SHIFT_ACH12_TXBD_DESA_L)
#define BIT_CLEAR_ACH12_TXBD_DESA_L(x)			((x) & (~BITS_ACH12_TXBD_DESA_L))
#define BIT_GET_ACH12_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH12_TXBD_DESA_L) & BIT_MASK_ACH12_TXBD_DESA_L)
#define BIT_SET_ACH12_TXBD_DESA_L(x, v)		(BIT_CLEAR_ACH12_TXBD_DESA_L(x) | BIT_ACH12_TXBD_DESA_L(v))


/* 2 REG_ACH12_TXBD_DESA_H			(Offset 0x139C) */


#define BIT_SHIFT_ACH12_TXBD_DESA_H			0
#define BIT_MASK_ACH12_TXBD_DESA_H			0xffffffffL
#define BIT_ACH12_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH12_TXBD_DESA_H) << BIT_SHIFT_ACH12_TXBD_DESA_H)
#define BITS_ACH12_TXBD_DESA_H				(BIT_MASK_ACH12_TXBD_DESA_H << BIT_SHIFT_ACH12_TXBD_DESA_H)
#define BIT_CLEAR_ACH12_TXBD_DESA_H(x)			((x) & (~BITS_ACH12_TXBD_DESA_H))
#define BIT_GET_ACH12_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH12_TXBD_DESA_H) & BIT_MASK_ACH12_TXBD_DESA_H)
#define BIT_SET_ACH12_TXBD_DESA_H(x, v)		(BIT_CLEAR_ACH12_TXBD_DESA_H(x) | BIT_ACH12_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI13Q_TXBD_DESA			(Offset 0x13A0) */


#define BIT_SHIFT_HI13Q_TXBD_DESA			0
#define BIT_MASK_HI13Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI13Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI13Q_TXBD_DESA) << BIT_SHIFT_HI13Q_TXBD_DESA)
#define BITS_HI13Q_TXBD_DESA				(BIT_MASK_HI13Q_TXBD_DESA << BIT_SHIFT_HI13Q_TXBD_DESA)
#define BIT_CLEAR_HI13Q_TXBD_DESA(x)			((x) & (~BITS_HI13Q_TXBD_DESA))
#define BIT_GET_HI13Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI13Q_TXBD_DESA) & BIT_MASK_HI13Q_TXBD_DESA)
#define BIT_SET_HI13Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI13Q_TXBD_DESA(x) | BIT_HI13Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH13_TXBD_DESA_L			(Offset 0x13A0) */


#define BIT_SHIFT_ACH13_TXBD_DESA_L			0
#define BIT_MASK_ACH13_TXBD_DESA_L			0xffffffffL
#define BIT_ACH13_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH13_TXBD_DESA_L) << BIT_SHIFT_ACH13_TXBD_DESA_L)
#define BITS_ACH13_TXBD_DESA_L				(BIT_MASK_ACH13_TXBD_DESA_L << BIT_SHIFT_ACH13_TXBD_DESA_L)
#define BIT_CLEAR_ACH13_TXBD_DESA_L(x)			((x) & (~BITS_ACH13_TXBD_DESA_L))
#define BIT_GET_ACH13_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH13_TXBD_DESA_L) & BIT_MASK_ACH13_TXBD_DESA_L)
#define BIT_SET_ACH13_TXBD_DESA_L(x, v)		(BIT_CLEAR_ACH13_TXBD_DESA_L(x) | BIT_ACH13_TXBD_DESA_L(v))


/* 2 REG_ACH13_TXBD_DESA_H			(Offset 0x13A4) */


#define BIT_SHIFT_ACH13_TXBD_DESA_H			0
#define BIT_MASK_ACH13_TXBD_DESA_H			0xffffffffL
#define BIT_ACH13_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH13_TXBD_DESA_H) << BIT_SHIFT_ACH13_TXBD_DESA_H)
#define BITS_ACH13_TXBD_DESA_H				(BIT_MASK_ACH13_TXBD_DESA_H << BIT_SHIFT_ACH13_TXBD_DESA_H)
#define BIT_CLEAR_ACH13_TXBD_DESA_H(x)			((x) & (~BITS_ACH13_TXBD_DESA_H))
#define BIT_GET_ACH13_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH13_TXBD_DESA_H) & BIT_MASK_ACH13_TXBD_DESA_H)
#define BIT_SET_ACH13_TXBD_DESA_H(x, v)		(BIT_CLEAR_ACH13_TXBD_DESA_H(x) | BIT_ACH13_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI14Q_TXBD_DESA			(Offset 0x13A8) */


#define BIT_SHIFT_HI14Q_TXBD_DESA			0
#define BIT_MASK_HI14Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI14Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI14Q_TXBD_DESA) << BIT_SHIFT_HI14Q_TXBD_DESA)
#define BITS_HI14Q_TXBD_DESA				(BIT_MASK_HI14Q_TXBD_DESA << BIT_SHIFT_HI14Q_TXBD_DESA)
#define BIT_CLEAR_HI14Q_TXBD_DESA(x)			((x) & (~BITS_HI14Q_TXBD_DESA))
#define BIT_GET_HI14Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI14Q_TXBD_DESA) & BIT_MASK_HI14Q_TXBD_DESA)
#define BIT_SET_HI14Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI14Q_TXBD_DESA(x) | BIT_HI14Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI0Q_TXBD_DESA_L			(Offset 0x13A8) */


#define BIT_SHIFT_HI0Q_TXBD_DESA_L			0
#define BIT_MASK_HI0Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI0Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI0Q_TXBD_DESA_L) << BIT_SHIFT_HI0Q_TXBD_DESA_L)
#define BITS_HI0Q_TXBD_DESA_L				(BIT_MASK_HI0Q_TXBD_DESA_L << BIT_SHIFT_HI0Q_TXBD_DESA_L)
#define BIT_CLEAR_HI0Q_TXBD_DESA_L(x)			((x) & (~BITS_HI0Q_TXBD_DESA_L))
#define BIT_GET_HI0Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_L) & BIT_MASK_HI0Q_TXBD_DESA_L)
#define BIT_SET_HI0Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI0Q_TXBD_DESA_L(x) | BIT_HI0Q_TXBD_DESA_L(v))


/* 2 REG_HI0Q_TXBD_DESA_H			(Offset 0x13AC) */


#define BIT_SHIFT_HI0Q_TXBD_DESA_H			0
#define BIT_MASK_HI0Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI0Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI0Q_TXBD_DESA_H) << BIT_SHIFT_HI0Q_TXBD_DESA_H)
#define BITS_HI0Q_TXBD_DESA_H				(BIT_MASK_HI0Q_TXBD_DESA_H << BIT_SHIFT_HI0Q_TXBD_DESA_H)
#define BIT_CLEAR_HI0Q_TXBD_DESA_H(x)			((x) & (~BITS_HI0Q_TXBD_DESA_H))
#define BIT_GET_HI0Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI0Q_TXBD_DESA_H) & BIT_MASK_HI0Q_TXBD_DESA_H)
#define BIT_SET_HI0Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI0Q_TXBD_DESA_H(x) | BIT_HI0Q_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI15Q_TXBD_DESA			(Offset 0x13B0) */


#define BIT_SHIFT_HI15Q_TXBD_DESA			0
#define BIT_MASK_HI15Q_TXBD_DESA			0xffffffffffffffffL
#define BIT_HI15Q_TXBD_DESA(x)				(((x) & BIT_MASK_HI15Q_TXBD_DESA) << BIT_SHIFT_HI15Q_TXBD_DESA)
#define BITS_HI15Q_TXBD_DESA				(BIT_MASK_HI15Q_TXBD_DESA << BIT_SHIFT_HI15Q_TXBD_DESA)
#define BIT_CLEAR_HI15Q_TXBD_DESA(x)			((x) & (~BITS_HI15Q_TXBD_DESA))
#define BIT_GET_HI15Q_TXBD_DESA(x)			(((x) >> BIT_SHIFT_HI15Q_TXBD_DESA) & BIT_MASK_HI15Q_TXBD_DESA)
#define BIT_SET_HI15Q_TXBD_DESA(x, v)			(BIT_CLEAR_HI15Q_TXBD_DESA(x) | BIT_HI15Q_TXBD_DESA(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI1Q_TXBD_DESA_L			(Offset 0x13B0) */


#define BIT_SHIFT_HI1Q_TXBD_DESA_L			0
#define BIT_MASK_HI1Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI1Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI1Q_TXBD_DESA_L) << BIT_SHIFT_HI1Q_TXBD_DESA_L)
#define BITS_HI1Q_TXBD_DESA_L				(BIT_MASK_HI1Q_TXBD_DESA_L << BIT_SHIFT_HI1Q_TXBD_DESA_L)
#define BIT_CLEAR_HI1Q_TXBD_DESA_L(x)			((x) & (~BITS_HI1Q_TXBD_DESA_L))
#define BIT_GET_HI1Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_L) & BIT_MASK_HI1Q_TXBD_DESA_L)
#define BIT_SET_HI1Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI1Q_TXBD_DESA_L(x) | BIT_HI1Q_TXBD_DESA_L(v))


/* 2 REG_HI1Q_TXBD_DESA_H			(Offset 0x13B4) */


#define BIT_SHIFT_HI1Q_TXBD_DESA_H			0
#define BIT_MASK_HI1Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI1Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI1Q_TXBD_DESA_H) << BIT_SHIFT_HI1Q_TXBD_DESA_H)
#define BITS_HI1Q_TXBD_DESA_H				(BIT_MASK_HI1Q_TXBD_DESA_H << BIT_SHIFT_HI1Q_TXBD_DESA_H)
#define BIT_CLEAR_HI1Q_TXBD_DESA_H(x)			((x) & (~BITS_HI1Q_TXBD_DESA_H))
#define BIT_GET_HI1Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI1Q_TXBD_DESA_H) & BIT_MASK_HI1Q_TXBD_DESA_H)
#define BIT_SET_HI1Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI1Q_TXBD_DESA_H(x) | BIT_HI1Q_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI8Q_TXBD_NUM			(Offset 0x13B8) */

#define BIT_HI8Q_FLAG					BIT(14)

#define BIT_SHIFT_HI8Q_DESC_MODE			12
#define BIT_MASK_HI8Q_DESC_MODE			0x3
#define BIT_HI8Q_DESC_MODE(x)				(((x) & BIT_MASK_HI8Q_DESC_MODE) << BIT_SHIFT_HI8Q_DESC_MODE)
#define BITS_HI8Q_DESC_MODE				(BIT_MASK_HI8Q_DESC_MODE << BIT_SHIFT_HI8Q_DESC_MODE)
#define BIT_CLEAR_HI8Q_DESC_MODE(x)			((x) & (~BITS_HI8Q_DESC_MODE))
#define BIT_GET_HI8Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI8Q_DESC_MODE) & BIT_MASK_HI8Q_DESC_MODE)
#define BIT_SET_HI8Q_DESC_MODE(x, v)			(BIT_CLEAR_HI8Q_DESC_MODE(x) | BIT_HI8Q_DESC_MODE(v))


#define BIT_SHIFT_HI8Q_DESC_NUM			0
#define BIT_MASK_HI8Q_DESC_NUM				0xfff
#define BIT_HI8Q_DESC_NUM(x)				(((x) & BIT_MASK_HI8Q_DESC_NUM) << BIT_SHIFT_HI8Q_DESC_NUM)
#define BITS_HI8Q_DESC_NUM				(BIT_MASK_HI8Q_DESC_NUM << BIT_SHIFT_HI8Q_DESC_NUM)
#define BIT_CLEAR_HI8Q_DESC_NUM(x)			((x) & (~BITS_HI8Q_DESC_NUM))
#define BIT_GET_HI8Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI8Q_DESC_NUM) & BIT_MASK_HI8Q_DESC_NUM)
#define BIT_SET_HI8Q_DESC_NUM(x, v)			(BIT_CLEAR_HI8Q_DESC_NUM(x) | BIT_HI8Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI2Q_TXBD_DESA_L			(Offset 0x13B8) */


#define BIT_SHIFT_HI2Q_TXBD_DESA_L			0
#define BIT_MASK_HI2Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI2Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI2Q_TXBD_DESA_L) << BIT_SHIFT_HI2Q_TXBD_DESA_L)
#define BITS_HI2Q_TXBD_DESA_L				(BIT_MASK_HI2Q_TXBD_DESA_L << BIT_SHIFT_HI2Q_TXBD_DESA_L)
#define BIT_CLEAR_HI2Q_TXBD_DESA_L(x)			((x) & (~BITS_HI2Q_TXBD_DESA_L))
#define BIT_GET_HI2Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_L) & BIT_MASK_HI2Q_TXBD_DESA_L)
#define BIT_SET_HI2Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI2Q_TXBD_DESA_L(x) | BIT_HI2Q_TXBD_DESA_L(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI9Q_TXBD_NUM			(Offset 0x13BA) */

#define BIT_HI9Q_FLAG					BIT(14)

#define BIT_SHIFT_HI9Q_DESC_MODE			12
#define BIT_MASK_HI9Q_DESC_MODE			0x3
#define BIT_HI9Q_DESC_MODE(x)				(((x) & BIT_MASK_HI9Q_DESC_MODE) << BIT_SHIFT_HI9Q_DESC_MODE)
#define BITS_HI9Q_DESC_MODE				(BIT_MASK_HI9Q_DESC_MODE << BIT_SHIFT_HI9Q_DESC_MODE)
#define BIT_CLEAR_HI9Q_DESC_MODE(x)			((x) & (~BITS_HI9Q_DESC_MODE))
#define BIT_GET_HI9Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI9Q_DESC_MODE) & BIT_MASK_HI9Q_DESC_MODE)
#define BIT_SET_HI9Q_DESC_MODE(x, v)			(BIT_CLEAR_HI9Q_DESC_MODE(x) | BIT_HI9Q_DESC_MODE(v))


#define BIT_SHIFT_HI9Q_DESC_NUM			0
#define BIT_MASK_HI9Q_DESC_NUM				0xfff
#define BIT_HI9Q_DESC_NUM(x)				(((x) & BIT_MASK_HI9Q_DESC_NUM) << BIT_SHIFT_HI9Q_DESC_NUM)
#define BITS_HI9Q_DESC_NUM				(BIT_MASK_HI9Q_DESC_NUM << BIT_SHIFT_HI9Q_DESC_NUM)
#define BIT_CLEAR_HI9Q_DESC_NUM(x)			((x) & (~BITS_HI9Q_DESC_NUM))
#define BIT_GET_HI9Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI9Q_DESC_NUM) & BIT_MASK_HI9Q_DESC_NUM)
#define BIT_SET_HI9Q_DESC_NUM(x, v)			(BIT_CLEAR_HI9Q_DESC_NUM(x) | BIT_HI9Q_DESC_NUM(v))


/* 2 REG_HI10Q_TXBD_NUM			(Offset 0x13BC) */

#define BIT_HI10Q_FLAG					BIT(14)

#define BIT_SHIFT_HI10Q_DESC_MODE			12
#define BIT_MASK_HI10Q_DESC_MODE			0x3
#define BIT_HI10Q_DESC_MODE(x)				(((x) & BIT_MASK_HI10Q_DESC_MODE) << BIT_SHIFT_HI10Q_DESC_MODE)
#define BITS_HI10Q_DESC_MODE				(BIT_MASK_HI10Q_DESC_MODE << BIT_SHIFT_HI10Q_DESC_MODE)
#define BIT_CLEAR_HI10Q_DESC_MODE(x)			((x) & (~BITS_HI10Q_DESC_MODE))
#define BIT_GET_HI10Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI10Q_DESC_MODE) & BIT_MASK_HI10Q_DESC_MODE)
#define BIT_SET_HI10Q_DESC_MODE(x, v)			(BIT_CLEAR_HI10Q_DESC_MODE(x) | BIT_HI10Q_DESC_MODE(v))


#define BIT_SHIFT_HI10Q_DESC_NUM			0
#define BIT_MASK_HI10Q_DESC_NUM			0xfff
#define BIT_HI10Q_DESC_NUM(x)				(((x) & BIT_MASK_HI10Q_DESC_NUM) << BIT_SHIFT_HI10Q_DESC_NUM)
#define BITS_HI10Q_DESC_NUM				(BIT_MASK_HI10Q_DESC_NUM << BIT_SHIFT_HI10Q_DESC_NUM)
#define BIT_CLEAR_HI10Q_DESC_NUM(x)			((x) & (~BITS_HI10Q_DESC_NUM))
#define BIT_GET_HI10Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI10Q_DESC_NUM) & BIT_MASK_HI10Q_DESC_NUM)
#define BIT_SET_HI10Q_DESC_NUM(x, v)			(BIT_CLEAR_HI10Q_DESC_NUM(x) | BIT_HI10Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI2Q_TXBD_DESA_H			(Offset 0x13BC) */


#define BIT_SHIFT_HI2Q_TXBD_DESA_H			0
#define BIT_MASK_HI2Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI2Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI2Q_TXBD_DESA_H) << BIT_SHIFT_HI2Q_TXBD_DESA_H)
#define BITS_HI2Q_TXBD_DESA_H				(BIT_MASK_HI2Q_TXBD_DESA_H << BIT_SHIFT_HI2Q_TXBD_DESA_H)
#define BIT_CLEAR_HI2Q_TXBD_DESA_H(x)			((x) & (~BITS_HI2Q_TXBD_DESA_H))
#define BIT_GET_HI2Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI2Q_TXBD_DESA_H) & BIT_MASK_HI2Q_TXBD_DESA_H)
#define BIT_SET_HI2Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI2Q_TXBD_DESA_H(x) | BIT_HI2Q_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI11Q_TXBD_NUM			(Offset 0x13BE) */

#define BIT_HI11Q_FLAG					BIT(14)

#define BIT_SHIFT_HI11Q_DESC_MODE			12
#define BIT_MASK_HI11Q_DESC_MODE			0x3
#define BIT_HI11Q_DESC_MODE(x)				(((x) & BIT_MASK_HI11Q_DESC_MODE) << BIT_SHIFT_HI11Q_DESC_MODE)
#define BITS_HI11Q_DESC_MODE				(BIT_MASK_HI11Q_DESC_MODE << BIT_SHIFT_HI11Q_DESC_MODE)
#define BIT_CLEAR_HI11Q_DESC_MODE(x)			((x) & (~BITS_HI11Q_DESC_MODE))
#define BIT_GET_HI11Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI11Q_DESC_MODE) & BIT_MASK_HI11Q_DESC_MODE)
#define BIT_SET_HI11Q_DESC_MODE(x, v)			(BIT_CLEAR_HI11Q_DESC_MODE(x) | BIT_HI11Q_DESC_MODE(v))


#define BIT_SHIFT_HI11Q_DESC_NUM			0
#define BIT_MASK_HI11Q_DESC_NUM			0xfff
#define BIT_HI11Q_DESC_NUM(x)				(((x) & BIT_MASK_HI11Q_DESC_NUM) << BIT_SHIFT_HI11Q_DESC_NUM)
#define BITS_HI11Q_DESC_NUM				(BIT_MASK_HI11Q_DESC_NUM << BIT_SHIFT_HI11Q_DESC_NUM)
#define BIT_CLEAR_HI11Q_DESC_NUM(x)			((x) & (~BITS_HI11Q_DESC_NUM))
#define BIT_GET_HI11Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI11Q_DESC_NUM) & BIT_MASK_HI11Q_DESC_NUM)
#define BIT_SET_HI11Q_DESC_NUM(x, v)			(BIT_CLEAR_HI11Q_DESC_NUM(x) | BIT_HI11Q_DESC_NUM(v))


/* 2 REG_HI12Q_TXBD_NUM			(Offset 0x13C0) */

#define BIT_HI12Q_FLAG					BIT(14)

#define BIT_SHIFT_HI12Q_DESC_MODE			12
#define BIT_MASK_HI12Q_DESC_MODE			0x3
#define BIT_HI12Q_DESC_MODE(x)				(((x) & BIT_MASK_HI12Q_DESC_MODE) << BIT_SHIFT_HI12Q_DESC_MODE)
#define BITS_HI12Q_DESC_MODE				(BIT_MASK_HI12Q_DESC_MODE << BIT_SHIFT_HI12Q_DESC_MODE)
#define BIT_CLEAR_HI12Q_DESC_MODE(x)			((x) & (~BITS_HI12Q_DESC_MODE))
#define BIT_GET_HI12Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI12Q_DESC_MODE) & BIT_MASK_HI12Q_DESC_MODE)
#define BIT_SET_HI12Q_DESC_MODE(x, v)			(BIT_CLEAR_HI12Q_DESC_MODE(x) | BIT_HI12Q_DESC_MODE(v))


#define BIT_SHIFT_HI12Q_DESC_NUM			0
#define BIT_MASK_HI12Q_DESC_NUM			0xfff
#define BIT_HI12Q_DESC_NUM(x)				(((x) & BIT_MASK_HI12Q_DESC_NUM) << BIT_SHIFT_HI12Q_DESC_NUM)
#define BITS_HI12Q_DESC_NUM				(BIT_MASK_HI12Q_DESC_NUM << BIT_SHIFT_HI12Q_DESC_NUM)
#define BIT_CLEAR_HI12Q_DESC_NUM(x)			((x) & (~BITS_HI12Q_DESC_NUM))
#define BIT_GET_HI12Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI12Q_DESC_NUM) & BIT_MASK_HI12Q_DESC_NUM)
#define BIT_SET_HI12Q_DESC_NUM(x, v)			(BIT_CLEAR_HI12Q_DESC_NUM(x) | BIT_HI12Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI3Q_TXBD_DESA_L			(Offset 0x13C0) */


#define BIT_SHIFT_HI3Q_TXBD_DESA_L			0
#define BIT_MASK_HI3Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI3Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI3Q_TXBD_DESA_L) << BIT_SHIFT_HI3Q_TXBD_DESA_L)
#define BITS_HI3Q_TXBD_DESA_L				(BIT_MASK_HI3Q_TXBD_DESA_L << BIT_SHIFT_HI3Q_TXBD_DESA_L)
#define BIT_CLEAR_HI3Q_TXBD_DESA_L(x)			((x) & (~BITS_HI3Q_TXBD_DESA_L))
#define BIT_GET_HI3Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_L) & BIT_MASK_HI3Q_TXBD_DESA_L)
#define BIT_SET_HI3Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI3Q_TXBD_DESA_L(x) | BIT_HI3Q_TXBD_DESA_L(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI13Q_TXBD_NUM			(Offset 0x13C2) */

#define BIT_HI13Q_FLAG					BIT(14)

#define BIT_SHIFT_HI13Q_DESC_MODE			12
#define BIT_MASK_HI13Q_DESC_MODE			0x3
#define BIT_HI13Q_DESC_MODE(x)				(((x) & BIT_MASK_HI13Q_DESC_MODE) << BIT_SHIFT_HI13Q_DESC_MODE)
#define BITS_HI13Q_DESC_MODE				(BIT_MASK_HI13Q_DESC_MODE << BIT_SHIFT_HI13Q_DESC_MODE)
#define BIT_CLEAR_HI13Q_DESC_MODE(x)			((x) & (~BITS_HI13Q_DESC_MODE))
#define BIT_GET_HI13Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI13Q_DESC_MODE) & BIT_MASK_HI13Q_DESC_MODE)
#define BIT_SET_HI13Q_DESC_MODE(x, v)			(BIT_CLEAR_HI13Q_DESC_MODE(x) | BIT_HI13Q_DESC_MODE(v))


#define BIT_SHIFT_HI13Q_DESC_NUM			0
#define BIT_MASK_HI13Q_DESC_NUM			0xfff
#define BIT_HI13Q_DESC_NUM(x)				(((x) & BIT_MASK_HI13Q_DESC_NUM) << BIT_SHIFT_HI13Q_DESC_NUM)
#define BITS_HI13Q_DESC_NUM				(BIT_MASK_HI13Q_DESC_NUM << BIT_SHIFT_HI13Q_DESC_NUM)
#define BIT_CLEAR_HI13Q_DESC_NUM(x)			((x) & (~BITS_HI13Q_DESC_NUM))
#define BIT_GET_HI13Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI13Q_DESC_NUM) & BIT_MASK_HI13Q_DESC_NUM)
#define BIT_SET_HI13Q_DESC_NUM(x, v)			(BIT_CLEAR_HI13Q_DESC_NUM(x) | BIT_HI13Q_DESC_NUM(v))


/* 2 REG_HI14Q_TXBD_NUM			(Offset 0x13C4) */

#define BIT_HI14Q_FLAG					BIT(14)

#define BIT_SHIFT_HI14Q_DESC_MODE			12
#define BIT_MASK_HI14Q_DESC_MODE			0x3
#define BIT_HI14Q_DESC_MODE(x)				(((x) & BIT_MASK_HI14Q_DESC_MODE) << BIT_SHIFT_HI14Q_DESC_MODE)
#define BITS_HI14Q_DESC_MODE				(BIT_MASK_HI14Q_DESC_MODE << BIT_SHIFT_HI14Q_DESC_MODE)
#define BIT_CLEAR_HI14Q_DESC_MODE(x)			((x) & (~BITS_HI14Q_DESC_MODE))
#define BIT_GET_HI14Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI14Q_DESC_MODE) & BIT_MASK_HI14Q_DESC_MODE)
#define BIT_SET_HI14Q_DESC_MODE(x, v)			(BIT_CLEAR_HI14Q_DESC_MODE(x) | BIT_HI14Q_DESC_MODE(v))


#define BIT_SHIFT_HI14Q_DESC_NUM			0
#define BIT_MASK_HI14Q_DESC_NUM			0xfff
#define BIT_HI14Q_DESC_NUM(x)				(((x) & BIT_MASK_HI14Q_DESC_NUM) << BIT_SHIFT_HI14Q_DESC_NUM)
#define BITS_HI14Q_DESC_NUM				(BIT_MASK_HI14Q_DESC_NUM << BIT_SHIFT_HI14Q_DESC_NUM)
#define BIT_CLEAR_HI14Q_DESC_NUM(x)			((x) & (~BITS_HI14Q_DESC_NUM))
#define BIT_GET_HI14Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI14Q_DESC_NUM) & BIT_MASK_HI14Q_DESC_NUM)
#define BIT_SET_HI14Q_DESC_NUM(x, v)			(BIT_CLEAR_HI14Q_DESC_NUM(x) | BIT_HI14Q_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI3Q_TXBD_DESA_H			(Offset 0x13C4) */


#define BIT_SHIFT_HI3Q_TXBD_DESA_H			0
#define BIT_MASK_HI3Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI3Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI3Q_TXBD_DESA_H) << BIT_SHIFT_HI3Q_TXBD_DESA_H)
#define BITS_HI3Q_TXBD_DESA_H				(BIT_MASK_HI3Q_TXBD_DESA_H << BIT_SHIFT_HI3Q_TXBD_DESA_H)
#define BIT_CLEAR_HI3Q_TXBD_DESA_H(x)			((x) & (~BITS_HI3Q_TXBD_DESA_H))
#define BIT_GET_HI3Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI3Q_TXBD_DESA_H) & BIT_MASK_HI3Q_TXBD_DESA_H)
#define BIT_SET_HI3Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI3Q_TXBD_DESA_H(x) | BIT_HI3Q_TXBD_DESA_H(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_HI15Q_TXBD_NUM			(Offset 0x13C6) */

#define BIT_HI15Q_FLAG					BIT(14)

#define BIT_SHIFT_HI15Q_DESC_MODE			12
#define BIT_MASK_HI15Q_DESC_MODE			0x3
#define BIT_HI15Q_DESC_MODE(x)				(((x) & BIT_MASK_HI15Q_DESC_MODE) << BIT_SHIFT_HI15Q_DESC_MODE)
#define BITS_HI15Q_DESC_MODE				(BIT_MASK_HI15Q_DESC_MODE << BIT_SHIFT_HI15Q_DESC_MODE)
#define BIT_CLEAR_HI15Q_DESC_MODE(x)			((x) & (~BITS_HI15Q_DESC_MODE))
#define BIT_GET_HI15Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_HI15Q_DESC_MODE) & BIT_MASK_HI15Q_DESC_MODE)
#define BIT_SET_HI15Q_DESC_MODE(x, v)			(BIT_CLEAR_HI15Q_DESC_MODE(x) | BIT_HI15Q_DESC_MODE(v))


#define BIT_SHIFT_HI15Q_DESC_NUM			0
#define BIT_MASK_HI15Q_DESC_NUM			0xfff
#define BIT_HI15Q_DESC_NUM(x)				(((x) & BIT_MASK_HI15Q_DESC_NUM) << BIT_SHIFT_HI15Q_DESC_NUM)
#define BITS_HI15Q_DESC_NUM				(BIT_MASK_HI15Q_DESC_NUM << BIT_SHIFT_HI15Q_DESC_NUM)
#define BIT_CLEAR_HI15Q_DESC_NUM(x)			((x) & (~BITS_HI15Q_DESC_NUM))
#define BIT_GET_HI15Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_HI15Q_DESC_NUM) & BIT_MASK_HI15Q_DESC_NUM)
#define BIT_SET_HI15Q_DESC_NUM(x, v)			(BIT_CLEAR_HI15Q_DESC_NUM(x) | BIT_HI15Q_DESC_NUM(v))


/* 2 REG_HIQ_DMA_STOP			(Offset 0x13C8) */

#define BIT_STOP_HI15Q					BIT(7)
#define BIT_STOP_HI14Q					BIT(6)
#define BIT_STOP_HI13Q					BIT(5)
#define BIT_STOP_HI12Q					BIT(4)
#define BIT_STOP_HI11Q					BIT(3)
#define BIT_STOP_HI10Q					BIT(2)
#define BIT_STOP_HI9Q					BIT(1)
#define BIT_STOP_HI8Q					BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HI4Q_TXBD_DESA_L			(Offset 0x13C8) */


#define BIT_SHIFT_HI4Q_TXBD_DESA_L			0
#define BIT_MASK_HI4Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI4Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI4Q_TXBD_DESA_L) << BIT_SHIFT_HI4Q_TXBD_DESA_L)
#define BITS_HI4Q_TXBD_DESA_L				(BIT_MASK_HI4Q_TXBD_DESA_L << BIT_SHIFT_HI4Q_TXBD_DESA_L)
#define BIT_CLEAR_HI4Q_TXBD_DESA_L(x)			((x) & (~BITS_HI4Q_TXBD_DESA_L))
#define BIT_GET_HI4Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_L) & BIT_MASK_HI4Q_TXBD_DESA_L)
#define BIT_SET_HI4Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI4Q_TXBD_DESA_L(x) | BIT_HI4Q_TXBD_DESA_L(v))


/* 2 REG_HI4Q_TXBD_DESA_H			(Offset 0x13CC) */


#define BIT_SHIFT_HI4Q_TXBD_DESA_H			0
#define BIT_MASK_HI4Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI4Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI4Q_TXBD_DESA_H) << BIT_SHIFT_HI4Q_TXBD_DESA_H)
#define BITS_HI4Q_TXBD_DESA_H				(BIT_MASK_HI4Q_TXBD_DESA_H << BIT_SHIFT_HI4Q_TXBD_DESA_H)
#define BIT_CLEAR_HI4Q_TXBD_DESA_H(x)			((x) & (~BITS_HI4Q_TXBD_DESA_H))
#define BIT_GET_HI4Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI4Q_TXBD_DESA_H) & BIT_MASK_HI4Q_TXBD_DESA_H)
#define BIT_SET_HI4Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI4Q_TXBD_DESA_H(x) | BIT_HI4Q_TXBD_DESA_H(v))


/* 2 REG_HI5Q_TXBD_DESA_L			(Offset 0x13D0) */


#define BIT_SHIFT_HI5Q_TXBD_DESA_L			0
#define BIT_MASK_HI5Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI5Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI5Q_TXBD_DESA_L) << BIT_SHIFT_HI5Q_TXBD_DESA_L)
#define BITS_HI5Q_TXBD_DESA_L				(BIT_MASK_HI5Q_TXBD_DESA_L << BIT_SHIFT_HI5Q_TXBD_DESA_L)
#define BIT_CLEAR_HI5Q_TXBD_DESA_L(x)			((x) & (~BITS_HI5Q_TXBD_DESA_L))
#define BIT_GET_HI5Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_L) & BIT_MASK_HI5Q_TXBD_DESA_L)
#define BIT_SET_HI5Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI5Q_TXBD_DESA_L(x) | BIT_HI5Q_TXBD_DESA_L(v))


/* 2 REG_HI5Q_TXBD_DESA_H			(Offset 0x13D4) */


#define BIT_SHIFT_HI5Q_TXBD_DESA_H			0
#define BIT_MASK_HI5Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI5Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI5Q_TXBD_DESA_H) << BIT_SHIFT_HI5Q_TXBD_DESA_H)
#define BITS_HI5Q_TXBD_DESA_H				(BIT_MASK_HI5Q_TXBD_DESA_H << BIT_SHIFT_HI5Q_TXBD_DESA_H)
#define BIT_CLEAR_HI5Q_TXBD_DESA_H(x)			((x) & (~BITS_HI5Q_TXBD_DESA_H))
#define BIT_GET_HI5Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI5Q_TXBD_DESA_H) & BIT_MASK_HI5Q_TXBD_DESA_H)
#define BIT_SET_HI5Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI5Q_TXBD_DESA_H(x) | BIT_HI5Q_TXBD_DESA_H(v))


/* 2 REG_HI6Q_TXBD_DESA_L			(Offset 0x13D8) */


#define BIT_SHIFT_HI6Q_TXBD_DESA_L			0
#define BIT_MASK_HI6Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI6Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI6Q_TXBD_DESA_L) << BIT_SHIFT_HI6Q_TXBD_DESA_L)
#define BITS_HI6Q_TXBD_DESA_L				(BIT_MASK_HI6Q_TXBD_DESA_L << BIT_SHIFT_HI6Q_TXBD_DESA_L)
#define BIT_CLEAR_HI6Q_TXBD_DESA_L(x)			((x) & (~BITS_HI6Q_TXBD_DESA_L))
#define BIT_GET_HI6Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_L) & BIT_MASK_HI6Q_TXBD_DESA_L)
#define BIT_SET_HI6Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI6Q_TXBD_DESA_L(x) | BIT_HI6Q_TXBD_DESA_L(v))


/* 2 REG_HI6Q_TXBD_DESA_H			(Offset 0x13DC) */


#define BIT_SHIFT_HI6Q_TXBD_DESA_H			0
#define BIT_MASK_HI6Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI6Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI6Q_TXBD_DESA_H) << BIT_SHIFT_HI6Q_TXBD_DESA_H)
#define BITS_HI6Q_TXBD_DESA_H				(BIT_MASK_HI6Q_TXBD_DESA_H << BIT_SHIFT_HI6Q_TXBD_DESA_H)
#define BIT_CLEAR_HI6Q_TXBD_DESA_H(x)			((x) & (~BITS_HI6Q_TXBD_DESA_H))
#define BIT_GET_HI6Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI6Q_TXBD_DESA_H) & BIT_MASK_HI6Q_TXBD_DESA_H)
#define BIT_SET_HI6Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI6Q_TXBD_DESA_H(x) | BIT_HI6Q_TXBD_DESA_H(v))


/* 2 REG_HI7Q_TXBD_DESA_L			(Offset 0x13E0) */


#define BIT_SHIFT_HI7Q_TXBD_DESA_L			0
#define BIT_MASK_HI7Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI7Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI7Q_TXBD_DESA_L) << BIT_SHIFT_HI7Q_TXBD_DESA_L)
#define BITS_HI7Q_TXBD_DESA_L				(BIT_MASK_HI7Q_TXBD_DESA_L << BIT_SHIFT_HI7Q_TXBD_DESA_L)
#define BIT_CLEAR_HI7Q_TXBD_DESA_L(x)			((x) & (~BITS_HI7Q_TXBD_DESA_L))
#define BIT_GET_HI7Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_L) & BIT_MASK_HI7Q_TXBD_DESA_L)
#define BIT_SET_HI7Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI7Q_TXBD_DESA_L(x) | BIT_HI7Q_TXBD_DESA_L(v))


/* 2 REG_HI7Q_TXBD_DESA_H			(Offset 0x13E4) */


#define BIT_SHIFT_HI7Q_TXBD_DESA_H			0
#define BIT_MASK_HI7Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI7Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI7Q_TXBD_DESA_H) << BIT_SHIFT_HI7Q_TXBD_DESA_H)
#define BITS_HI7Q_TXBD_DESA_H				(BIT_MASK_HI7Q_TXBD_DESA_H << BIT_SHIFT_HI7Q_TXBD_DESA_H)
#define BIT_CLEAR_HI7Q_TXBD_DESA_H(x)			((x) & (~BITS_HI7Q_TXBD_DESA_H))
#define BIT_GET_HI7Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI7Q_TXBD_DESA_H) & BIT_MASK_HI7Q_TXBD_DESA_H)
#define BIT_SET_HI7Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI7Q_TXBD_DESA_H(x) | BIT_HI7Q_TXBD_DESA_H(v))


/* 2 REG_ACH8_ACH9_TXBD_NUM			(Offset 0x13E8) */

#define BIT_PCIE_ACH9_FLAG				BIT(30)

#define BIT_SHIFT_ACH9_DESC_MODE			28
#define BIT_MASK_ACH9_DESC_MODE			0x3
#define BIT_ACH9_DESC_MODE(x)				(((x) & BIT_MASK_ACH9_DESC_MODE) << BIT_SHIFT_ACH9_DESC_MODE)
#define BITS_ACH9_DESC_MODE				(BIT_MASK_ACH9_DESC_MODE << BIT_SHIFT_ACH9_DESC_MODE)
#define BIT_CLEAR_ACH9_DESC_MODE(x)			((x) & (~BITS_ACH9_DESC_MODE))
#define BIT_GET_ACH9_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH9_DESC_MODE) & BIT_MASK_ACH9_DESC_MODE)
#define BIT_SET_ACH9_DESC_MODE(x, v)			(BIT_CLEAR_ACH9_DESC_MODE(x) | BIT_ACH9_DESC_MODE(v))


#define BIT_SHIFT_ACH9_DESC_NUM			16
#define BIT_MASK_ACH9_DESC_NUM				0xfff
#define BIT_ACH9_DESC_NUM(x)				(((x) & BIT_MASK_ACH9_DESC_NUM) << BIT_SHIFT_ACH9_DESC_NUM)
#define BITS_ACH9_DESC_NUM				(BIT_MASK_ACH9_DESC_NUM << BIT_SHIFT_ACH9_DESC_NUM)
#define BIT_CLEAR_ACH9_DESC_NUM(x)			((x) & (~BITS_ACH9_DESC_NUM))
#define BIT_GET_ACH9_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH9_DESC_NUM) & BIT_MASK_ACH9_DESC_NUM)
#define BIT_SET_ACH9_DESC_NUM(x, v)			(BIT_CLEAR_ACH9_DESC_NUM(x) | BIT_ACH9_DESC_NUM(v))

#define BIT_PCIE_ACH8_FLAG				BIT(14)

#define BIT_SHIFT_ACH8_DESC_MODE			12
#define BIT_MASK_ACH8_DESC_MODE			0x3
#define BIT_ACH8_DESC_MODE(x)				(((x) & BIT_MASK_ACH8_DESC_MODE) << BIT_SHIFT_ACH8_DESC_MODE)
#define BITS_ACH8_DESC_MODE				(BIT_MASK_ACH8_DESC_MODE << BIT_SHIFT_ACH8_DESC_MODE)
#define BIT_CLEAR_ACH8_DESC_MODE(x)			((x) & (~BITS_ACH8_DESC_MODE))
#define BIT_GET_ACH8_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH8_DESC_MODE) & BIT_MASK_ACH8_DESC_MODE)
#define BIT_SET_ACH8_DESC_MODE(x, v)			(BIT_CLEAR_ACH8_DESC_MODE(x) | BIT_ACH8_DESC_MODE(v))


#define BIT_SHIFT_ACH8_DESC_NUM			0
#define BIT_MASK_ACH8_DESC_NUM				0xfff
#define BIT_ACH8_DESC_NUM(x)				(((x) & BIT_MASK_ACH8_DESC_NUM) << BIT_SHIFT_ACH8_DESC_NUM)
#define BITS_ACH8_DESC_NUM				(BIT_MASK_ACH8_DESC_NUM << BIT_SHIFT_ACH8_DESC_NUM)
#define BIT_CLEAR_ACH8_DESC_NUM(x)			((x) & (~BITS_ACH8_DESC_NUM))
#define BIT_GET_ACH8_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH8_DESC_NUM) & BIT_MASK_ACH8_DESC_NUM)
#define BIT_SET_ACH8_DESC_NUM(x, v)			(BIT_CLEAR_ACH8_DESC_NUM(x) | BIT_ACH8_DESC_NUM(v))


/* 2 REG_ACH10_ACH11_TXBD_NUM		(Offset 0x13EC) */

#define BIT_PCIE_ACH11_FLAG				BIT(30)

#define BIT_SHIFT_ACH11_DESC_MODE			28
#define BIT_MASK_ACH11_DESC_MODE			0x3
#define BIT_ACH11_DESC_MODE(x)				(((x) & BIT_MASK_ACH11_DESC_MODE) << BIT_SHIFT_ACH11_DESC_MODE)
#define BITS_ACH11_DESC_MODE				(BIT_MASK_ACH11_DESC_MODE << BIT_SHIFT_ACH11_DESC_MODE)
#define BIT_CLEAR_ACH11_DESC_MODE(x)			((x) & (~BITS_ACH11_DESC_MODE))
#define BIT_GET_ACH11_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH11_DESC_MODE) & BIT_MASK_ACH11_DESC_MODE)
#define BIT_SET_ACH11_DESC_MODE(x, v)			(BIT_CLEAR_ACH11_DESC_MODE(x) | BIT_ACH11_DESC_MODE(v))


#define BIT_SHIFT_ACH11_DESC_NUM			16
#define BIT_MASK_ACH11_DESC_NUM			0xfff
#define BIT_ACH11_DESC_NUM(x)				(((x) & BIT_MASK_ACH11_DESC_NUM) << BIT_SHIFT_ACH11_DESC_NUM)
#define BITS_ACH11_DESC_NUM				(BIT_MASK_ACH11_DESC_NUM << BIT_SHIFT_ACH11_DESC_NUM)
#define BIT_CLEAR_ACH11_DESC_NUM(x)			((x) & (~BITS_ACH11_DESC_NUM))
#define BIT_GET_ACH11_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH11_DESC_NUM) & BIT_MASK_ACH11_DESC_NUM)
#define BIT_SET_ACH11_DESC_NUM(x, v)			(BIT_CLEAR_ACH11_DESC_NUM(x) | BIT_ACH11_DESC_NUM(v))

#define BIT_PCIE_ACH10_FLAG				BIT(14)

#define BIT_SHIFT_ACH10_DESC_MODE			12
#define BIT_MASK_ACH10_DESC_MODE			0x3
#define BIT_ACH10_DESC_MODE(x)				(((x) & BIT_MASK_ACH10_DESC_MODE) << BIT_SHIFT_ACH10_DESC_MODE)
#define BITS_ACH10_DESC_MODE				(BIT_MASK_ACH10_DESC_MODE << BIT_SHIFT_ACH10_DESC_MODE)
#define BIT_CLEAR_ACH10_DESC_MODE(x)			((x) & (~BITS_ACH10_DESC_MODE))
#define BIT_GET_ACH10_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH10_DESC_MODE) & BIT_MASK_ACH10_DESC_MODE)
#define BIT_SET_ACH10_DESC_MODE(x, v)			(BIT_CLEAR_ACH10_DESC_MODE(x) | BIT_ACH10_DESC_MODE(v))


#define BIT_SHIFT_ACH10_DESC_NUM			0
#define BIT_MASK_ACH10_DESC_NUM			0xfff
#define BIT_ACH10_DESC_NUM(x)				(((x) & BIT_MASK_ACH10_DESC_NUM) << BIT_SHIFT_ACH10_DESC_NUM)
#define BITS_ACH10_DESC_NUM				(BIT_MASK_ACH10_DESC_NUM << BIT_SHIFT_ACH10_DESC_NUM)
#define BIT_CLEAR_ACH10_DESC_NUM(x)			((x) & (~BITS_ACH10_DESC_NUM))
#define BIT_GET_ACH10_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH10_DESC_NUM) & BIT_MASK_ACH10_DESC_NUM)
#define BIT_SET_ACH10_DESC_NUM(x, v)			(BIT_CLEAR_ACH10_DESC_NUM(x) | BIT_ACH10_DESC_NUM(v))


/* 2 REG_ACH12_ACH13_TXBD_NUM		(Offset 0x13F0) */

#define BIT_PCIE_ACH13_FLAG				BIT(30)

#define BIT_SHIFT_ACH13_DESC_MODE			28
#define BIT_MASK_ACH13_DESC_MODE			0x3
#define BIT_ACH13_DESC_MODE(x)				(((x) & BIT_MASK_ACH13_DESC_MODE) << BIT_SHIFT_ACH13_DESC_MODE)
#define BITS_ACH13_DESC_MODE				(BIT_MASK_ACH13_DESC_MODE << BIT_SHIFT_ACH13_DESC_MODE)
#define BIT_CLEAR_ACH13_DESC_MODE(x)			((x) & (~BITS_ACH13_DESC_MODE))
#define BIT_GET_ACH13_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH13_DESC_MODE) & BIT_MASK_ACH13_DESC_MODE)
#define BIT_SET_ACH13_DESC_MODE(x, v)			(BIT_CLEAR_ACH13_DESC_MODE(x) | BIT_ACH13_DESC_MODE(v))


#define BIT_SHIFT_ACH13_DESC_NUM			16
#define BIT_MASK_ACH13_DESC_NUM			0xfff
#define BIT_ACH13_DESC_NUM(x)				(((x) & BIT_MASK_ACH13_DESC_NUM) << BIT_SHIFT_ACH13_DESC_NUM)
#define BITS_ACH13_DESC_NUM				(BIT_MASK_ACH13_DESC_NUM << BIT_SHIFT_ACH13_DESC_NUM)
#define BIT_CLEAR_ACH13_DESC_NUM(x)			((x) & (~BITS_ACH13_DESC_NUM))
#define BIT_GET_ACH13_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH13_DESC_NUM) & BIT_MASK_ACH13_DESC_NUM)
#define BIT_SET_ACH13_DESC_NUM(x, v)			(BIT_CLEAR_ACH13_DESC_NUM(x) | BIT_ACH13_DESC_NUM(v))

#define BIT_PCIE_ACH12_FLAG				BIT(14)

#define BIT_SHIFT_ACH12_DESC_MODE			12
#define BIT_MASK_ACH12_DESC_MODE			0x3
#define BIT_ACH12_DESC_MODE(x)				(((x) & BIT_MASK_ACH12_DESC_MODE) << BIT_SHIFT_ACH12_DESC_MODE)
#define BITS_ACH12_DESC_MODE				(BIT_MASK_ACH12_DESC_MODE << BIT_SHIFT_ACH12_DESC_MODE)
#define BIT_CLEAR_ACH12_DESC_MODE(x)			((x) & (~BITS_ACH12_DESC_MODE))
#define BIT_GET_ACH12_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH12_DESC_MODE) & BIT_MASK_ACH12_DESC_MODE)
#define BIT_SET_ACH12_DESC_MODE(x, v)			(BIT_CLEAR_ACH12_DESC_MODE(x) | BIT_ACH12_DESC_MODE(v))


#define BIT_SHIFT_ACH12_DESC_NUM			0
#define BIT_MASK_ACH12_DESC_NUM			0xfff
#define BIT_ACH12_DESC_NUM(x)				(((x) & BIT_MASK_ACH12_DESC_NUM) << BIT_SHIFT_ACH12_DESC_NUM)
#define BITS_ACH12_DESC_NUM				(BIT_MASK_ACH12_DESC_NUM << BIT_SHIFT_ACH12_DESC_NUM)
#define BIT_CLEAR_ACH12_DESC_NUM(x)			((x) & (~BITS_ACH12_DESC_NUM))
#define BIT_GET_ACH12_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH12_DESC_NUM) & BIT_MASK_ACH12_DESC_NUM)
#define BIT_SET_ACH12_DESC_NUM(x, v)			(BIT_CLEAR_ACH12_DESC_NUM(x) | BIT_ACH12_DESC_NUM(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_OLD_DEHANG				(Offset 0x13F4) */

#define BIT_OLD_DEHANG					BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ACH4_TXBD_DESA_L			(Offset 0x13F8) */


#define BIT_SHIFT_ACH4_TXBD_DESA_L			0
#define BIT_MASK_ACH4_TXBD_DESA_L			0xffffffffL
#define BIT_ACH4_TXBD_DESA_L(x)			(((x) & BIT_MASK_ACH4_TXBD_DESA_L) << BIT_SHIFT_ACH4_TXBD_DESA_L)
#define BITS_ACH4_TXBD_DESA_L				(BIT_MASK_ACH4_TXBD_DESA_L << BIT_SHIFT_ACH4_TXBD_DESA_L)
#define BIT_CLEAR_ACH4_TXBD_DESA_L(x)			((x) & (~BITS_ACH4_TXBD_DESA_L))
#define BIT_GET_ACH4_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_ACH4_TXBD_DESA_L) & BIT_MASK_ACH4_TXBD_DESA_L)
#define BIT_SET_ACH4_TXBD_DESA_L(x, v)			(BIT_CLEAR_ACH4_TXBD_DESA_L(x) | BIT_ACH4_TXBD_DESA_L(v))


/* 2 REG_ACH4_TXBD_DESA_H			(Offset 0x13FC) */


#define BIT_SHIFT_ACH4_TXBD_DESA_H			0
#define BIT_MASK_ACH4_TXBD_DESA_H			0xffffffffL
#define BIT_ACH4_TXBD_DESA_H(x)			(((x) & BIT_MASK_ACH4_TXBD_DESA_H) << BIT_SHIFT_ACH4_TXBD_DESA_H)
#define BITS_ACH4_TXBD_DESA_H				(BIT_MASK_ACH4_TXBD_DESA_H << BIT_SHIFT_ACH4_TXBD_DESA_H)
#define BIT_CLEAR_ACH4_TXBD_DESA_H(x)			((x) & (~BITS_ACH4_TXBD_DESA_H))
#define BIT_GET_ACH4_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_ACH4_TXBD_DESA_H) & BIT_MASK_ACH4_TXBD_DESA_H)
#define BIT_SET_ACH4_TXBD_DESA_H(x, v)			(BIT_CLEAR_ACH4_TXBD_DESA_H(x) | BIT_ACH4_TXBD_DESA_H(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q0_Q1_INFO				(Offset 0x1400) */


#define BIT_SHIFT_AC1_PKT_INFO				16
#define BIT_MASK_AC1_PKT_INFO				0xfff
#define BIT_AC1_PKT_INFO(x)				(((x) & BIT_MASK_AC1_PKT_INFO) << BIT_SHIFT_AC1_PKT_INFO)
#define BITS_AC1_PKT_INFO				(BIT_MASK_AC1_PKT_INFO << BIT_SHIFT_AC1_PKT_INFO)
#define BIT_CLEAR_AC1_PKT_INFO(x)			((x) & (~BITS_AC1_PKT_INFO))
#define BIT_GET_AC1_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC1_PKT_INFO) & BIT_MASK_AC1_PKT_INFO)
#define BIT_SET_AC1_PKT_INFO(x, v)			(BIT_CLEAR_AC1_PKT_INFO(x) | BIT_AC1_PKT_INFO(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_OFFSET				(Offset 0x1400) */


#define BIT_SHIFT_MU_RATETABLE_OFFSET			16
#define BIT_MASK_MU_RATETABLE_OFFSET			0x1ff
#define BIT_MU_RATETABLE_OFFSET(x)			(((x) & BIT_MASK_MU_RATETABLE_OFFSET) << BIT_SHIFT_MU_RATETABLE_OFFSET)
#define BITS_MU_RATETABLE_OFFSET			(BIT_MASK_MU_RATETABLE_OFFSET << BIT_SHIFT_MU_RATETABLE_OFFSET)
#define BIT_CLEAR_MU_RATETABLE_OFFSET(x)		((x) & (~BITS_MU_RATETABLE_OFFSET))
#define BIT_GET_MU_RATETABLE_OFFSET(x)			(((x) >> BIT_SHIFT_MU_RATETABLE_OFFSET) & BIT_MASK_MU_RATETABLE_OFFSET)
#define BIT_SET_MU_RATETABLE_OFFSET(x, v)		(BIT_CLEAR_MU_RATETABLE_OFFSET(x) | BIT_MU_RATETABLE_OFFSET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q0_Q1_INFO				(Offset 0x1400) */


#define BIT_SHIFT_AC0_PKT_INFO				0
#define BIT_MASK_AC0_PKT_INFO				0xfff
#define BIT_AC0_PKT_INFO(x)				(((x) & BIT_MASK_AC0_PKT_INFO) << BIT_SHIFT_AC0_PKT_INFO)
#define BITS_AC0_PKT_INFO				(BIT_MASK_AC0_PKT_INFO << BIT_SHIFT_AC0_PKT_INFO)
#define BIT_CLEAR_AC0_PKT_INFO(x)			((x) & (~BITS_AC0_PKT_INFO))
#define BIT_GET_AC0_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC0_PKT_INFO) & BIT_MASK_AC0_PKT_INFO)
#define BIT_SET_AC0_PKT_INFO(x, v)			(BIT_CLEAR_AC0_PKT_INFO(x) | BIT_AC0_PKT_INFO(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ARFR6				(Offset 0x1400) */


#define BIT_SHIFT_ARFR6_V1				0
#define BIT_MASK_ARFR6_V1				0xffffffffffffffffL
#define BIT_ARFR6_V1(x)				(((x) & BIT_MASK_ARFR6_V1) << BIT_SHIFT_ARFR6_V1)
#define BITS_ARFR6_V1					(BIT_MASK_ARFR6_V1 << BIT_SHIFT_ARFR6_V1)
#define BIT_CLEAR_ARFR6_V1(x)				((x) & (~BITS_ARFR6_V1))
#define BIT_GET_ARFR6_V1(x)				(((x) >> BIT_SHIFT_ARFR6_V1) & BIT_MASK_ARFR6_V1)
#define BIT_SET_ARFR6_V1(x, v)				(BIT_CLEAR_ARFR6_V1(x) | BIT_ARFR6_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_OFFSET				(Offset 0x1400) */


#define BIT_SHIFT_MU_SCORETABLE_OFFSET			0
#define BIT_MASK_MU_SCORETABLE_OFFSET			0x1ff
#define BIT_MU_SCORETABLE_OFFSET(x)			(((x) & BIT_MASK_MU_SCORETABLE_OFFSET) << BIT_SHIFT_MU_SCORETABLE_OFFSET)
#define BITS_MU_SCORETABLE_OFFSET			(BIT_MASK_MU_SCORETABLE_OFFSET << BIT_SHIFT_MU_SCORETABLE_OFFSET)
#define BIT_CLEAR_MU_SCORETABLE_OFFSET(x)		((x) & (~BITS_MU_SCORETABLE_OFFSET))
#define BIT_GET_MU_SCORETABLE_OFFSET(x)		(((x) >> BIT_SHIFT_MU_SCORETABLE_OFFSET) & BIT_MASK_MU_SCORETABLE_OFFSET)
#define BIT_SET_MU_SCORETABLE_OFFSET(x, v)		(BIT_CLEAR_MU_SCORETABLE_OFFSET(x) | BIT_MU_SCORETABLE_OFFSET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q2_Q3_INFO				(Offset 0x1404) */


#define BIT_SHIFT_AC3_PKT_INFO				16
#define BIT_MASK_AC3_PKT_INFO				0xfff
#define BIT_AC3_PKT_INFO(x)				(((x) & BIT_MASK_AC3_PKT_INFO) << BIT_SHIFT_AC3_PKT_INFO)
#define BITS_AC3_PKT_INFO				(BIT_MASK_AC3_PKT_INFO << BIT_SHIFT_AC3_PKT_INFO)
#define BIT_CLEAR_AC3_PKT_INFO(x)			((x) & (~BITS_AC3_PKT_INFO))
#define BIT_GET_AC3_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC3_PKT_INFO) & BIT_MASK_AC3_PKT_INFO)
#define BIT_SET_AC3_PKT_INFO(x, v)			(BIT_CLEAR_AC3_PKT_INFO(x) | BIT_AC3_PKT_INFO(v))


#define BIT_SHIFT_AC2_PKT_INFO				0
#define BIT_MASK_AC2_PKT_INFO				0xfff
#define BIT_AC2_PKT_INFO(x)				(((x) & BIT_MASK_AC2_PKT_INFO) << BIT_SHIFT_AC2_PKT_INFO)
#define BITS_AC2_PKT_INFO				(BIT_MASK_AC2_PKT_INFO << BIT_SHIFT_AC2_PKT_INFO)
#define BIT_CLEAR_AC2_PKT_INFO(x)			((x) & (~BITS_AC2_PKT_INFO))
#define BIT_GET_AC2_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC2_PKT_INFO) & BIT_MASK_AC2_PKT_INFO)
#define BIT_SET_AC2_PKT_INFO(x, v)			(BIT_CLEAR_AC2_PKT_INFO(x) | BIT_AC2_PKT_INFO(v))


/* 2 REG_Q4_Q5_INFO				(Offset 0x1408) */


#define BIT_SHIFT_AC5_PKT_INFO				16
#define BIT_MASK_AC5_PKT_INFO				0xfff
#define BIT_AC5_PKT_INFO(x)				(((x) & BIT_MASK_AC5_PKT_INFO) << BIT_SHIFT_AC5_PKT_INFO)
#define BITS_AC5_PKT_INFO				(BIT_MASK_AC5_PKT_INFO << BIT_SHIFT_AC5_PKT_INFO)
#define BIT_CLEAR_AC5_PKT_INFO(x)			((x) & (~BITS_AC5_PKT_INFO))
#define BIT_GET_AC5_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC5_PKT_INFO) & BIT_MASK_AC5_PKT_INFO)
#define BIT_SET_AC5_PKT_INFO(x, v)			(BIT_CLEAR_AC5_PKT_INFO(x) | BIT_AC5_PKT_INFO(v))


#define BIT_SHIFT_AC4_PKT_INFO				0
#define BIT_MASK_AC4_PKT_INFO				0xfff
#define BIT_AC4_PKT_INFO(x)				(((x) & BIT_MASK_AC4_PKT_INFO) << BIT_SHIFT_AC4_PKT_INFO)
#define BITS_AC4_PKT_INFO				(BIT_MASK_AC4_PKT_INFO << BIT_SHIFT_AC4_PKT_INFO)
#define BIT_CLEAR_AC4_PKT_INFO(x)			((x) & (~BITS_AC4_PKT_INFO))
#define BIT_GET_AC4_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC4_PKT_INFO) & BIT_MASK_AC4_PKT_INFO)
#define BIT_SET_AC4_PKT_INFO(x, v)			(BIT_CLEAR_AC4_PKT_INFO(x) | BIT_AC4_PKT_INFO(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ARFR7				(Offset 0x1408) */


#define BIT_SHIFT_ARFR7_V1				0
#define BIT_MASK_ARFR7_V1				0xffffffffffffffffL
#define BIT_ARFR7_V1(x)				(((x) & BIT_MASK_ARFR7_V1) << BIT_SHIFT_ARFR7_V1)
#define BITS_ARFR7_V1					(BIT_MASK_ARFR7_V1 << BIT_SHIFT_ARFR7_V1)
#define BIT_CLEAR_ARFR7_V1(x)				((x) & (~BITS_ARFR7_V1))
#define BIT_GET_ARFR7_V1(x)				(((x) >> BIT_SHIFT_ARFR7_V1) & BIT_MASK_ARFR7_V1)
#define BIT_SET_ARFR7_V1(x, v)				(BIT_CLEAR_ARFR7_V1(x) | BIT_ARFR7_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_Q6_Q7_INFO				(Offset 0x140C) */


#define BIT_SHIFT_AC7_PKT_INFO				16
#define BIT_MASK_AC7_PKT_INFO				0xfff
#define BIT_AC7_PKT_INFO(x)				(((x) & BIT_MASK_AC7_PKT_INFO) << BIT_SHIFT_AC7_PKT_INFO)
#define BITS_AC7_PKT_INFO				(BIT_MASK_AC7_PKT_INFO << BIT_SHIFT_AC7_PKT_INFO)
#define BIT_CLEAR_AC7_PKT_INFO(x)			((x) & (~BITS_AC7_PKT_INFO))
#define BIT_GET_AC7_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC7_PKT_INFO) & BIT_MASK_AC7_PKT_INFO)
#define BIT_SET_AC7_PKT_INFO(x, v)			(BIT_CLEAR_AC7_PKT_INFO(x) | BIT_AC7_PKT_INFO(v))


#define BIT_SHIFT_AC6_PKT_INFO				0
#define BIT_MASK_AC6_PKT_INFO				0xfff
#define BIT_AC6_PKT_INFO(x)				(((x) & BIT_MASK_AC6_PKT_INFO) << BIT_SHIFT_AC6_PKT_INFO)
#define BITS_AC6_PKT_INFO				(BIT_MASK_AC6_PKT_INFO << BIT_SHIFT_AC6_PKT_INFO)
#define BIT_CLEAR_AC6_PKT_INFO(x)			((x) & (~BITS_AC6_PKT_INFO))
#define BIT_GET_AC6_PKT_INFO(x)			(((x) >> BIT_SHIFT_AC6_PKT_INFO) & BIT_MASK_AC6_PKT_INFO)
#define BIT_SET_AC6_PKT_INFO(x, v)			(BIT_CLEAR_AC6_PKT_INFO(x) | BIT_AC6_PKT_INFO(v))


/* 2 REG_MGQ_HIQ_INFO			(Offset 0x1410) */


#define BIT_SHIFT_HIQ_PKT_INFO				16
#define BIT_MASK_HIQ_PKT_INFO				0xfff
#define BIT_HIQ_PKT_INFO(x)				(((x) & BIT_MASK_HIQ_PKT_INFO) << BIT_SHIFT_HIQ_PKT_INFO)
#define BITS_HIQ_PKT_INFO				(BIT_MASK_HIQ_PKT_INFO << BIT_SHIFT_HIQ_PKT_INFO)
#define BIT_CLEAR_HIQ_PKT_INFO(x)			((x) & (~BITS_HIQ_PKT_INFO))
#define BIT_GET_HIQ_PKT_INFO(x)			(((x) >> BIT_SHIFT_HIQ_PKT_INFO) & BIT_MASK_HIQ_PKT_INFO)
#define BIT_SET_HIQ_PKT_INFO(x, v)			(BIT_CLEAR_HIQ_PKT_INFO(x) | BIT_HIQ_PKT_INFO(v))


#define BIT_SHIFT_MGQ_PKT_INFO				0
#define BIT_MASK_MGQ_PKT_INFO				0xfff
#define BIT_MGQ_PKT_INFO(x)				(((x) & BIT_MASK_MGQ_PKT_INFO) << BIT_SHIFT_MGQ_PKT_INFO)
#define BITS_MGQ_PKT_INFO				(BIT_MASK_MGQ_PKT_INFO << BIT_SHIFT_MGQ_PKT_INFO)
#define BIT_CLEAR_MGQ_PKT_INFO(x)			((x) & (~BITS_MGQ_PKT_INFO))
#define BIT_GET_MGQ_PKT_INFO(x)			(((x) >> BIT_SHIFT_MGQ_PKT_INFO) & BIT_MASK_MGQ_PKT_INFO)
#define BIT_SET_MGQ_PKT_INFO(x, v)			(BIT_CLEAR_MGQ_PKT_INFO(x) | BIT_MGQ_PKT_INFO(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_ARFR8				(Offset 0x1410) */


#define BIT_SHIFT_ARFR8_V1				0
#define BIT_MASK_ARFR8_V1				0xffffffffffffffffL
#define BIT_ARFR8_V1(x)				(((x) & BIT_MASK_ARFR8_V1) << BIT_SHIFT_ARFR8_V1)
#define BITS_ARFR8_V1					(BIT_MASK_ARFR8_V1 << BIT_SHIFT_ARFR8_V1)
#define BIT_CLEAR_ARFR8_V1(x)				((x) & (~BITS_ARFR8_V1))
#define BIT_GET_ARFR8_V1(x)				(((x) >> BIT_SHIFT_ARFR8_V1) & BIT_MASK_ARFR8_V1)
#define BIT_SET_ARFR8_V1(x, v)				(BIT_CLEAR_ARFR8_V1(x) | BIT_ARFR8_V1(v))


#define BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER		0
#define BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER		0xff
#define BIT_MEDIUM_HAS_IDLE_TRIGGER(x)			(((x) & BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER) << BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER)
#define BITS_MEDIUM_HAS_IDLE_TRIGGER			(BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER << BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER)
#define BIT_CLEAR_MEDIUM_HAS_IDLE_TRIGGER(x)		((x) & (~BITS_MEDIUM_HAS_IDLE_TRIGGER))
#define BIT_GET_MEDIUM_HAS_IDLE_TRIGGER(x)		(((x) >> BIT_SHIFT_MEDIUM_HAS_IDLE_TRIGGER) & BIT_MASK_MEDIUM_HAS_IDLE_TRIGGER)
#define BIT_SET_MEDIUM_HAS_IDLE_TRIGGER(x, v)		(BIT_CLEAR_MEDIUM_HAS_IDLE_TRIGGER(x) | BIT_MEDIUM_HAS_IDLE_TRIGGER(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */


#define BIT_SHIFT_BCNQ_PKT_INFO_V1			16
#define BIT_MASK_BCNQ_PKT_INFO_V1			0xfff
#define BIT_BCNQ_PKT_INFO_V1(x)			(((x) & BIT_MASK_BCNQ_PKT_INFO_V1) << BIT_SHIFT_BCNQ_PKT_INFO_V1)
#define BITS_BCNQ_PKT_INFO_V1				(BIT_MASK_BCNQ_PKT_INFO_V1 << BIT_SHIFT_BCNQ_PKT_INFO_V1)
#define BIT_CLEAR_BCNQ_PKT_INFO_V1(x)			((x) & (~BITS_BCNQ_PKT_INFO_V1))
#define BIT_GET_BCNQ_PKT_INFO_V1(x)			(((x) >> BIT_SHIFT_BCNQ_PKT_INFO_V1) & BIT_MASK_BCNQ_PKT_INFO_V1)
#define BIT_SET_BCNQ_PKT_INFO_V1(x, v)			(BIT_CLEAR_BCNQ_PKT_INFO_V1(x) | BIT_BCNQ_PKT_INFO_V1(v))


#define BIT_SHIFT_BCNERR_PORT_SEL			16
#define BIT_MASK_BCNERR_PORT_SEL			0x7
#define BIT_BCNERR_PORT_SEL(x)				(((x) & BIT_MASK_BCNERR_PORT_SEL) << BIT_SHIFT_BCNERR_PORT_SEL)
#define BITS_BCNERR_PORT_SEL				(BIT_MASK_BCNERR_PORT_SEL << BIT_SHIFT_BCNERR_PORT_SEL)
#define BIT_CLEAR_BCNERR_PORT_SEL(x)			((x) & (~BITS_BCNERR_PORT_SEL))
#define BIT_GET_BCNERR_PORT_SEL(x)			(((x) >> BIT_SHIFT_BCNERR_PORT_SEL) & BIT_MASK_BCNERR_PORT_SEL)
#define BIT_SET_BCNERR_PORT_SEL(x, v)			(BIT_CLEAR_BCNERR_PORT_SEL(x) | BIT_BCNERR_PORT_SEL(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */


#define BIT_SHIFT_CMDQ_PKT_INFO			16
#define BIT_MASK_CMDQ_PKT_INFO				0xfff
#define BIT_CMDQ_PKT_INFO(x)				(((x) & BIT_MASK_CMDQ_PKT_INFO) << BIT_SHIFT_CMDQ_PKT_INFO)
#define BITS_CMDQ_PKT_INFO				(BIT_MASK_CMDQ_PKT_INFO << BIT_SHIFT_CMDQ_PKT_INFO)
#define BIT_CLEAR_CMDQ_PKT_INFO(x)			((x) & (~BITS_CMDQ_PKT_INFO))
#define BIT_GET_CMDQ_PKT_INFO(x)			(((x) >> BIT_SHIFT_CMDQ_PKT_INFO) & BIT_MASK_CMDQ_PKT_INFO)
#define BIT_SET_CMDQ_PKT_INFO(x, v)			(BIT_CLEAR_CMDQ_PKT_INFO(x) | BIT_CMDQ_PKT_INFO(v))


#endif


#if (HALMAC_8197F_SUPPORT)


/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */


#define BIT_SHIFT_CMDQ_PKT_INFO_V1			0
#define BIT_MASK_CMDQ_PKT_INFO_V1			0xfff
#define BIT_CMDQ_PKT_INFO_V1(x)			(((x) & BIT_MASK_CMDQ_PKT_INFO_V1) << BIT_SHIFT_CMDQ_PKT_INFO_V1)
#define BITS_CMDQ_PKT_INFO_V1				(BIT_MASK_CMDQ_PKT_INFO_V1 << BIT_SHIFT_CMDQ_PKT_INFO_V1)
#define BIT_CLEAR_CMDQ_PKT_INFO_V1(x)			((x) & (~BITS_CMDQ_PKT_INFO_V1))
#define BIT_GET_CMDQ_PKT_INFO_V1(x)			(((x) >> BIT_SHIFT_CMDQ_PKT_INFO_V1) & BIT_MASK_CMDQ_PKT_INFO_V1)
#define BIT_SET_CMDQ_PKT_INFO_V1(x, v)			(BIT_CLEAR_CMDQ_PKT_INFO_V1(x) | BIT_CMDQ_PKT_INFO_V1(v))


#endif


#if (HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CMDQ_BCNQ_INFO			(Offset 0x1414) */


#define BIT_SHIFT_BCNQ_PKT_INFO			0
#define BIT_MASK_BCNQ_PKT_INFO				0xfff
#define BIT_BCNQ_PKT_INFO(x)				(((x) & BIT_MASK_BCNQ_PKT_INFO) << BIT_SHIFT_BCNQ_PKT_INFO)
#define BITS_BCNQ_PKT_INFO				(BIT_MASK_BCNQ_PKT_INFO << BIT_SHIFT_BCNQ_PKT_INFO)
#define BIT_CLEAR_BCNQ_PKT_INFO(x)			((x) & (~BITS_BCNQ_PKT_INFO))
#define BIT_GET_BCNQ_PKT_INFO(x)			(((x) >> BIT_SHIFT_BCNQ_PKT_INFO) & BIT_MASK_BCNQ_PKT_INFO)
#define BIT_SET_BCNQ_PKT_INFO(x, v)			(BIT_CLEAR_BCNQ_PKT_INFO(x) | BIT_BCNQ_PKT_INFO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_USEREG_SETTING			(Offset 0x1420) */

#define BIT_NDPA_USEREG				BIT(21)

#define BIT_SHIFT_RETRY_USEREG				19
#define BIT_MASK_RETRY_USEREG				0x3
#define BIT_RETRY_USEREG(x)				(((x) & BIT_MASK_RETRY_USEREG) << BIT_SHIFT_RETRY_USEREG)
#define BITS_RETRY_USEREG				(BIT_MASK_RETRY_USEREG << BIT_SHIFT_RETRY_USEREG)
#define BIT_CLEAR_RETRY_USEREG(x)			((x) & (~BITS_RETRY_USEREG))
#define BIT_GET_RETRY_USEREG(x)			(((x) >> BIT_SHIFT_RETRY_USEREG) & BIT_MASK_RETRY_USEREG)
#define BIT_SET_RETRY_USEREG(x, v)			(BIT_CLEAR_RETRY_USEREG(x) | BIT_RETRY_USEREG(v))


#define BIT_SHIFT_TRYPKT_USEREG			17
#define BIT_MASK_TRYPKT_USEREG				0x3
#define BIT_TRYPKT_USEREG(x)				(((x) & BIT_MASK_TRYPKT_USEREG) << BIT_SHIFT_TRYPKT_USEREG)
#define BITS_TRYPKT_USEREG				(BIT_MASK_TRYPKT_USEREG << BIT_SHIFT_TRYPKT_USEREG)
#define BIT_CLEAR_TRYPKT_USEREG(x)			((x) & (~BITS_TRYPKT_USEREG))
#define BIT_GET_TRYPKT_USEREG(x)			(((x) >> BIT_SHIFT_TRYPKT_USEREG) & BIT_MASK_TRYPKT_USEREG)
#define BIT_SET_TRYPKT_USEREG(x, v)			(BIT_CLEAR_TRYPKT_USEREG(x) | BIT_TRYPKT_USEREG(v))

#define BIT_CTLPKT_USEREG				BIT(16)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_AESIV_SETTING			(Offset 0x1424) */


#define BIT_SHIFT_AESIV_OFFSET				0
#define BIT_MASK_AESIV_OFFSET				0xfff
#define BIT_AESIV_OFFSET(x)				(((x) & BIT_MASK_AESIV_OFFSET) << BIT_SHIFT_AESIV_OFFSET)
#define BITS_AESIV_OFFSET				(BIT_MASK_AESIV_OFFSET << BIT_SHIFT_AESIV_OFFSET)
#define BIT_CLEAR_AESIV_OFFSET(x)			((x) & (~BITS_AESIV_OFFSET))
#define BIT_GET_AESIV_OFFSET(x)			(((x) >> BIT_SHIFT_AESIV_OFFSET) & BIT_MASK_AESIV_OFFSET)
#define BIT_SET_AESIV_OFFSET(x, v)			(BIT_CLEAR_AESIV_OFFSET(x) | BIT_AESIV_OFFSET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BF0_TIME_SETTING			(Offset 0x1428) */

#define BIT_BF0_TIMER_SET				BIT(31)
#define BIT_BF0_TIMER_CLR				BIT(30)
#define BIT_BF0_UPDATE_EN				BIT(29)
#define BIT_BF0_TIMER_EN				BIT(28)

#define BIT_SHIFT_BF0_PRETIME_OVER			16
#define BIT_MASK_BF0_PRETIME_OVER			0xfff
#define BIT_BF0_PRETIME_OVER(x)			(((x) & BIT_MASK_BF0_PRETIME_OVER) << BIT_SHIFT_BF0_PRETIME_OVER)
#define BITS_BF0_PRETIME_OVER				(BIT_MASK_BF0_PRETIME_OVER << BIT_SHIFT_BF0_PRETIME_OVER)
#define BIT_CLEAR_BF0_PRETIME_OVER(x)			((x) & (~BITS_BF0_PRETIME_OVER))
#define BIT_GET_BF0_PRETIME_OVER(x)			(((x) >> BIT_SHIFT_BF0_PRETIME_OVER) & BIT_MASK_BF0_PRETIME_OVER)
#define BIT_SET_BF0_PRETIME_OVER(x, v)			(BIT_CLEAR_BF0_PRETIME_OVER(x) | BIT_BF0_PRETIME_OVER(v))


#define BIT_SHIFT_BF0_LIFETIME				0
#define BIT_MASK_BF0_LIFETIME				0xffff
#define BIT_BF0_LIFETIME(x)				(((x) & BIT_MASK_BF0_LIFETIME) << BIT_SHIFT_BF0_LIFETIME)
#define BITS_BF0_LIFETIME				(BIT_MASK_BF0_LIFETIME << BIT_SHIFT_BF0_LIFETIME)
#define BIT_CLEAR_BF0_LIFETIME(x)			((x) & (~BITS_BF0_LIFETIME))
#define BIT_GET_BF0_LIFETIME(x)			(((x) >> BIT_SHIFT_BF0_LIFETIME) & BIT_MASK_BF0_LIFETIME)
#define BIT_SET_BF0_LIFETIME(x, v)			(BIT_CLEAR_BF0_LIFETIME(x) | BIT_BF0_LIFETIME(v))


/* 2 REG_BF1_TIME_SETTING			(Offset 0x142C) */

#define BIT_BF1_TIMER_SET				BIT(31)
#define BIT_BF1_TIMER_CLR				BIT(30)
#define BIT_BF1_UPDATE_EN				BIT(29)
#define BIT_BF1_TIMER_EN				BIT(28)

#define BIT_SHIFT_BF1_PRETIME_OVER			16
#define BIT_MASK_BF1_PRETIME_OVER			0xfff
#define BIT_BF1_PRETIME_OVER(x)			(((x) & BIT_MASK_BF1_PRETIME_OVER) << BIT_SHIFT_BF1_PRETIME_OVER)
#define BITS_BF1_PRETIME_OVER				(BIT_MASK_BF1_PRETIME_OVER << BIT_SHIFT_BF1_PRETIME_OVER)
#define BIT_CLEAR_BF1_PRETIME_OVER(x)			((x) & (~BITS_BF1_PRETIME_OVER))
#define BIT_GET_BF1_PRETIME_OVER(x)			(((x) >> BIT_SHIFT_BF1_PRETIME_OVER) & BIT_MASK_BF1_PRETIME_OVER)
#define BIT_SET_BF1_PRETIME_OVER(x, v)			(BIT_CLEAR_BF1_PRETIME_OVER(x) | BIT_BF1_PRETIME_OVER(v))


#define BIT_SHIFT_BF1_LIFETIME				0
#define BIT_MASK_BF1_LIFETIME				0xffff
#define BIT_BF1_LIFETIME(x)				(((x) & BIT_MASK_BF1_LIFETIME) << BIT_SHIFT_BF1_LIFETIME)
#define BITS_BF1_LIFETIME				(BIT_MASK_BF1_LIFETIME << BIT_SHIFT_BF1_LIFETIME)
#define BIT_CLEAR_BF1_LIFETIME(x)			((x) & (~BITS_BF1_LIFETIME))
#define BIT_GET_BF1_LIFETIME(x)			(((x) >> BIT_SHIFT_BF1_LIFETIME) & BIT_MASK_BF1_LIFETIME)
#define BIT_SET_BF1_LIFETIME(x, v)			(BIT_CLEAR_BF1_LIFETIME(x) | BIT_BF1_LIFETIME(v))


/* 2 REG_BF_TIMEOUT_EN			(Offset 0x1430) */

#define BIT_EN_VHT_LDPC				BIT(9)
#define BIT_EN_HT_LDPC					BIT(8)
#define BIT_BF1_TIMEOUT_EN				BIT(1)
#define BIT_BF0_TIMEOUT_EN				BIT(0)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_RELEASE0			(Offset 0x1434) */


#define BIT_SHIFT_MACID31_0_RELEASE			0
#define BIT_MASK_MACID31_0_RELEASE			0xffffffffL
#define BIT_MACID31_0_RELEASE(x)			(((x) & BIT_MASK_MACID31_0_RELEASE) << BIT_SHIFT_MACID31_0_RELEASE)
#define BITS_MACID31_0_RELEASE				(BIT_MASK_MACID31_0_RELEASE << BIT_SHIFT_MACID31_0_RELEASE)
#define BIT_CLEAR_MACID31_0_RELEASE(x)			((x) & (~BITS_MACID31_0_RELEASE))
#define BIT_GET_MACID31_0_RELEASE(x)			(((x) >> BIT_SHIFT_MACID31_0_RELEASE) & BIT_MASK_MACID31_0_RELEASE)
#define BIT_SET_MACID31_0_RELEASE(x, v)		(BIT_CLEAR_MACID31_0_RELEASE(x) | BIT_MACID31_0_RELEASE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_RELEASE_INFO			(Offset 0x1434) */


#define BIT_SHIFT_MACID_RELEASE_INFO			0
#define BIT_MASK_MACID_RELEASE_INFO			0xffffffffL
#define BIT_MACID_RELEASE_INFO(x)			(((x) & BIT_MASK_MACID_RELEASE_INFO) << BIT_SHIFT_MACID_RELEASE_INFO)
#define BITS_MACID_RELEASE_INFO			(BIT_MASK_MACID_RELEASE_INFO << BIT_SHIFT_MACID_RELEASE_INFO)
#define BIT_CLEAR_MACID_RELEASE_INFO(x)		((x) & (~BITS_MACID_RELEASE_INFO))
#define BIT_GET_MACID_RELEASE_INFO(x)			(((x) >> BIT_SHIFT_MACID_RELEASE_INFO) & BIT_MASK_MACID_RELEASE_INFO)
#define BIT_SET_MACID_RELEASE_INFO(x, v)		(BIT_CLEAR_MACID_RELEASE_INFO(x) | BIT_MACID_RELEASE_INFO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_RELEASE1			(Offset 0x1438) */


#define BIT_SHIFT_MACID63_32_RELEASE			0
#define BIT_MASK_MACID63_32_RELEASE			0xffffffffL
#define BIT_MACID63_32_RELEASE(x)			(((x) & BIT_MASK_MACID63_32_RELEASE) << BIT_SHIFT_MACID63_32_RELEASE)
#define BITS_MACID63_32_RELEASE			(BIT_MASK_MACID63_32_RELEASE << BIT_SHIFT_MACID63_32_RELEASE)
#define BIT_CLEAR_MACID63_32_RELEASE(x)		((x) & (~BITS_MACID63_32_RELEASE))
#define BIT_GET_MACID63_32_RELEASE(x)			(((x) >> BIT_SHIFT_MACID63_32_RELEASE) & BIT_MASK_MACID63_32_RELEASE)
#define BIT_SET_MACID63_32_RELEASE(x, v)		(BIT_CLEAR_MACID63_32_RELEASE(x) | BIT_MACID63_32_RELEASE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_RELEASE_SUCCESS_INFO		(Offset 0x1438) */


#define BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO		0
#define BIT_MASK_MACID_RELEASE_SUCCESS_INFO		0xffffffffL
#define BIT_MACID_RELEASE_SUCCESS_INFO(x)		(((x) & BIT_MASK_MACID_RELEASE_SUCCESS_INFO) << BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO)
#define BITS_MACID_RELEASE_SUCCESS_INFO		(BIT_MASK_MACID_RELEASE_SUCCESS_INFO << BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO)
#define BIT_CLEAR_MACID_RELEASE_SUCCESS_INFO(x)	((x) & (~BITS_MACID_RELEASE_SUCCESS_INFO))
#define BIT_GET_MACID_RELEASE_SUCCESS_INFO(x)		(((x) >> BIT_SHIFT_MACID_RELEASE_SUCCESS_INFO) & BIT_MASK_MACID_RELEASE_SUCCESS_INFO)
#define BIT_SET_MACID_RELEASE_SUCCESS_INFO(x, v)	(BIT_CLEAR_MACID_RELEASE_SUCCESS_INFO(x) | BIT_MACID_RELEASE_SUCCESS_INFO(v))


/* 2 REG_MACID_RELEASE_CTRL			(Offset 0x143C) */


#define BIT_SHIFT_MACID_RELEASE_SEL			24
#define BIT_MASK_MACID_RELEASE_SEL			0x7
#define BIT_MACID_RELEASE_SEL(x)			(((x) & BIT_MASK_MACID_RELEASE_SEL) << BIT_SHIFT_MACID_RELEASE_SEL)
#define BITS_MACID_RELEASE_SEL				(BIT_MASK_MACID_RELEASE_SEL << BIT_SHIFT_MACID_RELEASE_SEL)
#define BIT_CLEAR_MACID_RELEASE_SEL(x)			((x) & (~BITS_MACID_RELEASE_SEL))
#define BIT_GET_MACID_RELEASE_SEL(x)			(((x) >> BIT_SHIFT_MACID_RELEASE_SEL) & BIT_MASK_MACID_RELEASE_SEL)
#define BIT_SET_MACID_RELEASE_SEL(x, v)		(BIT_CLEAR_MACID_RELEASE_SEL(x) | BIT_MACID_RELEASE_SEL(v))


#define BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET		16
#define BIT_MASK_MACID_RELEASE_CLEAR_OFFSET		0xff
#define BIT_MACID_RELEASE_CLEAR_OFFSET(x)		(((x) & BIT_MASK_MACID_RELEASE_CLEAR_OFFSET) << BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET)
#define BITS_MACID_RELEASE_CLEAR_OFFSET		(BIT_MASK_MACID_RELEASE_CLEAR_OFFSET << BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET)
#define BIT_CLEAR_MACID_RELEASE_CLEAR_OFFSET(x)	((x) & (~BITS_MACID_RELEASE_CLEAR_OFFSET))
#define BIT_GET_MACID_RELEASE_CLEAR_OFFSET(x)		(((x) >> BIT_SHIFT_MACID_RELEASE_CLEAR_OFFSET) & BIT_MASK_MACID_RELEASE_CLEAR_OFFSET)
#define BIT_SET_MACID_RELEASE_CLEAR_OFFSET(x, v)	(BIT_CLEAR_MACID_RELEASE_CLEAR_OFFSET(x) | BIT_MACID_RELEASE_CLEAR_OFFSET(v))

#define BIT_MACID_RELEASE_VALUE			BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_RELEASE2			(Offset 0x143C) */


#define BIT_SHIFT_MACID95_64_RELEASE			0
#define BIT_MASK_MACID95_64_RELEASE			0xffffffffL
#define BIT_MACID95_64_RELEASE(x)			(((x) & BIT_MASK_MACID95_64_RELEASE) << BIT_SHIFT_MACID95_64_RELEASE)
#define BITS_MACID95_64_RELEASE			(BIT_MASK_MACID95_64_RELEASE << BIT_SHIFT_MACID95_64_RELEASE)
#define BIT_CLEAR_MACID95_64_RELEASE(x)		((x) & (~BITS_MACID95_64_RELEASE))
#define BIT_GET_MACID95_64_RELEASE(x)			(((x) >> BIT_SHIFT_MACID95_64_RELEASE) & BIT_MASK_MACID95_64_RELEASE)
#define BIT_SET_MACID95_64_RELEASE(x, v)		(BIT_CLEAR_MACID95_64_RELEASE(x) | BIT_MACID95_64_RELEASE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_RELEASE_CTRL			(Offset 0x143C) */


#define BIT_SHIFT_MACID_RELEASE_OFFSET			0
#define BIT_MASK_MACID_RELEASE_OFFSET			0xff
#define BIT_MACID_RELEASE_OFFSET(x)			(((x) & BIT_MASK_MACID_RELEASE_OFFSET) << BIT_SHIFT_MACID_RELEASE_OFFSET)
#define BITS_MACID_RELEASE_OFFSET			(BIT_MASK_MACID_RELEASE_OFFSET << BIT_SHIFT_MACID_RELEASE_OFFSET)
#define BIT_CLEAR_MACID_RELEASE_OFFSET(x)		((x) & (~BITS_MACID_RELEASE_OFFSET))
#define BIT_GET_MACID_RELEASE_OFFSET(x)		(((x) >> BIT_SHIFT_MACID_RELEASE_OFFSET) & BIT_MASK_MACID_RELEASE_OFFSET)
#define BIT_SET_MACID_RELEASE_OFFSET(x, v)		(BIT_CLEAR_MACID_RELEASE_OFFSET(x) | BIT_MACID_RELEASE_OFFSET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_RELEASE3			(Offset 0x1440) */


#define BIT_SHIFT_MACID127_96_RELEASE			0
#define BIT_MASK_MACID127_96_RELEASE			0xffffffffL
#define BIT_MACID127_96_RELEASE(x)			(((x) & BIT_MASK_MACID127_96_RELEASE) << BIT_SHIFT_MACID127_96_RELEASE)
#define BITS_MACID127_96_RELEASE			(BIT_MASK_MACID127_96_RELEASE << BIT_SHIFT_MACID127_96_RELEASE)
#define BIT_CLEAR_MACID127_96_RELEASE(x)		((x) & (~BITS_MACID127_96_RELEASE))
#define BIT_GET_MACID127_96_RELEASE(x)			(((x) >> BIT_SHIFT_MACID127_96_RELEASE) & BIT_MASK_MACID127_96_RELEASE)
#define BIT_SET_MACID127_96_RELEASE(x, v)		(BIT_CLEAR_MACID127_96_RELEASE(x) | BIT_MACID127_96_RELEASE(v))


/* 2 REG_MACID_RELEASE_SETTING		(Offset 0x1444) */

#define BIT_MACID_VALUE				BIT(7)

#define BIT_SHIFT_MACID_OFFSET				0
#define BIT_MASK_MACID_OFFSET				0x7f
#define BIT_MACID_OFFSET(x)				(((x) & BIT_MASK_MACID_OFFSET) << BIT_SHIFT_MACID_OFFSET)
#define BITS_MACID_OFFSET				(BIT_MASK_MACID_OFFSET << BIT_SHIFT_MACID_OFFSET)
#define BIT_CLEAR_MACID_OFFSET(x)			((x) & (~BITS_MACID_OFFSET))
#define BIT_GET_MACID_OFFSET(x)			(((x) >> BIT_SHIFT_MACID_OFFSET) & BIT_MASK_MACID_OFFSET)
#define BIT_SET_MACID_OFFSET(x, v)			(BIT_CLEAR_MACID_OFFSET(x) | BIT_MACID_OFFSET(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_FAST_EDCA_VOVI_SETTING		(Offset 0x1448) */


#define BIT_SHIFT_VI_FAST_EDCA_TO			24
#define BIT_MASK_VI_FAST_EDCA_TO			0xff
#define BIT_VI_FAST_EDCA_TO(x)				(((x) & BIT_MASK_VI_FAST_EDCA_TO) << BIT_SHIFT_VI_FAST_EDCA_TO)
#define BITS_VI_FAST_EDCA_TO				(BIT_MASK_VI_FAST_EDCA_TO << BIT_SHIFT_VI_FAST_EDCA_TO)
#define BIT_CLEAR_VI_FAST_EDCA_TO(x)			((x) & (~BITS_VI_FAST_EDCA_TO))
#define BIT_GET_VI_FAST_EDCA_TO(x)			(((x) >> BIT_SHIFT_VI_FAST_EDCA_TO) & BIT_MASK_VI_FAST_EDCA_TO)
#define BIT_SET_VI_FAST_EDCA_TO(x, v)			(BIT_CLEAR_VI_FAST_EDCA_TO(x) | BIT_VI_FAST_EDCA_TO(v))

#define BIT_VI_THRESHOLD_SEL				BIT(23)

#define BIT_SHIFT_VI_FAST_EDCA_PKT_TH			16
#define BIT_MASK_VI_FAST_EDCA_PKT_TH			0x7f
#define BIT_VI_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_VI_FAST_EDCA_PKT_TH) << BIT_SHIFT_VI_FAST_EDCA_PKT_TH)
#define BITS_VI_FAST_EDCA_PKT_TH			(BIT_MASK_VI_FAST_EDCA_PKT_TH << BIT_SHIFT_VI_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_VI_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_VI_FAST_EDCA_PKT_TH))
#define BIT_GET_VI_FAST_EDCA_PKT_TH(x)			(((x) >> BIT_SHIFT_VI_FAST_EDCA_PKT_TH) & BIT_MASK_VI_FAST_EDCA_PKT_TH)
#define BIT_SET_VI_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_VI_FAST_EDCA_PKT_TH(x) | BIT_VI_FAST_EDCA_PKT_TH(v))


#define BIT_SHIFT_VO_FAST_EDCA_TO			8
#define BIT_MASK_VO_FAST_EDCA_TO			0xff
#define BIT_VO_FAST_EDCA_TO(x)				(((x) & BIT_MASK_VO_FAST_EDCA_TO) << BIT_SHIFT_VO_FAST_EDCA_TO)
#define BITS_VO_FAST_EDCA_TO				(BIT_MASK_VO_FAST_EDCA_TO << BIT_SHIFT_VO_FAST_EDCA_TO)
#define BIT_CLEAR_VO_FAST_EDCA_TO(x)			((x) & (~BITS_VO_FAST_EDCA_TO))
#define BIT_GET_VO_FAST_EDCA_TO(x)			(((x) >> BIT_SHIFT_VO_FAST_EDCA_TO) & BIT_MASK_VO_FAST_EDCA_TO)
#define BIT_SET_VO_FAST_EDCA_TO(x, v)			(BIT_CLEAR_VO_FAST_EDCA_TO(x) | BIT_VO_FAST_EDCA_TO(v))

#define BIT_VO_THRESHOLD_SEL				BIT(7)

#define BIT_SHIFT_VO_FAST_EDCA_PKT_TH			0
#define BIT_MASK_VO_FAST_EDCA_PKT_TH			0x7f
#define BIT_VO_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_VO_FAST_EDCA_PKT_TH) << BIT_SHIFT_VO_FAST_EDCA_PKT_TH)
#define BITS_VO_FAST_EDCA_PKT_TH			(BIT_MASK_VO_FAST_EDCA_PKT_TH << BIT_SHIFT_VO_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_VO_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_VO_FAST_EDCA_PKT_TH))
#define BIT_GET_VO_FAST_EDCA_PKT_TH(x)			(((x) >> BIT_SHIFT_VO_FAST_EDCA_PKT_TH) & BIT_MASK_VO_FAST_EDCA_PKT_TH)
#define BIT_SET_VO_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_VO_FAST_EDCA_PKT_TH(x) | BIT_VO_FAST_EDCA_PKT_TH(v))


/* 2 REG_FAST_EDCA_BEBK_SETTING		(Offset 0x144C) */


#define BIT_SHIFT_BK_FAST_EDCA_TO			24
#define BIT_MASK_BK_FAST_EDCA_TO			0xff
#define BIT_BK_FAST_EDCA_TO(x)				(((x) & BIT_MASK_BK_FAST_EDCA_TO) << BIT_SHIFT_BK_FAST_EDCA_TO)
#define BITS_BK_FAST_EDCA_TO				(BIT_MASK_BK_FAST_EDCA_TO << BIT_SHIFT_BK_FAST_EDCA_TO)
#define BIT_CLEAR_BK_FAST_EDCA_TO(x)			((x) & (~BITS_BK_FAST_EDCA_TO))
#define BIT_GET_BK_FAST_EDCA_TO(x)			(((x) >> BIT_SHIFT_BK_FAST_EDCA_TO) & BIT_MASK_BK_FAST_EDCA_TO)
#define BIT_SET_BK_FAST_EDCA_TO(x, v)			(BIT_CLEAR_BK_FAST_EDCA_TO(x) | BIT_BK_FAST_EDCA_TO(v))

#define BIT_BK_THRESHOLD_SEL				BIT(23)

#define BIT_SHIFT_BK_FAST_EDCA_PKT_TH			16
#define BIT_MASK_BK_FAST_EDCA_PKT_TH			0x7f
#define BIT_BK_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_BK_FAST_EDCA_PKT_TH) << BIT_SHIFT_BK_FAST_EDCA_PKT_TH)
#define BITS_BK_FAST_EDCA_PKT_TH			(BIT_MASK_BK_FAST_EDCA_PKT_TH << BIT_SHIFT_BK_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_BK_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_BK_FAST_EDCA_PKT_TH))
#define BIT_GET_BK_FAST_EDCA_PKT_TH(x)			(((x) >> BIT_SHIFT_BK_FAST_EDCA_PKT_TH) & BIT_MASK_BK_FAST_EDCA_PKT_TH)
#define BIT_SET_BK_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_BK_FAST_EDCA_PKT_TH(x) | BIT_BK_FAST_EDCA_PKT_TH(v))


#define BIT_SHIFT_BE_FAST_EDCA_TO			8
#define BIT_MASK_BE_FAST_EDCA_TO			0xff
#define BIT_BE_FAST_EDCA_TO(x)				(((x) & BIT_MASK_BE_FAST_EDCA_TO) << BIT_SHIFT_BE_FAST_EDCA_TO)
#define BITS_BE_FAST_EDCA_TO				(BIT_MASK_BE_FAST_EDCA_TO << BIT_SHIFT_BE_FAST_EDCA_TO)
#define BIT_CLEAR_BE_FAST_EDCA_TO(x)			((x) & (~BITS_BE_FAST_EDCA_TO))
#define BIT_GET_BE_FAST_EDCA_TO(x)			(((x) >> BIT_SHIFT_BE_FAST_EDCA_TO) & BIT_MASK_BE_FAST_EDCA_TO)
#define BIT_SET_BE_FAST_EDCA_TO(x, v)			(BIT_CLEAR_BE_FAST_EDCA_TO(x) | BIT_BE_FAST_EDCA_TO(v))

#define BIT_BE_THRESHOLD_SEL				BIT(7)

#define BIT_SHIFT_BE_FAST_EDCA_PKT_TH			0
#define BIT_MASK_BE_FAST_EDCA_PKT_TH			0x7f
#define BIT_BE_FAST_EDCA_PKT_TH(x)			(((x) & BIT_MASK_BE_FAST_EDCA_PKT_TH) << BIT_SHIFT_BE_FAST_EDCA_PKT_TH)
#define BITS_BE_FAST_EDCA_PKT_TH			(BIT_MASK_BE_FAST_EDCA_PKT_TH << BIT_SHIFT_BE_FAST_EDCA_PKT_TH)
#define BIT_CLEAR_BE_FAST_EDCA_PKT_TH(x)		((x) & (~BITS_BE_FAST_EDCA_PKT_TH))
#define BIT_GET_BE_FAST_EDCA_PKT_TH(x)			(((x) >> BIT_SHIFT_BE_FAST_EDCA_PKT_TH) & BIT_MASK_BE_FAST_EDCA_PKT_TH)
#define BIT_SET_BE_FAST_EDCA_PKT_TH(x, v)		(BIT_CLEAR_BE_FAST_EDCA_PKT_TH(x) | BIT_BE_FAST_EDCA_PKT_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_DROP0				(Offset 0x1450) */


#define BIT_SHIFT_MACID31_0_DROP			0
#define BIT_MASK_MACID31_0_DROP			0xffffffffL
#define BIT_MACID31_0_DROP(x)				(((x) & BIT_MASK_MACID31_0_DROP) << BIT_SHIFT_MACID31_0_DROP)
#define BITS_MACID31_0_DROP				(BIT_MASK_MACID31_0_DROP << BIT_SHIFT_MACID31_0_DROP)
#define BIT_CLEAR_MACID31_0_DROP(x)			((x) & (~BITS_MACID31_0_DROP))
#define BIT_GET_MACID31_0_DROP(x)			(((x) >> BIT_SHIFT_MACID31_0_DROP) & BIT_MASK_MACID31_0_DROP)
#define BIT_SET_MACID31_0_DROP(x, v)			(BIT_CLEAR_MACID31_0_DROP(x) | BIT_MACID31_0_DROP(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_DROP_INFO			(Offset 0x1450) */


#define BIT_SHIFT_MACID_DROP_INFO			0
#define BIT_MASK_MACID_DROP_INFO			0xffffffffL
#define BIT_MACID_DROP_INFO(x)				(((x) & BIT_MASK_MACID_DROP_INFO) << BIT_SHIFT_MACID_DROP_INFO)
#define BITS_MACID_DROP_INFO				(BIT_MASK_MACID_DROP_INFO << BIT_SHIFT_MACID_DROP_INFO)
#define BIT_CLEAR_MACID_DROP_INFO(x)			((x) & (~BITS_MACID_DROP_INFO))
#define BIT_GET_MACID_DROP_INFO(x)			(((x) >> BIT_SHIFT_MACID_DROP_INFO) & BIT_MASK_MACID_DROP_INFO)
#define BIT_SET_MACID_DROP_INFO(x, v)			(BIT_CLEAR_MACID_DROP_INFO(x) | BIT_MACID_DROP_INFO(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_DROP1				(Offset 0x1454) */


#define BIT_SHIFT_MACID63_32_DROP			0
#define BIT_MASK_MACID63_32_DROP			0xffffffffL
#define BIT_MACID63_32_DROP(x)				(((x) & BIT_MASK_MACID63_32_DROP) << BIT_SHIFT_MACID63_32_DROP)
#define BITS_MACID63_32_DROP				(BIT_MASK_MACID63_32_DROP << BIT_SHIFT_MACID63_32_DROP)
#define BIT_CLEAR_MACID63_32_DROP(x)			((x) & (~BITS_MACID63_32_DROP))
#define BIT_GET_MACID63_32_DROP(x)			(((x) >> BIT_SHIFT_MACID63_32_DROP) & BIT_MASK_MACID63_32_DROP)
#define BIT_SET_MACID63_32_DROP(x, v)			(BIT_CLEAR_MACID63_32_DROP(x) | BIT_MACID63_32_DROP(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MACID_DROP_CTRL			(Offset 0x1454) */


#define BIT_SHIFT_MACID_DROP_SEL			0
#define BIT_MASK_MACID_DROP_SEL			0x7
#define BIT_MACID_DROP_SEL(x)				(((x) & BIT_MASK_MACID_DROP_SEL) << BIT_SHIFT_MACID_DROP_SEL)
#define BITS_MACID_DROP_SEL				(BIT_MASK_MACID_DROP_SEL << BIT_SHIFT_MACID_DROP_SEL)
#define BIT_CLEAR_MACID_DROP_SEL(x)			((x) & (~BITS_MACID_DROP_SEL))
#define BIT_GET_MACID_DROP_SEL(x)			(((x) >> BIT_SHIFT_MACID_DROP_SEL) & BIT_MASK_MACID_DROP_SEL)
#define BIT_SET_MACID_DROP_SEL(x, v)			(BIT_CLEAR_MACID_DROP_SEL(x) | BIT_MACID_DROP_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID_DROP2				(Offset 0x1458) */


#define BIT_SHIFT_MACID95_64_DROP			0
#define BIT_MASK_MACID95_64_DROP			0xffffffffL
#define BIT_MACID95_64_DROP(x)				(((x) & BIT_MASK_MACID95_64_DROP) << BIT_SHIFT_MACID95_64_DROP)
#define BITS_MACID95_64_DROP				(BIT_MASK_MACID95_64_DROP << BIT_SHIFT_MACID95_64_DROP)
#define BIT_CLEAR_MACID95_64_DROP(x)			((x) & (~BITS_MACID95_64_DROP))
#define BIT_GET_MACID95_64_DROP(x)			(((x) >> BIT_SHIFT_MACID95_64_DROP) & BIT_MASK_MACID95_64_DROP)
#define BIT_SET_MACID95_64_DROP(x, v)			(BIT_CLEAR_MACID95_64_DROP(x) | BIT_MACID95_64_DROP(v))


/* 2 REG_MACID_DROP3				(Offset 0x145C) */


#define BIT_SHIFT_MACID127_96_DROP			0
#define BIT_MASK_MACID127_96_DROP			0xffffffffL
#define BIT_MACID127_96_DROP(x)			(((x) & BIT_MASK_MACID127_96_DROP) << BIT_SHIFT_MACID127_96_DROP)
#define BITS_MACID127_96_DROP				(BIT_MASK_MACID127_96_DROP << BIT_SHIFT_MACID127_96_DROP)
#define BIT_CLEAR_MACID127_96_DROP(x)			((x) & (~BITS_MACID127_96_DROP))
#define BIT_GET_MACID127_96_DROP(x)			(((x) >> BIT_SHIFT_MACID127_96_DROP) & BIT_MASK_MACID127_96_DROP)
#define BIT_SET_MACID127_96_DROP(x, v)			(BIT_CLEAR_MACID127_96_DROP(x) | BIT_MACID127_96_DROP(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_R_MACID_RELEASE_SUCCESS_0		(Offset 0x1460) */


#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0		0
#define BIT_MASK_R_MACID_RELEASE_SUCCESS_0		0xffffffffL
#define BIT_R_MACID_RELEASE_SUCCESS_0(x)		(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0) << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0)
#define BITS_R_MACID_RELEASE_SUCCESS_0			(BIT_MASK_R_MACID_RELEASE_SUCCESS_0 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0)
#define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0(x)	((x) & (~BITS_R_MACID_RELEASE_SUCCESS_0))
#define BIT_GET_R_MACID_RELEASE_SUCCESS_0(x)		(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_0) & BIT_MASK_R_MACID_RELEASE_SUCCESS_0)
#define BIT_SET_R_MACID_RELEASE_SUCCESS_0(x, v)	(BIT_CLEAR_R_MACID_RELEASE_SUCCESS_0(x) | BIT_R_MACID_RELEASE_SUCCESS_0(v))


/* 2 REG_R_MACID_RELEASE_SUCCESS_1		(Offset 0x1464) */


#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1		0
#define BIT_MASK_R_MACID_RELEASE_SUCCESS_1		0xffffffffL
#define BIT_R_MACID_RELEASE_SUCCESS_1(x)		(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1) << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1)
#define BITS_R_MACID_RELEASE_SUCCESS_1			(BIT_MASK_R_MACID_RELEASE_SUCCESS_1 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1)
#define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1(x)	((x) & (~BITS_R_MACID_RELEASE_SUCCESS_1))
#define BIT_GET_R_MACID_RELEASE_SUCCESS_1(x)		(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_1) & BIT_MASK_R_MACID_RELEASE_SUCCESS_1)
#define BIT_SET_R_MACID_RELEASE_SUCCESS_1(x, v)	(BIT_CLEAR_R_MACID_RELEASE_SUCCESS_1(x) | BIT_R_MACID_RELEASE_SUCCESS_1(v))


/* 2 REG_R_MACID_RELEASE_SUCCESS_2		(Offset 0x1468) */


#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2		0
#define BIT_MASK_R_MACID_RELEASE_SUCCESS_2		0xffffffffL
#define BIT_R_MACID_RELEASE_SUCCESS_2(x)		(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2) << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2)
#define BITS_R_MACID_RELEASE_SUCCESS_2			(BIT_MASK_R_MACID_RELEASE_SUCCESS_2 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2)
#define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2(x)	((x) & (~BITS_R_MACID_RELEASE_SUCCESS_2))
#define BIT_GET_R_MACID_RELEASE_SUCCESS_2(x)		(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_2) & BIT_MASK_R_MACID_RELEASE_SUCCESS_2)
#define BIT_SET_R_MACID_RELEASE_SUCCESS_2(x, v)	(BIT_CLEAR_R_MACID_RELEASE_SUCCESS_2(x) | BIT_R_MACID_RELEASE_SUCCESS_2(v))


/* 2 REG_R_MACID_RELEASE_SUCCESS_3		(Offset 0x146C) */


#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3		0
#define BIT_MASK_R_MACID_RELEASE_SUCCESS_3		0xffffffffL
#define BIT_R_MACID_RELEASE_SUCCESS_3(x)		(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3) << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3)
#define BITS_R_MACID_RELEASE_SUCCESS_3			(BIT_MASK_R_MACID_RELEASE_SUCCESS_3 << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3)
#define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3(x)	((x) & (~BITS_R_MACID_RELEASE_SUCCESS_3))
#define BIT_GET_R_MACID_RELEASE_SUCCESS_3(x)		(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_3) & BIT_MASK_R_MACID_RELEASE_SUCCESS_3)
#define BIT_SET_R_MACID_RELEASE_SUCCESS_3(x, v)	(BIT_CLEAR_R_MACID_RELEASE_SUCCESS_3(x) | BIT_R_MACID_RELEASE_SUCCESS_3(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_CRTL			(Offset 0x1470) */

#define BIT_R_MGG_FIFO_EN				BIT(31)

#define BIT_SHIFT_R_MGG_FIFO_PG_SIZE			28
#define BIT_MASK_R_MGG_FIFO_PG_SIZE			0x7
#define BIT_R_MGG_FIFO_PG_SIZE(x)			(((x) & BIT_MASK_R_MGG_FIFO_PG_SIZE) << BIT_SHIFT_R_MGG_FIFO_PG_SIZE)
#define BITS_R_MGG_FIFO_PG_SIZE			(BIT_MASK_R_MGG_FIFO_PG_SIZE << BIT_SHIFT_R_MGG_FIFO_PG_SIZE)
#define BIT_CLEAR_R_MGG_FIFO_PG_SIZE(x)		((x) & (~BITS_R_MGG_FIFO_PG_SIZE))
#define BIT_GET_R_MGG_FIFO_PG_SIZE(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_PG_SIZE) & BIT_MASK_R_MGG_FIFO_PG_SIZE)
#define BIT_SET_R_MGG_FIFO_PG_SIZE(x, v)		(BIT_CLEAR_R_MGG_FIFO_PG_SIZE(x) | BIT_R_MGG_FIFO_PG_SIZE(v))


#define BIT_SHIFT_R_MGG_FIFO_START_PG			16
#define BIT_MASK_R_MGG_FIFO_START_PG			0xfff
#define BIT_R_MGG_FIFO_START_PG(x)			(((x) & BIT_MASK_R_MGG_FIFO_START_PG) << BIT_SHIFT_R_MGG_FIFO_START_PG)
#define BITS_R_MGG_FIFO_START_PG			(BIT_MASK_R_MGG_FIFO_START_PG << BIT_SHIFT_R_MGG_FIFO_START_PG)
#define BIT_CLEAR_R_MGG_FIFO_START_PG(x)		((x) & (~BITS_R_MGG_FIFO_START_PG))
#define BIT_GET_R_MGG_FIFO_START_PG(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_START_PG) & BIT_MASK_R_MGG_FIFO_START_PG)
#define BIT_SET_R_MGG_FIFO_START_PG(x, v)		(BIT_CLEAR_R_MGG_FIFO_START_PG(x) | BIT_R_MGG_FIFO_START_PG(v))


#define BIT_SHIFT_R_MGG_FIFO_SIZE			14
#define BIT_MASK_R_MGG_FIFO_SIZE			0x3
#define BIT_R_MGG_FIFO_SIZE(x)				(((x) & BIT_MASK_R_MGG_FIFO_SIZE) << BIT_SHIFT_R_MGG_FIFO_SIZE)
#define BITS_R_MGG_FIFO_SIZE				(BIT_MASK_R_MGG_FIFO_SIZE << BIT_SHIFT_R_MGG_FIFO_SIZE)
#define BIT_CLEAR_R_MGG_FIFO_SIZE(x)			((x) & (~BITS_R_MGG_FIFO_SIZE))
#define BIT_GET_R_MGG_FIFO_SIZE(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_SIZE) & BIT_MASK_R_MGG_FIFO_SIZE)
#define BIT_SET_R_MGG_FIFO_SIZE(x, v)			(BIT_CLEAR_R_MGG_FIFO_SIZE(x) | BIT_R_MGG_FIFO_SIZE(v))

#define BIT_R_MGG_FIFO_PAUSE				BIT(13)

#define BIT_SHIFT_R_MGG_FIFO_RPTR			8
#define BIT_MASK_R_MGG_FIFO_RPTR			0x1f
#define BIT_R_MGG_FIFO_RPTR(x)				(((x) & BIT_MASK_R_MGG_FIFO_RPTR) << BIT_SHIFT_R_MGG_FIFO_RPTR)
#define BITS_R_MGG_FIFO_RPTR				(BIT_MASK_R_MGG_FIFO_RPTR << BIT_SHIFT_R_MGG_FIFO_RPTR)
#define BIT_CLEAR_R_MGG_FIFO_RPTR(x)			((x) & (~BITS_R_MGG_FIFO_RPTR))
#define BIT_GET_R_MGG_FIFO_RPTR(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_RPTR) & BIT_MASK_R_MGG_FIFO_RPTR)
#define BIT_SET_R_MGG_FIFO_RPTR(x, v)			(BIT_CLEAR_R_MGG_FIFO_RPTR(x) | BIT_R_MGG_FIFO_RPTR(v))

#define BIT_R_MGG_FIFO_OV				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_WRITE_POINTER		(Offset 0x1470) */

#define BIT_MGQ_FIFO_OV				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_CRTL			(Offset 0x1470) */

#define BIT_R_MGG_FIFO_WPTR_ERROR			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_WRITE_POINTER		(Offset 0x1470) */

#define BIT_MGQ_FIFO_WPTR_ERROR			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_CRTL			(Offset 0x1470) */

#define BIT_R_EN_CPU_LIFETIME				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_WRITE_POINTER		(Offset 0x1470) */

#define BIT_EN_MGQ_FIFO_LIFETIME			BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_CRTL			(Offset 0x1470) */


#define BIT_SHIFT_R_MGG_FIFO_WPTR			0
#define BIT_MASK_R_MGG_FIFO_WPTR			0x1f
#define BIT_R_MGG_FIFO_WPTR(x)				(((x) & BIT_MASK_R_MGG_FIFO_WPTR) << BIT_SHIFT_R_MGG_FIFO_WPTR)
#define BITS_R_MGG_FIFO_WPTR				(BIT_MASK_R_MGG_FIFO_WPTR << BIT_SHIFT_R_MGG_FIFO_WPTR)
#define BIT_CLEAR_R_MGG_FIFO_WPTR(x)			((x) & (~BITS_R_MGG_FIFO_WPTR))
#define BIT_GET_R_MGG_FIFO_WPTR(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_WPTR) & BIT_MASK_R_MGG_FIFO_WPTR)
#define BIT_SET_R_MGG_FIFO_WPTR(x, v)			(BIT_CLEAR_R_MGG_FIFO_WPTR(x) | BIT_R_MGG_FIFO_WPTR(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_WRITE_POINTER		(Offset 0x1470) */


#define BIT_SHIFT_MGQ_FIFO_WPTR			0
#define BIT_MASK_MGQ_FIFO_WPTR				0x1f
#define BIT_MGQ_FIFO_WPTR(x)				(((x) & BIT_MASK_MGQ_FIFO_WPTR) << BIT_SHIFT_MGQ_FIFO_WPTR)
#define BITS_MGQ_FIFO_WPTR				(BIT_MASK_MGQ_FIFO_WPTR << BIT_SHIFT_MGQ_FIFO_WPTR)
#define BIT_CLEAR_MGQ_FIFO_WPTR(x)			((x) & (~BITS_MGQ_FIFO_WPTR))
#define BIT_GET_MGQ_FIFO_WPTR(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_WPTR) & BIT_MASK_MGQ_FIFO_WPTR)
#define BIT_SET_MGQ_FIFO_WPTR(x, v)			(BIT_CLEAR_MGQ_FIFO_WPTR(x) | BIT_MGQ_FIFO_WPTR(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MGQ_FIFO_ENABLE			(Offset 0x1472) */

#define BIT_MGQ_FIFO_EN_V1				BIT(15)

#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_ENABLE			(Offset 0x1472) */

#define BIT_MGQ_FIFO_EN				BIT(15)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_READ_POINTER		(Offset 0x1472) */


#define BIT_SHIFT_MGQ_FIFO_SIZE			14
#define BIT_MASK_MGQ_FIFO_SIZE				0x3
#define BIT_MGQ_FIFO_SIZE(x)				(((x) & BIT_MASK_MGQ_FIFO_SIZE) << BIT_SHIFT_MGQ_FIFO_SIZE)
#define BITS_MGQ_FIFO_SIZE				(BIT_MASK_MGQ_FIFO_SIZE << BIT_SHIFT_MGQ_FIFO_SIZE)
#define BIT_CLEAR_MGQ_FIFO_SIZE(x)			((x) & (~BITS_MGQ_FIFO_SIZE))
#define BIT_GET_MGQ_FIFO_SIZE(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_SIZE) & BIT_MASK_MGQ_FIFO_SIZE)
#define BIT_SET_MGQ_FIFO_SIZE(x, v)			(BIT_CLEAR_MGQ_FIFO_SIZE(x) | BIT_MGQ_FIFO_SIZE(v))

#define BIT_MGQ_FIFO_PAUSE				BIT(13)

#define BIT_SHIFT_MGQ_FIFO_PG_SIZE			12
#define BIT_MASK_MGQ_FIFO_PG_SIZE			0x7
#define BIT_MGQ_FIFO_PG_SIZE(x)			(((x) & BIT_MASK_MGQ_FIFO_PG_SIZE) << BIT_SHIFT_MGQ_FIFO_PG_SIZE)
#define BITS_MGQ_FIFO_PG_SIZE				(BIT_MASK_MGQ_FIFO_PG_SIZE << BIT_SHIFT_MGQ_FIFO_PG_SIZE)
#define BIT_CLEAR_MGQ_FIFO_PG_SIZE(x)			((x) & (~BITS_MGQ_FIFO_PG_SIZE))
#define BIT_GET_MGQ_FIFO_PG_SIZE(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_PG_SIZE) & BIT_MASK_MGQ_FIFO_PG_SIZE)
#define BIT_SET_MGQ_FIFO_PG_SIZE(x, v)			(BIT_CLEAR_MGQ_FIFO_PG_SIZE(x) | BIT_MGQ_FIFO_PG_SIZE(v))


#define BIT_SHIFT_MGQ_FIFO_RPTR			8
#define BIT_MASK_MGQ_FIFO_RPTR				0x1f
#define BIT_MGQ_FIFO_RPTR(x)				(((x) & BIT_MASK_MGQ_FIFO_RPTR) << BIT_SHIFT_MGQ_FIFO_RPTR)
#define BITS_MGQ_FIFO_RPTR				(BIT_MASK_MGQ_FIFO_RPTR << BIT_SHIFT_MGQ_FIFO_RPTR)
#define BIT_CLEAR_MGQ_FIFO_RPTR(x)			((x) & (~BITS_MGQ_FIFO_RPTR))
#define BIT_GET_MGQ_FIFO_RPTR(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_RPTR) & BIT_MASK_MGQ_FIFO_RPTR)
#define BIT_SET_MGQ_FIFO_RPTR(x, v)			(BIT_CLEAR_MGQ_FIFO_RPTR(x) | BIT_MGQ_FIFO_RPTR(v))


#define BIT_SHIFT_MGQ_FIFO_START_PG			0
#define BIT_MASK_MGQ_FIFO_START_PG			0xfff
#define BIT_MGQ_FIFO_START_PG(x)			(((x) & BIT_MASK_MGQ_FIFO_START_PG) << BIT_SHIFT_MGQ_FIFO_START_PG)
#define BITS_MGQ_FIFO_START_PG				(BIT_MASK_MGQ_FIFO_START_PG << BIT_SHIFT_MGQ_FIFO_START_PG)
#define BIT_CLEAR_MGQ_FIFO_START_PG(x)			((x) & (~BITS_MGQ_FIFO_START_PG))
#define BIT_GET_MGQ_FIFO_START_PG(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_START_PG) & BIT_MASK_MGQ_FIFO_START_PG)
#define BIT_SET_MGQ_FIFO_START_PG(x, v)		(BIT_CLEAR_MGQ_FIFO_START_PG(x) | BIT_MGQ_FIFO_START_PG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_INT			(Offset 0x1474) */


#define BIT_SHIFT_R_MGG_FIFO_INT_FLAG			16
#define BIT_MASK_R_MGG_FIFO_INT_FLAG			0xffff
#define BIT_R_MGG_FIFO_INT_FLAG(x)			(((x) & BIT_MASK_R_MGG_FIFO_INT_FLAG) << BIT_SHIFT_R_MGG_FIFO_INT_FLAG)
#define BITS_R_MGG_FIFO_INT_FLAG			(BIT_MASK_R_MGG_FIFO_INT_FLAG << BIT_SHIFT_R_MGG_FIFO_INT_FLAG)
#define BIT_CLEAR_R_MGG_FIFO_INT_FLAG(x)		((x) & (~BITS_R_MGG_FIFO_INT_FLAG))
#define BIT_GET_R_MGG_FIFO_INT_FLAG(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_FLAG) & BIT_MASK_R_MGG_FIFO_INT_FLAG)
#define BIT_SET_R_MGG_FIFO_INT_FLAG(x, v)		(BIT_CLEAR_R_MGG_FIFO_INT_FLAG(x) | BIT_R_MGG_FIFO_INT_FLAG(v))


#define BIT_SHIFT_R_MGG_FIFO_INT_MASK			0
#define BIT_MASK_R_MGG_FIFO_INT_MASK			0xffff
#define BIT_R_MGG_FIFO_INT_MASK(x)			(((x) & BIT_MASK_R_MGG_FIFO_INT_MASK) << BIT_SHIFT_R_MGG_FIFO_INT_MASK)
#define BITS_R_MGG_FIFO_INT_MASK			(BIT_MASK_R_MGG_FIFO_INT_MASK << BIT_SHIFT_R_MGG_FIFO_INT_MASK)
#define BIT_CLEAR_R_MGG_FIFO_INT_MASK(x)		((x) & (~BITS_R_MGG_FIFO_INT_MASK))
#define BIT_GET_R_MGG_FIFO_INT_MASK(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_INT_MASK) & BIT_MASK_R_MGG_FIFO_INT_MASK)
#define BIT_SET_R_MGG_FIFO_INT_MASK(x, v)		(BIT_CLEAR_R_MGG_FIFO_INT_MASK(x) | BIT_R_MGG_FIFO_INT_MASK(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_RELEASE_INT_MASK		(Offset 0x1474) */


#define BIT_SHIFT_MGQ_FIFO_REL_INT_MASK		0
#define BIT_MASK_MGQ_FIFO_REL_INT_MASK			0xffff
#define BIT_MGQ_FIFO_REL_INT_MASK(x)			(((x) & BIT_MASK_MGQ_FIFO_REL_INT_MASK) << BIT_SHIFT_MGQ_FIFO_REL_INT_MASK)
#define BITS_MGQ_FIFO_REL_INT_MASK			(BIT_MASK_MGQ_FIFO_REL_INT_MASK << BIT_SHIFT_MGQ_FIFO_REL_INT_MASK)
#define BIT_CLEAR_MGQ_FIFO_REL_INT_MASK(x)		((x) & (~BITS_MGQ_FIFO_REL_INT_MASK))
#define BIT_GET_MGQ_FIFO_REL_INT_MASK(x)		(((x) >> BIT_SHIFT_MGQ_FIFO_REL_INT_MASK) & BIT_MASK_MGQ_FIFO_REL_INT_MASK)
#define BIT_SET_MGQ_FIFO_REL_INT_MASK(x, v)		(BIT_CLEAR_MGQ_FIFO_REL_INT_MASK(x) | BIT_MGQ_FIFO_REL_INT_MASK(v))


/* 2 REG_MGQ_FIFO_RELEASE_INT_FLAG		(Offset 0x1476) */


#define BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG		0
#define BIT_MASK_MGQ_FIFO_REL_INT_FLAG			0xffff
#define BIT_MGQ_FIFO_REL_INT_FLAG(x)			(((x) & BIT_MASK_MGQ_FIFO_REL_INT_FLAG) << BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG)
#define BITS_MGQ_FIFO_REL_INT_FLAG			(BIT_MASK_MGQ_FIFO_REL_INT_FLAG << BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG)
#define BIT_CLEAR_MGQ_FIFO_REL_INT_FLAG(x)		((x) & (~BITS_MGQ_FIFO_REL_INT_FLAG))
#define BIT_GET_MGQ_FIFO_REL_INT_FLAG(x)		(((x) >> BIT_SHIFT_MGQ_FIFO_REL_INT_FLAG) & BIT_MASK_MGQ_FIFO_REL_INT_FLAG)
#define BIT_SET_MGQ_FIFO_REL_INT_FLAG(x, v)		(BIT_CLEAR_MGQ_FIFO_REL_INT_FLAG(x) | BIT_MGQ_FIFO_REL_INT_FLAG(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MGG_FIFO_LIFETIME			(Offset 0x1478) */


#define BIT_SHIFT_R_MGG_FIFO_LIFETIME			16
#define BIT_MASK_R_MGG_FIFO_LIFETIME			0xffff
#define BIT_R_MGG_FIFO_LIFETIME(x)			(((x) & BIT_MASK_R_MGG_FIFO_LIFETIME) << BIT_SHIFT_R_MGG_FIFO_LIFETIME)
#define BITS_R_MGG_FIFO_LIFETIME			(BIT_MASK_R_MGG_FIFO_LIFETIME << BIT_SHIFT_R_MGG_FIFO_LIFETIME)
#define BIT_CLEAR_R_MGG_FIFO_LIFETIME(x)		((x) & (~BITS_R_MGG_FIFO_LIFETIME))
#define BIT_GET_R_MGG_FIFO_LIFETIME(x)			(((x) >> BIT_SHIFT_R_MGG_FIFO_LIFETIME) & BIT_MASK_R_MGG_FIFO_LIFETIME)
#define BIT_SET_R_MGG_FIFO_LIFETIME(x, v)		(BIT_CLEAR_R_MGG_FIFO_LIFETIME(x) | BIT_R_MGG_FIFO_LIFETIME(v))


#define BIT_SHIFT_R_MGG_FIFO_VALID_MAP			0
#define BIT_MASK_R_MGG_FIFO_VALID_MAP			0xffff
#define BIT_R_MGG_FIFO_VALID_MAP(x)			(((x) & BIT_MASK_R_MGG_FIFO_VALID_MAP) << BIT_SHIFT_R_MGG_FIFO_VALID_MAP)
#define BITS_R_MGG_FIFO_VALID_MAP			(BIT_MASK_R_MGG_FIFO_VALID_MAP << BIT_SHIFT_R_MGG_FIFO_VALID_MAP)
#define BIT_CLEAR_R_MGG_FIFO_VALID_MAP(x)		((x) & (~BITS_R_MGG_FIFO_VALID_MAP))
#define BIT_GET_R_MGG_FIFO_VALID_MAP(x)		(((x) >> BIT_SHIFT_R_MGG_FIFO_VALID_MAP) & BIT_MASK_R_MGG_FIFO_VALID_MAP)
#define BIT_SET_R_MGG_FIFO_VALID_MAP(x, v)		(BIT_CLEAR_R_MGG_FIFO_VALID_MAP(x) | BIT_R_MGG_FIFO_VALID_MAP(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MGQ_FIFO_VALID_MAP			(Offset 0x1478) */


#define BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP		0
#define BIT_MASK_MGQ_FIFO_PKT_VALID_MAP		0xffff
#define BIT_MGQ_FIFO_PKT_VALID_MAP(x)			(((x) & BIT_MASK_MGQ_FIFO_PKT_VALID_MAP) << BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP)
#define BITS_MGQ_FIFO_PKT_VALID_MAP			(BIT_MASK_MGQ_FIFO_PKT_VALID_MAP << BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP)
#define BIT_CLEAR_MGQ_FIFO_PKT_VALID_MAP(x)		((x) & (~BITS_MGQ_FIFO_PKT_VALID_MAP))
#define BIT_GET_MGQ_FIFO_PKT_VALID_MAP(x)		(((x) >> BIT_SHIFT_MGQ_FIFO_PKT_VALID_MAP) & BIT_MASK_MGQ_FIFO_PKT_VALID_MAP)
#define BIT_SET_MGQ_FIFO_PKT_VALID_MAP(x, v)		(BIT_CLEAR_MGQ_FIFO_PKT_VALID_MAP(x) | BIT_MGQ_FIFO_PKT_VALID_MAP(v))


/* 2 REG_MGQ_FIFO_LIFETIME			(Offset 0x147A) */


#define BIT_SHIFT_MGQ_FIFO_LIFETIME			0
#define BIT_MASK_MGQ_FIFO_LIFETIME			0xffff
#define BIT_MGQ_FIFO_LIFETIME(x)			(((x) & BIT_MASK_MGQ_FIFO_LIFETIME) << BIT_SHIFT_MGQ_FIFO_LIFETIME)
#define BITS_MGQ_FIFO_LIFETIME				(BIT_MASK_MGQ_FIFO_LIFETIME << BIT_SHIFT_MGQ_FIFO_LIFETIME)
#define BIT_CLEAR_MGQ_FIFO_LIFETIME(x)			((x) & (~BITS_MGQ_FIFO_LIFETIME))
#define BIT_GET_MGQ_FIFO_LIFETIME(x)			(((x) >> BIT_SHIFT_MGQ_FIFO_LIFETIME) & BIT_MASK_MGQ_FIFO_LIFETIME)
#define BIT_SET_MGQ_FIFO_LIFETIME(x, v)		(BIT_CLEAR_MGQ_FIFO_LIFETIME(x) | BIT_MGQ_FIFO_LIFETIME(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET (Offset 0x147C) */


#define BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET	0
#define BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET	0x7f
#define BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x)	(((x) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET) << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
#define BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET	(BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET << BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
#define BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x)	((x) & (~BITS_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET))
#define BIT_GET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x)	(((x) >> BIT_SHIFT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET) & BIT_MASK_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET)
#define BIT_SET_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x, v)	(BIT_CLEAR_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(x) | BIT_R_MACID_RELEASE_SUCCESS_CLEAR_OFFSET(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PKT_TRANS				(Offset 0x1480) */


#define BIT_SHIFT_IE_DESC_OFFSET			16
#define BIT_MASK_IE_DESC_OFFSET			0x1ff
#define BIT_IE_DESC_OFFSET(x)				(((x) & BIT_MASK_IE_DESC_OFFSET) << BIT_SHIFT_IE_DESC_OFFSET)
#define BITS_IE_DESC_OFFSET				(BIT_MASK_IE_DESC_OFFSET << BIT_SHIFT_IE_DESC_OFFSET)
#define BIT_CLEAR_IE_DESC_OFFSET(x)			((x) & (~BITS_IE_DESC_OFFSET))
#define BIT_GET_IE_DESC_OFFSET(x)			(((x) >> BIT_SHIFT_IE_DESC_OFFSET) & BIT_MASK_IE_DESC_OFFSET)
#define BIT_SET_IE_DESC_OFFSET(x, v)			(BIT_CLEAR_IE_DESC_OFFSET(x) | BIT_IE_DESC_OFFSET(v))

#define BIT_DIS_FWCMD_PATH_ERRCHK			BIT(13)
#define BIT_MAC_HDR_CONVERT_EN				BIT(12)
#define BIT_TXDESC_TRANS_EN				BIT(8)
#define BIT_PKT_TRANS_ERRINT_EN			BIT(7)

#define BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL		4
#define BIT_MASK_PKT_TRANS_ERR_MACID_SEL		0x3
#define BIT_PKT_TRANS_ERR_MACID_SEL(x)			(((x) & BIT_MASK_PKT_TRANS_ERR_MACID_SEL) << BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL)
#define BITS_PKT_TRANS_ERR_MACID_SEL			(BIT_MASK_PKT_TRANS_ERR_MACID_SEL << BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL)
#define BIT_CLEAR_PKT_TRANS_ERR_MACID_SEL(x)		((x) & (~BITS_PKT_TRANS_ERR_MACID_SEL))
#define BIT_GET_PKT_TRANS_ERR_MACID_SEL(x)		(((x) >> BIT_SHIFT_PKT_TRANS_ERR_MACID_SEL) & BIT_MASK_PKT_TRANS_ERR_MACID_SEL)
#define BIT_SET_PKT_TRANS_ERR_MACID_SEL(x, v)		(BIT_CLEAR_PKT_TRANS_ERR_MACID_SEL(x) | BIT_PKT_TRANS_ERR_MACID_SEL(v))

#define BIT_PKT_TRANS_IEINIT_ERR			BIT(3)
#define BIT_PKT_TRANS_IENUM_ERR			BIT(2)
#define BIT_PKT_TRANS_IECNT_ERR1			BIT(1)
#define BIT_PKT_TRANS_IECNT_ERR0			BIT(0)

/* 2 REG_SHCUT_LLC_ETH_TYPE1			(Offset 0x1488) */


#define BIT_SHIFT_SHCUT_MHDR_OFFSET			16
#define BIT_MASK_SHCUT_MHDR_OFFSET			0x1ff
#define BIT_SHCUT_MHDR_OFFSET(x)			(((x) & BIT_MASK_SHCUT_MHDR_OFFSET) << BIT_SHIFT_SHCUT_MHDR_OFFSET)
#define BITS_SHCUT_MHDR_OFFSET				(BIT_MASK_SHCUT_MHDR_OFFSET << BIT_SHIFT_SHCUT_MHDR_OFFSET)
#define BIT_CLEAR_SHCUT_MHDR_OFFSET(x)			((x) & (~BITS_SHCUT_MHDR_OFFSET))
#define BIT_GET_SHCUT_MHDR_OFFSET(x)			(((x) >> BIT_SHIFT_SHCUT_MHDR_OFFSET) & BIT_MASK_SHCUT_MHDR_OFFSET)
#define BIT_SET_SHCUT_MHDR_OFFSET(x, v)		(BIT_CLEAR_SHCUT_MHDR_OFFSET(x) | BIT_SHCUT_MHDR_OFFSET(v))


#define BIT_SHIFT_PKT_TRANS_ERR_MACID			0
#define BIT_MASK_PKT_TRANS_ERR_MACID			0xffffffffL
#define BIT_PKT_TRANS_ERR_MACID(x)			(((x) & BIT_MASK_PKT_TRANS_ERR_MACID) << BIT_SHIFT_PKT_TRANS_ERR_MACID)
#define BITS_PKT_TRANS_ERR_MACID			(BIT_MASK_PKT_TRANS_ERR_MACID << BIT_SHIFT_PKT_TRANS_ERR_MACID)
#define BIT_CLEAR_PKT_TRANS_ERR_MACID(x)		((x) & (~BITS_PKT_TRANS_ERR_MACID))
#define BIT_GET_PKT_TRANS_ERR_MACID(x)			(((x) >> BIT_SHIFT_PKT_TRANS_ERR_MACID) & BIT_MASK_PKT_TRANS_ERR_MACID)
#define BIT_SET_PKT_TRANS_ERR_MACID(x, v)		(BIT_CLEAR_PKT_TRANS_ERR_MACID(x) | BIT_PKT_TRANS_ERR_MACID(v))


/* 2 REG_FWCMDQ_CTRL				(Offset 0x14A0) */

#define BIT_FW_RELEASEPKT_POLLING			BIT(31)

#define BIT_SHIFT_FWCMDQ_RELEASE_HEAD			16
#define BIT_MASK_FWCMDQ_RELEASE_HEAD			0xfff
#define BIT_FWCMDQ_RELEASE_HEAD(x)			(((x) & BIT_MASK_FWCMDQ_RELEASE_HEAD) << BIT_SHIFT_FWCMDQ_RELEASE_HEAD)
#define BITS_FWCMDQ_RELEASE_HEAD			(BIT_MASK_FWCMDQ_RELEASE_HEAD << BIT_SHIFT_FWCMDQ_RELEASE_HEAD)
#define BIT_CLEAR_FWCMDQ_RELEASE_HEAD(x)		((x) & (~BITS_FWCMDQ_RELEASE_HEAD))
#define BIT_GET_FWCMDQ_RELEASE_HEAD(x)			(((x) >> BIT_SHIFT_FWCMDQ_RELEASE_HEAD) & BIT_MASK_FWCMDQ_RELEASE_HEAD)
#define BIT_SET_FWCMDQ_RELEASE_HEAD(x, v)		(BIT_CLEAR_FWCMDQ_RELEASE_HEAD(x) | BIT_FWCMDQ_RELEASE_HEAD(v))

#define BIT_FW_GETPKTT_POLLING				BIT(15)

#define BIT_SHIFT_FWCMDQ_H				0
#define BIT_MASK_FWCMDQ_H				0xfff
#define BIT_FWCMDQ_H(x)				(((x) & BIT_MASK_FWCMDQ_H) << BIT_SHIFT_FWCMDQ_H)
#define BITS_FWCMDQ_H					(BIT_MASK_FWCMDQ_H << BIT_SHIFT_FWCMDQ_H)
#define BIT_CLEAR_FWCMDQ_H(x)				((x) & (~BITS_FWCMDQ_H))
#define BIT_GET_FWCMDQ_H(x)				(((x) >> BIT_SHIFT_FWCMDQ_H) & BIT_MASK_FWCMDQ_H)
#define BIT_SET_FWCMDQ_H(x, v)				(BIT_CLEAR_FWCMDQ_H(x) | BIT_FWCMDQ_H(v))


/* 2 REG_FWCMDQ_PAGE				(Offset 0x14A4) */


#define BIT_SHIFT_FWCMDQ_TOTAL_PAGE			16
#define BIT_MASK_FWCMDQ_TOTAL_PAGE			0xfff
#define BIT_FWCMDQ_TOTAL_PAGE(x)			(((x) & BIT_MASK_FWCMDQ_TOTAL_PAGE) << BIT_SHIFT_FWCMDQ_TOTAL_PAGE)
#define BITS_FWCMDQ_TOTAL_PAGE				(BIT_MASK_FWCMDQ_TOTAL_PAGE << BIT_SHIFT_FWCMDQ_TOTAL_PAGE)
#define BIT_CLEAR_FWCMDQ_TOTAL_PAGE(x)			((x) & (~BITS_FWCMDQ_TOTAL_PAGE))
#define BIT_GET_FWCMDQ_TOTAL_PAGE(x)			(((x) >> BIT_SHIFT_FWCMDQ_TOTAL_PAGE) & BIT_MASK_FWCMDQ_TOTAL_PAGE)
#define BIT_SET_FWCMDQ_TOTAL_PAGE(x, v)		(BIT_CLEAR_FWCMDQ_TOTAL_PAGE(x) | BIT_FWCMDQ_TOTAL_PAGE(v))


#define BIT_SHIFT_FWCMDQ_QUEUE_PAGE			0
#define BIT_MASK_FWCMDQ_QUEUE_PAGE			0xfff
#define BIT_FWCMDQ_QUEUE_PAGE(x)			(((x) & BIT_MASK_FWCMDQ_QUEUE_PAGE) << BIT_SHIFT_FWCMDQ_QUEUE_PAGE)
#define BITS_FWCMDQ_QUEUE_PAGE				(BIT_MASK_FWCMDQ_QUEUE_PAGE << BIT_SHIFT_FWCMDQ_QUEUE_PAGE)
#define BIT_CLEAR_FWCMDQ_QUEUE_PAGE(x)			((x) & (~BITS_FWCMDQ_QUEUE_PAGE))
#define BIT_GET_FWCMDQ_QUEUE_PAGE(x)			(((x) >> BIT_SHIFT_FWCMDQ_QUEUE_PAGE) & BIT_MASK_FWCMDQ_QUEUE_PAGE)
#define BIT_SET_FWCMDQ_QUEUE_PAGE(x, v)		(BIT_CLEAR_FWCMDQ_QUEUE_PAGE(x) | BIT_FWCMDQ_QUEUE_PAGE(v))


/* 2 REG_FWCMDQ_INFO				(Offset 0x14A8) */

#define BIT_FWCMD_READY				BIT(31)
#define BIT_FWCMDQ_OVERFLOW				BIT(30)
#define BIT_FWCMDQ_UNDERFLOW				BIT(29)
#define BIT_FWCMDQ_RELEASE_MISS			BIT(28)

#define BIT_SHIFT_FWCMDQ_TOTAL_PKT			16
#define BIT_MASK_FWCMDQ_TOTAL_PKT			0xfff
#define BIT_FWCMDQ_TOTAL_PKT(x)			(((x) & BIT_MASK_FWCMDQ_TOTAL_PKT) << BIT_SHIFT_FWCMDQ_TOTAL_PKT)
#define BITS_FWCMDQ_TOTAL_PKT				(BIT_MASK_FWCMDQ_TOTAL_PKT << BIT_SHIFT_FWCMDQ_TOTAL_PKT)
#define BIT_CLEAR_FWCMDQ_TOTAL_PKT(x)			((x) & (~BITS_FWCMDQ_TOTAL_PKT))
#define BIT_GET_FWCMDQ_TOTAL_PKT(x)			(((x) >> BIT_SHIFT_FWCMDQ_TOTAL_PKT) & BIT_MASK_FWCMDQ_TOTAL_PKT)
#define BIT_SET_FWCMDQ_TOTAL_PKT(x, v)			(BIT_CLEAR_FWCMDQ_TOTAL_PKT(x) | BIT_FWCMDQ_TOTAL_PKT(v))


#define BIT_SHIFT_FWCMDQ_QUEUE_PKT			0
#define BIT_MASK_FWCMDQ_QUEUE_PKT			0xfff
#define BIT_FWCMDQ_QUEUE_PKT(x)			(((x) & BIT_MASK_FWCMDQ_QUEUE_PKT) << BIT_SHIFT_FWCMDQ_QUEUE_PKT)
#define BITS_FWCMDQ_QUEUE_PKT				(BIT_MASK_FWCMDQ_QUEUE_PKT << BIT_SHIFT_FWCMDQ_QUEUE_PKT)
#define BIT_CLEAR_FWCMDQ_QUEUE_PKT(x)			((x) & (~BITS_FWCMDQ_QUEUE_PKT))
#define BIT_GET_FWCMDQ_QUEUE_PKT(x)			(((x) >> BIT_SHIFT_FWCMDQ_QUEUE_PKT) & BIT_MASK_FWCMDQ_QUEUE_PKT)
#define BIT_SET_FWCMDQ_QUEUE_PKT(x, v)			(BIT_CLEAR_FWCMDQ_QUEUE_PKT(x) | BIT_FWCMDQ_QUEUE_PKT(v))


/* 2 REG_FWCMDQ_HOLD_PKTNUM			(Offset 0x14AC) */


#define BIT_SHIFT_FWCMDQ_HOLD__PKTNUM			0
#define BIT_MASK_FWCMDQ_HOLD__PKTNUM			0xfff
#define BIT_FWCMDQ_HOLD__PKTNUM(x)			(((x) & BIT_MASK_FWCMDQ_HOLD__PKTNUM) << BIT_SHIFT_FWCMDQ_HOLD__PKTNUM)
#define BITS_FWCMDQ_HOLD__PKTNUM			(BIT_MASK_FWCMDQ_HOLD__PKTNUM << BIT_SHIFT_FWCMDQ_HOLD__PKTNUM)
#define BIT_CLEAR_FWCMDQ_HOLD__PKTNUM(x)		((x) & (~BITS_FWCMDQ_HOLD__PKTNUM))
#define BIT_GET_FWCMDQ_HOLD__PKTNUM(x)			(((x) >> BIT_SHIFT_FWCMDQ_HOLD__PKTNUM) & BIT_MASK_FWCMDQ_HOLD__PKTNUM)
#define BIT_SET_FWCMDQ_HOLD__PKTNUM(x, v)		(BIT_CLEAR_FWCMDQ_HOLD__PKTNUM(x) | BIT_FWCMDQ_HOLD__PKTNUM(v))


/* 2 REG_MU_TX_CTRL				(Offset 0x14C0) */

#define BIT_SEARCH_DONE_RDY				BIT(31)
#define BIT_MU_EN					BIT(30)
#define BIT_MU_SECONDARY_WAITMODE_EN			BIT(29)
#define BIT_MU_BB_SCORE_EN				BIT(28)
#define BIT_MU_SECONDARY_ANT_COUNT_EN			BIT(27)

#define BIT_SHIFT_DIS_SU_TXBF				16
#define BIT_MASK_DIS_SU_TXBF				0x3f
#define BIT_DIS_SU_TXBF(x)				(((x) & BIT_MASK_DIS_SU_TXBF) << BIT_SHIFT_DIS_SU_TXBF)
#define BITS_DIS_SU_TXBF				(BIT_MASK_DIS_SU_TXBF << BIT_SHIFT_DIS_SU_TXBF)
#define BIT_CLEAR_DIS_SU_TXBF(x)			((x) & (~BITS_DIS_SU_TXBF))
#define BIT_GET_DIS_SU_TXBF(x)				(((x) >> BIT_SHIFT_DIS_SU_TXBF) & BIT_MASK_DIS_SU_TXBF)
#define BIT_SET_DIS_SU_TXBF(x, v)			(BIT_CLEAR_DIS_SU_TXBF(x) | BIT_DIS_SU_TXBF(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */

#define BIT_R_MU_P1_WAIT_STATE_EN			BIT(16)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_TX_CTRL				(Offset 0x14C0) */


#define BIT_SHIFT_MU_RL				12
#define BIT_MASK_MU_RL					0xf
#define BIT_MU_RL(x)					(((x) & BIT_MASK_MU_RL) << BIT_SHIFT_MU_RL)
#define BITS_MU_RL					(BIT_MASK_MU_RL << BIT_SHIFT_MU_RL)
#define BIT_CLEAR_MU_RL(x)				((x) & (~BITS_MU_RL))
#define BIT_GET_MU_RL(x)				(((x) >> BIT_SHIFT_MU_RL) & BIT_MASK_MU_RL)
#define BIT_SET_MU_RL(x, v)				(BIT_CLEAR_MU_RL(x) | BIT_MU_RL(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */


#define BIT_SHIFT_R_MU_RL				12
#define BIT_MASK_R_MU_RL				0xf
#define BIT_R_MU_RL(x)					(((x) & BIT_MASK_R_MU_RL) << BIT_SHIFT_R_MU_RL)
#define BITS_R_MU_RL					(BIT_MASK_R_MU_RL << BIT_SHIFT_R_MU_RL)
#define BIT_CLEAR_R_MU_RL(x)				((x) & (~BITS_R_MU_RL))
#define BIT_GET_R_MU_RL(x)				(((x) >> BIT_SHIFT_R_MU_RL) & BIT_MASK_R_MU_RL)
#define BIT_SET_R_MU_RL(x, v)				(BIT_CLEAR_R_MU_RL(x) | BIT_R_MU_RL(v))

#define BIT_R_FORCE_P1_RATEDOWN			BIT(11)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_TX_CTRL				(Offset 0x14C0) */


#define BIT_SHIFT_MU_TAB_SEL				8
#define BIT_MASK_MU_TAB_SEL				0xf
#define BIT_MU_TAB_SEL(x)				(((x) & BIT_MASK_MU_TAB_SEL) << BIT_SHIFT_MU_TAB_SEL)
#define BITS_MU_TAB_SEL				(BIT_MASK_MU_TAB_SEL << BIT_SHIFT_MU_TAB_SEL)
#define BIT_CLEAR_MU_TAB_SEL(x)			((x) & (~BITS_MU_TAB_SEL))
#define BIT_GET_MU_TAB_SEL(x)				(((x) >> BIT_SHIFT_MU_TAB_SEL) & BIT_MASK_MU_TAB_SEL)
#define BIT_SET_MU_TAB_SEL(x, v)			(BIT_CLEAR_MU_TAB_SEL(x) | BIT_MU_TAB_SEL(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */


#define BIT_SHIFT_R_MU_TAB_SEL				8
#define BIT_MASK_R_MU_TAB_SEL				0x7
#define BIT_R_MU_TAB_SEL(x)				(((x) & BIT_MASK_R_MU_TAB_SEL) << BIT_SHIFT_R_MU_TAB_SEL)
#define BITS_R_MU_TAB_SEL				(BIT_MASK_R_MU_TAB_SEL << BIT_SHIFT_R_MU_TAB_SEL)
#define BIT_CLEAR_R_MU_TAB_SEL(x)			((x) & (~BITS_R_MU_TAB_SEL))
#define BIT_GET_R_MU_TAB_SEL(x)			(((x) >> BIT_SHIFT_R_MU_TAB_SEL) & BIT_MASK_R_MU_TAB_SEL)
#define BIT_SET_R_MU_TAB_SEL(x, v)			(BIT_CLEAR_R_MU_TAB_SEL(x) | BIT_R_MU_TAB_SEL(v))

#define BIT_R_EN_MU_MIMO				BIT(7)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */

#define BIT_R_EN_REVERS_GTAB				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_TX_CTRL				(Offset 0x14C0) */


#define BIT_SHIFT_MU_TAB_VALID				0
#define BIT_MASK_MU_TAB_VALID				0x3f
#define BIT_MU_TAB_VALID(x)				(((x) & BIT_MASK_MU_TAB_VALID) << BIT_SHIFT_MU_TAB_VALID)
#define BITS_MU_TAB_VALID				(BIT_MASK_MU_TAB_VALID << BIT_SHIFT_MU_TAB_VALID)
#define BIT_CLEAR_MU_TAB_VALID(x)			((x) & (~BITS_MU_TAB_VALID))
#define BIT_GET_MU_TAB_VALID(x)			(((x) >> BIT_SHIFT_MU_TAB_VALID) & BIT_MASK_MU_TAB_VALID)
#define BIT_SET_MU_TAB_VALID(x, v)			(BIT_CLEAR_MU_TAB_VALID(x) | BIT_MU_TAB_VALID(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_TX_CTL				(Offset 0x14C0) */


#define BIT_SHIFT_R_MU_TABLE_VALID			0
#define BIT_MASK_R_MU_TABLE_VALID			0x3f
#define BIT_R_MU_TABLE_VALID(x)			(((x) & BIT_MASK_R_MU_TABLE_VALID) << BIT_SHIFT_R_MU_TABLE_VALID)
#define BITS_R_MU_TABLE_VALID				(BIT_MASK_R_MU_TABLE_VALID << BIT_SHIFT_R_MU_TABLE_VALID)
#define BIT_CLEAR_R_MU_TABLE_VALID(x)			((x) & (~BITS_R_MU_TABLE_VALID))
#define BIT_GET_R_MU_TABLE_VALID(x)			(((x) >> BIT_SHIFT_R_MU_TABLE_VALID) & BIT_MASK_R_MU_TABLE_VALID)
#define BIT_SET_R_MU_TABLE_VALID(x, v)			(BIT_CLEAR_R_MU_TABLE_VALID(x) | BIT_R_MU_TABLE_VALID(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_STA_GID_VLD			(Offset 0x14C4) */


#define BIT_SHIFT_MU_STA_GTAB_VALID			0
#define BIT_MASK_MU_STA_GTAB_VALID			0xffffffffL
#define BIT_MU_STA_GTAB_VALID(x)			(((x) & BIT_MASK_MU_STA_GTAB_VALID) << BIT_SHIFT_MU_STA_GTAB_VALID)
#define BITS_MU_STA_GTAB_VALID				(BIT_MASK_MU_STA_GTAB_VALID << BIT_SHIFT_MU_STA_GTAB_VALID)
#define BIT_CLEAR_MU_STA_GTAB_VALID(x)			((x) & (~BITS_MU_STA_GTAB_VALID))
#define BIT_GET_MU_STA_GTAB_VALID(x)			(((x) >> BIT_SHIFT_MU_STA_GTAB_VALID) & BIT_MASK_MU_STA_GTAB_VALID)
#define BIT_SET_MU_STA_GTAB_VALID(x, v)		(BIT_CLEAR_MU_STA_GTAB_VALID(x) | BIT_MU_STA_GTAB_VALID(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_STA_GID_VLD			(Offset 0x14C4) */


#define BIT_SHIFT_R_MU_STA_GTAB_VALID			0
#define BIT_MASK_R_MU_STA_GTAB_VALID			0xffffffffL
#define BIT_R_MU_STA_GTAB_VALID(x)			(((x) & BIT_MASK_R_MU_STA_GTAB_VALID) << BIT_SHIFT_R_MU_STA_GTAB_VALID)
#define BITS_R_MU_STA_GTAB_VALID			(BIT_MASK_R_MU_STA_GTAB_VALID << BIT_SHIFT_R_MU_STA_GTAB_VALID)
#define BIT_CLEAR_R_MU_STA_GTAB_VALID(x)		((x) & (~BITS_R_MU_STA_GTAB_VALID))
#define BIT_GET_R_MU_STA_GTAB_VALID(x)			(((x) >> BIT_SHIFT_R_MU_STA_GTAB_VALID) & BIT_MASK_R_MU_STA_GTAB_VALID)
#define BIT_SET_R_MU_STA_GTAB_VALID(x, v)		(BIT_CLEAR_R_MU_STA_GTAB_VALID(x) | BIT_R_MU_STA_GTAB_VALID(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_STA_USER_POS_INFO		(Offset 0x14C8) */


#define BIT_SHIFT_MU_STA_GTAB_POSITION_L		0
#define BIT_MASK_MU_STA_GTAB_POSITION_L		0xffffffffL
#define BIT_MU_STA_GTAB_POSITION_L(x)			(((x) & BIT_MASK_MU_STA_GTAB_POSITION_L) << BIT_SHIFT_MU_STA_GTAB_POSITION_L)
#define BITS_MU_STA_GTAB_POSITION_L			(BIT_MASK_MU_STA_GTAB_POSITION_L << BIT_SHIFT_MU_STA_GTAB_POSITION_L)
#define BIT_CLEAR_MU_STA_GTAB_POSITION_L(x)		((x) & (~BITS_MU_STA_GTAB_POSITION_L))
#define BIT_GET_MU_STA_GTAB_POSITION_L(x)		(((x) >> BIT_SHIFT_MU_STA_GTAB_POSITION_L) & BIT_MASK_MU_STA_GTAB_POSITION_L)
#define BIT_SET_MU_STA_GTAB_POSITION_L(x, v)		(BIT_CLEAR_MU_STA_GTAB_POSITION_L(x) | BIT_MU_STA_GTAB_POSITION_L(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MU_STA_USER_POS_INFO		(Offset 0x14C8) */


#define BIT_SHIFT_R_MU_STA_GTAB_POSITION_L		0
#define BIT_MASK_R_MU_STA_GTAB_POSITION_L		0xffffffffL
#define BIT_R_MU_STA_GTAB_POSITION_L(x)		(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_L) << BIT_SHIFT_R_MU_STA_GTAB_POSITION_L)
#define BITS_R_MU_STA_GTAB_POSITION_L			(BIT_MASK_R_MU_STA_GTAB_POSITION_L << BIT_SHIFT_R_MU_STA_GTAB_POSITION_L)
#define BIT_CLEAR_R_MU_STA_GTAB_POSITION_L(x)		((x) & (~BITS_R_MU_STA_GTAB_POSITION_L))
#define BIT_GET_R_MU_STA_GTAB_POSITION_L(x)		(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_L) & BIT_MASK_R_MU_STA_GTAB_POSITION_L)
#define BIT_SET_R_MU_STA_GTAB_POSITION_L(x, v)	(BIT_CLEAR_R_MU_STA_GTAB_POSITION_L(x) | BIT_R_MU_STA_GTAB_POSITION_L(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_STA_USER_POS_INFO_H		(Offset 0x14CC) */


#define BIT_SHIFT_MU_STA_GTAB_POSITION_H		0
#define BIT_MASK_MU_STA_GTAB_POSITION_H		0xffffffffL
#define BIT_MU_STA_GTAB_POSITION_H(x)			(((x) & BIT_MASK_MU_STA_GTAB_POSITION_H) << BIT_SHIFT_MU_STA_GTAB_POSITION_H)
#define BITS_MU_STA_GTAB_POSITION_H			(BIT_MASK_MU_STA_GTAB_POSITION_H << BIT_SHIFT_MU_STA_GTAB_POSITION_H)
#define BIT_CLEAR_MU_STA_GTAB_POSITION_H(x)		((x) & (~BITS_MU_STA_GTAB_POSITION_H))
#define BIT_GET_MU_STA_GTAB_POSITION_H(x)		(((x) >> BIT_SHIFT_MU_STA_GTAB_POSITION_H) & BIT_MASK_MU_STA_GTAB_POSITION_H)
#define BIT_SET_MU_STA_GTAB_POSITION_H(x, v)		(BIT_CLEAR_MU_STA_GTAB_POSITION_H(x) | BIT_MU_STA_GTAB_POSITION_H(v))


#endif


#if (HALMAC_8821C_SUPPORT)


/* 2 REG_MU_STA_USER_POS_INFO_H		(Offset 0x14CC) */


#define BIT_SHIFT_R_MU_STA_GTAB_POSITION_H		0
#define BIT_MASK_R_MU_STA_GTAB_POSITION_H		0xffffffffL
#define BIT_R_MU_STA_GTAB_POSITION_H(x)		(((x) & BIT_MASK_R_MU_STA_GTAB_POSITION_H) << BIT_SHIFT_R_MU_STA_GTAB_POSITION_H)
#define BITS_R_MU_STA_GTAB_POSITION_H			(BIT_MASK_R_MU_STA_GTAB_POSITION_H << BIT_SHIFT_R_MU_STA_GTAB_POSITION_H)
#define BIT_CLEAR_R_MU_STA_GTAB_POSITION_H(x)		((x) & (~BITS_R_MU_STA_GTAB_POSITION_H))
#define BIT_GET_R_MU_STA_GTAB_POSITION_H(x)		(((x) >> BIT_SHIFT_R_MU_STA_GTAB_POSITION_H) & BIT_MASK_R_MU_STA_GTAB_POSITION_H)
#define BIT_SET_R_MU_STA_GTAB_POSITION_H(x, v)	(BIT_CLEAR_R_MU_STA_GTAB_POSITION_H(x) | BIT_R_MU_STA_GTAB_POSITION_H(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_TRX_DBG_CNT			(Offset 0x14D0) */

#define BIT_MU_DNGCNT_RST				BIT(20)

#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_TRX_DBG_CNT			(Offset 0x14D0) */


#define BIT_SHIFT_MU_DBGCNT_SEL			16
#define BIT_MASK_MU_DBGCNT_SEL				0xf
#define BIT_MU_DBGCNT_SEL(x)				(((x) & BIT_MASK_MU_DBGCNT_SEL) << BIT_SHIFT_MU_DBGCNT_SEL)
#define BITS_MU_DBGCNT_SEL				(BIT_MASK_MU_DBGCNT_SEL << BIT_SHIFT_MU_DBGCNT_SEL)
#define BIT_CLEAR_MU_DBGCNT_SEL(x)			((x) & (~BITS_MU_DBGCNT_SEL))
#define BIT_GET_MU_DBGCNT_SEL(x)			(((x) >> BIT_SHIFT_MU_DBGCNT_SEL) & BIT_MASK_MU_DBGCNT_SEL)
#define BIT_SET_MU_DBGCNT_SEL(x, v)			(BIT_CLEAR_MU_DBGCNT_SEL(x) | BIT_MU_DBGCNT_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_CHNL_INFO_CTRL			(Offset 0x14D0) */

#define BIT_CHNL_REF_RXNAV				BIT(7)
#define BIT_CHNL_REF_VBON				BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_CHNL_INFO_CTRL			(Offset 0x14D0) */

#define BIT_CHNL_REF_EDCCA				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_CHNL_INFO_CTRL			(Offset 0x14D0) */

#define BIT_CHNL_REF_EDCA				BIT(5)
#define BIT_CHNL_REF_CCA				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_CHNL_INFO_CTRL			(Offset 0x14D0) */

#define BIT_RST_CHNL_BUSY				BIT(3)
#define BIT_RST_CHNL_IDLE				BIT(2)
#define BIT_CHNL_INFO_RST				BIT(1)
#define BIT_ATM_AIRTIME_EN				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MU_TRX_DBG_CNT			(Offset 0x14D0) */


#define BIT_SHIFT_MU_DNGCNT				0
#define BIT_MASK_MU_DNGCNT				0xffff
#define BIT_MU_DNGCNT(x)				(((x) & BIT_MASK_MU_DNGCNT) << BIT_SHIFT_MU_DNGCNT)
#define BITS_MU_DNGCNT					(BIT_MASK_MU_DNGCNT << BIT_SHIFT_MU_DNGCNT)
#define BIT_CLEAR_MU_DNGCNT(x)				((x) & (~BITS_MU_DNGCNT))
#define BIT_GET_MU_DNGCNT(x)				(((x) >> BIT_SHIFT_MU_DNGCNT) & BIT_MASK_MU_DNGCNT)
#define BIT_SET_MU_DNGCNT(x, v)			(BIT_CLEAR_MU_DNGCNT(x) | BIT_MU_DNGCNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_CHNL_IDLE_TIME			(Offset 0x14D4) */


#define BIT_SHIFT_CHNL_IDLE_TIME			0
#define BIT_MASK_CHNL_IDLE_TIME			0xffffffffL
#define BIT_CHNL_IDLE_TIME(x)				(((x) & BIT_MASK_CHNL_IDLE_TIME) << BIT_SHIFT_CHNL_IDLE_TIME)
#define BITS_CHNL_IDLE_TIME				(BIT_MASK_CHNL_IDLE_TIME << BIT_SHIFT_CHNL_IDLE_TIME)
#define BIT_CLEAR_CHNL_IDLE_TIME(x)			((x) & (~BITS_CHNL_IDLE_TIME))
#define BIT_GET_CHNL_IDLE_TIME(x)			(((x) >> BIT_SHIFT_CHNL_IDLE_TIME) & BIT_MASK_CHNL_IDLE_TIME)
#define BIT_SET_CHNL_IDLE_TIME(x, v)			(BIT_CLEAR_CHNL_IDLE_TIME(x) | BIT_CHNL_IDLE_TIME(v))


/* 2 REG_CHNL_BUSY_TIME			(Offset 0x14D8) */


#define BIT_SHIFT_CHNL_BUSY_TIME			0
#define BIT_MASK_CHNL_BUSY_TIME			0xffffffffL
#define BIT_CHNL_BUSY_TIME(x)				(((x) & BIT_MASK_CHNL_BUSY_TIME) << BIT_SHIFT_CHNL_BUSY_TIME)
#define BITS_CHNL_BUSY_TIME				(BIT_MASK_CHNL_BUSY_TIME << BIT_SHIFT_CHNL_BUSY_TIME)
#define BIT_CLEAR_CHNL_BUSY_TIME(x)			((x) & (~BITS_CHNL_BUSY_TIME))
#define BIT_GET_CHNL_BUSY_TIME(x)			(((x) >> BIT_SHIFT_CHNL_BUSY_TIME) & BIT_MASK_CHNL_BUSY_TIME)
#define BIT_SET_CHNL_BUSY_TIME(x, v)			(BIT_CLEAR_CHNL_BUSY_TIME(x) | BIT_CHNL_BUSY_TIME(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_MU_TRX_DBG_CNT_V1			(Offset 0x14DC) */

#define BIT_FORCE_SND_STS_EN				BIT(31)

#define BIT_SHIFT_SND_STS_VALUE			24
#define BIT_MASK_SND_STS_VALUE				0x3f
#define BIT_SND_STS_VALUE(x)				(((x) & BIT_MASK_SND_STS_VALUE) << BIT_SHIFT_SND_STS_VALUE)
#define BITS_SND_STS_VALUE				(BIT_MASK_SND_STS_VALUE << BIT_SHIFT_SND_STS_VALUE)
#define BIT_CLEAR_SND_STS_VALUE(x)			((x) & (~BITS_SND_STS_VALUE))
#define BIT_GET_SND_STS_VALUE(x)			(((x) >> BIT_SHIFT_SND_STS_VALUE) & BIT_MASK_SND_STS_VALUE)
#define BIT_SET_SND_STS_VALUE(x, v)			(BIT_CLEAR_SND_STS_VALUE(x) | BIT_SND_STS_VALUE(v))


#define BIT_SHIFT_MU_DNGCNT_SEL			16
#define BIT_MASK_MU_DNGCNT_SEL				0xf
#define BIT_MU_DNGCNT_SEL(x)				(((x) & BIT_MASK_MU_DNGCNT_SEL) << BIT_SHIFT_MU_DNGCNT_SEL)
#define BITS_MU_DNGCNT_SEL				(BIT_MASK_MU_DNGCNT_SEL << BIT_SHIFT_MU_DNGCNT_SEL)
#define BIT_CLEAR_MU_DNGCNT_SEL(x)			((x) & (~BITS_MU_DNGCNT_SEL))
#define BIT_GET_MU_DNGCNT_SEL(x)			(((x) >> BIT_SHIFT_MU_DNGCNT_SEL) & BIT_MASK_MU_DNGCNT_SEL)
#define BIT_SET_MU_DNGCNT_SEL(x, v)			(BIT_CLEAR_MU_DNGCNT_SEL(x) | BIT_MU_DNGCNT_SEL(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_SWPS_CTRL				(Offset 0x14F4) */


#define BIT_SHIFT_SWPS_RPT_LENGTH			8
#define BIT_MASK_SWPS_RPT_LENGTH			0x7f
#define BIT_SWPS_RPT_LENGTH(x)				(((x) & BIT_MASK_SWPS_RPT_LENGTH) << BIT_SHIFT_SWPS_RPT_LENGTH)
#define BITS_SWPS_RPT_LENGTH				(BIT_MASK_SWPS_RPT_LENGTH << BIT_SHIFT_SWPS_RPT_LENGTH)
#define BIT_CLEAR_SWPS_RPT_LENGTH(x)			((x) & (~BITS_SWPS_RPT_LENGTH))
#define BIT_GET_SWPS_RPT_LENGTH(x)			(((x) >> BIT_SHIFT_SWPS_RPT_LENGTH) & BIT_MASK_SWPS_RPT_LENGTH)
#define BIT_SET_SWPS_RPT_LENGTH(x, v)			(BIT_CLEAR_SWPS_RPT_LENGTH(x) | BIT_SWPS_RPT_LENGTH(v))


#define BIT_SHIFT_MACID_SWPS_EN_SEL			2
#define BIT_MASK_MACID_SWPS_EN_SEL			0x3
#define BIT_MACID_SWPS_EN_SEL(x)			(((x) & BIT_MASK_MACID_SWPS_EN_SEL) << BIT_SHIFT_MACID_SWPS_EN_SEL)
#define BITS_MACID_SWPS_EN_SEL				(BIT_MASK_MACID_SWPS_EN_SEL << BIT_SHIFT_MACID_SWPS_EN_SEL)
#define BIT_CLEAR_MACID_SWPS_EN_SEL(x)			((x) & (~BITS_MACID_SWPS_EN_SEL))
#define BIT_GET_MACID_SWPS_EN_SEL(x)			(((x) >> BIT_SHIFT_MACID_SWPS_EN_SEL) & BIT_MASK_MACID_SWPS_EN_SEL)
#define BIT_SET_MACID_SWPS_EN_SEL(x, v)		(BIT_CLEAR_MACID_SWPS_EN_SEL(x) | BIT_MACID_SWPS_EN_SEL(v))

#define BIT_SWPS_MANUALL_POLLING			BIT(1)
#define BIT_SWPS_EN					BIT(0)

/* 2 REG_SWPS_PKT_TH				(Offset 0x14F6) */


#define BIT_SHIFT_SWPS_PKT_TH				0
#define BIT_MASK_SWPS_PKT_TH				0xffff
#define BIT_SWPS_PKT_TH(x)				(((x) & BIT_MASK_SWPS_PKT_TH) << BIT_SHIFT_SWPS_PKT_TH)
#define BITS_SWPS_PKT_TH				(BIT_MASK_SWPS_PKT_TH << BIT_SHIFT_SWPS_PKT_TH)
#define BIT_CLEAR_SWPS_PKT_TH(x)			((x) & (~BITS_SWPS_PKT_TH))
#define BIT_GET_SWPS_PKT_TH(x)				(((x) >> BIT_SHIFT_SWPS_PKT_TH) & BIT_MASK_SWPS_PKT_TH)
#define BIT_SET_SWPS_PKT_TH(x, v)			(BIT_CLEAR_SWPS_PKT_TH(x) | BIT_SWPS_PKT_TH(v))


/* 2 REG_SWPS_TIME_TH			(Offset 0x14F8) */


#define BIT_SHIFT_SWPS_PSTIME_TH			16
#define BIT_MASK_SWPS_PSTIME_TH			0xffff
#define BIT_SWPS_PSTIME_TH(x)				(((x) & BIT_MASK_SWPS_PSTIME_TH) << BIT_SHIFT_SWPS_PSTIME_TH)
#define BITS_SWPS_PSTIME_TH				(BIT_MASK_SWPS_PSTIME_TH << BIT_SHIFT_SWPS_PSTIME_TH)
#define BIT_CLEAR_SWPS_PSTIME_TH(x)			((x) & (~BITS_SWPS_PSTIME_TH))
#define BIT_GET_SWPS_PSTIME_TH(x)			(((x) >> BIT_SHIFT_SWPS_PSTIME_TH) & BIT_MASK_SWPS_PSTIME_TH)
#define BIT_SET_SWPS_PSTIME_TH(x, v)			(BIT_CLEAR_SWPS_PSTIME_TH(x) | BIT_SWPS_PSTIME_TH(v))


#define BIT_SHIFT_SWPS_TIME_TH				0
#define BIT_MASK_SWPS_TIME_TH				0xffff
#define BIT_SWPS_TIME_TH(x)				(((x) & BIT_MASK_SWPS_TIME_TH) << BIT_SHIFT_SWPS_TIME_TH)
#define BITS_SWPS_TIME_TH				(BIT_MASK_SWPS_TIME_TH << BIT_SHIFT_SWPS_TIME_TH)
#define BIT_CLEAR_SWPS_TIME_TH(x)			((x) & (~BITS_SWPS_TIME_TH))
#define BIT_GET_SWPS_TIME_TH(x)			(((x) >> BIT_SHIFT_SWPS_TIME_TH) & BIT_MASK_SWPS_TIME_TH)
#define BIT_SET_SWPS_TIME_TH(x, v)			(BIT_CLEAR_SWPS_TIME_TH(x) | BIT_SWPS_TIME_TH(v))


/* 2 REG_MACID_SWPS_EN			(Offset 0x14FC) */


#define BIT_SHIFT_MACID_SWPS_EN			0
#define BIT_MASK_MACID_SWPS_EN				0xffffffffL
#define BIT_MACID_SWPS_EN(x)				(((x) & BIT_MASK_MACID_SWPS_EN) << BIT_SHIFT_MACID_SWPS_EN)
#define BITS_MACID_SWPS_EN				(BIT_MASK_MACID_SWPS_EN << BIT_SHIFT_MACID_SWPS_EN)
#define BIT_CLEAR_MACID_SWPS_EN(x)			((x) & (~BITS_MACID_SWPS_EN))
#define BIT_GET_MACID_SWPS_EN(x)			(((x) >> BIT_SHIFT_MACID_SWPS_EN) & BIT_MASK_MACID_SWPS_EN)
#define BIT_SET_MACID_SWPS_EN(x, v)			(BIT_CLEAR_MACID_SWPS_EN(x) | BIT_MACID_SWPS_EN(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PORT_CTRL_SEL			(Offset 0x1500) */


#define BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1		4
#define BIT_MASK_BCN_TIMER_SEL_FWRD_V1			0x7
#define BIT_BCN_TIMER_SEL_FWRD_V1(x)			(((x) & BIT_MASK_BCN_TIMER_SEL_FWRD_V1) << BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1)
#define BITS_BCN_TIMER_SEL_FWRD_V1			(BIT_MASK_BCN_TIMER_SEL_FWRD_V1 << BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1)
#define BIT_CLEAR_BCN_TIMER_SEL_FWRD_V1(x)		((x) & (~BITS_BCN_TIMER_SEL_FWRD_V1))
#define BIT_GET_BCN_TIMER_SEL_FWRD_V1(x)		(((x) >> BIT_SHIFT_BCN_TIMER_SEL_FWRD_V1) & BIT_MASK_BCN_TIMER_SEL_FWRD_V1)
#define BIT_SET_BCN_TIMER_SEL_FWRD_V1(x, v)		(BIT_CLEAR_BCN_TIMER_SEL_FWRD_V1(x) | BIT_BCN_TIMER_SEL_FWRD_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPUMGQ_TX_TIMER			(Offset 0x1500) */


#define BIT_SHIFT_CPUMGQ_TX_TIMER_V1			0
#define BIT_MASK_CPUMGQ_TX_TIMER_V1			0xffffffffL
#define BIT_CPUMGQ_TX_TIMER_V1(x)			(((x) & BIT_MASK_CPUMGQ_TX_TIMER_V1) << BIT_SHIFT_CPUMGQ_TX_TIMER_V1)
#define BITS_CPUMGQ_TX_TIMER_V1			(BIT_MASK_CPUMGQ_TX_TIMER_V1 << BIT_SHIFT_CPUMGQ_TX_TIMER_V1)
#define BIT_CLEAR_CPUMGQ_TX_TIMER_V1(x)		((x) & (~BITS_CPUMGQ_TX_TIMER_V1))
#define BIT_GET_CPUMGQ_TX_TIMER_V1(x)			(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_V1) & BIT_MASK_CPUMGQ_TX_TIMER_V1)
#define BIT_SET_CPUMGQ_TX_TIMER_V1(x, v)		(BIT_CLEAR_CPUMGQ_TX_TIMER_V1(x) | BIT_CPUMGQ_TX_TIMER_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PORT_CTRL_SEL			(Offset 0x1500) */


#define BIT_SHIFT_PORT_CTRL_SEL			0
#define BIT_MASK_PORT_CTRL_SEL				0x7
#define BIT_PORT_CTRL_SEL(x)				(((x) & BIT_MASK_PORT_CTRL_SEL) << BIT_SHIFT_PORT_CTRL_SEL)
#define BITS_PORT_CTRL_SEL				(BIT_MASK_PORT_CTRL_SEL << BIT_SHIFT_PORT_CTRL_SEL)
#define BIT_CLEAR_PORT_CTRL_SEL(x)			((x) & (~BITS_PORT_CTRL_SEL))
#define BIT_GET_PORT_CTRL_SEL(x)			(((x) >> BIT_SHIFT_PORT_CTRL_SEL) & BIT_MASK_PORT_CTRL_SEL)
#define BIT_SET_PORT_CTRL_SEL(x, v)			(BIT_CLEAR_PORT_CTRL_SEL(x) | BIT_PORT_CTRL_SEL(v))


/* 2 REG_PORT_CTRL_CFG			(Offset 0x1501) */

#define BIT_BCNERR_CNT_EN_V1				BIT(11)
#define BIT_DIS_TRX_CAL_BCN_V1				BIT(10)
#define BIT_DIS_TX_CAL_TBTT_V1				BIT(9)
#define BIT_BCN_AGGRESSION_V1				BIT(8)
#define BIT_TSFTR_RST_V1				BIT(7)
#define BIT_EN_TXBCN_RPT_V1				BIT(5)
#define BIT_EN_PORT_FUNCTION				BIT(3)
#define BIT_EN_RXBCN_RPT				BIT(2)

/* 2 REG_TBTT_PROHIBIT_CFG			(Offset 0x1504) */

#define BIT_MASK_PROHIBIT				BIT(23)

#define BIT_SHIFT_TBTT_HOLD_TIME			8
#define BIT_MASK_TBTT_HOLD_TIME			0xfff
#define BIT_TBTT_HOLD_TIME(x)				(((x) & BIT_MASK_TBTT_HOLD_TIME) << BIT_SHIFT_TBTT_HOLD_TIME)
#define BITS_TBTT_HOLD_TIME				(BIT_MASK_TBTT_HOLD_TIME << BIT_SHIFT_TBTT_HOLD_TIME)
#define BIT_CLEAR_TBTT_HOLD_TIME(x)			((x) & (~BITS_TBTT_HOLD_TIME))
#define BIT_GET_TBTT_HOLD_TIME(x)			(((x) >> BIT_SHIFT_TBTT_HOLD_TIME) & BIT_MASK_TBTT_HOLD_TIME)
#define BIT_SET_TBTT_HOLD_TIME(x, v)			(BIT_CLEAR_TBTT_HOLD_TIME(x) | BIT_TBTT_HOLD_TIME(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PS_TIMER_A				(Offset 0x1504) */


#define BIT_SHIFT_PS_TIMER_A_V1			0
#define BIT_MASK_PS_TIMER_A_V1				0xffffffffL
#define BIT_PS_TIMER_A_V1(x)				(((x) & BIT_MASK_PS_TIMER_A_V1) << BIT_SHIFT_PS_TIMER_A_V1)
#define BITS_PS_TIMER_A_V1				(BIT_MASK_PS_TIMER_A_V1 << BIT_SHIFT_PS_TIMER_A_V1)
#define BIT_CLEAR_PS_TIMER_A_V1(x)			((x) & (~BITS_PS_TIMER_A_V1))
#define BIT_GET_PS_TIMER_A_V1(x)			(((x) >> BIT_SHIFT_PS_TIMER_A_V1) & BIT_MASK_PS_TIMER_A_V1)
#define BIT_SET_PS_TIMER_A_V1(x, v)			(BIT_CLEAR_PS_TIMER_A_V1(x) | BIT_PS_TIMER_A_V1(v))


/* 2 REG_PS_TIMER_B				(Offset 0x1508) */


#define BIT_SHIFT_PS_TIMER_B_V1			0
#define BIT_MASK_PS_TIMER_B_V1				0xffffffffL
#define BIT_PS_TIMER_B_V1(x)				(((x) & BIT_MASK_PS_TIMER_B_V1) << BIT_SHIFT_PS_TIMER_B_V1)
#define BITS_PS_TIMER_B_V1				(BIT_MASK_PS_TIMER_B_V1 << BIT_SHIFT_PS_TIMER_B_V1)
#define BIT_CLEAR_PS_TIMER_B_V1(x)			((x) & (~BITS_PS_TIMER_B_V1))
#define BIT_GET_PS_TIMER_B_V1(x)			(((x) >> BIT_SHIFT_PS_TIMER_B_V1) & BIT_MASK_PS_TIMER_B_V1)
#define BIT_SET_PS_TIMER_B_V1(x, v)			(BIT_CLEAR_PS_TIMER_B_V1(x) | BIT_PS_TIMER_B_V1(v))


/* 2 REG_PS_TIMER_C				(Offset 0x150C) */


#define BIT_SHIFT_PS_TIMER_C_V1			0
#define BIT_MASK_PS_TIMER_C_V1				0xffffffffL
#define BIT_PS_TIMER_C_V1(x)				(((x) & BIT_MASK_PS_TIMER_C_V1) << BIT_SHIFT_PS_TIMER_C_V1)
#define BITS_PS_TIMER_C_V1				(BIT_MASK_PS_TIMER_C_V1 << BIT_SHIFT_PS_TIMER_C_V1)
#define BIT_CLEAR_PS_TIMER_C_V1(x)			((x) & (~BITS_PS_TIMER_C_V1))
#define BIT_GET_PS_TIMER_C_V1(x)			(((x) >> BIT_SHIFT_PS_TIMER_C_V1) & BIT_MASK_PS_TIMER_C_V1)
#define BIT_SET_PS_TIMER_C_V1(x, v)			(BIT_CLEAR_PS_TIMER_C_V1(x) | BIT_PS_TIMER_C_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TSFTR_SYNC_OFFSET_CFG		(Offset 0x150C) */


#define BIT_SHIFT_TSFTR_SNC_OFFSET_V1			0
#define BIT_MASK_TSFTR_SNC_OFFSET_V1			0xffffff
#define BIT_TSFTR_SNC_OFFSET_V1(x)			(((x) & BIT_MASK_TSFTR_SNC_OFFSET_V1) << BIT_SHIFT_TSFTR_SNC_OFFSET_V1)
#define BITS_TSFTR_SNC_OFFSET_V1			(BIT_MASK_TSFTR_SNC_OFFSET_V1 << BIT_SHIFT_TSFTR_SNC_OFFSET_V1)
#define BIT_CLEAR_TSFTR_SNC_OFFSET_V1(x)		((x) & (~BITS_TSFTR_SNC_OFFSET_V1))
#define BIT_GET_TSFTR_SNC_OFFSET_V1(x)			(((x) >> BIT_SHIFT_TSFTR_SNC_OFFSET_V1) & BIT_MASK_TSFTR_SNC_OFFSET_V1)
#define BIT_SET_TSFTR_SNC_OFFSET_V1(x, v)		(BIT_CLEAR_TSFTR_SNC_OFFSET_V1(x) | BIT_TSFTR_SNC_OFFSET_V1(v))


/* 2 REG_TSFTR_SYNC_CTRL_CFG			(Offset 0x150F) */

#define BIT_SYNC_TSF_NOW_V1				BIT(5)
#define BIT_SYNC_TSF_ONCE				BIT(4)
#define BIT_SYNC_TSF_AUTO				BIT(3)

#define BIT_SHIFT_SYNC_PORT_SEL			0
#define BIT_MASK_SYNC_PORT_SEL				0x7
#define BIT_SYNC_PORT_SEL(x)				(((x) & BIT_MASK_SYNC_PORT_SEL) << BIT_SHIFT_SYNC_PORT_SEL)
#define BITS_SYNC_PORT_SEL				(BIT_MASK_SYNC_PORT_SEL << BIT_SHIFT_SYNC_PORT_SEL)
#define BIT_CLEAR_SYNC_PORT_SEL(x)			((x) & (~BITS_SYNC_PORT_SEL))
#define BIT_GET_SYNC_PORT_SEL(x)			(((x) >> BIT_SHIFT_SYNC_PORT_SEL) & BIT_MASK_SYNC_PORT_SEL)
#define BIT_SET_SYNC_PORT_SEL(x, v)			(BIT_CLEAR_SYNC_PORT_SEL(x) | BIT_SYNC_PORT_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PS_TIMER_ABC_CPUMGQ_TIMER_CRTL	(Offset 0x1510) */

#define BIT_CPUMGQ_TIMER_EN				BIT(31)
#define BIT_CPUMGQ_TX_EN				BIT(28)

#define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL			24
#define BIT_MASK_CPUMGQ_TIMER_TSF_SEL			0x7
#define BIT_CPUMGQ_TIMER_TSF_SEL(x)			(((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL) << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL)
#define BITS_CPUMGQ_TIMER_TSF_SEL			(BIT_MASK_CPUMGQ_TIMER_TSF_SEL << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL)
#define BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL(x)		((x) & (~BITS_CPUMGQ_TIMER_TSF_SEL))
#define BIT_GET_CPUMGQ_TIMER_TSF_SEL(x)		(((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL)
#define BIT_SET_CPUMGQ_TIMER_TSF_SEL(x, v)		(BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL(x) | BIT_CPUMGQ_TIMER_TSF_SEL(v))

#define BIT_PS_TIMER_C_EN				BIT(23)

#define BIT_SHIFT_PS_TIMER_C_TSF_SEL			16
#define BIT_MASK_PS_TIMER_C_TSF_SEL			0x7
#define BIT_PS_TIMER_C_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_C_TSF_SEL) << BIT_SHIFT_PS_TIMER_C_TSF_SEL)
#define BITS_PS_TIMER_C_TSF_SEL			(BIT_MASK_PS_TIMER_C_TSF_SEL << BIT_SHIFT_PS_TIMER_C_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_C_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_C_TSF_SEL))
#define BIT_GET_PS_TIMER_C_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_C_TSF_SEL) & BIT_MASK_PS_TIMER_C_TSF_SEL)
#define BIT_SET_PS_TIMER_C_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_C_TSF_SEL(x) | BIT_PS_TIMER_C_TSF_SEL(v))

#define BIT_PS_TIMER_B_EN				BIT(15)

#define BIT_SHIFT_PS_TIMER_B_TSF_SEL			8
#define BIT_MASK_PS_TIMER_B_TSF_SEL			0x7
#define BIT_PS_TIMER_B_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_B_TSF_SEL) << BIT_SHIFT_PS_TIMER_B_TSF_SEL)
#define BITS_PS_TIMER_B_TSF_SEL			(BIT_MASK_PS_TIMER_B_TSF_SEL << BIT_SHIFT_PS_TIMER_B_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_B_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_B_TSF_SEL))
#define BIT_GET_PS_TIMER_B_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_B_TSF_SEL) & BIT_MASK_PS_TIMER_B_TSF_SEL)
#define BIT_SET_PS_TIMER_B_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_B_TSF_SEL(x) | BIT_PS_TIMER_B_TSF_SEL(v))

#define BIT_PS_TIMER_A_EN				BIT(7)

#define BIT_SHIFT_PS_TIMER_A_TSF_SEL			0
#define BIT_MASK_PS_TIMER_A_TSF_SEL			0x7
#define BIT_PS_TIMER_A_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_A_TSF_SEL) << BIT_SHIFT_PS_TIMER_A_TSF_SEL)
#define BITS_PS_TIMER_A_TSF_SEL			(BIT_MASK_PS_TIMER_A_TSF_SEL << BIT_SHIFT_PS_TIMER_A_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_A_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_A_TSF_SEL))
#define BIT_GET_PS_TIMER_A_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_A_TSF_SEL) & BIT_MASK_PS_TIMER_A_TSF_SEL)
#define BIT_SET_PS_TIMER_A_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_A_TSF_SEL(x) | BIT_PS_TIMER_A_TSF_SEL(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_SPACE_CFG			(Offset 0x1510) */


#define BIT_SHIFT_BCN_SPACE				0
#define BIT_MASK_BCN_SPACE				0xffff
#define BIT_BCN_SPACE(x)				(((x) & BIT_MASK_BCN_SPACE) << BIT_SHIFT_BCN_SPACE)
#define BITS_BCN_SPACE					(BIT_MASK_BCN_SPACE << BIT_SHIFT_BCN_SPACE)
#define BIT_CLEAR_BCN_SPACE(x)				((x) & (~BITS_BCN_SPACE))
#define BIT_GET_BCN_SPACE(x)				(((x) >> BIT_SHIFT_BCN_SPACE) & BIT_MASK_BCN_SPACE)
#define BIT_SET_BCN_SPACE(x, v)			(BIT_CLEAR_BCN_SPACE(x) | BIT_BCN_SPACE(v))


/* 2 REG_EARLY_INT_ADJUST_CFG		(Offset 0x1512) */


#define BIT_SHIFT_EARLY_INT_ADJUST			0
#define BIT_MASK_EARLY_INT_ADJUST			0xffff
#define BIT_EARLY_INT_ADJUST(x)			(((x) & BIT_MASK_EARLY_INT_ADJUST) << BIT_SHIFT_EARLY_INT_ADJUST)
#define BITS_EARLY_INT_ADJUST				(BIT_MASK_EARLY_INT_ADJUST << BIT_SHIFT_EARLY_INT_ADJUST)
#define BIT_CLEAR_EARLY_INT_ADJUST(x)			((x) & (~BITS_EARLY_INT_ADJUST))
#define BIT_GET_EARLY_INT_ADJUST(x)			(((x) >> BIT_SHIFT_EARLY_INT_ADJUST) & BIT_MASK_EARLY_INT_ADJUST)
#define BIT_SET_EARLY_INT_ADJUST(x, v)			(BIT_CLEAR_EARLY_INT_ADJUST(x) | BIT_EARLY_INT_ADJUST(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_CPUMGQ_TX_TIMER_EARLY		(Offset 0x1514) */


#define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY		0
#define BIT_MASK_CPUMGQ_TX_TIMER_EARLY			0xff
#define BIT_CPUMGQ_TX_TIMER_EARLY(x)			(((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY) << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY)
#define BITS_CPUMGQ_TX_TIMER_EARLY			(BIT_MASK_CPUMGQ_TX_TIMER_EARLY << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY)
#define BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY(x)		((x) & (~BITS_CPUMGQ_TX_TIMER_EARLY))
#define BIT_GET_CPUMGQ_TX_TIMER_EARLY(x)		(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY)
#define BIT_SET_CPUMGQ_TX_TIMER_EARLY(x, v)		(BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY(x) | BIT_CPUMGQ_TX_TIMER_EARLY(v))


/* 2 REG_PS_TIMER_A_EARLY			(Offset 0x1515) */


#define BIT_SHIFT_PS_TIMER_A_EARLY			0
#define BIT_MASK_PS_TIMER_A_EARLY			0xff
#define BIT_PS_TIMER_A_EARLY(x)			(((x) & BIT_MASK_PS_TIMER_A_EARLY) << BIT_SHIFT_PS_TIMER_A_EARLY)
#define BITS_PS_TIMER_A_EARLY				(BIT_MASK_PS_TIMER_A_EARLY << BIT_SHIFT_PS_TIMER_A_EARLY)
#define BIT_CLEAR_PS_TIMER_A_EARLY(x)			((x) & (~BITS_PS_TIMER_A_EARLY))
#define BIT_GET_PS_TIMER_A_EARLY(x)			(((x) >> BIT_SHIFT_PS_TIMER_A_EARLY) & BIT_MASK_PS_TIMER_A_EARLY)
#define BIT_SET_PS_TIMER_A_EARLY(x, v)			(BIT_CLEAR_PS_TIMER_A_EARLY(x) | BIT_PS_TIMER_A_EARLY(v))


/* 2 REG_PS_TIMER_B_EARLY			(Offset 0x1516) */


#define BIT_SHIFT_PS_TIMER_B_EARLY			0
#define BIT_MASK_PS_TIMER_B_EARLY			0xff
#define BIT_PS_TIMER_B_EARLY(x)			(((x) & BIT_MASK_PS_TIMER_B_EARLY) << BIT_SHIFT_PS_TIMER_B_EARLY)
#define BITS_PS_TIMER_B_EARLY				(BIT_MASK_PS_TIMER_B_EARLY << BIT_SHIFT_PS_TIMER_B_EARLY)
#define BIT_CLEAR_PS_TIMER_B_EARLY(x)			((x) & (~BITS_PS_TIMER_B_EARLY))
#define BIT_GET_PS_TIMER_B_EARLY(x)			(((x) >> BIT_SHIFT_PS_TIMER_B_EARLY) & BIT_MASK_PS_TIMER_B_EARLY)
#define BIT_SET_PS_TIMER_B_EARLY(x, v)			(BIT_CLEAR_PS_TIMER_B_EARLY(x) | BIT_PS_TIMER_B_EARLY(v))


/* 2 REG_PS_TIMER_C_EARLY			(Offset 0x1517) */


#define BIT_SHIFT_PS_TIMER_C_EARLY			0
#define BIT_MASK_PS_TIMER_C_EARLY			0xff
#define BIT_PS_TIMER_C_EARLY(x)			(((x) & BIT_MASK_PS_TIMER_C_EARLY) << BIT_SHIFT_PS_TIMER_C_EARLY)
#define BITS_PS_TIMER_C_EARLY				(BIT_MASK_PS_TIMER_C_EARLY << BIT_SHIFT_PS_TIMER_C_EARLY)
#define BIT_CLEAR_PS_TIMER_C_EARLY(x)			((x) & (~BITS_PS_TIMER_C_EARLY))
#define BIT_GET_PS_TIMER_C_EARLY(x)			(((x) >> BIT_SHIFT_PS_TIMER_C_EARLY) & BIT_MASK_PS_TIMER_C_EARLY)
#define BIT_SET_PS_TIMER_C_EARLY(x, v)			(BIT_CLEAR_PS_TIMER_C_EARLY(x) | BIT_PS_TIMER_C_EARLY(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_CPUMGQ_PARAMETER			(Offset 0x1518) */

#define BIT_STOP_CPUMGQ				BIT(16)

#define BIT_SHIFT_CPUMGQ_PARAMETER			0
#define BIT_MASK_CPUMGQ_PARAMETER			0xffff
#define BIT_CPUMGQ_PARAMETER(x)			(((x) & BIT_MASK_CPUMGQ_PARAMETER) << BIT_SHIFT_CPUMGQ_PARAMETER)
#define BITS_CPUMGQ_PARAMETER				(BIT_MASK_CPUMGQ_PARAMETER << BIT_SHIFT_CPUMGQ_PARAMETER)
#define BIT_CLEAR_CPUMGQ_PARAMETER(x)			((x) & (~BITS_CPUMGQ_PARAMETER))
#define BIT_GET_CPUMGQ_PARAMETER(x)			(((x) >> BIT_SHIFT_CPUMGQ_PARAMETER) & BIT_MASK_CPUMGQ_PARAMETER)
#define BIT_SET_CPUMGQ_PARAMETER(x, v)			(BIT_CLEAR_CPUMGQ_PARAMETER(x) | BIT_CPUMGQ_PARAMETER(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_SW_TBTT_TSF_INFO			(Offset 0x151C) */


#define BIT_SHIFT_SW_TBTT_TSF_INFO			0
#define BIT_MASK_SW_TBTT_TSF_INFO			0xffffffffL
#define BIT_SW_TBTT_TSF_INFO(x)			(((x) & BIT_MASK_SW_TBTT_TSF_INFO) << BIT_SHIFT_SW_TBTT_TSF_INFO)
#define BITS_SW_TBTT_TSF_INFO				(BIT_MASK_SW_TBTT_TSF_INFO << BIT_SHIFT_SW_TBTT_TSF_INFO)
#define BIT_CLEAR_SW_TBTT_TSF_INFO(x)			((x) & (~BITS_SW_TBTT_TSF_INFO))
#define BIT_GET_SW_TBTT_TSF_INFO(x)			(((x) >> BIT_SHIFT_SW_TBTT_TSF_INFO) & BIT_MASK_SW_TBTT_TSF_INFO)
#define BIT_SET_SW_TBTT_TSF_INFO(x, v)			(BIT_CLEAR_SW_TBTT_TSF_INFO(x) | BIT_SW_TBTT_TSF_INFO(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TSF_SYN_CTRL0			(Offset 0x1520) */

#define BIT_TSF_SYNC_COMPARE_POLLING			BIT(7)
#define BIT_TSF_SYNC_POLLING				BIT(6)

#define BIT_SHIFT_TSF_SYNC_DUT				3
#define BIT_MASK_TSF_SYNC_DUT				0x7
#define BIT_TSF_SYNC_DUT(x)				(((x) & BIT_MASK_TSF_SYNC_DUT) << BIT_SHIFT_TSF_SYNC_DUT)
#define BITS_TSF_SYNC_DUT				(BIT_MASK_TSF_SYNC_DUT << BIT_SHIFT_TSF_SYNC_DUT)
#define BIT_CLEAR_TSF_SYNC_DUT(x)			((x) & (~BITS_TSF_SYNC_DUT))
#define BIT_GET_TSF_SYNC_DUT(x)			(((x) >> BIT_SHIFT_TSF_SYNC_DUT) & BIT_MASK_TSF_SYNC_DUT)
#define BIT_SET_TSF_SYNC_DUT(x, v)			(BIT_CLEAR_TSF_SYNC_DUT(x) | BIT_TSF_SYNC_DUT(v))


#define BIT_SHIFT_TSF_SYNC_SOURCE			0
#define BIT_MASK_TSF_SYNC_SOURCE			0x7
#define BIT_TSF_SYNC_SOURCE(x)				(((x) & BIT_MASK_TSF_SYNC_SOURCE) << BIT_SHIFT_TSF_SYNC_SOURCE)
#define BITS_TSF_SYNC_SOURCE				(BIT_MASK_TSF_SYNC_SOURCE << BIT_SHIFT_TSF_SYNC_SOURCE)
#define BIT_CLEAR_TSF_SYNC_SOURCE(x)			((x) & (~BITS_TSF_SYNC_SOURCE))
#define BIT_GET_TSF_SYNC_SOURCE(x)			(((x) >> BIT_SHIFT_TSF_SYNC_SOURCE) & BIT_MASK_TSF_SYNC_SOURCE)
#define BIT_SET_TSF_SYNC_SOURCE(x, v)			(BIT_CLEAR_TSF_SYNC_SOURCE(x) | BIT_TSF_SYNC_SOURCE(v))

#define BIT_TSF_SYNC_SIGNAL				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TSFTR_LOW				(Offset 0x1520) */


#define BIT_SHIFT_TSF_TIMER_LOW			0
#define BIT_MASK_TSF_TIMER_LOW				0xffffffffL
#define BIT_TSF_TIMER_LOW(x)				(((x) & BIT_MASK_TSF_TIMER_LOW) << BIT_SHIFT_TSF_TIMER_LOW)
#define BITS_TSF_TIMER_LOW				(BIT_MASK_TSF_TIMER_LOW << BIT_SHIFT_TSF_TIMER_LOW)
#define BIT_CLEAR_TSF_TIMER_LOW(x)			((x) & (~BITS_TSF_TIMER_LOW))
#define BIT_GET_TSF_TIMER_LOW(x)			(((x) >> BIT_SHIFT_TSF_TIMER_LOW) & BIT_MASK_TSF_TIMER_LOW)
#define BIT_SET_TSF_TIMER_LOW(x, v)			(BIT_CLEAR_TSF_TIMER_LOW(x) | BIT_TSF_TIMER_LOW(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TSF_SYN_OFFSET0			(Offset 0x1522) */


#define BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0		0
#define BIT_MASK_TSF_SYNC_INTERVAL_PORT0		0xffff
#define BIT_TSF_SYNC_INTERVAL_PORT0(x)			(((x) & BIT_MASK_TSF_SYNC_INTERVAL_PORT0) << BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0)
#define BITS_TSF_SYNC_INTERVAL_PORT0			(BIT_MASK_TSF_SYNC_INTERVAL_PORT0 << BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0)
#define BIT_CLEAR_TSF_SYNC_INTERVAL_PORT0(x)		((x) & (~BITS_TSF_SYNC_INTERVAL_PORT0))
#define BIT_GET_TSF_SYNC_INTERVAL_PORT0(x)		(((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_PORT0) & BIT_MASK_TSF_SYNC_INTERVAL_PORT0)
#define BIT_SET_TSF_SYNC_INTERVAL_PORT0(x, v)		(BIT_CLEAR_TSF_SYNC_INTERVAL_PORT0(x) | BIT_TSF_SYNC_INTERVAL_PORT0(v))


/* 2 REG_TSF_SYN_OFFSET1			(Offset 0x1524) */


#define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1		16
#define BIT_MASK_TSF_SYNC_INTERVAL_CLI1		0xffff
#define BIT_TSF_SYNC_INTERVAL_CLI1(x)			(((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI1) << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1)
#define BITS_TSF_SYNC_INTERVAL_CLI1			(BIT_MASK_TSF_SYNC_INTERVAL_CLI1 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1)
#define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI1(x)		((x) & (~BITS_TSF_SYNC_INTERVAL_CLI1))
#define BIT_GET_TSF_SYNC_INTERVAL_CLI1(x)		(((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI1) & BIT_MASK_TSF_SYNC_INTERVAL_CLI1)
#define BIT_SET_TSF_SYNC_INTERVAL_CLI1(x, v)		(BIT_CLEAR_TSF_SYNC_INTERVAL_CLI1(x) | BIT_TSF_SYNC_INTERVAL_CLI1(v))


#define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0		0
#define BIT_MASK_TSF_SYNC_INTERVAL_CLI0		0xffff
#define BIT_TSF_SYNC_INTERVAL_CLI0(x)			(((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI0) << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0)
#define BITS_TSF_SYNC_INTERVAL_CLI0			(BIT_MASK_TSF_SYNC_INTERVAL_CLI0 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0)
#define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI0(x)		((x) & (~BITS_TSF_SYNC_INTERVAL_CLI0))
#define BIT_GET_TSF_SYNC_INTERVAL_CLI0(x)		(((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI0) & BIT_MASK_TSF_SYNC_INTERVAL_CLI0)
#define BIT_SET_TSF_SYNC_INTERVAL_CLI0(x, v)		(BIT_CLEAR_TSF_SYNC_INTERVAL_CLI0(x) | BIT_TSF_SYNC_INTERVAL_CLI0(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_TSFTR_HIGH				(Offset 0x1524) */


#define BIT_SHIFT_TSF_TIMER_HIGH			0
#define BIT_MASK_TSF_TIMER_HIGH			0xffffffffL
#define BIT_TSF_TIMER_HIGH(x)				(((x) & BIT_MASK_TSF_TIMER_HIGH) << BIT_SHIFT_TSF_TIMER_HIGH)
#define BITS_TSF_TIMER_HIGH				(BIT_MASK_TSF_TIMER_HIGH << BIT_SHIFT_TSF_TIMER_HIGH)
#define BIT_CLEAR_TSF_TIMER_HIGH(x)			((x) & (~BITS_TSF_TIMER_HIGH))
#define BIT_GET_TSF_TIMER_HIGH(x)			(((x) >> BIT_SHIFT_TSF_TIMER_HIGH) & BIT_MASK_TSF_TIMER_HIGH)
#define BIT_SET_TSF_TIMER_HIGH(x, v)			(BIT_CLEAR_TSF_TIMER_HIGH(x) | BIT_TSF_TIMER_HIGH(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_TSF_SYN_OFFSET2			(Offset 0x1528) */


#define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3		16
#define BIT_MASK_TSF_SYNC_INTERVAL_CLI3		0xffff
#define BIT_TSF_SYNC_INTERVAL_CLI3(x)			(((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI3) << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3)
#define BITS_TSF_SYNC_INTERVAL_CLI3			(BIT_MASK_TSF_SYNC_INTERVAL_CLI3 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3)
#define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI3(x)		((x) & (~BITS_TSF_SYNC_INTERVAL_CLI3))
#define BIT_GET_TSF_SYNC_INTERVAL_CLI3(x)		(((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI3) & BIT_MASK_TSF_SYNC_INTERVAL_CLI3)
#define BIT_SET_TSF_SYNC_INTERVAL_CLI3(x, v)		(BIT_CLEAR_TSF_SYNC_INTERVAL_CLI3(x) | BIT_TSF_SYNC_INTERVAL_CLI3(v))


#define BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2		0
#define BIT_MASK_TSF_SYNC_INTERVAL_CLI2		0xffff
#define BIT_TSF_SYNC_INTERVAL_CLI2(x)			(((x) & BIT_MASK_TSF_SYNC_INTERVAL_CLI2) << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2)
#define BITS_TSF_SYNC_INTERVAL_CLI2			(BIT_MASK_TSF_SYNC_INTERVAL_CLI2 << BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2)
#define BIT_CLEAR_TSF_SYNC_INTERVAL_CLI2(x)		((x) & (~BITS_TSF_SYNC_INTERVAL_CLI2))
#define BIT_GET_TSF_SYNC_INTERVAL_CLI2(x)		(((x) >> BIT_SHIFT_TSF_SYNC_INTERVAL_CLI2) & BIT_MASK_TSF_SYNC_INTERVAL_CLI2)
#define BIT_SET_TSF_SYNC_INTERVAL_CLI2(x, v)		(BIT_CLEAR_TSF_SYNC_INTERVAL_CLI2(x) | BIT_TSF_SYNC_INTERVAL_CLI2(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BCN_ERR_CNT_MAC			(Offset 0x1528) */


#define BIT_SHIFT_BCN_ERR_CNT_MAC			0
#define BIT_MASK_BCN_ERR_CNT_MAC			0xff
#define BIT_BCN_ERR_CNT_MAC(x)				(((x) & BIT_MASK_BCN_ERR_CNT_MAC) << BIT_SHIFT_BCN_ERR_CNT_MAC)
#define BITS_BCN_ERR_CNT_MAC				(BIT_MASK_BCN_ERR_CNT_MAC << BIT_SHIFT_BCN_ERR_CNT_MAC)
#define BIT_CLEAR_BCN_ERR_CNT_MAC(x)			((x) & (~BITS_BCN_ERR_CNT_MAC))
#define BIT_GET_BCN_ERR_CNT_MAC(x)			(((x) >> BIT_SHIFT_BCN_ERR_CNT_MAC) & BIT_MASK_BCN_ERR_CNT_MAC)
#define BIT_SET_BCN_ERR_CNT_MAC(x, v)			(BIT_CLEAR_BCN_ERR_CNT_MAC(x) | BIT_BCN_ERR_CNT_MAC(v))


/* 2 REG_BCN_ERR_CNT_EDCCA			(Offset 0x1529) */


#define BIT_SHIFT_BCN_ERR_CNT_EDCCA			0
#define BIT_MASK_BCN_ERR_CNT_EDCCA			0xff
#define BIT_BCN_ERR_CNT_EDCCA(x)			(((x) & BIT_MASK_BCN_ERR_CNT_EDCCA) << BIT_SHIFT_BCN_ERR_CNT_EDCCA)
#define BITS_BCN_ERR_CNT_EDCCA				(BIT_MASK_BCN_ERR_CNT_EDCCA << BIT_SHIFT_BCN_ERR_CNT_EDCCA)
#define BIT_CLEAR_BCN_ERR_CNT_EDCCA(x)			((x) & (~BITS_BCN_ERR_CNT_EDCCA))
#define BIT_GET_BCN_ERR_CNT_EDCCA(x)			(((x) >> BIT_SHIFT_BCN_ERR_CNT_EDCCA) & BIT_MASK_BCN_ERR_CNT_EDCCA)
#define BIT_SET_BCN_ERR_CNT_EDCCA(x, v)		(BIT_CLEAR_BCN_ERR_CNT_EDCCA(x) | BIT_BCN_ERR_CNT_EDCCA(v))


/* 2 REG_BCN_ERR_CNT_CCA			(Offset 0x152A) */


#define BIT_SHIFT_BCN_ERR_CNT_CCA			0
#define BIT_MASK_BCN_ERR_CNT_CCA			0xff
#define BIT_BCN_ERR_CNT_CCA(x)				(((x) & BIT_MASK_BCN_ERR_CNT_CCA) << BIT_SHIFT_BCN_ERR_CNT_CCA)
#define BITS_BCN_ERR_CNT_CCA				(BIT_MASK_BCN_ERR_CNT_CCA << BIT_SHIFT_BCN_ERR_CNT_CCA)
#define BIT_CLEAR_BCN_ERR_CNT_CCA(x)			((x) & (~BITS_BCN_ERR_CNT_CCA))
#define BIT_GET_BCN_ERR_CNT_CCA(x)			(((x) >> BIT_SHIFT_BCN_ERR_CNT_CCA) & BIT_MASK_BCN_ERR_CNT_CCA)
#define BIT_SET_BCN_ERR_CNT_CCA(x, v)			(BIT_CLEAR_BCN_ERR_CNT_CCA(x) | BIT_BCN_ERR_CNT_CCA(v))


/* 2 REG_BCN_ERR_CNT_INVALID			(Offset 0x152B) */


#define BIT_SHIFT_BCN_ERR_CNT_INVALID			0
#define BIT_MASK_BCN_ERR_CNT_INVALID			0xff
#define BIT_BCN_ERR_CNT_INVALID(x)			(((x) & BIT_MASK_BCN_ERR_CNT_INVALID) << BIT_SHIFT_BCN_ERR_CNT_INVALID)
#define BITS_BCN_ERR_CNT_INVALID			(BIT_MASK_BCN_ERR_CNT_INVALID << BIT_SHIFT_BCN_ERR_CNT_INVALID)
#define BIT_CLEAR_BCN_ERR_CNT_INVALID(x)		((x) & (~BITS_BCN_ERR_CNT_INVALID))
#define BIT_GET_BCN_ERR_CNT_INVALID(x)			(((x) >> BIT_SHIFT_BCN_ERR_CNT_INVALID) & BIT_MASK_BCN_ERR_CNT_INVALID)
#define BIT_SET_BCN_ERR_CNT_INVALID(x, v)		(BIT_CLEAR_BCN_ERR_CNT_INVALID(x) | BIT_BCN_ERR_CNT_INVALID(v))


/* 2 REG_BCN_ERR_CNT_OTHERS			(Offset 0x152C) */


#define BIT_SHIFT_BCN_ERR_CNT_OTHERS			0
#define BIT_MASK_BCN_ERR_CNT_OTHERS			0xff
#define BIT_BCN_ERR_CNT_OTHERS(x)			(((x) & BIT_MASK_BCN_ERR_CNT_OTHERS) << BIT_SHIFT_BCN_ERR_CNT_OTHERS)
#define BITS_BCN_ERR_CNT_OTHERS			(BIT_MASK_BCN_ERR_CNT_OTHERS << BIT_SHIFT_BCN_ERR_CNT_OTHERS)
#define BIT_CLEAR_BCN_ERR_CNT_OTHERS(x)		((x) & (~BITS_BCN_ERR_CNT_OTHERS))
#define BIT_GET_BCN_ERR_CNT_OTHERS(x)			(((x) >> BIT_SHIFT_BCN_ERR_CNT_OTHERS) & BIT_MASK_BCN_ERR_CNT_OTHERS)
#define BIT_SET_BCN_ERR_CNT_OTHERS(x, v)		(BIT_CLEAR_BCN_ERR_CNT_OTHERS(x) | BIT_BCN_ERR_CNT_OTHERS(v))


/* 2 REG_RX_BCN_TIMER			(Offset 0x152D) */


#define BIT_SHIFT_RX_BCN_TIMER				0
#define BIT_MASK_RX_BCN_TIMER				0xffff
#define BIT_RX_BCN_TIMER(x)				(((x) & BIT_MASK_RX_BCN_TIMER) << BIT_SHIFT_RX_BCN_TIMER)
#define BITS_RX_BCN_TIMER				(BIT_MASK_RX_BCN_TIMER << BIT_SHIFT_RX_BCN_TIMER)
#define BIT_CLEAR_RX_BCN_TIMER(x)			((x) & (~BITS_RX_BCN_TIMER))
#define BIT_GET_RX_BCN_TIMER(x)			(((x) >> BIT_SHIFT_RX_BCN_TIMER) & BIT_MASK_RX_BCN_TIMER)
#define BIT_SET_RX_BCN_TIMER(x, v)			(BIT_CLEAR_RX_BCN_TIMER(x) | BIT_RX_BCN_TIMER(v))


/* 2 REG_SUB_BCN_SPACE			(Offset 0x1534) */


#define BIT_SHIFT_SUB_BCN_SPACE_V2			0
#define BIT_MASK_SUB_BCN_SPACE_V2			0xff
#define BIT_SUB_BCN_SPACE_V2(x)			(((x) & BIT_MASK_SUB_BCN_SPACE_V2) << BIT_SHIFT_SUB_BCN_SPACE_V2)
#define BITS_SUB_BCN_SPACE_V2				(BIT_MASK_SUB_BCN_SPACE_V2 << BIT_SHIFT_SUB_BCN_SPACE_V2)
#define BIT_CLEAR_SUB_BCN_SPACE_V2(x)			((x) & (~BITS_SUB_BCN_SPACE_V2))
#define BIT_GET_SUB_BCN_SPACE_V2(x)			(((x) >> BIT_SHIFT_SUB_BCN_SPACE_V2) & BIT_MASK_SUB_BCN_SPACE_V2)
#define BIT_SET_SUB_BCN_SPACE_V2(x, v)			(BIT_CLEAR_SUB_BCN_SPACE_V2(x) | BIT_SUB_BCN_SPACE_V2(v))


/* 2 REG_MBID_NUM_V1				(Offset 0x1535) */


#define BIT_SHIFT_BCN_ERR_PORT_SEL			4
#define BIT_MASK_BCN_ERR_PORT_SEL			0xf
#define BIT_BCN_ERR_PORT_SEL(x)			(((x) & BIT_MASK_BCN_ERR_PORT_SEL) << BIT_SHIFT_BCN_ERR_PORT_SEL)
#define BITS_BCN_ERR_PORT_SEL				(BIT_MASK_BCN_ERR_PORT_SEL << BIT_SHIFT_BCN_ERR_PORT_SEL)
#define BIT_CLEAR_BCN_ERR_PORT_SEL(x)			((x) & (~BITS_BCN_ERR_PORT_SEL))
#define BIT_GET_BCN_ERR_PORT_SEL(x)			(((x) >> BIT_SHIFT_BCN_ERR_PORT_SEL) & BIT_MASK_BCN_ERR_PORT_SEL)
#define BIT_SET_BCN_ERR_PORT_SEL(x, v)			(BIT_CLEAR_BCN_ERR_PORT_SEL(x) | BIT_BCN_ERR_PORT_SEL(v))


#define BIT_SHIFT_MBID_BCN_NUM_V1			0
#define BIT_MASK_MBID_BCN_NUM_V1			0xf
#define BIT_MBID_BCN_NUM_V1(x)				(((x) & BIT_MASK_MBID_BCN_NUM_V1) << BIT_SHIFT_MBID_BCN_NUM_V1)
#define BITS_MBID_BCN_NUM_V1				(BIT_MASK_MBID_BCN_NUM_V1 << BIT_SHIFT_MBID_BCN_NUM_V1)
#define BIT_CLEAR_MBID_BCN_NUM_V1(x)			((x) & (~BITS_MBID_BCN_NUM_V1))
#define BIT_GET_MBID_BCN_NUM_V1(x)			(((x) >> BIT_SHIFT_MBID_BCN_NUM_V1) & BIT_MASK_MBID_BCN_NUM_V1)
#define BIT_SET_MBID_BCN_NUM_V1(x, v)			(BIT_CLEAR_MBID_BCN_NUM_V1(x) | BIT_MBID_BCN_NUM_V1(v))


/* 2 REG_MBSSID_CTRL_V1			(Offset 0x1536) */

#define BIT_MBID_BCNQ15_EN				BIT(15)
#define BIT_MBID_BCNQ14_EN				BIT(14)
#define BIT_MBID_BCNQ13_EN				BIT(13)
#define BIT_MBID_BCNQ12_EN				BIT(12)
#define BIT_MBID_BCNQ11_EN				BIT(11)
#define BIT_MBID_BCNQ10_EN				BIT(10)
#define BIT_MBID_BCNQ9_EN				BIT(9)
#define BIT_MBID_BCNQ8_EN				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_USTIME_TSF_V1			(Offset 0x1538) */


#define BIT_SHIFT_USTIME_TSF_V1			0
#define BIT_MASK_USTIME_TSF_V1				0xff
#define BIT_USTIME_TSF_V1(x)				(((x) & BIT_MASK_USTIME_TSF_V1) << BIT_SHIFT_USTIME_TSF_V1)
#define BITS_USTIME_TSF_V1				(BIT_MASK_USTIME_TSF_V1 << BIT_SHIFT_USTIME_TSF_V1)
#define BIT_CLEAR_USTIME_TSF_V1(x)			((x) & (~BITS_USTIME_TSF_V1))
#define BIT_GET_USTIME_TSF_V1(x)			(((x) >> BIT_SHIFT_USTIME_TSF_V1) & BIT_MASK_USTIME_TSF_V1)
#define BIT_SET_USTIME_TSF_V1(x, v)			(BIT_CLEAR_USTIME_TSF_V1(x) | BIT_USTIME_TSF_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_BW_CFG				(Offset 0x1539) */

#define BIT_SLEEP_32K_EN				BIT(3)
#define BIT_DIS_MARK_TSF_US_V1				BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_BW_CFG				(Offset 0x1539) */


#define BIT_SHIFT_BW_CFG				0
#define BIT_MASK_BW_CFG				0x3
#define BIT_BW_CFG(x)					(((x) & BIT_MASK_BW_CFG) << BIT_SHIFT_BW_CFG)
#define BITS_BW_CFG					(BIT_MASK_BW_CFG << BIT_SHIFT_BW_CFG)
#define BIT_CLEAR_BW_CFG(x)				((x) & (~BITS_BW_CFG))
#define BIT_GET_BW_CFG(x)				(((x) >> BIT_SHIFT_BW_CFG) & BIT_MASK_BW_CFG)
#define BIT_SET_BW_CFG(x, v)				(BIT_CLEAR_BW_CFG(x) | BIT_BW_CFG(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_ATIMWND_CFG				(Offset 0x153A) */


#define BIT_SHIFT_ATIMWND_V1				0
#define BIT_MASK_ATIMWND_V1				0xff
#define BIT_ATIMWND_V1(x)				(((x) & BIT_MASK_ATIMWND_V1) << BIT_SHIFT_ATIMWND_V1)
#define BITS_ATIMWND_V1				(BIT_MASK_ATIMWND_V1 << BIT_SHIFT_ATIMWND_V1)
#define BIT_CLEAR_ATIMWND_V1(x)			((x) & (~BITS_ATIMWND_V1))
#define BIT_GET_ATIMWND_V1(x)				(((x) >> BIT_SHIFT_ATIMWND_V1) & BIT_MASK_ATIMWND_V1)
#define BIT_SET_ATIMWND_V1(x, v)			(BIT_CLEAR_ATIMWND_V1(x) | BIT_ATIMWND_V1(v))


/* 2 REG_DTIM_COUNTER_CFG			(Offset 0x153B) */


#define BIT_SHIFT_DTIM_COUNT				0
#define BIT_MASK_DTIM_COUNT				0xff
#define BIT_DTIM_COUNT(x)				(((x) & BIT_MASK_DTIM_COUNT) << BIT_SHIFT_DTIM_COUNT)
#define BITS_DTIM_COUNT				(BIT_MASK_DTIM_COUNT << BIT_SHIFT_DTIM_COUNT)
#define BIT_CLEAR_DTIM_COUNT(x)			((x) & (~BITS_DTIM_COUNT))
#define BIT_GET_DTIM_COUNT(x)				(((x) >> BIT_SHIFT_DTIM_COUNT) & BIT_MASK_DTIM_COUNT)
#define BIT_SET_DTIM_COUNT(x, v)			(BIT_CLEAR_DTIM_COUNT(x) | BIT_DTIM_COUNT(v))


/* 2 REG_ATIM_DTIM_CTRL_SEL			(Offset 0x153C) */

#define BIT_DTIM_BYPASS_V1				BIT(7)

#define BIT_SHIFT_ATIM_DTIM_SEL			0
#define BIT_MASK_ATIM_DTIM_SEL				0x1f
#define BIT_ATIM_DTIM_SEL(x)				(((x) & BIT_MASK_ATIM_DTIM_SEL) << BIT_SHIFT_ATIM_DTIM_SEL)
#define BITS_ATIM_DTIM_SEL				(BIT_MASK_ATIM_DTIM_SEL << BIT_SHIFT_ATIM_DTIM_SEL)
#define BIT_CLEAR_ATIM_DTIM_SEL(x)			((x) & (~BITS_ATIM_DTIM_SEL))
#define BIT_GET_ATIM_DTIM_SEL(x)			(((x) >> BIT_SHIFT_ATIM_DTIM_SEL) & BIT_MASK_ATIM_DTIM_SEL)
#define BIT_SET_ATIM_DTIM_SEL(x, v)			(BIT_CLEAR_ATIM_DTIM_SEL(x) | BIT_ATIM_DTIM_SEL(v))


#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_ATIMUGT_V1				(Offset 0x153D) */


#define BIT_SHIFT_ATIM_URGENT				0
#define BIT_MASK_ATIM_URGENT				0xff
#define BIT_ATIM_URGENT(x)				(((x) & BIT_MASK_ATIM_URGENT) << BIT_SHIFT_ATIM_URGENT)
#define BITS_ATIM_URGENT				(BIT_MASK_ATIM_URGENT << BIT_SHIFT_ATIM_URGENT)
#define BIT_CLEAR_ATIM_URGENT(x)			((x) & (~BITS_ATIM_URGENT))
#define BIT_GET_ATIM_URGENT(x)				(((x) >> BIT_SHIFT_ATIM_URGENT) & BIT_MASK_ATIM_URGENT)
#define BIT_SET_ATIM_URGENT(x, v)			(BIT_CLEAR_ATIM_URGENT(x) | BIT_ATIM_URGENT(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DIS_ATIM_V1				(Offset 0x1540) */

#define BIT_DIS_ATIM_P4				BIT(19)
#define BIT_DIS_ATIM_P3				BIT(18)
#define BIT_DIS_ATIM_P2				BIT(17)
#define BIT_DIS_ATIM_P1				BIT(16)
#define BIT_DIS_ATIM_VAP15				BIT(15)
#define BIT_DIS_ATIM_VAP14				BIT(14)
#define BIT_DIS_ATIM_VAP13				BIT(13)
#define BIT_DIS_ATIM_VAP12				BIT(12)
#define BIT_DIS_ATIM_VAP11				BIT(11)
#define BIT_DIS_ATIM_VAP10				BIT(10)
#define BIT_DIS_ATIM_VAP9				BIT(9)
#define BIT_DIS_ATIM_VAP8				BIT(8)
#define BIT_DIS_ATIM_ROOT_P0				BIT(0)

/* 2 REG_HIQ_NO_LMT_EN_V1			(Offset 0x1544) */

#define BIT_HIQ_NO_LMT_EN_P4				BIT(19)
#define BIT_HIQ_NO_LMT_EN_P3				BIT(18)
#define BIT_HIQ_NO_LMT_EN_P2				BIT(17)
#define BIT_HIQ_NO_LMT_EN_P1				BIT(16)

#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_HIQ_NO_LMT_EN_V1			(Offset 0x1544) */

#define BIT_HIQ_NO_LMT_EN_VAP15			BIT(15)
#define BIT_HIQ_NO_LMT_EN_VAP14			BIT(14)
#define BIT_HIQ_NO_LMT_EN_VAP13			BIT(13)
#define BIT_HIQ_NO_LMT_EN_VAP12			BIT(12)
#define BIT_HIQ_NO_LMT_EN_VAP11			BIT(11)
#define BIT_HIQ_NO_LMT_EN_VAP10			BIT(10)
#define BIT_HIQ_NO_LMT_EN_VAP9				BIT(9)
#define BIT_HIQ_NO_LMT_EN_VAP8				BIT(8)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_HIQ_NO_LMT_EN_V1			(Offset 0x1544) */

#define BIT_HIQ_NO_LMT_EN_VAP7				BIT(7)
#define BIT_HIQ_NO_LMT_EN_VAP6				BIT(6)
#define BIT_HIQ_NO_LMT_EN_VAP5				BIT(5)
#define BIT_HIQ_NO_LMT_EN_VAP4				BIT(4)
#define BIT_HIQ_NO_LMT_EN_VAP3				BIT(3)
#define BIT_HIQ_NO_LMT_EN_VAP2				BIT(2)
#define BIT_HIQ_NO_LMT_EN_VAP1				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_HIQ_NO_LMT_EN_V1			(Offset 0x1544) */

#define BIT_HIQ_NO_LMT_EN_ROOT_P0			BIT(0)

/* 2 REG_P2PPS_CTRL_V1			(Offset 0x1548) */

#define BIT_P2P_PWR_RST1_V2				BIT(15)
#define BIT_P2P_PWR_RST0_V2				BIT(14)
#define BIT_EN_TSFBIT32_RST_P2P_V1			BIT(13)

#define BIT_SHIFT_NOA_UNIT0_SEL_V1			8
#define BIT_MASK_NOA_UNIT0_SEL_V1			0x7
#define BIT_NOA_UNIT0_SEL_V1(x)			(((x) & BIT_MASK_NOA_UNIT0_SEL_V1) << BIT_SHIFT_NOA_UNIT0_SEL_V1)
#define BITS_NOA_UNIT0_SEL_V1				(BIT_MASK_NOA_UNIT0_SEL_V1 << BIT_SHIFT_NOA_UNIT0_SEL_V1)
#define BIT_CLEAR_NOA_UNIT0_SEL_V1(x)			((x) & (~BITS_NOA_UNIT0_SEL_V1))
#define BIT_GET_NOA_UNIT0_SEL_V1(x)			(((x) >> BIT_SHIFT_NOA_UNIT0_SEL_V1) & BIT_MASK_NOA_UNIT0_SEL_V1)
#define BIT_SET_NOA_UNIT0_SEL_V1(x, v)			(BIT_CLEAR_NOA_UNIT0_SEL_V1(x) | BIT_NOA_UNIT0_SEL_V1(v))

#define BIT_P2P_CTW_ALLSTASLEEP_V1			BIT(7)
#define BIT_P2P_OFF_DISTX_EN_V1			BIT(6)
#define BIT_PWR_MGT_EN_V1				BIT(5)
#define BIT_P2P_NOA1_EN_V1				BIT(2)
#define BIT_P2P_NOA0_EN_V1				BIT(1)

#endif


#if (HALMAC_8192E_SUPPORT || HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT || HALMAC_8881A_SUPPORT)


/* 2 REG_P2PPS_STATE_V1			(Offset 0x154B) */

#define BIT_POWER_STATE				BIT(7)
#define BIT_CTWINDOW_ON				BIT(6)
#define BIT_BEACON_AREA_ON				BIT(5)
#define BIT_CTWIN_EARLY_DISTX				BIT(4)
#define BIT_NOA1_OFF_PERIOD				BIT(3)
#define BIT_FORCE_DOZE1				BIT(2)
#define BIT_NOA0_OFF_PERIOD				BIT(1)
#define BIT_FORCE_DOZE0				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P2PPS1_CTRL_V1			(Offset 0x154C) */

#define BIT_P2P1_PWR_RST1_V2				BIT(15)
#define BIT_P2P1_PWR_RST0_V2				BIT(14)
#define BIT_EN_TSFBIT32_RST_P2P1_V1			BIT(13)

#define BIT_SHIFT_NOA_UNIT1_SEL_V1			8
#define BIT_MASK_NOA_UNIT1_SEL_V1			0x7
#define BIT_NOA_UNIT1_SEL_V1(x)			(((x) & BIT_MASK_NOA_UNIT1_SEL_V1) << BIT_SHIFT_NOA_UNIT1_SEL_V1)
#define BITS_NOA_UNIT1_SEL_V1				(BIT_MASK_NOA_UNIT1_SEL_V1 << BIT_SHIFT_NOA_UNIT1_SEL_V1)
#define BIT_CLEAR_NOA_UNIT1_SEL_V1(x)			((x) & (~BITS_NOA_UNIT1_SEL_V1))
#define BIT_GET_NOA_UNIT1_SEL_V1(x)			(((x) >> BIT_SHIFT_NOA_UNIT1_SEL_V1) & BIT_MASK_NOA_UNIT1_SEL_V1)
#define BIT_SET_NOA_UNIT1_SEL_V1(x, v)			(BIT_CLEAR_NOA_UNIT1_SEL_V1(x) | BIT_NOA_UNIT1_SEL_V1(v))

#define BIT_P2P1_CTW_ALLSTASLEEP_V1			BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_P2PPS1_CTRL_V1			(Offset 0x154C) */

#define BIT_P2P1_OFF_DISTX_EN				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P2PPS1_CTRL_V1			(Offset 0x154C) */

#define BIT_P2P1_PWR_MGT_EN_V1				BIT(5)
#define BIT_P2P1_NOA1_EN_V1				BIT(2)
#define BIT_P2P1_NOA0_EN_V1				BIT(1)

/* 2 REG_P2PPS1_SPEC_STATE_V1		(Offset 0x154E) */

#define BIT_P2P1_SPEC_POWER_STATEP			BIT(7)
#define BIT_P2P1_SPEC_BEACON_AREA_ON			BIT(5)

/* 2 REG_P2PPS2_CTRL_V1			(Offset 0x1550) */

#define BIT_P2P2_PWR_RST1_V2				BIT(15)
#define BIT_P2P2_PWR_RST0_V2				BIT(14)
#define BIT_EN_TSFBIT32_RST_P2P2_V1			BIT(13)

#define BIT_SHIFT_NOA_UNIT2_SEL_V1			8
#define BIT_MASK_NOA_UNIT2_SEL_V1			0x7
#define BIT_NOA_UNIT2_SEL_V1(x)			(((x) & BIT_MASK_NOA_UNIT2_SEL_V1) << BIT_SHIFT_NOA_UNIT2_SEL_V1)
#define BITS_NOA_UNIT2_SEL_V1				(BIT_MASK_NOA_UNIT2_SEL_V1 << BIT_SHIFT_NOA_UNIT2_SEL_V1)
#define BIT_CLEAR_NOA_UNIT2_SEL_V1(x)			((x) & (~BITS_NOA_UNIT2_SEL_V1))
#define BIT_GET_NOA_UNIT2_SEL_V1(x)			(((x) >> BIT_SHIFT_NOA_UNIT2_SEL_V1) & BIT_MASK_NOA_UNIT2_SEL_V1)
#define BIT_SET_NOA_UNIT2_SEL_V1(x, v)			(BIT_CLEAR_NOA_UNIT2_SEL_V1(x) | BIT_NOA_UNIT2_SEL_V1(v))

#define BIT_P2P2_CTW_ALLSTASLEEP_V1			BIT(7)
#define BIT_P2P2_OFF_DISTX_EN_V1			BIT(6)
#define BIT_P2P2_PWR_MGT_EN_V1				BIT(5)
#define BIT_P2P2_NOA1_EN_V1				BIT(2)
#define BIT_P2P2_NOA0_EN_V1				BIT(1)

/* 2 REG_P2PPS2_SPEC_STATE_V1		(Offset 0x1552) */

#define BIT_P2P2_SPEC_POWER_STATEP			BIT(7)
#define BIT_P2P2_SPEC_BEACON_AREA_ON			BIT(5)

/* 2 REG_CHG_POWER_BCN_AREA			(Offset 0x1556) */

#define BIT_CHG_POWER_BCN_AREA				BIT(0)

/* 2 REG_NOA_SEL				(Offset 0x1557) */


#define BIT_SHIFT_NOA_SEL_V1				0
#define BIT_MASK_NOA_SEL_V1				0x7
#define BIT_NOA_SEL_V1(x)				(((x) & BIT_MASK_NOA_SEL_V1) << BIT_SHIFT_NOA_SEL_V1)
#define BITS_NOA_SEL_V1				(BIT_MASK_NOA_SEL_V1 << BIT_SHIFT_NOA_SEL_V1)
#define BIT_CLEAR_NOA_SEL_V1(x)			((x) & (~BITS_NOA_SEL_V1))
#define BIT_GET_NOA_SEL_V1(x)				(((x) >> BIT_SHIFT_NOA_SEL_V1) & BIT_MASK_NOA_SEL_V1)
#define BIT_SET_NOA_SEL_V1(x, v)			(BIT_CLEAR_NOA_SEL_V1(x) | BIT_NOA_SEL_V1(v))


/* 2 REG_NOA_PARAM_3_V1			(Offset 0x1564) */


#define BIT_SHIFT_NOA_COUNT_V2				0
#define BIT_MASK_NOA_COUNT_V2				0xffffffffL
#define BIT_NOA_COUNT_V2(x)				(((x) & BIT_MASK_NOA_COUNT_V2) << BIT_SHIFT_NOA_COUNT_V2)
#define BITS_NOA_COUNT_V2				(BIT_MASK_NOA_COUNT_V2 << BIT_SHIFT_NOA_COUNT_V2)
#define BIT_CLEAR_NOA_COUNT_V2(x)			((x) & (~BITS_NOA_COUNT_V2))
#define BIT_GET_NOA_COUNT_V2(x)			(((x) >> BIT_SHIFT_NOA_COUNT_V2) & BIT_MASK_NOA_COUNT_V2)
#define BIT_SET_NOA_COUNT_V2(x, v)			(BIT_CLEAR_NOA_COUNT_V2(x) | BIT_NOA_COUNT_V2(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_NOA_ON_ERLY_TIME_V1			(Offset 0x1568) */


#define BIT_SHIFT__NOA_ON_ERLY_TIME			0
#define BIT_MASK__NOA_ON_ERLY_TIME			0xff
#define BIT__NOA_ON_ERLY_TIME(x)			(((x) & BIT_MASK__NOA_ON_ERLY_TIME) << BIT_SHIFT__NOA_ON_ERLY_TIME)
#define BITS__NOA_ON_ERLY_TIME				(BIT_MASK__NOA_ON_ERLY_TIME << BIT_SHIFT__NOA_ON_ERLY_TIME)
#define BIT_CLEAR__NOA_ON_ERLY_TIME(x)			((x) & (~BITS__NOA_ON_ERLY_TIME))
#define BIT_GET__NOA_ON_ERLY_TIME(x)			(((x) >> BIT_SHIFT__NOA_ON_ERLY_TIME) & BIT_MASK__NOA_ON_ERLY_TIME)
#define BIT_SET__NOA_ON_ERLY_TIME(x, v)		(BIT_CLEAR__NOA_ON_ERLY_TIME(x) | BIT__NOA_ON_ERLY_TIME(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_P2PPS_HW_AUTO_PAUSE_CTRL		(Offset 0x156C) */

#define BIT_P2PPS_NOA_STOP_TX_HANG			BIT(31)
#define BIT_P2PPS_MACID_PAUSE_EN			BIT(11)
#define BIT_P2PPS__MGQ_PAUSE				BIT(10)
#define BIT_P2PPS__HIQ_PAUSE				BIT(9)
#define BIT_P2PPS__BCNQ_PAUSE				BIT(8)

#define BIT_SHIFT_P2PPS_MACID_PAUSE			0
#define BIT_MASK_P2PPS_MACID_PAUSE			0xff
#define BIT_P2PPS_MACID_PAUSE(x)			(((x) & BIT_MASK_P2PPS_MACID_PAUSE) << BIT_SHIFT_P2PPS_MACID_PAUSE)
#define BITS_P2PPS_MACID_PAUSE				(BIT_MASK_P2PPS_MACID_PAUSE << BIT_SHIFT_P2PPS_MACID_PAUSE)
#define BIT_CLEAR_P2PPS_MACID_PAUSE(x)			((x) & (~BITS_P2PPS_MACID_PAUSE))
#define BIT_GET_P2PPS_MACID_PAUSE(x)			(((x) >> BIT_SHIFT_P2PPS_MACID_PAUSE) & BIT_MASK_P2PPS_MACID_PAUSE)
#define BIT_SET_P2PPS_MACID_PAUSE(x, v)		(BIT_CLEAR_P2PPS_MACID_PAUSE(x) | BIT_P2PPS_MACID_PAUSE(v))


/* 2 REG_P2PPS1_HW_AUTO_PAUSE_CTRL		(Offset 0x1570) */

#define BIT_P2PPS1_NOA_STOP_TX_HANG			BIT(31)
#define BIT_P2PPS1_MACID_PAUSE_EN			BIT(11)
#define BIT_P2PPS1__MGQ_PAUSE				BIT(10)
#define BIT_P2PPS1__HIQ_PAUSE				BIT(9)
#define BIT_P2PPS1__BCNQ_PAUSE				BIT(8)

#define BIT_SHIFT_P2PPS1_MACID_PAUSE			0
#define BIT_MASK_P2PPS1_MACID_PAUSE			0xff
#define BIT_P2PPS1_MACID_PAUSE(x)			(((x) & BIT_MASK_P2PPS1_MACID_PAUSE) << BIT_SHIFT_P2PPS1_MACID_PAUSE)
#define BITS_P2PPS1_MACID_PAUSE			(BIT_MASK_P2PPS1_MACID_PAUSE << BIT_SHIFT_P2PPS1_MACID_PAUSE)
#define BIT_CLEAR_P2PPS1_MACID_PAUSE(x)		((x) & (~BITS_P2PPS1_MACID_PAUSE))
#define BIT_GET_P2PPS1_MACID_PAUSE(x)			(((x) >> BIT_SHIFT_P2PPS1_MACID_PAUSE) & BIT_MASK_P2PPS1_MACID_PAUSE)
#define BIT_SET_P2PPS1_MACID_PAUSE(x, v)		(BIT_CLEAR_P2PPS1_MACID_PAUSE(x) | BIT_P2PPS1_MACID_PAUSE(v))


/* 2 REG_P2PPS2_HW_AUTO_PAUSE_CTRL		(Offset 0x1574) */

#define BIT_P2PPS2_NOA_STOP_TX_HANG			BIT(31)
#define BIT_P2PPS2_MACID_PAUSE_EN			BIT(11)
#define BIT_P2PPS2__MGQ_PAUSE				BIT(10)
#define BIT_P2PPS2__HIQ_PAUSE				BIT(9)
#define BIT_P2PPS2__BCNQ_PAUSE				BIT(8)

#define BIT_SHIFT_P2PPS2_MACID_PAUSE			0
#define BIT_MASK_P2PPS2_MACID_PAUSE			0xff
#define BIT_P2PPS2_MACID_PAUSE(x)			(((x) & BIT_MASK_P2PPS2_MACID_PAUSE) << BIT_SHIFT_P2PPS2_MACID_PAUSE)
#define BITS_P2PPS2_MACID_PAUSE			(BIT_MASK_P2PPS2_MACID_PAUSE << BIT_SHIFT_P2PPS2_MACID_PAUSE)
#define BIT_CLEAR_P2PPS2_MACID_PAUSE(x)		((x) & (~BITS_P2PPS2_MACID_PAUSE))
#define BIT_GET_P2PPS2_MACID_PAUSE(x)			(((x) >> BIT_SHIFT_P2PPS2_MACID_PAUSE) & BIT_MASK_P2PPS2_MACID_PAUSE)
#define BIT_SET_P2PPS2_MACID_PAUSE(x, v)		(BIT_CLEAR_P2PPS2_MACID_PAUSE(x) | BIT_P2PPS2_MACID_PAUSE(v))


/* 2 REG_RX_TBTT_SHIFT			(Offset 0x1578) */


#define BIT_SHIFT_RX_TBTT_SHIFT_SEL			24
#define BIT_MASK_RX_TBTT_SHIFT_SEL			0x7
#define BIT_RX_TBTT_SHIFT_SEL(x)			(((x) & BIT_MASK_RX_TBTT_SHIFT_SEL) << BIT_SHIFT_RX_TBTT_SHIFT_SEL)
#define BITS_RX_TBTT_SHIFT_SEL				(BIT_MASK_RX_TBTT_SHIFT_SEL << BIT_SHIFT_RX_TBTT_SHIFT_SEL)
#define BIT_CLEAR_RX_TBTT_SHIFT_SEL(x)			((x) & (~BITS_RX_TBTT_SHIFT_SEL))
#define BIT_GET_RX_TBTT_SHIFT_SEL(x)			(((x) >> BIT_SHIFT_RX_TBTT_SHIFT_SEL) & BIT_MASK_RX_TBTT_SHIFT_SEL)
#define BIT_SET_RX_TBTT_SHIFT_SEL(x, v)		(BIT_CLEAR_RX_TBTT_SHIFT_SEL(x) | BIT_RX_TBTT_SHIFT_SEL(v))

#define BIT_RX_TBTT_SHIFT_RW_FLAG			BIT(15)

#define BIT_SHIFT_RX_TBTT_SHIFT_OFFSET			0
#define BIT_MASK_RX_TBTT_SHIFT_OFFSET			0xfff
#define BIT_RX_TBTT_SHIFT_OFFSET(x)			(((x) & BIT_MASK_RX_TBTT_SHIFT_OFFSET) << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET)
#define BITS_RX_TBTT_SHIFT_OFFSET			(BIT_MASK_RX_TBTT_SHIFT_OFFSET << BIT_SHIFT_RX_TBTT_SHIFT_OFFSET)
#define BIT_CLEAR_RX_TBTT_SHIFT_OFFSET(x)		((x) & (~BITS_RX_TBTT_SHIFT_OFFSET))
#define BIT_GET_RX_TBTT_SHIFT_OFFSET(x)		(((x) >> BIT_SHIFT_RX_TBTT_SHIFT_OFFSET) & BIT_MASK_RX_TBTT_SHIFT_OFFSET)
#define BIT_SET_RX_TBTT_SHIFT_OFFSET(x, v)		(BIT_CLEAR_RX_TBTT_SHIFT_OFFSET(x) | BIT_RX_TBTT_SHIFT_OFFSET(v))


/* 2 REG_FREERUN_CNT_LOW			(Offset 0x1580) */


#define BIT_SHIFT_FREERUN_CNT_LOW			0
#define BIT_MASK_FREERUN_CNT_LOW			0xffffffffL
#define BIT_FREERUN_CNT_LOW(x)				(((x) & BIT_MASK_FREERUN_CNT_LOW) << BIT_SHIFT_FREERUN_CNT_LOW)
#define BITS_FREERUN_CNT_LOW				(BIT_MASK_FREERUN_CNT_LOW << BIT_SHIFT_FREERUN_CNT_LOW)
#define BIT_CLEAR_FREERUN_CNT_LOW(x)			((x) & (~BITS_FREERUN_CNT_LOW))
#define BIT_GET_FREERUN_CNT_LOW(x)			(((x) >> BIT_SHIFT_FREERUN_CNT_LOW) & BIT_MASK_FREERUN_CNT_LOW)
#define BIT_SET_FREERUN_CNT_LOW(x, v)			(BIT_CLEAR_FREERUN_CNT_LOW(x) | BIT_FREERUN_CNT_LOW(v))


/* 2 REG_FREERUN_CNT_HIGH			(Offset 0x1584) */


#define BIT_SHIFT_FREERUN_CNT_HIGH			0
#define BIT_MASK_FREERUN_CNT_HIGH			0xffffffffL
#define BIT_FREERUN_CNT_HIGH(x)			(((x) & BIT_MASK_FREERUN_CNT_HIGH) << BIT_SHIFT_FREERUN_CNT_HIGH)
#define BITS_FREERUN_CNT_HIGH				(BIT_MASK_FREERUN_CNT_HIGH << BIT_SHIFT_FREERUN_CNT_HIGH)
#define BIT_CLEAR_FREERUN_CNT_HIGH(x)			((x) & (~BITS_FREERUN_CNT_HIGH))
#define BIT_GET_FREERUN_CNT_HIGH(x)			(((x) >> BIT_SHIFT_FREERUN_CNT_HIGH) & BIT_MASK_FREERUN_CNT_HIGH)
#define BIT_SET_FREERUN_CNT_HIGH(x, v)			(BIT_CLEAR_FREERUN_CNT_HIGH(x) | BIT_FREERUN_CNT_HIGH(v))


/* 2 REG_PS_TIMER_0				(Offset 0x158C) */


#define BIT_SHIFT_PS_TIMER_0				0
#define BIT_MASK_PS_TIMER_0				0xffffffffL
#define BIT_PS_TIMER_0(x)				(((x) & BIT_MASK_PS_TIMER_0) << BIT_SHIFT_PS_TIMER_0)
#define BITS_PS_TIMER_0				(BIT_MASK_PS_TIMER_0 << BIT_SHIFT_PS_TIMER_0)
#define BIT_CLEAR_PS_TIMER_0(x)			((x) & (~BITS_PS_TIMER_0))
#define BIT_GET_PS_TIMER_0(x)				(((x) >> BIT_SHIFT_PS_TIMER_0) & BIT_MASK_PS_TIMER_0)
#define BIT_SET_PS_TIMER_0(x, v)			(BIT_CLEAR_PS_TIMER_0(x) | BIT_PS_TIMER_0(v))


/* 2 REG_PS_TIMER_1				(Offset 0x1590) */


#define BIT_SHIFT_PS_TIMER_1				0
#define BIT_MASK_PS_TIMER_1				0xffffffffL
#define BIT_PS_TIMER_1(x)				(((x) & BIT_MASK_PS_TIMER_1) << BIT_SHIFT_PS_TIMER_1)
#define BITS_PS_TIMER_1				(BIT_MASK_PS_TIMER_1 << BIT_SHIFT_PS_TIMER_1)
#define BIT_CLEAR_PS_TIMER_1(x)			((x) & (~BITS_PS_TIMER_1))
#define BIT_GET_PS_TIMER_1(x)				(((x) >> BIT_SHIFT_PS_TIMER_1) & BIT_MASK_PS_TIMER_1)
#define BIT_SET_PS_TIMER_1(x, v)			(BIT_CLEAR_PS_TIMER_1(x) | BIT_PS_TIMER_1(v))


/* 2 REG_PS_TIMER_2				(Offset 0x1594) */


#define BIT_SHIFT_PS_TIMER_2				0
#define BIT_MASK_PS_TIMER_2				0xffffffffL
#define BIT_PS_TIMER_2(x)				(((x) & BIT_MASK_PS_TIMER_2) << BIT_SHIFT_PS_TIMER_2)
#define BITS_PS_TIMER_2				(BIT_MASK_PS_TIMER_2 << BIT_SHIFT_PS_TIMER_2)
#define BIT_CLEAR_PS_TIMER_2(x)			((x) & (~BITS_PS_TIMER_2))
#define BIT_GET_PS_TIMER_2(x)				(((x) >> BIT_SHIFT_PS_TIMER_2) & BIT_MASK_PS_TIMER_2)
#define BIT_SET_PS_TIMER_2(x, v)			(BIT_CLEAR_PS_TIMER_2(x) | BIT_PS_TIMER_2(v))


/* 2 REG_PS_TIMER_3				(Offset 0x1598) */


#define BIT_SHIFT_PS_TIMER_3				0
#define BIT_MASK_PS_TIMER_3				0xffffffffL
#define BIT_PS_TIMER_3(x)				(((x) & BIT_MASK_PS_TIMER_3) << BIT_SHIFT_PS_TIMER_3)
#define BITS_PS_TIMER_3				(BIT_MASK_PS_TIMER_3 << BIT_SHIFT_PS_TIMER_3)
#define BIT_CLEAR_PS_TIMER_3(x)			((x) & (~BITS_PS_TIMER_3))
#define BIT_GET_PS_TIMER_3(x)				(((x) >> BIT_SHIFT_PS_TIMER_3) & BIT_MASK_PS_TIMER_3)
#define BIT_SET_PS_TIMER_3(x, v)			(BIT_CLEAR_PS_TIMER_3(x) | BIT_PS_TIMER_3(v))


/* 2 REG_PS_TIMER_4				(Offset 0x159C) */


#define BIT_SHIFT_PS_TIMER_4				0
#define BIT_MASK_PS_TIMER_4				0xffffffffL
#define BIT_PS_TIMER_4(x)				(((x) & BIT_MASK_PS_TIMER_4) << BIT_SHIFT_PS_TIMER_4)
#define BITS_PS_TIMER_4				(BIT_MASK_PS_TIMER_4 << BIT_SHIFT_PS_TIMER_4)
#define BIT_CLEAR_PS_TIMER_4(x)			((x) & (~BITS_PS_TIMER_4))
#define BIT_GET_PS_TIMER_4(x)				(((x) >> BIT_SHIFT_PS_TIMER_4) & BIT_MASK_PS_TIMER_4)
#define BIT_SET_PS_TIMER_4(x, v)			(BIT_CLEAR_PS_TIMER_4(x) | BIT_PS_TIMER_4(v))


/* 2 REG_PS_TIMER_5				(Offset 0x15A0) */


#define BIT_SHIFT_PS_TIMER_5				0
#define BIT_MASK_PS_TIMER_5				0xffffffffL
#define BIT_PS_TIMER_5(x)				(((x) & BIT_MASK_PS_TIMER_5) << BIT_SHIFT_PS_TIMER_5)
#define BITS_PS_TIMER_5				(BIT_MASK_PS_TIMER_5 << BIT_SHIFT_PS_TIMER_5)
#define BIT_CLEAR_PS_TIMER_5(x)			((x) & (~BITS_PS_TIMER_5))
#define BIT_GET_PS_TIMER_5(x)				(((x) >> BIT_SHIFT_PS_TIMER_5) & BIT_MASK_PS_TIMER_5)
#define BIT_SET_PS_TIMER_5(x, v)			(BIT_CLEAR_PS_TIMER_5(x) | BIT_PS_TIMER_5(v))


/* 2 REG_PS_TIMER_01_CTRL			(Offset 0x15A4) */


#define BIT_SHIFT_PS_TIMER_1_EARLY_TIME		24
#define BIT_MASK_PS_TIMER_1_EARLY_TIME			0xff
#define BIT_PS_TIMER_1_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_1_EARLY_TIME) << BIT_SHIFT_PS_TIMER_1_EARLY_TIME)
#define BITS_PS_TIMER_1_EARLY_TIME			(BIT_MASK_PS_TIMER_1_EARLY_TIME << BIT_SHIFT_PS_TIMER_1_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_1_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_1_EARLY_TIME))
#define BIT_GET_PS_TIMER_1_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_1_EARLY_TIME) & BIT_MASK_PS_TIMER_1_EARLY_TIME)
#define BIT_SET_PS_TIMER_1_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_1_EARLY_TIME(x) | BIT_PS_TIMER_1_EARLY_TIME(v))

#define BIT_PS_TIMER_1_EN				BIT(23)

#define BIT_SHIFT_PS_TIMER_1_TSF_SEL			16
#define BIT_MASK_PS_TIMER_1_TSF_SEL			0x7
#define BIT_PS_TIMER_1_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_1_TSF_SEL) << BIT_SHIFT_PS_TIMER_1_TSF_SEL)
#define BITS_PS_TIMER_1_TSF_SEL			(BIT_MASK_PS_TIMER_1_TSF_SEL << BIT_SHIFT_PS_TIMER_1_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_1_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_1_TSF_SEL))
#define BIT_GET_PS_TIMER_1_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_1_TSF_SEL) & BIT_MASK_PS_TIMER_1_TSF_SEL)
#define BIT_SET_PS_TIMER_1_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_1_TSF_SEL(x) | BIT_PS_TIMER_1_TSF_SEL(v))


#define BIT_SHIFT_PS_TIMER_0_EARLY_TIME		8
#define BIT_MASK_PS_TIMER_0_EARLY_TIME			0xff
#define BIT_PS_TIMER_0_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_0_EARLY_TIME) << BIT_SHIFT_PS_TIMER_0_EARLY_TIME)
#define BITS_PS_TIMER_0_EARLY_TIME			(BIT_MASK_PS_TIMER_0_EARLY_TIME << BIT_SHIFT_PS_TIMER_0_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_0_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_0_EARLY_TIME))
#define BIT_GET_PS_TIMER_0_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_0_EARLY_TIME) & BIT_MASK_PS_TIMER_0_EARLY_TIME)
#define BIT_SET_PS_TIMER_0_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_0_EARLY_TIME(x) | BIT_PS_TIMER_0_EARLY_TIME(v))

#define BIT_PS_TIMER_0_EN				BIT(7)

#define BIT_SHIFT_PS_TIMER_0_TSF_SEL			0
#define BIT_MASK_PS_TIMER_0_TSF_SEL			0x7
#define BIT_PS_TIMER_0_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_0_TSF_SEL) << BIT_SHIFT_PS_TIMER_0_TSF_SEL)
#define BITS_PS_TIMER_0_TSF_SEL			(BIT_MASK_PS_TIMER_0_TSF_SEL << BIT_SHIFT_PS_TIMER_0_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_0_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_0_TSF_SEL))
#define BIT_GET_PS_TIMER_0_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_0_TSF_SEL) & BIT_MASK_PS_TIMER_0_TSF_SEL)
#define BIT_SET_PS_TIMER_0_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_0_TSF_SEL(x) | BIT_PS_TIMER_0_TSF_SEL(v))


/* 2 REG_PS_TIMER_23_CTRL			(Offset 0x15A8) */


#define BIT_SHIFT_PS_TIMER_3_EARLY_TIME		24
#define BIT_MASK_PS_TIMER_3_EARLY_TIME			0xff
#define BIT_PS_TIMER_3_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_3_EARLY_TIME) << BIT_SHIFT_PS_TIMER_3_EARLY_TIME)
#define BITS_PS_TIMER_3_EARLY_TIME			(BIT_MASK_PS_TIMER_3_EARLY_TIME << BIT_SHIFT_PS_TIMER_3_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_3_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_3_EARLY_TIME))
#define BIT_GET_PS_TIMER_3_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_3_EARLY_TIME) & BIT_MASK_PS_TIMER_3_EARLY_TIME)
#define BIT_SET_PS_TIMER_3_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_3_EARLY_TIME(x) | BIT_PS_TIMER_3_EARLY_TIME(v))

#define BIT_PS_TIMER_3_EN				BIT(23)

#define BIT_SHIFT_PS_TIMER_3_TSF_SEL			16
#define BIT_MASK_PS_TIMER_3_TSF_SEL			0x7
#define BIT_PS_TIMER_3_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_3_TSF_SEL) << BIT_SHIFT_PS_TIMER_3_TSF_SEL)
#define BITS_PS_TIMER_3_TSF_SEL			(BIT_MASK_PS_TIMER_3_TSF_SEL << BIT_SHIFT_PS_TIMER_3_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_3_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_3_TSF_SEL))
#define BIT_GET_PS_TIMER_3_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_3_TSF_SEL) & BIT_MASK_PS_TIMER_3_TSF_SEL)
#define BIT_SET_PS_TIMER_3_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_3_TSF_SEL(x) | BIT_PS_TIMER_3_TSF_SEL(v))


#define BIT_SHIFT_PS_TIMER_2_EARLY_TIME		8
#define BIT_MASK_PS_TIMER_2_EARLY_TIME			0xff
#define BIT_PS_TIMER_2_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_2_EARLY_TIME) << BIT_SHIFT_PS_TIMER_2_EARLY_TIME)
#define BITS_PS_TIMER_2_EARLY_TIME			(BIT_MASK_PS_TIMER_2_EARLY_TIME << BIT_SHIFT_PS_TIMER_2_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_2_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_2_EARLY_TIME))
#define BIT_GET_PS_TIMER_2_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_2_EARLY_TIME) & BIT_MASK_PS_TIMER_2_EARLY_TIME)
#define BIT_SET_PS_TIMER_2_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_2_EARLY_TIME(x) | BIT_PS_TIMER_2_EARLY_TIME(v))

#define BIT_PS_TIMER_2_EN				BIT(7)

#define BIT_SHIFT_PS_TIMER_2_TSF_SEL			0
#define BIT_MASK_PS_TIMER_2_TSF_SEL			0x7
#define BIT_PS_TIMER_2_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_2_TSF_SEL) << BIT_SHIFT_PS_TIMER_2_TSF_SEL)
#define BITS_PS_TIMER_2_TSF_SEL			(BIT_MASK_PS_TIMER_2_TSF_SEL << BIT_SHIFT_PS_TIMER_2_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_2_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_2_TSF_SEL))
#define BIT_GET_PS_TIMER_2_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_2_TSF_SEL) & BIT_MASK_PS_TIMER_2_TSF_SEL)
#define BIT_SET_PS_TIMER_2_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_2_TSF_SEL(x) | BIT_PS_TIMER_2_TSF_SEL(v))


/* 2 REG_PS_TIMER_45_CTRL			(Offset 0x15AC) */


#define BIT_SHIFT_PS_TIMER_5_EARLY_TIME		24
#define BIT_MASK_PS_TIMER_5_EARLY_TIME			0xff
#define BIT_PS_TIMER_5_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_5_EARLY_TIME) << BIT_SHIFT_PS_TIMER_5_EARLY_TIME)
#define BITS_PS_TIMER_5_EARLY_TIME			(BIT_MASK_PS_TIMER_5_EARLY_TIME << BIT_SHIFT_PS_TIMER_5_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_5_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_5_EARLY_TIME))
#define BIT_GET_PS_TIMER_5_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_5_EARLY_TIME) & BIT_MASK_PS_TIMER_5_EARLY_TIME)
#define BIT_SET_PS_TIMER_5_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_5_EARLY_TIME(x) | BIT_PS_TIMER_5_EARLY_TIME(v))

#define BIT_PS_TIMER_5_EN				BIT(23)

#define BIT_SHIFT_PS_TIMER_5_TSF_SEL			16
#define BIT_MASK_PS_TIMER_5_TSF_SEL			0x7
#define BIT_PS_TIMER_5_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_5_TSF_SEL) << BIT_SHIFT_PS_TIMER_5_TSF_SEL)
#define BITS_PS_TIMER_5_TSF_SEL			(BIT_MASK_PS_TIMER_5_TSF_SEL << BIT_SHIFT_PS_TIMER_5_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_5_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_5_TSF_SEL))
#define BIT_GET_PS_TIMER_5_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_5_TSF_SEL) & BIT_MASK_PS_TIMER_5_TSF_SEL)
#define BIT_SET_PS_TIMER_5_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_5_TSF_SEL(x) | BIT_PS_TIMER_5_TSF_SEL(v))


#define BIT_SHIFT_PS_TIMER_4_EARLY_TIME		8
#define BIT_MASK_PS_TIMER_4_EARLY_TIME			0xff
#define BIT_PS_TIMER_4_EARLY_TIME(x)			(((x) & BIT_MASK_PS_TIMER_4_EARLY_TIME) << BIT_SHIFT_PS_TIMER_4_EARLY_TIME)
#define BITS_PS_TIMER_4_EARLY_TIME			(BIT_MASK_PS_TIMER_4_EARLY_TIME << BIT_SHIFT_PS_TIMER_4_EARLY_TIME)
#define BIT_CLEAR_PS_TIMER_4_EARLY_TIME(x)		((x) & (~BITS_PS_TIMER_4_EARLY_TIME))
#define BIT_GET_PS_TIMER_4_EARLY_TIME(x)		(((x) >> BIT_SHIFT_PS_TIMER_4_EARLY_TIME) & BIT_MASK_PS_TIMER_4_EARLY_TIME)
#define BIT_SET_PS_TIMER_4_EARLY_TIME(x, v)		(BIT_CLEAR_PS_TIMER_4_EARLY_TIME(x) | BIT_PS_TIMER_4_EARLY_TIME(v))

#define BIT_PS_TIMER_4_EN				BIT(7)

#define BIT_SHIFT_PS_TIMER_4_TSF_SEL			0
#define BIT_MASK_PS_TIMER_4_TSF_SEL			0x7
#define BIT_PS_TIMER_4_TSF_SEL(x)			(((x) & BIT_MASK_PS_TIMER_4_TSF_SEL) << BIT_SHIFT_PS_TIMER_4_TSF_SEL)
#define BITS_PS_TIMER_4_TSF_SEL			(BIT_MASK_PS_TIMER_4_TSF_SEL << BIT_SHIFT_PS_TIMER_4_TSF_SEL)
#define BIT_CLEAR_PS_TIMER_4_TSF_SEL(x)		((x) & (~BITS_PS_TIMER_4_TSF_SEL))
#define BIT_GET_PS_TIMER_4_TSF_SEL(x)			(((x) >> BIT_SHIFT_PS_TIMER_4_TSF_SEL) & BIT_MASK_PS_TIMER_4_TSF_SEL)
#define BIT_SET_PS_TIMER_4_TSF_SEL(x, v)		(BIT_CLEAR_PS_TIMER_4_TSF_SEL(x) | BIT_PS_TIMER_4_TSF_SEL(v))


/* 2 REG_CPUMGQ_FREERUN_TIMER_CTRL		(Offset 0x15B0) */

#define BIT_FREECNT_RST_V1				BIT(23)
#define BIT_EN_FREECNT_V1				BIT(16)

#define BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1		8
#define BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1		0xff
#define BIT_CPUMGQ_TX_TIMER_EARLY_V1(x)		(((x) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1) << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1)
#define BITS_CPUMGQ_TX_TIMER_EARLY_V1			(BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1 << BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1)
#define BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_V1(x)		((x) & (~BITS_CPUMGQ_TX_TIMER_EARLY_V1))
#define BIT_GET_CPUMGQ_TX_TIMER_EARLY_V1(x)		(((x) >> BIT_SHIFT_CPUMGQ_TX_TIMER_EARLY_V1) & BIT_MASK_CPUMGQ_TX_TIMER_EARLY_V1)
#define BIT_SET_CPUMGQ_TX_TIMER_EARLY_V1(x, v)	(BIT_CLEAR_CPUMGQ_TX_TIMER_EARLY_V1(x) | BIT_CPUMGQ_TX_TIMER_EARLY_V1(v))

#define BIT_CPUMGQ_TIMER_EN_V1				BIT(7)
#define BIT_CPUMGQ_DROP_BY_HOLDTIME			BIT(5)
#define BIT_CPUMGQ_TX_EN_V1				BIT(4)

#define BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1		0
#define BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1		0x7
#define BIT_CPUMGQ_TIMER_TSF_SEL_V1(x)			(((x) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1) << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1)
#define BITS_CPUMGQ_TIMER_TSF_SEL_V1			(BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1 << BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1)
#define BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_V1(x)		((x) & (~BITS_CPUMGQ_TIMER_TSF_SEL_V1))
#define BIT_GET_CPUMGQ_TIMER_TSF_SEL_V1(x)		(((x) >> BIT_SHIFT_CPUMGQ_TIMER_TSF_SEL_V1) & BIT_MASK_CPUMGQ_TIMER_TSF_SEL_V1)
#define BIT_SET_CPUMGQ_TIMER_TSF_SEL_V1(x, v)		(BIT_CLEAR_CPUMGQ_TIMER_TSF_SEL_V1(x) | BIT_CPUMGQ_TIMER_TSF_SEL_V1(v))


/* 2 REG_CPUMGQ_PROHIBIT			(Offset 0x15B4) */


#define BIT_SHIFT_CPUMGQ_HOLD_TIME			8
#define BIT_MASK_CPUMGQ_HOLD_TIME			0xfff
#define BIT_CPUMGQ_HOLD_TIME(x)			(((x) & BIT_MASK_CPUMGQ_HOLD_TIME) << BIT_SHIFT_CPUMGQ_HOLD_TIME)
#define BITS_CPUMGQ_HOLD_TIME				(BIT_MASK_CPUMGQ_HOLD_TIME << BIT_SHIFT_CPUMGQ_HOLD_TIME)
#define BIT_CLEAR_CPUMGQ_HOLD_TIME(x)			((x) & (~BITS_CPUMGQ_HOLD_TIME))
#define BIT_GET_CPUMGQ_HOLD_TIME(x)			(((x) >> BIT_SHIFT_CPUMGQ_HOLD_TIME) & BIT_MASK_CPUMGQ_HOLD_TIME)
#define BIT_SET_CPUMGQ_HOLD_TIME(x, v)			(BIT_CLEAR_CPUMGQ_HOLD_TIME(x) | BIT_CPUMGQ_HOLD_TIME(v))


#define BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP		0
#define BIT_MASK_CPUMGQ_PROHIBIT_SETUP			0xf
#define BIT_CPUMGQ_PROHIBIT_SETUP(x)			(((x) & BIT_MASK_CPUMGQ_PROHIBIT_SETUP) << BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP)
#define BITS_CPUMGQ_PROHIBIT_SETUP			(BIT_MASK_CPUMGQ_PROHIBIT_SETUP << BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP)
#define BIT_CLEAR_CPUMGQ_PROHIBIT_SETUP(x)		((x) & (~BITS_CPUMGQ_PROHIBIT_SETUP))
#define BIT_GET_CPUMGQ_PROHIBIT_SETUP(x)		(((x) >> BIT_SHIFT_CPUMGQ_PROHIBIT_SETUP) & BIT_MASK_CPUMGQ_PROHIBIT_SETUP)
#define BIT_SET_CPUMGQ_PROHIBIT_SETUP(x, v)		(BIT_CLEAR_CPUMGQ_PROHIBIT_SETUP(x) | BIT_CPUMGQ_PROHIBIT_SETUP(v))


/* 2 REG_TIMER_COMPARE			(Offset 0x15C0) */

#define BIT_COMP_TRIGGER				BIT(7)

#define BIT_SHIFT_Y_COMP				4
#define BIT_MASK_Y_COMP				0x7
#define BIT_Y_COMP(x)					(((x) & BIT_MASK_Y_COMP) << BIT_SHIFT_Y_COMP)
#define BITS_Y_COMP					(BIT_MASK_Y_COMP << BIT_SHIFT_Y_COMP)
#define BIT_CLEAR_Y_COMP(x)				((x) & (~BITS_Y_COMP))
#define BIT_GET_Y_COMP(x)				(((x) >> BIT_SHIFT_Y_COMP) & BIT_MASK_Y_COMP)
#define BIT_SET_Y_COMP(x, v)				(BIT_CLEAR_Y_COMP(x) | BIT_Y_COMP(v))

#define BIT_X_COMP_Y_OVERFLOW				BIT(3)

#define BIT_SHIFT_X_COMP				0
#define BIT_MASK_X_COMP				0x7
#define BIT_X_COMP(x)					(((x) & BIT_MASK_X_COMP) << BIT_SHIFT_X_COMP)
#define BITS_X_COMP					(BIT_MASK_X_COMP << BIT_SHIFT_X_COMP)
#define BIT_CLEAR_X_COMP(x)				((x) & (~BITS_X_COMP))
#define BIT_GET_X_COMP(x)				(((x) >> BIT_SHIFT_X_COMP) & BIT_MASK_X_COMP)
#define BIT_SET_X_COMP(x, v)				(BIT_CLEAR_X_COMP(x) | BIT_X_COMP(v))


/* 2 REG_TIMER_COMPARE_VALUE_LOW		(Offset 0x15C4) */


#define BIT_SHIFT_COMP_VALUE_LOW			0
#define BIT_MASK_COMP_VALUE_LOW			0xffffffffL
#define BIT_COMP_VALUE_LOW(x)				(((x) & BIT_MASK_COMP_VALUE_LOW) << BIT_SHIFT_COMP_VALUE_LOW)
#define BITS_COMP_VALUE_LOW				(BIT_MASK_COMP_VALUE_LOW << BIT_SHIFT_COMP_VALUE_LOW)
#define BIT_CLEAR_COMP_VALUE_LOW(x)			((x) & (~BITS_COMP_VALUE_LOW))
#define BIT_GET_COMP_VALUE_LOW(x)			(((x) >> BIT_SHIFT_COMP_VALUE_LOW) & BIT_MASK_COMP_VALUE_LOW)
#define BIT_SET_COMP_VALUE_LOW(x, v)			(BIT_CLEAR_COMP_VALUE_LOW(x) | BIT_COMP_VALUE_LOW(v))


/* 2 REG_TIMER_COMPARE_VALUE_HIGH		(Offset 0x15C8) */


#define BIT_SHIFT_COMP_VALUE_HIGH			0
#define BIT_MASK_COMP_VALUE_HIGH			0xffffffffL
#define BIT_COMP_VALUE_HIGH(x)				(((x) & BIT_MASK_COMP_VALUE_HIGH) << BIT_SHIFT_COMP_VALUE_HIGH)
#define BITS_COMP_VALUE_HIGH				(BIT_MASK_COMP_VALUE_HIGH << BIT_SHIFT_COMP_VALUE_HIGH)
#define BIT_CLEAR_COMP_VALUE_HIGH(x)			((x) & (~BITS_COMP_VALUE_HIGH))
#define BIT_GET_COMP_VALUE_HIGH(x)			(((x) >> BIT_SHIFT_COMP_VALUE_HIGH) & BIT_MASK_COMP_VALUE_HIGH)
#define BIT_SET_COMP_VALUE_HIGH(x, v)			(BIT_CLEAR_COMP_VALUE_HIGH(x) | BIT_COMP_VALUE_HIGH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BCN_PSR_RPT2			(Offset 0x1600) */


#define BIT_SHIFT_DTIM_CNT2				24
#define BIT_MASK_DTIM_CNT2				0xff
#define BIT_DTIM_CNT2(x)				(((x) & BIT_MASK_DTIM_CNT2) << BIT_SHIFT_DTIM_CNT2)
#define BITS_DTIM_CNT2					(BIT_MASK_DTIM_CNT2 << BIT_SHIFT_DTIM_CNT2)
#define BIT_CLEAR_DTIM_CNT2(x)				((x) & (~BITS_DTIM_CNT2))
#define BIT_GET_DTIM_CNT2(x)				(((x) >> BIT_SHIFT_DTIM_CNT2) & BIT_MASK_DTIM_CNT2)
#define BIT_SET_DTIM_CNT2(x, v)			(BIT_CLEAR_DTIM_CNT2(x) | BIT_DTIM_CNT2(v))


#define BIT_SHIFT_DTIM_PERIOD2				16
#define BIT_MASK_DTIM_PERIOD2				0xff
#define BIT_DTIM_PERIOD2(x)				(((x) & BIT_MASK_DTIM_PERIOD2) << BIT_SHIFT_DTIM_PERIOD2)
#define BITS_DTIM_PERIOD2				(BIT_MASK_DTIM_PERIOD2 << BIT_SHIFT_DTIM_PERIOD2)
#define BIT_CLEAR_DTIM_PERIOD2(x)			((x) & (~BITS_DTIM_PERIOD2))
#define BIT_GET_DTIM_PERIOD2(x)			(((x) >> BIT_SHIFT_DTIM_PERIOD2) & BIT_MASK_DTIM_PERIOD2)
#define BIT_SET_DTIM_PERIOD2(x, v)			(BIT_CLEAR_DTIM_PERIOD2(x) | BIT_DTIM_PERIOD2(v))

#define BIT_DTIM2					BIT(15)
#define BIT_TIM2					BIT(14)

#define BIT_SHIFT_PS_AID_2				0
#define BIT_MASK_PS_AID_2				0x7ff
#define BIT_PS_AID_2(x)				(((x) & BIT_MASK_PS_AID_2) << BIT_SHIFT_PS_AID_2)
#define BITS_PS_AID_2					(BIT_MASK_PS_AID_2 << BIT_SHIFT_PS_AID_2)
#define BIT_CLEAR_PS_AID_2(x)				((x) & (~BITS_PS_AID_2))
#define BIT_GET_PS_AID_2(x)				(((x) >> BIT_SHIFT_PS_AID_2) & BIT_MASK_PS_AID_2)
#define BIT_SET_PS_AID_2(x, v)				(BIT_CLEAR_PS_AID_2(x) | BIT_PS_AID_2(v))


/* 2 REG_BCN_PSR_RPT3			(Offset 0x1604) */


#define BIT_SHIFT_DTIM_CNT3				24
#define BIT_MASK_DTIM_CNT3				0xff
#define BIT_DTIM_CNT3(x)				(((x) & BIT_MASK_DTIM_CNT3) << BIT_SHIFT_DTIM_CNT3)
#define BITS_DTIM_CNT3					(BIT_MASK_DTIM_CNT3 << BIT_SHIFT_DTIM_CNT3)
#define BIT_CLEAR_DTIM_CNT3(x)				((x) & (~BITS_DTIM_CNT3))
#define BIT_GET_DTIM_CNT3(x)				(((x) >> BIT_SHIFT_DTIM_CNT3) & BIT_MASK_DTIM_CNT3)
#define BIT_SET_DTIM_CNT3(x, v)			(BIT_CLEAR_DTIM_CNT3(x) | BIT_DTIM_CNT3(v))


#define BIT_SHIFT_DTIM_PERIOD3				16
#define BIT_MASK_DTIM_PERIOD3				0xff
#define BIT_DTIM_PERIOD3(x)				(((x) & BIT_MASK_DTIM_PERIOD3) << BIT_SHIFT_DTIM_PERIOD3)
#define BITS_DTIM_PERIOD3				(BIT_MASK_DTIM_PERIOD3 << BIT_SHIFT_DTIM_PERIOD3)
#define BIT_CLEAR_DTIM_PERIOD3(x)			((x) & (~BITS_DTIM_PERIOD3))
#define BIT_GET_DTIM_PERIOD3(x)			(((x) >> BIT_SHIFT_DTIM_PERIOD3) & BIT_MASK_DTIM_PERIOD3)
#define BIT_SET_DTIM_PERIOD3(x, v)			(BIT_CLEAR_DTIM_PERIOD3(x) | BIT_DTIM_PERIOD3(v))

#define BIT_DTIM3					BIT(15)
#define BIT_TIM3					BIT(14)

#define BIT_SHIFT_PS_AID_3				0
#define BIT_MASK_PS_AID_3				0x7ff
#define BIT_PS_AID_3(x)				(((x) & BIT_MASK_PS_AID_3) << BIT_SHIFT_PS_AID_3)
#define BITS_PS_AID_3					(BIT_MASK_PS_AID_3 << BIT_SHIFT_PS_AID_3)
#define BIT_CLEAR_PS_AID_3(x)				((x) & (~BITS_PS_AID_3))
#define BIT_GET_PS_AID_3(x)				(((x) >> BIT_SHIFT_PS_AID_3) & BIT_MASK_PS_AID_3)
#define BIT_SET_PS_AID_3(x, v)				(BIT_CLEAR_PS_AID_3(x) | BIT_PS_AID_3(v))


/* 2 REG_BCN_PSR_RPT4			(Offset 0x1608) */


#define BIT_SHIFT_DTIM_CNT4				24
#define BIT_MASK_DTIM_CNT4				0xff
#define BIT_DTIM_CNT4(x)				(((x) & BIT_MASK_DTIM_CNT4) << BIT_SHIFT_DTIM_CNT4)
#define BITS_DTIM_CNT4					(BIT_MASK_DTIM_CNT4 << BIT_SHIFT_DTIM_CNT4)
#define BIT_CLEAR_DTIM_CNT4(x)				((x) & (~BITS_DTIM_CNT4))
#define BIT_GET_DTIM_CNT4(x)				(((x) >> BIT_SHIFT_DTIM_CNT4) & BIT_MASK_DTIM_CNT4)
#define BIT_SET_DTIM_CNT4(x, v)			(BIT_CLEAR_DTIM_CNT4(x) | BIT_DTIM_CNT4(v))


#define BIT_SHIFT_DTIM_PERIOD4				16
#define BIT_MASK_DTIM_PERIOD4				0xff
#define BIT_DTIM_PERIOD4(x)				(((x) & BIT_MASK_DTIM_PERIOD4) << BIT_SHIFT_DTIM_PERIOD4)
#define BITS_DTIM_PERIOD4				(BIT_MASK_DTIM_PERIOD4 << BIT_SHIFT_DTIM_PERIOD4)
#define BIT_CLEAR_DTIM_PERIOD4(x)			((x) & (~BITS_DTIM_PERIOD4))
#define BIT_GET_DTIM_PERIOD4(x)			(((x) >> BIT_SHIFT_DTIM_PERIOD4) & BIT_MASK_DTIM_PERIOD4)
#define BIT_SET_DTIM_PERIOD4(x, v)			(BIT_CLEAR_DTIM_PERIOD4(x) | BIT_DTIM_PERIOD4(v))

#define BIT_DTIM4					BIT(15)
#define BIT_TIM4					BIT(14)

#define BIT_SHIFT_PS_AID_4				0
#define BIT_MASK_PS_AID_4				0x7ff
#define BIT_PS_AID_4(x)				(((x) & BIT_MASK_PS_AID_4) << BIT_SHIFT_PS_AID_4)
#define BITS_PS_AID_4					(BIT_MASK_PS_AID_4 << BIT_SHIFT_PS_AID_4)
#define BIT_CLEAR_PS_AID_4(x)				((x) & (~BITS_PS_AID_4))
#define BIT_GET_PS_AID_4(x)				(((x) >> BIT_SHIFT_PS_AID_4) & BIT_MASK_PS_AID_4)
#define BIT_SET_PS_AID_4(x, v)				(BIT_CLEAR_PS_AID_4(x) | BIT_PS_AID_4(v))


/* 2 REG_A1_ADDR_MASK			(Offset 0x160C) */


#define BIT_SHIFT_A1_ADDR_MASK				0
#define BIT_MASK_A1_ADDR_MASK				0xffffffffL
#define BIT_A1_ADDR_MASK(x)				(((x) & BIT_MASK_A1_ADDR_MASK) << BIT_SHIFT_A1_ADDR_MASK)
#define BITS_A1_ADDR_MASK				(BIT_MASK_A1_ADDR_MASK << BIT_SHIFT_A1_ADDR_MASK)
#define BIT_CLEAR_A1_ADDR_MASK(x)			((x) & (~BITS_A1_ADDR_MASK))
#define BIT_GET_A1_ADDR_MASK(x)			(((x) >> BIT_SHIFT_A1_ADDR_MASK) & BIT_MASK_A1_ADDR_MASK)
#define BIT_SET_A1_ADDR_MASK(x, v)			(BIT_CLEAR_A1_ADDR_MASK(x) | BIT_A1_ADDR_MASK(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_RXPSF_CTRL				(Offset 0x1610) */

#define BIT_RXGCK_FIFOTHR_EN				BIT(28)

#define BIT_SHIFT_RXGCK_VHT_FIFOTHR			26
#define BIT_MASK_RXGCK_VHT_FIFOTHR			0x3
#define BIT_RXGCK_VHT_FIFOTHR(x)			(((x) & BIT_MASK_RXGCK_VHT_FIFOTHR) << BIT_SHIFT_RXGCK_VHT_FIFOTHR)
#define BITS_RXGCK_VHT_FIFOTHR				(BIT_MASK_RXGCK_VHT_FIFOTHR << BIT_SHIFT_RXGCK_VHT_FIFOTHR)
#define BIT_CLEAR_RXGCK_VHT_FIFOTHR(x)			((x) & (~BITS_RXGCK_VHT_FIFOTHR))
#define BIT_GET_RXGCK_VHT_FIFOTHR(x)			(((x) >> BIT_SHIFT_RXGCK_VHT_FIFOTHR) & BIT_MASK_RXGCK_VHT_FIFOTHR)
#define BIT_SET_RXGCK_VHT_FIFOTHR(x, v)		(BIT_CLEAR_RXGCK_VHT_FIFOTHR(x) | BIT_RXGCK_VHT_FIFOTHR(v))


#define BIT_SHIFT_RXGCK_HT_FIFOTHR			24
#define BIT_MASK_RXGCK_HT_FIFOTHR			0x3
#define BIT_RXGCK_HT_FIFOTHR(x)			(((x) & BIT_MASK_RXGCK_HT_FIFOTHR) << BIT_SHIFT_RXGCK_HT_FIFOTHR)
#define BITS_RXGCK_HT_FIFOTHR				(BIT_MASK_RXGCK_HT_FIFOTHR << BIT_SHIFT_RXGCK_HT_FIFOTHR)
#define BIT_CLEAR_RXGCK_HT_FIFOTHR(x)			((x) & (~BITS_RXGCK_HT_FIFOTHR))
#define BIT_GET_RXGCK_HT_FIFOTHR(x)			(((x) >> BIT_SHIFT_RXGCK_HT_FIFOTHR) & BIT_MASK_RXGCK_HT_FIFOTHR)
#define BIT_SET_RXGCK_HT_FIFOTHR(x, v)			(BIT_CLEAR_RXGCK_HT_FIFOTHR(x) | BIT_RXGCK_HT_FIFOTHR(v))


#define BIT_SHIFT_RXGCK_OFDM_FIFOTHR			22
#define BIT_MASK_RXGCK_OFDM_FIFOTHR			0x3
#define BIT_RXGCK_OFDM_FIFOTHR(x)			(((x) & BIT_MASK_RXGCK_OFDM_FIFOTHR) << BIT_SHIFT_RXGCK_OFDM_FIFOTHR)
#define BITS_RXGCK_OFDM_FIFOTHR			(BIT_MASK_RXGCK_OFDM_FIFOTHR << BIT_SHIFT_RXGCK_OFDM_FIFOTHR)
#define BIT_CLEAR_RXGCK_OFDM_FIFOTHR(x)		((x) & (~BITS_RXGCK_OFDM_FIFOTHR))
#define BIT_GET_RXGCK_OFDM_FIFOTHR(x)			(((x) >> BIT_SHIFT_RXGCK_OFDM_FIFOTHR) & BIT_MASK_RXGCK_OFDM_FIFOTHR)
#define BIT_SET_RXGCK_OFDM_FIFOTHR(x, v)		(BIT_CLEAR_RXGCK_OFDM_FIFOTHR(x) | BIT_RXGCK_OFDM_FIFOTHR(v))


#define BIT_SHIFT_RXGCK_CCK_FIFOTHR			20
#define BIT_MASK_RXGCK_CCK_FIFOTHR			0x3
#define BIT_RXGCK_CCK_FIFOTHR(x)			(((x) & BIT_MASK_RXGCK_CCK_FIFOTHR) << BIT_SHIFT_RXGCK_CCK_FIFOTHR)
#define BITS_RXGCK_CCK_FIFOTHR				(BIT_MASK_RXGCK_CCK_FIFOTHR << BIT_SHIFT_RXGCK_CCK_FIFOTHR)
#define BIT_CLEAR_RXGCK_CCK_FIFOTHR(x)			((x) & (~BITS_RXGCK_CCK_FIFOTHR))
#define BIT_GET_RXGCK_CCK_FIFOTHR(x)			(((x) >> BIT_SHIFT_RXGCK_CCK_FIFOTHR) & BIT_MASK_RXGCK_CCK_FIFOTHR)
#define BIT_SET_RXGCK_CCK_FIFOTHR(x, v)		(BIT_CLEAR_RXGCK_CCK_FIFOTHR(x) | BIT_RXGCK_CCK_FIFOTHR(v))


#define BIT_SHIFT_RXGCK_ENTRY_DELAY			17
#define BIT_MASK_RXGCK_ENTRY_DELAY			0x7
#define BIT_RXGCK_ENTRY_DELAY(x)			(((x) & BIT_MASK_RXGCK_ENTRY_DELAY) << BIT_SHIFT_RXGCK_ENTRY_DELAY)
#define BITS_RXGCK_ENTRY_DELAY				(BIT_MASK_RXGCK_ENTRY_DELAY << BIT_SHIFT_RXGCK_ENTRY_DELAY)
#define BIT_CLEAR_RXGCK_ENTRY_DELAY(x)			((x) & (~BITS_RXGCK_ENTRY_DELAY))
#define BIT_GET_RXGCK_ENTRY_DELAY(x)			(((x) >> BIT_SHIFT_RXGCK_ENTRY_DELAY) & BIT_MASK_RXGCK_ENTRY_DELAY)
#define BIT_SET_RXGCK_ENTRY_DELAY(x, v)		(BIT_CLEAR_RXGCK_ENTRY_DELAY(x) | BIT_RXGCK_ENTRY_DELAY(v))

#define BIT_RXGCK_OFDMCCA_EN				BIT(16)

#define BIT_SHIFT_RXPSF_PKTLENTHR			13
#define BIT_MASK_RXPSF_PKTLENTHR			0x7
#define BIT_RXPSF_PKTLENTHR(x)				(((x) & BIT_MASK_RXPSF_PKTLENTHR) << BIT_SHIFT_RXPSF_PKTLENTHR)
#define BITS_RXPSF_PKTLENTHR				(BIT_MASK_RXPSF_PKTLENTHR << BIT_SHIFT_RXPSF_PKTLENTHR)
#define BIT_CLEAR_RXPSF_PKTLENTHR(x)			((x) & (~BITS_RXPSF_PKTLENTHR))
#define BIT_GET_RXPSF_PKTLENTHR(x)			(((x) >> BIT_SHIFT_RXPSF_PKTLENTHR) & BIT_MASK_RXPSF_PKTLENTHR)
#define BIT_SET_RXPSF_PKTLENTHR(x, v)			(BIT_CLEAR_RXPSF_PKTLENTHR(x) | BIT_RXPSF_PKTLENTHR(v))

#define BIT_RXPSF_CTRLEN				BIT(12)
#define BIT_RXPSF_VHTCHKEN				BIT(11)
#define BIT_RXPSF_HTCHKEN				BIT(10)
#define BIT_RXPSF_OFDMCHKEN				BIT(9)
#define BIT_RXPSF_CCKCHKEN				BIT(8)
#define BIT_RXPSF_OFDMRST				BIT(7)
#define BIT_RXPSF_CCKRST				BIT(6)
#define BIT_RXPSF_MHCHKEN				BIT(5)
#define BIT_RXPSF_CONT_ERRCHKEN			BIT(4)
#define BIT_RXPSF_ALL_ERRCHKEN				BIT(3)

#define BIT_SHIFT_RXPSF_ERRTHR				0
#define BIT_MASK_RXPSF_ERRTHR				0x7
#define BIT_RXPSF_ERRTHR(x)				(((x) & BIT_MASK_RXPSF_ERRTHR) << BIT_SHIFT_RXPSF_ERRTHR)
#define BITS_RXPSF_ERRTHR				(BIT_MASK_RXPSF_ERRTHR << BIT_SHIFT_RXPSF_ERRTHR)
#define BIT_CLEAR_RXPSF_ERRTHR(x)			((x) & (~BITS_RXPSF_ERRTHR))
#define BIT_GET_RXPSF_ERRTHR(x)			(((x) >> BIT_SHIFT_RXPSF_ERRTHR) & BIT_MASK_RXPSF_ERRTHR)
#define BIT_SET_RXPSF_ERRTHR(x, v)			(BIT_CLEAR_RXPSF_ERRTHR(x) | BIT_RXPSF_ERRTHR(v))


/* 2 REG_RXPSF_TYPE_CTRL			(Offset 0x1614) */

#define BIT_RXPSF_DATA15EN				BIT(31)
#define BIT_RXPSF_DATA14EN				BIT(30)
#define BIT_RXPSF_DATA13EN				BIT(29)
#define BIT_RXPSF_DATA12EN				BIT(28)
#define BIT_RXPSF_DATA11EN				BIT(27)
#define BIT_RXPSF_DATA10EN				BIT(26)
#define BIT_RXPSF_DATA9EN				BIT(25)
#define BIT_RXPSF_DATA8EN				BIT(24)
#define BIT_RXPSF_DATA7EN				BIT(23)
#define BIT_RXPSF_DATA6EN				BIT(22)
#define BIT_RXPSF_DATA5EN				BIT(21)
#define BIT_RXPSF_DATA4EN				BIT(20)
#define BIT_RXPSF_DATA3EN				BIT(19)
#define BIT_RXPSF_DATA2EN				BIT(18)
#define BIT_RXPSF_DATA1EN				BIT(17)
#define BIT_RXPSF_DATA0EN				BIT(16)
#define BIT_RXPSF_MGT15EN				BIT(15)
#define BIT_RXPSF_MGT14EN				BIT(14)
#define BIT_RXPSF_MGT13EN				BIT(13)
#define BIT_RXPSF_MGT12EN				BIT(12)
#define BIT_RXPSF_MGT11EN				BIT(11)
#define BIT_RXPSF_MGT10EN				BIT(10)
#define BIT_RXPSF_MGT9EN				BIT(9)
#define BIT_RXPSF_MGT8EN				BIT(8)
#define BIT_RXPSF_MGT7EN				BIT(7)
#define BIT_RXPSF_MGT6EN				BIT(6)
#define BIT_RXPSF_MGT5EN				BIT(5)
#define BIT_RXPSF_MGT4EN				BIT(4)
#define BIT_RXPSF_MGT3EN				BIT(3)
#define BIT_RXPSF_MGT2EN				BIT(2)
#define BIT_RXPSF_MGT1EN				BIT(1)
#define BIT_RXPSF_MGT0EN				BIT(0)

/* 2 REG_CAM_ACCESS_CTRL			(Offset 0x1618) */

#define BIT_INDIRECT_ERR				BIT(6)
#define BIT_DIRECT_ERR					BIT(5)
#define BIT_DIR_ACCESS_EN_RX_BA			BIT(4)
#define BIT_DIR_ACCESS_EN_ADDRCAM			BIT(3)
#define BIT_DIR_ACCESS_EN_KEY				BIT(2)
#define BIT_DIR_ACCESS_EN_WOWLAN			BIT(1)
#define BIT_DIR_ACCESS_EN_FW_FILTER			BIT(0)

/* 2 REG_CUT_AMSDU_CTRL			(Offset 0x161C) */

#define BIT__CUT_AMSDU_CHKLEN_EN			BIT(31)
#define BIT_EN_CUT_AMSDU				BIT(30)

#define BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH		16
#define BIT_MASK_CUT_AMSDU_CHKLEN_L_TH			0xff
#define BIT_CUT_AMSDU_CHKLEN_L_TH(x)			(((x) & BIT_MASK_CUT_AMSDU_CHKLEN_L_TH) << BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH)
#define BITS_CUT_AMSDU_CHKLEN_L_TH			(BIT_MASK_CUT_AMSDU_CHKLEN_L_TH << BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH)
#define BIT_CLEAR_CUT_AMSDU_CHKLEN_L_TH(x)		((x) & (~BITS_CUT_AMSDU_CHKLEN_L_TH))
#define BIT_GET_CUT_AMSDU_CHKLEN_L_TH(x)		(((x) >> BIT_SHIFT_CUT_AMSDU_CHKLEN_L_TH) & BIT_MASK_CUT_AMSDU_CHKLEN_L_TH)
#define BIT_SET_CUT_AMSDU_CHKLEN_L_TH(x, v)		(BIT_CLEAR_CUT_AMSDU_CHKLEN_L_TH(x) | BIT_CUT_AMSDU_CHKLEN_L_TH(v))


#define BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH		0
#define BIT_MASK_CUT_AMSDU_CHKLEN_H_TH			0xffff
#define BIT_CUT_AMSDU_CHKLEN_H_TH(x)			(((x) & BIT_MASK_CUT_AMSDU_CHKLEN_H_TH) << BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH)
#define BITS_CUT_AMSDU_CHKLEN_H_TH			(BIT_MASK_CUT_AMSDU_CHKLEN_H_TH << BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH)
#define BIT_CLEAR_CUT_AMSDU_CHKLEN_H_TH(x)		((x) & (~BITS_CUT_AMSDU_CHKLEN_H_TH))
#define BIT_GET_CUT_AMSDU_CHKLEN_H_TH(x)		(((x) >> BIT_SHIFT_CUT_AMSDU_CHKLEN_H_TH) & BIT_MASK_CUT_AMSDU_CHKLEN_H_TH)
#define BIT_SET_CUT_AMSDU_CHKLEN_H_TH(x, v)		(BIT_CLEAR_CUT_AMSDU_CHKLEN_H_TH(x) | BIT_CUT_AMSDU_CHKLEN_H_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID2				(Offset 0x1620) */


#define BIT_SHIFT_MACID2				0
#define BIT_MASK_MACID2				0xffffffffffffL
#define BIT_MACID2(x)					(((x) & BIT_MASK_MACID2) << BIT_SHIFT_MACID2)
#define BITS_MACID2					(BIT_MASK_MACID2 << BIT_SHIFT_MACID2)
#define BIT_CLEAR_MACID2(x)				((x) & (~BITS_MACID2))
#define BIT_GET_MACID2(x)				(((x) >> BIT_SHIFT_MACID2) & BIT_MASK_MACID2)
#define BIT_SET_MACID2(x, v)				(BIT_CLEAR_MACID2(x) | BIT_MACID2(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MACID2				(Offset 0x1620) */


#define BIT_SHIFT_MACID2_V1				0
#define BIT_MASK_MACID2_V1				0xffffffffL
#define BIT_MACID2_V1(x)				(((x) & BIT_MASK_MACID2_V1) << BIT_SHIFT_MACID2_V1)
#define BITS_MACID2_V1					(BIT_MASK_MACID2_V1 << BIT_SHIFT_MACID2_V1)
#define BIT_CLEAR_MACID2_V1(x)				((x) & (~BITS_MACID2_V1))
#define BIT_GET_MACID2_V1(x)				(((x) >> BIT_SHIFT_MACID2_V1) & BIT_MASK_MACID2_V1)
#define BIT_SET_MACID2_V1(x, v)			(BIT_CLEAR_MACID2_V1(x) | BIT_MACID2_V1(v))


/* 2 REG_MACID2_H				(Offset 0x1624) */


#define BIT_SHIFT_MACID2_H_V1				0
#define BIT_MASK_MACID2_H_V1				0xffff
#define BIT_MACID2_H_V1(x)				(((x) & BIT_MASK_MACID2_H_V1) << BIT_SHIFT_MACID2_H_V1)
#define BITS_MACID2_H_V1				(BIT_MASK_MACID2_H_V1 << BIT_SHIFT_MACID2_H_V1)
#define BIT_CLEAR_MACID2_H_V1(x)			((x) & (~BITS_MACID2_H_V1))
#define BIT_GET_MACID2_H_V1(x)				(((x) >> BIT_SHIFT_MACID2_H_V1) & BIT_MASK_MACID2_H_V1)
#define BIT_SET_MACID2_H_V1(x, v)			(BIT_CLEAR_MACID2_H_V1(x) | BIT_MACID2_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BSSID2				(Offset 0x1628) */


#define BIT_SHIFT_BSSID2				0
#define BIT_MASK_BSSID2				0xffffffffffffL
#define BIT_BSSID2(x)					(((x) & BIT_MASK_BSSID2) << BIT_SHIFT_BSSID2)
#define BITS_BSSID2					(BIT_MASK_BSSID2 << BIT_SHIFT_BSSID2)
#define BIT_CLEAR_BSSID2(x)				((x) & (~BITS_BSSID2))
#define BIT_GET_BSSID2(x)				(((x) >> BIT_SHIFT_BSSID2) & BIT_MASK_BSSID2)
#define BIT_SET_BSSID2(x, v)				(BIT_CLEAR_BSSID2(x) | BIT_BSSID2(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID2				(Offset 0x1628) */


#define BIT_SHIFT_BSSID2_V1				0
#define BIT_MASK_BSSID2_V1				0xffffffffL
#define BIT_BSSID2_V1(x)				(((x) & BIT_MASK_BSSID2_V1) << BIT_SHIFT_BSSID2_V1)
#define BITS_BSSID2_V1					(BIT_MASK_BSSID2_V1 << BIT_SHIFT_BSSID2_V1)
#define BIT_CLEAR_BSSID2_V1(x)				((x) & (~BITS_BSSID2_V1))
#define BIT_GET_BSSID2_V1(x)				(((x) >> BIT_SHIFT_BSSID2_V1) & BIT_MASK_BSSID2_V1)
#define BIT_SET_BSSID2_V1(x, v)			(BIT_CLEAR_BSSID2_V1(x) | BIT_BSSID2_V1(v))


/* 2 REG_BSSID2_H				(Offset 0x162C) */


#define BIT_SHIFT_BSSID2_H_V1				0
#define BIT_MASK_BSSID2_H_V1				0xffff
#define BIT_BSSID2_H_V1(x)				(((x) & BIT_MASK_BSSID2_H_V1) << BIT_SHIFT_BSSID2_H_V1)
#define BITS_BSSID2_H_V1				(BIT_MASK_BSSID2_H_V1 << BIT_SHIFT_BSSID2_H_V1)
#define BIT_CLEAR_BSSID2_H_V1(x)			((x) & (~BITS_BSSID2_H_V1))
#define BIT_GET_BSSID2_H_V1(x)				(((x) >> BIT_SHIFT_BSSID2_H_V1) & BIT_MASK_BSSID2_H_V1)
#define BIT_SET_BSSID2_H_V1(x, v)			(BIT_CLEAR_BSSID2_H_V1(x) | BIT_BSSID2_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID3				(Offset 0x1630) */


#define BIT_SHIFT_MACID3				0
#define BIT_MASK_MACID3				0xffffffffffffL
#define BIT_MACID3(x)					(((x) & BIT_MASK_MACID3) << BIT_SHIFT_MACID3)
#define BITS_MACID3					(BIT_MASK_MACID3 << BIT_SHIFT_MACID3)
#define BIT_CLEAR_MACID3(x)				((x) & (~BITS_MACID3))
#define BIT_GET_MACID3(x)				(((x) >> BIT_SHIFT_MACID3) & BIT_MASK_MACID3)
#define BIT_SET_MACID3(x, v)				(BIT_CLEAR_MACID3(x) | BIT_MACID3(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MACID3				(Offset 0x1630) */


#define BIT_SHIFT_MACID3_V1				0
#define BIT_MASK_MACID3_V1				0xffffffffL
#define BIT_MACID3_V1(x)				(((x) & BIT_MASK_MACID3_V1) << BIT_SHIFT_MACID3_V1)
#define BITS_MACID3_V1					(BIT_MASK_MACID3_V1 << BIT_SHIFT_MACID3_V1)
#define BIT_CLEAR_MACID3_V1(x)				((x) & (~BITS_MACID3_V1))
#define BIT_GET_MACID3_V1(x)				(((x) >> BIT_SHIFT_MACID3_V1) & BIT_MASK_MACID3_V1)
#define BIT_SET_MACID3_V1(x, v)			(BIT_CLEAR_MACID3_V1(x) | BIT_MACID3_V1(v))


/* 2 REG_MACID3_H				(Offset 0x1634) */


#define BIT_SHIFT_MACID3_H_V1				0
#define BIT_MASK_MACID3_H_V1				0xffff
#define BIT_MACID3_H_V1(x)				(((x) & BIT_MASK_MACID3_H_V1) << BIT_SHIFT_MACID3_H_V1)
#define BITS_MACID3_H_V1				(BIT_MASK_MACID3_H_V1 << BIT_SHIFT_MACID3_H_V1)
#define BIT_CLEAR_MACID3_H_V1(x)			((x) & (~BITS_MACID3_H_V1))
#define BIT_GET_MACID3_H_V1(x)				(((x) >> BIT_SHIFT_MACID3_H_V1) & BIT_MASK_MACID3_H_V1)
#define BIT_SET_MACID3_H_V1(x, v)			(BIT_CLEAR_MACID3_H_V1(x) | BIT_MACID3_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BSSID3				(Offset 0x1638) */


#define BIT_SHIFT_BSSID3				0
#define BIT_MASK_BSSID3				0xffffffffffffL
#define BIT_BSSID3(x)					(((x) & BIT_MASK_BSSID3) << BIT_SHIFT_BSSID3)
#define BITS_BSSID3					(BIT_MASK_BSSID3 << BIT_SHIFT_BSSID3)
#define BIT_CLEAR_BSSID3(x)				((x) & (~BITS_BSSID3))
#define BIT_GET_BSSID3(x)				(((x) >> BIT_SHIFT_BSSID3) & BIT_MASK_BSSID3)
#define BIT_SET_BSSID3(x, v)				(BIT_CLEAR_BSSID3(x) | BIT_BSSID3(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID3				(Offset 0x1638) */


#define BIT_SHIFT_BSSID3_V1				0
#define BIT_MASK_BSSID3_V1				0xffffffffL
#define BIT_BSSID3_V1(x)				(((x) & BIT_MASK_BSSID3_V1) << BIT_SHIFT_BSSID3_V1)
#define BITS_BSSID3_V1					(BIT_MASK_BSSID3_V1 << BIT_SHIFT_BSSID3_V1)
#define BIT_CLEAR_BSSID3_V1(x)				((x) & (~BITS_BSSID3_V1))
#define BIT_GET_BSSID3_V1(x)				(((x) >> BIT_SHIFT_BSSID3_V1) & BIT_MASK_BSSID3_V1)
#define BIT_SET_BSSID3_V1(x, v)			(BIT_CLEAR_BSSID3_V1(x) | BIT_BSSID3_V1(v))


/* 2 REG_BSSID3_H				(Offset 0x163C) */


#define BIT_SHIFT_BSSID3_H_V1				0
#define BIT_MASK_BSSID3_H_V1				0xffff
#define BIT_BSSID3_H_V1(x)				(((x) & BIT_MASK_BSSID3_H_V1) << BIT_SHIFT_BSSID3_H_V1)
#define BITS_BSSID3_H_V1				(BIT_MASK_BSSID3_H_V1 << BIT_SHIFT_BSSID3_H_V1)
#define BIT_CLEAR_BSSID3_H_V1(x)			((x) & (~BITS_BSSID3_H_V1))
#define BIT_GET_BSSID3_H_V1(x)				(((x) >> BIT_SHIFT_BSSID3_H_V1) & BIT_MASK_BSSID3_H_V1)
#define BIT_SET_BSSID3_H_V1(x, v)			(BIT_CLEAR_BSSID3_H_V1(x) | BIT_BSSID3_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_MACID4				(Offset 0x1640) */


#define BIT_SHIFT_MACID4				0
#define BIT_MASK_MACID4				0xffffffffffffL
#define BIT_MACID4(x)					(((x) & BIT_MASK_MACID4) << BIT_SHIFT_MACID4)
#define BITS_MACID4					(BIT_MASK_MACID4 << BIT_SHIFT_MACID4)
#define BIT_CLEAR_MACID4(x)				((x) & (~BITS_MACID4))
#define BIT_GET_MACID4(x)				(((x) >> BIT_SHIFT_MACID4) & BIT_MASK_MACID4)
#define BIT_SET_MACID4(x, v)				(BIT_CLEAR_MACID4(x) | BIT_MACID4(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MACID4				(Offset 0x1640) */


#define BIT_SHIFT_MACID4_V1				0
#define BIT_MASK_MACID4_V1				0xffffffffL
#define BIT_MACID4_V1(x)				(((x) & BIT_MASK_MACID4_V1) << BIT_SHIFT_MACID4_V1)
#define BITS_MACID4_V1					(BIT_MASK_MACID4_V1 << BIT_SHIFT_MACID4_V1)
#define BIT_CLEAR_MACID4_V1(x)				((x) & (~BITS_MACID4_V1))
#define BIT_GET_MACID4_V1(x)				(((x) >> BIT_SHIFT_MACID4_V1) & BIT_MASK_MACID4_V1)
#define BIT_SET_MACID4_V1(x, v)			(BIT_CLEAR_MACID4_V1(x) | BIT_MACID4_V1(v))


/* 2 REG_MACID4_H				(Offset 0x1644) */


#define BIT_SHIFT_MACID4_H_V1				0
#define BIT_MASK_MACID4_H_V1				0xffff
#define BIT_MACID4_H_V1(x)				(((x) & BIT_MASK_MACID4_H_V1) << BIT_SHIFT_MACID4_H_V1)
#define BITS_MACID4_H_V1				(BIT_MASK_MACID4_H_V1 << BIT_SHIFT_MACID4_H_V1)
#define BIT_CLEAR_MACID4_H_V1(x)			((x) & (~BITS_MACID4_H_V1))
#define BIT_GET_MACID4_H_V1(x)				(((x) >> BIT_SHIFT_MACID4_H_V1) & BIT_MASK_MACID4_H_V1)
#define BIT_SET_MACID4_H_V1(x, v)			(BIT_CLEAR_MACID4_H_V1(x) | BIT_MACID4_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814A_SUPPORT || HALMAC_8814AMP_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_BSSID4				(Offset 0x1648) */


#define BIT_SHIFT_BSSID4				0
#define BIT_MASK_BSSID4				0xffffffffffffL
#define BIT_BSSID4(x)					(((x) & BIT_MASK_BSSID4) << BIT_SHIFT_BSSID4)
#define BITS_BSSID4					(BIT_MASK_BSSID4 << BIT_SHIFT_BSSID4)
#define BIT_CLEAR_BSSID4(x)				((x) & (~BITS_BSSID4))
#define BIT_GET_BSSID4(x)				(((x) >> BIT_SHIFT_BSSID4) & BIT_MASK_BSSID4)
#define BIT_SET_BSSID4(x, v)				(BIT_CLEAR_BSSID4(x) | BIT_BSSID4(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_BSSID4				(Offset 0x1648) */


#define BIT_SHIFT_BSSID4_V1				0
#define BIT_MASK_BSSID4_V1				0xffffffffL
#define BIT_BSSID4_V1(x)				(((x) & BIT_MASK_BSSID4_V1) << BIT_SHIFT_BSSID4_V1)
#define BITS_BSSID4_V1					(BIT_MASK_BSSID4_V1 << BIT_SHIFT_BSSID4_V1)
#define BIT_CLEAR_BSSID4_V1(x)				((x) & (~BITS_BSSID4_V1))
#define BIT_GET_BSSID4_V1(x)				(((x) >> BIT_SHIFT_BSSID4_V1) & BIT_MASK_BSSID4_V1)
#define BIT_SET_BSSID4_V1(x, v)			(BIT_CLEAR_BSSID4_V1(x) | BIT_BSSID4_V1(v))


/* 2 REG_BSSID4_H				(Offset 0x164C) */


#define BIT_SHIFT_BSSID4_H_V1				0
#define BIT_MASK_BSSID4_H_V1				0xffff
#define BIT_BSSID4_H_V1(x)				(((x) & BIT_MASK_BSSID4_H_V1) << BIT_SHIFT_BSSID4_H_V1)
#define BITS_BSSID4_H_V1				(BIT_MASK_BSSID4_H_V1 << BIT_SHIFT_BSSID4_H_V1)
#define BIT_CLEAR_BSSID4_H_V1(x)			((x) & (~BITS_BSSID4_H_V1))
#define BIT_GET_BSSID4_H_V1(x)				(((x) >> BIT_SHIFT_BSSID4_H_V1) & BIT_MASK_BSSID4_H_V1)
#define BIT_SET_BSSID4_H_V1(x, v)			(BIT_CLEAR_BSSID4_H_V1(x) | BIT_BSSID4_H_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_NOA_REPORT				(Offset 0x1650) */


#define BIT_SHIFT_NOA_RPT				0
#define BIT_MASK_NOA_RPT				0xffffffffL
#define BIT_NOA_RPT(x)					(((x) & BIT_MASK_NOA_RPT) << BIT_SHIFT_NOA_RPT)
#define BITS_NOA_RPT					(BIT_MASK_NOA_RPT << BIT_SHIFT_NOA_RPT)
#define BIT_CLEAR_NOA_RPT(x)				((x) & (~BITS_NOA_RPT))
#define BIT_GET_NOA_RPT(x)				(((x) >> BIT_SHIFT_NOA_RPT) & BIT_MASK_NOA_RPT)
#define BIT_SET_NOA_RPT(x, v)				(BIT_CLEAR_NOA_RPT(x) | BIT_NOA_RPT(v))


/* 2 REG_NOA_REPORT_1			(Offset 0x1654) */


#define BIT_SHIFT_NOA_RPT_1				0
#define BIT_MASK_NOA_RPT_1				0xffffffffL
#define BIT_NOA_RPT_1(x)				(((x) & BIT_MASK_NOA_RPT_1) << BIT_SHIFT_NOA_RPT_1)
#define BITS_NOA_RPT_1					(BIT_MASK_NOA_RPT_1 << BIT_SHIFT_NOA_RPT_1)
#define BIT_CLEAR_NOA_RPT_1(x)				((x) & (~BITS_NOA_RPT_1))
#define BIT_GET_NOA_RPT_1(x)				(((x) >> BIT_SHIFT_NOA_RPT_1) & BIT_MASK_NOA_RPT_1)
#define BIT_SET_NOA_RPT_1(x, v)			(BIT_CLEAR_NOA_RPT_1(x) | BIT_NOA_RPT_1(v))


/* 2 REG_NOA_REPORT_2			(Offset 0x1658) */


#define BIT_SHIFT_NOA_RPT_2				0
#define BIT_MASK_NOA_RPT_2				0xffffffffL
#define BIT_NOA_RPT_2(x)				(((x) & BIT_MASK_NOA_RPT_2) << BIT_SHIFT_NOA_RPT_2)
#define BITS_NOA_RPT_2					(BIT_MASK_NOA_RPT_2 << BIT_SHIFT_NOA_RPT_2)
#define BIT_CLEAR_NOA_RPT_2(x)				((x) & (~BITS_NOA_RPT_2))
#define BIT_GET_NOA_RPT_2(x)				(((x) >> BIT_SHIFT_NOA_RPT_2) & BIT_MASK_NOA_RPT_2)
#define BIT_SET_NOA_RPT_2(x, v)			(BIT_CLEAR_NOA_RPT_2(x) | BIT_NOA_RPT_2(v))


/* 2 REG_NOA_REPORT_3			(Offset 0x165C) */


#define BIT_SHIFT_NOA_RPT_3				0
#define BIT_MASK_NOA_RPT_3				0xff
#define BIT_NOA_RPT_3(x)				(((x) & BIT_MASK_NOA_RPT_3) << BIT_SHIFT_NOA_RPT_3)
#define BITS_NOA_RPT_3					(BIT_MASK_NOA_RPT_3 << BIT_SHIFT_NOA_RPT_3)
#define BIT_CLEAR_NOA_RPT_3(x)				((x) & (~BITS_NOA_RPT_3))
#define BIT_GET_NOA_RPT_3(x)				(((x) >> BIT_SHIFT_NOA_RPT_3) & BIT_MASK_NOA_RPT_3)
#define BIT_SET_NOA_RPT_3(x, v)			(BIT_CLEAR_NOA_RPT_3(x) | BIT_NOA_RPT_3(v))


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI3_WMAC_TCRPWRMGT_HWCTL_EN		BIT(15)
#define BIT_CLI3_WMAC_TCRPWRMGT_HWDATA_EN		BIT(14)
#define BIT_CLI3_WMAC_TCRPWRMGT_HWACT_EN		BIT(13)
#define BIT_CLI3_PWR_ST_V1				BIT(12)
#define BIT_CLI2_WMAC_TCRPWRMGT_HWCTL_EN		BIT(11)
#define BIT_CLI2_WMAC_TCRPWRMGT_HWDATA_EN		BIT(10)
#define BIT_CLI2_WMAC_TCRPWRMGT_HWACT_EN		BIT(9)
#define BIT_CLI2_PWR_ST_V1				BIT(8)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI3_PWRBIT_OW_EN				BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_WMAC_TCRPWRMGT_HWCTL_EN		BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI3_PWR_ST				BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_WMAC_TCRPWRMGT_HWDATA_EN		BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI2_PWRBIT_OW_EN				BIT(5)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_WMAC_TCRPWRMGT_HWACT_EN		BIT(5)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI2_PWR_ST				BIT(4)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_PWR_ST_V1				BIT(4)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_PWRBIT_OW_EN				BIT(3)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_WMAC_TCRPWRMGT_HWCTL_EN		BIT(3)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI1_PWR_ST				BIT(2)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_WMAC_TCRPWRMGT_HWDATA_EN		BIT(2)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_PWRBIT_OW_EN				BIT(1)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_WMAC_TCRPWRMGT_HWACT_EN		BIT(1)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_PWR_ST				BIT(0)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_PWRBIT_SETTING			(Offset 0x1660) */

#define BIT_CLI0_PWR_ST_V1				BIT(0)

/* 2 REG_GENERAL_OPTION			(Offset 0x1664) */

#define BIT_TXSERV_FIELD_SEL				BIT(2)
#define BIT_RXVHT_LEN_SEL				BIT(1)
#define BIT_RXMIC_PROTECT_EN				BIT(0)

/* 2 REG_FWPHYFF_RCR				(Offset 0x1668) */

#define BIT_RCR2_AAMSDU				BIT(25)
#define BIT_RCR2_CBSSID_BCN				BIT(24)
#define BIT_RCR2_ACRC32				BIT(23)
#define BIT_RCR2_TA_BCN				BIT(22)
#define BIT_RCR2_CBSSID_DATA				BIT(21)
#define BIT_RCR2_ADD3					BIT(20)
#define BIT_RCR2_AB					BIT(19)
#define BIT_RCR2_AM					BIT(18)
#define BIT_RCR2_APM					BIT(17)
#define BIT_RCR2_AAP					BIT(16)
#define BIT_RCR1_AAMSDU				BIT(9)
#define BIT_RCR1_CBSSID_BCN				BIT(8)
#define BIT_RCR1_ACRC32				BIT(7)
#define BIT_RCR1_TA_BCN				BIT(6)
#define BIT_RCR1_CBSSID_DATA				BIT(5)
#define BIT_RCR1_ADD3					BIT(4)
#define BIT_RCR1_AB					BIT(3)
#define BIT_RCR1_AM					BIT(2)
#define BIT_RCR1_APM					BIT(1)
#define BIT_RCR1_AAP					BIT(0)

/* 2 REG_ADDRCAM_WRITE_CONTENT		(Offset 0x166C) */


#define BIT_SHIFT_ADDRCAM_WDATA			0
#define BIT_MASK_ADDRCAM_WDATA				0xffffffffL
#define BIT_ADDRCAM_WDATA(x)				(((x) & BIT_MASK_ADDRCAM_WDATA) << BIT_SHIFT_ADDRCAM_WDATA)
#define BITS_ADDRCAM_WDATA				(BIT_MASK_ADDRCAM_WDATA << BIT_SHIFT_ADDRCAM_WDATA)
#define BIT_CLEAR_ADDRCAM_WDATA(x)			((x) & (~BITS_ADDRCAM_WDATA))
#define BIT_GET_ADDRCAM_WDATA(x)			(((x) >> BIT_SHIFT_ADDRCAM_WDATA) & BIT_MASK_ADDRCAM_WDATA)
#define BIT_SET_ADDRCAM_WDATA(x, v)			(BIT_CLEAR_ADDRCAM_WDATA(x) | BIT_ADDRCAM_WDATA(v))


/* 2 REG_ADDRCAM_READ_CONTENT		(Offset 0x1670) */


#define BIT_SHIFT_ADDRCAM_RDATA			0
#define BIT_MASK_ADDRCAM_RDATA				0xffffffffL
#define BIT_ADDRCAM_RDATA(x)				(((x) & BIT_MASK_ADDRCAM_RDATA) << BIT_SHIFT_ADDRCAM_RDATA)
#define BITS_ADDRCAM_RDATA				(BIT_MASK_ADDRCAM_RDATA << BIT_SHIFT_ADDRCAM_RDATA)
#define BIT_CLEAR_ADDRCAM_RDATA(x)			((x) & (~BITS_ADDRCAM_RDATA))
#define BIT_GET_ADDRCAM_RDATA(x)			(((x) >> BIT_SHIFT_ADDRCAM_RDATA) & BIT_MASK_ADDRCAM_RDATA)
#define BIT_SET_ADDRCAM_RDATA(x, v)			(BIT_CLEAR_ADDRCAM_RDATA(x) | BIT_ADDRCAM_RDATA(v))


/* 2 REG_ADDRCAM_CFG				(Offset 0x1674) */

#define BIT_ADDRCAM_POLL				BIT(31)
#define BIT__ADDRCAM_WT_EN				BIT(30)
#define BIT_CLRADDRCAM					BIT(29)

#define BIT_SHIFT__ADDRCAM_ADDR			8
#define BIT_MASK__ADDRCAM_ADDR				0x3ff
#define BIT__ADDRCAM_ADDR(x)				(((x) & BIT_MASK__ADDRCAM_ADDR) << BIT_SHIFT__ADDRCAM_ADDR)
#define BITS__ADDRCAM_ADDR				(BIT_MASK__ADDRCAM_ADDR << BIT_SHIFT__ADDRCAM_ADDR)
#define BIT_CLEAR__ADDRCAM_ADDR(x)			((x) & (~BITS__ADDRCAM_ADDR))
#define BIT_GET__ADDRCAM_ADDR(x)			(((x) >> BIT_SHIFT__ADDRCAM_ADDR) & BIT_MASK__ADDRCAM_ADDR)
#define BIT_SET__ADDRCAM_ADDR(x, v)			(BIT_CLEAR__ADDRCAM_ADDR(x) | BIT__ADDRCAM_ADDR(v))


#define BIT_SHIFT_ADDRCAM_RANGE			0
#define BIT_MASK_ADDRCAM_RANGE				0x7f
#define BIT_ADDRCAM_RANGE(x)				(((x) & BIT_MASK_ADDRCAM_RANGE) << BIT_SHIFT_ADDRCAM_RANGE)
#define BITS_ADDRCAM_RANGE				(BIT_MASK_ADDRCAM_RANGE << BIT_SHIFT_ADDRCAM_RANGE)
#define BIT_CLEAR_ADDRCAM_RANGE(x)			((x) & (~BITS_ADDRCAM_RANGE))
#define BIT_GET_ADDRCAM_RANGE(x)			(((x) >> BIT_SHIFT_ADDRCAM_RANGE) & BIT_MASK_ADDRCAM_RANGE)
#define BIT_SET_ADDRCAM_RANGE(x, v)			(BIT_CLEAR_ADDRCAM_RANGE(x) | BIT_ADDRCAM_RANGE(v))


/* 2 REG_CSI_RRSR				(Offset 0x1678) */

#define BIT_CSI_LDPC_EN				BIT(29)
#define BIT_CSI_STBC_EN				BIT(28)

#define BIT_SHIFT_CSI_RRSC_BITMAP			4
#define BIT_MASK_CSI_RRSC_BITMAP			0xffffff
#define BIT_CSI_RRSC_BITMAP(x)				(((x) & BIT_MASK_CSI_RRSC_BITMAP) << BIT_SHIFT_CSI_RRSC_BITMAP)
#define BITS_CSI_RRSC_BITMAP				(BIT_MASK_CSI_RRSC_BITMAP << BIT_SHIFT_CSI_RRSC_BITMAP)
#define BIT_CLEAR_CSI_RRSC_BITMAP(x)			((x) & (~BITS_CSI_RRSC_BITMAP))
#define BIT_GET_CSI_RRSC_BITMAP(x)			(((x) >> BIT_SHIFT_CSI_RRSC_BITMAP) & BIT_MASK_CSI_RRSC_BITMAP)
#define BIT_SET_CSI_RRSC_BITMAP(x, v)			(BIT_CLEAR_CSI_RRSC_BITMAP(x) | BIT_CSI_RRSC_BITMAP(v))


#define BIT_SHIFT_OFDM_LEN_TH				0
#define BIT_MASK_OFDM_LEN_TH				0xf
#define BIT_OFDM_LEN_TH(x)				(((x) & BIT_MASK_OFDM_LEN_TH) << BIT_SHIFT_OFDM_LEN_TH)
#define BITS_OFDM_LEN_TH				(BIT_MASK_OFDM_LEN_TH << BIT_SHIFT_OFDM_LEN_TH)
#define BIT_CLEAR_OFDM_LEN_TH(x)			((x) & (~BITS_OFDM_LEN_TH))
#define BIT_GET_OFDM_LEN_TH(x)				(((x) >> BIT_SHIFT_OFDM_LEN_TH) & BIT_MASK_OFDM_LEN_TH)
#define BIT_SET_OFDM_LEN_TH(x, v)			(BIT_CLEAR_OFDM_LEN_TH(x) | BIT_OFDM_LEN_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_BF_OPTION			(Offset 0x167C) */

#define BIT_BIT_WMAC_TXMU_ACKPOLICY_EN			BIT(6)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_MU_BF_OPTION			(Offset 0x167C) */

#define BIT_WMAC_TXMU_ACKPOLICY_EN			BIT(6)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_PAUSE_BB_CLR_TH		(Offset 0x167D) */


#define BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH			0
#define BIT_MASK_WMAC_PAUSE_BB_CLR_TH			0xff
#define BIT_WMAC_PAUSE_BB_CLR_TH(x)			(((x) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH) << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH)
#define BITS_WMAC_PAUSE_BB_CLR_TH			(BIT_MASK_WMAC_PAUSE_BB_CLR_TH << BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH)
#define BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH(x)		((x) & (~BITS_WMAC_PAUSE_BB_CLR_TH))
#define BIT_GET_WMAC_PAUSE_BB_CLR_TH(x)		(((x) >> BIT_SHIFT_WMAC_PAUSE_BB_CLR_TH) & BIT_MASK_WMAC_PAUSE_BB_CLR_TH)
#define BIT_SET_WMAC_PAUSE_BB_CLR_TH(x, v)		(BIT_CLEAR_WMAC_PAUSE_BB_CLR_TH(x) | BIT_WMAC_PAUSE_BB_CLR_TH(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_ARB				(Offset 0x167E) */

#define BIT_WMAC_ARB_HW_ADAPT_EN			BIT(7)
#define BIT_WMAC_ARB_SW_EN				BIT(6)

#define BIT_SHIFT_WMAC_ARB_SW_STATE			0
#define BIT_MASK_WMAC_ARB_SW_STATE			0x3f
#define BIT_WMAC_ARB_SW_STATE(x)			(((x) & BIT_MASK_WMAC_ARB_SW_STATE) << BIT_SHIFT_WMAC_ARB_SW_STATE)
#define BITS_WMAC_ARB_SW_STATE				(BIT_MASK_WMAC_ARB_SW_STATE << BIT_SHIFT_WMAC_ARB_SW_STATE)
#define BIT_CLEAR_WMAC_ARB_SW_STATE(x)			((x) & (~BITS_WMAC_ARB_SW_STATE))
#define BIT_GET_WMAC_ARB_SW_STATE(x)			(((x) >> BIT_SHIFT_WMAC_ARB_SW_STATE) & BIT_MASK_WMAC_ARB_SW_STATE)
#define BIT_SET_WMAC_ARB_SW_STATE(x, v)		(BIT_CLEAR_WMAC_ARB_SW_STATE(x) | BIT_WMAC_ARB_SW_STATE(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_MULBK_BUF			(Offset 0x167E) */


#define BIT_SHIFT_WMAC_MULBK_PAGE_SIZE			0
#define BIT_MASK_WMAC_MULBK_PAGE_SIZE			0xff
#define BIT_WMAC_MULBK_PAGE_SIZE(x)			(((x) & BIT_MASK_WMAC_MULBK_PAGE_SIZE) << BIT_SHIFT_WMAC_MULBK_PAGE_SIZE)
#define BITS_WMAC_MULBK_PAGE_SIZE			(BIT_MASK_WMAC_MULBK_PAGE_SIZE << BIT_SHIFT_WMAC_MULBK_PAGE_SIZE)
#define BIT_CLEAR_WMAC_MULBK_PAGE_SIZE(x)		((x) & (~BITS_WMAC_MULBK_PAGE_SIZE))
#define BIT_GET_WMAC_MULBK_PAGE_SIZE(x)		(((x) >> BIT_SHIFT_WMAC_MULBK_PAGE_SIZE) & BIT_MASK_WMAC_MULBK_PAGE_SIZE)
#define BIT_SET_WMAC_MULBK_PAGE_SIZE(x, v)		(BIT_CLEAR_WMAC_MULBK_PAGE_SIZE(x) | BIT_WMAC_MULBK_PAGE_SIZE(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */

#define BIT_WMAC_NOCHK_BFPOLL_BMP			BIT(7)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */

#define BIT_NOCHK_BFPOLL_BMP				BIT(7)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */


#define BIT_SHIFT_WMAC_MU_DBGSEL			5
#define BIT_MASK_WMAC_MU_DBGSEL			0x3
#define BIT_WMAC_MU_DBGSEL(x)				(((x) & BIT_MASK_WMAC_MU_DBGSEL) << BIT_SHIFT_WMAC_MU_DBGSEL)
#define BITS_WMAC_MU_DBGSEL				(BIT_MASK_WMAC_MU_DBGSEL << BIT_SHIFT_WMAC_MU_DBGSEL)
#define BIT_CLEAR_WMAC_MU_DBGSEL(x)			((x) & (~BITS_WMAC_MU_DBGSEL))
#define BIT_GET_WMAC_MU_DBGSEL(x)			(((x) >> BIT_SHIFT_WMAC_MU_DBGSEL) & BIT_MASK_WMAC_MU_DBGSEL)
#define BIT_SET_WMAC_MU_DBGSEL(x, v)			(BIT_CLEAR_WMAC_MU_DBGSEL(x) | BIT_WMAC_MU_DBGSEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */


#define BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT			0
#define BIT_MASK_WMAC_MU_CPRD_TIMEOUT			0x1f
#define BIT_WMAC_MU_CPRD_TIMEOUT(x)			(((x) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT) << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT)
#define BITS_WMAC_MU_CPRD_TIMEOUT			(BIT_MASK_WMAC_MU_CPRD_TIMEOUT << BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT)
#define BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT(x)		((x) & (~BITS_WMAC_MU_CPRD_TIMEOUT))
#define BIT_GET_WMAC_MU_CPRD_TIMEOUT(x)		(((x) >> BIT_SHIFT_WMAC_MU_CPRD_TIMEOUT) & BIT_MASK_WMAC_MU_CPRD_TIMEOUT)
#define BIT_SET_WMAC_MU_CPRD_TIMEOUT(x, v)		(BIT_CLEAR_WMAC_MU_CPRD_TIMEOUT(x) | BIT_WMAC_MU_CPRD_TIMEOUT(v))


#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_MU_OPTION			(Offset 0x167F) */


#define BIT_SHIFT_CSI_PARA_RDY_DLYCNT			0
#define BIT_MASK_CSI_PARA_RDY_DLYCNT			0x1f
#define BIT_CSI_PARA_RDY_DLYCNT(x)			(((x) & BIT_MASK_CSI_PARA_RDY_DLYCNT) << BIT_SHIFT_CSI_PARA_RDY_DLYCNT)
#define BITS_CSI_PARA_RDY_DLYCNT			(BIT_MASK_CSI_PARA_RDY_DLYCNT << BIT_SHIFT_CSI_PARA_RDY_DLYCNT)
#define BIT_CLEAR_CSI_PARA_RDY_DLYCNT(x)		((x) & (~BITS_CSI_PARA_RDY_DLYCNT))
#define BIT_GET_CSI_PARA_RDY_DLYCNT(x)			(((x) >> BIT_SHIFT_CSI_PARA_RDY_DLYCNT) & BIT_MASK_CSI_PARA_RDY_DLYCNT)
#define BIT_SET_CSI_PARA_RDY_DLYCNT(x, v)		(BIT_CLEAR_CSI_PARA_RDY_DLYCNT(x) | BIT_CSI_PARA_RDY_DLYCNT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_BF_CTL			(Offset 0x1680) */

#define BIT_WMAC_INVLD_BFPRT_CHK			BIT(15)
#define BIT_WMAC_RETXBFRPTSEQ_UPD			BIT(14)

#define BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL			12
#define BIT_MASK_WMAC_MU_BFRPTSEG_SEL			0x3
#define BIT_WMAC_MU_BFRPTSEG_SEL(x)			(((x) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL) << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL)
#define BITS_WMAC_MU_BFRPTSEG_SEL			(BIT_MASK_WMAC_MU_BFRPTSEG_SEL << BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL)
#define BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL(x)		((x) & (~BITS_WMAC_MU_BFRPTSEG_SEL))
#define BIT_GET_WMAC_MU_BFRPTSEG_SEL(x)		(((x) >> BIT_SHIFT_WMAC_MU_BFRPTSEG_SEL) & BIT_MASK_WMAC_MU_BFRPTSEG_SEL)
#define BIT_SET_WMAC_MU_BFRPTSEG_SEL(x, v)		(BIT_CLEAR_WMAC_MU_BFRPTSEG_SEL(x) | BIT_WMAC_MU_BFRPTSEG_SEL(v))


#define BIT_SHIFT_WMAC_MU_BF_MYAID			0
#define BIT_MASK_WMAC_MU_BF_MYAID			0xfff
#define BIT_WMAC_MU_BF_MYAID(x)			(((x) & BIT_MASK_WMAC_MU_BF_MYAID) << BIT_SHIFT_WMAC_MU_BF_MYAID)
#define BITS_WMAC_MU_BF_MYAID				(BIT_MASK_WMAC_MU_BF_MYAID << BIT_SHIFT_WMAC_MU_BF_MYAID)
#define BIT_CLEAR_WMAC_MU_BF_MYAID(x)			((x) & (~BITS_WMAC_MU_BF_MYAID))
#define BIT_GET_WMAC_MU_BF_MYAID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BF_MYAID) & BIT_MASK_WMAC_MU_BF_MYAID)
#define BIT_SET_WMAC_MU_BF_MYAID(x, v)			(BIT_CLEAR_WMAC_MU_BF_MYAID(x) | BIT_WMAC_MU_BF_MYAID(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */


#define BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1		13
#define BIT_MASK_BFRPT_PARA_USERID_SEL_V1		0x7
#define BIT_BFRPT_PARA_USERID_SEL_V1(x)		(((x) & BIT_MASK_BFRPT_PARA_USERID_SEL_V1) << BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1)
#define BITS_BFRPT_PARA_USERID_SEL_V1			(BIT_MASK_BFRPT_PARA_USERID_SEL_V1 << BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1)
#define BIT_CLEAR_BFRPT_PARA_USERID_SEL_V1(x)		((x) & (~BITS_BFRPT_PARA_USERID_SEL_V1))
#define BIT_GET_BFRPT_PARA_USERID_SEL_V1(x)		(((x) >> BIT_SHIFT_BFRPT_PARA_USERID_SEL_V1) & BIT_MASK_BFRPT_PARA_USERID_SEL_V1)
#define BIT_SET_BFRPT_PARA_USERID_SEL_V1(x, v)	(BIT_CLEAR_BFRPT_PARA_USERID_SEL_V1(x) | BIT_BFRPT_PARA_USERID_SEL_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */


#define BIT_SHIFT_BFRPT_PARA_USERID_SEL		12
#define BIT_MASK_BFRPT_PARA_USERID_SEL			0x7
#define BIT_BFRPT_PARA_USERID_SEL(x)			(((x) & BIT_MASK_BFRPT_PARA_USERID_SEL) << BIT_SHIFT_BFRPT_PARA_USERID_SEL)
#define BITS_BFRPT_PARA_USERID_SEL			(BIT_MASK_BFRPT_PARA_USERID_SEL << BIT_SHIFT_BFRPT_PARA_USERID_SEL)
#define BIT_CLEAR_BFRPT_PARA_USERID_SEL(x)		((x) & (~BITS_BFRPT_PARA_USERID_SEL))
#define BIT_GET_BFRPT_PARA_USERID_SEL(x)		(((x) >> BIT_SHIFT_BFRPT_PARA_USERID_SEL) & BIT_MASK_BFRPT_PARA_USERID_SEL)
#define BIT_SET_BFRPT_PARA_USERID_SEL(x, v)		(BIT_CLEAR_BFRPT_PARA_USERID_SEL(x) | BIT_BFRPT_PARA_USERID_SEL(v))


#endif


#if (HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */


#define BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL		12
#define BIT_MASK_BIT_BFRPT_PARA_USERID_SEL		0x7
#define BIT_BIT_BFRPT_PARA_USERID_SEL(x)		(((x) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL) << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL)
#define BITS_BIT_BFRPT_PARA_USERID_SEL			(BIT_MASK_BIT_BFRPT_PARA_USERID_SEL << BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL)
#define BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL(x)	((x) & (~BITS_BIT_BFRPT_PARA_USERID_SEL))
#define BIT_GET_BIT_BFRPT_PARA_USERID_SEL(x)		(((x) >> BIT_SHIFT_BIT_BFRPT_PARA_USERID_SEL) & BIT_MASK_BIT_BFRPT_PARA_USERID_SEL)
#define BIT_SET_BIT_BFRPT_PARA_USERID_SEL(x, v)	(BIT_CLEAR_BIT_BFRPT_PARA_USERID_SEL(x) | BIT_BIT_BFRPT_PARA_USERID_SEL(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */


#define BIT_SHIFT_BFRPT_PARA				0
#define BIT_MASK_BFRPT_PARA				0xfff
#define BIT_BFRPT_PARA(x)				(((x) & BIT_MASK_BFRPT_PARA) << BIT_SHIFT_BFRPT_PARA)
#define BITS_BFRPT_PARA				(BIT_MASK_BFRPT_PARA << BIT_SHIFT_BFRPT_PARA)
#define BIT_CLEAR_BFRPT_PARA(x)			((x) & (~BITS_BFRPT_PARA))
#define BIT_GET_BFRPT_PARA(x)				(((x) >> BIT_SHIFT_BFRPT_PARA) & BIT_MASK_BFRPT_PARA)
#define BIT_SET_BFRPT_PARA(x, v)			(BIT_CLEAR_BFRPT_PARA(x) | BIT_BFRPT_PARA(v))


#endif


#if (HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_MU_BFRPT_PARA			(Offset 0x1682) */


#define BIT_SHIFT_BFRPT_PARA_V1			0
#define BIT_MASK_BFRPT_PARA_V1				0x1fff
#define BIT_BFRPT_PARA_V1(x)				(((x) & BIT_MASK_BFRPT_PARA_V1) << BIT_SHIFT_BFRPT_PARA_V1)
#define BITS_BFRPT_PARA_V1				(BIT_MASK_BFRPT_PARA_V1 << BIT_SHIFT_BFRPT_PARA_V1)
#define BIT_CLEAR_BFRPT_PARA_V1(x)			((x) & (~BITS_BFRPT_PARA_V1))
#define BIT_GET_BFRPT_PARA_V1(x)			(((x) >> BIT_SHIFT_BFRPT_PARA_V1) & BIT_MASK_BFRPT_PARA_V1)
#define BIT_SET_BFRPT_PARA_V1(x, v)			(BIT_CLEAR_BFRPT_PARA_V1(x) | BIT_BFRPT_PARA_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2		(Offset 0x1684) */

#define BIT_STATUS_BFEE2				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2		(Offset 0x1684) */

#define BIT_WMAC_MU_BFEE2_EN				BIT(9)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2		(Offset 0x1684) */

#define BIT_WMAC_MU_BFEE2_USER_EN			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE2		(Offset 0x1684) */


#define BIT_SHIFT_WMAC_MU_BFEE2_AID			0
#define BIT_MASK_WMAC_MU_BFEE2_AID			0x1ff
#define BIT_WMAC_MU_BFEE2_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE2_AID) << BIT_SHIFT_WMAC_MU_BFEE2_AID)
#define BITS_WMAC_MU_BFEE2_AID				(BIT_MASK_WMAC_MU_BFEE2_AID << BIT_SHIFT_WMAC_MU_BFEE2_AID)
#define BIT_CLEAR_WMAC_MU_BFEE2_AID(x)			((x) & (~BITS_WMAC_MU_BFEE2_AID))
#define BIT_GET_WMAC_MU_BFEE2_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE2_AID) & BIT_MASK_WMAC_MU_BFEE2_AID)
#define BIT_SET_WMAC_MU_BFEE2_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE2_AID(x) | BIT_WMAC_MU_BFEE2_AID(v))


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3		(Offset 0x1686) */

#define BIT_STATUS_BFEE3				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3		(Offset 0x1686) */

#define BIT_WMAC_MU_BFEE3_EN				BIT(9)

#endif


#if (HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3		(Offset 0x1686) */

#define BIT_WMAC_MU_BFEE3_USER_EN			BIT(9)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE3		(Offset 0x1686) */


#define BIT_SHIFT_WMAC_MU_BFEE3_AID			0
#define BIT_MASK_WMAC_MU_BFEE3_AID			0x1ff
#define BIT_WMAC_MU_BFEE3_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE3_AID) << BIT_SHIFT_WMAC_MU_BFEE3_AID)
#define BITS_WMAC_MU_BFEE3_AID				(BIT_MASK_WMAC_MU_BFEE3_AID << BIT_SHIFT_WMAC_MU_BFEE3_AID)
#define BIT_CLEAR_WMAC_MU_BFEE3_AID(x)			((x) & (~BITS_WMAC_MU_BFEE3_AID))
#define BIT_GET_WMAC_MU_BFEE3_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE3_AID) & BIT_MASK_WMAC_MU_BFEE3_AID)
#define BIT_SET_WMAC_MU_BFEE3_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE3_AID(x) | BIT_WMAC_MU_BFEE3_AID(v))


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE4		(Offset 0x1688) */

#define BIT_STATUS_BFEE4				BIT(10)
#define BIT_WMAC_MU_BFEE4_EN				BIT(9)

#define BIT_SHIFT_WMAC_MU_BFEE4_AID			0
#define BIT_MASK_WMAC_MU_BFEE4_AID			0x1ff
#define BIT_WMAC_MU_BFEE4_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE4_AID) << BIT_SHIFT_WMAC_MU_BFEE4_AID)
#define BITS_WMAC_MU_BFEE4_AID				(BIT_MASK_WMAC_MU_BFEE4_AID << BIT_SHIFT_WMAC_MU_BFEE4_AID)
#define BIT_CLEAR_WMAC_MU_BFEE4_AID(x)			((x) & (~BITS_WMAC_MU_BFEE4_AID))
#define BIT_GET_WMAC_MU_BFEE4_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE4_AID) & BIT_MASK_WMAC_MU_BFEE4_AID)
#define BIT_SET_WMAC_MU_BFEE4_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE4_AID(x) | BIT_WMAC_MU_BFEE4_AID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5		(Offset 0x168A) */

#define BIT_STATUS_BFEE5				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5		(Offset 0x168A) */

#define BIT_BIT_STATUS_BFEE5				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE5		(Offset 0x168A) */

#define BIT_WMAC_MU_BFEE5_EN				BIT(9)

#define BIT_SHIFT_WMAC_MU_BFEE5_AID			0
#define BIT_MASK_WMAC_MU_BFEE5_AID			0x1ff
#define BIT_WMAC_MU_BFEE5_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE5_AID) << BIT_SHIFT_WMAC_MU_BFEE5_AID)
#define BITS_WMAC_MU_BFEE5_AID				(BIT_MASK_WMAC_MU_BFEE5_AID << BIT_SHIFT_WMAC_MU_BFEE5_AID)
#define BIT_CLEAR_WMAC_MU_BFEE5_AID(x)			((x) & (~BITS_WMAC_MU_BFEE5_AID))
#define BIT_GET_WMAC_MU_BFEE5_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE5_AID) & BIT_MASK_WMAC_MU_BFEE5_AID)
#define BIT_SET_WMAC_MU_BFEE5_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE5_AID(x) | BIT_WMAC_MU_BFEE5_AID(v))


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE6		(Offset 0x168C) */

#define BIT_STATUS_BFEE6				BIT(10)
#define BIT_WMAC_MU_BFEE6_EN				BIT(9)

#define BIT_SHIFT_WMAC_MU_BFEE6_AID			0
#define BIT_MASK_WMAC_MU_BFEE6_AID			0x1ff
#define BIT_WMAC_MU_BFEE6_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE6_AID) << BIT_SHIFT_WMAC_MU_BFEE6_AID)
#define BITS_WMAC_MU_BFEE6_AID				(BIT_MASK_WMAC_MU_BFEE6_AID << BIT_SHIFT_WMAC_MU_BFEE6_AID)
#define BIT_CLEAR_WMAC_MU_BFEE6_AID(x)			((x) & (~BITS_WMAC_MU_BFEE6_AID))
#define BIT_GET_WMAC_MU_BFEE6_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE6_AID) & BIT_MASK_WMAC_MU_BFEE6_AID)
#define BIT_SET_WMAC_MU_BFEE6_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE6_AID(x) | BIT_WMAC_MU_BFEE6_AID(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7		(Offset 0x168E) */

#define BIT_BIT_STATUS_BFEE4				BIT(10)

#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7		(Offset 0x168E) */

#define BIT_STATUS_BFEE7				BIT(10)

#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_ASSOCIATED_MU_BFMEE7		(Offset 0x168E) */

#define BIT_WMAC_MU_BFEE7_EN				BIT(9)

#define BIT_SHIFT_WMAC_MU_BFEE7_AID			0
#define BIT_MASK_WMAC_MU_BFEE7_AID			0x1ff
#define BIT_WMAC_MU_BFEE7_AID(x)			(((x) & BIT_MASK_WMAC_MU_BFEE7_AID) << BIT_SHIFT_WMAC_MU_BFEE7_AID)
#define BITS_WMAC_MU_BFEE7_AID				(BIT_MASK_WMAC_MU_BFEE7_AID << BIT_SHIFT_WMAC_MU_BFEE7_AID)
#define BIT_CLEAR_WMAC_MU_BFEE7_AID(x)			((x) & (~BITS_WMAC_MU_BFEE7_AID))
#define BIT_GET_WMAC_MU_BFEE7_AID(x)			(((x) >> BIT_SHIFT_WMAC_MU_BFEE7_AID) & BIT_MASK_WMAC_MU_BFEE7_AID)
#define BIT_SET_WMAC_MU_BFEE7_AID(x, v)		(BIT_CLEAR_WMAC_MU_BFEE7_AID(x) | BIT_WMAC_MU_BFEE7_AID(v))


/* 2 REG_WMAC_BB_STOP_RX_COUNTER		(Offset 0x1690) */

#define BIT_RST_ALL_COUNTER				BIT(31)

#define BIT_SHIFT_ABORT_RX_VBON_COUNTER		16
#define BIT_MASK_ABORT_RX_VBON_COUNTER			0xff
#define BIT_ABORT_RX_VBON_COUNTER(x)			(((x) & BIT_MASK_ABORT_RX_VBON_COUNTER) << BIT_SHIFT_ABORT_RX_VBON_COUNTER)
#define BITS_ABORT_RX_VBON_COUNTER			(BIT_MASK_ABORT_RX_VBON_COUNTER << BIT_SHIFT_ABORT_RX_VBON_COUNTER)
#define BIT_CLEAR_ABORT_RX_VBON_COUNTER(x)		((x) & (~BITS_ABORT_RX_VBON_COUNTER))
#define BIT_GET_ABORT_RX_VBON_COUNTER(x)		(((x) >> BIT_SHIFT_ABORT_RX_VBON_COUNTER) & BIT_MASK_ABORT_RX_VBON_COUNTER)
#define BIT_SET_ABORT_RX_VBON_COUNTER(x, v)		(BIT_CLEAR_ABORT_RX_VBON_COUNTER(x) | BIT_ABORT_RX_VBON_COUNTER(v))


#define BIT_SHIFT_ABORT_RX_RDRDY_COUNTER		8
#define BIT_MASK_ABORT_RX_RDRDY_COUNTER		0xff
#define BIT_ABORT_RX_RDRDY_COUNTER(x)			(((x) & BIT_MASK_ABORT_RX_RDRDY_COUNTER) << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER)
#define BITS_ABORT_RX_RDRDY_COUNTER			(BIT_MASK_ABORT_RX_RDRDY_COUNTER << BIT_SHIFT_ABORT_RX_RDRDY_COUNTER)
#define BIT_CLEAR_ABORT_RX_RDRDY_COUNTER(x)		((x) & (~BITS_ABORT_RX_RDRDY_COUNTER))
#define BIT_GET_ABORT_RX_RDRDY_COUNTER(x)		(((x) >> BIT_SHIFT_ABORT_RX_RDRDY_COUNTER) & BIT_MASK_ABORT_RX_RDRDY_COUNTER)
#define BIT_SET_ABORT_RX_RDRDY_COUNTER(x, v)		(BIT_CLEAR_ABORT_RX_RDRDY_COUNTER(x) | BIT_ABORT_RX_RDRDY_COUNTER(v))


#define BIT_SHIFT_VBON_EARLY_FALLING_COUNTER		0
#define BIT_MASK_VBON_EARLY_FALLING_COUNTER		0xff
#define BIT_VBON_EARLY_FALLING_COUNTER(x)		(((x) & BIT_MASK_VBON_EARLY_FALLING_COUNTER) << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER)
#define BITS_VBON_EARLY_FALLING_COUNTER		(BIT_MASK_VBON_EARLY_FALLING_COUNTER << BIT_SHIFT_VBON_EARLY_FALLING_COUNTER)
#define BIT_CLEAR_VBON_EARLY_FALLING_COUNTER(x)	((x) & (~BITS_VBON_EARLY_FALLING_COUNTER))
#define BIT_GET_VBON_EARLY_FALLING_COUNTER(x)		(((x) >> BIT_SHIFT_VBON_EARLY_FALLING_COUNTER) & BIT_MASK_VBON_EARLY_FALLING_COUNTER)
#define BIT_SET_VBON_EARLY_FALLING_COUNTER(x, v)	(BIT_CLEAR_VBON_EARLY_FALLING_COUNTER(x) | BIT_VBON_EARLY_FALLING_COUNTER(v))


/* 2 REG_WMAC_PLCP_MONITOR			(Offset 0x1694) */

#define BIT_WMAC_PLCP_TRX_SEL				BIT(31)

#define BIT_SHIFT_WMAC_PLCP_RDSIG_SEL			28
#define BIT_MASK_WMAC_PLCP_RDSIG_SEL			0x7
#define BIT_WMAC_PLCP_RDSIG_SEL(x)			(((x) & BIT_MASK_WMAC_PLCP_RDSIG_SEL) << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL)
#define BITS_WMAC_PLCP_RDSIG_SEL			(BIT_MASK_WMAC_PLCP_RDSIG_SEL << BIT_SHIFT_WMAC_PLCP_RDSIG_SEL)
#define BIT_CLEAR_WMAC_PLCP_RDSIG_SEL(x)		((x) & (~BITS_WMAC_PLCP_RDSIG_SEL))
#define BIT_GET_WMAC_PLCP_RDSIG_SEL(x)			(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG_SEL) & BIT_MASK_WMAC_PLCP_RDSIG_SEL)
#define BIT_SET_WMAC_PLCP_RDSIG_SEL(x, v)		(BIT_CLEAR_WMAC_PLCP_RDSIG_SEL(x) | BIT_WMAC_PLCP_RDSIG_SEL(v))


#define BIT_SHIFT_WMAC_RATE_IDX			24
#define BIT_MASK_WMAC_RATE_IDX				0xf
#define BIT_WMAC_RATE_IDX(x)				(((x) & BIT_MASK_WMAC_RATE_IDX) << BIT_SHIFT_WMAC_RATE_IDX)
#define BITS_WMAC_RATE_IDX				(BIT_MASK_WMAC_RATE_IDX << BIT_SHIFT_WMAC_RATE_IDX)
#define BIT_CLEAR_WMAC_RATE_IDX(x)			((x) & (~BITS_WMAC_RATE_IDX))
#define BIT_GET_WMAC_RATE_IDX(x)			(((x) >> BIT_SHIFT_WMAC_RATE_IDX) & BIT_MASK_WMAC_RATE_IDX)
#define BIT_SET_WMAC_RATE_IDX(x, v)			(BIT_CLEAR_WMAC_RATE_IDX(x) | BIT_WMAC_RATE_IDX(v))


#define BIT_SHIFT_WMAC_PLCP_RDSIG			0
#define BIT_MASK_WMAC_PLCP_RDSIG			0xffffff
#define BIT_WMAC_PLCP_RDSIG(x)				(((x) & BIT_MASK_WMAC_PLCP_RDSIG) << BIT_SHIFT_WMAC_PLCP_RDSIG)
#define BITS_WMAC_PLCP_RDSIG				(BIT_MASK_WMAC_PLCP_RDSIG << BIT_SHIFT_WMAC_PLCP_RDSIG)
#define BIT_CLEAR_WMAC_PLCP_RDSIG(x)			((x) & (~BITS_WMAC_PLCP_RDSIG))
#define BIT_GET_WMAC_PLCP_RDSIG(x)			(((x) >> BIT_SHIFT_WMAC_PLCP_RDSIG) & BIT_MASK_WMAC_PLCP_RDSIG)
#define BIT_SET_WMAC_PLCP_RDSIG(x, v)			(BIT_CLEAR_WMAC_PLCP_RDSIG(x) | BIT_WMAC_PLCP_RDSIG(v))


#endif


#if (HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WMAC_PLCP_MONITOR_MUTX		(Offset 0x1698) */

#define BIT_WMAC_MUTX_IDX				BIT(24)

#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_WMAC_DEBUG_PORT			(Offset 0x1698) */


#define BIT_SHIFT_WMAC_DEBUG_PORT			0
#define BIT_MASK_WMAC_DEBUG_PORT			0xffffffffL
#define BIT_WMAC_DEBUG_PORT(x)				(((x) & BIT_MASK_WMAC_DEBUG_PORT) << BIT_SHIFT_WMAC_DEBUG_PORT)
#define BITS_WMAC_DEBUG_PORT				(BIT_MASK_WMAC_DEBUG_PORT << BIT_SHIFT_WMAC_DEBUG_PORT)
#define BIT_CLEAR_WMAC_DEBUG_PORT(x)			((x) & (~BITS_WMAC_DEBUG_PORT))
#define BIT_GET_WMAC_DEBUG_PORT(x)			(((x) >> BIT_SHIFT_WMAC_DEBUG_PORT) & BIT_MASK_WMAC_DEBUG_PORT)
#define BIT_SET_WMAC_DEBUG_PORT(x, v)			(BIT_CLEAR_WMAC_DEBUG_PORT(x) | BIT_WMAC_DEBUG_PORT(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_0			(Offset 0x16A0) */


#define BIT_SHIFT_TA0					0
#define BIT_MASK_TA0					0xffffffffffffL
#define BIT_TA0(x)					(((x) & BIT_MASK_TA0) << BIT_SHIFT_TA0)
#define BITS_TA0					(BIT_MASK_TA0 << BIT_SHIFT_TA0)
#define BIT_CLEAR_TA0(x)				((x) & (~BITS_TA0))
#define BIT_GET_TA0(x)					(((x) >> BIT_SHIFT_TA0) & BIT_MASK_TA0)
#define BIT_SET_TA0(x, v)				(BIT_CLEAR_TA0(x) | BIT_TA0(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_0			(Offset 0x16A0) */


#define BIT_SHIFT_TA0_V1				0
#define BIT_MASK_TA0_V1				0xffffffffL
#define BIT_TA0_V1(x)					(((x) & BIT_MASK_TA0_V1) << BIT_SHIFT_TA0_V1)
#define BITS_TA0_V1					(BIT_MASK_TA0_V1 << BIT_SHIFT_TA0_V1)
#define BIT_CLEAR_TA0_V1(x)				((x) & (~BITS_TA0_V1))
#define BIT_GET_TA0_V1(x)				(((x) >> BIT_SHIFT_TA0_V1) & BIT_MASK_TA0_V1)
#define BIT_SET_TA0_V1(x, v)				(BIT_CLEAR_TA0_V1(x) | BIT_TA0_V1(v))


/* 2 REG_TRANSMIT_ADDRSS_0_H			(Offset 0x16A4) */


#define BIT_SHIFT_TA0_H_V1				0
#define BIT_MASK_TA0_H_V1				0xffff
#define BIT_TA0_H_V1(x)				(((x) & BIT_MASK_TA0_H_V1) << BIT_SHIFT_TA0_H_V1)
#define BITS_TA0_H_V1					(BIT_MASK_TA0_H_V1 << BIT_SHIFT_TA0_H_V1)
#define BIT_CLEAR_TA0_H_V1(x)				((x) & (~BITS_TA0_H_V1))
#define BIT_GET_TA0_H_V1(x)				(((x) >> BIT_SHIFT_TA0_H_V1) & BIT_MASK_TA0_H_V1)
#define BIT_SET_TA0_H_V1(x, v)				(BIT_CLEAR_TA0_H_V1(x) | BIT_TA0_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_1			(Offset 0x16A8) */


#define BIT_SHIFT_TA1					0
#define BIT_MASK_TA1					0xffffffffffffL
#define BIT_TA1(x)					(((x) & BIT_MASK_TA1) << BIT_SHIFT_TA1)
#define BITS_TA1					(BIT_MASK_TA1 << BIT_SHIFT_TA1)
#define BIT_CLEAR_TA1(x)				((x) & (~BITS_TA1))
#define BIT_GET_TA1(x)					(((x) >> BIT_SHIFT_TA1) & BIT_MASK_TA1)
#define BIT_SET_TA1(x, v)				(BIT_CLEAR_TA1(x) | BIT_TA1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_1			(Offset 0x16A8) */


#define BIT_SHIFT_TA1_V1				0
#define BIT_MASK_TA1_V1				0xffffffffL
#define BIT_TA1_V1(x)					(((x) & BIT_MASK_TA1_V1) << BIT_SHIFT_TA1_V1)
#define BITS_TA1_V1					(BIT_MASK_TA1_V1 << BIT_SHIFT_TA1_V1)
#define BIT_CLEAR_TA1_V1(x)				((x) & (~BITS_TA1_V1))
#define BIT_GET_TA1_V1(x)				(((x) >> BIT_SHIFT_TA1_V1) & BIT_MASK_TA1_V1)
#define BIT_SET_TA1_V1(x, v)				(BIT_CLEAR_TA1_V1(x) | BIT_TA1_V1(v))


/* 2 REG_TRANSMIT_ADDRSS_1_H			(Offset 0x16AC) */


#define BIT_SHIFT_TA1_H_V1				0
#define BIT_MASK_TA1_H_V1				0xffff
#define BIT_TA1_H_V1(x)				(((x) & BIT_MASK_TA1_H_V1) << BIT_SHIFT_TA1_H_V1)
#define BITS_TA1_H_V1					(BIT_MASK_TA1_H_V1 << BIT_SHIFT_TA1_H_V1)
#define BIT_CLEAR_TA1_H_V1(x)				((x) & (~BITS_TA1_H_V1))
#define BIT_GET_TA1_H_V1(x)				(((x) >> BIT_SHIFT_TA1_H_V1) & BIT_MASK_TA1_H_V1)
#define BIT_SET_TA1_H_V1(x, v)				(BIT_CLEAR_TA1_H_V1(x) | BIT_TA1_H_V1(v))


#define BIT_SHIFT_TA2_V1				0
#define BIT_MASK_TA2_V1				0xffffffffL
#define BIT_TA2_V1(x)					(((x) & BIT_MASK_TA2_V1) << BIT_SHIFT_TA2_V1)
#define BITS_TA2_V1					(BIT_MASK_TA2_V1 << BIT_SHIFT_TA2_V1)
#define BIT_CLEAR_TA2_V1(x)				((x) & (~BITS_TA2_V1))
#define BIT_GET_TA2_V1(x)				(((x) >> BIT_SHIFT_TA2_V1) & BIT_MASK_TA2_V1)
#define BIT_SET_TA2_V1(x, v)				(BIT_CLEAR_TA2_V1(x) | BIT_TA2_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_2			(Offset 0x16B0) */


#define BIT_SHIFT_TA2					0
#define BIT_MASK_TA2					0xffffffffffffL
#define BIT_TA2(x)					(((x) & BIT_MASK_TA2) << BIT_SHIFT_TA2)
#define BITS_TA2					(BIT_MASK_TA2 << BIT_SHIFT_TA2)
#define BIT_CLEAR_TA2(x)				((x) & (~BITS_TA2))
#define BIT_GET_TA2(x)					(((x) >> BIT_SHIFT_TA2) & BIT_MASK_TA2)
#define BIT_SET_TA2(x, v)				(BIT_CLEAR_TA2(x) | BIT_TA2(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_2_H			(Offset 0x16B4) */


#define BIT_SHIFT_TA2_H_V1				0
#define BIT_MASK_TA2_H_V1				0xffff
#define BIT_TA2_H_V1(x)				(((x) & BIT_MASK_TA2_H_V1) << BIT_SHIFT_TA2_H_V1)
#define BITS_TA2_H_V1					(BIT_MASK_TA2_H_V1 << BIT_SHIFT_TA2_H_V1)
#define BIT_CLEAR_TA2_H_V1(x)				((x) & (~BITS_TA2_H_V1))
#define BIT_GET_TA2_H_V1(x)				(((x) >> BIT_SHIFT_TA2_H_V1) & BIT_MASK_TA2_H_V1)
#define BIT_SET_TA2_H_V1(x, v)				(BIT_CLEAR_TA2_H_V1(x) | BIT_TA2_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_3			(Offset 0x16B8) */


#define BIT_SHIFT_TA3					0
#define BIT_MASK_TA3					0xffffffffffffL
#define BIT_TA3(x)					(((x) & BIT_MASK_TA3) << BIT_SHIFT_TA3)
#define BITS_TA3					(BIT_MASK_TA3 << BIT_SHIFT_TA3)
#define BIT_CLEAR_TA3(x)				((x) & (~BITS_TA3))
#define BIT_GET_TA3(x)					(((x) >> BIT_SHIFT_TA3) & BIT_MASK_TA3)
#define BIT_SET_TA3(x, v)				(BIT_CLEAR_TA3(x) | BIT_TA3(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_3_H			(Offset 0x16BC) */


#define BIT_SHIFT_TA3_H_V1				0
#define BIT_MASK_TA3_H_V1				0xffff
#define BIT_TA3_H_V1(x)				(((x) & BIT_MASK_TA3_H_V1) << BIT_SHIFT_TA3_H_V1)
#define BITS_TA3_H_V1					(BIT_MASK_TA3_H_V1 << BIT_SHIFT_TA3_H_V1)
#define BIT_CLEAR_TA3_H_V1(x)				((x) & (~BITS_TA3_H_V1))
#define BIT_GET_TA3_H_V1(x)				(((x) >> BIT_SHIFT_TA3_H_V1) & BIT_MASK_TA3_H_V1)
#define BIT_SET_TA3_H_V1(x, v)				(BIT_CLEAR_TA3_H_V1(x) | BIT_TA3_H_V1(v))


#endif


#if (HALMAC_8197F_SUPPORT || HALMAC_8198F_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_4			(Offset 0x16C0) */

#define BIT_R_WMAC_RX_SYNCFIFO_SYNC			BIT(55)
#define BIT_R_WMAC_RXRST_DLY				BIT(54)
#define BIT_R_WMAC_SRCH_TXRPT_REF_DROP			BIT(53)
#define BIT_R_WMAC_SRCH_TXRPT_UA1			BIT(52)

#define BIT_SHIFT_TA4					0
#define BIT_MASK_TA4					0xffffffffffffL
#define BIT_TA4(x)					(((x) & BIT_MASK_TA4) << BIT_SHIFT_TA4)
#define BITS_TA4					(BIT_MASK_TA4 << BIT_SHIFT_TA4)
#define BIT_CLEAR_TA4(x)				((x) & (~BITS_TA4))
#define BIT_GET_TA4(x)					(((x) >> BIT_SHIFT_TA4) & BIT_MASK_TA4)
#define BIT_SET_TA4(x, v)				(BIT_CLEAR_TA4(x) | BIT_TA4(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT)


/* 2 REG_TRANSMIT_ADDRSS_4			(Offset 0x16C0) */


#define BIT_SHIFT_TA4_V1				0
#define BIT_MASK_TA4_V1				0xffffffffL
#define BIT_TA4_V1(x)					(((x) & BIT_MASK_TA4_V1) << BIT_SHIFT_TA4_V1)
#define BITS_TA4_V1					(BIT_MASK_TA4_V1 << BIT_SHIFT_TA4_V1)
#define BIT_CLEAR_TA4_V1(x)				((x) & (~BITS_TA4_V1))
#define BIT_GET_TA4_V1(x)				(((x) >> BIT_SHIFT_TA4_V1) & BIT_MASK_TA4_V1)
#define BIT_SET_TA4_V1(x, v)				(BIT_CLEAR_TA4_V1(x) | BIT_TA4_V1(v))


/* 2 REG_TRANSMIT_ADDRSS_4_H			(Offset 0x16C4) */


#define BIT_SHIFT_TA4_H_V1				0
#define BIT_MASK_TA4_H_V1				0xffff
#define BIT_TA4_H_V1(x)				(((x) & BIT_MASK_TA4_H_V1) << BIT_SHIFT_TA4_H_V1)
#define BITS_TA4_H_V1					(BIT_MASK_TA4_H_V1 << BIT_SHIFT_TA4_H_V1)
#define BIT_CLEAR_TA4_H_V1(x)				((x) & (~BITS_TA4_H_V1))
#define BIT_GET_TA4_H_V1(x)				(((x) >> BIT_SHIFT_TA4_H_V1) & BIT_MASK_TA4_H_V1)
#define BIT_SET_TA4_H_V1(x, v)				(BIT_CLEAR_TA4_H_V1(x) | BIT_TA4_H_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT || HALMAC_8821C_SUPPORT || HALMAC_8822B_SUPPORT)


/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_CTRL_V1 (Offset 0x1700) */

#define BIT_LTECOEX_ACCESS_START_V1			BIT(31)
#define BIT_LTECOEX_WRITE_MODE_V1			BIT(30)
#define BIT_LTECOEX_READY_BIT_V1			BIT(29)

#define BIT_SHIFT_WRITE_BYTE_EN_V1			16
#define BIT_MASK_WRITE_BYTE_EN_V1			0xf
#define BIT_WRITE_BYTE_EN_V1(x)			(((x) & BIT_MASK_WRITE_BYTE_EN_V1) << BIT_SHIFT_WRITE_BYTE_EN_V1)
#define BITS_WRITE_BYTE_EN_V1				(BIT_MASK_WRITE_BYTE_EN_V1 << BIT_SHIFT_WRITE_BYTE_EN_V1)
#define BIT_CLEAR_WRITE_BYTE_EN_V1(x)			((x) & (~BITS_WRITE_BYTE_EN_V1))
#define BIT_GET_WRITE_BYTE_EN_V1(x)			(((x) >> BIT_SHIFT_WRITE_BYTE_EN_V1) & BIT_MASK_WRITE_BYTE_EN_V1)
#define BIT_SET_WRITE_BYTE_EN_V1(x, v)			(BIT_CLEAR_WRITE_BYTE_EN_V1(x) | BIT_WRITE_BYTE_EN_V1(v))


#define BIT_SHIFT_LTECOEX_REG_ADDR_V1			0
#define BIT_MASK_LTECOEX_REG_ADDR_V1			0xffff
#define BIT_LTECOEX_REG_ADDR_V1(x)			(((x) & BIT_MASK_LTECOEX_REG_ADDR_V1) << BIT_SHIFT_LTECOEX_REG_ADDR_V1)
#define BITS_LTECOEX_REG_ADDR_V1			(BIT_MASK_LTECOEX_REG_ADDR_V1 << BIT_SHIFT_LTECOEX_REG_ADDR_V1)
#define BIT_CLEAR_LTECOEX_REG_ADDR_V1(x)		((x) & (~BITS_LTECOEX_REG_ADDR_V1))
#define BIT_GET_LTECOEX_REG_ADDR_V1(x)			(((x) >> BIT_SHIFT_LTECOEX_REG_ADDR_V1) & BIT_MASK_LTECOEX_REG_ADDR_V1)
#define BIT_SET_LTECOEX_REG_ADDR_V1(x, v)		(BIT_CLEAR_LTECOEX_REG_ADDR_V1(x) | BIT_LTECOEX_REG_ADDR_V1(v))


/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_WRITE_DATA_V1 (Offset 0x1704) */


#define BIT_SHIFT_LTECOEX_W_DATA_V1			0
#define BIT_MASK_LTECOEX_W_DATA_V1			0xffffffffL
#define BIT_LTECOEX_W_DATA_V1(x)			(((x) & BIT_MASK_LTECOEX_W_DATA_V1) << BIT_SHIFT_LTECOEX_W_DATA_V1)
#define BITS_LTECOEX_W_DATA_V1				(BIT_MASK_LTECOEX_W_DATA_V1 << BIT_SHIFT_LTECOEX_W_DATA_V1)
#define BIT_CLEAR_LTECOEX_W_DATA_V1(x)			((x) & (~BITS_LTECOEX_W_DATA_V1))
#define BIT_GET_LTECOEX_W_DATA_V1(x)			(((x) >> BIT_SHIFT_LTECOEX_W_DATA_V1) & BIT_MASK_LTECOEX_W_DATA_V1)
#define BIT_SET_LTECOEX_W_DATA_V1(x, v)		(BIT_CLEAR_LTECOEX_W_DATA_V1(x) | BIT_LTECOEX_W_DATA_V1(v))


/* 2 REG_WL2LTECOEX_INDIRECT_ACCESS_READ_DATA_V1 (Offset 0x1708) */


#define BIT_SHIFT_LTECOEX_R_DATA_V1			0
#define BIT_MASK_LTECOEX_R_DATA_V1			0xffffffffL
#define BIT_LTECOEX_R_DATA_V1(x)			(((x) & BIT_MASK_LTECOEX_R_DATA_V1) << BIT_SHIFT_LTECOEX_R_DATA_V1)
#define BITS_LTECOEX_R_DATA_V1				(BIT_MASK_LTECOEX_R_DATA_V1 << BIT_SHIFT_LTECOEX_R_DATA_V1)
#define BIT_CLEAR_LTECOEX_R_DATA_V1(x)			((x) & (~BITS_LTECOEX_R_DATA_V1))
#define BIT_GET_LTECOEX_R_DATA_V1(x)			(((x) >> BIT_SHIFT_LTECOEX_R_DATA_V1) & BIT_MASK_LTECOEX_R_DATA_V1)
#define BIT_SET_LTECOEX_R_DATA_V1(x, v)		(BIT_CLEAR_LTECOEX_R_DATA_V1(x) | BIT_LTECOEX_R_DATA_V1(v))


#endif


#if (HALMAC_8814B_SUPPORT)


/* 2 REG_DMA_RQPN_INFO_0			(Offset 0x2200) */


#define BIT_SHIFT_CH0_AVAL_PG				16
#define BIT_MASK_CH0_AVAL_PG				0xfff
#define BIT_CH0_AVAL_PG(x)				(((x) & BIT_MASK_CH0_AVAL_PG) << BIT_SHIFT_CH0_AVAL_PG)
#define BITS_CH0_AVAL_PG				(BIT_MASK_CH0_AVAL_PG << BIT_SHIFT_CH0_AVAL_PG)
#define BIT_CLEAR_CH0_AVAL_PG(x)			((x) & (~BITS_CH0_AVAL_PG))
#define BIT_GET_CH0_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH0_AVAL_PG) & BIT_MASK_CH0_AVAL_PG)
#define BIT_SET_CH0_AVAL_PG(x, v)			(BIT_CLEAR_CH0_AVAL_PG(x) | BIT_CH0_AVAL_PG(v))


#define BIT_SHIFT_CH0_RSVD_PG				0
#define BIT_MASK_CH0_RSVD_PG				0xfff
#define BIT_CH0_RSVD_PG(x)				(((x) & BIT_MASK_CH0_RSVD_PG) << BIT_SHIFT_CH0_RSVD_PG)
#define BITS_CH0_RSVD_PG				(BIT_MASK_CH0_RSVD_PG << BIT_SHIFT_CH0_RSVD_PG)
#define BIT_CLEAR_CH0_RSVD_PG(x)			((x) & (~BITS_CH0_RSVD_PG))
#define BIT_GET_CH0_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH0_RSVD_PG) & BIT_MASK_CH0_RSVD_PG)
#define BIT_SET_CH0_RSVD_PG(x, v)			(BIT_CLEAR_CH0_RSVD_PG(x) | BIT_CH0_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_1			(Offset 0x2204) */


#define BIT_SHIFT_CH1_AVAL_PG				16
#define BIT_MASK_CH1_AVAL_PG				0xfff
#define BIT_CH1_AVAL_PG(x)				(((x) & BIT_MASK_CH1_AVAL_PG) << BIT_SHIFT_CH1_AVAL_PG)
#define BITS_CH1_AVAL_PG				(BIT_MASK_CH1_AVAL_PG << BIT_SHIFT_CH1_AVAL_PG)
#define BIT_CLEAR_CH1_AVAL_PG(x)			((x) & (~BITS_CH1_AVAL_PG))
#define BIT_GET_CH1_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH1_AVAL_PG) & BIT_MASK_CH1_AVAL_PG)
#define BIT_SET_CH1_AVAL_PG(x, v)			(BIT_CLEAR_CH1_AVAL_PG(x) | BIT_CH1_AVAL_PG(v))


#define BIT_SHIFT_CH1_RSVD_PG				0
#define BIT_MASK_CH1_RSVD_PG				0xfff
#define BIT_CH1_RSVD_PG(x)				(((x) & BIT_MASK_CH1_RSVD_PG) << BIT_SHIFT_CH1_RSVD_PG)
#define BITS_CH1_RSVD_PG				(BIT_MASK_CH1_RSVD_PG << BIT_SHIFT_CH1_RSVD_PG)
#define BIT_CLEAR_CH1_RSVD_PG(x)			((x) & (~BITS_CH1_RSVD_PG))
#define BIT_GET_CH1_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH1_RSVD_PG) & BIT_MASK_CH1_RSVD_PG)
#define BIT_SET_CH1_RSVD_PG(x, v)			(BIT_CLEAR_CH1_RSVD_PG(x) | BIT_CH1_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_2			(Offset 0x2208) */


#define BIT_SHIFT_CH2_AVAL_PG				16
#define BIT_MASK_CH2_AVAL_PG				0xfff
#define BIT_CH2_AVAL_PG(x)				(((x) & BIT_MASK_CH2_AVAL_PG) << BIT_SHIFT_CH2_AVAL_PG)
#define BITS_CH2_AVAL_PG				(BIT_MASK_CH2_AVAL_PG << BIT_SHIFT_CH2_AVAL_PG)
#define BIT_CLEAR_CH2_AVAL_PG(x)			((x) & (~BITS_CH2_AVAL_PG))
#define BIT_GET_CH2_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH2_AVAL_PG) & BIT_MASK_CH2_AVAL_PG)
#define BIT_SET_CH2_AVAL_PG(x, v)			(BIT_CLEAR_CH2_AVAL_PG(x) | BIT_CH2_AVAL_PG(v))


#define BIT_SHIFT_CH2_RSVD_PG				0
#define BIT_MASK_CH2_RSVD_PG				0xfff
#define BIT_CH2_RSVD_PG(x)				(((x) & BIT_MASK_CH2_RSVD_PG) << BIT_SHIFT_CH2_RSVD_PG)
#define BITS_CH2_RSVD_PG				(BIT_MASK_CH2_RSVD_PG << BIT_SHIFT_CH2_RSVD_PG)
#define BIT_CLEAR_CH2_RSVD_PG(x)			((x) & (~BITS_CH2_RSVD_PG))
#define BIT_GET_CH2_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH2_RSVD_PG) & BIT_MASK_CH2_RSVD_PG)
#define BIT_SET_CH2_RSVD_PG(x, v)			(BIT_CLEAR_CH2_RSVD_PG(x) | BIT_CH2_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_3			(Offset 0x220C) */


#define BIT_SHIFT_CH3_AVAL_PG				16
#define BIT_MASK_CH3_AVAL_PG				0xfff
#define BIT_CH3_AVAL_PG(x)				(((x) & BIT_MASK_CH3_AVAL_PG) << BIT_SHIFT_CH3_AVAL_PG)
#define BITS_CH3_AVAL_PG				(BIT_MASK_CH3_AVAL_PG << BIT_SHIFT_CH3_AVAL_PG)
#define BIT_CLEAR_CH3_AVAL_PG(x)			((x) & (~BITS_CH3_AVAL_PG))
#define BIT_GET_CH3_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH3_AVAL_PG) & BIT_MASK_CH3_AVAL_PG)
#define BIT_SET_CH3_AVAL_PG(x, v)			(BIT_CLEAR_CH3_AVAL_PG(x) | BIT_CH3_AVAL_PG(v))


#define BIT_SHIFT_CH3_RSVD_PG				0
#define BIT_MASK_CH3_RSVD_PG				0xfff
#define BIT_CH3_RSVD_PG(x)				(((x) & BIT_MASK_CH3_RSVD_PG) << BIT_SHIFT_CH3_RSVD_PG)
#define BITS_CH3_RSVD_PG				(BIT_MASK_CH3_RSVD_PG << BIT_SHIFT_CH3_RSVD_PG)
#define BIT_CLEAR_CH3_RSVD_PG(x)			((x) & (~BITS_CH3_RSVD_PG))
#define BIT_GET_CH3_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH3_RSVD_PG) & BIT_MASK_CH3_RSVD_PG)
#define BIT_SET_CH3_RSVD_PG(x, v)			(BIT_CLEAR_CH3_RSVD_PG(x) | BIT_CH3_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_4			(Offset 0x2210) */


#define BIT_SHIFT_CH4_AVAL_PG				16
#define BIT_MASK_CH4_AVAL_PG				0xfff
#define BIT_CH4_AVAL_PG(x)				(((x) & BIT_MASK_CH4_AVAL_PG) << BIT_SHIFT_CH4_AVAL_PG)
#define BITS_CH4_AVAL_PG				(BIT_MASK_CH4_AVAL_PG << BIT_SHIFT_CH4_AVAL_PG)
#define BIT_CLEAR_CH4_AVAL_PG(x)			((x) & (~BITS_CH4_AVAL_PG))
#define BIT_GET_CH4_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH4_AVAL_PG) & BIT_MASK_CH4_AVAL_PG)
#define BIT_SET_CH4_AVAL_PG(x, v)			(BIT_CLEAR_CH4_AVAL_PG(x) | BIT_CH4_AVAL_PG(v))


#define BIT_SHIFT_CH4_RSVD_PG				0
#define BIT_MASK_CH4_RSVD_PG				0xfff
#define BIT_CH4_RSVD_PG(x)				(((x) & BIT_MASK_CH4_RSVD_PG) << BIT_SHIFT_CH4_RSVD_PG)
#define BITS_CH4_RSVD_PG				(BIT_MASK_CH4_RSVD_PG << BIT_SHIFT_CH4_RSVD_PG)
#define BIT_CLEAR_CH4_RSVD_PG(x)			((x) & (~BITS_CH4_RSVD_PG))
#define BIT_GET_CH4_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH4_RSVD_PG) & BIT_MASK_CH4_RSVD_PG)
#define BIT_SET_CH4_RSVD_PG(x, v)			(BIT_CLEAR_CH4_RSVD_PG(x) | BIT_CH4_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_5			(Offset 0x2214) */


#define BIT_SHIFT_CH5_AVAL_PG				16
#define BIT_MASK_CH5_AVAL_PG				0xfff
#define BIT_CH5_AVAL_PG(x)				(((x) & BIT_MASK_CH5_AVAL_PG) << BIT_SHIFT_CH5_AVAL_PG)
#define BITS_CH5_AVAL_PG				(BIT_MASK_CH5_AVAL_PG << BIT_SHIFT_CH5_AVAL_PG)
#define BIT_CLEAR_CH5_AVAL_PG(x)			((x) & (~BITS_CH5_AVAL_PG))
#define BIT_GET_CH5_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH5_AVAL_PG) & BIT_MASK_CH5_AVAL_PG)
#define BIT_SET_CH5_AVAL_PG(x, v)			(BIT_CLEAR_CH5_AVAL_PG(x) | BIT_CH5_AVAL_PG(v))


#define BIT_SHIFT_CH5_RSVD_PG				0
#define BIT_MASK_CH5_RSVD_PG				0xfff
#define BIT_CH5_RSVD_PG(x)				(((x) & BIT_MASK_CH5_RSVD_PG) << BIT_SHIFT_CH5_RSVD_PG)
#define BITS_CH5_RSVD_PG				(BIT_MASK_CH5_RSVD_PG << BIT_SHIFT_CH5_RSVD_PG)
#define BIT_CLEAR_CH5_RSVD_PG(x)			((x) & (~BITS_CH5_RSVD_PG))
#define BIT_GET_CH5_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH5_RSVD_PG) & BIT_MASK_CH5_RSVD_PG)
#define BIT_SET_CH5_RSVD_PG(x, v)			(BIT_CLEAR_CH5_RSVD_PG(x) | BIT_CH5_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_6			(Offset 0x2218) */


#define BIT_SHIFT_CH6_AVAL_PG				16
#define BIT_MASK_CH6_AVAL_PG				0xfff
#define BIT_CH6_AVAL_PG(x)				(((x) & BIT_MASK_CH6_AVAL_PG) << BIT_SHIFT_CH6_AVAL_PG)
#define BITS_CH6_AVAL_PG				(BIT_MASK_CH6_AVAL_PG << BIT_SHIFT_CH6_AVAL_PG)
#define BIT_CLEAR_CH6_AVAL_PG(x)			((x) & (~BITS_CH6_AVAL_PG))
#define BIT_GET_CH6_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH6_AVAL_PG) & BIT_MASK_CH6_AVAL_PG)
#define BIT_SET_CH6_AVAL_PG(x, v)			(BIT_CLEAR_CH6_AVAL_PG(x) | BIT_CH6_AVAL_PG(v))


#define BIT_SHIFT_CH6_RSVD_PG				0
#define BIT_MASK_CH6_RSVD_PG				0xfff
#define BIT_CH6_RSVD_PG(x)				(((x) & BIT_MASK_CH6_RSVD_PG) << BIT_SHIFT_CH6_RSVD_PG)
#define BITS_CH6_RSVD_PG				(BIT_MASK_CH6_RSVD_PG << BIT_SHIFT_CH6_RSVD_PG)
#define BIT_CLEAR_CH6_RSVD_PG(x)			((x) & (~BITS_CH6_RSVD_PG))
#define BIT_GET_CH6_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH6_RSVD_PG) & BIT_MASK_CH6_RSVD_PG)
#define BIT_SET_CH6_RSVD_PG(x, v)			(BIT_CLEAR_CH6_RSVD_PG(x) | BIT_CH6_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_7			(Offset 0x221C) */


#define BIT_SHIFT_CH7_AVAL_PG				16
#define BIT_MASK_CH7_AVAL_PG				0xfff
#define BIT_CH7_AVAL_PG(x)				(((x) & BIT_MASK_CH7_AVAL_PG) << BIT_SHIFT_CH7_AVAL_PG)
#define BITS_CH7_AVAL_PG				(BIT_MASK_CH7_AVAL_PG << BIT_SHIFT_CH7_AVAL_PG)
#define BIT_CLEAR_CH7_AVAL_PG(x)			((x) & (~BITS_CH7_AVAL_PG))
#define BIT_GET_CH7_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH7_AVAL_PG) & BIT_MASK_CH7_AVAL_PG)
#define BIT_SET_CH7_AVAL_PG(x, v)			(BIT_CLEAR_CH7_AVAL_PG(x) | BIT_CH7_AVAL_PG(v))


#define BIT_SHIFT_CH7_RSVD_PG				0
#define BIT_MASK_CH7_RSVD_PG				0xfff
#define BIT_CH7_RSVD_PG(x)				(((x) & BIT_MASK_CH7_RSVD_PG) << BIT_SHIFT_CH7_RSVD_PG)
#define BITS_CH7_RSVD_PG				(BIT_MASK_CH7_RSVD_PG << BIT_SHIFT_CH7_RSVD_PG)
#define BIT_CLEAR_CH7_RSVD_PG(x)			((x) & (~BITS_CH7_RSVD_PG))
#define BIT_GET_CH7_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH7_RSVD_PG) & BIT_MASK_CH7_RSVD_PG)
#define BIT_SET_CH7_RSVD_PG(x, v)			(BIT_CLEAR_CH7_RSVD_PG(x) | BIT_CH7_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_8			(Offset 0x2220) */


#define BIT_SHIFT_CH8_AVAL_PG				16
#define BIT_MASK_CH8_AVAL_PG				0xfff
#define BIT_CH8_AVAL_PG(x)				(((x) & BIT_MASK_CH8_AVAL_PG) << BIT_SHIFT_CH8_AVAL_PG)
#define BITS_CH8_AVAL_PG				(BIT_MASK_CH8_AVAL_PG << BIT_SHIFT_CH8_AVAL_PG)
#define BIT_CLEAR_CH8_AVAL_PG(x)			((x) & (~BITS_CH8_AVAL_PG))
#define BIT_GET_CH8_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH8_AVAL_PG) & BIT_MASK_CH8_AVAL_PG)
#define BIT_SET_CH8_AVAL_PG(x, v)			(BIT_CLEAR_CH8_AVAL_PG(x) | BIT_CH8_AVAL_PG(v))


#define BIT_SHIFT_CH8_RSVD_PG				0
#define BIT_MASK_CH8_RSVD_PG				0xfff
#define BIT_CH8_RSVD_PG(x)				(((x) & BIT_MASK_CH8_RSVD_PG) << BIT_SHIFT_CH8_RSVD_PG)
#define BITS_CH8_RSVD_PG				(BIT_MASK_CH8_RSVD_PG << BIT_SHIFT_CH8_RSVD_PG)
#define BIT_CLEAR_CH8_RSVD_PG(x)			((x) & (~BITS_CH8_RSVD_PG))
#define BIT_GET_CH8_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH8_RSVD_PG) & BIT_MASK_CH8_RSVD_PG)
#define BIT_SET_CH8_RSVD_PG(x, v)			(BIT_CLEAR_CH8_RSVD_PG(x) | BIT_CH8_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_9			(Offset 0x2224) */


#define BIT_SHIFT_CH9_AVAL_PG				16
#define BIT_MASK_CH9_AVAL_PG				0xfff
#define BIT_CH9_AVAL_PG(x)				(((x) & BIT_MASK_CH9_AVAL_PG) << BIT_SHIFT_CH9_AVAL_PG)
#define BITS_CH9_AVAL_PG				(BIT_MASK_CH9_AVAL_PG << BIT_SHIFT_CH9_AVAL_PG)
#define BIT_CLEAR_CH9_AVAL_PG(x)			((x) & (~BITS_CH9_AVAL_PG))
#define BIT_GET_CH9_AVAL_PG(x)				(((x) >> BIT_SHIFT_CH9_AVAL_PG) & BIT_MASK_CH9_AVAL_PG)
#define BIT_SET_CH9_AVAL_PG(x, v)			(BIT_CLEAR_CH9_AVAL_PG(x) | BIT_CH9_AVAL_PG(v))


#define BIT_SHIFT_CH9_RSVD_PG				0
#define BIT_MASK_CH9_RSVD_PG				0xfff
#define BIT_CH9_RSVD_PG(x)				(((x) & BIT_MASK_CH9_RSVD_PG) << BIT_SHIFT_CH9_RSVD_PG)
#define BITS_CH9_RSVD_PG				(BIT_MASK_CH9_RSVD_PG << BIT_SHIFT_CH9_RSVD_PG)
#define BIT_CLEAR_CH9_RSVD_PG(x)			((x) & (~BITS_CH9_RSVD_PG))
#define BIT_GET_CH9_RSVD_PG(x)				(((x) >> BIT_SHIFT_CH9_RSVD_PG) & BIT_MASK_CH9_RSVD_PG)
#define BIT_SET_CH9_RSVD_PG(x, v)			(BIT_CLEAR_CH9_RSVD_PG(x) | BIT_CH9_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_10			(Offset 0x2228) */


#define BIT_SHIFT_CH10_AVAL_PG				16
#define BIT_MASK_CH10_AVAL_PG				0xfff
#define BIT_CH10_AVAL_PG(x)				(((x) & BIT_MASK_CH10_AVAL_PG) << BIT_SHIFT_CH10_AVAL_PG)
#define BITS_CH10_AVAL_PG				(BIT_MASK_CH10_AVAL_PG << BIT_SHIFT_CH10_AVAL_PG)
#define BIT_CLEAR_CH10_AVAL_PG(x)			((x) & (~BITS_CH10_AVAL_PG))
#define BIT_GET_CH10_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH10_AVAL_PG) & BIT_MASK_CH10_AVAL_PG)
#define BIT_SET_CH10_AVAL_PG(x, v)			(BIT_CLEAR_CH10_AVAL_PG(x) | BIT_CH10_AVAL_PG(v))


#define BIT_SHIFT_CH10_RSVD_PG				0
#define BIT_MASK_CH10_RSVD_PG				0xfff
#define BIT_CH10_RSVD_PG(x)				(((x) & BIT_MASK_CH10_RSVD_PG) << BIT_SHIFT_CH10_RSVD_PG)
#define BITS_CH10_RSVD_PG				(BIT_MASK_CH10_RSVD_PG << BIT_SHIFT_CH10_RSVD_PG)
#define BIT_CLEAR_CH10_RSVD_PG(x)			((x) & (~BITS_CH10_RSVD_PG))
#define BIT_GET_CH10_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH10_RSVD_PG) & BIT_MASK_CH10_RSVD_PG)
#define BIT_SET_CH10_RSVD_PG(x, v)			(BIT_CLEAR_CH10_RSVD_PG(x) | BIT_CH10_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_11			(Offset 0x222C) */


#define BIT_SHIFT_CH11_AVAL_PG				16
#define BIT_MASK_CH11_AVAL_PG				0xfff
#define BIT_CH11_AVAL_PG(x)				(((x) & BIT_MASK_CH11_AVAL_PG) << BIT_SHIFT_CH11_AVAL_PG)
#define BITS_CH11_AVAL_PG				(BIT_MASK_CH11_AVAL_PG << BIT_SHIFT_CH11_AVAL_PG)
#define BIT_CLEAR_CH11_AVAL_PG(x)			((x) & (~BITS_CH11_AVAL_PG))
#define BIT_GET_CH11_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH11_AVAL_PG) & BIT_MASK_CH11_AVAL_PG)
#define BIT_SET_CH11_AVAL_PG(x, v)			(BIT_CLEAR_CH11_AVAL_PG(x) | BIT_CH11_AVAL_PG(v))


#define BIT_SHIFT_CH11_RSVD_PG				0
#define BIT_MASK_CH11_RSVD_PG				0xfff
#define BIT_CH11_RSVD_PG(x)				(((x) & BIT_MASK_CH11_RSVD_PG) << BIT_SHIFT_CH11_RSVD_PG)
#define BITS_CH11_RSVD_PG				(BIT_MASK_CH11_RSVD_PG << BIT_SHIFT_CH11_RSVD_PG)
#define BIT_CLEAR_CH11_RSVD_PG(x)			((x) & (~BITS_CH11_RSVD_PG))
#define BIT_GET_CH11_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH11_RSVD_PG) & BIT_MASK_CH11_RSVD_PG)
#define BIT_SET_CH11_RSVD_PG(x, v)			(BIT_CLEAR_CH11_RSVD_PG(x) | BIT_CH11_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_12			(Offset 0x2230) */


#define BIT_SHIFT_CH12_AVAL_PG				16
#define BIT_MASK_CH12_AVAL_PG				0xfff
#define BIT_CH12_AVAL_PG(x)				(((x) & BIT_MASK_CH12_AVAL_PG) << BIT_SHIFT_CH12_AVAL_PG)
#define BITS_CH12_AVAL_PG				(BIT_MASK_CH12_AVAL_PG << BIT_SHIFT_CH12_AVAL_PG)
#define BIT_CLEAR_CH12_AVAL_PG(x)			((x) & (~BITS_CH12_AVAL_PG))
#define BIT_GET_CH12_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH12_AVAL_PG) & BIT_MASK_CH12_AVAL_PG)
#define BIT_SET_CH12_AVAL_PG(x, v)			(BIT_CLEAR_CH12_AVAL_PG(x) | BIT_CH12_AVAL_PG(v))


#define BIT_SHIFT_CH12_RSVD_PG				0
#define BIT_MASK_CH12_RSVD_PG				0xfff
#define BIT_CH12_RSVD_PG(x)				(((x) & BIT_MASK_CH12_RSVD_PG) << BIT_SHIFT_CH12_RSVD_PG)
#define BITS_CH12_RSVD_PG				(BIT_MASK_CH12_RSVD_PG << BIT_SHIFT_CH12_RSVD_PG)
#define BIT_CLEAR_CH12_RSVD_PG(x)			((x) & (~BITS_CH12_RSVD_PG))
#define BIT_GET_CH12_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH12_RSVD_PG) & BIT_MASK_CH12_RSVD_PG)
#define BIT_SET_CH12_RSVD_PG(x, v)			(BIT_CLEAR_CH12_RSVD_PG(x) | BIT_CH12_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_13			(Offset 0x2234) */


#define BIT_SHIFT_CH13_AVAL_PG				16
#define BIT_MASK_CH13_AVAL_PG				0xfff
#define BIT_CH13_AVAL_PG(x)				(((x) & BIT_MASK_CH13_AVAL_PG) << BIT_SHIFT_CH13_AVAL_PG)
#define BITS_CH13_AVAL_PG				(BIT_MASK_CH13_AVAL_PG << BIT_SHIFT_CH13_AVAL_PG)
#define BIT_CLEAR_CH13_AVAL_PG(x)			((x) & (~BITS_CH13_AVAL_PG))
#define BIT_GET_CH13_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH13_AVAL_PG) & BIT_MASK_CH13_AVAL_PG)
#define BIT_SET_CH13_AVAL_PG(x, v)			(BIT_CLEAR_CH13_AVAL_PG(x) | BIT_CH13_AVAL_PG(v))


#define BIT_SHIFT_CH13_RSVD_PG				0
#define BIT_MASK_CH13_RSVD_PG				0xfff
#define BIT_CH13_RSVD_PG(x)				(((x) & BIT_MASK_CH13_RSVD_PG) << BIT_SHIFT_CH13_RSVD_PG)
#define BITS_CH13_RSVD_PG				(BIT_MASK_CH13_RSVD_PG << BIT_SHIFT_CH13_RSVD_PG)
#define BIT_CLEAR_CH13_RSVD_PG(x)			((x) & (~BITS_CH13_RSVD_PG))
#define BIT_GET_CH13_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH13_RSVD_PG) & BIT_MASK_CH13_RSVD_PG)
#define BIT_SET_CH13_RSVD_PG(x, v)			(BIT_CLEAR_CH13_RSVD_PG(x) | BIT_CH13_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_14			(Offset 0x2238) */


#define BIT_SHIFT_CH14_AVAL_PG				16
#define BIT_MASK_CH14_AVAL_PG				0xfff
#define BIT_CH14_AVAL_PG(x)				(((x) & BIT_MASK_CH14_AVAL_PG) << BIT_SHIFT_CH14_AVAL_PG)
#define BITS_CH14_AVAL_PG				(BIT_MASK_CH14_AVAL_PG << BIT_SHIFT_CH14_AVAL_PG)
#define BIT_CLEAR_CH14_AVAL_PG(x)			((x) & (~BITS_CH14_AVAL_PG))
#define BIT_GET_CH14_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH14_AVAL_PG) & BIT_MASK_CH14_AVAL_PG)
#define BIT_SET_CH14_AVAL_PG(x, v)			(BIT_CLEAR_CH14_AVAL_PG(x) | BIT_CH14_AVAL_PG(v))


#define BIT_SHIFT_CH14_RSVD_PG				0
#define BIT_MASK_CH14_RSVD_PG				0xfff
#define BIT_CH14_RSVD_PG(x)				(((x) & BIT_MASK_CH14_RSVD_PG) << BIT_SHIFT_CH14_RSVD_PG)
#define BITS_CH14_RSVD_PG				(BIT_MASK_CH14_RSVD_PG << BIT_SHIFT_CH14_RSVD_PG)
#define BIT_CLEAR_CH14_RSVD_PG(x)			((x) & (~BITS_CH14_RSVD_PG))
#define BIT_GET_CH14_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH14_RSVD_PG) & BIT_MASK_CH14_RSVD_PG)
#define BIT_SET_CH14_RSVD_PG(x, v)			(BIT_CLEAR_CH14_RSVD_PG(x) | BIT_CH14_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_15			(Offset 0x223C) */


#define BIT_SHIFT_CH15_AVAL_PG				16
#define BIT_MASK_CH15_AVAL_PG				0xfff
#define BIT_CH15_AVAL_PG(x)				(((x) & BIT_MASK_CH15_AVAL_PG) << BIT_SHIFT_CH15_AVAL_PG)
#define BITS_CH15_AVAL_PG				(BIT_MASK_CH15_AVAL_PG << BIT_SHIFT_CH15_AVAL_PG)
#define BIT_CLEAR_CH15_AVAL_PG(x)			((x) & (~BITS_CH15_AVAL_PG))
#define BIT_GET_CH15_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH15_AVAL_PG) & BIT_MASK_CH15_AVAL_PG)
#define BIT_SET_CH15_AVAL_PG(x, v)			(BIT_CLEAR_CH15_AVAL_PG(x) | BIT_CH15_AVAL_PG(v))


#define BIT_SHIFT_CH15_RSVD_PG				0
#define BIT_MASK_CH15_RSVD_PG				0xfff
#define BIT_CH15_RSVD_PG(x)				(((x) & BIT_MASK_CH15_RSVD_PG) << BIT_SHIFT_CH15_RSVD_PG)
#define BITS_CH15_RSVD_PG				(BIT_MASK_CH15_RSVD_PG << BIT_SHIFT_CH15_RSVD_PG)
#define BIT_CLEAR_CH15_RSVD_PG(x)			((x) & (~BITS_CH15_RSVD_PG))
#define BIT_GET_CH15_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH15_RSVD_PG) & BIT_MASK_CH15_RSVD_PG)
#define BIT_SET_CH15_RSVD_PG(x, v)			(BIT_CLEAR_CH15_RSVD_PG(x) | BIT_CH15_RSVD_PG(v))


/* 2 REG_DMA_RQPN_INFO_16			(Offset 0x2240) */


#define BIT_SHIFT_CH16_AVAL_PG				16
#define BIT_MASK_CH16_AVAL_PG				0xfff
#define BIT_CH16_AVAL_PG(x)				(((x) & BIT_MASK_CH16_AVAL_PG) << BIT_SHIFT_CH16_AVAL_PG)
#define BITS_CH16_AVAL_PG				(BIT_MASK_CH16_AVAL_PG << BIT_SHIFT_CH16_AVAL_PG)
#define BIT_CLEAR_CH16_AVAL_PG(x)			((x) & (~BITS_CH16_AVAL_PG))
#define BIT_GET_CH16_AVAL_PG(x)			(((x) >> BIT_SHIFT_CH16_AVAL_PG) & BIT_MASK_CH16_AVAL_PG)
#define BIT_SET_CH16_AVAL_PG(x, v)			(BIT_CLEAR_CH16_AVAL_PG(x) | BIT_CH16_AVAL_PG(v))


#define BIT_SHIFT_CH16_RSVD_PG				0
#define BIT_MASK_CH16_RSVD_PG				0xfff
#define BIT_CH16_RSVD_PG(x)				(((x) & BIT_MASK_CH16_RSVD_PG) << BIT_SHIFT_CH16_RSVD_PG)
#define BITS_CH16_RSVD_PG				(BIT_MASK_CH16_RSVD_PG << BIT_SHIFT_CH16_RSVD_PG)
#define BIT_CLEAR_CH16_RSVD_PG(x)			((x) & (~BITS_CH16_RSVD_PG))
#define BIT_GET_CH16_RSVD_PG(x)			(((x) >> BIT_SHIFT_CH16_RSVD_PG) & BIT_MASK_CH16_RSVD_PG)
#define BIT_SET_CH16_RSVD_PG(x, v)			(BIT_CLEAR_CH16_RSVD_PG(x) | BIT_CH16_RSVD_PG(v))


/* 2 REG_HWAMSDU_CTL1			(Offset 0x2250) */


#define BIT_SHIFT_HWAMSDU_PKTNUM			8
#define BIT_MASK_HWAMSDU_PKTNUM			0x3f
#define BIT_HWAMSDU_PKTNUM(x)				(((x) & BIT_MASK_HWAMSDU_PKTNUM) << BIT_SHIFT_HWAMSDU_PKTNUM)
#define BITS_HWAMSDU_PKTNUM				(BIT_MASK_HWAMSDU_PKTNUM << BIT_SHIFT_HWAMSDU_PKTNUM)
#define BIT_CLEAR_HWAMSDU_PKTNUM(x)			((x) & (~BITS_HWAMSDU_PKTNUM))
#define BIT_GET_HWAMSDU_PKTNUM(x)			(((x) >> BIT_SHIFT_HWAMSDU_PKTNUM) & BIT_MASK_HWAMSDU_PKTNUM)
#define BIT_SET_HWAMSDU_PKTNUM(x, v)			(BIT_CLEAR_HWAMSDU_PKTNUM(x) | BIT_HWAMSDU_PKTNUM(v))

#define BIT_HWAMSDU_BUSY				BIT(7)
#define BIT_SINGLE_AMSDU				BIT(2)
#define BIT_HWAMSDU_PADDING_MODE			BIT(1)
#define BIT_HWAMSDU_EN					BIT(0)

/* 2 REG_HWAMSDU_CTL2			(Offset 0x2254) */


#define BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT		16
#define BIT_MASK_HWAMSDU_AMSDU_TIMEOUT			0xffff
#define BIT_HWAMSDU_AMSDU_TIMEOUT(x)			(((x) & BIT_MASK_HWAMSDU_AMSDU_TIMEOUT) << BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT)
#define BITS_HWAMSDU_AMSDU_TIMEOUT			(BIT_MASK_HWAMSDU_AMSDU_TIMEOUT << BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT)
#define BIT_CLEAR_HWAMSDU_AMSDU_TIMEOUT(x)		((x) & (~BITS_HWAMSDU_AMSDU_TIMEOUT))
#define BIT_GET_HWAMSDU_AMSDU_TIMEOUT(x)		(((x) >> BIT_SHIFT_HWAMSDU_AMSDU_TIMEOUT) & BIT_MASK_HWAMSDU_AMSDU_TIMEOUT)
#define BIT_SET_HWAMSDU_AMSDU_TIMEOUT(x, v)		(BIT_CLEAR_HWAMSDU_AMSDU_TIMEOUT(x) | BIT_HWAMSDU_AMSDU_TIMEOUT(v))


#define BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT			0
#define BIT_MASK_HWAMSDU_MSDU_TIMEOUT			0xffff
#define BIT_HWAMSDU_MSDU_TIMEOUT(x)			(((x) & BIT_MASK_HWAMSDU_MSDU_TIMEOUT) << BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT)
#define BITS_HWAMSDU_MSDU_TIMEOUT			(BIT_MASK_HWAMSDU_MSDU_TIMEOUT << BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT)
#define BIT_CLEAR_HWAMSDU_MSDU_TIMEOUT(x)		((x) & (~BITS_HWAMSDU_MSDU_TIMEOUT))
#define BIT_GET_HWAMSDU_MSDU_TIMEOUT(x)		(((x) >> BIT_SHIFT_HWAMSDU_MSDU_TIMEOUT) & BIT_MASK_HWAMSDU_MSDU_TIMEOUT)
#define BIT_SET_HWAMSDU_MSDU_TIMEOUT(x, v)		(BIT_CLEAR_HWAMSDU_MSDU_TIMEOUT(x) | BIT_HWAMSDU_MSDU_TIMEOUT(v))


/* 2 REG_HI8Q_TXBD_DESA_L			(Offset 0x2300) */


#define BIT_SHIFT_HI8Q_TXBD_DESA_L			0
#define BIT_MASK_HI8Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI8Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI8Q_TXBD_DESA_L) << BIT_SHIFT_HI8Q_TXBD_DESA_L)
#define BITS_HI8Q_TXBD_DESA_L				(BIT_MASK_HI8Q_TXBD_DESA_L << BIT_SHIFT_HI8Q_TXBD_DESA_L)
#define BIT_CLEAR_HI8Q_TXBD_DESA_L(x)			((x) & (~BITS_HI8Q_TXBD_DESA_L))
#define BIT_GET_HI8Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI8Q_TXBD_DESA_L) & BIT_MASK_HI8Q_TXBD_DESA_L)
#define BIT_SET_HI8Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI8Q_TXBD_DESA_L(x) | BIT_HI8Q_TXBD_DESA_L(v))


/* 2 REG_HI8Q_TXBD_DESA_H			(Offset 0x2304) */


#define BIT_SHIFT_HI8Q_TXBD_DESA_H			0
#define BIT_MASK_HI8Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI8Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI8Q_TXBD_DESA_H) << BIT_SHIFT_HI8Q_TXBD_DESA_H)
#define BITS_HI8Q_TXBD_DESA_H				(BIT_MASK_HI8Q_TXBD_DESA_H << BIT_SHIFT_HI8Q_TXBD_DESA_H)
#define BIT_CLEAR_HI8Q_TXBD_DESA_H(x)			((x) & (~BITS_HI8Q_TXBD_DESA_H))
#define BIT_GET_HI8Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI8Q_TXBD_DESA_H) & BIT_MASK_HI8Q_TXBD_DESA_H)
#define BIT_SET_HI8Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI8Q_TXBD_DESA_H(x) | BIT_HI8Q_TXBD_DESA_H(v))


/* 2 REG_HI9Q_TXBD_DESA_L			(Offset 0x2308) */


#define BIT_SHIFT_HI9Q_TXBD_DESA_L			0
#define BIT_MASK_HI9Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI9Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI9Q_TXBD_DESA_L) << BIT_SHIFT_HI9Q_TXBD_DESA_L)
#define BITS_HI9Q_TXBD_DESA_L				(BIT_MASK_HI9Q_TXBD_DESA_L << BIT_SHIFT_HI9Q_TXBD_DESA_L)
#define BIT_CLEAR_HI9Q_TXBD_DESA_L(x)			((x) & (~BITS_HI9Q_TXBD_DESA_L))
#define BIT_GET_HI9Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI9Q_TXBD_DESA_L) & BIT_MASK_HI9Q_TXBD_DESA_L)
#define BIT_SET_HI9Q_TXBD_DESA_L(x, v)			(BIT_CLEAR_HI9Q_TXBD_DESA_L(x) | BIT_HI9Q_TXBD_DESA_L(v))


/* 2 REG_HI9Q_TXBD_DESA_H			(Offset 0x230C) */


#define BIT_SHIFT_HI9Q_TXBD_DESA_H			0
#define BIT_MASK_HI9Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI9Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI9Q_TXBD_DESA_H) << BIT_SHIFT_HI9Q_TXBD_DESA_H)
#define BITS_HI9Q_TXBD_DESA_H				(BIT_MASK_HI9Q_TXBD_DESA_H << BIT_SHIFT_HI9Q_TXBD_DESA_H)
#define BIT_CLEAR_HI9Q_TXBD_DESA_H(x)			((x) & (~BITS_HI9Q_TXBD_DESA_H))
#define BIT_GET_HI9Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI9Q_TXBD_DESA_H) & BIT_MASK_HI9Q_TXBD_DESA_H)
#define BIT_SET_HI9Q_TXBD_DESA_H(x, v)			(BIT_CLEAR_HI9Q_TXBD_DESA_H(x) | BIT_HI9Q_TXBD_DESA_H(v))


/* 2 REG_HI10Q_TXBD_DESA_L			(Offset 0x2310) */


#define BIT_SHIFT_HI10Q_TXBD_DESA_L			0
#define BIT_MASK_HI10Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI10Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI10Q_TXBD_DESA_L) << BIT_SHIFT_HI10Q_TXBD_DESA_L)
#define BITS_HI10Q_TXBD_DESA_L				(BIT_MASK_HI10Q_TXBD_DESA_L << BIT_SHIFT_HI10Q_TXBD_DESA_L)
#define BIT_CLEAR_HI10Q_TXBD_DESA_L(x)			((x) & (~BITS_HI10Q_TXBD_DESA_L))
#define BIT_GET_HI10Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI10Q_TXBD_DESA_L) & BIT_MASK_HI10Q_TXBD_DESA_L)
#define BIT_SET_HI10Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI10Q_TXBD_DESA_L(x) | BIT_HI10Q_TXBD_DESA_L(v))


/* 2 REG_HI10Q_TXBD_DESA_H			(Offset 0x2314) */


#define BIT_SHIFT_HI10Q_TXBD_DESA_H			0
#define BIT_MASK_HI10Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI10Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI10Q_TXBD_DESA_H) << BIT_SHIFT_HI10Q_TXBD_DESA_H)
#define BITS_HI10Q_TXBD_DESA_H				(BIT_MASK_HI10Q_TXBD_DESA_H << BIT_SHIFT_HI10Q_TXBD_DESA_H)
#define BIT_CLEAR_HI10Q_TXBD_DESA_H(x)			((x) & (~BITS_HI10Q_TXBD_DESA_H))
#define BIT_GET_HI10Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI10Q_TXBD_DESA_H) & BIT_MASK_HI10Q_TXBD_DESA_H)
#define BIT_SET_HI10Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI10Q_TXBD_DESA_H(x) | BIT_HI10Q_TXBD_DESA_H(v))


/* 2 REG_HI11Q_TXBD_DESA_L			(Offset 0x2318) */


#define BIT_SHIFT_HI11Q_TXBD_DESA_L			0
#define BIT_MASK_HI11Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI11Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI11Q_TXBD_DESA_L) << BIT_SHIFT_HI11Q_TXBD_DESA_L)
#define BITS_HI11Q_TXBD_DESA_L				(BIT_MASK_HI11Q_TXBD_DESA_L << BIT_SHIFT_HI11Q_TXBD_DESA_L)
#define BIT_CLEAR_HI11Q_TXBD_DESA_L(x)			((x) & (~BITS_HI11Q_TXBD_DESA_L))
#define BIT_GET_HI11Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI11Q_TXBD_DESA_L) & BIT_MASK_HI11Q_TXBD_DESA_L)
#define BIT_SET_HI11Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI11Q_TXBD_DESA_L(x) | BIT_HI11Q_TXBD_DESA_L(v))


/* 2 REG_HI11Q_TXBD_DESA_H			(Offset 0x231C) */


#define BIT_SHIFT_HI11Q_TXBD_DESA_H			0
#define BIT_MASK_HI11Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI11Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI11Q_TXBD_DESA_H) << BIT_SHIFT_HI11Q_TXBD_DESA_H)
#define BITS_HI11Q_TXBD_DESA_H				(BIT_MASK_HI11Q_TXBD_DESA_H << BIT_SHIFT_HI11Q_TXBD_DESA_H)
#define BIT_CLEAR_HI11Q_TXBD_DESA_H(x)			((x) & (~BITS_HI11Q_TXBD_DESA_H))
#define BIT_GET_HI11Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI11Q_TXBD_DESA_H) & BIT_MASK_HI11Q_TXBD_DESA_H)
#define BIT_SET_HI11Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI11Q_TXBD_DESA_H(x) | BIT_HI11Q_TXBD_DESA_H(v))


/* 2 REG_HI12Q_TXBD_DESA_L			(Offset 0x2320) */


#define BIT_SHIFT_HI12Q_TXBD_DESA_L			0
#define BIT_MASK_HI12Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI12Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI12Q_TXBD_DESA_L) << BIT_SHIFT_HI12Q_TXBD_DESA_L)
#define BITS_HI12Q_TXBD_DESA_L				(BIT_MASK_HI12Q_TXBD_DESA_L << BIT_SHIFT_HI12Q_TXBD_DESA_L)
#define BIT_CLEAR_HI12Q_TXBD_DESA_L(x)			((x) & (~BITS_HI12Q_TXBD_DESA_L))
#define BIT_GET_HI12Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI12Q_TXBD_DESA_L) & BIT_MASK_HI12Q_TXBD_DESA_L)
#define BIT_SET_HI12Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI12Q_TXBD_DESA_L(x) | BIT_HI12Q_TXBD_DESA_L(v))


/* 2 REG_HI12Q_TXBD_DESA_H			(Offset 0x2324) */


#define BIT_SHIFT_HI12Q_TXBD_DESA_H			0
#define BIT_MASK_HI12Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI12Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI12Q_TXBD_DESA_H) << BIT_SHIFT_HI12Q_TXBD_DESA_H)
#define BITS_HI12Q_TXBD_DESA_H				(BIT_MASK_HI12Q_TXBD_DESA_H << BIT_SHIFT_HI12Q_TXBD_DESA_H)
#define BIT_CLEAR_HI12Q_TXBD_DESA_H(x)			((x) & (~BITS_HI12Q_TXBD_DESA_H))
#define BIT_GET_HI12Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI12Q_TXBD_DESA_H) & BIT_MASK_HI12Q_TXBD_DESA_H)
#define BIT_SET_HI12Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI12Q_TXBD_DESA_H(x) | BIT_HI12Q_TXBD_DESA_H(v))


/* 2 REG_HI13Q_TXBD_DESA_L			(Offset 0x2328) */


#define BIT_SHIFT_HI13Q_TXBD_DESA_L			0
#define BIT_MASK_HI13Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI13Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI13Q_TXBD_DESA_L) << BIT_SHIFT_HI13Q_TXBD_DESA_L)
#define BITS_HI13Q_TXBD_DESA_L				(BIT_MASK_HI13Q_TXBD_DESA_L << BIT_SHIFT_HI13Q_TXBD_DESA_L)
#define BIT_CLEAR_HI13Q_TXBD_DESA_L(x)			((x) & (~BITS_HI13Q_TXBD_DESA_L))
#define BIT_GET_HI13Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI13Q_TXBD_DESA_L) & BIT_MASK_HI13Q_TXBD_DESA_L)
#define BIT_SET_HI13Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI13Q_TXBD_DESA_L(x) | BIT_HI13Q_TXBD_DESA_L(v))


/* 2 REG_HI13Q_TXBD_DESA_H			(Offset 0x232C) */


#define BIT_SHIFT_HI13Q_TXBD_DESA_H			0
#define BIT_MASK_HI13Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI13Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI13Q_TXBD_DESA_H) << BIT_SHIFT_HI13Q_TXBD_DESA_H)
#define BITS_HI13Q_TXBD_DESA_H				(BIT_MASK_HI13Q_TXBD_DESA_H << BIT_SHIFT_HI13Q_TXBD_DESA_H)
#define BIT_CLEAR_HI13Q_TXBD_DESA_H(x)			((x) & (~BITS_HI13Q_TXBD_DESA_H))
#define BIT_GET_HI13Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI13Q_TXBD_DESA_H) & BIT_MASK_HI13Q_TXBD_DESA_H)
#define BIT_SET_HI13Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI13Q_TXBD_DESA_H(x) | BIT_HI13Q_TXBD_DESA_H(v))


/* 2 REG_HI14Q_TXBD_DESA_L			(Offset 0x2330) */


#define BIT_SHIFT_HI14Q_TXBD_DESA_L			0
#define BIT_MASK_HI14Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI14Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI14Q_TXBD_DESA_L) << BIT_SHIFT_HI14Q_TXBD_DESA_L)
#define BITS_HI14Q_TXBD_DESA_L				(BIT_MASK_HI14Q_TXBD_DESA_L << BIT_SHIFT_HI14Q_TXBD_DESA_L)
#define BIT_CLEAR_HI14Q_TXBD_DESA_L(x)			((x) & (~BITS_HI14Q_TXBD_DESA_L))
#define BIT_GET_HI14Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI14Q_TXBD_DESA_L) & BIT_MASK_HI14Q_TXBD_DESA_L)
#define BIT_SET_HI14Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI14Q_TXBD_DESA_L(x) | BIT_HI14Q_TXBD_DESA_L(v))


/* 2 REG_HI14Q_TXBD_DESA_H			(Offset 0x2334) */


#define BIT_SHIFT_HI14Q_TXBD_DESA_H			0
#define BIT_MASK_HI14Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI14Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI14Q_TXBD_DESA_H) << BIT_SHIFT_HI14Q_TXBD_DESA_H)
#define BITS_HI14Q_TXBD_DESA_H				(BIT_MASK_HI14Q_TXBD_DESA_H << BIT_SHIFT_HI14Q_TXBD_DESA_H)
#define BIT_CLEAR_HI14Q_TXBD_DESA_H(x)			((x) & (~BITS_HI14Q_TXBD_DESA_H))
#define BIT_GET_HI14Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI14Q_TXBD_DESA_H) & BIT_MASK_HI14Q_TXBD_DESA_H)
#define BIT_SET_HI14Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI14Q_TXBD_DESA_H(x) | BIT_HI14Q_TXBD_DESA_H(v))


/* 2 REG_HI15Q_TXBD_DESA_L			(Offset 0x2338) */


#define BIT_SHIFT_HI15Q_TXBD_DESA_L			0
#define BIT_MASK_HI15Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI15Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI15Q_TXBD_DESA_L) << BIT_SHIFT_HI15Q_TXBD_DESA_L)
#define BITS_HI15Q_TXBD_DESA_L				(BIT_MASK_HI15Q_TXBD_DESA_L << BIT_SHIFT_HI15Q_TXBD_DESA_L)
#define BIT_CLEAR_HI15Q_TXBD_DESA_L(x)			((x) & (~BITS_HI15Q_TXBD_DESA_L))
#define BIT_GET_HI15Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI15Q_TXBD_DESA_L) & BIT_MASK_HI15Q_TXBD_DESA_L)
#define BIT_SET_HI15Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI15Q_TXBD_DESA_L(x) | BIT_HI15Q_TXBD_DESA_L(v))


/* 2 REG_HI15Q_TXBD_DESA_H			(Offset 0x233C) */


#define BIT_SHIFT_HI15Q_TXBD_DESA_H			0
#define BIT_MASK_HI15Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI15Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI15Q_TXBD_DESA_H) << BIT_SHIFT_HI15Q_TXBD_DESA_H)
#define BITS_HI15Q_TXBD_DESA_H				(BIT_MASK_HI15Q_TXBD_DESA_H << BIT_SHIFT_HI15Q_TXBD_DESA_H)
#define BIT_CLEAR_HI15Q_TXBD_DESA_H(x)			((x) & (~BITS_HI15Q_TXBD_DESA_H))
#define BIT_GET_HI15Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI15Q_TXBD_DESA_H) & BIT_MASK_HI15Q_TXBD_DESA_H)
#define BIT_SET_HI15Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI15Q_TXBD_DESA_H(x) | BIT_HI15Q_TXBD_DESA_H(v))


/* 2 REG_HI16Q_TXBD_DESA_L			(Offset 0x2340) */


#define BIT_SHIFT_HI16Q_TXBD_DESA_L			0
#define BIT_MASK_HI16Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI16Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI16Q_TXBD_DESA_L) << BIT_SHIFT_HI16Q_TXBD_DESA_L)
#define BITS_HI16Q_TXBD_DESA_L				(BIT_MASK_HI16Q_TXBD_DESA_L << BIT_SHIFT_HI16Q_TXBD_DESA_L)
#define BIT_CLEAR_HI16Q_TXBD_DESA_L(x)			((x) & (~BITS_HI16Q_TXBD_DESA_L))
#define BIT_GET_HI16Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI16Q_TXBD_DESA_L) & BIT_MASK_HI16Q_TXBD_DESA_L)
#define BIT_SET_HI16Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI16Q_TXBD_DESA_L(x) | BIT_HI16Q_TXBD_DESA_L(v))


/* 2 REG_HI16Q_TXBD_DESA_H			(Offset 0x2344) */


#define BIT_SHIFT_HI16Q_TXBD_DESA_H			0
#define BIT_MASK_HI16Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI16Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI16Q_TXBD_DESA_H) << BIT_SHIFT_HI16Q_TXBD_DESA_H)
#define BITS_HI16Q_TXBD_DESA_H				(BIT_MASK_HI16Q_TXBD_DESA_H << BIT_SHIFT_HI16Q_TXBD_DESA_H)
#define BIT_CLEAR_HI16Q_TXBD_DESA_H(x)			((x) & (~BITS_HI16Q_TXBD_DESA_H))
#define BIT_GET_HI16Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI16Q_TXBD_DESA_H) & BIT_MASK_HI16Q_TXBD_DESA_H)
#define BIT_SET_HI16Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI16Q_TXBD_DESA_H(x) | BIT_HI16Q_TXBD_DESA_H(v))


/* 2 REG_HI17Q_TXBD_DESA_L			(Offset 0x2348) */


#define BIT_SHIFT_HI17Q_TXBD_DESA_L			0
#define BIT_MASK_HI17Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI17Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI17Q_TXBD_DESA_L) << BIT_SHIFT_HI17Q_TXBD_DESA_L)
#define BITS_HI17Q_TXBD_DESA_L				(BIT_MASK_HI17Q_TXBD_DESA_L << BIT_SHIFT_HI17Q_TXBD_DESA_L)
#define BIT_CLEAR_HI17Q_TXBD_DESA_L(x)			((x) & (~BITS_HI17Q_TXBD_DESA_L))
#define BIT_GET_HI17Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI17Q_TXBD_DESA_L) & BIT_MASK_HI17Q_TXBD_DESA_L)
#define BIT_SET_HI17Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI17Q_TXBD_DESA_L(x) | BIT_HI17Q_TXBD_DESA_L(v))


/* 2 REG_HI17Q_TXBD_DESA_H			(Offset 0x234C) */


#define BIT_SHIFT_HI17Q_TXBD_DESA_H			0
#define BIT_MASK_HI17Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI17Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI17Q_TXBD_DESA_H) << BIT_SHIFT_HI17Q_TXBD_DESA_H)
#define BITS_HI17Q_TXBD_DESA_H				(BIT_MASK_HI17Q_TXBD_DESA_H << BIT_SHIFT_HI17Q_TXBD_DESA_H)
#define BIT_CLEAR_HI17Q_TXBD_DESA_H(x)			((x) & (~BITS_HI17Q_TXBD_DESA_H))
#define BIT_GET_HI17Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI17Q_TXBD_DESA_H) & BIT_MASK_HI17Q_TXBD_DESA_H)
#define BIT_SET_HI17Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI17Q_TXBD_DESA_H(x) | BIT_HI17Q_TXBD_DESA_H(v))


/* 2 REG_HI18Q_TXBD_DESA_L			(Offset 0x2350) */


#define BIT_SHIFT_HI18Q_TXBD_DESA_L			0
#define BIT_MASK_HI18Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI18Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI18Q_TXBD_DESA_L) << BIT_SHIFT_HI18Q_TXBD_DESA_L)
#define BITS_HI18Q_TXBD_DESA_L				(BIT_MASK_HI18Q_TXBD_DESA_L << BIT_SHIFT_HI18Q_TXBD_DESA_L)
#define BIT_CLEAR_HI18Q_TXBD_DESA_L(x)			((x) & (~BITS_HI18Q_TXBD_DESA_L))
#define BIT_GET_HI18Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI18Q_TXBD_DESA_L) & BIT_MASK_HI18Q_TXBD_DESA_L)
#define BIT_SET_HI18Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI18Q_TXBD_DESA_L(x) | BIT_HI18Q_TXBD_DESA_L(v))


/* 2 REG_HI18Q_TXBD_DESA_H			(Offset 0x2354) */


#define BIT_SHIFT_HI18Q_TXBD_DESA_H			0
#define BIT_MASK_HI18Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI18Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI18Q_TXBD_DESA_H) << BIT_SHIFT_HI18Q_TXBD_DESA_H)
#define BITS_HI18Q_TXBD_DESA_H				(BIT_MASK_HI18Q_TXBD_DESA_H << BIT_SHIFT_HI18Q_TXBD_DESA_H)
#define BIT_CLEAR_HI18Q_TXBD_DESA_H(x)			((x) & (~BITS_HI18Q_TXBD_DESA_H))
#define BIT_GET_HI18Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI18Q_TXBD_DESA_H) & BIT_MASK_HI18Q_TXBD_DESA_H)
#define BIT_SET_HI18Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI18Q_TXBD_DESA_H(x) | BIT_HI18Q_TXBD_DESA_H(v))


/* 2 REG_HI19Q_TXBD_DESA_L			(Offset 0x2358) */


#define BIT_SHIFT_HI19Q_TXBD_DESA_L			0
#define BIT_MASK_HI19Q_TXBD_DESA_L			0xffffffffL
#define BIT_HI19Q_TXBD_DESA_L(x)			(((x) & BIT_MASK_HI19Q_TXBD_DESA_L) << BIT_SHIFT_HI19Q_TXBD_DESA_L)
#define BITS_HI19Q_TXBD_DESA_L				(BIT_MASK_HI19Q_TXBD_DESA_L << BIT_SHIFT_HI19Q_TXBD_DESA_L)
#define BIT_CLEAR_HI19Q_TXBD_DESA_L(x)			((x) & (~BITS_HI19Q_TXBD_DESA_L))
#define BIT_GET_HI19Q_TXBD_DESA_L(x)			(((x) >> BIT_SHIFT_HI19Q_TXBD_DESA_L) & BIT_MASK_HI19Q_TXBD_DESA_L)
#define BIT_SET_HI19Q_TXBD_DESA_L(x, v)		(BIT_CLEAR_HI19Q_TXBD_DESA_L(x) | BIT_HI19Q_TXBD_DESA_L(v))


/* 2 REG_HI19Q_TXBD_DESA_H			(Offset 0x235C) */

#define BIT_CLR_P0HI19Q_HW_IDX				BIT(25)
#define BIT_CLR_P0HI18Q_HW_IDX				BIT(24)
#define BIT_CLR_P0HI17Q_HW_IDX				BIT(23)
#define BIT_CLR_P0HI16Q_HW_IDX				BIT(22)
#define BIT_CLR_P0HI19Q_HOST_IDX			BIT(9)
#define BIT_CLR_P0HI18Q_HOST_IDX			BIT(8)
#define BIT_CLR_P0HI17Q_HOST_IDX			BIT(7)
#define BIT_CLR_P0HI16Q_HOST_IDX			BIT(6)

#define BIT_SHIFT_HI19Q_TXBD_DESA_H			0
#define BIT_MASK_HI19Q_TXBD_DESA_H			0xffffffffL
#define BIT_HI19Q_TXBD_DESA_H(x)			(((x) & BIT_MASK_HI19Q_TXBD_DESA_H) << BIT_SHIFT_HI19Q_TXBD_DESA_H)
#define BITS_HI19Q_TXBD_DESA_H				(BIT_MASK_HI19Q_TXBD_DESA_H << BIT_SHIFT_HI19Q_TXBD_DESA_H)
#define BIT_CLEAR_HI19Q_TXBD_DESA_H(x)			((x) & (~BITS_HI19Q_TXBD_DESA_H))
#define BIT_GET_HI19Q_TXBD_DESA_H(x)			(((x) >> BIT_SHIFT_HI19Q_TXBD_DESA_H) & BIT_MASK_HI19Q_TXBD_DESA_H)
#define BIT_SET_HI19Q_TXBD_DESA_H(x, v)		(BIT_CLEAR_HI19Q_TXBD_DESA_H(x) | BIT_HI19Q_TXBD_DESA_H(v))


/* 2 REG_P0HI16Q_TXBD_IDX			(Offset 0x2370) */


#define BIT_SHIFT_P0HI16Q_HW_IDX			16
#define BIT_MASK_P0HI16Q_HW_IDX			0xfff
#define BIT_P0HI16Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI16Q_HW_IDX) << BIT_SHIFT_P0HI16Q_HW_IDX)
#define BITS_P0HI16Q_HW_IDX				(BIT_MASK_P0HI16Q_HW_IDX << BIT_SHIFT_P0HI16Q_HW_IDX)
#define BIT_CLEAR_P0HI16Q_HW_IDX(x)			((x) & (~BITS_P0HI16Q_HW_IDX))
#define BIT_GET_P0HI16Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI16Q_HW_IDX) & BIT_MASK_P0HI16Q_HW_IDX)
#define BIT_SET_P0HI16Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI16Q_HW_IDX(x) | BIT_P0HI16Q_HW_IDX(v))


#define BIT_SHIFT_P0HI16Q_HOST_IDX			0
#define BIT_MASK_P0HI16Q_HOST_IDX			0xfff
#define BIT_P0HI16Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI16Q_HOST_IDX) << BIT_SHIFT_P0HI16Q_HOST_IDX)
#define BITS_P0HI16Q_HOST_IDX				(BIT_MASK_P0HI16Q_HOST_IDX << BIT_SHIFT_P0HI16Q_HOST_IDX)
#define BIT_CLEAR_P0HI16Q_HOST_IDX(x)			((x) & (~BITS_P0HI16Q_HOST_IDX))
#define BIT_GET_P0HI16Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI16Q_HOST_IDX) & BIT_MASK_P0HI16Q_HOST_IDX)
#define BIT_SET_P0HI16Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI16Q_HOST_IDX(x) | BIT_P0HI16Q_HOST_IDX(v))


/* 2 REG_P0HI17Q_TXBD_IDX			(Offset 0x2374) */


#define BIT_SHIFT_P0HI17Q_HW_IDX			16
#define BIT_MASK_P0HI17Q_HW_IDX			0xfff
#define BIT_P0HI17Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI17Q_HW_IDX) << BIT_SHIFT_P0HI17Q_HW_IDX)
#define BITS_P0HI17Q_HW_IDX				(BIT_MASK_P0HI17Q_HW_IDX << BIT_SHIFT_P0HI17Q_HW_IDX)
#define BIT_CLEAR_P0HI17Q_HW_IDX(x)			((x) & (~BITS_P0HI17Q_HW_IDX))
#define BIT_GET_P0HI17Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI17Q_HW_IDX) & BIT_MASK_P0HI17Q_HW_IDX)
#define BIT_SET_P0HI17Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI17Q_HW_IDX(x) | BIT_P0HI17Q_HW_IDX(v))


#define BIT_SHIFT_P0HI17Q_HOST_IDX			0
#define BIT_MASK_P0HI17Q_HOST_IDX			0xfff
#define BIT_P0HI17Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI17Q_HOST_IDX) << BIT_SHIFT_P0HI17Q_HOST_IDX)
#define BITS_P0HI17Q_HOST_IDX				(BIT_MASK_P0HI17Q_HOST_IDX << BIT_SHIFT_P0HI17Q_HOST_IDX)
#define BIT_CLEAR_P0HI17Q_HOST_IDX(x)			((x) & (~BITS_P0HI17Q_HOST_IDX))
#define BIT_GET_P0HI17Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI17Q_HOST_IDX) & BIT_MASK_P0HI17Q_HOST_IDX)
#define BIT_SET_P0HI17Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI17Q_HOST_IDX(x) | BIT_P0HI17Q_HOST_IDX(v))


/* 2 REG_P0HI18Q_TXBD_IDX			(Offset 0x2378) */


#define BIT_SHIFT_P0HI18Q_HW_IDX			16
#define BIT_MASK_P0HI18Q_HW_IDX			0xfff
#define BIT_P0HI18Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI18Q_HW_IDX) << BIT_SHIFT_P0HI18Q_HW_IDX)
#define BITS_P0HI18Q_HW_IDX				(BIT_MASK_P0HI18Q_HW_IDX << BIT_SHIFT_P0HI18Q_HW_IDX)
#define BIT_CLEAR_P0HI18Q_HW_IDX(x)			((x) & (~BITS_P0HI18Q_HW_IDX))
#define BIT_GET_P0HI18Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI18Q_HW_IDX) & BIT_MASK_P0HI18Q_HW_IDX)
#define BIT_SET_P0HI18Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI18Q_HW_IDX(x) | BIT_P0HI18Q_HW_IDX(v))


#define BIT_SHIFT_P0HI18Q_HOST_IDX			0
#define BIT_MASK_P0HI18Q_HOST_IDX			0xfff
#define BIT_P0HI18Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI18Q_HOST_IDX) << BIT_SHIFT_P0HI18Q_HOST_IDX)
#define BITS_P0HI18Q_HOST_IDX				(BIT_MASK_P0HI18Q_HOST_IDX << BIT_SHIFT_P0HI18Q_HOST_IDX)
#define BIT_CLEAR_P0HI18Q_HOST_IDX(x)			((x) & (~BITS_P0HI18Q_HOST_IDX))
#define BIT_GET_P0HI18Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI18Q_HOST_IDX) & BIT_MASK_P0HI18Q_HOST_IDX)
#define BIT_SET_P0HI18Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI18Q_HOST_IDX(x) | BIT_P0HI18Q_HOST_IDX(v))


/* 2 REG_P0HI19Q_TXBD_IDX			(Offset 0x237C) */


#define BIT_SHIFT_P0HI19Q_HW_IDX			16
#define BIT_MASK_P0HI19Q_HW_IDX			0xfff
#define BIT_P0HI19Q_HW_IDX(x)				(((x) & BIT_MASK_P0HI19Q_HW_IDX) << BIT_SHIFT_P0HI19Q_HW_IDX)
#define BITS_P0HI19Q_HW_IDX				(BIT_MASK_P0HI19Q_HW_IDX << BIT_SHIFT_P0HI19Q_HW_IDX)
#define BIT_CLEAR_P0HI19Q_HW_IDX(x)			((x) & (~BITS_P0HI19Q_HW_IDX))
#define BIT_GET_P0HI19Q_HW_IDX(x)			(((x) >> BIT_SHIFT_P0HI19Q_HW_IDX) & BIT_MASK_P0HI19Q_HW_IDX)
#define BIT_SET_P0HI19Q_HW_IDX(x, v)			(BIT_CLEAR_P0HI19Q_HW_IDX(x) | BIT_P0HI19Q_HW_IDX(v))


#define BIT_SHIFT_P0HI19Q_HOST_IDX			0
#define BIT_MASK_P0HI19Q_HOST_IDX			0xfff
#define BIT_P0HI19Q_HOST_IDX(x)			(((x) & BIT_MASK_P0HI19Q_HOST_IDX) << BIT_SHIFT_P0HI19Q_HOST_IDX)
#define BITS_P0HI19Q_HOST_IDX				(BIT_MASK_P0HI19Q_HOST_IDX << BIT_SHIFT_P0HI19Q_HOST_IDX)
#define BIT_CLEAR_P0HI19Q_HOST_IDX(x)			((x) & (~BITS_P0HI19Q_HOST_IDX))
#define BIT_GET_P0HI19Q_HOST_IDX(x)			(((x) >> BIT_SHIFT_P0HI19Q_HOST_IDX) & BIT_MASK_P0HI19Q_HOST_IDX)
#define BIT_SET_P0HI19Q_HOST_IDX(x, v)			(BIT_CLEAR_P0HI19Q_HOST_IDX(x) | BIT_P0HI19Q_HOST_IDX(v))


/* 2 REG_P0HI16Q_HI17Q_TXBD_NUM		(Offset 0x2380) */

#define BIT_P0HI17Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI17Q_DESC_MODE			28
#define BIT_MASK_P0HI17Q_DESC_MODE			0x3
#define BIT_P0HI17Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI17Q_DESC_MODE) << BIT_SHIFT_P0HI17Q_DESC_MODE)
#define BITS_P0HI17Q_DESC_MODE				(BIT_MASK_P0HI17Q_DESC_MODE << BIT_SHIFT_P0HI17Q_DESC_MODE)
#define BIT_CLEAR_P0HI17Q_DESC_MODE(x)			((x) & (~BITS_P0HI17Q_DESC_MODE))
#define BIT_GET_P0HI17Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI17Q_DESC_MODE) & BIT_MASK_P0HI17Q_DESC_MODE)
#define BIT_SET_P0HI17Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI17Q_DESC_MODE(x) | BIT_P0HI17Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI17Q_DESC_NUM			16
#define BIT_MASK_P0HI17Q_DESC_NUM			0xfff
#define BIT_P0HI17Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI17Q_DESC_NUM) << BIT_SHIFT_P0HI17Q_DESC_NUM)
#define BITS_P0HI17Q_DESC_NUM				(BIT_MASK_P0HI17Q_DESC_NUM << BIT_SHIFT_P0HI17Q_DESC_NUM)
#define BIT_CLEAR_P0HI17Q_DESC_NUM(x)			((x) & (~BITS_P0HI17Q_DESC_NUM))
#define BIT_GET_P0HI17Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI17Q_DESC_NUM) & BIT_MASK_P0HI17Q_DESC_NUM)
#define BIT_SET_P0HI17Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI17Q_DESC_NUM(x) | BIT_P0HI17Q_DESC_NUM(v))

#define BIT_P0HI16Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI16Q_DESC_MODE			12
#define BIT_MASK_P0HI16Q_DESC_MODE			0x3
#define BIT_P0HI16Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI16Q_DESC_MODE) << BIT_SHIFT_P0HI16Q_DESC_MODE)
#define BITS_P0HI16Q_DESC_MODE				(BIT_MASK_P0HI16Q_DESC_MODE << BIT_SHIFT_P0HI16Q_DESC_MODE)
#define BIT_CLEAR_P0HI16Q_DESC_MODE(x)			((x) & (~BITS_P0HI16Q_DESC_MODE))
#define BIT_GET_P0HI16Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI16Q_DESC_MODE) & BIT_MASK_P0HI16Q_DESC_MODE)
#define BIT_SET_P0HI16Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI16Q_DESC_MODE(x) | BIT_P0HI16Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI16Q_DESC_NUM			0
#define BIT_MASK_P0HI16Q_DESC_NUM			0xfff
#define BIT_P0HI16Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI16Q_DESC_NUM) << BIT_SHIFT_P0HI16Q_DESC_NUM)
#define BITS_P0HI16Q_DESC_NUM				(BIT_MASK_P0HI16Q_DESC_NUM << BIT_SHIFT_P0HI16Q_DESC_NUM)
#define BIT_CLEAR_P0HI16Q_DESC_NUM(x)			((x) & (~BITS_P0HI16Q_DESC_NUM))
#define BIT_GET_P0HI16Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI16Q_DESC_NUM) & BIT_MASK_P0HI16Q_DESC_NUM)
#define BIT_SET_P0HI16Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI16Q_DESC_NUM(x) | BIT_P0HI16Q_DESC_NUM(v))


/* 2 REG_P0HI18Q_HI19Q_TXBD_NUM		(Offset 0x2384) */

#define BIT_P0HI19Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI19Q_DESC_MODE			28
#define BIT_MASK_P0HI19Q_DESC_MODE			0x3
#define BIT_P0HI19Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI19Q_DESC_MODE) << BIT_SHIFT_P0HI19Q_DESC_MODE)
#define BITS_P0HI19Q_DESC_MODE				(BIT_MASK_P0HI19Q_DESC_MODE << BIT_SHIFT_P0HI19Q_DESC_MODE)
#define BIT_CLEAR_P0HI19Q_DESC_MODE(x)			((x) & (~BITS_P0HI19Q_DESC_MODE))
#define BIT_GET_P0HI19Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI19Q_DESC_MODE) & BIT_MASK_P0HI19Q_DESC_MODE)
#define BIT_SET_P0HI19Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI19Q_DESC_MODE(x) | BIT_P0HI19Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI19Q_DESC_NUM			16
#define BIT_MASK_P0HI19Q_DESC_NUM			0xfff
#define BIT_P0HI19Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI19Q_DESC_NUM) << BIT_SHIFT_P0HI19Q_DESC_NUM)
#define BITS_P0HI19Q_DESC_NUM				(BIT_MASK_P0HI19Q_DESC_NUM << BIT_SHIFT_P0HI19Q_DESC_NUM)
#define BIT_CLEAR_P0HI19Q_DESC_NUM(x)			((x) & (~BITS_P0HI19Q_DESC_NUM))
#define BIT_GET_P0HI19Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI19Q_DESC_NUM) & BIT_MASK_P0HI19Q_DESC_NUM)
#define BIT_SET_P0HI19Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI19Q_DESC_NUM(x) | BIT_P0HI19Q_DESC_NUM(v))

#define BIT_P0HI18Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI18Q_DESC_MODE			12
#define BIT_MASK_P0HI18Q_DESC_MODE			0x3
#define BIT_P0HI18Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI18Q_DESC_MODE) << BIT_SHIFT_P0HI18Q_DESC_MODE)
#define BITS_P0HI18Q_DESC_MODE				(BIT_MASK_P0HI18Q_DESC_MODE << BIT_SHIFT_P0HI18Q_DESC_MODE)
#define BIT_CLEAR_P0HI18Q_DESC_MODE(x)			((x) & (~BITS_P0HI18Q_DESC_MODE))
#define BIT_GET_P0HI18Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI18Q_DESC_MODE) & BIT_MASK_P0HI18Q_DESC_MODE)
#define BIT_SET_P0HI18Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI18Q_DESC_MODE(x) | BIT_P0HI18Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI18Q_DESC_NUM			0
#define BIT_MASK_P0HI18Q_DESC_NUM			0xfff
#define BIT_P0HI18Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI18Q_DESC_NUM) << BIT_SHIFT_P0HI18Q_DESC_NUM)
#define BITS_P0HI18Q_DESC_NUM				(BIT_MASK_P0HI18Q_DESC_NUM << BIT_SHIFT_P0HI18Q_DESC_NUM)
#define BIT_CLEAR_P0HI18Q_DESC_NUM(x)			((x) & (~BITS_P0HI18Q_DESC_NUM))
#define BIT_GET_P0HI18Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI18Q_DESC_NUM) & BIT_MASK_P0HI18Q_DESC_NUM)
#define BIT_SET_P0HI18Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI18Q_DESC_NUM(x) | BIT_P0HI18Q_DESC_NUM(v))


/* 2 REG_PCIE_HISR0				(Offset 0x23B4) */

#define BIT_HISR1_IND					BIT(11)
#define BIT_TXDMAOK_CHANNEL15				BIT(7)
#define BIT_TXDMAOK_CHANNEL14				BIT(6)
#define BIT_TXDMAOK_CHANNEL3				BIT(5)
#define BIT_TXDMAOK_CHANNEL2				BIT(4)
#define BIT_TXDMAOK_CHANNEL1				BIT(3)
#define BIT_TXDMAOK_CHANNEL0				BIT(2)

/* 2 REG_PCIE_HISR1				(Offset 0x23BC) */

#define BIT_CPU_MGQ_EARLY_INT				BIT(6)
#define BIT_PSTIMER_5					BIT(4)
#define BIT_PSTIMER_4					BIT(3)
#define BIT_PSTIMER_3					BIT(2)
#define BIT_BB_STOPRX_INT				BIT(0)

/* 2 REG_P0HI8Q_HI9Q_TXBD_NUM		(Offset 0x23C0) */

#define BIT_P0HI9Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI9Q_DESC_MODE			28
#define BIT_MASK_P0HI9Q_DESC_MODE			0x3
#define BIT_P0HI9Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI9Q_DESC_MODE) << BIT_SHIFT_P0HI9Q_DESC_MODE)
#define BITS_P0HI9Q_DESC_MODE				(BIT_MASK_P0HI9Q_DESC_MODE << BIT_SHIFT_P0HI9Q_DESC_MODE)
#define BIT_CLEAR_P0HI9Q_DESC_MODE(x)			((x) & (~BITS_P0HI9Q_DESC_MODE))
#define BIT_GET_P0HI9Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI9Q_DESC_MODE) & BIT_MASK_P0HI9Q_DESC_MODE)
#define BIT_SET_P0HI9Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI9Q_DESC_MODE(x) | BIT_P0HI9Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI9Q_DESC_NUM			16
#define BIT_MASK_P0HI9Q_DESC_NUM			0xfff
#define BIT_P0HI9Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI9Q_DESC_NUM) << BIT_SHIFT_P0HI9Q_DESC_NUM)
#define BITS_P0HI9Q_DESC_NUM				(BIT_MASK_P0HI9Q_DESC_NUM << BIT_SHIFT_P0HI9Q_DESC_NUM)
#define BIT_CLEAR_P0HI9Q_DESC_NUM(x)			((x) & (~BITS_P0HI9Q_DESC_NUM))
#define BIT_GET_P0HI9Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI9Q_DESC_NUM) & BIT_MASK_P0HI9Q_DESC_NUM)
#define BIT_SET_P0HI9Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI9Q_DESC_NUM(x) | BIT_P0HI9Q_DESC_NUM(v))

#define BIT_P0HI8Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI8Q_DESC_MODE			12
#define BIT_MASK_P0HI8Q_DESC_MODE			0x3
#define BIT_P0HI8Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI8Q_DESC_MODE) << BIT_SHIFT_P0HI8Q_DESC_MODE)
#define BITS_P0HI8Q_DESC_MODE				(BIT_MASK_P0HI8Q_DESC_MODE << BIT_SHIFT_P0HI8Q_DESC_MODE)
#define BIT_CLEAR_P0HI8Q_DESC_MODE(x)			((x) & (~BITS_P0HI8Q_DESC_MODE))
#define BIT_GET_P0HI8Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI8Q_DESC_MODE) & BIT_MASK_P0HI8Q_DESC_MODE)
#define BIT_SET_P0HI8Q_DESC_MODE(x, v)			(BIT_CLEAR_P0HI8Q_DESC_MODE(x) | BIT_P0HI8Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI8Q_DESC_NUM			0
#define BIT_MASK_P0HI8Q_DESC_NUM			0xfff
#define BIT_P0HI8Q_DESC_NUM(x)				(((x) & BIT_MASK_P0HI8Q_DESC_NUM) << BIT_SHIFT_P0HI8Q_DESC_NUM)
#define BITS_P0HI8Q_DESC_NUM				(BIT_MASK_P0HI8Q_DESC_NUM << BIT_SHIFT_P0HI8Q_DESC_NUM)
#define BIT_CLEAR_P0HI8Q_DESC_NUM(x)			((x) & (~BITS_P0HI8Q_DESC_NUM))
#define BIT_GET_P0HI8Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI8Q_DESC_NUM) & BIT_MASK_P0HI8Q_DESC_NUM)
#define BIT_SET_P0HI8Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI8Q_DESC_NUM(x) | BIT_P0HI8Q_DESC_NUM(v))


/* 2 REG_P0HI10Q_HI11Q_TXBD_NUM		(Offset 0x23C4) */

#define BIT_P0HI11Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI11Q_DESC_MODE			28
#define BIT_MASK_P0HI11Q_DESC_MODE			0x3
#define BIT_P0HI11Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI11Q_DESC_MODE) << BIT_SHIFT_P0HI11Q_DESC_MODE)
#define BITS_P0HI11Q_DESC_MODE				(BIT_MASK_P0HI11Q_DESC_MODE << BIT_SHIFT_P0HI11Q_DESC_MODE)
#define BIT_CLEAR_P0HI11Q_DESC_MODE(x)			((x) & (~BITS_P0HI11Q_DESC_MODE))
#define BIT_GET_P0HI11Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI11Q_DESC_MODE) & BIT_MASK_P0HI11Q_DESC_MODE)
#define BIT_SET_P0HI11Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI11Q_DESC_MODE(x) | BIT_P0HI11Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI11Q_DESC_NUM			16
#define BIT_MASK_P0HI11Q_DESC_NUM			0xfff
#define BIT_P0HI11Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI11Q_DESC_NUM) << BIT_SHIFT_P0HI11Q_DESC_NUM)
#define BITS_P0HI11Q_DESC_NUM				(BIT_MASK_P0HI11Q_DESC_NUM << BIT_SHIFT_P0HI11Q_DESC_NUM)
#define BIT_CLEAR_P0HI11Q_DESC_NUM(x)			((x) & (~BITS_P0HI11Q_DESC_NUM))
#define BIT_GET_P0HI11Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI11Q_DESC_NUM) & BIT_MASK_P0HI11Q_DESC_NUM)
#define BIT_SET_P0HI11Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI11Q_DESC_NUM(x) | BIT_P0HI11Q_DESC_NUM(v))

#define BIT_P0HI10Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI10Q_DESC_MODE			12
#define BIT_MASK_P0HI10Q_DESC_MODE			0x3
#define BIT_P0HI10Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI10Q_DESC_MODE) << BIT_SHIFT_P0HI10Q_DESC_MODE)
#define BITS_P0HI10Q_DESC_MODE				(BIT_MASK_P0HI10Q_DESC_MODE << BIT_SHIFT_P0HI10Q_DESC_MODE)
#define BIT_CLEAR_P0HI10Q_DESC_MODE(x)			((x) & (~BITS_P0HI10Q_DESC_MODE))
#define BIT_GET_P0HI10Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI10Q_DESC_MODE) & BIT_MASK_P0HI10Q_DESC_MODE)
#define BIT_SET_P0HI10Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI10Q_DESC_MODE(x) | BIT_P0HI10Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI10Q_DESC_NUM			0
#define BIT_MASK_P0HI10Q_DESC_NUM			0xfff
#define BIT_P0HI10Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI10Q_DESC_NUM) << BIT_SHIFT_P0HI10Q_DESC_NUM)
#define BITS_P0HI10Q_DESC_NUM				(BIT_MASK_P0HI10Q_DESC_NUM << BIT_SHIFT_P0HI10Q_DESC_NUM)
#define BIT_CLEAR_P0HI10Q_DESC_NUM(x)			((x) & (~BITS_P0HI10Q_DESC_NUM))
#define BIT_GET_P0HI10Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI10Q_DESC_NUM) & BIT_MASK_P0HI10Q_DESC_NUM)
#define BIT_SET_P0HI10Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI10Q_DESC_NUM(x) | BIT_P0HI10Q_DESC_NUM(v))


/* 2 REG_P0HI12Q_HI13Q_TXBD_NUM		(Offset 0x23C8) */

#define BIT_P0HI13Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI13Q_DESC_MODE			28
#define BIT_MASK_P0HI13Q_DESC_MODE			0x3
#define BIT_P0HI13Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI13Q_DESC_MODE) << BIT_SHIFT_P0HI13Q_DESC_MODE)
#define BITS_P0HI13Q_DESC_MODE				(BIT_MASK_P0HI13Q_DESC_MODE << BIT_SHIFT_P0HI13Q_DESC_MODE)
#define BIT_CLEAR_P0HI13Q_DESC_MODE(x)			((x) & (~BITS_P0HI13Q_DESC_MODE))
#define BIT_GET_P0HI13Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI13Q_DESC_MODE) & BIT_MASK_P0HI13Q_DESC_MODE)
#define BIT_SET_P0HI13Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI13Q_DESC_MODE(x) | BIT_P0HI13Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI13Q_DESC_NUM			16
#define BIT_MASK_P0HI13Q_DESC_NUM			0xfff
#define BIT_P0HI13Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI13Q_DESC_NUM) << BIT_SHIFT_P0HI13Q_DESC_NUM)
#define BITS_P0HI13Q_DESC_NUM				(BIT_MASK_P0HI13Q_DESC_NUM << BIT_SHIFT_P0HI13Q_DESC_NUM)
#define BIT_CLEAR_P0HI13Q_DESC_NUM(x)			((x) & (~BITS_P0HI13Q_DESC_NUM))
#define BIT_GET_P0HI13Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI13Q_DESC_NUM) & BIT_MASK_P0HI13Q_DESC_NUM)
#define BIT_SET_P0HI13Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI13Q_DESC_NUM(x) | BIT_P0HI13Q_DESC_NUM(v))

#define BIT_P0HI12Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI12Q_DESC_MODE			12
#define BIT_MASK_P0HI12Q_DESC_MODE			0x3
#define BIT_P0HI12Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI12Q_DESC_MODE) << BIT_SHIFT_P0HI12Q_DESC_MODE)
#define BITS_P0HI12Q_DESC_MODE				(BIT_MASK_P0HI12Q_DESC_MODE << BIT_SHIFT_P0HI12Q_DESC_MODE)
#define BIT_CLEAR_P0HI12Q_DESC_MODE(x)			((x) & (~BITS_P0HI12Q_DESC_MODE))
#define BIT_GET_P0HI12Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI12Q_DESC_MODE) & BIT_MASK_P0HI12Q_DESC_MODE)
#define BIT_SET_P0HI12Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI12Q_DESC_MODE(x) | BIT_P0HI12Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI12Q_DESC_NUM			0
#define BIT_MASK_P0HI12Q_DESC_NUM			0xfff
#define BIT_P0HI12Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI12Q_DESC_NUM) << BIT_SHIFT_P0HI12Q_DESC_NUM)
#define BITS_P0HI12Q_DESC_NUM				(BIT_MASK_P0HI12Q_DESC_NUM << BIT_SHIFT_P0HI12Q_DESC_NUM)
#define BIT_CLEAR_P0HI12Q_DESC_NUM(x)			((x) & (~BITS_P0HI12Q_DESC_NUM))
#define BIT_GET_P0HI12Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI12Q_DESC_NUM) & BIT_MASK_P0HI12Q_DESC_NUM)
#define BIT_SET_P0HI12Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI12Q_DESC_NUM(x) | BIT_P0HI12Q_DESC_NUM(v))


/* 2 REG_P0HI14Q_HI15Q_TXBD_NUM		(Offset 0x23CC) */

#define BIT_P0HI15Q_FLAG				BIT(30)

#define BIT_SHIFT_P0HI15Q_DESC_MODE			28
#define BIT_MASK_P0HI15Q_DESC_MODE			0x3
#define BIT_P0HI15Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI15Q_DESC_MODE) << BIT_SHIFT_P0HI15Q_DESC_MODE)
#define BITS_P0HI15Q_DESC_MODE				(BIT_MASK_P0HI15Q_DESC_MODE << BIT_SHIFT_P0HI15Q_DESC_MODE)
#define BIT_CLEAR_P0HI15Q_DESC_MODE(x)			((x) & (~BITS_P0HI15Q_DESC_MODE))
#define BIT_GET_P0HI15Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI15Q_DESC_MODE) & BIT_MASK_P0HI15Q_DESC_MODE)
#define BIT_SET_P0HI15Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI15Q_DESC_MODE(x) | BIT_P0HI15Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI15Q_DESC_NUM			16
#define BIT_MASK_P0HI15Q_DESC_NUM			0xfff
#define BIT_P0HI15Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI15Q_DESC_NUM) << BIT_SHIFT_P0HI15Q_DESC_NUM)
#define BITS_P0HI15Q_DESC_NUM				(BIT_MASK_P0HI15Q_DESC_NUM << BIT_SHIFT_P0HI15Q_DESC_NUM)
#define BIT_CLEAR_P0HI15Q_DESC_NUM(x)			((x) & (~BITS_P0HI15Q_DESC_NUM))
#define BIT_GET_P0HI15Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI15Q_DESC_NUM) & BIT_MASK_P0HI15Q_DESC_NUM)
#define BIT_SET_P0HI15Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI15Q_DESC_NUM(x) | BIT_P0HI15Q_DESC_NUM(v))

#define BIT_P0HI14Q_FLAG				BIT(14)

#define BIT_SHIFT_P0HI14Q_DESC_MODE			12
#define BIT_MASK_P0HI14Q_DESC_MODE			0x3
#define BIT_P0HI14Q_DESC_MODE(x)			(((x) & BIT_MASK_P0HI14Q_DESC_MODE) << BIT_SHIFT_P0HI14Q_DESC_MODE)
#define BITS_P0HI14Q_DESC_MODE				(BIT_MASK_P0HI14Q_DESC_MODE << BIT_SHIFT_P0HI14Q_DESC_MODE)
#define BIT_CLEAR_P0HI14Q_DESC_MODE(x)			((x) & (~BITS_P0HI14Q_DESC_MODE))
#define BIT_GET_P0HI14Q_DESC_MODE(x)			(((x) >> BIT_SHIFT_P0HI14Q_DESC_MODE) & BIT_MASK_P0HI14Q_DESC_MODE)
#define BIT_SET_P0HI14Q_DESC_MODE(x, v)		(BIT_CLEAR_P0HI14Q_DESC_MODE(x) | BIT_P0HI14Q_DESC_MODE(v))


#define BIT_SHIFT_P0HI14Q_DESC_NUM			0
#define BIT_MASK_P0HI14Q_DESC_NUM			0xfff
#define BIT_P0HI14Q_DESC_NUM(x)			(((x) & BIT_MASK_P0HI14Q_DESC_NUM) << BIT_SHIFT_P0HI14Q_DESC_NUM)
#define BITS_P0HI14Q_DESC_NUM				(BIT_MASK_P0HI14Q_DESC_NUM << BIT_SHIFT_P0HI14Q_DESC_NUM)
#define BIT_CLEAR_P0HI14Q_DESC_NUM(x)			((x) & (~BITS_P0HI14Q_DESC_NUM))
#define BIT_GET_P0HI14Q_DESC_NUM(x)			(((x) >> BIT_SHIFT_P0HI14Q_DESC_NUM) & BIT_MASK_P0HI14Q_DESC_NUM)
#define BIT_SET_P0HI14Q_DESC_NUM(x, v)			(BIT_CLEAR_P0HI14Q_DESC_NUM(x) | BIT_P0HI14Q_DESC_NUM(v))


/* 2 REG_ACH6_ACH7_TXBD_NUM			(Offset 0x23F0) */

#define BIT_PCIE_ACH7_FLAG				BIT(30)

#define BIT_SHIFT_ACH7_DESC_MODE			28
#define BIT_MASK_ACH7_DESC_MODE			0x3
#define BIT_ACH7_DESC_MODE(x)				(((x) & BIT_MASK_ACH7_DESC_MODE) << BIT_SHIFT_ACH7_DESC_MODE)
#define BITS_ACH7_DESC_MODE				(BIT_MASK_ACH7_DESC_MODE << BIT_SHIFT_ACH7_DESC_MODE)
#define BIT_CLEAR_ACH7_DESC_MODE(x)			((x) & (~BITS_ACH7_DESC_MODE))
#define BIT_GET_ACH7_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH7_DESC_MODE) & BIT_MASK_ACH7_DESC_MODE)
#define BIT_SET_ACH7_DESC_MODE(x, v)			(BIT_CLEAR_ACH7_DESC_MODE(x) | BIT_ACH7_DESC_MODE(v))


#define BIT_SHIFT_ACH7_DESC_NUM			16
#define BIT_MASK_ACH7_DESC_NUM				0xfff
#define BIT_ACH7_DESC_NUM(x)				(((x) & BIT_MASK_ACH7_DESC_NUM) << BIT_SHIFT_ACH7_DESC_NUM)
#define BITS_ACH7_DESC_NUM				(BIT_MASK_ACH7_DESC_NUM << BIT_SHIFT_ACH7_DESC_NUM)
#define BIT_CLEAR_ACH7_DESC_NUM(x)			((x) & (~BITS_ACH7_DESC_NUM))
#define BIT_GET_ACH7_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH7_DESC_NUM) & BIT_MASK_ACH7_DESC_NUM)
#define BIT_SET_ACH7_DESC_NUM(x, v)			(BIT_CLEAR_ACH7_DESC_NUM(x) | BIT_ACH7_DESC_NUM(v))

#define BIT_PCIE_ACH6_FLAG				BIT(14)

#define BIT_SHIFT_ACH6_DESC_MODE			12
#define BIT_MASK_ACH6_DESC_MODE			0x3
#define BIT_ACH6_DESC_MODE(x)				(((x) & BIT_MASK_ACH6_DESC_MODE) << BIT_SHIFT_ACH6_DESC_MODE)
#define BITS_ACH6_DESC_MODE				(BIT_MASK_ACH6_DESC_MODE << BIT_SHIFT_ACH6_DESC_MODE)
#define BIT_CLEAR_ACH6_DESC_MODE(x)			((x) & (~BITS_ACH6_DESC_MODE))
#define BIT_GET_ACH6_DESC_MODE(x)			(((x) >> BIT_SHIFT_ACH6_DESC_MODE) & BIT_MASK_ACH6_DESC_MODE)
#define BIT_SET_ACH6_DESC_MODE(x, v)			(BIT_CLEAR_ACH6_DESC_MODE(x) | BIT_ACH6_DESC_MODE(v))


#define BIT_SHIFT_ACH6_DESC_NUM			0
#define BIT_MASK_ACH6_DESC_NUM				0xfff
#define BIT_ACH6_DESC_NUM(x)				(((x) & BIT_MASK_ACH6_DESC_NUM) << BIT_SHIFT_ACH6_DESC_NUM)
#define BITS_ACH6_DESC_NUM				(BIT_MASK_ACH6_DESC_NUM << BIT_SHIFT_ACH6_DESC_NUM)
#define BIT_CLEAR_ACH6_DESC_NUM(x)			((x) & (~BITS_ACH6_DESC_NUM))
#define BIT_GET_ACH6_DESC_NUM(x)			(((x) >> BIT_SHIFT_ACH6_DESC_NUM) & BIT_MASK_ACH6_DESC_NUM)
#define BIT_SET_ACH6_DESC_NUM(x, v)			(BIT_CLEAR_ACH6_DESC_NUM(x) | BIT_ACH6_DESC_NUM(v))


/* 2 REG_TXPAGE_INT_CTRL_0			(Offset 0x3200) */

#define BIT_CH0_INT_EN					BIT(31)

#define BIT_SHIFT_CH0_HIGH_TH				16
#define BIT_MASK_CH0_HIGH_TH				0xfff
#define BIT_CH0_HIGH_TH(x)				(((x) & BIT_MASK_CH0_HIGH_TH) << BIT_SHIFT_CH0_HIGH_TH)
#define BITS_CH0_HIGH_TH				(BIT_MASK_CH0_HIGH_TH << BIT_SHIFT_CH0_HIGH_TH)
#define BIT_CLEAR_CH0_HIGH_TH(x)			((x) & (~BITS_CH0_HIGH_TH))
#define BIT_GET_CH0_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH0_HIGH_TH) & BIT_MASK_CH0_HIGH_TH)
#define BIT_SET_CH0_HIGH_TH(x, v)			(BIT_CLEAR_CH0_HIGH_TH(x) | BIT_CH0_HIGH_TH(v))


#define BIT_SHIFT_CH0_LOW_TH				0
#define BIT_MASK_CH0_LOW_TH				0xfff
#define BIT_CH0_LOW_TH(x)				(((x) & BIT_MASK_CH0_LOW_TH) << BIT_SHIFT_CH0_LOW_TH)
#define BITS_CH0_LOW_TH				(BIT_MASK_CH0_LOW_TH << BIT_SHIFT_CH0_LOW_TH)
#define BIT_CLEAR_CH0_LOW_TH(x)			((x) & (~BITS_CH0_LOW_TH))
#define BIT_GET_CH0_LOW_TH(x)				(((x) >> BIT_SHIFT_CH0_LOW_TH) & BIT_MASK_CH0_LOW_TH)
#define BIT_SET_CH0_LOW_TH(x, v)			(BIT_CLEAR_CH0_LOW_TH(x) | BIT_CH0_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_1			(Offset 0x3204) */

#define BIT_CH1_INT_EN					BIT(31)

#define BIT_SHIFT_CH1_HIGH_TH				16
#define BIT_MASK_CH1_HIGH_TH				0xfff
#define BIT_CH1_HIGH_TH(x)				(((x) & BIT_MASK_CH1_HIGH_TH) << BIT_SHIFT_CH1_HIGH_TH)
#define BITS_CH1_HIGH_TH				(BIT_MASK_CH1_HIGH_TH << BIT_SHIFT_CH1_HIGH_TH)
#define BIT_CLEAR_CH1_HIGH_TH(x)			((x) & (~BITS_CH1_HIGH_TH))
#define BIT_GET_CH1_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH1_HIGH_TH) & BIT_MASK_CH1_HIGH_TH)
#define BIT_SET_CH1_HIGH_TH(x, v)			(BIT_CLEAR_CH1_HIGH_TH(x) | BIT_CH1_HIGH_TH(v))


#define BIT_SHIFT_CH1_LOW_TH				0
#define BIT_MASK_CH1_LOW_TH				0xfff
#define BIT_CH1_LOW_TH(x)				(((x) & BIT_MASK_CH1_LOW_TH) << BIT_SHIFT_CH1_LOW_TH)
#define BITS_CH1_LOW_TH				(BIT_MASK_CH1_LOW_TH << BIT_SHIFT_CH1_LOW_TH)
#define BIT_CLEAR_CH1_LOW_TH(x)			((x) & (~BITS_CH1_LOW_TH))
#define BIT_GET_CH1_LOW_TH(x)				(((x) >> BIT_SHIFT_CH1_LOW_TH) & BIT_MASK_CH1_LOW_TH)
#define BIT_SET_CH1_LOW_TH(x, v)			(BIT_CLEAR_CH1_LOW_TH(x) | BIT_CH1_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_2			(Offset 0x3208) */

#define BIT_CH2_INT_EN					BIT(31)

#define BIT_SHIFT_CH2_HIGH_TH				16
#define BIT_MASK_CH2_HIGH_TH				0xfff
#define BIT_CH2_HIGH_TH(x)				(((x) & BIT_MASK_CH2_HIGH_TH) << BIT_SHIFT_CH2_HIGH_TH)
#define BITS_CH2_HIGH_TH				(BIT_MASK_CH2_HIGH_TH << BIT_SHIFT_CH2_HIGH_TH)
#define BIT_CLEAR_CH2_HIGH_TH(x)			((x) & (~BITS_CH2_HIGH_TH))
#define BIT_GET_CH2_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH2_HIGH_TH) & BIT_MASK_CH2_HIGH_TH)
#define BIT_SET_CH2_HIGH_TH(x, v)			(BIT_CLEAR_CH2_HIGH_TH(x) | BIT_CH2_HIGH_TH(v))


#define BIT_SHIFT_CH2_LOW_TH				0
#define BIT_MASK_CH2_LOW_TH				0xfff
#define BIT_CH2_LOW_TH(x)				(((x) & BIT_MASK_CH2_LOW_TH) << BIT_SHIFT_CH2_LOW_TH)
#define BITS_CH2_LOW_TH				(BIT_MASK_CH2_LOW_TH << BIT_SHIFT_CH2_LOW_TH)
#define BIT_CLEAR_CH2_LOW_TH(x)			((x) & (~BITS_CH2_LOW_TH))
#define BIT_GET_CH2_LOW_TH(x)				(((x) >> BIT_SHIFT_CH2_LOW_TH) & BIT_MASK_CH2_LOW_TH)
#define BIT_SET_CH2_LOW_TH(x, v)			(BIT_CLEAR_CH2_LOW_TH(x) | BIT_CH2_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_3			(Offset 0x320C) */

#define BIT_CH3_INT_EN					BIT(31)

#define BIT_SHIFT_CH3_HIGH_TH				16
#define BIT_MASK_CH3_HIGH_TH				0xfff
#define BIT_CH3_HIGH_TH(x)				(((x) & BIT_MASK_CH3_HIGH_TH) << BIT_SHIFT_CH3_HIGH_TH)
#define BITS_CH3_HIGH_TH				(BIT_MASK_CH3_HIGH_TH << BIT_SHIFT_CH3_HIGH_TH)
#define BIT_CLEAR_CH3_HIGH_TH(x)			((x) & (~BITS_CH3_HIGH_TH))
#define BIT_GET_CH3_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH3_HIGH_TH) & BIT_MASK_CH3_HIGH_TH)
#define BIT_SET_CH3_HIGH_TH(x, v)			(BIT_CLEAR_CH3_HIGH_TH(x) | BIT_CH3_HIGH_TH(v))


#define BIT_SHIFT_CH3_LOW_TH				0
#define BIT_MASK_CH3_LOW_TH				0xfff
#define BIT_CH3_LOW_TH(x)				(((x) & BIT_MASK_CH3_LOW_TH) << BIT_SHIFT_CH3_LOW_TH)
#define BITS_CH3_LOW_TH				(BIT_MASK_CH3_LOW_TH << BIT_SHIFT_CH3_LOW_TH)
#define BIT_CLEAR_CH3_LOW_TH(x)			((x) & (~BITS_CH3_LOW_TH))
#define BIT_GET_CH3_LOW_TH(x)				(((x) >> BIT_SHIFT_CH3_LOW_TH) & BIT_MASK_CH3_LOW_TH)
#define BIT_SET_CH3_LOW_TH(x, v)			(BIT_CLEAR_CH3_LOW_TH(x) | BIT_CH3_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_4			(Offset 0x3210) */

#define BIT_CH4_INT_EN					BIT(31)

#define BIT_SHIFT_CH4_HIGH_TH				16
#define BIT_MASK_CH4_HIGH_TH				0xfff
#define BIT_CH4_HIGH_TH(x)				(((x) & BIT_MASK_CH4_HIGH_TH) << BIT_SHIFT_CH4_HIGH_TH)
#define BITS_CH4_HIGH_TH				(BIT_MASK_CH4_HIGH_TH << BIT_SHIFT_CH4_HIGH_TH)
#define BIT_CLEAR_CH4_HIGH_TH(x)			((x) & (~BITS_CH4_HIGH_TH))
#define BIT_GET_CH4_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH4_HIGH_TH) & BIT_MASK_CH4_HIGH_TH)
#define BIT_SET_CH4_HIGH_TH(x, v)			(BIT_CLEAR_CH4_HIGH_TH(x) | BIT_CH4_HIGH_TH(v))


#define BIT_SHIFT_CH4_LOW_TH				0
#define BIT_MASK_CH4_LOW_TH				0xfff
#define BIT_CH4_LOW_TH(x)				(((x) & BIT_MASK_CH4_LOW_TH) << BIT_SHIFT_CH4_LOW_TH)
#define BITS_CH4_LOW_TH				(BIT_MASK_CH4_LOW_TH << BIT_SHIFT_CH4_LOW_TH)
#define BIT_CLEAR_CH4_LOW_TH(x)			((x) & (~BITS_CH4_LOW_TH))
#define BIT_GET_CH4_LOW_TH(x)				(((x) >> BIT_SHIFT_CH4_LOW_TH) & BIT_MASK_CH4_LOW_TH)
#define BIT_SET_CH4_LOW_TH(x, v)			(BIT_CLEAR_CH4_LOW_TH(x) | BIT_CH4_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_5			(Offset 0x3214) */

#define BIT_CH5_INT_EN					BIT(31)

#define BIT_SHIFT_CH5_HIGH_TH				16
#define BIT_MASK_CH5_HIGH_TH				0xfff
#define BIT_CH5_HIGH_TH(x)				(((x) & BIT_MASK_CH5_HIGH_TH) << BIT_SHIFT_CH5_HIGH_TH)
#define BITS_CH5_HIGH_TH				(BIT_MASK_CH5_HIGH_TH << BIT_SHIFT_CH5_HIGH_TH)
#define BIT_CLEAR_CH5_HIGH_TH(x)			((x) & (~BITS_CH5_HIGH_TH))
#define BIT_GET_CH5_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH5_HIGH_TH) & BIT_MASK_CH5_HIGH_TH)
#define BIT_SET_CH5_HIGH_TH(x, v)			(BIT_CLEAR_CH5_HIGH_TH(x) | BIT_CH5_HIGH_TH(v))


#define BIT_SHIFT_CH5_LOW_TH				0
#define BIT_MASK_CH5_LOW_TH				0xfff
#define BIT_CH5_LOW_TH(x)				(((x) & BIT_MASK_CH5_LOW_TH) << BIT_SHIFT_CH5_LOW_TH)
#define BITS_CH5_LOW_TH				(BIT_MASK_CH5_LOW_TH << BIT_SHIFT_CH5_LOW_TH)
#define BIT_CLEAR_CH5_LOW_TH(x)			((x) & (~BITS_CH5_LOW_TH))
#define BIT_GET_CH5_LOW_TH(x)				(((x) >> BIT_SHIFT_CH5_LOW_TH) & BIT_MASK_CH5_LOW_TH)
#define BIT_SET_CH5_LOW_TH(x, v)			(BIT_CLEAR_CH5_LOW_TH(x) | BIT_CH5_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_6			(Offset 0x3218) */

#define BIT_CH6_INT_EN					BIT(31)

#define BIT_SHIFT_CH6_HIGH_TH				16
#define BIT_MASK_CH6_HIGH_TH				0xfff
#define BIT_CH6_HIGH_TH(x)				(((x) & BIT_MASK_CH6_HIGH_TH) << BIT_SHIFT_CH6_HIGH_TH)
#define BITS_CH6_HIGH_TH				(BIT_MASK_CH6_HIGH_TH << BIT_SHIFT_CH6_HIGH_TH)
#define BIT_CLEAR_CH6_HIGH_TH(x)			((x) & (~BITS_CH6_HIGH_TH))
#define BIT_GET_CH6_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH6_HIGH_TH) & BIT_MASK_CH6_HIGH_TH)
#define BIT_SET_CH6_HIGH_TH(x, v)			(BIT_CLEAR_CH6_HIGH_TH(x) | BIT_CH6_HIGH_TH(v))


#define BIT_SHIFT_CH6_LOW_TH				0
#define BIT_MASK_CH6_LOW_TH				0xfff
#define BIT_CH6_LOW_TH(x)				(((x) & BIT_MASK_CH6_LOW_TH) << BIT_SHIFT_CH6_LOW_TH)
#define BITS_CH6_LOW_TH				(BIT_MASK_CH6_LOW_TH << BIT_SHIFT_CH6_LOW_TH)
#define BIT_CLEAR_CH6_LOW_TH(x)			((x) & (~BITS_CH6_LOW_TH))
#define BIT_GET_CH6_LOW_TH(x)				(((x) >> BIT_SHIFT_CH6_LOW_TH) & BIT_MASK_CH6_LOW_TH)
#define BIT_SET_CH6_LOW_TH(x, v)			(BIT_CLEAR_CH6_LOW_TH(x) | BIT_CH6_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_7			(Offset 0x321C) */

#define BIT_CH7_INT_EN					BIT(31)

#define BIT_SHIFT_CH7_HIGH_TH				16
#define BIT_MASK_CH7_HIGH_TH				0xfff
#define BIT_CH7_HIGH_TH(x)				(((x) & BIT_MASK_CH7_HIGH_TH) << BIT_SHIFT_CH7_HIGH_TH)
#define BITS_CH7_HIGH_TH				(BIT_MASK_CH7_HIGH_TH << BIT_SHIFT_CH7_HIGH_TH)
#define BIT_CLEAR_CH7_HIGH_TH(x)			((x) & (~BITS_CH7_HIGH_TH))
#define BIT_GET_CH7_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH7_HIGH_TH) & BIT_MASK_CH7_HIGH_TH)
#define BIT_SET_CH7_HIGH_TH(x, v)			(BIT_CLEAR_CH7_HIGH_TH(x) | BIT_CH7_HIGH_TH(v))


#define BIT_SHIFT_CH7_LOW_TH				0
#define BIT_MASK_CH7_LOW_TH				0xfff
#define BIT_CH7_LOW_TH(x)				(((x) & BIT_MASK_CH7_LOW_TH) << BIT_SHIFT_CH7_LOW_TH)
#define BITS_CH7_LOW_TH				(BIT_MASK_CH7_LOW_TH << BIT_SHIFT_CH7_LOW_TH)
#define BIT_CLEAR_CH7_LOW_TH(x)			((x) & (~BITS_CH7_LOW_TH))
#define BIT_GET_CH7_LOW_TH(x)				(((x) >> BIT_SHIFT_CH7_LOW_TH) & BIT_MASK_CH7_LOW_TH)
#define BIT_SET_CH7_LOW_TH(x, v)			(BIT_CLEAR_CH7_LOW_TH(x) | BIT_CH7_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_8			(Offset 0x3220) */

#define BIT_CH8_INT_EN					BIT(31)

#define BIT_SHIFT_CH8_HIGH_TH				16
#define BIT_MASK_CH8_HIGH_TH				0xfff
#define BIT_CH8_HIGH_TH(x)				(((x) & BIT_MASK_CH8_HIGH_TH) << BIT_SHIFT_CH8_HIGH_TH)
#define BITS_CH8_HIGH_TH				(BIT_MASK_CH8_HIGH_TH << BIT_SHIFT_CH8_HIGH_TH)
#define BIT_CLEAR_CH8_HIGH_TH(x)			((x) & (~BITS_CH8_HIGH_TH))
#define BIT_GET_CH8_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH8_HIGH_TH) & BIT_MASK_CH8_HIGH_TH)
#define BIT_SET_CH8_HIGH_TH(x, v)			(BIT_CLEAR_CH8_HIGH_TH(x) | BIT_CH8_HIGH_TH(v))


#define BIT_SHIFT_CH8_LOW_TH				0
#define BIT_MASK_CH8_LOW_TH				0xfff
#define BIT_CH8_LOW_TH(x)				(((x) & BIT_MASK_CH8_LOW_TH) << BIT_SHIFT_CH8_LOW_TH)
#define BITS_CH8_LOW_TH				(BIT_MASK_CH8_LOW_TH << BIT_SHIFT_CH8_LOW_TH)
#define BIT_CLEAR_CH8_LOW_TH(x)			((x) & (~BITS_CH8_LOW_TH))
#define BIT_GET_CH8_LOW_TH(x)				(((x) >> BIT_SHIFT_CH8_LOW_TH) & BIT_MASK_CH8_LOW_TH)
#define BIT_SET_CH8_LOW_TH(x, v)			(BIT_CLEAR_CH8_LOW_TH(x) | BIT_CH8_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_9			(Offset 0x3224) */

#define BIT_CH9_INT_EN					BIT(31)

#define BIT_SHIFT_CH9_HIGH_TH				16
#define BIT_MASK_CH9_HIGH_TH				0xfff
#define BIT_CH9_HIGH_TH(x)				(((x) & BIT_MASK_CH9_HIGH_TH) << BIT_SHIFT_CH9_HIGH_TH)
#define BITS_CH9_HIGH_TH				(BIT_MASK_CH9_HIGH_TH << BIT_SHIFT_CH9_HIGH_TH)
#define BIT_CLEAR_CH9_HIGH_TH(x)			((x) & (~BITS_CH9_HIGH_TH))
#define BIT_GET_CH9_HIGH_TH(x)				(((x) >> BIT_SHIFT_CH9_HIGH_TH) & BIT_MASK_CH9_HIGH_TH)
#define BIT_SET_CH9_HIGH_TH(x, v)			(BIT_CLEAR_CH9_HIGH_TH(x) | BIT_CH9_HIGH_TH(v))


#define BIT_SHIFT_CH9_LOW_TH				0
#define BIT_MASK_CH9_LOW_TH				0xfff
#define BIT_CH9_LOW_TH(x)				(((x) & BIT_MASK_CH9_LOW_TH) << BIT_SHIFT_CH9_LOW_TH)
#define BITS_CH9_LOW_TH				(BIT_MASK_CH9_LOW_TH << BIT_SHIFT_CH9_LOW_TH)
#define BIT_CLEAR_CH9_LOW_TH(x)			((x) & (~BITS_CH9_LOW_TH))
#define BIT_GET_CH9_LOW_TH(x)				(((x) >> BIT_SHIFT_CH9_LOW_TH) & BIT_MASK_CH9_LOW_TH)
#define BIT_SET_CH9_LOW_TH(x, v)			(BIT_CLEAR_CH9_LOW_TH(x) | BIT_CH9_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_10			(Offset 0x3228) */

#define BIT_CH10_INT_EN				BIT(31)

#define BIT_SHIFT_CH10_HIGH_TH				16
#define BIT_MASK_CH10_HIGH_TH				0xfff
#define BIT_CH10_HIGH_TH(x)				(((x) & BIT_MASK_CH10_HIGH_TH) << BIT_SHIFT_CH10_HIGH_TH)
#define BITS_CH10_HIGH_TH				(BIT_MASK_CH10_HIGH_TH << BIT_SHIFT_CH10_HIGH_TH)
#define BIT_CLEAR_CH10_HIGH_TH(x)			((x) & (~BITS_CH10_HIGH_TH))
#define BIT_GET_CH10_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH10_HIGH_TH) & BIT_MASK_CH10_HIGH_TH)
#define BIT_SET_CH10_HIGH_TH(x, v)			(BIT_CLEAR_CH10_HIGH_TH(x) | BIT_CH10_HIGH_TH(v))


#define BIT_SHIFT_CH10_LOW_TH				0
#define BIT_MASK_CH10_LOW_TH				0xfff
#define BIT_CH10_LOW_TH(x)				(((x) & BIT_MASK_CH10_LOW_TH) << BIT_SHIFT_CH10_LOW_TH)
#define BITS_CH10_LOW_TH				(BIT_MASK_CH10_LOW_TH << BIT_SHIFT_CH10_LOW_TH)
#define BIT_CLEAR_CH10_LOW_TH(x)			((x) & (~BITS_CH10_LOW_TH))
#define BIT_GET_CH10_LOW_TH(x)				(((x) >> BIT_SHIFT_CH10_LOW_TH) & BIT_MASK_CH10_LOW_TH)
#define BIT_SET_CH10_LOW_TH(x, v)			(BIT_CLEAR_CH10_LOW_TH(x) | BIT_CH10_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_11			(Offset 0x322C) */

#define BIT_CH11_INT_EN				BIT(31)

#define BIT_SHIFT_CH11_HIGH_TH				16
#define BIT_MASK_CH11_HIGH_TH				0xfff
#define BIT_CH11_HIGH_TH(x)				(((x) & BIT_MASK_CH11_HIGH_TH) << BIT_SHIFT_CH11_HIGH_TH)
#define BITS_CH11_HIGH_TH				(BIT_MASK_CH11_HIGH_TH << BIT_SHIFT_CH11_HIGH_TH)
#define BIT_CLEAR_CH11_HIGH_TH(x)			((x) & (~BITS_CH11_HIGH_TH))
#define BIT_GET_CH11_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH11_HIGH_TH) & BIT_MASK_CH11_HIGH_TH)
#define BIT_SET_CH11_HIGH_TH(x, v)			(BIT_CLEAR_CH11_HIGH_TH(x) | BIT_CH11_HIGH_TH(v))


#define BIT_SHIFT_CH11_LOW_TH				0
#define BIT_MASK_CH11_LOW_TH				0xfff
#define BIT_CH11_LOW_TH(x)				(((x) & BIT_MASK_CH11_LOW_TH) << BIT_SHIFT_CH11_LOW_TH)
#define BITS_CH11_LOW_TH				(BIT_MASK_CH11_LOW_TH << BIT_SHIFT_CH11_LOW_TH)
#define BIT_CLEAR_CH11_LOW_TH(x)			((x) & (~BITS_CH11_LOW_TH))
#define BIT_GET_CH11_LOW_TH(x)				(((x) >> BIT_SHIFT_CH11_LOW_TH) & BIT_MASK_CH11_LOW_TH)
#define BIT_SET_CH11_LOW_TH(x, v)			(BIT_CLEAR_CH11_LOW_TH(x) | BIT_CH11_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_12			(Offset 0x3230) */

#define BIT_CH12_INT_EN				BIT(31)

#define BIT_SHIFT_CH12_HIGH_TH				16
#define BIT_MASK_CH12_HIGH_TH				0xfff
#define BIT_CH12_HIGH_TH(x)				(((x) & BIT_MASK_CH12_HIGH_TH) << BIT_SHIFT_CH12_HIGH_TH)
#define BITS_CH12_HIGH_TH				(BIT_MASK_CH12_HIGH_TH << BIT_SHIFT_CH12_HIGH_TH)
#define BIT_CLEAR_CH12_HIGH_TH(x)			((x) & (~BITS_CH12_HIGH_TH))
#define BIT_GET_CH12_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH12_HIGH_TH) & BIT_MASK_CH12_HIGH_TH)
#define BIT_SET_CH12_HIGH_TH(x, v)			(BIT_CLEAR_CH12_HIGH_TH(x) | BIT_CH12_HIGH_TH(v))


#define BIT_SHIFT_CH12_LOW_TH				0
#define BIT_MASK_CH12_LOW_TH				0xfff
#define BIT_CH12_LOW_TH(x)				(((x) & BIT_MASK_CH12_LOW_TH) << BIT_SHIFT_CH12_LOW_TH)
#define BITS_CH12_LOW_TH				(BIT_MASK_CH12_LOW_TH << BIT_SHIFT_CH12_LOW_TH)
#define BIT_CLEAR_CH12_LOW_TH(x)			((x) & (~BITS_CH12_LOW_TH))
#define BIT_GET_CH12_LOW_TH(x)				(((x) >> BIT_SHIFT_CH12_LOW_TH) & BIT_MASK_CH12_LOW_TH)
#define BIT_SET_CH12_LOW_TH(x, v)			(BIT_CLEAR_CH12_LOW_TH(x) | BIT_CH12_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_13			(Offset 0x3234) */

#define BIT_CH13_INT_EN				BIT(31)

#define BIT_SHIFT_CH13_HIGH_TH				16
#define BIT_MASK_CH13_HIGH_TH				0xfff
#define BIT_CH13_HIGH_TH(x)				(((x) & BIT_MASK_CH13_HIGH_TH) << BIT_SHIFT_CH13_HIGH_TH)
#define BITS_CH13_HIGH_TH				(BIT_MASK_CH13_HIGH_TH << BIT_SHIFT_CH13_HIGH_TH)
#define BIT_CLEAR_CH13_HIGH_TH(x)			((x) & (~BITS_CH13_HIGH_TH))
#define BIT_GET_CH13_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH13_HIGH_TH) & BIT_MASK_CH13_HIGH_TH)
#define BIT_SET_CH13_HIGH_TH(x, v)			(BIT_CLEAR_CH13_HIGH_TH(x) | BIT_CH13_HIGH_TH(v))


#define BIT_SHIFT_CH13_LOW_TH				0
#define BIT_MASK_CH13_LOW_TH				0xfff
#define BIT_CH13_LOW_TH(x)				(((x) & BIT_MASK_CH13_LOW_TH) << BIT_SHIFT_CH13_LOW_TH)
#define BITS_CH13_LOW_TH				(BIT_MASK_CH13_LOW_TH << BIT_SHIFT_CH13_LOW_TH)
#define BIT_CLEAR_CH13_LOW_TH(x)			((x) & (~BITS_CH13_LOW_TH))
#define BIT_GET_CH13_LOW_TH(x)				(((x) >> BIT_SHIFT_CH13_LOW_TH) & BIT_MASK_CH13_LOW_TH)
#define BIT_SET_CH13_LOW_TH(x, v)			(BIT_CLEAR_CH13_LOW_TH(x) | BIT_CH13_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_14			(Offset 0x3238) */

#define BIT_CH14_INT_EN				BIT(31)

#define BIT_SHIFT_CH14_HIGH_TH				16
#define BIT_MASK_CH14_HIGH_TH				0xfff
#define BIT_CH14_HIGH_TH(x)				(((x) & BIT_MASK_CH14_HIGH_TH) << BIT_SHIFT_CH14_HIGH_TH)
#define BITS_CH14_HIGH_TH				(BIT_MASK_CH14_HIGH_TH << BIT_SHIFT_CH14_HIGH_TH)
#define BIT_CLEAR_CH14_HIGH_TH(x)			((x) & (~BITS_CH14_HIGH_TH))
#define BIT_GET_CH14_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH14_HIGH_TH) & BIT_MASK_CH14_HIGH_TH)
#define BIT_SET_CH14_HIGH_TH(x, v)			(BIT_CLEAR_CH14_HIGH_TH(x) | BIT_CH14_HIGH_TH(v))


#define BIT_SHIFT_CH14_LOW_TH				0
#define BIT_MASK_CH14_LOW_TH				0xfff
#define BIT_CH14_LOW_TH(x)				(((x) & BIT_MASK_CH14_LOW_TH) << BIT_SHIFT_CH14_LOW_TH)
#define BITS_CH14_LOW_TH				(BIT_MASK_CH14_LOW_TH << BIT_SHIFT_CH14_LOW_TH)
#define BIT_CLEAR_CH14_LOW_TH(x)			((x) & (~BITS_CH14_LOW_TH))
#define BIT_GET_CH14_LOW_TH(x)				(((x) >> BIT_SHIFT_CH14_LOW_TH) & BIT_MASK_CH14_LOW_TH)
#define BIT_SET_CH14_LOW_TH(x, v)			(BIT_CLEAR_CH14_LOW_TH(x) | BIT_CH14_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_15			(Offset 0x323C) */

#define BIT_CH15_INT_EN				BIT(31)

#define BIT_SHIFT_CH15_HIGH_TH				16
#define BIT_MASK_CH15_HIGH_TH				0xfff
#define BIT_CH15_HIGH_TH(x)				(((x) & BIT_MASK_CH15_HIGH_TH) << BIT_SHIFT_CH15_HIGH_TH)
#define BITS_CH15_HIGH_TH				(BIT_MASK_CH15_HIGH_TH << BIT_SHIFT_CH15_HIGH_TH)
#define BIT_CLEAR_CH15_HIGH_TH(x)			((x) & (~BITS_CH15_HIGH_TH))
#define BIT_GET_CH15_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH15_HIGH_TH) & BIT_MASK_CH15_HIGH_TH)
#define BIT_SET_CH15_HIGH_TH(x, v)			(BIT_CLEAR_CH15_HIGH_TH(x) | BIT_CH15_HIGH_TH(v))


#define BIT_SHIFT_CH15_LOW_TH				0
#define BIT_MASK_CH15_LOW_TH				0xfff
#define BIT_CH15_LOW_TH(x)				(((x) & BIT_MASK_CH15_LOW_TH) << BIT_SHIFT_CH15_LOW_TH)
#define BITS_CH15_LOW_TH				(BIT_MASK_CH15_LOW_TH << BIT_SHIFT_CH15_LOW_TH)
#define BIT_CLEAR_CH15_LOW_TH(x)			((x) & (~BITS_CH15_LOW_TH))
#define BIT_GET_CH15_LOW_TH(x)				(((x) >> BIT_SHIFT_CH15_LOW_TH) & BIT_MASK_CH15_LOW_TH)
#define BIT_SET_CH15_LOW_TH(x, v)			(BIT_CLEAR_CH15_LOW_TH(x) | BIT_CH15_LOW_TH(v))


/* 2 REG_TXPAGE_INT_CTRL_16			(Offset 0x3240) */

#define BIT_CH16_INT_EN				BIT(31)

#define BIT_SHIFT_CH16_HIGH_TH				16
#define BIT_MASK_CH16_HIGH_TH				0xfff
#define BIT_CH16_HIGH_TH(x)				(((x) & BIT_MASK_CH16_HIGH_TH) << BIT_SHIFT_CH16_HIGH_TH)
#define BITS_CH16_HIGH_TH				(BIT_MASK_CH16_HIGH_TH << BIT_SHIFT_CH16_HIGH_TH)
#define BIT_CLEAR_CH16_HIGH_TH(x)			((x) & (~BITS_CH16_HIGH_TH))
#define BIT_GET_CH16_HIGH_TH(x)			(((x) >> BIT_SHIFT_CH16_HIGH_TH) & BIT_MASK_CH16_HIGH_TH)
#define BIT_SET_CH16_HIGH_TH(x, v)			(BIT_CLEAR_CH16_HIGH_TH(x) | BIT_CH16_HIGH_TH(v))


#define BIT_SHIFT_CH16_LOW_TH				0
#define BIT_MASK_CH16_LOW_TH				0xfff
#define BIT_CH16_LOW_TH(x)				(((x) & BIT_MASK_CH16_LOW_TH) << BIT_SHIFT_CH16_LOW_TH)
#define BITS_CH16_LOW_TH				(BIT_MASK_CH16_LOW_TH << BIT_SHIFT_CH16_LOW_TH)
#define BIT_CLEAR_CH16_LOW_TH(x)			((x) & (~BITS_CH16_LOW_TH))
#define BIT_GET_CH16_LOW_TH(x)				(((x) >> BIT_SHIFT_CH16_LOW_TH) & BIT_MASK_CH16_LOW_TH)
#define BIT_SET_CH16_LOW_TH(x, v)			(BIT_CLEAR_CH16_LOW_TH(x) | BIT_CH16_LOW_TH(v))


/* 2 REG_ACH4_TXBD_IDX			(Offset 0x3340) */


#define BIT_SHIFT_ACH4_HW_IDX				16
#define BIT_MASK_ACH4_HW_IDX				0xfff
#define BIT_ACH4_HW_IDX(x)				(((x) & BIT_MASK_ACH4_HW_IDX) << BIT_SHIFT_ACH4_HW_IDX)
#define BITS_ACH4_HW_IDX				(BIT_MASK_ACH4_HW_IDX << BIT_SHIFT_ACH4_HW_IDX)
#define BIT_CLEAR_ACH4_HW_IDX(x)			((x) & (~BITS_ACH4_HW_IDX))
#define BIT_GET_ACH4_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH4_HW_IDX) & BIT_MASK_ACH4_HW_IDX)
#define BIT_SET_ACH4_HW_IDX(x, v)			(BIT_CLEAR_ACH4_HW_IDX(x) | BIT_ACH4_HW_IDX(v))


#define BIT_SHIFT_ACH4_HOST_IDX			0
#define BIT_MASK_ACH4_HOST_IDX				0xfff
#define BIT_ACH4_HOST_IDX(x)				(((x) & BIT_MASK_ACH4_HOST_IDX) << BIT_SHIFT_ACH4_HOST_IDX)
#define BITS_ACH4_HOST_IDX				(BIT_MASK_ACH4_HOST_IDX << BIT_SHIFT_ACH4_HOST_IDX)
#define BIT_CLEAR_ACH4_HOST_IDX(x)			((x) & (~BITS_ACH4_HOST_IDX))
#define BIT_GET_ACH4_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH4_HOST_IDX) & BIT_MASK_ACH4_HOST_IDX)
#define BIT_SET_ACH4_HOST_IDX(x, v)			(BIT_CLEAR_ACH4_HOST_IDX(x) | BIT_ACH4_HOST_IDX(v))


/* 2 REG_ACH5_TXBD_IDX			(Offset 0x3344) */


#define BIT_SHIFT_ACH5_HW_IDX				16
#define BIT_MASK_ACH5_HW_IDX				0xfff
#define BIT_ACH5_HW_IDX(x)				(((x) & BIT_MASK_ACH5_HW_IDX) << BIT_SHIFT_ACH5_HW_IDX)
#define BITS_ACH5_HW_IDX				(BIT_MASK_ACH5_HW_IDX << BIT_SHIFT_ACH5_HW_IDX)
#define BIT_CLEAR_ACH5_HW_IDX(x)			((x) & (~BITS_ACH5_HW_IDX))
#define BIT_GET_ACH5_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH5_HW_IDX) & BIT_MASK_ACH5_HW_IDX)
#define BIT_SET_ACH5_HW_IDX(x, v)			(BIT_CLEAR_ACH5_HW_IDX(x) | BIT_ACH5_HW_IDX(v))


#define BIT_SHIFT_ACH5_HOST_IDX			0
#define BIT_MASK_ACH5_HOST_IDX				0xfff
#define BIT_ACH5_HOST_IDX(x)				(((x) & BIT_MASK_ACH5_HOST_IDX) << BIT_SHIFT_ACH5_HOST_IDX)
#define BITS_ACH5_HOST_IDX				(BIT_MASK_ACH5_HOST_IDX << BIT_SHIFT_ACH5_HOST_IDX)
#define BIT_CLEAR_ACH5_HOST_IDX(x)			((x) & (~BITS_ACH5_HOST_IDX))
#define BIT_GET_ACH5_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH5_HOST_IDX) & BIT_MASK_ACH5_HOST_IDX)
#define BIT_SET_ACH5_HOST_IDX(x, v)			(BIT_CLEAR_ACH5_HOST_IDX(x) | BIT_ACH5_HOST_IDX(v))


/* 2 REG_ACH6_TXBD_IDX			(Offset 0x3348) */


#define BIT_SHIFT_ACH6_HW_IDX				16
#define BIT_MASK_ACH6_HW_IDX				0xfff
#define BIT_ACH6_HW_IDX(x)				(((x) & BIT_MASK_ACH6_HW_IDX) << BIT_SHIFT_ACH6_HW_IDX)
#define BITS_ACH6_HW_IDX				(BIT_MASK_ACH6_HW_IDX << BIT_SHIFT_ACH6_HW_IDX)
#define BIT_CLEAR_ACH6_HW_IDX(x)			((x) & (~BITS_ACH6_HW_IDX))
#define BIT_GET_ACH6_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH6_HW_IDX) & BIT_MASK_ACH6_HW_IDX)
#define BIT_SET_ACH6_HW_IDX(x, v)			(BIT_CLEAR_ACH6_HW_IDX(x) | BIT_ACH6_HW_IDX(v))


#define BIT_SHIFT_ACH6_HOST_IDX			0
#define BIT_MASK_ACH6_HOST_IDX				0xfff
#define BIT_ACH6_HOST_IDX(x)				(((x) & BIT_MASK_ACH6_HOST_IDX) << BIT_SHIFT_ACH6_HOST_IDX)
#define BITS_ACH6_HOST_IDX				(BIT_MASK_ACH6_HOST_IDX << BIT_SHIFT_ACH6_HOST_IDX)
#define BIT_CLEAR_ACH6_HOST_IDX(x)			((x) & (~BITS_ACH6_HOST_IDX))
#define BIT_GET_ACH6_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH6_HOST_IDX) & BIT_MASK_ACH6_HOST_IDX)
#define BIT_SET_ACH6_HOST_IDX(x, v)			(BIT_CLEAR_ACH6_HOST_IDX(x) | BIT_ACH6_HOST_IDX(v))


/* 2 REG_ACH7_TXBD_IDX			(Offset 0x334C) */


#define BIT_SHIFT_ACH7_HW_IDX				16
#define BIT_MASK_ACH7_HW_IDX				0xfff
#define BIT_ACH7_HW_IDX(x)				(((x) & BIT_MASK_ACH7_HW_IDX) << BIT_SHIFT_ACH7_HW_IDX)
#define BITS_ACH7_HW_IDX				(BIT_MASK_ACH7_HW_IDX << BIT_SHIFT_ACH7_HW_IDX)
#define BIT_CLEAR_ACH7_HW_IDX(x)			((x) & (~BITS_ACH7_HW_IDX))
#define BIT_GET_ACH7_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH7_HW_IDX) & BIT_MASK_ACH7_HW_IDX)
#define BIT_SET_ACH7_HW_IDX(x, v)			(BIT_CLEAR_ACH7_HW_IDX(x) | BIT_ACH7_HW_IDX(v))


#define BIT_SHIFT_ACH7_HOST_IDX			0
#define BIT_MASK_ACH7_HOST_IDX				0xfff
#define BIT_ACH7_HOST_IDX(x)				(((x) & BIT_MASK_ACH7_HOST_IDX) << BIT_SHIFT_ACH7_HOST_IDX)
#define BITS_ACH7_HOST_IDX				(BIT_MASK_ACH7_HOST_IDX << BIT_SHIFT_ACH7_HOST_IDX)
#define BIT_CLEAR_ACH7_HOST_IDX(x)			((x) & (~BITS_ACH7_HOST_IDX))
#define BIT_GET_ACH7_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH7_HOST_IDX) & BIT_MASK_ACH7_HOST_IDX)
#define BIT_SET_ACH7_HOST_IDX(x, v)			(BIT_CLEAR_ACH7_HOST_IDX(x) | BIT_ACH7_HOST_IDX(v))


/* 2 REG_ACH8_TXBD_IDX			(Offset 0x3350) */


#define BIT_SHIFT_ACH8_HW_IDX				16
#define BIT_MASK_ACH8_HW_IDX				0xfff
#define BIT_ACH8_HW_IDX(x)				(((x) & BIT_MASK_ACH8_HW_IDX) << BIT_SHIFT_ACH8_HW_IDX)
#define BITS_ACH8_HW_IDX				(BIT_MASK_ACH8_HW_IDX << BIT_SHIFT_ACH8_HW_IDX)
#define BIT_CLEAR_ACH8_HW_IDX(x)			((x) & (~BITS_ACH8_HW_IDX))
#define BIT_GET_ACH8_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH8_HW_IDX) & BIT_MASK_ACH8_HW_IDX)
#define BIT_SET_ACH8_HW_IDX(x, v)			(BIT_CLEAR_ACH8_HW_IDX(x) | BIT_ACH8_HW_IDX(v))


#define BIT_SHIFT_ACH8_HOST_IDX			0
#define BIT_MASK_ACH8_HOST_IDX				0xfff
#define BIT_ACH8_HOST_IDX(x)				(((x) & BIT_MASK_ACH8_HOST_IDX) << BIT_SHIFT_ACH8_HOST_IDX)
#define BITS_ACH8_HOST_IDX				(BIT_MASK_ACH8_HOST_IDX << BIT_SHIFT_ACH8_HOST_IDX)
#define BIT_CLEAR_ACH8_HOST_IDX(x)			((x) & (~BITS_ACH8_HOST_IDX))
#define BIT_GET_ACH8_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH8_HOST_IDX) & BIT_MASK_ACH8_HOST_IDX)
#define BIT_SET_ACH8_HOST_IDX(x, v)			(BIT_CLEAR_ACH8_HOST_IDX(x) | BIT_ACH8_HOST_IDX(v))


/* 2 REG_ACH9_TXBD_IDX			(Offset 0x3354) */


#define BIT_SHIFT_ACH9_HW_IDX				16
#define BIT_MASK_ACH9_HW_IDX				0xfff
#define BIT_ACH9_HW_IDX(x)				(((x) & BIT_MASK_ACH9_HW_IDX) << BIT_SHIFT_ACH9_HW_IDX)
#define BITS_ACH9_HW_IDX				(BIT_MASK_ACH9_HW_IDX << BIT_SHIFT_ACH9_HW_IDX)
#define BIT_CLEAR_ACH9_HW_IDX(x)			((x) & (~BITS_ACH9_HW_IDX))
#define BIT_GET_ACH9_HW_IDX(x)				(((x) >> BIT_SHIFT_ACH9_HW_IDX) & BIT_MASK_ACH9_HW_IDX)
#define BIT_SET_ACH9_HW_IDX(x, v)			(BIT_CLEAR_ACH9_HW_IDX(x) | BIT_ACH9_HW_IDX(v))


#define BIT_SHIFT_ACH9_HOST_IDX			0
#define BIT_MASK_ACH9_HOST_IDX				0xfff
#define BIT_ACH9_HOST_IDX(x)				(((x) & BIT_MASK_ACH9_HOST_IDX) << BIT_SHIFT_ACH9_HOST_IDX)
#define BITS_ACH9_HOST_IDX				(BIT_MASK_ACH9_HOST_IDX << BIT_SHIFT_ACH9_HOST_IDX)
#define BIT_CLEAR_ACH9_HOST_IDX(x)			((x) & (~BITS_ACH9_HOST_IDX))
#define BIT_GET_ACH9_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH9_HOST_IDX) & BIT_MASK_ACH9_HOST_IDX)
#define BIT_SET_ACH9_HOST_IDX(x, v)			(BIT_CLEAR_ACH9_HOST_IDX(x) | BIT_ACH9_HOST_IDX(v))


/* 2 REG_ACH10_TXBD_IDX			(Offset 0x3358) */


#define BIT_SHIFT_ACH10_HW_IDX				16
#define BIT_MASK_ACH10_HW_IDX				0xfff
#define BIT_ACH10_HW_IDX(x)				(((x) & BIT_MASK_ACH10_HW_IDX) << BIT_SHIFT_ACH10_HW_IDX)
#define BITS_ACH10_HW_IDX				(BIT_MASK_ACH10_HW_IDX << BIT_SHIFT_ACH10_HW_IDX)
#define BIT_CLEAR_ACH10_HW_IDX(x)			((x) & (~BITS_ACH10_HW_IDX))
#define BIT_GET_ACH10_HW_IDX(x)			(((x) >> BIT_SHIFT_ACH10_HW_IDX) & BIT_MASK_ACH10_HW_IDX)
#define BIT_SET_ACH10_HW_IDX(x, v)			(BIT_CLEAR_ACH10_HW_IDX(x) | BIT_ACH10_HW_IDX(v))


#define BIT_SHIFT_ACH10_HOST_IDX			0
#define BIT_MASK_ACH10_HOST_IDX			0xfff
#define BIT_ACH10_HOST_IDX(x)				(((x) & BIT_MASK_ACH10_HOST_IDX) << BIT_SHIFT_ACH10_HOST_IDX)
#define BITS_ACH10_HOST_IDX				(BIT_MASK_ACH10_HOST_IDX << BIT_SHIFT_ACH10_HOST_IDX)
#define BIT_CLEAR_ACH10_HOST_IDX(x)			((x) & (~BITS_ACH10_HOST_IDX))
#define BIT_GET_ACH10_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH10_HOST_IDX) & BIT_MASK_ACH10_HOST_IDX)
#define BIT_SET_ACH10_HOST_IDX(x, v)			(BIT_CLEAR_ACH10_HOST_IDX(x) | BIT_ACH10_HOST_IDX(v))


/* 2 REG_ACH11_TXBD_IDX			(Offset 0x335C) */


#define BIT_SHIFT_ACH11_HW_IDX				16
#define BIT_MASK_ACH11_HW_IDX				0xfff
#define BIT_ACH11_HW_IDX(x)				(((x) & BIT_MASK_ACH11_HW_IDX) << BIT_SHIFT_ACH11_HW_IDX)
#define BITS_ACH11_HW_IDX				(BIT_MASK_ACH11_HW_IDX << BIT_SHIFT_ACH11_HW_IDX)
#define BIT_CLEAR_ACH11_HW_IDX(x)			((x) & (~BITS_ACH11_HW_IDX))
#define BIT_GET_ACH11_HW_IDX(x)			(((x) >> BIT_SHIFT_ACH11_HW_IDX) & BIT_MASK_ACH11_HW_IDX)
#define BIT_SET_ACH11_HW_IDX(x, v)			(BIT_CLEAR_ACH11_HW_IDX(x) | BIT_ACH11_HW_IDX(v))


#define BIT_SHIFT_ACH11_HOST_IDX			0
#define BIT_MASK_ACH11_HOST_IDX			0xfff
#define BIT_ACH11_HOST_IDX(x)				(((x) & BIT_MASK_ACH11_HOST_IDX) << BIT_SHIFT_ACH11_HOST_IDX)
#define BITS_ACH11_HOST_IDX				(BIT_MASK_ACH11_HOST_IDX << BIT_SHIFT_ACH11_HOST_IDX)
#define BIT_CLEAR_ACH11_HOST_IDX(x)			((x) & (~BITS_ACH11_HOST_IDX))
#define BIT_GET_ACH11_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH11_HOST_IDX) & BIT_MASK_ACH11_HOST_IDX)
#define BIT_SET_ACH11_HOST_IDX(x, v)			(BIT_CLEAR_ACH11_HOST_IDX(x) | BIT_ACH11_HOST_IDX(v))


/* 2 REG_ACH12_TXBD_IDX			(Offset 0x3360) */


#define BIT_SHIFT_ACH12_HW_IDX				16
#define BIT_MASK_ACH12_HW_IDX				0xfff
#define BIT_ACH12_HW_IDX(x)				(((x) & BIT_MASK_ACH12_HW_IDX) << BIT_SHIFT_ACH12_HW_IDX)
#define BITS_ACH12_HW_IDX				(BIT_MASK_ACH12_HW_IDX << BIT_SHIFT_ACH12_HW_IDX)
#define BIT_CLEAR_ACH12_HW_IDX(x)			((x) & (~BITS_ACH12_HW_IDX))
#define BIT_GET_ACH12_HW_IDX(x)			(((x) >> BIT_SHIFT_ACH12_HW_IDX) & BIT_MASK_ACH12_HW_IDX)
#define BIT_SET_ACH12_HW_IDX(x, v)			(BIT_CLEAR_ACH12_HW_IDX(x) | BIT_ACH12_HW_IDX(v))


#define BIT_SHIFT_ACH12_HOST_IDX			0
#define BIT_MASK_ACH12_HOST_IDX			0xfff
#define BIT_ACH12_HOST_IDX(x)				(((x) & BIT_MASK_ACH12_HOST_IDX) << BIT_SHIFT_ACH12_HOST_IDX)
#define BITS_ACH12_HOST_IDX				(BIT_MASK_ACH12_HOST_IDX << BIT_SHIFT_ACH12_HOST_IDX)
#define BIT_CLEAR_ACH12_HOST_IDX(x)			((x) & (~BITS_ACH12_HOST_IDX))
#define BIT_GET_ACH12_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH12_HOST_IDX) & BIT_MASK_ACH12_HOST_IDX)
#define BIT_SET_ACH12_HOST_IDX(x, v)			(BIT_CLEAR_ACH12_HOST_IDX(x) | BIT_ACH12_HOST_IDX(v))


/* 2 REG_ACH13_TXBD_IDX			(Offset 0x3364) */


#define BIT_SHIFT_ACH13_HW_IDX				16
#define BIT_MASK_ACH13_HW_IDX				0xfff
#define BIT_ACH13_HW_IDX(x)				(((x) & BIT_MASK_ACH13_HW_IDX) << BIT_SHIFT_ACH13_HW_IDX)
#define BITS_ACH13_HW_IDX				(BIT_MASK_ACH13_HW_IDX << BIT_SHIFT_ACH13_HW_IDX)
#define BIT_CLEAR_ACH13_HW_IDX(x)			((x) & (~BITS_ACH13_HW_IDX))
#define BIT_GET_ACH13_HW_IDX(x)			(((x) >> BIT_SHIFT_ACH13_HW_IDX) & BIT_MASK_ACH13_HW_IDX)
#define BIT_SET_ACH13_HW_IDX(x, v)			(BIT_CLEAR_ACH13_HW_IDX(x) | BIT_ACH13_HW_IDX(v))


#define BIT_SHIFT_ACH13_HOST_IDX			0
#define BIT_MASK_ACH13_HOST_IDX			0xfff
#define BIT_ACH13_HOST_IDX(x)				(((x) & BIT_MASK_ACH13_HOST_IDX) << BIT_SHIFT_ACH13_HOST_IDX)
#define BITS_ACH13_HOST_IDX				(BIT_MASK_ACH13_HOST_IDX << BIT_SHIFT_ACH13_HOST_IDX)
#define BIT_CLEAR_ACH13_HOST_IDX(x)			((x) & (~BITS_ACH13_HOST_IDX))
#define BIT_GET_ACH13_HOST_IDX(x)			(((x) >> BIT_SHIFT_ACH13_HOST_IDX) & BIT_MASK_ACH13_HOST_IDX)
#define BIT_SET_ACH13_HOST_IDX(x, v)			(BIT_CLEAR_ACH13_HOST_IDX(x) | BIT_ACH13_HOST_IDX(v))


/* 2 REG_AC_CHANNEL0_WEIGHT			(Offset 0x3368) */


#define BIT_SHIFT_AC_CHANNEL0_WEIGHT			0
#define BIT_MASK_AC_CHANNEL0_WEIGHT			0xff
#define BIT_AC_CHANNEL0_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL0_WEIGHT) << BIT_SHIFT_AC_CHANNEL0_WEIGHT)
#define BITS_AC_CHANNEL0_WEIGHT			(BIT_MASK_AC_CHANNEL0_WEIGHT << BIT_SHIFT_AC_CHANNEL0_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL0_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL0_WEIGHT))
#define BIT_GET_AC_CHANNEL0_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL0_WEIGHT) & BIT_MASK_AC_CHANNEL0_WEIGHT)
#define BIT_SET_AC_CHANNEL0_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL0_WEIGHT(x) | BIT_AC_CHANNEL0_WEIGHT(v))


/* 2 REG_AC_CHANNEL1_WEIGHT			(Offset 0x3369) */


#define BIT_SHIFT_AC_CHANNEL1_WEIGHT			0
#define BIT_MASK_AC_CHANNEL1_WEIGHT			0xff
#define BIT_AC_CHANNEL1_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL1_WEIGHT) << BIT_SHIFT_AC_CHANNEL1_WEIGHT)
#define BITS_AC_CHANNEL1_WEIGHT			(BIT_MASK_AC_CHANNEL1_WEIGHT << BIT_SHIFT_AC_CHANNEL1_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL1_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL1_WEIGHT))
#define BIT_GET_AC_CHANNEL1_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL1_WEIGHT) & BIT_MASK_AC_CHANNEL1_WEIGHT)
#define BIT_SET_AC_CHANNEL1_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL1_WEIGHT(x) | BIT_AC_CHANNEL1_WEIGHT(v))


/* 2 REG_AC_CHANNEL2_WEIGHT			(Offset 0x336A) */


#define BIT_SHIFT_AC_CHANNEL2_WEIGHT			0
#define BIT_MASK_AC_CHANNEL2_WEIGHT			0xff
#define BIT_AC_CHANNEL2_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL2_WEIGHT) << BIT_SHIFT_AC_CHANNEL2_WEIGHT)
#define BITS_AC_CHANNEL2_WEIGHT			(BIT_MASK_AC_CHANNEL2_WEIGHT << BIT_SHIFT_AC_CHANNEL2_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL2_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL2_WEIGHT))
#define BIT_GET_AC_CHANNEL2_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL2_WEIGHT) & BIT_MASK_AC_CHANNEL2_WEIGHT)
#define BIT_SET_AC_CHANNEL2_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL2_WEIGHT(x) | BIT_AC_CHANNEL2_WEIGHT(v))


/* 2 REG_AC_CHANNEL3_WEIGHT			(Offset 0x336B) */


#define BIT_SHIFT_AC_CHANNEL3_WEIGHT			0
#define BIT_MASK_AC_CHANNEL3_WEIGHT			0xff
#define BIT_AC_CHANNEL3_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL3_WEIGHT) << BIT_SHIFT_AC_CHANNEL3_WEIGHT)
#define BITS_AC_CHANNEL3_WEIGHT			(BIT_MASK_AC_CHANNEL3_WEIGHT << BIT_SHIFT_AC_CHANNEL3_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL3_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL3_WEIGHT))
#define BIT_GET_AC_CHANNEL3_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL3_WEIGHT) & BIT_MASK_AC_CHANNEL3_WEIGHT)
#define BIT_SET_AC_CHANNEL3_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL3_WEIGHT(x) | BIT_AC_CHANNEL3_WEIGHT(v))


/* 2 REG_AC_CHANNEL4_WEIGHT			(Offset 0x336C) */


#define BIT_SHIFT_AC_CHANNEL4_WEIGHT			0
#define BIT_MASK_AC_CHANNEL4_WEIGHT			0xff
#define BIT_AC_CHANNEL4_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL4_WEIGHT) << BIT_SHIFT_AC_CHANNEL4_WEIGHT)
#define BITS_AC_CHANNEL4_WEIGHT			(BIT_MASK_AC_CHANNEL4_WEIGHT << BIT_SHIFT_AC_CHANNEL4_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL4_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL4_WEIGHT))
#define BIT_GET_AC_CHANNEL4_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL4_WEIGHT) & BIT_MASK_AC_CHANNEL4_WEIGHT)
#define BIT_SET_AC_CHANNEL4_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL4_WEIGHT(x) | BIT_AC_CHANNEL4_WEIGHT(v))


/* 2 REG_AC_CHANNEL5_WEIGHT			(Offset 0x336D) */


#define BIT_SHIFT_AC_CHANNEL5_WEIGHT			0
#define BIT_MASK_AC_CHANNEL5_WEIGHT			0xff
#define BIT_AC_CHANNEL5_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL5_WEIGHT) << BIT_SHIFT_AC_CHANNEL5_WEIGHT)
#define BITS_AC_CHANNEL5_WEIGHT			(BIT_MASK_AC_CHANNEL5_WEIGHT << BIT_SHIFT_AC_CHANNEL5_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL5_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL5_WEIGHT))
#define BIT_GET_AC_CHANNEL5_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL5_WEIGHT) & BIT_MASK_AC_CHANNEL5_WEIGHT)
#define BIT_SET_AC_CHANNEL5_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL5_WEIGHT(x) | BIT_AC_CHANNEL5_WEIGHT(v))


/* 2 REG_AC_CHANNEL6_WEIGHT			(Offset 0x336E) */


#define BIT_SHIFT_AC_CHANNEL6_WEIGHT			0
#define BIT_MASK_AC_CHANNEL6_WEIGHT			0xff
#define BIT_AC_CHANNEL6_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL6_WEIGHT) << BIT_SHIFT_AC_CHANNEL6_WEIGHT)
#define BITS_AC_CHANNEL6_WEIGHT			(BIT_MASK_AC_CHANNEL6_WEIGHT << BIT_SHIFT_AC_CHANNEL6_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL6_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL6_WEIGHT))
#define BIT_GET_AC_CHANNEL6_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL6_WEIGHT) & BIT_MASK_AC_CHANNEL6_WEIGHT)
#define BIT_SET_AC_CHANNEL6_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL6_WEIGHT(x) | BIT_AC_CHANNEL6_WEIGHT(v))


/* 2 REG_AC_CHANNEL7_WEIGHT			(Offset 0x336F) */


#define BIT_SHIFT_AC_CHANNEL7_WEIGHT			0
#define BIT_MASK_AC_CHANNEL7_WEIGHT			0xff
#define BIT_AC_CHANNEL7_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL7_WEIGHT) << BIT_SHIFT_AC_CHANNEL7_WEIGHT)
#define BITS_AC_CHANNEL7_WEIGHT			(BIT_MASK_AC_CHANNEL7_WEIGHT << BIT_SHIFT_AC_CHANNEL7_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL7_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL7_WEIGHT))
#define BIT_GET_AC_CHANNEL7_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL7_WEIGHT) & BIT_MASK_AC_CHANNEL7_WEIGHT)
#define BIT_SET_AC_CHANNEL7_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL7_WEIGHT(x) | BIT_AC_CHANNEL7_WEIGHT(v))


/* 2 REG_AC_CHANNEL8_WEIGHT			(Offset 0x3370) */


#define BIT_SHIFT_AC_CHANNEL8_WEIGHT			0
#define BIT_MASK_AC_CHANNEL8_WEIGHT			0xff
#define BIT_AC_CHANNEL8_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL8_WEIGHT) << BIT_SHIFT_AC_CHANNEL8_WEIGHT)
#define BITS_AC_CHANNEL8_WEIGHT			(BIT_MASK_AC_CHANNEL8_WEIGHT << BIT_SHIFT_AC_CHANNEL8_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL8_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL8_WEIGHT))
#define BIT_GET_AC_CHANNEL8_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL8_WEIGHT) & BIT_MASK_AC_CHANNEL8_WEIGHT)
#define BIT_SET_AC_CHANNEL8_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL8_WEIGHT(x) | BIT_AC_CHANNEL8_WEIGHT(v))


/* 2 REG_AC_CHANNEL9_WEIGHT			(Offset 0x3371) */


#define BIT_SHIFT_AC_CHANNEL9_WEIGHT			0
#define BIT_MASK_AC_CHANNEL9_WEIGHT			0xff
#define BIT_AC_CHANNEL9_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL9_WEIGHT) << BIT_SHIFT_AC_CHANNEL9_WEIGHT)
#define BITS_AC_CHANNEL9_WEIGHT			(BIT_MASK_AC_CHANNEL9_WEIGHT << BIT_SHIFT_AC_CHANNEL9_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL9_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL9_WEIGHT))
#define BIT_GET_AC_CHANNEL9_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL9_WEIGHT) & BIT_MASK_AC_CHANNEL9_WEIGHT)
#define BIT_SET_AC_CHANNEL9_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL9_WEIGHT(x) | BIT_AC_CHANNEL9_WEIGHT(v))


/* 2 REG_AC_CHANNEL10_WEIGHT			(Offset 0x3372) */


#define BIT_SHIFT_AC_CHANNEL10_WEIGHT			0
#define BIT_MASK_AC_CHANNEL10_WEIGHT			0xff
#define BIT_AC_CHANNEL10_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL10_WEIGHT) << BIT_SHIFT_AC_CHANNEL10_WEIGHT)
#define BITS_AC_CHANNEL10_WEIGHT			(BIT_MASK_AC_CHANNEL10_WEIGHT << BIT_SHIFT_AC_CHANNEL10_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL10_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL10_WEIGHT))
#define BIT_GET_AC_CHANNEL10_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL10_WEIGHT) & BIT_MASK_AC_CHANNEL10_WEIGHT)
#define BIT_SET_AC_CHANNEL10_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL10_WEIGHT(x) | BIT_AC_CHANNEL10_WEIGHT(v))


/* 2 REG_AC_CHANNEL11_WEIGHT			(Offset 0x3373) */


#define BIT_SHIFT_AC_CHANNEL11_WEIGHT			0
#define BIT_MASK_AC_CHANNEL11_WEIGHT			0xff
#define BIT_AC_CHANNEL11_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL11_WEIGHT) << BIT_SHIFT_AC_CHANNEL11_WEIGHT)
#define BITS_AC_CHANNEL11_WEIGHT			(BIT_MASK_AC_CHANNEL11_WEIGHT << BIT_SHIFT_AC_CHANNEL11_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL11_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL11_WEIGHT))
#define BIT_GET_AC_CHANNEL11_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL11_WEIGHT) & BIT_MASK_AC_CHANNEL11_WEIGHT)
#define BIT_SET_AC_CHANNEL11_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL11_WEIGHT(x) | BIT_AC_CHANNEL11_WEIGHT(v))


/* 2 REG_AC_CHANNEL12_WEIGHT			(Offset 0x3374) */


#define BIT_SHIFT_AC_CHANNEL12_WEIGHT			0
#define BIT_MASK_AC_CHANNEL12_WEIGHT			0xff
#define BIT_AC_CHANNEL12_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL12_WEIGHT) << BIT_SHIFT_AC_CHANNEL12_WEIGHT)
#define BITS_AC_CHANNEL12_WEIGHT			(BIT_MASK_AC_CHANNEL12_WEIGHT << BIT_SHIFT_AC_CHANNEL12_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL12_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL12_WEIGHT))
#define BIT_GET_AC_CHANNEL12_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL12_WEIGHT) & BIT_MASK_AC_CHANNEL12_WEIGHT)
#define BIT_SET_AC_CHANNEL12_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL12_WEIGHT(x) | BIT_AC_CHANNEL12_WEIGHT(v))


/* 2 REG_AC_CHANNEL13_WEIGHT			(Offset 0x3375) */


#define BIT_SHIFT_AC_CHANNEL13_WEIGHT			0
#define BIT_MASK_AC_CHANNEL13_WEIGHT			0xff
#define BIT_AC_CHANNEL13_WEIGHT(x)			(((x) & BIT_MASK_AC_CHANNEL13_WEIGHT) << BIT_SHIFT_AC_CHANNEL13_WEIGHT)
#define BITS_AC_CHANNEL13_WEIGHT			(BIT_MASK_AC_CHANNEL13_WEIGHT << BIT_SHIFT_AC_CHANNEL13_WEIGHT)
#define BIT_CLEAR_AC_CHANNEL13_WEIGHT(x)		((x) & (~BITS_AC_CHANNEL13_WEIGHT))
#define BIT_GET_AC_CHANNEL13_WEIGHT(x)			(((x) >> BIT_SHIFT_AC_CHANNEL13_WEIGHT) & BIT_MASK_AC_CHANNEL13_WEIGHT)
#define BIT_SET_AC_CHANNEL13_WEIGHT(x, v)		(BIT_CLEAR_AC_CHANNEL13_WEIGHT(x) | BIT_AC_CHANNEL13_WEIGHT(v))


#endif



#endif/* __RTL_WLAN_BITDEF_H__ */
