/* **************************************************** */ /*! @file MN_DMD_Driver.h @brief Panasonic Demodulator Driver @author R.Mori @date 2011/6/30 @param (c) Panasonic */ /* **************************************************** */ #ifndef MN_DMD_DRIVER_H #define MN_DMD_DRIVER_H //#ifdef __cplusplus //extern "C" { //#endif /* **************************************************** */ /* types */ /* **************************************************** */ #include "MN_DMD_types.h" /* **************************************************** */ /* Defines */ /* **************************************************** */ #define DMD_INFORMATION_MAX 512 #define DMD_INFO_VALUE_MAX 32 /* DEMOD type setting */ //< DEMOD_TYPE > #define DMD_TYPE_MN88471 (1) //same as Chipid #define DMD_TYPE_MN88472 (2) //same as Chipid #define DMD_TYPE_MN88473 (3) //same as Chipid //< TUNER_I2C_MODE > #define TUNER_CONTROL_BY_SOC (1) #define TUNER_CONTROL_BY_DEMOD (2) /* Tuner I2C controlled by Demod, Demod's communication method */ //< DEMOD_CONTROL_TUNER_I2C_MODE > #define TCB_I2C_FORMAT_REPEAT_MODE (1)// default, SoC need write bytes to certain register of demod, to communicate with Tuner indirectly #define TCB_I2C_FORMAT_BYPASS_MODE (2)// only valid for MN88473. demod is like door, open or close, when set it open, SoC can communicate with Tuner directly. /* Tuner type setting */ //< TUNER_TYPE> #define MXL603 (1) #define SI2148 (2) #define NMI120 (3) #define NXP18250B (4) #define RDA5880P (5) #define MXL301 (6) #define NXP18273 (7) /* --- XTAL Freq. of DMD--- [Need adjust DMD register for different XTAL and IF]*/ // #define DMD_XTAL20480KHZ_IF5MHZ 1 #define DMD_XTAL24000KHZ_IF5MHZ 2 #define DMD_XTAL20500KHZ_IF5MHZ 3 #define DMD_XTAL25000KHZ_IF5MHZ 4 //20131220, added CONFIG for MN88473 /* **************************************************** */ /* DMD Enums */ /* **************************************************** */ /*! SYSTEM Enum */ typedef enum _DMD_SYSTEM_t{ DMD_E_ISDBT=0, DMD_E_ISDBS, DMD_E_DVBT, DMD_E_DVBT2, DMD_E_DVBC, DMD_E_DVBC2, DMD_E_ATSC, DMD_E_QAMB_64QAM, DMD_E_QAMB_256QAM, DMD_E_QAMC_64QAM, DMD_E_QAMC_256QAM, DMD_E_ISDBT_BRAZIL, DMD_E_ANALOG, DMD_E_NTSC_M_BTSC, DMD_E_PAL_M_BTSC, DMD_E_PAL_N_BTSC, DMD_E_PAL_B_G_NICAM, DMD_E_PAL_I_NiCAM, DMD_E_PAL_D_NiCAM, DMD_E_PAL_B_G_A2, DMD_E_SECAM_L_NiCAM, DMD_E_SECAM_L1_NiCAM, DMD_E_SECAM_D_K_A2, DMD_E_SECAM_BG_NICAM, DMD_E_END_OF_SYSTEM, DMD_E_NOT_DEFINED } DMD_SYSTEM_t; /* RF Frequency Unit */ typedef enum _DMD_FREQ_UNIT_t { DMD_E_MHZ, DMD_E_KHZ, DMD_E_HZ } DMD_FREQ_UNIT_t; /*! Lock Status */ typedef enum _DMD_LOCK_STATUS_t{ DMD_E_LOCKED = 0, DMD_E_LOCK_NOSIGNAL, DMD_E_LOCK_NOSYNC, DMD_E_LOCK_ERROR } DMD_LOCK_STATUS_t; /*! Return Value for API Functions */ typedef enum _DMD_ERROR_t{ DMD_E_OK = 0, DMD_E_ERROR = 1 } DMD_ERROR_t; /*! BAND WIDTH */ typedef enum _DMD_BANDWIDTH_t{ DMD_E_BW_NOT_SPECIFIED, DMD_E_BW_6MHZ, DMD_E_BW_7MHZ, DMD_E_BW_8MHZ, DMD_E_BW_5MHZ, DMD_E_BW_1_7MHZ, DMD_E_BW_END_OF_BW } DMD_BANDWIDTH_t; /* '11/08/29 : OKAMOTO Select TS output. */ typedef enum _DMD_TSOUT{ DMD_E_TSOUT_PARALLEL_FIXED_CLOCK = 0, //DMD_E_TSOUT_PARALLEL_VARIABLE_CLOCK, DMD_E_TSOUT_SERIAL_VARIABLE_CLOCK } DMD_TSOUT; typedef enum _DMD_ECHO_PERFORMANCE_SET{ DMD_E_ENHANCE_MINUS_ECHO_DELAY_DEFAULT = 0, //field test pass result DMD_E_ENHANCE_MINUS_ECHO_DELAY_NO_SIDEEFFECT, //Lab test. enhance MINUS echo dalay performance, no side effect DMD_E_ENHANCE_MINUS_ECHO_DELAY_HAS_SIDEEFFECT //Lab test. enhance MINUS echo dalay performance, has side effect on CCI(NTSC interface) } DMD_ECHO_PERFORMANCE_SET; /* **************************************************** */ /* DMD Structures */ /* **************************************************** */ /*! DMD Parameter Sturcture */ #if 0 DMD_PARAMETER{ DMD_u32_t devid; //!