/***************************************************************************** ** ** 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