/** @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_STATE_MACH_H_
|
#define _MAC_AX_STATE_MACH_H_
|
|
/**
|
* @struct mac_ax_state_mach
|
* @brief mac_ax_state_mach
|
*
|
* @var mac_ax_state_mach::pwr
|
* Please Place Description here.
|
* @var mac_ax_state_mach::fwdl
|
* Please Place Description here.
|
* @var mac_ax_state_mach::efuse
|
* Please Place Description here.
|
* @var mac_ax_state_mach::read_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::write_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::conf_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::write_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::conf_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::read_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::pkt_ofld
|
* Please Place Description here.
|
* @var mac_ax_state_mach::efuse_ofld
|
* Please Place Description here.
|
* @var mac_ax_state_mach::macid_pause
|
* Please Place Description here.
|
* @var mac_ax_state_mach::mcc_group
|
* Please Place Description here.
|
* @var mac_ax_state_mach::mcc_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::fw_rst
|
* Please Place Description here.
|
* @var mac_ax_state_mach::aoac_rpt
|
* Please Place Description here.
|
*/
|
|
/**
|
* @struct mac_ax_state_mach
|
* @brief mac_ax_state_mach
|
*
|
* @var mac_ax_state_mach::pwr
|
* Please Place Description here.
|
* @var mac_ax_state_mach::fwdl
|
* Please Place Description here.
|
* @var mac_ax_state_mach::efuse
|
* Please Place Description here.
|
* @var mac_ax_state_mach::read_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::write_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::conf_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::write_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::conf_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::read_h2c
|
* Please Place Description here.
|
* @var mac_ax_state_mach::pkt_ofld
|
* Please Place Description here.
|
* @var mac_ax_state_mach::efuse_ofld
|
* Please Place Description here.
|
* @var mac_ax_state_mach::macid_pause
|
* Please Place Description here.
|
* @var mac_ax_state_mach::mcc_group
|
* Please Place Description here.
|
* @var mac_ax_state_mach::mcc_request
|
* Please Place Description here.
|
* @var mac_ax_state_mach::fw_rst
|
* Please Place Description here.
|
* @var mac_ax_state_mach::aoac_rpt
|
* Please Place Description here.
|
* @var mac_ax_state_mach::p2p_stat
|
* Please Place Description here.
|
*/
|
struct mac_ax_state_mach {
|
#define MAC_AX_PWR_OFF 0
|
#define MAC_AX_PWR_ON 1
|
#define MAC_AX_PWR_PRE_OFF 2
|
#define MAC_AX_PWR_ERR 3
|
u8 pwr;
|
#define MAC_AX_FWDL_IDLE 0
|
#define MAC_AX_FWDL_CPU_ON 1
|
#define MAC_AX_FWDL_H2C_PATH_RDY 2
|
#define MAC_AX_FWDL_PATH_RDY 3
|
#define MAC_AX_FWDL_INIT_RDY 4
|
u8 fwdl;
|
#define MAC_AX_EFUSE_IDLE 0
|
#define MAC_AX_EFUSE_PHY 1
|
#define MAC_AX_EFUSE_LOG_MAP 2
|
#define MAC_AX_EFUSE_LOG_MASK 3
|
#define MAC_AX_EFUSE_MAX 4
|
u8 efuse;
|
#define MAC_AX_OFLD_REQ_IDLE 0
|
#define MAC_AX_OFLD_REQ_H2C_SENT 1
|
#define MAC_AX_OFLD_REQ_CREATED 2
|
#define MAC_AX_OFLD_REQ_CLEANED 3
|
u8 read_request;
|
u8 write_request;
|
u8 conf_request;
|
#define MAC_AX_CMD_OFLD_IDLE 0
|
#define MAC_AX_CMD_OFLD_PROC 1
|
#define MAC_AX_CMD_OFLD_SENDING 2
|
#define MAC_AX_CMD_OFLD_RCVD 3
|
u8 cmd_state;
|
#define MAC_AX_OFLD_H2C_IDLE 0
|
#define MAC_AX_OFLD_H2C_SENDING 1
|
#define MAC_AX_OFLD_H2C_RCVD 2
|
#define MAC_AX_OFLD_H2C_ERROR 4
|
u8 write_h2c;
|
u8 conf_h2c;
|
#define MAC_AX_OFLD_H2C_DONE 3
|
u8 read_h2c;
|
u8 pkt_ofld;
|
u8 efuse_ofld;
|
u8 macid_pause;
|
#define MAC_AX_MCC_EMPTY 0
|
#define MAC_AX_MCC_STATE_H2C_SENT 1
|
#define MAC_AX_MCC_STATE_H2C_RCVD 2
|
#define MAC_AX_MCC_ADD_DONE 3
|
#define MAC_AX_MCC_START_DONE 4
|
#define MAC_AX_MCC_STOP_DONE 5
|
#define MAC_AX_MCC_STATE_ERROR 6
|
u8 mcc_group[4];
|
#define MAC_AX_MCC_REQ_IDLE 0
|
#define MAC_AX_MCC_REQ_H2C_SENT 1
|
#define MAC_AX_MCC_REQ_H2C_RCVD 2
|
#define MAC_AX_MCC_REQ_DONE 3
|
#define MAC_AX_MCC_REQ_FAIL 4
|
u8 mcc_request[4];
|
#define MAC_AX_FW_RESET_IDLE 0
|
#define MAC_AX_FW_RESET_RECV 1
|
#define MAC_AX_FW_RESET_RECV_DONE 2
|
#define MAC_AX_FW_RESET_PROCESS 3
|
u8 fw_rst;
|
#define MAC_AX_AOAC_RPT_IDLE 0
|
#define MAC_AX_AOAC_RPT_H2C_SENDING 1
|
#define MAC_AX_AOAC_RPT_H2C_RCVD 2
|
#define MAC_AX_AOAC_RPT_H2C_DONE 3
|
#define MAC_AX_AOAC_RPT_ERROR 4
|
u8 aoac_rpt;
|
#define MAC_AX_P2P_ACT_IDLE 0
|
#define MAC_AX_P2P_ACT_BUSY 1
|
#define MAC_AX_P2P_ACT_FAIL 2
|
u8 p2p_stat;
|
#define MAC_AX_FUNC_OFF 0
|
#define MAC_AX_FUNC_ON 1
|
u8 dmac_func;
|
u8 cmac0_func;
|
u8 cmac1_func;
|
u8 bb0_func;
|
u8 bb1_func;
|
#define MAC_AX_WOW_STOPTRX_IDLE 0
|
#define MAC_AX_WOW_STOPTRX_BUSY 1
|
#define MAC_AX_WOW_STOPTRX_FAIL 2
|
u8 wow_stoptrx_stat;
|
#define MAC_AX_MAC_NOT_RDY 0
|
#define MAC_AX_MAC_RDY 1
|
#define MAC_AX_MAC_INIT_ERR 2
|
#define MAC_AX_MAC_DEINIT_ERR 3
|
#define MAC_AX_MAC_FINIT_ERR 4
|
#define MAC_AX_MAC_FDEINIT_ERR 5
|
u8 mac_rdy;
|
#define MAC_AX_ROLE_ALOC_SUCC 0
|
#define MAC_AX_ROLE_INIT_SUCC 1
|
#define MAC_AX_ROLE_HW_UPD_SUCC 2
|
#define MAC_AX_ROLE_ALOC_FAIL 3
|
#define MAC_AX_ROLE_INIT_FAIL 4
|
#define MAC_AX_ROLE_HW_UPD_FAIL 5
|
u8 role_stat;
|
#define MAC_AX_PLAT_OFF 0
|
#define MAC_AX_PLAT_ON 1
|
u8 plat;
|
#define MAC_AX_IO_ST_NORM 0
|
#define MAC_AX_IO_ST_HANG 1
|
u8 io_st;
|
#define MAC_AX_L2_DIS 0
|
#define MAC_AX_L2_EN 1
|
#define MAC_AX_L2_TRIG 2
|
u8 l2_st;
|
#define MAC_AX_SER_CTRL_SRT 0
|
#define MAC_AX_SER_CTRL_STOP 1
|
#define MAC_AX_SER_CTRL_ERR 2
|
u8 ser_ctrl_st;
|
#define MAC_AX_CH_SWITCH_GET_RPT 4
|
u8 ch_switch;
|
};
|
|
#define MAC_AX_DFLT_SM \
|
{MAC_AX_PWR_OFF, MAC_AX_FWDL_IDLE, MAC_AX_EFUSE_IDLE, \
|
MAC_AX_OFLD_REQ_IDLE, MAC_AX_OFLD_REQ_IDLE, MAC_AX_OFLD_REQ_IDLE, \
|
MAC_AX_CMD_OFLD_IDLE, MAC_AX_OFLD_H2C_IDLE, MAC_AX_OFLD_H2C_IDLE, \
|
MAC_AX_OFLD_H2C_IDLE, MAC_AX_OFLD_H2C_IDLE, MAC_AX_OFLD_H2C_IDLE, \
|
MAC_AX_OFLD_H2C_IDLE, {MAC_AX_MCC_EMPTY}, {MAC_AX_MCC_REQ_IDLE}, \
|
MAC_AX_FW_RESET_IDLE, MAC_AX_AOAC_RPT_IDLE, MAC_AX_P2P_ACT_IDLE, \
|
MAC_AX_FUNC_OFF, MAC_AX_FUNC_OFF, MAC_AX_FUNC_OFF, MAC_AX_FUNC_OFF, \
|
MAC_AX_FUNC_OFF, MAC_AX_WOW_STOPTRX_IDLE, MAC_AX_MAC_NOT_RDY, \
|
MAC_AX_ROLE_ALOC_SUCC, MAC_AX_PLAT_OFF, MAC_AX_IO_ST_NORM, \
|
MAC_AX_L2_EN, MAC_AX_SER_CTRL_SRT}
|
#endif
|