162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* Copyright(c) 2009-2012 Realtek Corporation.*/ 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#ifndef __RTL92D_DEF_H__ 562306a36Sopenharmony_ci#define __RTL92D_DEF_H__ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci/* Min Spacing related settings. */ 862306a36Sopenharmony_ci#define MAX_MSS_DENSITY_2T 0x13 962306a36Sopenharmony_ci#define MAX_MSS_DENSITY_1T 0x0A 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#define RF6052_MAX_TX_PWR 0x3F 1262306a36Sopenharmony_ci#define RF6052_MAX_PATH 2 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#define PHY_RSSI_SLID_WIN_MAX 100 1562306a36Sopenharmony_ci#define PHY_LINKQUALITY_SLID_WIN_MAX 20 1662306a36Sopenharmony_ci#define PHY_BEACON_RSSI_SLID_WIN_MAX 10 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define RT_AC_INT_MASKS (IMR_VIDOK | IMR_VODOK | IMR_BEDOK|IMR_BKDOK) 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci#define RX_SMOOTH_FACTOR 20 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 2362306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_LOWER 1 2462306a36Sopenharmony_ci#define HAL_PRIME_CHNL_OFFSET_UPPER 2 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci#define RX_MPDU_QUEUE 0 2762306a36Sopenharmony_ci#define RX_CMD_QUEUE 1 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cienum version_8192d { 3062306a36Sopenharmony_ci VERSION_TEST_CHIP_88C = 0x0000, 3162306a36Sopenharmony_ci VERSION_TEST_CHIP_92C = 0x0020, 3262306a36Sopenharmony_ci VERSION_TEST_UMC_CHIP_8723 = 0x0081, 3362306a36Sopenharmony_ci VERSION_NORMAL_TSMC_CHIP_88C = 0x0008, 3462306a36Sopenharmony_ci VERSION_NORMAL_TSMC_CHIP_92C = 0x0028, 3562306a36Sopenharmony_ci VERSION_NORMAL_TSMC_CHIP_92C_1T2R = 0x0018, 3662306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_88C_A_CUT = 0x0088, 3762306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_92C_A_CUT = 0x00a8, 3862306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_92C_1T2R_A_CUT = 0x0098, 3962306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_8723_1T1R_A_CUT = 0x0089, 4062306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_8723_1T1R_B_CUT = 0x1089, 4162306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_88C_B_CUT = 0x1088, 4262306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_92C_B_CUT = 0x10a8, 4362306a36Sopenharmony_ci VERSION_NORMAL_UMC_CHIP_92C_1T2R_B_CUT = 0x1090, 4462306a36Sopenharmony_ci VERSION_TEST_CHIP_92D_SINGLEPHY = 0x0022, 4562306a36Sopenharmony_ci VERSION_TEST_CHIP_92D_DUALPHY = 0x0002, 4662306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_SINGLEPHY = 0x002a, 4762306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_DUALPHY = 0x000a, 4862306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_C_CUT_SINGLEPHY = 0x202a, 4962306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_C_CUT_DUALPHY = 0x200a, 5062306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_D_CUT_SINGLEPHY = 0x302a, 5162306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_D_CUT_DUALPHY = 0x300a, 5262306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_E_CUT_SINGLEPHY = 0x402a, 5362306a36Sopenharmony_ci VERSION_NORMAL_CHIP_92D_E_CUT_DUALPHY = 0x400a, 5462306a36Sopenharmony_ci}; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci/* for 92D */ 5762306a36Sopenharmony_ci#define CHIP_92D_SINGLEPHY BIT(9) 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci/* Chip specific */ 6062306a36Sopenharmony_ci#define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3) 6162306a36Sopenharmony_ci#define CHIP_BONDING_92C_1T2R 0x1 6262306a36Sopenharmony_ci#define CHIP_BONDING_88C_USB_MCARD 0x2 6362306a36Sopenharmony_ci#define CHIP_BONDING_88C_USB_HP 0x1 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci/* [15:12] IC version(CUT): A-cut=0, B-cut=1, C-cut=2, D-cut=3 */ 6662306a36Sopenharmony_ci/* [7] Manufacturer: TSMC=0, UMC=1 */ 6762306a36Sopenharmony_ci/* [6:4] RF type: 1T1R=0, 1T2R=1, 2T2R=2 */ 6862306a36Sopenharmony_ci/* [3] Chip type: TEST=0, NORMAL=1 */ 6962306a36Sopenharmony_ci/* [2:0] IC type: 81xxC=0, 8723=1, 92D=2 */ 7062306a36Sopenharmony_ci#define CHIP_8723 BIT(0) 7162306a36Sopenharmony_ci#define CHIP_92D BIT(1) 7262306a36Sopenharmony_ci#define NORMAL_CHIP BIT(3) 7362306a36Sopenharmony_ci#define RF_TYPE_1T1R (~(BIT(4)|BIT(5)|BIT(6))) 7462306a36Sopenharmony_ci#define RF_TYPE_1T2R BIT(4) 7562306a36Sopenharmony_ci#define RF_TYPE_2T2R BIT(5) 7662306a36Sopenharmony_ci#define CHIP_VENDOR_UMC BIT(7) 7762306a36Sopenharmony_ci#define CHIP_92D_B_CUT BIT(12) 7862306a36Sopenharmony_ci#define CHIP_92D_C_CUT BIT(13) 7962306a36Sopenharmony_ci#define CHIP_92D_D_CUT (BIT(13)|BIT(12)) 8062306a36Sopenharmony_ci#define CHIP_92D_E_CUT BIT(14) 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci/* MASK */ 8362306a36Sopenharmony_ci#define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2)) 8462306a36Sopenharmony_ci#define CHIP_TYPE_MASK BIT(3) 8562306a36Sopenharmony_ci#define RF_TYPE_MASK (BIT(4)|BIT(5)|BIT(6)) 8662306a36Sopenharmony_ci#define MANUFACTUER_MASK BIT(7) 8762306a36Sopenharmony_ci#define ROM_VERSION_MASK (BIT(11)|BIT(10)|BIT(9)|BIT(8)) 8862306a36Sopenharmony_ci#define CUT_VERSION_MASK (BIT(15)|BIT(14)|BIT(13)|BIT(12)) 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci/* Get element */ 9262306a36Sopenharmony_ci#define GET_CVID_IC_TYPE(version) ((version) & IC_TYPE_MASK) 9362306a36Sopenharmony_ci#define GET_CVID_CHIP_TYPE(version) ((version) & CHIP_TYPE_MASK) 9462306a36Sopenharmony_ci#define GET_CVID_RF_TYPE(version) ((version) & RF_TYPE_MASK) 9562306a36Sopenharmony_ci#define GET_CVID_MANUFACTUER(version) ((version) & MANUFACTUER_MASK) 9662306a36Sopenharmony_ci#define GET_CVID_ROM_VERSION(version) ((version) & ROM_VERSION_MASK) 9762306a36Sopenharmony_ci#define GET_CVID_CUT_VERSION(version) ((version) & CUT_VERSION_MASK) 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci#define IS_1T1R(version) ((GET_CVID_RF_TYPE(version)) ? \ 10062306a36Sopenharmony_ci false : true) 10162306a36Sopenharmony_ci#define IS_1T2R(version) ((GET_CVID_RF_TYPE(version) == \ 10262306a36Sopenharmony_ci RF_TYPE_1T2R) ? true : false) 10362306a36Sopenharmony_ci#define IS_2T2R(version) ((GET_CVID_RF_TYPE(version) == \ 10462306a36Sopenharmony_ci RF_TYPE_2T2R) ? true : false) 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci#define IS_92D_SINGLEPHY(version) ((IS_92D(version)) ? \ 10762306a36Sopenharmony_ci (IS_2T2R(version) ? true : false) : false) 10862306a36Sopenharmony_ci#define IS_92D(version) ((GET_CVID_IC_TYPE(version) == \ 10962306a36Sopenharmony_ci CHIP_92D) ? true : false) 11062306a36Sopenharmony_ci#define IS_92D_C_CUT(version) ((IS_92D(version)) ? \ 11162306a36Sopenharmony_ci ((GET_CVID_CUT_VERSION(version) == \ 11262306a36Sopenharmony_ci CHIP_92D_C_CUT) ? true : false) : false) 11362306a36Sopenharmony_ci#define IS_92D_D_CUT(version) ((IS_92D(version)) ? \ 11462306a36Sopenharmony_ci ((GET_CVID_CUT_VERSION(version) == \ 11562306a36Sopenharmony_ci CHIP_92D_D_CUT) ? true : false) : false) 11662306a36Sopenharmony_ci#define IS_92D_E_CUT(version) ((IS_92D(version)) ? \ 11762306a36Sopenharmony_ci ((GET_CVID_CUT_VERSION(version) == \ 11862306a36Sopenharmony_ci CHIP_92D_E_CUT) ? true : false) : false) 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_cienum rf_optype { 12162306a36Sopenharmony_ci RF_OP_BY_SW_3WIRE = 0, 12262306a36Sopenharmony_ci RF_OP_BY_FW, 12362306a36Sopenharmony_ci RF_OP_MAX 12462306a36Sopenharmony_ci}; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_cienum rtl_desc_qsel { 12762306a36Sopenharmony_ci QSLT_BK = 0x2, 12862306a36Sopenharmony_ci QSLT_BE = 0x0, 12962306a36Sopenharmony_ci QSLT_VI = 0x5, 13062306a36Sopenharmony_ci QSLT_VO = 0x7, 13162306a36Sopenharmony_ci QSLT_BEACON = 0x10, 13262306a36Sopenharmony_ci QSLT_HIGH = 0x11, 13362306a36Sopenharmony_ci QSLT_MGNT = 0x12, 13462306a36Sopenharmony_ci QSLT_CMD = 0x13, 13562306a36Sopenharmony_ci}; 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_cienum channel_plan { 13862306a36Sopenharmony_ci CHPL_FCC = 0, 13962306a36Sopenharmony_ci CHPL_IC = 1, 14062306a36Sopenharmony_ci CHPL_ETSI = 2, 14162306a36Sopenharmony_ci CHPL_SPAIN = 3, 14262306a36Sopenharmony_ci CHPL_FRANCE = 4, 14362306a36Sopenharmony_ci CHPL_MKK = 5, 14462306a36Sopenharmony_ci CHPL_MKK1 = 6, 14562306a36Sopenharmony_ci CHPL_ISRAEL = 7, 14662306a36Sopenharmony_ci CHPL_TELEC = 8, 14762306a36Sopenharmony_ci CHPL_GLOBAL = 9, 14862306a36Sopenharmony_ci CHPL_WORLD = 10, 14962306a36Sopenharmony_ci}; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_cistruct phy_sts_cck_8192d { 15262306a36Sopenharmony_ci u8 adc_pwdb_X[4]; 15362306a36Sopenharmony_ci u8 sq_rpt; 15462306a36Sopenharmony_ci u8 cck_agc_rpt; 15562306a36Sopenharmony_ci}; 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_cistruct h2c_cmd_8192c { 15862306a36Sopenharmony_ci u8 element_id; 15962306a36Sopenharmony_ci u32 cmd_len; 16062306a36Sopenharmony_ci u8 *p_cmdbuffer; 16162306a36Sopenharmony_ci}; 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_cistruct txpower_info { 16462306a36Sopenharmony_ci u8 cck_index[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 16562306a36Sopenharmony_ci u8 ht40_1sindex[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 16662306a36Sopenharmony_ci u8 ht40_2sindexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 16762306a36Sopenharmony_ci u8 ht20indexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 16862306a36Sopenharmony_ci u8 ofdmindexdiff[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 16962306a36Sopenharmony_ci u8 ht40maxoffset[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 17062306a36Sopenharmony_ci u8 ht20maxoffset[RF6052_MAX_PATH][CHANNEL_GROUP_MAX]; 17162306a36Sopenharmony_ci u8 tssi_a[3]; /* 5GL/5GM/5GH */ 17262306a36Sopenharmony_ci u8 tssi_b[3]; 17362306a36Sopenharmony_ci}; 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci#endif 176