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

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.11.00.00 11-04-03 (ddk-b13)" */
  9. /********************************************************************************/
  10. /* _saa7105.h file */
  11. /********************************************************************************/
  12. #ifndef __SAA7105_H
  13. #define __SAA7105_H
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #include <saa7105.h>
  18. #define _SAA7105_IICADDR    (0x88>>1)
  19. extern SAA7105_Cursor _SAA7105_cursorData;
  20. typedef struct _SAA7105_Regs
  21. {
  22.     Uint8 status;
  23.     Uint8 nullArray1[0x15];
  24. /* Common DAC Adjust (0x16) */
  25.     Uns dacAdjust : 4;
  26.     Uns unusedDACAdjust : 4;
  27. /* Red DAC Adjust (0x17)    */
  28.     Uns redDACAdjust : 5;
  29.     Uns unusedRDACAdjust : 3;
  30. /* Green DAC Adjust (0x18)  */
  31.     Uns greenDACAdjust : 5;
  32.     Uns unusedGDACAdjust : 3;
  33. /* Blue DAC Adjust (0x19)   */
  34.     Uns blueDACAdjust : 5;
  35.     Uns unusedBDACAdjust : 3;
  36. /* MSM Threshold (0x1A)     */
  37.     Uint8 thrldMSM;
  38. /* Monitor sense mode (0x1B)*/
  39.     Uns blueComp : 1;
  40.     Uns greenComp : 1;
  41.     Uns redComp : 1;
  42.     Uns reg1BUnused : 2;
  43.     Uns outputEnableMSM : 1;
  44.     Uns autoEnableMSM : 1;
  45.     Uns enableMSM : 1;
  46. /* Chip identification (0x1C) */
  47.     Uint8 chipID;
  48. /* Null Array (0x1D) - (0x25) */
  49.     Uint8 nullArray2[9];
  50. /* Wide screen signal (0x26) - (0x27)*/
  51.     Uint8 wideScreenLSBits;
  52.     Uns wideScreenMSBits : 6;
  53.     Uns wideScreenunused : 1;
  54.     Uns wideScreenEnable : 1;
  55. /* Burst start (0x28)              */
  56.     Uns burstStart : 6;
  57.     Uns burstUnused : 2;
  58. /* Burst start (0x29)              */
  59.     Uns burstEnd : 6;
  60.     Uns reg29Unused : 1;
  61.     Uns syncResetEnable : 1;
  62. /* Copy generation (0x2A) - (0x2C) */
  63.     Uint8 copyGen0;
  64.     Uint8 copyGen1;
  65.     Uns copyGenMSBits : 4;
  66.     Uns reg2CUnused : 3;
  67.     Uns copyGenEnable : 1;
  68. /* Output Port Control (0x2D)     */
  69.     Uns reg2DUnused : 1;
  70.     Uns cvbsEn2 : 1;
  71.     Uns clk2En : 1;
  72.     Uns encOff : 1;
  73.     Uns cEn : 1;
  74.     Uns cvbsEn0 : 1;
  75.     Uns cvbsEn1 : 1;
  76.     Uns vbsEn : 1;
  77. /* Null Array (0x2E) - (0x36)    */
  78.     Uint8 nullArray3[9];
  79. /* Input Path Control (0x37)     */
  80.     Uns xFilterActive : 1;
  81.     Uns inputLevel : 1;
  82.     Uns cursorZoom : 1;
  83.     Uns reg37AUnused : 1;
  84.     Uns yUpscaleFilter : 2;
  85.     Uns yUpscaleActive : 1;
  86.     Uns reg37BUnused : 1;
  87. /* Gain luminance for RGB (0x38)*/
  88.     Uns rgbGainLuminance : 5;
  89.     Uns reg38Unused : 3;
  90. /* Gain chrominance for RGB (0x39) */
  91.     Uns rgbGainChrominance : 5;
  92.     Uns reg39Unused : 3;
  93. /* Input Port Control (0x3A)       */
  94.     Uns chromaBinary : 1;
  95.     Uns lumaBinary : 1;
  96.     Uns compSyncEnable : 1;
  97.     Uns yuvToRGBBypass : 1;
  98.     Uns syncVia656 : 1;
  99.     Uns svynt : 1;
  100.     Uns reg3AUnused : 1;
  101.     Uns colorBarsEnable : 1;
  102. /* Null Array (0x3B) - (0x53)     */
  103.     Uint8 nullArray4[0x19];       
  104. /* VPS Enable (0x54)              */
  105.     Uns slot : 1;
  106.     Uns edge : 1;
  107.     Uns reg54AUnused : 2;
  108.     Uns gpEnable : 1;
  109.     Uns gpData : 1;
  110.     Uns reg54BUnused : 1;
  111.     Uns vpsEnable : 1;
  112. /* VPS Byte5 to Byte14 (0x55) - (0x59)*/
  113.     Uint8 vpsByte5;
  114.     Uint8 vpsByte11;
  115.     Uint8 vpsByte12;
  116.     Uint8 vpsByte13;
  117.     Uint8 vpsByte15;
  118. /* VPS Enable (0x5A)                  */
  119.     Uint8 chromaPhase;
  120. /* Gain Cb (0x5B)                     */
  121.     Uint8 cbGain;
  122. /* Gain Cr (0x5C)                     */
  123.     Uint8 crGain;
  124. /* Black Level (0x5D)                 */
  125.     Uns blackLevel : 6;
  126.     Uns reg5DUnused : 1;
  127.     Uns uGainMSB : 1;
  128. /* Blank Level (0x5E)                 */
  129.     Uns blankLevel : 6;
  130.     Uns reg5EUnused : 1;
  131.     Uns vGainMSB : 1;
  132. /* Black Level (0x5F)                 */
  133.     Uns vBIBlankLevel : 6;
  134.     Uns ccrFilter : 2;
  135. /* Null Byte (0x60)                   */
  136.     Uint8 nullByte60;
  137. /* Standard Control (0x61)            */
  138.     Uns fise : 1;
  139.     Uns palEnable : 1;
  140.     Uns chromaBW : 1;
  141.     Uns reg61Unused : 1;
  142.     Uns whiteLevel : 1;
  143.     Uns palSwitch : 1;
  144.     Uns downA : 1;
  145.     Uns downD : 1;
  146. /* Burst Amplitude (0x62)            */
  147.     Uns burstAmplitude : 7;
  148.     Uns rtCEEnable : 1;
  149. /* Sub Carrier 0-3 (0x63) - (0x66)   */
  150.     Uint8 subCarrier0;
  151.     Uint8 subCarrier1;
  152.     Uint8 subCarrier2;
  153.     Uint8 subCarrier3;
  154. /*  Uns int SubCarrier;              */
  155. /* Closed Captioning (0x67) - (0x6A) */
  156.     Uint8 line21OddF0;
  157.     Uint8 line21OddF1;
  158.     Uint8 line21EvenF0;
  159.     Uint8 line21EvenF1;              
  160. /* Null Byte (0x6B)                  */
  161.     Uint8 nullByte6B;
  162. /* Horizontal Trigger (0x6C)         */
  163.     Uint8 hTrigger;
  164. /* H & V Trigger (0x6D)              */
  165.     Uns vTrigger : 5;
  166.     Uns hTriggerMSBs : 3;
  167. /* Multi Control (0x6E)              */
  168.     Uns fieldControl : 2;
  169.     Uns lumaDelay : 2;
  170.     Uns phaseResetMode : 2;
  171.     Uns blankLevelOut : 1;
  172.     Uns vTrigNegative : 1;
  173. /* Closed Caption/Teletext Enable (0x6F)*/
  174.     Uns cCLine : 5;
  175.     Uns teletextEnable : 1;
  176.     Uns cCEnable : 2;
  177. /* Active Display Window Horizontal Start (0x70)*/
  178.     Uint8 hStart;
  179. /* Active Display Window Horizontal End (0x71)  */
  180.     Uint8 hEnd;
  181. /* Active Display Window MSBs (0x72)            */
  182.     Uns hStartMSB : 3;
  183.     Uns reg72BUnused : 1;
  184.     Uns hEndMSB : 3;
  185.     Uns reg72AUnused : 1;                       
  186. /* Teletext Horizontal Start (0x73)             */
  187.     Uint8 teletextHStart;
  188. /* Teletext Horizontal Start (0x74)             */
  189.     Uns teletextHDelay : 4;
  190.     Uns reg74Unused : 4;
  191. /* CSYNC Advance (0x75)                         */
  192.     Uns reg75Unused : 3;
  193.     Uns cSyncAdvance : 5;
  194. /* Teletext Odd Vertical Start (0x76)           */
  195.     Uint8 teletextOddVStart;                    
  196. /* Teletext Odd Vertical Start (0x77)           */
  197.     Uint8 teletextOddVEnd;
  198. /* Teletext Odd Vertical Start (0x78)           */
  199.     Uint8 teletextEvenVStart;
  200. /* Teletext Odd Vertical Start (0x79)           */
  201.     Uint8 teletextEvenVEnd;
  202. /* First Active Line (0x7A)                     */
  203.     Uint8 fal;
  204. /* Last Active Line (0x7B)                      */
  205.     Uint8 lal;
  206. /* TTX mode, MSB vertical (0x7C)                */
  207.     Uns ttxOVSMsb : 1;
  208.     Uns ttxOVEMsb : 1;
  209.     Uns ttxEVSMsb : 1;
  210.     Uns ttxEVEMsb : 1;
  211.     Uns falMsb : 1;
  212.     Uns OldTTXProtocol : 1;
  213.     Uns lalMsb : 1;
  214.     Uns teletext60HzEnable : 1;
  215. /* Null Byte (0x7D) */
  216.     Uint8 nullByte7D;
  217. /* Disable Teletext Line (0x7E) - (0x7F)       */
  218.     Uint8 ttxLineLsbOff;
  219.     Uint8 ttxLineMsbOff;
  220. /* FIFO Status (0x80)                          */
  221.     Uns fifoUnderflow : 1;
  222.     Uns fifoOverflow : 1;
  223.     Uns bufferFIFOOverflow : 1;
  224.     Uns inputFifoError : 1;
  225.     Uns reg80Unused : 4;
  226. /* Disable Teletext Line (0x81) - (0x83)       */
  227.     Uint8 pixClock0;
  228.     Uint8 pixClock1;
  229.     Uint8 pixClock2;
  230. /* Pixel Clock Control (0x84)                  */
  231.     Uns pclkInDiv : 2;
  232.     Uns pclkOutDiv : 2;
  233.     Uns bypassInputFIFO : 1;
  234.     Uns fifoResetOnField : 1;
  235.     Uns pclkSyncVSYNC : 1;
  236.     Uns pclkSingleEnded : 1;
  237. /* FIFO Control (0x85) */
  238.     Uns fifoThreshold : 4;
  239.     Uns reg85Unused : 3;
  240.     Uns nonDVOCompliant : 1;
  241. /* Null Array (0x86) - (0x8F)                   */
  242.     Uint8 bullArray5[10];
  243. /* Horizontal Offset (0x90)                     */
  244.     Uint8 xOfs;
  245. /* Horizontal Offset (0x91)                     */
  246.     Uint8 xPix;
  247. /* Vertical Odd Offset (0x92)                   */
  248.     Uint8 yOfsOdd;
  249. /* Vertical Even Field Offset (0x93)            */
  250.     Uint8 yOfsEven;
  251. /* MSBs (0x94)                                  */
  252.     Uns xOfsMsb : 2;
  253.     Uns xPixMsb : 2;
  254.     Uns yOfsOddMsb : 2;
  255.     Uns yOfsEvenMsb : 2;
  256. /* Line Number (0x95)                           */
  257.     Uint8 yPix;                                 
  258. /* Scaler Control (0x96)                        */
  259.     Uns yPixMsb : 2;
  260.     Uns reg96Unused : 1;
  261.     Uns lumaBooster : 1;
  262.     Uns interlacedCursor : 1;
  263.     Uns masterSlaveMode : 1;
  264.     Uns cboPolarity : 1;
  265.     Uns frameSyncEnable : 1;
  266. /* Sync Control (0x97)                          */
  267.     Uns hSyncPolarity : 1;
  268.     Uns hSyncOutput : 1;
  269.     Uns vSyncPolarity : 1;
  270.     Uns vSyncOutput : 1;
  271.     Uns frameSyncPolarity : 1;
  272.     Uns fieldOutput : 1;
  273.     Uns vSyncMode : 1;
  274.     Uns hSyncMode : 1;
  275. /* Line Length (0x98)                          */
  276.     Uint8 hLen;
  277. /* Input Delay (0x99)                          */
  278.     Uns hLenMsb : 4;
  279.     Uns idel : 4;
  280. /* Horizontal Increment (0x9A)                 */
  281.     Uint8 xInc;
  282. /* Vertical Increment (0x9B)                   */
  283.     Uint8 yInc;
  284. /* MSBs Hor/Vert Increment (0x9C)              */
  285.     Uns xIncMsb : 4;
  286.     Uns yIncMsb : 4;
  287. /* Weighting Factor Odd (0x9D)                 */
  288.     Uint8 yIWGTO;
  289. /* Weighting Factor Even (0x9E)                */
  290.     Uint8 yIWGTE;
  291. /* MSBs Weighting Factor (0x9F)                */
  292.     Uns yIWGTOMsb : 4;
  293.     Uns yIWGTEMsb : 4;
  294. /* Vertical Line Skip (0xA0)                   */
  295.     Uint8 ySkip;
  296. /* MSBs Weighting Factor (0xA1)                */
  297.     Uns ySkipMsb : 4;
  298.     Uns regA0Unused : 3;
  299.     Uns enableBlank : 1;
  300. /* Y Border Color (0xA2)                       */
  301.     Uint8 yBorderColor;
  302. /* U Border Color (0xA3)                       */
  303.     Uint8 uBorderColor;
  304. /* V Border Color (0xA4)                       */
  305.     Uint8 vBorderColor;
  306. /* Null Array (0xA5) - (0xCF)                  */
  307.     Uint8 nullArray6[0x2B];
  308. /* HD Sync Line Count Array (0xD0)             */
  309.     Uint8 ramAAddress;
  310. /* HD Sync Line Type Array (0xD1)              */
  311.     Uint8 ramBAddress;
  312. /* HD Sync Line Pattern Array (0xD2)           */
  313.     Uint8 ramCAddress;
  314. /* HD Sync Value Array (0xD3)                  */
  315.     Uint8 ramDAddress;
  316. /* HD Sync Trigger (State 1-4) (0xD4 - 0xD5)   */
  317.     Uns hdLineCounter : 10;
  318.     Uns hdLineTypePtr : 2;
  319.     Uns hdLinePatternPtr : 4;
  320. /* HD Sync Trigger (State 1-4) (0xD6 - 0xD7)   */
  321.     Uns hdDurationCtr : 10;
  322.     Uns regD6AUnused : 2;
  323.     Uns hdEventTypePtr : 3;
  324.     Uns regD6BUnused : 1;
  325. /* HD Sync Trigger Phase X (0xD8 - 0xD9)       */
  326.     Uns hdTriggerPhaseX : 12;
  327.     Uns regD9Unused : 4;
  328. /* HD Sync Trigger Phase Y (0xDA - 0xDB)       */
  329.     Uns hdTriggerPhaseY : 10;
  330.     Uns regDBUnused : 6;
  331. /* HD Output Control (0xDC)                    */
  332.     Uns hdColorInterpolator : 1;
  333.     Uns hdFullGain : 1;
  334.     Uns hdRGB_YCbCr : 1;
  335.     Uns hdActive : 1;
  336.     Uns regDCUnused : 4;
  337. /* Null Array (0xDD) - (0xEF)                  */
  338.     Uint8 nullArray7[0x13];
  339. /* R Cursor Color1 (0xF0)                      */
  340.     Uint8 redCursorColor1;
  341. /* G Cursor Color1 (0xF1)                      */
  342.     Uint8 greenCursorColor1;
  343. /* B Cursor Color1 (0xF2)                      */
  344.     Uint8 blueCursorColor1;
  345. /* R Cursor Color2 (0xF3)                      */
  346.     Uint8 redCursorColor2;
  347. /*  G Cursor Color2 (0xF4)                     */
  348.     Uint8 greenCursorColor2;
  349. /* B Cursor Color2 (0xF5)                      */
  350.     Uint8 blueCursorColor2;
  351. /* Aux R Cursor Color (0xF6)                   */
  352.     Uint8 auxRCursorColor;
  353. /* Aux G Cursor Color (0xF7)                   */
  354.     Uint8 auxGCursorColor;
  355. /* Aux B Cursor Color (0xF8)                   */
  356.     Uint8 auxBCursorColor;
  357. /* Horizontal Cursor Position (0xF9)           */
  358.     Uint8 hCursorPos;
  359. /* Horizontal Hot Spot / MSBs H Cursor Position (0xFA)*/
  360.     Uns hCursPosMSBs : 3;
  361.     Uns horHotSpot : 5;
  362. /* Vertical Cursor Position (0xFB)                    */
  363.     Uint8 vCursorPos;
  364. /* Horizontal Hot Spot / MSBs H Cursor Position (0xFC) */
  365.     Uns vCursPosMSBs : 2;
  366.     Uns regFCUnused : 1;
  367.     Uns vertHotSpot : 5;
  368. /* Input Path Control (0xFD)                           */
  369.     Uns downFormatDisable : 1;
  370.     Uns rgbToYUVDisable : 1;
  371.     Uns inputFormat : 3;
  372.     Uns lutLoadMode : 1;
  373.     Uns cursorMode : 1;
  374.     Uns lutDisable : 1;
  375. /* Cursor Bit Map Address (0xFE)                       */
  376.     Uint8 cursorAddress;
  377. /* Color LUT Map Address (0xFF)                        */
  378.     Uint8 lutAddress;
  379. }_SAA7105_Regs;
  380. extern _SAA7105_Regs _SAA7105_settingsDef;
  381. extern _SAA7105_Regs _SAA7105_settingsVGA;
  382. typedef struct _SAA7105_HDLineCount
  383. {
  384.     Uns count : 10;
  385.     Uns unused : 2;
  386.     Uns typeEntry : 4;
  387. }_SAA7105_HDLineCount;
  388. typedef struct _SAA7105_HDLineType
  389. {
  390.     Uns pattern0Entry : 3;
  391.     Uns unused0 : 1;
  392.     Uns pattern1Entry : 3;
  393.     Uns unused1 : 1;
  394.     Uns pattern2Entry : 3;
  395.     Uns unused2 : 1;
  396.     Uns pattern3Entry : 3;
  397.     Uns unused3 : 1;
  398.     Uns pattern4Entry : 3;
  399.     Uns unused4 : 1;
  400.     Uns pattern5Entry : 3;
  401.     Uns unused5 : 1;
  402.     Uns pattern6Entry : 3;
  403.     Uns unused6 : 1;
  404.     Uns pattern7Entry : 3;
  405.     Uns unused7 : 1;
  406. }_SAA7105_HDLineType;
  407. typedef struct _SAA7105_HDLinePattern
  408. {
  409.     Uns time0 : 10;
  410.     Uns unused0 : 2;
  411.     Uns value0Entry : 4;
  412.     Uns time1 : 10;
  413.     Uns unused1 : 2;
  414.     Uns value1Entry : 4;
  415.     Uns time2 : 10;
  416.     Uns unused2 : 2;
  417.     Uns value2Entry : 4;
  418.     Uns time3 : 10;
  419.     Uns unused3 : 2;
  420.     Uns value3Entry : 4;
  421. } _SAA7105_HDLinePattern;
  422. typedef struct _SAA7105_HDSyncValue
  423. {
  424.     Uns value : 8;
  425.     Uns hsmSync : 1;
  426.     Uns vsmSync : 1;
  427.     Uns unused : 6;
  428. } _SAA7105_HDSyncValue;
  429. typedef struct _SAA7105_HDSyncGen
  430. {
  431.     Uns lcAddress;
  432.     _SAA7105_HDLineCount lineCount[15];
  433.     Uns ltAddress;
  434.     _SAA7105_HDLineType lineType[15];
  435.     Uns lpAddress;
  436.     _SAA7105_HDLinePattern linePattern[7];
  437.     Uns svAddress;
  438.     _SAA7105_HDSyncValue syncValue[8];
  439. }_SAA7105_HDSyncGen;
  440. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGen0;
  441. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGen480P;  
  442. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGen720P;  
  443. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGen1080I;  
  444. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGenVGA;  
  445. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGenSVGA;  
  446. extern _SAA7105_HDSyncGen _SAA7105_hdSyncGenXGA;
  447. #ifdef __cplusplus
  448. }
  449. #endif
  450. #endif /*#ifndef __SAA7105_H*/
  451. /********************************************************************************/
  452. /* end of file */
  453. /********************************************************************************/