sgivwfb.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:24k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/drivers/video/sgivwfb.h -- SGI DBE frame buffer device header
  3.  *
  4.  *      Copyright (C) 1999 Silicon Graphics, Inc.
  5.  *      Jeffrey Newquist, newquist@engr.sgi.som
  6.  *
  7.  *  This file is subject to the terms and conditions of the GNU General Public
  8.  *  License. See the file COPYING in the main directory of this archive for
  9.  *  more details.
  10.  */
  11. #ifndef __SGIVWFB_H__
  12. #define __SGIVWFB_H__
  13. #define DBE_GETREG(reg, dest)       ((dest) = DBE_REG_BASE->##reg)
  14. #define DBE_SETREG(reg, src)        DBE_REG_BASE->##reg = (src)
  15. #define DBE_IGETREG(reg, idx, dest) ((dest) = DBE_REG_BASE->##reg##[idx])
  16. #define DBE_ISETREG(reg, idx, src)  (DBE_REG_BASE->##reg##[idx] = (src))
  17. #define MASK(msb, lsb)          ( (((u32)1<<((msb)-(lsb)+1))-1) << (lsb) )
  18. #define GET(v, msb, lsb)        ( ((u32)(v) & MASK(msb,lsb)) >> (lsb) )
  19. #define SET(v, f, msb, lsb)     ( (v) = ((v)&~MASK(msb,lsb)) | (( (u32)(f)<<(lsb) ) & MASK(msb,lsb)) )
  20. #define GET_DBE_FIELD(reg, field, v)        GET((v), DBE_##reg##_##field##_MSB, DBE_##reg##_##field##_LSB)
  21. #define SET_DBE_FIELD(reg, field, v, f)     SET((v), (f), DBE_##reg##_##field##_MSB, DBE_##reg##_##field##_LSB)
  22. /* NOTE: All loads/stores must be 32 bits and uncached */
  23. #define DBE_REG_PHYS 0xd0000000
  24. #define DBE_REG_SIZE        0x01000000
  25. typedef struct {
  26.   volatile u32 ctrlstat;     /* 0x000000 general control */
  27.   volatile u32 dotclock;     /* 0x000004 dot clock PLL control */
  28.   volatile u32 i2c;          /* 0x000008 crt I2C control */
  29.   volatile u32 sysclk;       /* 0x00000c system clock PLL control */
  30.   volatile u32 i2cfp;        /* 0x000010 flat panel I2C control */
  31.   volatile u32 id;           /* 0x000014 device id/chip revision */
  32.   volatile u32 config;       /* 0x000018 power on configuration */
  33.   volatile u32 bist;         /* 0x00001c internal bist status */
  34.   char _pad0[ 0x010000 - 0x000020 ];
  35.   volatile u32 vt_xy;        /* 0x010000 current dot coords */
  36.   volatile u32 vt_xymax;     /* 0x010004 maximum dot coords */
  37.   volatile u32 vt_vsync;     /* 0x010008 vsync on/off */
  38.   volatile u32 vt_hsync;     /* 0x01000c hsync on/off */
  39.   volatile u32 vt_vblank;    /* 0x010010 vblank on/off */
  40.   volatile u32 vt_hblank;    /* 0x010014 hblank on/off */
  41.   volatile u32 vt_flags;     /* 0x010018 polarity of vt signals */
  42.   volatile u32 vt_f2rf_lock; /* 0x01001c f2rf & framelck y coord */
  43.   volatile u32 vt_intr01;    /* 0x010020 intr 0,1 y coords */
  44.   volatile u32 vt_intr23;    /* 0x010024 intr 2,3 y coords */
  45.   volatile u32 fp_hdrv;      /* 0x010028 flat panel hdrv on/off */
  46.   volatile u32 fp_vdrv;      /* 0x01002c flat panel vdrv on/off */
  47.   volatile u32 fp_de;        /* 0x010030 flat panel de on/off */
  48.   volatile u32 vt_hpixen;    /* 0x010034 intrnl horiz pixel on/off*/
  49.   volatile u32 vt_vpixen;    /* 0x010038 intrnl vert pixel on/off */
  50.   volatile u32 vt_hcmap;     /* 0x01003c cmap write (horiz) */
  51.   volatile u32 vt_vcmap;     /* 0x010040 cmap write (vert) */
  52.   volatile u32 did_start_xy; /* 0x010044 eol/f did/xy reset val */
  53.   volatile u32 crs_start_xy; /* 0x010048 eol/f crs/xy reset val */
  54.   volatile u32 vc_start_xy;  /* 0x01004c eol/f vc/xy reset val */
  55.   char _pad1[ 0x020000 - 0x010050 ];
  56.   volatile u32 ovr_width_tile; /* 0x020000 overlay plane ctrl 0 */
  57.   volatile u32 ovr_inhwctrl;   /* 0x020004 overlay plane ctrl 1 */
  58.   volatile u32 ovr_control;    /* 0x020008 overlay plane ctrl 1 */
  59.   char _pad2[ 0x030000 - 0x02000C ];
  60.   volatile u32 frm_size_tile;  /* 0x030000 normal plane ctrl 0 */
  61.   volatile u32 frm_size_pixel; /* 0x030004 normal plane ctrl 1 */
  62.   volatile u32 frm_inhwctrl;   /* 0x030008 normal plane ctrl 2 */
  63.   volatile u32 frm_control;    /* 0x03000C normal plane ctrl 3 */
  64.   char _pad3[ 0x040000 - 0x030010 ];
  65.   volatile u32 did_inhwctrl;   /* 0x040000 DID control */
  66.   volatile u32 did_control;    /* 0x040004 DID shadow */
  67.   char _pad4[ 0x048000 - 0x040008 ];
  68.   volatile u32 mode_regs[32];  /* 0x048000 - 0x04807c WID table */
  69.   char _pad5[ 0x050000 - 0x048080 ];
  70.   volatile u32 cmap[6144];     /* 0x050000 - 0x055ffc color map */
  71.   char _pad6[ 0x058000 - 0x056000 ];
  72.   volatile u32 cm_fifo;        /* 0x058000 color map fifo status */
  73.   char _pad7[ 0x060000 - 0x058004 ];
  74.   volatile u32 gmap[256];      /* 0x060000 - 0x0603fc gamma map */
  75.   char _pad8[ 0x068000 - 0x060400 ];
  76.   volatile u32 gmap10[1024];   /* 0x068000 - 0x068ffc gamma map */
  77.   char _pad9[ 0x070000 - 0x069000 ];
  78.   volatile u32 crs_pos;        /* 0x070000 cusror control 0 */
  79.   volatile u32 crs_ctl;        /* 0x070004 cusror control 1 */
  80.   volatile u32 crs_cmap[3];    /* 0x070008 - 0x070010 crs cmap */
  81.   char _pad10[ 0x078000 - 0x070014 ];
  82.   volatile u32 crs_glyph[64];  /* 0x078000 - 0x0780fc crs glyph */
  83.   char _pad11[ 0x080000 - 0x078100 ];
  84.   volatile u32 vc_0;           /* 0x080000 video capture crtl 0 */
  85.   volatile u32 vc_1;           /* 0x080004 video capture crtl 1 */
  86.   volatile u32 vc_2;           /* 0x080008 video capture crtl 2 */
  87.   volatile u32 vc_3;           /* 0x08000c video capture crtl 3 */
  88.   volatile u32 vc_4;           /* 0x080010 video capture crtl 3 */
  89.   volatile u32 vc_5;           /* 0x080014 video capture crtl 3 */
  90.   volatile u32 vc_6;           /* 0x080018 video capture crtl 3 */
  91.   volatile u32 vc_7;           /* 0x08001c video capture crtl 3 */
  92.   volatile u32 vc_8;           /* 0x08000c video capture crtl 3 */
  93. } asregs;
  94. /* Bit mask information */
  95. #define DBE_CTRLSTAT_CHIPID_MSB     3
  96. #define DBE_CTRLSTAT_CHIPID_LSB     0
  97. #define DBE_CTRLSTAT_SENSE_N_MSB    4
  98. #define DBE_CTRLSTAT_SENSE_N_LSB    4
  99. #define DBE_CTRLSTAT_PCLKSEL_MSB    29
  100. #define DBE_CTRLSTAT_PCLKSEL_LSB    28
  101. #define DBE_DOTCLK_M_MSB            7
  102. #define DBE_DOTCLK_M_LSB            0
  103. #define DBE_DOTCLK_N_MSB            13
  104. #define DBE_DOTCLK_N_LSB            8
  105. #define DBE_DOTCLK_P_MSB            15
  106. #define DBE_DOTCLK_P_LSB            14
  107. #define DBE_DOTCLK_RUN_MSB          20
  108. #define DBE_DOTCLK_RUN_LSB          20
  109. #define DBE_VT_XY_VT_FREEZE_MSB     31
  110. #define DBE_VT_XY_VT_FREEZE_LSB     31
  111. #define DBE_VT_VSYNC_VT_VSYNC_ON_MSB        23
  112. #define DBE_VT_VSYNC_VT_VSYNC_ON_LSB        12
  113. #define DBE_VT_VSYNC_VT_VSYNC_OFF_MSB       11
  114. #define DBE_VT_VSYNC_VT_VSYNC_OFF_LSB       0
  115. #define DBE_VT_HSYNC_VT_HSYNC_ON_MSB        23
  116. #define DBE_VT_HSYNC_VT_HSYNC_ON_LSB        12
  117. #define DBE_VT_HSYNC_VT_HSYNC_OFF_MSB       11
  118. #define DBE_VT_HSYNC_VT_HSYNC_OFF_LSB       0
  119. #define DBE_VT_VBLANK_VT_VBLANK_ON_MSB        23
  120. #define DBE_VT_VBLANK_VT_VBLANK_ON_LSB        12
  121. #define DBE_VT_VBLANK_VT_VBLANK_OFF_MSB       11
  122. #define DBE_VT_VBLANK_VT_VBLANK_OFF_LSB       0
  123. #define DBE_VT_HBLANK_VT_HBLANK_ON_MSB        23
  124. #define DBE_VT_HBLANK_VT_HBLANK_ON_LSB        12
  125. #define DBE_VT_HBLANK_VT_HBLANK_OFF_MSB       11
  126. #define DBE_VT_HBLANK_VT_HBLANK_OFF_LSB       0
  127. #define DBE_VT_VCMAP_VT_VCMAP_ON_MSB        23
  128. #define DBE_VT_VCMAP_VT_VCMAP_ON_LSB        12
  129. #define DBE_VT_VCMAP_VT_VCMAP_OFF_MSB       11
  130. #define DBE_VT_VCMAP_VT_VCMAP_OFF_LSB       0
  131. #define DBE_VT_HCMAP_VT_HCMAP_ON_MSB        23
  132. #define DBE_VT_HCMAP_VT_HCMAP_ON_LSB        12
  133. #define DBE_VT_HCMAP_VT_HCMAP_OFF_MSB       11
  134. #define DBE_VT_HCMAP_VT_HCMAP_OFF_LSB       0
  135. #define DBE_VT_XYMAX_VT_MAXX_MSB    11
  136. #define DBE_VT_XYMAX_VT_MAXX_LSB    0
  137. #define DBE_VT_XYMAX_VT_MAXY_MSB    23
  138. #define DBE_VT_XYMAX_VT_MAXY_LSB    12
  139. #define DBE_VT_HPIXEN_VT_HPIXEN_ON_MSB      23
  140. #define DBE_VT_HPIXEN_VT_HPIXEN_ON_LSB      12
  141. #define DBE_VT_HPIXEN_VT_HPIXEN_OFF_MSB     11
  142. #define DBE_VT_HPIXEN_VT_HPIXEN_OFF_LSB     0
  143. #define DBE_VT_VPIXEN_VT_VPIXEN_ON_MSB      23
  144. #define DBE_VT_VPIXEN_VT_VPIXEN_ON_LSB      12
  145. #define DBE_VT_VPIXEN_VT_VPIXEN_OFF_MSB     11
  146. #define DBE_VT_VPIXEN_VT_VPIXEN_OFF_LSB     0
  147. #define DBE_OVR_CONTROL_OVR_DMA_ENABLE_MSB  0
  148. #define DBE_OVR_CONTROL_OVR_DMA_ENABLE_LSB  0
  149. #define DBE_OVR_INHWCTRL_OVR_DMA_ENABLE_MSB 0
  150. #define DBE_OVR_INHWCTRL_OVR_DMA_ENABLE_LSB 0
  151. #define DBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_MSB       13
  152. #define DBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_LSB       13
  153. #define DBE_FRM_CONTROL_FRM_DMA_ENABLE_MSB  0
  154. #define DBE_FRM_CONTROL_FRM_DMA_ENABLE_LSB  0
  155. #define DBE_FRM_CONTROL_FRM_TILE_PTR_MSB    31
  156. #define DBE_FRM_CONTROL_FRM_TILE_PTR_LSB    9
  157. #define DBE_FRM_CONTROL_FRM_LINEAR_MSB      1
  158. #define DBE_FRM_CONTROL_FRM_LINEAR_LSB      1
  159. #define DBE_FRM_INHWCTRL_FRM_DMA_ENABLE_MSB 0
  160. #define DBE_FRM_INHWCTRL_FRM_DMA_ENABLE_LSB 0
  161. #define DBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_MSB        12
  162. #define DBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_LSB        5
  163. #define DBE_FRM_SIZE_TILE_FRM_RHS_MSB       4
  164. #define DBE_FRM_SIZE_TILE_FRM_RHS_LSB       0
  165. #define DBE_FRM_SIZE_TILE_FRM_DEPTH_MSB     14
  166. #define DBE_FRM_SIZE_TILE_FRM_DEPTH_LSB     13
  167. #define DBE_FRM_SIZE_TILE_FRM_FIFO_RESET_MSB        15
  168. #define DBE_FRM_SIZE_TILE_FRM_FIFO_RESET_LSB        15
  169. #define DBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_MSB        31
  170. #define DBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_LSB        16
  171. #define DBE_DID_CONTROL_DID_DMA_ENABLE_MSB  0
  172. #define DBE_DID_CONTROL_DID_DMA_ENABLE_LSB  0
  173. #define DBE_DID_INHWCTRL_DID_DMA_ENABLE_MSB 0
  174. #define DBE_DID_INHWCTRL_DID_DMA_ENABLE_LSB 0
  175. #define DBE_DID_START_XY_DID_STARTY_MSB     23
  176. #define DBE_DID_START_XY_DID_STARTY_LSB     12
  177. #define DBE_DID_START_XY_DID_STARTX_MSB     11
  178. #define DBE_DID_START_XY_DID_STARTX_LSB     0
  179. #define DBE_CRS_START_XY_CRS_STARTY_MSB     23
  180. #define DBE_CRS_START_XY_CRS_STARTY_LSB     12
  181. #define DBE_CRS_START_XY_CRS_STARTX_MSB     11
  182. #define DBE_CRS_START_XY_CRS_STARTX_LSB     0
  183. #define DBE_WID_TYP_MSB     4
  184. #define DBE_WID_TYP_LSB     2
  185. #define DBE_WID_BUF_MSB     1
  186. #define DBE_WID_BUF_LSB     0
  187. #define DBE_VC_START_XY_VC_STARTY_MSB       23
  188. #define DBE_VC_START_XY_VC_STARTY_LSB       12
  189. #define DBE_VC_START_XY_VC_STARTX_MSB       11
  190. #define DBE_VC_START_XY_VC_STARTX_LSB       0
  191. /* Constants */
  192. #define DBE_FRM_DEPTH_8     0
  193. #define DBE_FRM_DEPTH_16    1
  194. #define DBE_FRM_DEPTH_32    2
  195. #define DBE_CMODE_I8        0
  196. #define DBE_CMODE_I12       1
  197. #define DBE_CMODE_RG3B2     2
  198. #define DBE_CMODE_RGB4      3
  199. #define DBE_CMODE_ARGB5     4
  200. #define DBE_CMODE_RGB8      5
  201. #define DBE_CMODE_RGBA5     6
  202. #define DBE_CMODE_RGB10     7
  203. #define DBE_BMODE_BOTH      3
  204. #define DBE_CRS_MAGIC       54
  205. /* Config Register (DBE Only) Definitions */
  206. #define DBE_CONFIG_VDAC_ENABLE       0x00000001
  207. #define DBE_CONFIG_VDAC_GSYNC        0x00000002
  208. #define DBE_CONFIG_VDAC_PBLANK       0x00000004
  209. #define DBE_CONFIG_FPENABLE          0x00000008
  210. #define DBE_CONFIG_LENDIAN           0x00000020
  211. #define DBE_CONFIG_TILEHIST          0x00000040
  212. #define DBE_CONFIG_EXT_ADDR          0x00000080
  213. #define DBE_CONFIG_FBDEV        ( DBE_CONFIG_VDAC_ENABLE | 
  214.                                       DBE_CONFIG_VDAC_GSYNC  | 
  215.                                       DBE_CONFIG_VDAC_PBLANK | 
  216.                                       DBE_CONFIG_LENDIAN     | 
  217.                                       DBE_CONFIG_EXT_ADDR )
  218. /*
  219.  * Available Video Timings and Corresponding Indices
  220.  */
  221. typedef enum {
  222.   DBE_VT_640_480_60,
  223.   DBE_VT_800_600_60,
  224.   DBE_VT_800_600_75,
  225.   DBE_VT_800_600_120,
  226.   DBE_VT_1024_768_50,
  227.   DBE_VT_1024_768_60,
  228.   DBE_VT_1024_768_75,
  229.   DBE_VT_1024_768_85,
  230.   DBE_VT_1024_768_120,
  231.   DBE_VT_1280_1024_50,
  232.   DBE_VT_1280_1024_60,
  233.   DBE_VT_1280_1024_75,
  234.   DBE_VT_1280_1024_85,
  235.   DBE_VT_1600_1024_53,
  236.   DBE_VT_1600_1024_60,
  237.   DBE_VT_1600_1200_50,
  238.   DBE_VT_1600_1200_60,
  239.   DBE_VT_1600_1200_75,
  240.   DBE_VT_1920_1080_50,
  241.   DBE_VT_1920_1080_60,
  242.   DBE_VT_1920_1080_72,
  243.   DBE_VT_1920_1200_50,
  244.   DBE_VT_1920_1200_60,
  245.   DBE_VT_1920_1200_66,
  246.   DBE_VT_UNKNOWN
  247. } dbe_timing_t;
  248. /*
  249.  * Crime Video Timing Data Structure
  250.  */
  251. typedef struct dbe_timing_info
  252. {
  253.   dbe_timing_t type;
  254.   int flags;
  255.   short width;     /* Monitor resolution */
  256.   short height;
  257.   int fields_sec;     /* fields/sec  (Hz -3 dec. places */
  258.   int cfreq;     /* pixel clock frequency (MHz -3 dec. places) */
  259.   short htotal;     /* Horizontal total pixels */
  260.   short hblank_start;     /* Horizontal blank start */
  261.   short hblank_end;     /* Horizontal blank end */
  262.   short hsync_start;     /* Horizontal sync start */
  263.   short hsync_end;     /* Horizontal sync end */
  264.   short vtotal;     /* Vertical total lines */
  265.   short vblank_start;     /* Vertical blank start */
  266.   short vblank_end;     /* Vertical blank end */
  267.   short vsync_start;     /* Vertical sync start */
  268.   short vsync_end;     /* Vertical sync end */
  269.   short pll_m;     /* PLL M parameter */
  270.   short pll_n;     /* PLL P parameter */
  271.   short pll_p;     /* PLL N parameter */
  272. } dbe_timing_info_t;
  273. /* Defines for dbe_vof_info_t flags */
  274. #define DBE_VOF_UNKNOWNMON    1
  275. #define DBE_VOF_STEREO        2
  276. #define DBE_VOF_DO_GENSYNC    4          /* enable incoming sync */
  277. #define DBE_VOF_SYNC_ON_GREEN 8          /* sync on green */
  278. #define DBE_VOF_FLATPANEL     0x1000     /* FLATPANEL Timing */
  279. #define DBE_VOF_MAGICKEY      0x2000     /* Backdoor key */
  280. /*
  281.  * DBE Timing Tables
  282.  */
  283. #ifdef INCLUDE_TIMING_TABLE_DATA
  284. struct dbe_timing_info dbeVTimings[] = {
  285.   {
  286.     DBE_VT_640_480_60,
  287.     /* flags, width, height, fields_sec, cfreq */
  288.     0,   640, 480, 59940, 25175,
  289.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  290.     800, 640,     800, 656,      752,
  291.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  292.     525, 480,     525, 490,     492,
  293.     /* pll_m, pll_n, pll_p */
  294.     15,     2, 3
  295.   },
  296.   {
  297.     DBE_VT_800_600_60,
  298.     /* flags, width, height, fields_sec, cfreq */
  299.     0,     800, 600, 60317, 40000,
  300.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  301.     1056, 800,     1056, 840,     968,
  302.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  303.     628, 600,     628, 601,     605,
  304.     /* pll_m, pll_n, pll_p */
  305.     3,     1, 1
  306.   },
  307.   {
  308.     DBE_VT_800_600_75,
  309.     /* flags, width,     height, fields_sec,     cfreq */
  310.     0,     800,     600, 75000,     49500,
  311.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  312.     1056, 800,     1056, 816,     896,
  313.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  314.     625, 600,     625, 601,     604,
  315.     /* pll_m, pll_n,     pll_p */
  316.     11,     3,         1
  317.   },
  318.   {
  319.     DBE_VT_800_600_120,
  320.     /* flags, width, height, fields_sec,     cfreq */
  321.     DBE_VOF_STEREO,     800, 600, 119800,     82978,
  322.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  323.     1040, 800,     1040, 856,     976,
  324.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  325.     666, 600,     666, 637,     643,
  326.     /* pll_m, pll_n,     pll_p */
  327.     31,     5,         1
  328.   },
  329.   {
  330.     DBE_VT_1024_768_50,
  331.     /* flags, width,     height, fields_sec,     cfreq */
  332.     0,     1024,     768, 50000,     54163,
  333.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  334.     1344, 1024,     1344, 1048,     1184,
  335.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  336.     806, 768,     806, 771,     777,
  337.     /* pll_m, pll_n,     pll_p */
  338.     4,     1,         1
  339.   },
  340.   {
  341.     DBE_VT_1024_768_60,
  342.     /* flags, width, height, fields_sec, cfreq */
  343.     0,     1024, 768, 60004, 65000,
  344.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  345.     1344, 1024,     1344, 1048,     1184,
  346.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  347.     806, 768,     806, 771,     777,
  348.     /* pll_m, pll_n, pll_p */
  349.     12,     5, 0
  350.   },
  351.   {
  352.     DBE_VT_1024_768_75,
  353.     /* flags, width, height, fields_sec, cfreq */
  354.     0,     1024, 768, 75029, 78750,
  355.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  356.     1312, 1024,     1312, 1040,     1136,
  357.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  358.     800, 768,     800, 769,     772,
  359.     /* pll_m, pll_n, pll_p */
  360.     29,     5, 1
  361.   },
  362.   {
  363.     DBE_VT_1024_768_85,
  364.     /* flags, width, height, fields_sec, cfreq */
  365.     0,     1024, 768, 84997, 94500,
  366.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  367.     1376, 1024,     1376, 1072,     1168,
  368.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  369.     808, 768,     808, 769,     772,
  370.     /* pll_m, pll_n, pll_p */
  371.     7,     2, 0
  372.   },
  373.   {
  374.     DBE_VT_1024_768_120,
  375.     /* flags, width, height, fields_sec, cfreq */
  376.     DBE_VOF_STEREO,     1024, 768, 119800, 133195,
  377.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  378.     1376, 1024,     1376, 1072,     1168,
  379.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  380.     808, 768,     808, 769,     772,
  381.     /* pll_m, pll_n, pll_p */
  382.     5,     1, 0
  383.   },
  384.   {
  385.     DBE_VT_1280_1024_50,
  386.     /* flags, width, height, fields_sec, cfreq */
  387.     0,     1280, 1024, 50000, 89460,
  388.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  389.     1680, 1280,     1680, 1360,     1480,
  390.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  391.     1065, 1024,     1065, 1027,     1030,
  392.     /* pll_m, pll_n, pll_p */
  393.     10,     3, 0
  394.   },
  395.   {
  396.     DBE_VT_1280_1024_60,
  397.     /* flags, width, height, fields_sec, cfreq */
  398.     0,     1280, 1024, 60020, 108000,
  399.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  400.     1688, 1280,     1688, 1328,     1440,
  401.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  402.     1066, 1024,     1066, 1025,     1028,
  403.     /* pll_m, pll_n, pll_p */
  404.     4,     1,     0
  405.   },
  406.   {
  407.     DBE_VT_1280_1024_75,
  408.     /* flags, width, height, fields_sec, cfreq */
  409.     0,     1280, 1024, 75025, 135000,
  410.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  411.     1688, 1280,     1688, 1296,     1440,
  412.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  413.     1066, 1024,     1066, 1025,     1028,
  414.     /* pll_m, pll_n, pll_p */
  415.     5,     1, 0
  416.   },
  417.   {
  418.     DBE_VT_1280_1024_85,
  419.     /* flags, width,     height, fields_sec,     cfreq */
  420.     0,     1280,     1024, 85024,     157500,
  421.     /* htotal, hblank_start, hblank_end, hsync_start, hsync_end */
  422.     1728, 1280,     1728, 1344,     1504,
  423.     /* vtotal, vblank_start, vblank_end, vsync_start, vsync_end */
  424.     1072, 1024,     1072, 1025,     1028,
  425.     /* pll_m, pll_n,     pll_p */
  426.     29,     5,         0
  427.   },
  428.   {
  429.     DBE_VT_1600_1024_53,
  430.     /* flags, width, height, fields_sec,     cfreq */
  431.     DBE_VOF_FLATPANEL | DBE_VOF_MAGICKEY,
  432.     1600, 1024, 53000, 107447,
  433.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  434.     1900,   1600,           1900,           1630,           1730,
  435.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  436.     1067,   1024,           1067,           1027,           1030,
  437.     /* pll_m,  pll_n,          pll_p */
  438.     4,      1,              0
  439.   },
  440.   {
  441.     DBE_VT_1600_1024_60,
  442.     /* flags, width,          height, fields_sec,     cfreq */
  443.     DBE_VOF_FLATPANEL,   1600,           1024, 60000,          106913,
  444.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  445.     1670,   1600,           1670,           1630,           1650,
  446.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  447.     1067,   1024,           1067,           1027,           1030,
  448.     /* pll_m,  pll_n,          pll_p */
  449.     4,      1,              0
  450.   },
  451.   {
  452.     DBE_VT_1600_1200_50,
  453.     /* flags,  width,          height,         fields_sec,     cfreq */
  454.     0,      1600,           1200,           50000,          130500,
  455.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  456.     2088,   1600,           2088,           1644,           1764,
  457.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  458.     1250,   1200,           1250,           1205,           1211,
  459.     /* pll_m,  pll_n,          pll_p */
  460.     24,     5,              0
  461.   },
  462.   {
  463.     DBE_VT_1600_1200_60,
  464.     /* flags,  width,          height,         fields_sec,     cfreq */
  465.     0,      1600,           1200,           59940,          162000,
  466.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  467.     2160,   1600,           2160,           1644,           1856,
  468.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  469.     1250,   1200,           1250,           1201,           1204,
  470.     /* pll_m,  pll_n,          pll_p */
  471.     6, 1,              0
  472.   },
  473.   {
  474.     DBE_VT_1600_1200_75,
  475.     /* flags,  width,          height,         fields_sec,     cfreq */
  476.     0,      1600,           1200,           75000,          202500,
  477.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  478.     2160,   1600,           2160,           1644,           1856,
  479.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  480.     1250,   1200,           1250,           1201,           1204,
  481.     /* pll_m,  pll_n,          pll_p */
  482.     15, 2,              0
  483.   },
  484.   {
  485.     DBE_VT_1920_1080_50,
  486.     /* flags,  width,          height,         fields_sec,     cfreq */
  487.     0,      1920,           1080,           50000,          133200,
  488.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  489.     2368,   1920,           2368,           1952,           2096,
  490.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  491.     1125,   1080,           1125,           1083,           1086,
  492.     /* pll_m,  pll_n,          pll_p */
  493.     5,      1,              0
  494.   },
  495.   {
  496.     DBE_VT_1920_1080_60,
  497.     /* flags,  width,          height,         fields_sec,     cfreq */
  498.     0,      1920,           1080,           59940,          159840,
  499.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  500.     2368,   1920,           2368,           1952,           2096,
  501.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  502.     1125,   1080,           1125,           1083,           1086,
  503.     /* pll_m,  pll_n,          pll_p */
  504.     6,      1,              0
  505.   },
  506.   {
  507.     DBE_VT_1920_1080_72,
  508.     /* flags,  width,          height,         fields_sec,     cfreq */
  509.     0,      1920,           1080,           72000,          216023,
  510.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  511.     2560,   1920,           2560,           1968,           2184,
  512.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  513.     1172,   1080,           1172,           1083,           1086,
  514.     /* pll_m,  pll_n,          pll_p */
  515.     8,      1,              0
  516.   },
  517.   {
  518.     DBE_VT_1920_1200_50,
  519.     /* flags,  width,          height,         fields_sec,     cfreq */
  520.     0,      1920,           1200,           50000,          161500,
  521.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  522.     2584,   1920,           2584,           1984,           2240,
  523.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  524.     1250,   1200,           1250,           1203,           1206,
  525.     /* pll_m,  pll_n,          pll_p */
  526.     6,      1,              0
  527.   },
  528.   {
  529.     DBE_VT_1920_1200_60,
  530.     /* flags,  width,          height,         fields_sec,     cfreq */
  531.     0,      1920,           1200,           59940,          193800,
  532.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  533.     2584,   1920,           2584,           1984,           2240,
  534.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  535.     1250,   1200,           1250,           1203,           1206,
  536.     /* pll_m,  pll_n,          pll_p */
  537.     29,     4,              0
  538.   },
  539.   {
  540.     DBE_VT_1920_1200_66,
  541.     /* flags,  width,          height,         fields_sec,     cfreq */
  542.     0,      1920,           1200,           66000,          213180,
  543.     /* htotal, hblank_start,   hblank_end,     hsync_start,    hsync_end */
  544.     2584,   1920,           2584,           1984,           2240,
  545.     /* vtotal, vblank_start,   vblank_end,     vsync_start,    vsync_end */
  546.     1250,   1200,           1250,           1203,           1206,
  547.     /* pll_m,  pll_n,          pll_p */
  548.     8,      1,              0
  549.   }
  550. };
  551. #define DBE_VT_SIZE  (sizeof(dbeVTimings)/sizeof(dbeVTimings[0]))
  552. #endif // INCLUDE_TIMING_TABLE_DATA
  553. #endif // ! __SGIVWFB_H__