/****************************************************************************** * * Copyright(c) 2019 Realtek Corporation. * * 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 _HAL_GENERAL_DEF_H_ #define _HAL_GENERAL_DEF_H_ #define RTW_MAC_TBTT_AGG_DEF 1 enum rtw_chip_id { CHIP_WIFI6_8852A, CHIP_WIFI6_8834A, CHIP_WIFI6_8852B, CHIP_WIFI6_8852C, CHIP_WIFI6_MAX }; enum rtw_efuse_info { /* MAC Part */ EFUSE_INFO_MAC_ADDR, EFUSE_INFO_MAC_PID, EFUSE_INFO_MAC_DID, EFUSE_INFO_MAC_VID, EFUSE_INFO_MAC_SVID, EFUSE_INFO_MAC_SMID, EFUSE_INFO_MAC_MAX, /* BB Part */ EFUSE_INFO_BB_ANTDIV, EFUSE_INFO_BB_MAX, /* RF Part */ EFUSE_INFO_RF_PKG_TYPE, EFUSE_INFO_RF_PA, EFUSE_INFO_RF_VALID_PATH, EFUSE_INFO_RF_RFE, EFUSE_INFO_RF_TXPWR, EFUSE_INFO_RF_BOARD_OPTION, EFUSE_INFO_RF_CHAN_PLAN, EFUSE_INFO_RF_CHAN_PLAN_FORCE_HW, EFUSE_INFO_RF_COUNTRY, EFUSE_INFO_RF_THERMAL, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_1, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_2, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_3, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_4, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_5, EFUSE_INFO_RF_2G_CCK_A_TSSI_DE_6, EFUSE_INFO_RF_2G_BW40M_A_TSSI_DE_1, EFUSE_INFO_RF_2G_BW40M_A_TSSI_DE_2, EFUSE_INFO_RF_2G_BW40M_A_TSSI_DE_3, EFUSE_INFO_RF_2G_BW40M_A_TSSI_DE_4, EFUSE_INFO_RF_2G_BW40M_A_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_1, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_2, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_3, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_4, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_6, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_7, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_8, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_9, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_10, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_11, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_12, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_13, EFUSE_INFO_RF_5G_BW40M_A_TSSI_DE_14, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_1, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_2, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_3, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_4, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_5, EFUSE_INFO_RF_2G_CCK_B_TSSI_DE_6, EFUSE_INFO_RF_2G_BW40M_B_TSSI_DE_1, EFUSE_INFO_RF_2G_BW40M_B_TSSI_DE_2, EFUSE_INFO_RF_2G_BW40M_B_TSSI_DE_3, EFUSE_INFO_RF_2G_BW40M_B_TSSI_DE_4, EFUSE_INFO_RF_2G_BW40M_B_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_1, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_2, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_3, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_4, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_6, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_7, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_8, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_9, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_10, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_11, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_12, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_13, EFUSE_INFO_RF_5G_BW40M_B_TSSI_DE_14, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_1, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_2, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_3, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_4, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_5, EFUSE_INFO_RF_2G_CCK_C_TSSI_DE_6, EFUSE_INFO_RF_2G_BW40M_C_TSSI_DE_1, EFUSE_INFO_RF_2G_BW40M_C_TSSI_DE_2, EFUSE_INFO_RF_2G_BW40M_C_TSSI_DE_3, EFUSE_INFO_RF_2G_BW40M_C_TSSI_DE_4, EFUSE_INFO_RF_2G_BW40M_C_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_1, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_2, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_3, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_4, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_6, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_7, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_8, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_9, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_10, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_11, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_12, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_13, EFUSE_INFO_RF_5G_BW40M_C_TSSI_DE_14, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_1, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_2, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_3, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_4, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_5, EFUSE_INFO_RF_2G_CCK_D_TSSI_DE_6, EFUSE_INFO_RF_2G_BW40M_D_TSSI_DE_1, EFUSE_INFO_RF_2G_BW40M_D_TSSI_DE_2, EFUSE_INFO_RF_2G_BW40M_D_TSSI_DE_3, EFUSE_INFO_RF_2G_BW40M_D_TSSI_DE_4, EFUSE_INFO_RF_2G_BW40M_D_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_1, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_2, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_3, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_4, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_5, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_6, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_7, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_8, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_9, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_10, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_11, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_12, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_13, EFUSE_INFO_RF_5G_BW40M_D_TSSI_DE_14, EFUSE_INFO_RF_THERMAL_A, EFUSE_INFO_RF_THERMAL_B, EFUSE_INFO_RF_THERMAL_C, EFUSE_INFO_RF_THERMAL_D, EFUSE_INFO_RF_XTAL, /*RX Gain K*/ EFUSE_INFO_RF_RX_GAIN_K_A_2G_CCK, EFUSE_INFO_RF_RX_GAIN_K_A_2G_OFMD, EFUSE_INFO_RF_RX_GAIN_K_A_5GL, EFUSE_INFO_RF_RX_GAIN_K_A_5GM, EFUSE_INFO_RF_RX_GAIN_K_A_5GH, EFUSE_INFO_RF_MAX, /* BTCOEX Part */ EFUSE_INFO_BTCOEX_COEX, EFUSE_INFO_BTCOEX_ANT_NUM, EFUSE_INFO_BTCOEX_ANT_PATH, EFUSE_INFO_BTCOEX_MAX, }; enum rtw_cv { CAV, CBV, CCV, CDV, CEV, CFV, CGV, CTV, CMAXV, }; enum rtw_fv { FTV, FUV, FSV, }; enum rtw_dv_sel { DAV, DDV, }; enum hal_pwr_by_rate_setting { PW_BY_RATE_ON = 0, PW_BY_RATE_ALL_SAME = 1 }; enum hal_pwr_limit_type { PWLMT_BY_EFUSE = 0, PWLMT_DISABLE = 1, PWBYRATE_AND_PWLMT = 2 }; enum rtw_mac_gfunc { RTW_MAC_GPIO_WL_PD, RTW_MAC_GPIO_BT_PD, RTW_MAC_GPIO_WL_EXTWOL, RTW_MAC_GPIO_BT_GPIO, RTW_MAC_GPIO_WL_SDIO_INT, RTW_MAC_GPIO_BT_SDIO_INT, RTW_MAC_GPIO_WL_FLASH, RTW_MAC_GPIO_BT_FLASH, RTW_MAC_GPIO_SIC, RTW_MAC_GPIO_LTE_UART, RTW_MAC_GPIO_LTE_3W, RTW_MAC_GPIO_WL_PTA, RTW_MAC_GPIO_BT_PTA, RTW_MAC_GPIO_MAILBOX, RTW_MAC_GPIO_WL_LED, RTW_MAC_GPIO_OSC, RTW_MAC_GPIO_XTAL_CLK, RTW_MAC_GPIO_EXT_XTAL_CLK, RTW_MAC_GPIO_DBG_GNT, RTW_MAC_GPIO_WL_RFE_CTRL, RTW_MAC_GPIO_BT_UART_RQB, RTW_MAC_GPIO_BT_WAKE_HOST, RTW_MAC_GPIO_HOST_WAKE_BT, RTW_MAC_GPIO_DBG, RTW_MAC_GPIO_WL_UART_TX, RTW_MAC_GPIO_WL_UART_RX, RTW_MAC_GPIO_WL_JTAG, RTW_MAC_GPIO_SW_IO, /* keep last */ RTW_MAC_GPIO_LAST, RTW_MAC_GPIO_MAX = RTW_MAC_GPIO_LAST, RTW_MAC_GPIO_INVALID = RTW_MAC_GPIO_LAST, RTW_MAC_GPIO_DFLT = RTW_MAC_GPIO_LAST, }; #ifdef CONFIG_FW_IO_OFLD_SUPPORT enum rtw_mac_src_cmd_ofld { RTW_MAC_BB_CMD_OFLD = 0, RTW_MAC_RF_CMD_OFLD, RTW_MAC_MAC_CMD_OFLD, RTW_MAC_OTHER_CMD_OFLD }; enum rtw_mac_cmd_type_ofld { RTW_MAC_WRITE_OFLD = 0, RTW_MAC_COMPARE_OFLD, RTW_MAC_DELAY_OFLD }; enum rtw_mac_rf_path { RTW_MAC_RF_PATH_A = 0, //Radio Path A RTW_MAC_RF_PATH_B, //Radio Path B RTW_MAC_RF_PATH_C, //Radio Path C RTW_MAC_RF_PATH_D, //Radio Path D }; struct rtw_mac_cmd { enum rtw_mac_src_cmd_ofld src; enum rtw_mac_cmd_type_ofld type; u8 lc; enum rtw_mac_rf_path rf_path; u16 offset; u16 id; u32 value; u32 mask; }; enum rtw_fw_ofld_cap { FW_CAP_IO_OFLD = BIT(0), }; #endif enum wl_func { EFUSE_WL_FUNC_NONE = 0, EFUSE_WL_FUNC_DRAGON = 0xe, EFUSE_WL_FUNC_GENERAL = 0xf }; enum hw_stype{ EFUSE_HW_STYPE_NONE = 0x0, EFUSE_HW_STYPE_GENERAL = 0xf }; struct rtw_hal_mac_ax_cctl_info { /* dword 0 */ u32 datarate:9; u32 force_txop:1; u32 data_bw:2; u32 data_gi_ltf:3; u32 darf_tc_index:1; u32 arfr_ctrl:4; u32 acq_rpt_en:1; u32 mgq_rpt_en:1; u32 ulq_rpt_en:1; u32 twtq_rpt_en:1; u32 rsvd0:1; u32 disrtsfb:1; u32 disdatafb:1; u32 tryrate:1; u32 ampdu_density:4; /* dword 1 */ u32 data_rty_lowest_rate:9; u32 ampdu_time_sel:1; u32 ampdu_len_sel:1; u32 rts_txcnt_lmt_sel:1; u32 rts_txcnt_lmt:4; u32 rtsrate:9; u32 rsvd1:2; u32 vcs_stbc:1; u32 rts_rty_lowest_rate:4; /* dword 2 */ u32 data_tx_cnt_lmt:6; u32 data_txcnt_lmt_sel:1; u32 max_agg_num_sel:1; u32 rts_en:1; u32 cts2self_en:1; u32 cca_rts:2; u32 hw_rts_en:1; u32 rts_drop_data_mode:2; u32 rsvd2:1; u32 ampdu_max_len:11; u32 ul_mu_dis:1; u32 ampdu_max_time:4; /* dword 3 */ u32 max_agg_num:8; u32 ba_bmap:2; u32 rsvd3:6; u32 vo_lftime_sel:3; u32 vi_lftime_sel:3; u32 be_lftime_sel:3; u32 bk_lftime_sel:3; u32 sectype:4; /* dword 4 */ u32 multi_port_id:3; u32 bmc:1; u32 mbssid:4; u32 navusehdr:1; u32 txpwr_mode:3; u32 data_dcm:1; u32 data_er:1; u32 data_ldpc:1; u32 data_stbc:1; u32 a_ctrl_bqr:1; u32 a_ctrl_uph:1; u32 a_ctrl_bsr:1; u32 a_ctrl_cas:1; u32 data_bw_er:1; u32 lsig_txop_en:1; u32 rsvd4:5; u32 ctrl_cnt_vld:1; u32 ctrl_cnt:4; /* dword 5 */ u32 resp_ref_rate:9; u32 rsvd5:3; u32 all_ack_support:1; u32 bsr_queue_size_format:1; u32 rsvd6:1; u32 rsvd7:1; u32 ntx_path_en:4; u32 path_map_a:2; u32 path_map_b:2; u32 path_map_c:2; u32 path_map_d:2; u32 antsel_a:1; u32 antsel_b:1; u32 antsel_c:1; u32 antsel_d:1; /* dword 6 */ u32 addr_cam_index:8; u32 paid:9; u32 uldl:1; u32 doppler_ctrl:2; u32 nominal_pkt_padding:2; u32 nominal_pkt_padding40:2; u32 txpwr_tolerence:4; u32 rsvd9:2; u32 nominal_pkt_padding80:2; /* dword 7 */ u32 nc:3; u32 nr:3; u32 ng:2; u32 cb:2; u32 cs:2; u32 csi_txbf_en:1; u32 csi_stbc_en:1; u32 csi_ldpc_en:1; u32 csi_para_en:1; u32 csi_fix_rate:9; u32 csi_gi_ltf:3; u32 nominal_pkt_padding160:2; u32 csi_bw:2; }; #endif /* _HAL_GENERAL_DEF_H_*/