_saa7115.h
上传用户:dahaojd
上传日期:2008-01-29
资源大小:14357k
文件大小:11k
源码类别:

DSP编程

开发平台:

C/C++

  1. /*
  2.  *  Copyright 2003 by Texas Instruments Incorporated.
  3.  *  All rights reserved. Property of Texas Instruments Incorporated.
  4.  *  Restricted rights to use, duplicate or disclose this code are
  5.  *  granted through contract.
  6.  *  
  7.  */
  8. /* "@(#) DDK 1.10.00.23 07-02-03 (ddk-b12)" */
  9. /********************************************************************************/
  10. /* _saa7115.h file */
  11. /********************************************************************************/
  12. #ifndef __SAA7115_H
  13. #define __SAA7115_H
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #include <saa7115.h>
  18. #define _SAA7115_IIC_ADDR0       (0x42>>1) 
  19. #define _SAA7115_IIC_ADDR1       (0x40>>1)
  20. #define _SAA7115_TASKA              0 
  21. #define _SAA7115_TASKB               1
  22. typedef struct _SAA7115_Generics
  23. {
  24.     Uint8   chipVersion;
  25. /* Increment Delay (0x01)           */
  26.     Uns horIncDelay : 4;
  27.     Uns gainHysteresis : 2;
  28.     Uns whitePeakDisable : 1;
  29.     Uns aosL2 : 1;
  30. /* Analog Input Control 1 (0x02)    */
  31.     Uns analogMuxMode : 4;
  32.     Uns reg02Unused : 2;
  33.     Uns amplifierType : 2;
  34. /* Analog Input Control 2 (0x03)    */
  35.     Uns aCh1GainMsb : 1;
  36.     Uns aCh2GainMsb : 1;
  37.     Uns agcControl : 1;
  38.     Uns agcHold : 1;
  39.     Uns colorPeakOff : 1;
  40.     Uns agcDuringVBI : 1;
  41.     Uns hLNRS : 1;
  42.     Uns test : 1;
  43. /* Analog Input Control 3 (0x04)    */
  44.     Uint8 aCh1Gain;
  45. /* Analog Input Control 4 (0x05)    */
  46.     Uint8 aCh2Gain;
  47. /* Horizontal Sync Start (0x06)     */
  48.     Uint8 hSYNCStart;
  49. /* Horizontal Sync Stop (0x07)      */
  50.     Uint8 hSYNCStop;
  51. /* Sync Control (0x08)              */
  52.     Uns vertNoiseReduction : 2;
  53.     Uns horPLLOpen : 1;
  54.     Uns horTimeConstant : 2;
  55.     Uns forceFieldFlag : 1;
  56.     Uns fieldSelect : 1;
  57.     Uns autoFieldDetect : 1;
  58. /* Luminance Control (0x09)         */
  59.     Uns lumaFilter : 4;
  60.     Uns lumaBW : 1;
  61.     Uns lumaDelay : 1;
  62.     Uns yCombFilter : 1;
  63.     Uns bypassYCombFilter : 1;
  64. /* Luminance Brightness Adjustment (0x0A)  */
  65.     Uint8 brightness;
  66. /* Luminance Contrast Adjustment (0x0B)    */
  67.     Uint8 contrast;
  68. /* Chroma Saturation Adjustment (0x0C)     */
  69.     Uint8 saturation;
  70. /* Chroma Hue Control (0x0D)               */
  71.     Uint8 hue;
  72. /* Chroma Control 1 (0x0E)                 */
  73.     Uns chromaCombFilter : 1;
  74.     Uns autoChromaDetect : 1;
  75.     Uns fastColorTimeConstant : 1;
  76.     Uns disableChromaVertFilt : 1;
  77.     Uns colorStandardDetect : 3;
  78.     Uns clearDTO : 1;
  79. /* Chroma Gain Control (0x0F)             */
  80.     Uns chromaGain : 7;
  81.     Uns autoChromaAGC : 1;
  82. /* Chroma Control 2 (0x10)                */
  83.     Uns lumaChromaBW : 3;
  84.     Uns chromaBW : 1;
  85.     Uns crOffsetAdjustment : 2;
  86.     Uns cbOffsetAdjustment : 2;
  87. /* Mode Delay Control (0x11)              */
  88.     Uns lumaDelayCompensation : 3;
  89.     Uns rts0Polarity : 1;
  90.     Uns hSYNCDelay : 2;
  91.     Uns rts1Polarity : 1;
  92.     Uns colorOn : 1;
  93. /* RT Signal Control (0x12)               */
  94.     Uns rts0Output : 4;
  95.     Uns rts1Output : 4;
  96. /* RT/XPort Control (0x13)                */
  97.     Uns ofts : 3;
  98.     Uns fastHorSelect : 1;
  99.     Uns xRVSSelect : 2;
  100.     Uns hSYNCSelect : 1;
  101.     Uns rtCEEnable : 1;
  102. /* Analog/ADC (0x14)                      */
  103.     Uns adcSampleDelay : 2;
  104.     Uns auto1 : 1;
  105.     Uns xtOutEnable : 1;
  106.     Uns aOutSelect : 2;
  107.     Uns agcUpdateType : 1;
  108.     Uns saa7199Switch : 1;
  109. /* VGATE Start (0x15)                     */
  110.     Uint8 vGateStart;
  111. /* VGATE Stop (0x16) */
  112.     Uint8 vGateStop;
  113. /* MISC/VGATE MSBs (0x17)                 */
  114.     Uns vGateStartMsb : 1;
  115.     Uns vGateStopMsb : 1;
  116.     Uns altVGatePos : 1;
  117.     Uns yLatency : 3;
  118.     Uns llc2Enable : 1;
  119.     Uns llcEnable : 1;  
  120. /* Raw Data Gain (0x18)                  */
  121.     Uint8 rawGain;
  122. /* Raw Data Offset (0x19)                */
  123.     Uint8 rawOffset;
  124. /* Color Killer Thresholds (0x1A)        */
  125.     Uns secamColorKiller : 4;
  126.     Uns ntscColorKiller : 4;
  127. /* MISC/TWCRDET (0x1B)                   */
  128.     Uns fsqc : 1;
  129.     Uns autoColorLimiter : 1;
  130.     Uns reg1BAUnused : 2;
  131.     Uns ofts3 : 1;
  132.     Uns reg1BBUnused : 1;
  133.     Uns tvDetectThreshold : 2;
  134. /* Enhanced Comb Control 1 (0x1C)       */
  135.     Uns combThreshold : 2;
  136.     Uns medianFilterGain : 2;
  137.     Uns vertDiffGain : 2;
  138.     Uns horDiffGain : 2;
  139. /* Enhanced Comb Control 2 (0x1D)       */
  140.     Uns vertDiffThreshold : 2;
  141.     Uns reg1DUnused : 6;
  142. /* Status Byte Decoder 1 (0x1E)         */
  143.     Uns colorStandard : 2;
  144.     Uns whitePeakActive : 1;
  145.     Uns limitGainBottom : 1;
  146.     Uns limitGainTop : 1;
  147.     Uns slowTimeConstant : 1;
  148.     Uns hSYNCLock : 1;
  149.     Uns fieldLength : 1;
  150. /* Status Byte Decoder 2 (0x1F)         */
  151.     Uns captureReady : 1;
  152.     Uns copyProtection : 1;
  153.     Uns colorStripe : 1;
  154.     Uns burstType3 : 1;
  155.     Uns stableTimebase : 1;
  156.     Uns fieldID : 1;
  157.     Uns hVLoop : 1;
  158.     Uns interlaceDetect : 1;
  159. /* Null Array (0x20) - (0x2F)           */
  160.     Uint8 nullArray1[16];
  161. /* Audio Data (0x30) - (0x3F)           */
  162.     Uint8 audioData[16];
  163. /* VBI Data Slicer (0x40) - (0x7F)      */
  164.     Uint8 vBISliceData[64];     
  165. }_SAA7115_Generics;
  166. typedef struct _SAA7115_Globals
  167. {
  168. /* Global Control (0x80)                */
  169.     Uns iPortMode : 4;
  170.     Uns taskAEnable : 1;
  171.     Uns taskBEnable : 1;
  172.     Uns reg80Unused : 1;
  173.     Uns continuousFieldMode : 1;
  174. /* Reserved (0x81)                      */
  175.     Uns vEAV : 2;
  176.     Uns fTime : 1;
  177.     Uns reg81Unused : 5;
  178. /* Unused (0x82)                        */
  179.     Uint8 reg82Unused;
  180. /* Reserved (0x83)                      */
  181.     Uns xPortEnable : 2;
  182.     Uns xRDYType : 1;
  183.     Uns reg83AUnused : 1;
  184.     Uns xCLKSelect : 2;
  185.     Uns reg83BUnused : 2;
  186. /* I Port Signal Definitions (0x84)     */
  187.     Uns igpHSelect : 2;
  188.     Uns igpVSelect : 2;
  189.     Uns igp1SelectLSBs : 2;
  190.     Uns igp0SelectLSBs : 2;
  191. /* I Port Signal Polarity (0x85)        */
  192.     Uns idqPolarity : 1; 
  193.     Uns iHSYNCPolarity : 1;
  194.     Uns iVSYNCPolarity : 1;
  195.     Uns igp0Polarity : 1;
  196.     Uns Igp1Polarity : 1;
  197.     Uns videoDataLimited : 1;
  198.     Uns dataOutputType : 2;
  199. /* I Port FIFO (0x86)                   */
  200.     Uns faeFlagType : 2;
  201.     Uns fafFlagType : 2;
  202.     Uns igp0SelectMSB : 1;
  203.     Uns igp1SelectMSB : 1;
  204.     Uns iPortDataEnable : 1;
  205.     Uns dataPackingMode : 1;
  206. /* I Port Delay (0x87)                  */
  207.     Uns iPortEnable : 2;
  208.     Uns reg87Unused : 2;
  209.     Uns iCLKControl : 2;
  210.     Uns idqControl : 2;
  211. /* Power Save Control (0x88)            */
  212.     Uns decoderOperational : 1;
  213.     Uns scalerOperational : 1;
  214.     Uns reg88Unused : 1;
  215.     Uns audioClockEnable : 1;
  216.     Uns devProgControl : 1;
  217.     Uns resetScaler : 1;
  218.     Uns analogCh1Enable : 1;
  219.     Uns AnalogCh2Enable : 1;
  220. /* Null Array (0x89) - (0x8E)           */
  221.     Uint8 nullArray1[6];
  222. /* Scaler Status Information (0x8F)     */
  223.     Uns scalerFIDOut : 1;
  224.     Uns scalerFIDIn : 1;
  225.     Uns errorFlag : 1;
  226.     Uns devProgStatus : 1;
  227.     Uns fifoOVFlag : 1;
  228.     Uns fifoAFFlag : 1;
  229.     Uns iTRIStatus : 1;
  230.     Uns xTRIStatus : 1;
  231. }_SAA7115_Globals;
  232. typedef struct _SAA7115_Task
  233. {
  234. /* Task handling control (0x90) (0xC0)   */
  235.     Uns eventTrigger : 2;
  236.     Uns repeatTask : 1;
  237.     Uns fieldSkipType : 3;
  238.     Uns outputFieldID : 1;
  239.     Uns conlh : 1;
  240. /* X Port Format (0x91) (0xC1)           */
  241.     Uns yuvInputFormat : 1;
  242.     Uns chromaPerLine : 2;
  243.     Uns scalerDataContinuous : 1;
  244.     Uns scalerInputSource : 2;
  245.     Uns hldfv : 1;
  246.     Uns conlv : 1;
  247. /* X Port Input Ref (0x92) (0xC2)        */
  248.     Uns xDQNotUsed : 1;
  249.     Uns xDQPolarity : 1;
  250.     Uns xRHEdgeType : 1;
  251.     Uns xPortSyncVia656 : 1;
  252.     Uns xRVEdgeType : 1;
  253.     Uns xRVSignalType : 1;
  254.     Uns xFieldIDType : 1;
  255.     Uns xFieldEdgeType : 1;
  256. /* I Port Format (0x93) (0xC3)           */
  257.     Uns iPortDataFormat : 3;
  258.     Uns leadingYLines : 2;
  259.     Uns skipYLineFlag : 1;
  260.     Uns ins80 : 1;
  261.     Uns ccir656Enable : 1;
  262. /* Window Sizes (0x94 - 0x9F) (0xC4 - 0xCF) */
  263.     Uint16 xInputOffset;
  264.     Uint16 xInputLength;
  265.     Uint16 yInputOffset;
  266.     Uint16 yInputLength;
  267.     Uint16 xOutputLength;
  268.     Uint16 yOutputLength;
  269. /* Horizontal Prescaling (0xA0) (0xD0)   */
  270.     Uint8 xPreScale;
  271. /* Accumulation Length (0xA1) (0xD1)    */
  272.     Uint8 xAccLength;
  273. /* Prescaler DC Gain/FIR Prefilter Control (0xA2) (0xD2)*/
  274.     Uns scalerDCGain : 3;
  275.     Uns xACLWeighting : 1;
  276.     Uns yPreFilterType : 2;
  277.     Uns cxPreFilterType : 2;
  278. /* Unused (0xA3)                        */
  279.     Uint8 regA3Unused;
  280. /* Luminance brightness (0xA4) (0xD4)   */
  281.     Uint8 brightness;
  282. /* Luminance contrast (0xA5) (0xD5)     */
  283.     Uint8 contrast;
  284. /* Luminance saturation (0xA6) (0xD6)   */
  285.     Uint8 saturation;
  286. /* Unused (0xA7)                        */
  287.     Uint8 regA7Unused;
  288. /* Horizontal scaling increment luma (0xA8 - 0xA9) (0xD8 - 0xD9)*/
  289.     Uint16 xLumaIncrement;
  290. /* Horizontal phase offset luma (0xAA) (0xDA)*/
  291.     Uint8 xLumaPhaseOffset;
  292. /* Unused (0xAB) */
  293.     Uint8 regABUnused;
  294. /* Horizontal scaling increment chroma (0xAC - 0xAD) (0xDC - 0xDD)*/
  295.     Uint16 xChromaIncrement;
  296. /* Horizontal phase offset chroma (0xAE) (0xDE)*/
  297.     Uint8 xChromaPhaseOffset;
  298. /* Unused (0xAF) (0xDF)                        */
  299.     Uint8 regAFUnused;
  300. /* Vertical scaling increment luma (0xB0 - 0xB1) (0xE0 - 0xE1)*/
  301.     Uint16 yLumaIncrement;
  302. /* Vertical scaling increment chroma (0xB2 - 0xB3) (0xE2 - 0xE3)*/
  303.     Uint16 yChromaIncrement;
  304. /* Vertical scaling mode control (0xB4) (0xE4)*/
  305.     Uns verticalScalingType : 1;
  306.     Uns regB4AUnused : 3;
  307.     Uns mirrorLineFlag : 1;
  308.     Uns regB4BUnused : 3;
  309. /* Null Array (0xB5 - 0xB7) (0xE5 - 0xE7)       */
  310.     Uint8 nullArray1[3];
  311. /* Vertical Phase Offset Chroma (0xB8 - 0xBB) (0xE8 - 0xEB)*/
  312.     Uint8 yChromaPhaseOffset[4];
  313. /* Vertical Phase Offset Luma (0xBC - 0xBF) (0xEC - 0xEF)    */
  314.     Uint8 yLumaPhaseOffset[4];
  315. } _SAA7115_Task;
  316. typedef struct _SAA7115_PLL2
  317. {
  318. /* LFCO Per Line (0xF0)*/
  319.     Uint8 splpl;
  320. /* Parameter Select (0xF1)*/
  321.     Uns splpl8 : 1;
  322.     Uns sphSel : 1;
  323.     Uns spMod : 2;
  324.     Uns sppi : 4;
  325. /* Nominal PLL2 DTO (0xF2 - 0xF3)*/
  326.     Uint16 spnInc;
  327. /* PLL2 Status (0xF4)*/
  328.     Uns spLock : 1;
  329.     Uns regF2Unused : 6;
  330. /* Pulse generator Line Length (0xF5)*/
  331.     Uint8 pgLen;
  332. /* Pulse A Position (0xF6)*/
  333.     Uns pgLenMsb : 1;
  334.     Uns pgHSel : 1;
  335.     Uns pgRes : 1;
  336.     Uns regF6Unused : 1;
  337.     Uns pgHAPS : 4;
  338. /* Pulse A Position (0xF7)*/
  339.     Uint8 pgHAPSMsb;
  340. /* Pulse B Position (0xF8)*/
  341.     Uns regF8Unused : 4;
  342.     Uns pgHBPS : 4;
  343. /* Pulse B Position (0xF9)*/
  344.     Uint8 pgHBPSMsb;
  345. /* Pulse C Position (0xFA)*/
  346.     Uns regFAUnused : 4;
  347.     Uns pgHCPS : 4;
  348. /* Pulse C Position (0xFB)*/
  349.     Uint8 pgHCPSMsb;
  350. /* Null Array (0xFC) - (0xFE)*/
  351.     Uint8 nullArray1[3];
  352. /* S_PLL max (0xFF)*/
  353.     Uns spTHRM : 4;
  354.     Uns spTHRL : 4;
  355. } _SAA7115_PLL2;
  356. typedef struct _SAA7115_Regs
  357. {
  358.     _SAA7115_Generics generics;
  359.     _SAA7115_Globals globals;
  360.     _SAA7115_Task taskA;
  361.     _SAA7115_Task taskB;
  362.     _SAA7115_PLL2 pll2;
  363. }_SAA7115_Regs;                        
  364. extern _SAA7115_Regs _SAA7115_settingsDef[2];
  365. typedef struct _SAA7115_XScaleParam
  366. {
  367.     Uint8 acl;
  368.     Uint8 c21;
  369.     Uint8 dcGain;
  370. }_SAA7115_XScaleParam;
  371. typedef struct _SAA7115_XScale
  372. {
  373.     _SAA7115_XScaleParam xValues[64];
  374. }_SAA7115_XScale;
  375. extern  _SAA7115_XScale _SAA7115_xScale;
  376. #ifdef __cplusplus
  377. }
  378. #endif
  379. #endif /*#ifndef __SAA7115_H*/
  380. /********************************************************************************/
  381. /* end of file */
  382. /********************************************************************************/