diff options
Diffstat (limited to 'api/mt2260_userdef.h')
-rw-r--r-- | api/mt2260_userdef.h | 250 |
1 files changed, 250 insertions, 0 deletions
diff --git a/api/mt2260_userdef.h b/api/mt2260_userdef.h new file mode 100644 index 0000000..1a1029a --- /dev/null +++ b/api/mt2260_userdef.h @@ -0,0 +1,250 @@ +/***************************************************************************** +** +** Name: mt_userdef.h +** +** Description: User-defined data types needed by MicroTuner source code. +** +** Customers must provide the code for these functions +** in the file "mt_userdef.c". +** +** Customers must verify that the typedef's in the +** "Data Types" section are correct for their platform. +** +** Functions +** Requiring +** Implementation: MT_WriteSub +** MT_ReadSub +** MT_Sleep +** +** References: None +** +** Exports: None +** +** CVS ID: $Id: mt_userdef.h,v 1.1 2006/05/08 22:05:01 software Exp $ +** CVS Source: $Source: /export/home/cvsroot/web05/html/software/tuners/MT2260/MT2260B0/mt_userdef.h,v $ +** +** Revision History: +** +** SCR Date Author Description +** ------------------------------------------------------------------------- +** N/A 03-25-2004 DAD Original +** 082 12-06-2004 JWS Multi-tuner support - requires MTxxxx_CNT +** declarations +** +*****************************************************************************/ +#if !defined( __MT_USERDEF_H ) +#define __MT_USERDEF_H + +#include "mt_errordef.h" +#include "standard.h" + +#if defined( __cplusplus ) +extern "C" /* Use "C" external linkage */ +{ +#endif + +/* +** Data Types +*/ +typedef unsigned char U8Data; /* type corresponds to 8 bits */ +typedef unsigned long UData_t; /* type must be at least 32 bits */ +typedef int SData_t; /* type must be at least 32 bits */ +typedef void * Handle_t; /* memory pointer type */ +typedef double FData_t; /* floating point data type */ + +typedef struct { + Byte chip; + Demodulator* demodulator; +} UserData, *PUserData; + +#define AF901X_CAN_TUNER 0x1 +#define AF901X_SILICON_TUNER 0x2 + +#define MAX_UDATA (4294967295) /* max value storable in UData_t */ + +/* +** Define an MTxxxx_CNT macro for each type of tuner that will be built +** into your application (e.g., MT2121, MT2060). MT_TUNER_CNT +** must be set to the SUM of all of the MTxxxx_CNT macros. +** +** #define MT2050_CNT (1) +** #define MT2060_CNT (2) +** #define MT2111_CNT (1) +** #define MT2121_CNT (3) +*/ + +#define MT2260_CNT (2) +#if !defined( MT_TUNER_CNT ) +#define MT_TUNER_CNT (2) /* total num of MicroTuner tuners */ +#endif + +/* +** Optional user-defined Error/Info Codes (examples below) +** +** This is the area where you can define user-specific error/info return +** codes to be returned by any of the functions you are responsible for +** writing such as MT_WriteSub() and MT_ReadSub. There are four bits +** available in the status field for your use. When set, these +** bits will be returned in the status word returned by any tuner driver +** call. If you OR in the MT_ERROR bit as well, the tuner driver code +** will treat the code as an error. +** +** The following are a few examples of errors you can provide. +** +** Example 1: +** You might check to see the hUserData handle is correct and issue +** MY_USERDATA_INVALID which would be defined like this: +** +** #define MY_USERDATA_INVALID (MT_USER_ERROR | MT_USER_DEFINED1) +** +** +** Example 2: +** You might be able to provide more descriptive two-wire bus errors: +** +** #define NO_ACK (MT_USER_ERROR | MT_USER_DEFINED1) +** #define NO_NACK (MT_USER_ERROR | MT_USER_DEFINED2) +** #define BUS_BUSY (MT_USER_ERROR | MT_USER_DEFINED3) +** +** +** Example 3: +** You can also provide information (non-error) feedback: +** +** #define MY_INFO_1 (MT_USER_DEFINED1) +** +** +** Example 4: +** You can combine the fields together to make a multi-bit field. +** This one can provide the tuner number based off of the addr +** passed to MT_WriteSub or MT_ReadSub. It assumes that +** MT_USER_DEFINED4 through MT_USER_DEFINED1 are contiguously. If +** TUNER_NUM were OR'ed into the status word on an error, you could +** use this to identify which tuner had the problem (and whether it +** was during a read or write operation). +** +** #define TUNER_NUM ((addr & 0x07) >> 1) << MT_USER_SHIFT +** +*/ + +/***************************************************************************** +** +** Name: MT_WriteSub +** +** Description: Write values to device using a two-wire serial bus. +** +** Parameters: hUserData - User-specific I/O parameter that was +** passed to tuner's Open function. +** addr - device serial bus address (value passed +** as parameter to MTxxxx_Open) +** subAddress - serial bus sub-address (Register Address) +** pData - pointer to the Data to be written to the +** device +** cnt - number of bytes/registers to be written +** +** Returns: status: +** MT_OK - No errors +** MT_COMM_ERR - Serial bus communications error +** user-defined +** +** Notes: This is a callback function that is called from the +** the tuning algorithm. You MUST provide code for this +** function to write data using the tuner's 2-wire serial +** bus. +** +** The hUserData parameter is a user-specific argument. +** If additional arguments are needed for the user's +** serial bus read/write functions, this argument can be +** used to supply the necessary information. +** The hUserData parameter is initialized in the tuner's Open +** function. +** +** Revision History: +** +** SCR Date Author Description +** ------------------------------------------------------------------------- +** N/A 03-25-2004 DAD Original +** +*****************************************************************************/ +UData_t MT2260_WriteSub(Handle_t hUserData, + UData_t addr, + U8Data subAddress, + U8Data *pData, + UData_t cnt); + + +/***************************************************************************** +** +** Name: MT_ReadSub +** +** Description: Read values from device using a two-wire serial bus. +** +** Parameters: hUserData - User-specific I/O parameter that was +** passed to tuner's Open function. +** addr - device serial bus address (value passed +** as parameter to MTxxxx_Open) +** subAddress - serial bus sub-address (Register Address) +** pData - pointer to the Data to be written to the +** device +** cnt - number of bytes/registers to be written +** +** Returns: status: +** MT_OK - No errors +** MT_COMM_ERR - Serial bus communications error +** user-defined +** +** Notes: This is a callback function that is called from the +** the tuning algorithm. You MUST provide code for this +** function to read data using the tuner's 2-wire serial +** bus. +** +** The hUserData parameter is a user-specific argument. +** If additional arguments are needed for the user's +** serial bus read/write functions, this argument can be +** used to supply the necessary information. +** The hUserData parameter is initialized in the tuner's Open +** function. +** +** Revision History: +** +** SCR Date Author Description +** ------------------------------------------------------------------------- +** N/A 03-25-2004 DAD Original +** +*****************************************************************************/ +UData_t MT2260_ReadSub(Handle_t hUserData, + UData_t addr, + U8Data subAddress, + U8Data *pData, + UData_t cnt); + + +/***************************************************************************** +** +** Name: MT_Sleep +** +** Description: Delay execution for "nMinDelayTime" milliseconds +** +** Parameters: hUserData - User-specific I/O parameter that was +** passed to tuner's Open function. +** nMinDelayTime - Delay time in milliseconds +** +** Returns: None. +** +** Notes: This is a callback function that is called from the +** the tuning algorithm. You MUST provide code that +** blocks execution for the specified period of time. +** +** Revision History: +** +** SCR Date Author Description +** ------------------------------------------------------------------------- +** N/A 03-25-2004 DAD Original +** +*****************************************************************************/ +void MT2260_Sleep(Handle_t hUserData, + UData_t nMinDelayTime); + +#if defined( __cplusplus ) +} +#endif + +#endif
\ No newline at end of file |