/** @file */ /****************************************************************************** * * Copyright(c) 2019 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 _MAC_AX_TRXCFG_H_ #define _MAC_AX_TRXCFG_H_ #include "../type.h" #include "hw.h" #include "init.h" #include "role.h" #include "cmac_tx.h" #include "rx_filter.h" #include "dle.h" #include "hci_fc.h" #include "mport.h" #include "spatial_reuse.h" /*--------------------Define -------------------------------------------*/ #define TRXCFG_WAIT_CNT 2000 #define TRXCFG_WAIT_US 1 /* MPDU Processor Control */ #define TRXCFG_MPDU_PROC_ACT_FRWD 0x02A95A95 #define TRXCFG_MPDU_PROC_TF_FRWD 0x0000AA55 #define TRXCFG_MPDU_PROC_CUT_CTRL 0x010E05F0 /* RMAC timeout control */ #define TRXCFG_RMAC_CCA_TO 32 #define TRXCFG_RMAC_DATA_TO 15 #define S_AX_TXSC_20M_0 0 #define S_AX_TXSC_20M_4 4 #define S_AX_TXSC_40M_0 0 #define S_AX_TXSC_40M_4 4 #define S_AX_TXSC_80M_0 0 #define S_AX_TXSC_80M_4 4 #define RRSR_OFDM_CCK_EN 3 /* TRXPTCL SIFS TIME*/ #define WMAC_SPEC_SIFS_OFDM_52A 0x15 #define WMAC_SPEC_SIFS_OFDM_52B 0x11 #define WMAC_SPEC_SIFS_OFDM_52C 0x11 #define WMAC_SPEC_SIFS_CCK 0xA /* SRAM fifo address */ #define CMAC_TBL_BASE_ADDR 0x18840000 #define CMAC1_START_ADDR 0xE000 #define CMAC1_END_ADDR 0xFFFF #if MAC_AX_ASIC_TEMP #define R_AX_LTECOEX_CTRL 0x38 #define R_AX_LTECOEX_CTRL_2 0x3C #endif #define S_AX_CTS2S_TH_1K 4 #define S_AX_CTS2S_TH_SEC_256B 1 #define S_AX_PTCL_TO_2MS 0x3F #define LBK_PLCP_DLY_DEF 0x28 #define LBK_PLCP_DLY_FPGA 0x46 #define PLD_RLS_MAX_PG 127 #define RX_MAX_LEN_UNIT 512 /* if spec max len is not align to rx max len unit, add 1 unit */ #define RX_SPEC_MAX_LEN (11454 + RX_MAX_LEN_UNIT) #define SCH_PREBKF_24US 0x18 #define SCH_PREBKF_16US 0x10 #define BCN_IFS_25US 0x19 #define SIFS_MACTXEN_T1 0x47 #define SDIO_DRV_INFO_SIZE 2 #define DMA_MOD_PCIE_1B 0x0 #define DMA_MOD_PCIE_4B 0x1 #define DMA_MOD_USB 0x2 #define DMA_MOD_SDIO 0x3 #define NAV_12MS 0xBC // (12ms, unit: 64us) #define FWD_TO_HOST 0 #define FWD_TO_WLCPU 1 #define FWD_TO_DATACPU 2 #define AMPDU_MAX_LEN_VHT_262K 0x3FF80 /*--------------------Define MACRO--------------------------------------*/ /*--------------------Define Enum---------------------------------------*/ /*--------------------Define Struct-------------------------------------*/ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief mac_enable_imr * * @param *adapter * @param band * @param sel * @return Please Place Description here. * @retval u32 */ u32 mac_enable_imr(struct mac_ax_adapter *adapter, u8 band, enum mac_ax_hwmod_sel sel); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief check_mac_en * * @param *adapter * @param band * @param sel * @return Please Place Description here. * @retval u32 */ u32 check_mac_en(struct mac_ax_adapter *adapter, u8 band, enum mac_ax_hwmod_sel sel); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief mac_check_access * * @param *adapter * @param offset * @return Please Place Description here. * @retval u32 */ u32 mac_check_access(struct mac_ax_adapter *adapter, u32 offset); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief cmac_init * * @param *adapter * @param *info * @param band * @return Please Place Description here. * @retval u32 */ u32 cmac_init(struct mac_ax_adapter *adapter, struct mac_ax_trx_info *info, enum mac_ax_band band); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief mac_trx_init * * @param *adapter * @param *info * @return Please Place Description here. * @retval u32 */ u32 mac_trx_init(struct mac_ax_adapter *adapter, struct mac_ax_trx_info *info); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief mac_tx_mode_sel * * @param *adapter * @param *mode_sel * @return Please Place Description here. * @retval u32 */ u32 mac_tx_mode_sel(struct mac_ax_adapter *adapter, struct mac_ax_mac_tx_mode_sel *mode_sel); /** * @} * @} */ /** * @addtogroup Basic_TRX * @{ * @addtogroup TX_Config * @{ */ /** * @brief mac_two_nav_cfg * * @param *adapter * @param *info * @return Please Place Description here. * @retval u32 */ u32 mac_two_nav_cfg(struct mac_ax_adapter *adapter, struct mac_ax_2nav_info *info); /** * @} * @} *//** * @brief mac_sifs_chk_edcca_en * * @param *adapter * @param *band * @return Please Place Description here. * @retval u32 */ u32 mac_sifs_chk_cca_en(struct mac_ax_adapter *adapter, u8 band); /** * @} * @} */ #endif