/* SPDX-License-Identifier: GPL-2.0 */
/******************************************************************************
 *
 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
 *
 ******************************************************************************/
#ifndef __INC_HAL8723BPHYCFG_H__
#define __INC_HAL8723BPHYCFG_H__

/*--------------------------Define Parameters-------------------------------*/
#define LOOP_LIMIT		5
#define MAX_STALL_TIME		50	/* us */
#define AntennaDiversityValue	0x80	/* Adapter->bSoftwareAntennaDiversity ? 0x00:0x80) */
#define MAX_TXPWR_IDX_NMODE_92S	63
#define Reset_Cnt_Limit		3

#define MAX_AGGR_NUM	0x07


/*--------------------------Define Parameters End-------------------------------*/


/*------------------------------Define structure----------------------------*/

/*------------------------------Define structure End----------------------------*/

/*--------------------------Exported Function prototype---------------------*/
u32 PHY_QueryBBReg_8723B(struct adapter *Adapter, u32 RegAddr, u32 BitMask);

void PHY_SetBBReg_8723B(struct adapter *Adapter, u32 RegAddr,
			u32 BitMask, u32 Data);

u32 PHY_QueryRFReg_8723B(struct adapter *Adapter, u8 eRFPath,
			 u32 RegAddr, u32 BitMask);

void PHY_SetRFReg_8723B(struct adapter *Adapter, u8 eRFPath,
			u32 RegAddr, u32 BitMask, u32 Data);

/* MAC/BB/RF HAL config */
int PHY_BBConfig8723B(struct adapter *Adapter);

int PHY_RFConfig8723B(struct adapter *Adapter);

s32 PHY_MACConfig8723B(struct adapter *padapter);

void PHY_SetTxPowerIndex(struct adapter *Adapter, u32 PowerIndex,
			 u8 RFPath, u8 Rate);

u8 PHY_GetTxPowerIndex(struct adapter *padapter, u8 RFPath, u8 Rate,
			enum channel_width BandWidth, u8 Channel);

void PHY_GetTxPowerLevel8723B(struct adapter *Adapter, s32 *powerlevel);

void PHY_SetTxPowerLevel8723B(struct adapter *Adapter, u8 channel);

void PHY_SetBWMode8723B(struct adapter *Adapter, enum channel_width Bandwidth,
			unsigned char Offset);

/*  Call after initialization */
void PHY_SwChnl8723B(struct adapter *Adapter, u8 channel);

void PHY_SetSwChnlBWMode8723B(struct adapter *Adapter, u8 channel,
				enum channel_width Bandwidth,
				u8 Offset40, u8 Offset80);

/*--------------------------Exported Function prototype End---------------------*/

#endif