1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* Copyright(c) 2009-2012 Realtek Corporation.*/ 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #ifndef __RTL8723E_DEF_H__ 5*4882a593Smuzhiyun #define __RTL8723E_DEF_H__ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0 8*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_LOWER 1 9*4882a593Smuzhiyun #define HAL_PRIME_CHNL_OFFSET_UPPER 2 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define RX_MPDU_QUEUE 0 12*4882a593Smuzhiyun #define RX_CMD_QUEUE 1 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define CHIP_BONDING_IDENTIFIER(_value) (((_value)>>22)&0x3) 15*4882a593Smuzhiyun #define CHIP_BONDING_92C_1T2R 0x1 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #define CHIP_8723 BIT(0) 18*4882a593Smuzhiyun #define NORMAL_CHIP BIT(3) 19*4882a593Smuzhiyun #define RF_TYPE_1T1R (~(BIT(4)|BIT(5)|BIT(6))) 20*4882a593Smuzhiyun #define RF_TYPE_1T2R BIT(4) 21*4882a593Smuzhiyun #define RF_TYPE_2T2R BIT(5) 22*4882a593Smuzhiyun #define CHIP_VENDOR_UMC BIT(7) 23*4882a593Smuzhiyun #define B_CUT_VERSION BIT(12) 24*4882a593Smuzhiyun #define C_CUT_VERSION BIT(13) 25*4882a593Smuzhiyun #define D_CUT_VERSION ((BIT(12)|BIT(13))) 26*4882a593Smuzhiyun #define E_CUT_VERSION BIT(14) 27*4882a593Smuzhiyun #define RF_RL_ID (BIT(31)|BIT(30)|BIT(29)|BIT(28)) 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun /* MASK */ 30*4882a593Smuzhiyun #define IC_TYPE_MASK (BIT(0)|BIT(1)|BIT(2)) 31*4882a593Smuzhiyun #define CHIP_TYPE_MASK BIT(3) 32*4882a593Smuzhiyun #define RF_TYPE_MASK (BIT(4)|BIT(5)|BIT(6)) 33*4882a593Smuzhiyun #define MANUFACTUER_MASK BIT(7) 34*4882a593Smuzhiyun #define ROM_VERSION_MASK (BIT(11)|BIT(10)|BIT(9)|BIT(8)) 35*4882a593Smuzhiyun #define CUT_VERSION_MASK (BIT(15)|BIT(14)|BIT(13)|BIT(12)) 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun /* Get element */ 38*4882a593Smuzhiyun #define GET_CVID_IC_TYPE(version) ((version) & IC_TYPE_MASK) 39*4882a593Smuzhiyun #define GET_CVID_CHIP_TYPE(version) ((version) & CHIP_TYPE_MASK) 40*4882a593Smuzhiyun #define GET_CVID_RF_TYPE(version) ((version) & RF_TYPE_MASK) 41*4882a593Smuzhiyun #define GET_CVID_MANUFACTUER(version) ((version) & MANUFACTUER_MASK) 42*4882a593Smuzhiyun #define GET_CVID_ROM_VERSION(version) ((version) & ROM_VERSION_MASK) 43*4882a593Smuzhiyun #define GET_CVID_CUT_VERSION(version) ((version) & CUT_VERSION_MASK) 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun #define IS_81XXC(version) ((GET_CVID_IC_TYPE(version) == 0) ?\ 46*4882a593Smuzhiyun true : false) 47*4882a593Smuzhiyun #define IS_8723_SERIES(version) ((GET_CVID_IC_TYPE(version) == CHIP_8723) ? \ 48*4882a593Smuzhiyun true : false) 49*4882a593Smuzhiyun #define IS_1T1R(version) ((GET_CVID_RF_TYPE(version)) ? false : true) 50*4882a593Smuzhiyun #define IS_1T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_1T2R)\ 51*4882a593Smuzhiyun ? true : false) 52*4882a593Smuzhiyun #define IS_2T2R(version) ((GET_CVID_RF_TYPE(version) == RF_TYPE_2T2R)\ 53*4882a593Smuzhiyun ? true : false) 54*4882a593Smuzhiyun #define IS_CHIP_VENDOR_UMC(version) ((GET_CVID_MANUFACTUER(version)) ? \ 55*4882a593Smuzhiyun true : false) 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun #define IS_VENDOR_UMC_A_CUT(version) ((IS_CHIP_VENDOR_UMC(version))\ 58*4882a593Smuzhiyun ? ((GET_CVID_CUT_VERSION(version)) ? \ 59*4882a593Smuzhiyun false : true) : false) 60*4882a593Smuzhiyun #define IS_VENDOR_8723_A_CUT(version) ((IS_8723_SERIES(version))\ 61*4882a593Smuzhiyun ? ((GET_CVID_CUT_VERSION(version)) ? \ 62*4882a593Smuzhiyun false : true) : false) 63*4882a593Smuzhiyun #define IS_VENDOR_8723A_B_CUT(version) ((IS_8723_SERIES(version))\ 64*4882a593Smuzhiyun ? ((GET_CVID_CUT_VERSION(version) == \ 65*4882a593Smuzhiyun B_CUT_VERSION) ? true : false) : false) 66*4882a593Smuzhiyun #define IS_81XXC_VENDOR_UMC_B_CUT(version) ((IS_CHIP_VENDOR_UMC(version))\ 67*4882a593Smuzhiyun ? ((GET_CVID_CUT_VERSION(version) == \ 68*4882a593Smuzhiyun B_CUT_VERSION) ? true : false) : false) 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun enum rf_optype { 71*4882a593Smuzhiyun RF_OP_BY_SW_3WIRE = 0, 72*4882a593Smuzhiyun RF_OP_BY_FW, 73*4882a593Smuzhiyun RF_OP_MAX 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun enum rf_power_state { 77*4882a593Smuzhiyun RF_ON, 78*4882a593Smuzhiyun RF_OFF, 79*4882a593Smuzhiyun RF_SLEEP, 80*4882a593Smuzhiyun RF_SHUT_DOWN, 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun enum power_save_mode { 84*4882a593Smuzhiyun POWER_SAVE_MODE_ACTIVE, 85*4882a593Smuzhiyun POWER_SAVE_MODE_SAVE, 86*4882a593Smuzhiyun }; 87*4882a593Smuzhiyun 88*4882a593Smuzhiyun enum power_policy_config { 89*4882a593Smuzhiyun POWERCFG_MAX_POWER_SAVINGS, 90*4882a593Smuzhiyun POWERCFG_GLOBAL_POWER_SAVINGS, 91*4882a593Smuzhiyun POWERCFG_LOCAL_POWER_SAVINGS, 92*4882a593Smuzhiyun POWERCFG_LENOVO, 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun enum interface_select_pci { 96*4882a593Smuzhiyun INTF_SEL1_MINICARD = 0, 97*4882a593Smuzhiyun INTF_SEL0_PCIE = 1, 98*4882a593Smuzhiyun INTF_SEL2_RSV = 2, 99*4882a593Smuzhiyun INTF_SEL3_RSV = 3, 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun enum rtl_desc_qsel { 103*4882a593Smuzhiyun QSLT_BK = 0x2, 104*4882a593Smuzhiyun QSLT_BE = 0x0, 105*4882a593Smuzhiyun QSLT_VI = 0x5, 106*4882a593Smuzhiyun QSLT_VO = 0x7, 107*4882a593Smuzhiyun QSLT_BEACON = 0x10, 108*4882a593Smuzhiyun QSLT_HIGH = 0x11, 109*4882a593Smuzhiyun QSLT_MGNT = 0x12, 110*4882a593Smuzhiyun QSLT_CMD = 0x13, 111*4882a593Smuzhiyun }; 112*4882a593Smuzhiyun 113*4882a593Smuzhiyun enum rtl_desc8723e_rate { 114*4882a593Smuzhiyun DESC92C_RATE1M = 0x00, 115*4882a593Smuzhiyun DESC92C_RATE2M = 0x01, 116*4882a593Smuzhiyun DESC92C_RATE5_5M = 0x02, 117*4882a593Smuzhiyun DESC92C_RATE11M = 0x03, 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun DESC92C_RATE6M = 0x04, 120*4882a593Smuzhiyun DESC92C_RATE9M = 0x05, 121*4882a593Smuzhiyun DESC92C_RATE12M = 0x06, 122*4882a593Smuzhiyun DESC92C_RATE18M = 0x07, 123*4882a593Smuzhiyun DESC92C_RATE24M = 0x08, 124*4882a593Smuzhiyun DESC92C_RATE36M = 0x09, 125*4882a593Smuzhiyun DESC92C_RATE48M = 0x0a, 126*4882a593Smuzhiyun DESC92C_RATE54M = 0x0b, 127*4882a593Smuzhiyun 128*4882a593Smuzhiyun DESC92C_RATEMCS0 = 0x0c, 129*4882a593Smuzhiyun DESC92C_RATEMCS1 = 0x0d, 130*4882a593Smuzhiyun DESC92C_RATEMCS2 = 0x0e, 131*4882a593Smuzhiyun DESC92C_RATEMCS3 = 0x0f, 132*4882a593Smuzhiyun DESC92C_RATEMCS4 = 0x10, 133*4882a593Smuzhiyun DESC92C_RATEMCS5 = 0x11, 134*4882a593Smuzhiyun DESC92C_RATEMCS6 = 0x12, 135*4882a593Smuzhiyun DESC92C_RATEMCS7 = 0x13, 136*4882a593Smuzhiyun DESC92C_RATEMCS8 = 0x14, 137*4882a593Smuzhiyun DESC92C_RATEMCS9 = 0x15, 138*4882a593Smuzhiyun DESC92C_RATEMCS10 = 0x16, 139*4882a593Smuzhiyun DESC92C_RATEMCS11 = 0x17, 140*4882a593Smuzhiyun DESC92C_RATEMCS12 = 0x18, 141*4882a593Smuzhiyun DESC92C_RATEMCS13 = 0x19, 142*4882a593Smuzhiyun DESC92C_RATEMCS14 = 0x1a, 143*4882a593Smuzhiyun DESC92C_RATEMCS15 = 0x1b, 144*4882a593Smuzhiyun DESC92C_RATEMCS15_SG = 0x1c, 145*4882a593Smuzhiyun DESC92C_RATEMCS32 = 0x20, 146*4882a593Smuzhiyun }; 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun struct phy_sts_cck_8723e_t { 149*4882a593Smuzhiyun u8 adc_pwdb_X[4]; 150*4882a593Smuzhiyun u8 sq_rpt; 151*4882a593Smuzhiyun u8 cck_agc_rpt; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun struct h2c_cmd_8723e { 155*4882a593Smuzhiyun u8 element_id; 156*4882a593Smuzhiyun u32 cmd_len; 157*4882a593Smuzhiyun u8 *p_cmdbuffer; 158*4882a593Smuzhiyun }; 159*4882a593Smuzhiyun 160*4882a593Smuzhiyun #endif 161