linux/drivers/staging/rtl8723bs/include/hal_phy.h
<<
>>
Prefs
   1/******************************************************************************
   2 *
   3 * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved.
   4 *
   5 * This program is free software; you can redistribute it and/or modify it
   6 * under the terms of version 2 of the GNU General Public License as
   7 * published by the Free Software Foundation.
   8 *
   9 * This program is distributed in the hope that it will be useful, but WITHOUT
  10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
  12 * more details.
  13 *
  14 ******************************************************************************/
  15#ifndef __HAL_PHY_H__
  16#define __HAL_PHY_H__
  17
  18
  19#if DISABLE_BB_RF
  20#define HAL_FW_ENABLE                           0
  21#define HAL_MAC_ENABLE                  0
  22#define HAL_BB_ENABLE                           0
  23#define HAL_RF_ENABLE                           0
  24#else /*  FPGA_PHY and ASIC */
  25#define         HAL_FW_ENABLE                           1
  26#define HAL_MAC_ENABLE                  1
  27#define HAL_BB_ENABLE                           1
  28#define HAL_RF_ENABLE                           1
  29#endif
  30
  31#define RF6052_MAX_TX_PWR                       0x3F
  32#define RF6052_MAX_REG_88E                      0xFF
  33#define RF6052_MAX_REG_92C                      0x7F
  34
  35#define RF6052_MAX_REG  \
  36                (RF6052_MAX_REG_88E > RF6052_MAX_REG_92C) ? RF6052_MAX_REG_88E: RF6052_MAX_REG_92C
  37
  38#define GET_RF6052_REAL_MAX_REG(_Adapter)       RF6052_MAX_REG_92C
  39
  40#define RF6052_MAX_PATH                         2
  41
  42/*  */
  43/*  Antenna detection method, i.e., using single tone detection or RSSI reported from each antenna detected. */
  44/*  Added by Roger, 2013.05.22. */
  45/*  */
  46#define ANT_DETECT_BY_SINGLE_TONE       BIT0
  47#define ANT_DETECT_BY_RSSI                              BIT1
  48#define IS_ANT_DETECT_SUPPORT_SINGLE_TONE(__Adapter)            ((GET_HAL_DATA(__Adapter)->AntDetection) & ANT_DETECT_BY_SINGLE_TONE)
  49#define IS_ANT_DETECT_SUPPORT_RSSI(__Adapter)           ((GET_HAL_DATA(__Adapter)->AntDetection) & ANT_DETECT_BY_RSSI)
  50
  51
  52/*--------------------------Define Parameters-------------------------------*/
  53enum BAND_TYPE {
  54        BAND_ON_2_4G = 0,
  55        BAND_ON_5G,
  56        BAND_ON_BOTH,
  57        BANDMAX
  58};
  59
  60enum RF_TYPE {
  61        RF_TYPE_MIN = 0,        /*  0 */
  62        RF_8225 = 1,            /*  1 11b/g RF for verification only */
  63        RF_8256 = 2,            /*  2 11b/g/n */
  64        RF_8258 = 3,            /*  3 11a/b/g/n RF */
  65        RF_6052 = 4,            /*  4 11b/g/n RF */
  66        RF_PSEUDO_11N = 5,      /*  5, It is a temporality RF. */
  67        RF_TYPE_MAX
  68};
  69
  70enum RF_PATH {
  71        RF_PATH_A = 0,
  72        RF_PATH_B,
  73        RF_PATH_C,
  74        RF_PATH_D
  75};
  76
  77#define TX_1S                   0
  78#define TX_2S                   1
  79#define TX_3S                   2
  80#define TX_4S                   3
  81
  82#define RF_PATH_MAX_92C_88E             2
  83#define RF_PATH_MAX_90_8812             4       /* Max RF number 90 support */
  84
  85enum ANTENNA_PATH {
  86       ANTENNA_NONE     = 0,
  87        ANTENNA_D       = 1,
  88        ANTENNA_C       = 2,
  89        ANTENNA_CD      = 3,
  90        ANTENNA_B       = 4,
  91        ANTENNA_BD      = 5,
  92        ANTENNA_BC      = 6,
  93        ANTENNA_BCD     = 7,
  94        ANTENNA_A       = 8,
  95        ANTENNA_AD      = 9,
  96        ANTENNA_AC      = 10,
  97        ANTENNA_ACD     = 11,
  98        ANTENNA_AB      = 12,
  99        ANTENNA_ABD     = 13,
 100        ANTENNA_ABC     = 14,
 101        ANTENNA_ABCD    = 15
 102};
 103
 104enum RF_CONTENT {
 105        radioa_txt = 0x1000,
 106        radiob_txt = 0x1001,
 107        radioc_txt = 0x1002,
 108        radiod_txt = 0x1003
 109};
 110
 111enum BaseBand_Config_Type {
 112        BaseBand_Config_PHY_REG = 0,                    /* Radio Path A */
 113        BaseBand_Config_AGC_TAB = 1,                    /* Radio Path B */
 114        BaseBand_Config_AGC_TAB_2G = 2,
 115        BaseBand_Config_AGC_TAB_5G = 3,
 116        BaseBand_Config_PHY_REG_PG
 117};
 118
 119enum HW_BLOCK {
 120        HW_BLOCK_MAC = 0,
 121        HW_BLOCK_PHY0 = 1,
 122        HW_BLOCK_PHY1 = 2,
 123        HW_BLOCK_RF = 3,
 124        HW_BLOCK_MAXIMUM = 4, /*  Never use this */
 125};
 126
 127enum WIRELESS_MODE {
 128        WIRELESS_MODE_UNKNOWN = 0x00,
 129        WIRELESS_MODE_A = 0x01,
 130        WIRELESS_MODE_B = 0x02,
 131        WIRELESS_MODE_G = 0x04,
 132        WIRELESS_MODE_AUTO = 0x08,
 133        WIRELESS_MODE_N_24G = 0x10,
 134        WIRELESS_MODE_N_5G = 0x20,
 135        WIRELESS_MODE_AC_5G = 0x40,
 136        WIRELESS_MODE_AC_24G  = 0x80,
 137        WIRELESS_MODE_AC_ONLY  = 0x100,
 138};
 139
 140enum SwChnlCmdID {
 141        CmdID_End,
 142        CmdID_SetTxPowerLevel,
 143        CmdID_BBRegWrite10,
 144        CmdID_WritePortUlong,
 145        CmdID_WritePortUshort,
 146        CmdID_WritePortUchar,
 147        CmdID_RF_WriteReg,
 148};
 149
 150struct SwChnlCmd {
 151        enum SwChnlCmdID        CmdID;
 152        u32                     Para1;
 153        u32                     Para2;
 154        u32                     msDelay;
 155};
 156
 157struct R_ANTENNA_SELECT_OFDM {
 158#ifdef __LITTLE_ENDIAN
 159        u32             r_tx_antenna:4;
 160        u32             r_ant_l:4;
 161        u32             r_ant_non_ht:4;
 162        u32             r_ant_ht1:4;
 163        u32             r_ant_ht2:4;
 164        u32             r_ant_ht_s1:4;
 165        u32             r_ant_non_ht_s1:4;
 166        u32             OFDM_TXSC:2;
 167        u32             Reserved:2;
 168#else
 169        u32             Reserved:2;
 170        u32             OFDM_TXSC:2;
 171        u32             r_ant_non_ht_s1:4;
 172        u32             r_ant_ht_s1:4;
 173        u32             r_ant_ht2:4;
 174        u32             r_ant_ht1:4;
 175        u32             r_ant_non_ht:4;
 176        u32             r_ant_l:4;
 177        u32             r_tx_antenna:4;
 178#endif
 179};
 180
 181/*--------------------------Exported Function prototype---------------------*/
 182
 183#endif /* __HAL_COMMON_H__ */
 184