⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 _saa7115.h

📁 DM642上用的TH8200采集芯片的配套驱动
💻 H
字号:
/********************************************************************************/
/* _saa7115.h file */
/********************************************************************************/
#ifndef __SAA7115_H
#define __SAA7115_H

#ifdef __cplusplus
extern "C" {
#endif

#include <saa7115.h>

#define _SAA7115_IIC_ADDR0 	     (0x42>>1) 
#define _SAA7115_IIC_ADDR1 	     (0x40>>1)

#define _SAA7115_TASKA              0 
#define _SAA7115_TASKB               1

typedef struct _SAA7115_Generics
{
	Uint8	chipVersion;
/* Increment Delay (0x01)           */
	Uns horIncDelay : 4;
	Uns gainHysteresis : 2;
	Uns whitePeakDisable : 1;
	Uns aosL2 : 1;
/* Analog Input Control 1 (0x02)    */
	Uns analogMuxMode : 4;
	Uns reg02Unused : 2;
	Uns amplifierType : 2;
/* Analog Input Control 2 (0x03)    */
	Uns aCh1GainMsb : 1;
	Uns aCh2GainMsb : 1;
	Uns agcControl : 1;
	Uns agcHold : 1;
	Uns colorPeakOff : 1;
	Uns agcDuringVBI : 1;
	Uns hLNRS : 1;
	Uns test : 1;
/* Analog Input Control 3 (0x04)    */
	Uint8 aCh1Gain;
/* Analog Input Control 4 (0x05)    */
	Uint8 aCh2Gain;
/* Horizontal Sync Start (0x06)     */
	Uint8 hSYNCStart;
/* Horizontal Sync Stop (0x07)      */
	Uint8 hSYNCStop;
/* Sync Control (0x08)              */
	Uns vertNoiseReduction : 2;
	Uns horPLLOpen : 1;
	Uns horTimeConstant : 2;
	Uns forceFieldFlag : 1;
	Uns fieldSelect : 1;
	Uns autoFieldDetect : 1;
/* Luminance Control (0x09)         */
	Uns lumaFilter : 4;
	Uns lumaBW : 1;
	Uns lumaDelay : 1;
	Uns yCombFilter : 1;
	Uns bypassYCombFilter : 1;
/* Luminance Brightness Adjustment (0x0A)  */
	Uint8 brightness;
/* Luminance Contrast Adjustment (0x0B)    */
	Uint8 contrast;
/* Chroma Saturation Adjustment (0x0C)     */
	Uint8 saturation;
/* Chroma Hue Control (0x0D)               */
	Uint8 hue;
/* Chroma Control 1 (0x0E)                 */
	Uns chromaCombFilter : 1;
	Uns autoChromaDetect : 1;
	Uns fastColorTimeConstant : 1;
	Uns disableChromaVertFilt : 1;
	Uns colorStandardDetect : 3;
	Uns clearDTO : 1;
/* Chroma Gain Control (0x0F)             */
	Uns chromaGain : 7;
	Uns autoChromaAGC : 1;
/* Chroma Control 2 (0x10)                */
	Uns lumaChromaBW : 3;
	Uns chromaBW : 1;
	Uns crOffsetAdjustment : 2;
	Uns cbOffsetAdjustment : 2;
/* Mode Delay Control (0x11)              */
	Uns lumaDelayCompensation : 3;
	Uns rts0Polarity : 1;
	Uns hSYNCDelay : 2;
	Uns rts1Polarity : 1;
	Uns colorOn : 1;
/* RT Signal Control (0x12)               */
	Uns rts0Output : 4;
	Uns rts1Output : 4;
/* RT/XPort Control (0x13)                */
	Uns ofts : 3;
	Uns fastHorSelect : 1;
	Uns xRVSSelect : 2;
	Uns hSYNCSelect : 1;
	Uns rtCEEnable : 1;
/* Analog/ADC (0x14)                      */
	Uns adcSampleDelay : 2;
	Uns auto1 : 1;
	Uns xtOutEnable : 1;
	Uns aOutSelect : 2;
	Uns agcUpdateType : 1;
	Uns saa7199Switch : 1;
/* VGATE Start (0x15)                     */
	Uint8 vGateStart;
/* VGATE Stop (0x16) */
	Uint8 vGateStop;
/* MISC/VGATE MSBs (0x17)                 */
	Uns vGateStartMsb : 1;
	Uns vGateStopMsb : 1;
	Uns altVGatePos : 1;
	Uns yLatency : 3;
	Uns llc2Enable : 1;
	Uns llcEnable : 1;	
/* Raw Data Gain (0x18)                  */
	Uint8 rawGain;
/* Raw Data Offset (0x19)                */
	Uint8 rawOffset;
/* Color Killer Thresholds (0x1A)        */
	Uns secamColorKiller : 4;
	Uns ntscColorKiller : 4;
/* MISC/TWCRDET (0x1B)                   */
	Uns fsqc : 1;
	Uns autoColorLimiter : 1;
	Uns reg1BAUnused : 2;
	Uns ofts3 : 1;
	Uns reg1BBUnused : 1;
	Uns tvDetectThreshold : 2;
/* Enhanced Comb Control 1 (0x1C)       */
	Uns combThreshold : 2;
	Uns medianFilterGain : 2;
	Uns vertDiffGain : 2;
	Uns horDiffGain : 2;
/* Enhanced Comb Control 2 (0x1D)       */
	Uns vertDiffThreshold : 2;
	Uns reg1DUnused : 6;
/* Status Byte Decoder 1 (0x1E)         */
	Uns colorStandard : 2;
	Uns whitePeakActive : 1;
	Uns limitGainBottom : 1;
	Uns limitGainTop : 1;
	Uns slowTimeConstant : 1;
	Uns hSYNCLock : 1;
	Uns fieldLength : 1;
/* Status Byte Decoder 2 (0x1F)         */
	Uns captureReady : 1;
	Uns copyProtection : 1;
	Uns colorStripe : 1;
	Uns burstType3 : 1;
	Uns stableTimebase : 1;
	Uns fieldID : 1;
	Uns hVLoop : 1;
	Uns interlaceDetect : 1;
/* Null Array (0x20) - (0x2F)           */
   	Uint8 nullArray1[16];
/* Audio Data (0x30) - (0x3F)           */
   	Uint8 audioData[16];
/* VBI Data Slicer (0x40) - (0x7F)      */
   	Uint8 vBISliceData[64];		
}_SAA7115_Generics;

typedef struct _SAA7115_Globals
{
/* Global Control (0x80)                */
	Uns iPortMode : 4;
	Uns taskAEnable : 1;
	Uns taskBEnable : 1;
	Uns reg80Unused : 1;
	Uns continuousFieldMode : 1;
/* Reserved (0x81)                      */
	Uns vEAV : 2;
	Uns fTime : 1;
	Uns reg81Unused : 5;
/* Unused (0x82)                        */
   	Uint8 reg82Unused;
/* Reserved (0x83)                      */
	Uns xPortEnable : 2;
	Uns xRDYType : 1;
	Uns reg83AUnused : 1;
	Uns xCLKSelect : 2;
	Uns reg83BUnused : 2;
/* I Port Signal Definitions (0x84)     */
	Uns igpHSelect : 2;
	Uns igpVSelect : 2;
	Uns igp1SelectLSBs : 2;
	Uns igp0SelectLSBs : 2;
/* I Port Signal Polarity (0x85)        */
	Uns idqPolarity : 1; 
	Uns iHSYNCPolarity : 1;
	Uns iVSYNCPolarity : 1;
	Uns igp0Polarity : 1;
	Uns Igp1Polarity : 1;
	Uns videoDataLimited : 1;
	Uns dataOutputType : 2;
/* I Port FIFO (0x86)                   */
	Uns faeFlagType : 2;
	Uns fafFlagType : 2;
	Uns igp0SelectMSB : 1;
	Uns igp1SelectMSB : 1;
	Uns iPortDataEnable : 1;
	Uns dataPackingMode : 1;
/* I Port Delay (0x87)                  */
	Uns iPortEnable : 2;
	Uns reg87Unused : 2;
	Uns iCLKControl : 2;
	Uns idqControl : 2;
/* Power Save Control (0x88)            */
	Uns decoderOperational : 1;
	Uns scalerOperational : 1;
	Uns reg88Unused : 1;
	Uns audioClockEnable : 1;
	Uns devProgControl : 1;
	Uns resetScaler : 1;
	Uns analogCh1Enable : 1;
	Uns AnalogCh2Enable : 1;
/* Null Array (0x89) - (0x8E)           */
	Uint8 nullArray1[6];
/* Scaler Status Information (0x8F)     */
	Uns scalerFIDOut : 1;
	Uns scalerFIDIn : 1;
	Uns errorFlag : 1;
	Uns devProgStatus : 1;
	Uns fifoOVFlag : 1;
	Uns fifoAFFlag : 1;
	Uns iTRIStatus : 1;
	Uns xTRIStatus : 1;
}_SAA7115_Globals;

typedef struct _SAA7115_Task
{
/* Task handling control (0x90) (0xC0)   */
	Uns eventTrigger : 2;
 	Uns repeatTask : 1;
	Uns fieldSkipType : 3;
	Uns outputFieldID : 1;
	Uns conlh : 1;
/* X Port Format (0x91) (0xC1)           */
	Uns yuvInputFormat : 1;
	Uns chromaPerLine : 2;
	Uns scalerDataContinuous : 1;
	Uns scalerInputSource : 2;
	Uns hldfv : 1;
	Uns conlv : 1;
/* X Port Input Ref (0x92) (0xC2)        */
	Uns xDQNotUsed : 1;
	Uns xDQPolarity : 1;
	Uns xRHEdgeType : 1;
	Uns xPortSyncVia656 : 1;
	Uns xRVEdgeType : 1;
	Uns xRVSignalType : 1;
	Uns xFieldIDType : 1;
	Uns xFieldEdgeType : 1;
/* I Port Format (0x93) (0xC3)           */
	Uns iPortDataFormat : 3;
	Uns leadingYLines : 2;
	Uns skipYLineFlag : 1;
	Uns ins80 : 1;
	Uns ccir656Enable : 1;
/* Window Sizes (0x94 - 0x9F) (0xC4 - 0xCF) */
	Uint16 xInputOffset;
	Uint16 xInputLength;
	Uint16 yInputOffset;
	Uint16 yInputLength;
	Uint16 xOutputLength;
	Uint16 yOutputLength;
/* Horizontal Prescaling (0xA0) (0xD0)   */
	Uint8 xPreScale;
/* Accumulation Length (0xA1) (0xD1)    */
	Uint8 xAccLength;
/* Prescaler DC Gain/FIR Prefilter Control (0xA2) (0xD2)*/
	Uns scalerDCGain : 3;
	Uns xACLWeighting : 1;
	Uns yPreFilterType : 2;
	Uns cxPreFilterType : 2;
/* Unused (0xA3)                        */
	Uint8 regA3Unused;
/* Luminance brightness (0xA4) (0xD4)   */
	Uint8 brightness;
/* Luminance contrast (0xA5) (0xD5)     */
	Uint8 contrast;
/* Luminance saturation (0xA6) (0xD6)   */
	Uint8 saturation;
/* Unused (0xA7)                        */
	Uint8 regA7Unused;
/* Horizontal scaling increment luma (0xA8 - 0xA9) (0xD8 - 0xD9)*/
	Uint16 xLumaIncrement;
/* Horizontal phase offset luma (0xAA) (0xDA)*/
	Uint8 xLumaPhaseOffset;
/* Unused (0xAB) */
	Uint8 regABUnused;
/* Horizontal scaling increment chroma (0xAC - 0xAD) (0xDC - 0xDD)*/
	Uint16 xChromaIncrement;
/* Horizontal phase offset chroma (0xAE) (0xDE)*/
	Uint8 xChromaPhaseOffset;
/* Unused (0xAF) (0xDF)                        */
	Uint8 regAFUnused;
/* Vertical scaling increment luma (0xB0 - 0xB1) (0xE0 - 0xE1)*/
	Uint16 yLumaIncrement;
/* Vertical scaling increment chroma (0xB2 - 0xB3) (0xE2 - 0xE3)*/
	Uint16 yChromaIncrement;
/* Vertical scaling mode control (0xB4) (0xE4)*/
   	Uns verticalScalingType : 1;
   	Uns regB4AUnused : 3;
   	Uns mirrorLineFlag : 1;
	Uns regB4BUnused : 3;
/* Null Array (0xB5 - 0xB7) (0xE5 - 0xE7)       */
	Uint8 nullArray1[3];
/* Vertical Phase Offset Chroma (0xB8 - 0xBB) (0xE8 - 0xEB)*/
	Uint8 yChromaPhaseOffset[4];
/* Vertical Phase Offset Luma (0xBC - 0xBF) (0xEC - 0xEF)    */
	Uint8 yLumaPhaseOffset[4];
} _SAA7115_Task;

typedef struct _SAA7115_PLL2
{
/* LFCO Per Line (0xF0)*/
	Uint8 splpl;
/* Parameter Select (0xF1)*/
	Uns splpl8 : 1;
	Uns sphSel : 1;
	Uns spMod : 2;
	Uns sppi : 4;
/* Nominal PLL2 DTO (0xF2 - 0xF3)*/
	Uint16 spnInc;
/* PLL2 Status (0xF4)*/
	Uns spLock : 1;
	Uns regF2Unused : 6;
/* Pulse generator Line Length (0xF5)*/
	Uint8 pgLen;
/* Pulse A Position (0xF6)*/
	Uns pgLenMsb : 1;
	Uns pgHSel : 1;
	Uns pgRes : 1;
	Uns regF6Unused : 1;
	Uns pgHAPS : 4;
/* Pulse A Position (0xF7)*/
	Uint8 pgHAPSMsb;
/* Pulse B Position (0xF8)*/
	Uns regF8Unused : 4;
	Uns pgHBPS : 4;
/* Pulse B Position (0xF9)*/
	Uint8 pgHBPSMsb;
/* Pulse C Position (0xFA)*/
	Uns regFAUnused : 4;
	Uns pgHCPS : 4;
/* Pulse C Position (0xFB)*/
	Uint8 pgHCPSMsb;
/* Null Array (0xFC) - (0xFE)*/
	Uint8 nullArray1[3];
/* S_PLL max (0xFF)*/
	Uns spTHRM : 4;
	Uns spTHRL : 4;
} _SAA7115_PLL2;

typedef struct _SAA7115_Regs
{
	_SAA7115_Generics generics;
	_SAA7115_Globals globals;
	_SAA7115_Task taskA;
	_SAA7115_Task taskB;
	_SAA7115_PLL2 pll2;
}_SAA7115_Regs;                        

extern _SAA7115_Regs _SAA7115_settingsDef[2];

typedef struct _SAA7115_XScaleParam
{
	Uint8 acl;
   	Uint8 c21;
   	Uint8 dcGain;
}_SAA7115_XScaleParam;

typedef struct _SAA7115_XScale
{
	_SAA7115_XScaleParam xValues[64];
}_SAA7115_XScale;
extern  _SAA7115_XScale _SAA7115_xScale;


#ifdef __cplusplus
}
#endif


#endif /*#ifndef __SAA7115_H*/

/********************************************************************************/
/* end of file */
/********************************************************************************/



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -