home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / video / gbe.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  10.5 KB  |  318 lines

  1. /*
  2.  * include/video/gbe.h -- SGI GBE (Graphics Back End)
  3.  *
  4.  * Copyright (C) 1999 Silicon Graphics, Inc. (Jeffrey Newquist)
  5.  *
  6.  * This file is subject to the terms and conditions of the GNU General Public
  7.  * License version 2 as published by the Free Software Foundation.
  8.  */
  9.  
  10. #ifndef __GBE_H__
  11. #define __GBE_H__
  12.  
  13. struct sgi_gbe {
  14.     volatile uint32_t ctrlstat;    /* general control */
  15.     volatile uint32_t dotclock;    /* dot clock PLL control */
  16.     volatile uint32_t i2c;        /* crt I2C control */
  17.     volatile uint32_t sysclk;    /* system clock PLL control */
  18.     volatile uint32_t i2cfp;    /* flat panel I2C control */
  19.     volatile uint32_t id;        /* device id/chip revision */
  20.     volatile uint32_t config;       /* power on configuration [1] */
  21.     volatile uint32_t bist;         /* internal bist status [1] */
  22.     uint32_t _pad0[0x010000/4 - 8];
  23.     volatile uint32_t vt_xy;    /* current dot coords */
  24.     volatile uint32_t vt_xymax;    /* maximum dot coords */
  25.     volatile uint32_t vt_vsync;    /* vsync on/off */
  26.     volatile uint32_t vt_hsync;    /* hsync on/off */
  27.     volatile uint32_t vt_vblank;    /* vblank on/off */
  28.     volatile uint32_t vt_hblank;    /* hblank on/off */
  29.     volatile uint32_t vt_flags;    /* polarity of vt signals */
  30.     volatile uint32_t vt_f2rf_lock;    /* f2rf & framelck y coord */
  31.     volatile uint32_t vt_intr01;    /* intr 0,1 y coords */
  32.     volatile uint32_t vt_intr23;    /* intr 2,3 y coords */
  33.     volatile uint32_t fp_hdrv;    /* flat panel hdrv on/off */
  34.     volatile uint32_t fp_vdrv;    /* flat panel vdrv on/off */
  35.     volatile uint32_t fp_de;    /* flat panel de on/off */
  36.     volatile uint32_t vt_hpixen;    /* intrnl horiz pixel on/off */
  37.     volatile uint32_t vt_vpixen;    /* intrnl vert pixel on/off */
  38.     volatile uint32_t vt_hcmap;    /* cmap write (horiz) */
  39.     volatile uint32_t vt_vcmap;    /* cmap write (vert) */
  40.     volatile uint32_t did_start_xy;    /* eol/f did/xy reset val */
  41.     volatile uint32_t crs_start_xy;    /* eol/f crs/xy reset val */
  42.     volatile uint32_t vc_start_xy;    /* eol/f vc/xy reset val */
  43.     uint32_t _pad1[0xffb0/4];
  44.     volatile uint32_t ovr_width_tile;/*overlay plane ctrl 0 */
  45.     volatile uint32_t ovr_inhwctrl;    /* overlay plane ctrl 1 */
  46.     volatile uint32_t ovr_control;    /* overlay plane ctrl 1 */
  47.     uint32_t _pad2[0xfff4/4];
  48.     volatile uint32_t frm_size_tile;/* normal plane ctrl 0 */
  49.     volatile uint32_t frm_size_pixel;/*normal plane ctrl 1 */
  50.     volatile uint32_t frm_inhwctrl;    /* normal plane ctrl 2 */
  51.     volatile uint32_t frm_control;    /* normal plane ctrl 3 */
  52.     uint32_t _pad3[0xfff0/4];
  53.     volatile uint32_t did_inhwctrl;    /* DID control */
  54.     volatile uint32_t did_control;    /* DID shadow */
  55.     uint32_t _pad4[0x7ff8/4];
  56.     volatile uint32_t mode_regs[32];/* WID table */
  57.     uint32_t _pad5[0x7f80/4];
  58.     volatile uint32_t cmap[6144];    /* color map */
  59.     uint32_t _pad6[0x2000/4];
  60.     volatile uint32_t cm_fifo;    /* color map fifo status */
  61.     uint32_t _pad7[0x7ffc/4];
  62.     volatile uint32_t gmap[256];    /* gamma map */
  63.     uint32_t _pad8[0x7c00/4];
  64.     volatile uint32_t gmap10[1024];    /* gamma map */
  65.     uint32_t _pad9[0x7000/4];
  66.     volatile uint32_t crs_pos;    /* cusror control 0 */
  67.     volatile uint32_t crs_ctl;    /* cusror control 1 */
  68.     volatile uint32_t crs_cmap[3];    /* crs cmap */
  69.     uint32_t _pad10[0x7fec/4];
  70.     volatile uint32_t crs_glyph[64];/* crs glyph */
  71.     uint32_t _pad11[0x7f00/4];
  72.     volatile uint32_t vc_0;    /* video capture crtl 0 */
  73.     volatile uint32_t vc_1;    /* video capture crtl 1 */
  74.     volatile uint32_t vc_2;    /* video capture crtl 2 */
  75.     volatile uint32_t vc_3;    /* video capture crtl 3 */
  76.     volatile uint32_t vc_4;    /* video capture crtl 4 */
  77.     volatile uint32_t vc_5;    /* video capture crtl 5 */
  78.     volatile uint32_t vc_6;    /* video capture crtl 6 */
  79.     volatile uint32_t vc_7;    /* video capture crtl 7 */
  80.     volatile uint32_t vc_8;    /* video capture crtl 8 */
  81. };
  82.  
  83. #define MASK(msb, lsb)        \
  84.     ( (((u32)1<<((msb)-(lsb)+1))-1) << (lsb) )
  85. #define GET(v, msb, lsb)    \
  86.     ( ((u32)(v) & MASK(msb,lsb)) >> (lsb) )
  87. #define SET(v, f, msb, lsb)    \
  88.     ( (v) = ((v)&~MASK(msb,lsb)) | (( (u32)(f)<<(lsb) ) & MASK(msb,lsb)) )
  89.  
  90. #define GET_GBE_FIELD(reg, field, v)        \
  91.     GET((v), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB)
  92. #define SET_GBE_FIELD(reg, field, v, f)        \
  93.     SET((v), (f), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB)
  94.  
  95. /*
  96.  * Bit mask information
  97.  */
  98. #define GBE_CTRLSTAT_CHIPID_MSB         3
  99. #define GBE_CTRLSTAT_CHIPID_LSB         0
  100. #define GBE_CTRLSTAT_SENSE_N_MSB     4
  101. #define GBE_CTRLSTAT_SENSE_N_LSB     4
  102. #define GBE_CTRLSTAT_PCLKSEL_MSB    29
  103. #define GBE_CTRLSTAT_PCLKSEL_LSB    28
  104.  
  105. #define GBE_DOTCLK_M_MSB         7
  106. #define GBE_DOTCLK_M_LSB         0
  107. #define GBE_DOTCLK_N_MSB        13
  108. #define GBE_DOTCLK_N_LSB         8
  109. #define GBE_DOTCLK_P_MSB        15
  110. #define GBE_DOTCLK_P_LSB        14
  111. #define GBE_DOTCLK_RUN_MSB        20
  112. #define GBE_DOTCLK_RUN_LSB        20
  113.  
  114. #define GBE_VT_XY_Y_MSB        23
  115. #define GBE_VT_XY_Y_LSB        12
  116. #define GBE_VT_XY_X_MSB        11
  117. #define GBE_VT_XY_X_LSB         0
  118. #define GBE_VT_XY_FREEZE_MSB        31
  119. #define GBE_VT_XY_FREEZE_LSB        31
  120.  
  121. #define GBE_FP_VDRV_ON_MSB    23
  122. #define GBE_FP_VDRV_ON_LSB    12
  123. #define GBE_FP_VDRV_OFF_MSB    11
  124. #define GBE_FP_VDRV_OFF_LSB    0
  125.  
  126. #define GBE_FP_HDRV_ON_MSB    23
  127. #define GBE_FP_HDRV_ON_LSB    12
  128. #define GBE_FP_HDRV_OFF_MSB    11
  129. #define GBE_FP_HDRV_OFF_LSB    0
  130.  
  131. #define GBE_FP_DE_ON_MSB        23
  132. #define GBE_FP_DE_ON_LSB        12
  133. #define GBE_FP_DE_OFF_MSB        11
  134. #define GBE_FP_DE_OFF_LSB        0
  135.  
  136. #define GBE_VT_VSYNC_VSYNC_ON_MSB    23
  137. #define GBE_VT_VSYNC_VSYNC_ON_LSB    12
  138. #define GBE_VT_VSYNC_VSYNC_OFF_MSB    11
  139. #define GBE_VT_VSYNC_VSYNC_OFF_LSB     0
  140.  
  141. #define GBE_VT_HSYNC_HSYNC_ON_MSB    23
  142. #define GBE_VT_HSYNC_HSYNC_ON_LSB    12
  143. #define GBE_VT_HSYNC_HSYNC_OFF_MSB    11
  144. #define GBE_VT_HSYNC_HSYNC_OFF_LSB     0
  145.  
  146. #define GBE_VT_VBLANK_VBLANK_ON_MSB    23
  147. #define GBE_VT_VBLANK_VBLANK_ON_LSB    12
  148. #define GBE_VT_VBLANK_VBLANK_OFF_MSB    11
  149. #define GBE_VT_VBLANK_VBLANK_OFF_LSB     0
  150.  
  151. #define GBE_VT_HBLANK_HBLANK_ON_MSB    23
  152. #define GBE_VT_HBLANK_HBLANK_ON_LSB    12
  153. #define GBE_VT_HBLANK_HBLANK_OFF_MSB    11
  154. #define GBE_VT_HBLANK_HBLANK_OFF_LSB     0
  155.  
  156. #define GBE_VT_FLAGS_F2RF_HIGH_MSB     6
  157. #define GBE_VT_FLAGS_F2RF_HIGH_LSB     6
  158. #define GBE_VT_FLAGS_SYNC_LOW_MSB     5
  159. #define GBE_VT_FLAGS_SYNC_LOW_LSB     5
  160. #define GBE_VT_FLAGS_SYNC_HIGH_MSB     4
  161. #define GBE_VT_FLAGS_SYNC_HIGH_LSB     4
  162. #define GBE_VT_FLAGS_HDRV_LOW_MSB     3
  163. #define GBE_VT_FLAGS_HDRV_LOW_LSB     3
  164. #define GBE_VT_FLAGS_HDRV_INVERT_MSB     2
  165. #define GBE_VT_FLAGS_HDRV_INVERT_LSB     2
  166. #define GBE_VT_FLAGS_VDRV_LOW_MSB     1
  167. #define GBE_VT_FLAGS_VDRV_LOW_LSB     1
  168. #define GBE_VT_FLAGS_VDRV_INVERT_MSB     0
  169. #define GBE_VT_FLAGS_VDRV_INVERT_LSB     0
  170.  
  171. #define GBE_VT_VCMAP_VCMAP_ON_MSB    23
  172. #define GBE_VT_VCMAP_VCMAP_ON_LSB    12
  173. #define GBE_VT_VCMAP_VCMAP_OFF_MSB    11
  174. #define GBE_VT_VCMAP_VCMAP_OFF_LSB     0
  175.  
  176. #define GBE_VT_HCMAP_HCMAP_ON_MSB    23
  177. #define GBE_VT_HCMAP_HCMAP_ON_LSB    12
  178. #define GBE_VT_HCMAP_HCMAP_OFF_MSB    11
  179. #define GBE_VT_HCMAP_HCMAP_OFF_LSB     0
  180.  
  181. #define GBE_VT_XYMAX_MAXX_MSB    11
  182. #define GBE_VT_XYMAX_MAXX_LSB     0
  183. #define GBE_VT_XYMAX_MAXY_MSB    23
  184. #define GBE_VT_XYMAX_MAXY_LSB    12
  185.  
  186. #define GBE_VT_HPIXEN_HPIXEN_ON_MSB    23
  187. #define GBE_VT_HPIXEN_HPIXEN_ON_LSB    12
  188. #define GBE_VT_HPIXEN_HPIXEN_OFF_MSB    11
  189. #define GBE_VT_HPIXEN_HPIXEN_OFF_LSB     0
  190.  
  191. #define GBE_VT_VPIXEN_VPIXEN_ON_MSB    23
  192. #define GBE_VT_VPIXEN_VPIXEN_ON_LSB    12
  193. #define GBE_VT_VPIXEN_VPIXEN_OFF_MSB    11
  194. #define GBE_VT_VPIXEN_VPIXEN_OFF_LSB     0
  195.  
  196. #define GBE_OVR_CONTROL_OVR_DMA_ENABLE_MSB     0
  197. #define GBE_OVR_CONTROL_OVR_DMA_ENABLE_LSB     0
  198.  
  199. #define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_MSB     0
  200. #define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_LSB     0
  201.  
  202. #define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_MSB    13
  203. #define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_LSB    13
  204.  
  205. #define GBE_FRM_CONTROL_FRM_DMA_ENABLE_MSB     0
  206. #define GBE_FRM_CONTROL_FRM_DMA_ENABLE_LSB     0
  207. #define GBE_FRM_CONTROL_FRM_TILE_PTR_MSB    31
  208. #define GBE_FRM_CONTROL_FRM_TILE_PTR_LSB     9
  209. #define GBE_FRM_CONTROL_FRM_LINEAR_MSB         1
  210. #define GBE_FRM_CONTROL_FRM_LINEAR_LSB         1
  211.  
  212. #define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_MSB     0
  213. #define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_LSB     0
  214.  
  215. #define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_MSB    12
  216. #define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_LSB     5
  217. #define GBE_FRM_SIZE_TILE_FRM_RHS_MSB         4
  218. #define GBE_FRM_SIZE_TILE_FRM_RHS_LSB         0
  219. #define GBE_FRM_SIZE_TILE_FRM_DEPTH_MSB        14
  220. #define GBE_FRM_SIZE_TILE_FRM_DEPTH_LSB        13
  221. #define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_MSB    15
  222. #define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_LSB    15
  223.  
  224. #define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_MSB    31
  225. #define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_LSB    16
  226.  
  227. #define GBE_DID_CONTROL_DID_DMA_ENABLE_MSB     0
  228. #define GBE_DID_CONTROL_DID_DMA_ENABLE_LSB     0
  229. #define GBE_DID_INHWCTRL_DID_DMA_ENABLE_MSB     0
  230. #define GBE_DID_INHWCTRL_DID_DMA_ENABLE_LSB     0
  231.  
  232. #define GBE_DID_START_XY_DID_STARTY_MSB        23
  233. #define GBE_DID_START_XY_DID_STARTY_LSB        12
  234. #define GBE_DID_START_XY_DID_STARTX_MSB        11
  235. #define GBE_DID_START_XY_DID_STARTX_LSB         0
  236.  
  237. #define GBE_CRS_START_XY_CRS_STARTY_MSB        23
  238. #define GBE_CRS_START_XY_CRS_STARTY_LSB        12
  239. #define GBE_CRS_START_XY_CRS_STARTX_MSB        11
  240. #define GBE_CRS_START_XY_CRS_STARTX_LSB         0
  241.  
  242. #define GBE_WID_AUX_MSB        12
  243. #define GBE_WID_AUX_LSB        11
  244. #define GBE_WID_GAMMA_MSB    10
  245. #define GBE_WID_GAMMA_LSB    10
  246. #define GBE_WID_CM_MSB         9
  247. #define GBE_WID_CM_LSB         5
  248. #define GBE_WID_TYP_MSB         4
  249. #define GBE_WID_TYP_LSB         2
  250. #define GBE_WID_BUF_MSB         1
  251. #define GBE_WID_BUF_LSB         0
  252.  
  253. #define GBE_VC_START_XY_VC_STARTY_MSB    23
  254. #define GBE_VC_START_XY_VC_STARTY_LSB    12
  255. #define GBE_VC_START_XY_VC_STARTX_MSB    11
  256. #define GBE_VC_START_XY_VC_STARTX_LSB     0
  257.  
  258. /* Constants */
  259.  
  260. #define GBE_FRM_DEPTH_8        0
  261. #define GBE_FRM_DEPTH_16    1
  262. #define GBE_FRM_DEPTH_32    2
  263.  
  264. #define GBE_CMODE_I8        0
  265. #define GBE_CMODE_I12        1
  266. #define GBE_CMODE_RG3B2        2
  267. #define GBE_CMODE_RGB4        3
  268. #define GBE_CMODE_ARGB5        4
  269. #define GBE_CMODE_RGB8        5
  270. #define GBE_CMODE_RGBA5        6
  271. #define GBE_CMODE_RGB10        7
  272.  
  273. #define GBE_BMODE_BOTH        3
  274.  
  275. #define GBE_CRS_MAGIC        54
  276. #define GBE_PIXEN_MAGIC_ON    19
  277. #define GBE_PIXEN_MAGIC_OFF     2
  278.  
  279. #define GBE_TLB_SIZE        128
  280.  
  281. /* [1] - only GBE revision 2 and later */
  282.  
  283. /*
  284.  * Video Timing Data Structure
  285.  */
  286.  
  287. struct gbe_timing_info {
  288.     int flags;
  289.     short width;        /* Monitor resolution */
  290.     short height;
  291.     int fields_sec;        /* fields/sec  (Hz -3 dec. places */
  292.     int cfreq;        /* pixel clock frequency (MHz -3 dec. places) */
  293.     short htotal;        /* Horizontal total pixels */
  294.     short hblank_start;    /* Horizontal blank start */
  295.     short hblank_end;    /* Horizontal blank end */
  296.     short hsync_start;    /* Horizontal sync start */
  297.     short hsync_end;    /* Horizontal sync end */
  298.     short vtotal;        /* Vertical total lines */
  299.     short vblank_start;    /* Vertical blank start */
  300.     short vblank_end;    /* Vertical blank end */
  301.     short vsync_start;    /* Vertical sync start */
  302.     short vsync_end;    /* Vertical sync end */
  303.     short pll_m;        /* PLL M parameter */
  304.     short pll_n;        /* PLL P parameter */
  305.     short pll_p;        /* PLL N parameter */
  306. };
  307.  
  308. /* Defines for gbe_vof_info_t flags */
  309.  
  310. #define GBE_VOF_UNKNOWNMON    1
  311. #define GBE_VOF_STEREO        2
  312. #define GBE_VOF_DO_GENSYNC    4    /* enable incoming sync */
  313. #define GBE_VOF_SYNC_ON_GREEN    8    /* sync on green */
  314. #define GBE_VOF_FLATPANEL    0x1000    /* FLATPANEL Timing */
  315. #define GBE_VOF_MAGICKEY    0x2000    /* Backdoor key */
  316.  
  317. #endif        /* ! __GBE_H__ */
  318.