Home | History | Annotate | Download | only in Export_Inc
      1 /****************************************************************************
      2 **+-----------------------------------------------------------------------+**
      3 **|                                                                       |**
      4 **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved.      |**
      5 **| All rights reserved.                                                  |**
      6 **|                                                                       |**
      7 **| Redistribution and use in source and binary forms, with or without    |**
      8 **| modification, are permitted provided that the following conditions    |**
      9 **| are met:                                                              |**
     10 **|                                                                       |**
     11 **|  * Redistributions of source code must retain the above copyright     |**
     12 **|    notice, this list of conditions and the following disclaimer.      |**
     13 **|  * Redistributions in binary form must reproduce the above copyright  |**
     14 **|    notice, this list of conditions and the following disclaimer in    |**
     15 **|    the documentation and/or other materials provided with the         |**
     16 **|    distribution.                                                      |**
     17 **|  * Neither the name Texas Instruments nor the names of its            |**
     18 **|    contributors may be used to endorse or promote products derived    |**
     19 **|    from this software without specific prior written permission.      |**
     20 **|                                                                       |**
     21 **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |**
     22 **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |**
     23 **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
     24 **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |**
     25 **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
     26 **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |**
     27 **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
     28 **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
     29 **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |**
     30 **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
     31 **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |**
     32 **|                                                                       |**
     33 **+-----------------------------------------------------------------------+**
     34 ****************************************************************************/
     35 
     36 /****************************************************************************
     37  *
     38  *   MODULE:  whalBus_Api.h
     39  *   PURPOSE: Bus access component API
     40  *
     41  ****************************************************************************/
     42 
     43 #ifndef _WHAL_BUS_API_H
     44 #define _WHAL_BUS_API_H
     45 
     46 #include "whalCtrl_api.h"
     47 #include "whalCommon.h"
     48 #include "whalHwDefs.h"
     49 #include "whalBus_Defs.h"
     50 #include "memMngrEx.h"
     51 #include "commonTypes.h"
     52 
     53 /*
     54  * --------------------------------------------------------------
     55  *                  Creation/Configuration API
     56  * --------------------------------------------------------------
     57  */
     58 TI_HANDLE   whalBus_Create  (TI_HANDLE hOs);
     59 int         whalBus_Destroy (TI_HANDLE hWhalBus);
     60 TI_STATUS   whalBus_Config  (TI_HANDLE hWhalBus,
     61                              TI_HANDLE hWhalCtrl,
     62                              UINT8     AccessMode,
     63                              UINT32    RegBaseAddr,
     64                              UINT32    MemBaseAddr,
     65                              TI_HANDLE hReport,
     66                              TI_HANDLE hMemMgr,
     67                              fnotify_t fCb,
     68                              TI_HANDLE hCb);
     69 TI_HANDLE   whalBus_GetTnentwifHandle (TI_HANDLE hWhalBus);
     70 int         whalBus_ExitFromInitMode  (TI_HANDLE hWhalBus);
     71 int         whalBus_ReConfig          (TI_HANDLE hWhalBus);
     72 
     73 /*
     74  * --------------------------------------------------------------
     75  *                  Registers/Memory access API
     76  * --------------------------------------------------------------
     77  */
     78 UINT32  whalBus_MacRegRead       (TI_HANDLE hWhalBus, UINT32 RegAddr);
     79 void    whalBus_MacRegWrite      (TI_HANDLE hWhalBus, UINT32 RegAddr, UINT32 Val);
     80 void    whalBus_PhyRegWrite      (TI_HANDLE hWhalBus, UINT32 PhyRegAddr, UINT32 DataVal);
     81 UINT32  whalBus_PhyRegRead       (TI_HANDLE hWhalBus, UINT32 PhyRegAddr);
     82 void    whalBus_MemWrite         (TI_HANDLE hWhalBus, UINT32 Addr, char *data, int Len);
     83 void    whalBus_MemRead          (TI_HANDLE hWhalBus, UINT32 Addr, char *data, int Len);
     84 
     85 /*
     86  * --------------------------------------------------------------
     87  *                  Firmware control API
     88  * --------------------------------------------------------------
     89  */
     90 typedef struct
     91 {
     92     UINT32  radioType;
     93     UINT8   MacClock;
     94     UINT8   ArmClock;
     95     BOOL    FirmwareDebug;
     96     UINT32  minorE2Ver;
     97     UINT32  majorE2Ver;
     98     UINT32  bugfixE2Ver;
     99 } BootAttr_T;
    100 
    101 
    102 TI_STATUS  whalBus_FwCtrl_Boot     (TI_HANDLE hWhalBus, TI_HANDLE hHwCtrl, BootAttr_T *pBootAttr);
    103 int        whalBus_FwCtrl_Reset    (TI_HANDLE hWhalBus);
    104 int        whalBus_FwCtrl_isCardIn (TI_HANDLE hWhalBus);
    105 void       whalBus_FwCtrl_Halt     (TI_HANDLE hWhalBus);
    106 UINT32     whalBus_FwCtrl_GetRadioStandByState
    107                                    (TI_HANDLE hWhalBus);
    108 
    109 /*
    110  * --------------------------------------------------------------
    111  *                  Interrupt handler API
    112  * --------------------------------------------------------------
    113  */
    114 
    115 /*  states */
    116 typedef enum
    117 {
    118     STATE_INIT          = 0,
    119     STATE_DPC              ,
    120     STATE_OPERATIONAL      ,
    121     STATE_WAIT_FOR_DPC      ,
    122 }whalHwIntr_states;
    123 
    124 /* Callback template */
    125 typedef void (*whal_hwIntrCB)(void *pObj);
    126 
    127 /*Power Ctrl Callback template */
    128 #define PWRCTRL_CB_TYPE_INTR_WAS_ISSUE  0
    129 #define PWRCTRL_CB_TYPE_INTR_STARTED    1
    130 typedef void (*whal_PwrCtrlCB)(TI_HANDLE pObj, int CbType);
    131 
    132 
    133 void whalBus_TNETWIF_HandleBusTxn_Complete  (TI_HANDLE hWhalBus);
    134 
    135 /*
    136  * --------------------------------------------------------------
    137  *                  TNETWIF API
    138  * --------------------------------------------------------------
    139  */
    140 int whalBus_TNETWIF_ElpCtrl_SetMode(TI_HANDLE hWhalBus, elpCtrl_Mode_e mode);
    141 
    142 /*
    143  * --------------------------------------------------------------
    144  *                  Debug API
    145  * --------------------------------------------------------------
    146  */
    147 void    whalBus_performHealthMonitorTest(TI_HANDLE hWhalBus, UINT32 TEST);
    148 /*
    149  * General
    150  */
    151 
    152 #define BUS_PRINT_ALL           1
    153 
    154 /*
    155  * Control
    156  */
    157 #define BUS_PRINT_MBOX_INFO     10
    158 #define BUS_PRINT_INTR_INFO     11
    159 #define BUS_PRINT_ACCESS_INFO   12
    160 #define BUS_PRINT_EEPROM        13
    161 #define BUS_PRINT_TRACE_A_B     14
    162 #define BUS_PRINT_ARBITER       15
    163 
    164 /*
    165  * Tx
    166  */
    167 #define BUS_PRINT_TX_INFO       20
    168 #define BUS_PRINT_TX            21
    169 #define BUS_PRINT_TX_QUEUE      22
    170 
    171 /*
    172  * Rx
    173  */
    174 #define BUS_PRINT_RX_INFO       30
    175 #define BUS_CLEAR_RX_INFO       31
    176 
    177 /*
    178  * Debug
    179  */
    180 #define BUS_PRINT_REG_DUMP      40
    181 #define BUS_PRINT_RX_REGS       41
    182 #define BUS_PRINT_TX_REGS       42
    183 #define BUS_PRINT_SCR_PAD_REGS  43
    184 #define BUS_PRINT_LIST_REGS     44
    185 #define BUS_PRINT_MEM           45
    186 
    187 void    whalBus_PrintInfo(TI_HANDLE hWhalBus, UINT32 funcType, void *pParam);
    188 /***************************************************************************************************
    189 ************************************* New Hal ******************************************************
    190 ***************************************************************************************************/
    191 
    192 #endif /* _WHAL_BUS_API_H */
    193