linux/drivers/staging/rtl8723au/include/HalVerDef.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_VERSION_DEF_H__
  16#define __HAL_VERSION_DEF_H__
  17
  18enum hal_ic_type {
  19        CHIP_8192S              =       0,
  20        CHIP_8188C      =       1,
  21        CHIP_8192C      =       2,
  22        CHIP_8192D      =       3,
  23        CHIP_8723A      =       4,
  24        CHIP_8188E      =       5,
  25        CHIP_8881A      =       6,
  26        CHIP_8812A      =       7,
  27        CHIP_8821A      =       8,
  28        CHIP_8723B      =       9,
  29        CHIP_8192E              =       10,
  30};
  31
  32enum hal_chip_type {
  33        TEST_CHIP               =       0,
  34        NORMAL_CHIP             =       1,
  35        FPGA                    =       2,
  36};
  37
  38enum hal_cut_version {
  39        A_CUT_VERSION           =       0,
  40        B_CUT_VERSION           =       1,
  41        C_CUT_VERSION           =       2,
  42        D_CUT_VERSION           =       3,
  43        E_CUT_VERSION           =       4,
  44        F_CUT_VERSION           =       5,
  45        G_CUT_VERSION           =       6,
  46};
  47
  48/*  HAL_Manufacturer */
  49enum hal_vendor {
  50        CHIP_VENDOR_TSMC        =       0,
  51        CHIP_VENDOR_UMC         =       1,
  52};
  53
  54struct hal_version {
  55        enum hal_ic_type        ICType;
  56        enum hal_chip_type      ChipType;
  57        enum hal_cut_version    CUTVersion;
  58        enum hal_vendor         VendorType;
  59        u8                      ROMVer;
  60};
  61
  62/*  Get element */
  63#define GET_CVID_IC_TYPE(version)       ((version).ICType)
  64#define GET_CVID_CHIP_TYPE(version)     ((version).ChipType)
  65#define GET_CVID_MANUFACTUER(version)   ((version).VendorType)
  66#define GET_CVID_CUT_VERSION(version)   ((version).CUTVersion)
  67#define GET_CVID_ROM_VERSION(version)   (((version).ROMVer) & ROM_VERSION_MASK)
  68
  69/* Common Macro. -- */
  70
  71#define IS_81XXC(version)                       \
  72        (((GET_CVID_IC_TYPE(version) == CHIP_8192C) ||  \
  73         (GET_CVID_IC_TYPE(version) == CHIP_8188C)) ? true : false)
  74#define IS_8723_SERIES(version)                 \
  75        ((GET_CVID_IC_TYPE(version) == CHIP_8723A) ? true : false)
  76
  77#define IS_TEST_CHIP(version)                   \
  78        ((GET_CVID_CHIP_TYPE(version) == TEST_CHIP) ? true : false)
  79#define IS_NORMAL_CHIP(version)                 \
  80        ((GET_CVID_CHIP_TYPE(version) == NORMAL_CHIP) ? true : false)
  81
  82#define IS_A_CUT(version)                       \
  83        ((GET_CVID_CUT_VERSION(version) == A_CUT_VERSION) ? true : false)
  84#define IS_B_CUT(version)                       \
  85        ((GET_CVID_CUT_VERSION(version) == B_CUT_VERSION) ? true : false)
  86#define IS_C_CUT(version)                       \
  87        ((GET_CVID_CUT_VERSION(version) == C_CUT_VERSION) ? true : false)
  88#define IS_D_CUT(version)                       \
  89        ((GET_CVID_CUT_VERSION(version) == D_CUT_VERSION) ? true : false)
  90#define IS_E_CUT(version)                       \
  91        ((GET_CVID_CUT_VERSION(version) == E_CUT_VERSION) ? true : false)
  92
  93#define IS_CHIP_VENDOR_TSMC(version)            \
  94        ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_TSMC) ? true : false)
  95#define IS_CHIP_VENDOR_UMC(version)             \
  96        ((GET_CVID_MANUFACTUER(version) == CHIP_VENDOR_UMC) ? true : false)
  97
  98/* Chip version Macro. -- */
  99
 100#define IS_81xxC_VENDOR_UMC_A_CUT(version)                      \
 101        (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ?       \
 102        (IS_A_CUT(version) ? true : false) : false) : false)
 103#define IS_81xxC_VENDOR_UMC_B_CUT(version)                      \
 104        (IS_81XXC(version) ? (IS_CHIP_VENDOR_UMC(version) ?     \
 105         (IS_B_CUT(version) ? true : false) : false): false)
 106#define IS_81xxC_VENDOR_UMC_C_CUT(version)                      \
 107        (IS_81XXC(version)?(IS_CHIP_VENDOR_UMC(version) ?       \
 108        (IS_C_CUT(version) ? true : false) : false) : false)
 109#define IS_8723A_A_CUT(version)                         \
 110        ((IS_8723_SERIES(version)) ? (IS_A_CUT(version) ? true : false) : false)
 111#define IS_8723A_B_CUT(version)                                 \
 112        ((IS_8723_SERIES(version)) ? (IS_B_CUT(version) ? true : false) : false)
 113
 114#endif
 115