Home | History | Annotate | Download | only in FW_Transfer
      1 /*
      2  * CmdMBox.h
      3  *
      4  * Copyright(c) 1998 - 2010 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 /** \file CmdMBox.h
     36  *  \brief CmdMbox internal defenitions
     37  *
     38  *  \see CmdMBox.c
     39  */
     40 
     41 #ifndef _CMDMBOX_H_
     42 #define _CMDMBOX_H_
     43 
     44 #include "TwIf.h"
     45 
     46 /*****************************************************************************
     47  **          Defines                                                        **
     48  *****************************************************************************/
     49  /* wait for a Mail box command to complete, ms */
     50 #define CMDMBOX_WAIT_TIMEOUT            15000
     51 #define CMDMBOX_HEADER_LEN              4
     52 #define MAX_CMD_MBOX_CONSECUTIVE_TXN    5
     53 
     54 
     55 
     56 typedef struct
     57 {
     58     TTxnStruct          tTxnStruct;
     59     Command_t           tCmdMbox;
     60 }TCmdTxn;
     61 
     62 typedef struct
     63 {
     64     TTxnStruct          tTxnStruct;
     65     TI_UINT32           uRegister;
     66 }TRegTxn;
     67 
     68 
     69 /*****************************************************************************
     70  **         Structures                                                      **
     71  *****************************************************************************/
     72 
     73 /** \struct TCmdMbox
     74  * \brief CmdMbox structure
     75  *
     76  * \par Description
     77  *
     78  * \sa
     79  */
     80 typedef struct
     81 {
     82     /* handles */
     83     TI_HANDLE           hOs;
     84     TI_HANDLE           hReport;
     85     TI_HANDLE           hTwIf;
     86     TI_HANDLE           hCmdQueue;
     87     TI_HANDLE           hCmdMboxTimer;
     88     fnotify_t           fCb;
     89     TI_HANDLE           hCb;
     90     TCmdMboxErrorCb     fErrorCb;
     91 
     92     /* HW params */
     93     /* use a struct to read buffers from the bus - used for extra bytes reserving */
     94 
     95     TCmdTxn             aCmdTxn[2];
     96     TRegTxn             aRegTxn[2];
     97 
     98     /* Holds the module state */
     99     TI_BOOL             bCmdInProgress;
    100     TI_UINT32           uFwAddr;
    101     TI_UINT32           uWriteLen;
    102     TI_UINT32           uReadLen;
    103 
    104 } TCmdMbox;
    105 
    106 #endif
    107 
    108 
    109