/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright(c) 2019-2020 Realtek Corporation
*/
#ifndef __RTW89_MAC_H__
#define __RTW89_MAC_H__
#include "core.h"
#include "reg.h"
#define MAC_MEM_DUMP_PAGE_SIZE 0x40000
#define ADDR_CAM_ENT_SIZE 0x40
#define ADDR_CAM_ENT_SHORT_SIZE 0x20
#define BSSID_CAM_ENT_SIZE 0x08
#define HFC_PAGE_UNIT 64
#define RPWM_TRY_CNT 3
enum rtw89_mac_hwmod_sel {
RTW89_DMAC_SEL = 0,
RTW89_CMAC_SEL = 1,
RTW89_MAC_INVALID,
};
enum rtw89_mac_fwd_target {
RTW89_FWD_DONT_CARE = 0,
RTW89_FWD_TO_HOST = 1,
RTW89_FWD_TO_WLAN_CPU = 2
};
enum rtw89_mac_wd_dma_intvl {
RTW89_MAC_WD_DMA_INTVL_0S,
RTW89_MAC_WD_DMA_INTVL_256NS,
RTW89_MAC_WD_DMA_INTVL_512NS,
RTW89_MAC_WD_DMA_INTVL_768NS,
RTW89_MAC_WD_DMA_INTVL_1US,
RTW89_MAC_WD_DMA_INTVL_1_5US,
RTW89_MAC_WD_DMA_INTVL_2US,
RTW89_MAC_WD_DMA_INTVL_4US,
RTW89_MAC_WD_DMA_INTVL_8US,
RTW89_MAC_WD_DMA_INTVL_16US,
RTW89_MAC_WD_DMA_INTVL_DEF = 0xFE
};
enum rtw89_mac_multi_tag_num {
RTW89_MAC_TAG_NUM_1,
RTW89_MAC_TAG_NUM_2,
RTW89_MAC_TAG_NUM_3,
RTW89_MAC_TAG_NUM_4,
RTW89_MAC_TAG_NUM_5,
RTW89_MAC_TAG_NUM_6,
RTW89_MAC_TAG_NUM_7,
RTW89_MAC_TAG_NUM_8,
RTW89_MAC_TAG_NUM_DEF = 0xFE
};
enum rtw89_mac_lbc_tmr {
RTW89_MAC_LBC_TMR_8US = 0,
RTW89_MAC_LBC_TMR_16US,
RTW89_MAC_LBC_TMR_32US,
RTW89_MAC_LBC_TMR_64US,
RTW89_MAC_LBC_TMR_128US,
RTW89_MAC_LBC_TMR_256US,
RTW89_MAC_LBC_TMR_512US,
RTW89_MAC_LBC_TMR_1MS,
RTW89_MAC_LBC_TMR_2MS,
RTW89_MAC_LBC_TMR_4MS,
RTW89_MAC_LBC_TMR_8MS,
RTW89_MAC_LBC_TMR_DEF = 0xFE
};
enum rtw89_mac_cpuio_op_cmd_type {
CPUIO_OP_CMD_GET_1ST_PID = 0,
CPUIO_OP_CMD_GET_NEXT_PID = 1,
CPUIO_OP_CMD_ENQ_TO_TAIL = 4,
CPUIO_OP_CMD_ENQ_TO_HEAD = 5,
CPUIO_OP_CMD_DEQ = 8,
CPUIO_OP_CMD_DEQ_ENQ_ALL = 9,
CPUIO_OP_CMD_DEQ_ENQ_TO_TAIL = 12
};
enum rtw89_mac_wde_dle_port_id