matrox_regs.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:10k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  * MGA Millennium (MGA2064W) functions
  3.  * MGA Mystique (MGA1064SG) functions
  4.  *
  5.  * Copyright 1996 The XFree86 Project, Inc.
  6.  *
  7.  * Authors
  8.  * Dirk Hohndel
  9.  * hohndel@XFree86.Org
  10.  * David Dawes
  11.  * dawes@XFree86.Org
  12.  * Contributors:
  13.  * Guy DESBIEF, Aix-en-provence, France
  14.  * g.desbief@aix.pacwan.net
  15.  * MGA1064SG Mystique register file
  16.  */
  17.   
  18. #ifndef _MGA_REG_H_
  19. #define _MGA_REG_H_
  20. #define MGAREG_DWGCTL 0x1c00
  21. #define MGAREG_MACCESS 0x1c04
  22. /* the following is a mystique only register */
  23. #define MGAREG_MCTLWTST 0x1c08
  24. #define MGAREG_ZORG 0x1c0c
  25. #define MGAREG_PAT0 0x1c10
  26. #define MGAREG_PAT1 0x1c14
  27. #define MGAREG_PLNWT 0x1c1c
  28. #define MGAREG_BCOL 0x1c20
  29. #define MGAREG_FCOL 0x1c24
  30. #define MGAREG_SRC0 0x1c30
  31. #define MGAREG_SRC1 0x1c34
  32. #define MGAREG_SRC2 0x1c38
  33. #define MGAREG_SRC3 0x1c3c
  34. #define MGAREG_XYSTRT 0x1c40
  35. #define MGAREG_XYEND 0x1c44
  36. #define MGAREG_SHIFT 0x1c50
  37. /* the following is a mystique only register */
  38. #define MGAREG_DMAPAD 0x1c54
  39. #define MGAREG_SGN 0x1c58
  40. #define MGAREG_LEN 0x1c5c
  41. #define MGAREG_AR0 0x1c60
  42. #define MGAREG_AR1 0x1c64
  43. #define MGAREG_AR2 0x1c68
  44. #define MGAREG_AR3 0x1c6c
  45. #define MGAREG_AR4 0x1c70
  46. #define MGAREG_AR5 0x1c74
  47. #define MGAREG_AR6 0x1c78
  48. #define MGAREG_CXBNDRY 0x1c80
  49. #define MGAREG_FXBNDRY 0x1c84
  50. #define MGAREG_YDSTLEN 0x1c88
  51. #define MGAREG_PITCH 0x1c8c
  52. #define MGAREG_YDST 0x1c90
  53. #define MGAREG_YDSTORG 0x1c94
  54. #define MGAREG_YTOP 0x1c98
  55. #define MGAREG_YBOT 0x1c9c
  56. #define MGAREG_CXLEFT 0x1ca0
  57. #define MGAREG_CXRIGHT 0x1ca4
  58. #define MGAREG_FXLEFT 0x1ca8
  59. #define MGAREG_FXRIGHT 0x1cac
  60. #define MGAREG_XDST 0x1cb0
  61. #define MGAREG_DR0 0x1cc0
  62. #define MGAREG_DR1 0x1cc4
  63. #define MGAREG_DR2 0x1cc8
  64. #define MGAREG_DR3 0x1ccc
  65. #define MGAREG_DR4 0x1cd0
  66. #define MGAREG_DR5 0x1cd4
  67. #define MGAREG_DR6 0x1cd8
  68. #define MGAREG_DR7 0x1cdc
  69. #define MGAREG_DR8 0x1ce0
  70. #define MGAREG_DR9 0x1ce4
  71. #define MGAREG_DR10 0x1ce8
  72. #define MGAREG_DR11 0x1cec
  73. #define MGAREG_DR12 0x1cf0
  74. #define MGAREG_DR13 0x1cf4
  75. #define MGAREG_DR14 0x1cf8
  76. #define MGAREG_DR15 0x1cfc
  77. #define MGAREG_SRCORG 0x2cb4
  78. #define MGAREG_DSTORG 0x2cb8
  79. /* add or or this to one of the previous "power registers" to start
  80.    the drawing engine */
  81. #define MGAREG_EXEC 0x0100
  82. #define MGAREG_FIFOSTATUS 0x1e10
  83. #define MGAREG_STATUS 0x1e14
  84. #define MGAREG_ICLEAR 0x1e18
  85. #define MGAREG_IEN 0x1e1c
  86. #define MGAREG_VCOUNT 0x1e20
  87. #define MGAREG_Reset 0x1e40
  88. #define MGAREG_OPMODE 0x1e54
  89. /* OPMODE register additives */
  90. #define MGAOPM_DMA_GENERAL (0x00 << 2)
  91. #define MGAOPM_DMA_BLIT (0x01 << 2)
  92. #define MGAOPM_DMA_VECTOR (0x10 << 2)
  93. /* DWGCTL register additives */
  94. /* Lines */
  95. #define MGADWG_LINE_OPEN 0x00
  96. #define MGADWG_AUTOLINE_OPEN 0x01
  97. #define MGADWG_LINE_CLOSE 0x02
  98. #define MGADWG_AUTOLINE_CLOSE 0x03
  99. /* Trapezoids */
  100. #define MGADWG_TRAP 0x04
  101. #define MGADWG_TEXTURE_TRAP 0x05
  102. /* BitBlts */
  103. #define MGADWG_BITBLT 0x08
  104. #define MGADWG_FBITBLT 0x0c
  105. #define MGADWG_ILOAD 0x09
  106. #define MGADWG_ILOAD_SCALE 0x0d
  107. #define MGADWG_ILOAD_FILTER 0x0f
  108. #define MGADWG_IDUMP 0x0a
  109. /* atype access to WRAM */
  110. #define MGADWG_RPL ( 0x00 << 4 )
  111. #define MGADWG_RSTR ( 0x01 << 4 )
  112. #define MGADWG_ZI ( 0x03 << 4 )
  113. #define MGADWG_BLK  ( 0x04 << 4 )
  114. #define MGADWG_I ( 0x07 << 4 )
  115. /* specifies whether bit blits are linear or xy */
  116. #define MGADWG_LINEAR ( 0x01 << 7 )
  117. /* z drawing mode. use MGADWG_NOZCMP for always */
  118. #define MGADWG_NOZCMP ( 0x00 << 8 )
  119. #define MGADWG_ZE ( 0x02 << 8 ) 
  120. #define MGADWG_ZNE ( 0x03 << 8 )
  121. #define MGADWG_ZLT ( 0x04 << 8 )
  122. #define MGADWG_ZLTE ( 0x05 << 8 )
  123. #define MGADWG_GT ( 0x06 << 8 )
  124. #define MGADWG_GTE ( 0x07 << 8 )
  125. /* use this to force colour expansion circuitry to do its stuff */
  126. #define MGADWG_SOLID ( 0x01 << 11 )
  127. /* ar register at zero */
  128. #define MGADWG_ARZERO ( 0x01 << 12 )
  129. #define MGADWG_SGNZERO ( 0x01 << 13 )
  130. #define MGADWG_SHIFTZERO ( 0x01 << 14 )
  131. /* See table on 4-43 for bop ALU operations */
  132. /* See table on 4-44 for translucidity masks */
  133. #define MGADWG_BMONOLEF ( 0x00 << 25 )
  134. #define MGADWG_BMONOWF ( 0x04 << 25 )
  135. #define MGADWG_BPLAN ( 0x01 << 25 )
  136. /* note that if bfcol is specified and you're doing a bitblt, it causes
  137.    a fbitblt to be performed, so check that you obey the fbitblt rules */
  138. #define MGADWG_BFCOL    ( 0x02 << 25 )
  139. #define MGADWG_BUYUV ( 0x0e << 25 )
  140. #define MGADWG_BU32BGR ( 0x03 << 25 )
  141. #define MGADWG_BU32RGB ( 0x07 << 25 )
  142. #define MGADWG_BU24BGR ( 0x0b << 25 )
  143. #define MGADWG_BU24RGB ( 0x0f << 25 )
  144. #define MGADWG_REPLACE 0x000C0000 /* From Linux kernel sources */
  145. #define MGADWG_PATTERN ( 0x01 << 29 )
  146. #define MGADWG_TRANSC ( 0x01 << 30 )
  147. #define MGADWG_NOCLIP ( 0x01 << 31 )
  148. #define MGAREG_MISC_WRITE 0x3c2
  149. #define MGAREG_MISC_READ 0x3cc
  150. #define MGAREG_MISC_IOADSEL (0x1 << 0)
  151. #define MGAREG_MISC_RAMMAPEN (0x1 << 1)
  152. #define MGAREG_MISC_CLK_SEL_VGA25 (0x0 << 2)
  153. #define MGAREG_MISC_CLK_SEL_VGA28 (0x1 << 2)
  154. #define MGAREG_MISC_CLK_SEL_MGA_PIX (0x2 << 2)
  155. #define MGAREG_MISC_CLK_SEL_MGA_MSK (0x3 << 2)
  156. #define MGAREG_MISC_VIDEO_DIS (0x1 << 4)
  157. #define MGAREG_MISC_HIGH_PG_SEL (0x1 << 5)
  158.  
  159. /* MMIO VGA registers */
  160. #define MGAREG_CRTC_INDEX 0x1fd4
  161. #define MGAREG_CRTC_DATA 0x1fd5
  162. #define MGAREG_CRTCEXT_INDEX 0x1fde
  163. #define MGAREG_CRTCEXT_DATA 0x1fdf
  164. /* MGA bits for registers PCI_OPTION_REG */
  165. #define MGA1064_OPT_SYS_CLK_PCI    ( 0x00 << 0 )
  166. #define MGA1064_OPT_SYS_CLK_PLL    ( 0x01 << 0 )
  167. #define MGA1064_OPT_SYS_CLK_EXT    ( 0x02 << 0 )
  168. #define MGA1064_OPT_SYS_CLK_MSK    ( 0x03 << 0 )
  169. #define MGA1064_OPT_SYS_CLK_DIS    ( 0x01 << 2 )
  170. #define MGA1064_OPT_G_CLK_DIV_1    ( 0x01 << 3 )
  171. #define MGA1064_OPT_M_CLK_DIV_1    ( 0x01 << 4 )
  172. #define MGA1064_OPT_SYS_PLL_PDN    ( 0x01 << 5 )
  173. #define MGA1064_OPT_VGA_ION    ( 0x01 << 8 )
  174. /* MGA registers in PCI config space */
  175. #define PCI_MGA_INDEX 0x44
  176. #define PCI_MGA_DATA 0x48
  177. #define PCI_MGA_OPTION2 0x50
  178. #define PCI_MGA_OPTION3 0x54
  179. #define RAMDAC_OFFSET 0x3c00
  180. /* TVP3026 direct registers */
  181. #define TVP3026_INDEX 0x00
  182. #define TVP3026_WADR_PAL 0x00
  183. #define TVP3026_COL_PAL 0x01
  184. #define TVP3026_PIX_RD_MSK 0x02
  185. #define TVP3026_RADR_PAL 0x03
  186. #define TVP3026_CUR_COL_ADDR 0x04
  187. #define TVP3026_CUR_COL_DATA 0x05
  188. #define TVP3026_DATA 0x0a
  189. #define TVP3026_CUR_RAM 0x0b
  190. #define TVP3026_CUR_XLOW 0x0c
  191. #define TVP3026_CUR_XHI 0x0d
  192. #define TVP3026_CUR_YLOW 0x0e
  193. #define TVP3026_CUR_YHI 0x0f
  194. /* TVP3026 indirect registers */
  195. #define TVP3026_SILICON_REV 0x01
  196. #define TVP3026_CURSOR_CTL 0x06
  197. #define TVP3026_LATCH_CTL 0x0f
  198. #define TVP3026_TRUE_COLOR_CTL 0x18
  199. #define TVP3026_MUX_CTL 0x19
  200. #define TVP3026_CLK_SEL 0x1a
  201. #define TVP3026_PAL_PAGE 0x1c
  202. #define TVP3026_GEN_CTL 0x1d
  203. #define TVP3026_MISC_CTL 0x1e
  204. #define TVP3026_GEN_IO_CTL 0x2a
  205. #define TVP3026_GEN_IO_DATA 0x2b
  206. #define TVP3026_PLL_ADDR 0x2c
  207. #define TVP3026_PIX_CLK_DATA 0x2d
  208. #define TVP3026_MEM_CLK_DATA 0x2e
  209. #define TVP3026_LOAD_CLK_DATA 0x2f
  210. #define TVP3026_KEY_RED_LOW 0x32
  211. #define TVP3026_KEY_RED_HI 0x33
  212. #define TVP3026_KEY_GREEN_LOW 0x34
  213. #define TVP3026_KEY_GREEN_HI 0x35
  214. #define TVP3026_KEY_BLUE_LOW 0x36
  215. #define TVP3026_KEY_BLUE_HI 0x37
  216. #define TVP3026_KEY_CTL 0x38
  217. #define TVP3026_MCLK_CTL 0x39
  218. #define TVP3026_SENSE_TEST 0x3a
  219. #define TVP3026_TEST_DATA 0x3b
  220. #define TVP3026_CRC_LSB 0x3c
  221. #define TVP3026_CRC_MSB 0x3d
  222. #define TVP3026_CRC_CTL 0x3e
  223. #define TVP3026_ID 0x3f
  224. #define TVP3026_RESET 0xff
  225. /* MGA1064 DAC Register file */
  226. /* MGA1064 direct registers */
  227. #define MGA1064_INDEX 0x00
  228. #define MGA1064_WADR_PAL 0x00
  229. #define MGA1064_COL_PAL 0x01
  230. #define MGA1064_PIX_RD_MSK 0x02
  231. #define MGA1064_RADR_PAL 0x03
  232. #define MGA1064_DATA 0x0a
  233. #define MGA1064_CUR_XLOW 0x0c
  234. #define MGA1064_CUR_XHI 0x0d
  235. #define MGA1064_CUR_YLOW 0x0e
  236. #define MGA1064_CUR_YHI 0x0f
  237. /* MGA1064 indirect registers */
  238. #define MGA1064_CURSOR_BASE_ADR_LOW 0x04
  239. #define MGA1064_CURSOR_BASE_ADR_HI 0x05
  240. #define MGA1064_CURSOR_CTL 0x06
  241. #define MGA1064_CURSOR_COL0_RED 0x08
  242. #define MGA1064_CURSOR_COL0_GREEN 0x09
  243. #define MGA1064_CURSOR_COL0_BLUE 0x0a
  244. #define MGA1064_CURSOR_COL1_RED 0x0c
  245. #define MGA1064_CURSOR_COL1_GREEN 0x0d
  246. #define MGA1064_CURSOR_COL1_BLUE 0x0e
  247. #define MGA1064_CURSOR_COL2_RED 0x010
  248. #define MGA1064_CURSOR_COL2_GREEN 0x011
  249. #define MGA1064_CURSOR_COL2_BLUE 0x012
  250. #define MGA1064_VREF_CTL 0x018
  251. #define MGA1064_MUL_CTL 0x19
  252. #define MGA1064_MUL_CTL_8bits 0x0
  253. #define MGA1064_MUL_CTL_15bits 0x01
  254. #define MGA1064_MUL_CTL_16bits 0x02
  255. #define MGA1064_MUL_CTL_24bits 0x03
  256. #define MGA1064_MUL_CTL_32bits 0x04
  257. #define MGA1064_MUL_CTL_2G8V16bits 0x05
  258. #define MGA1064_MUL_CTL_G16V16bits 0x06
  259. #define MGA1064_MUL_CTL_32_24bits 0x07
  260. #define MGAGDAC_XVREFCTRL 0x18
  261. #define MGA1064_PIX_CLK_CTL 0x1a
  262. #define MGA1064_PIX_CLK_CTL_CLK_DIS    ( 0x01 << 2 )
  263. #define MGA1064_PIX_CLK_CTL_CLK_POW_DOWN    ( 0x01 << 3 )
  264. #define MGA1064_PIX_CLK_CTL_SEL_PCI    ( 0x00 << 0 )
  265. #define MGA1064_PIX_CLK_CTL_SEL_PLL    ( 0x01 << 0 )
  266. #define MGA1064_PIX_CLK_CTL_SEL_EXT    ( 0x02 << 0 )
  267. #define MGA1064_PIX_CLK_CTL_SEL_MSK    ( 0x03 << 0 )
  268. #define MGA1064_GEN_CTL 0x1d
  269. #define MGA1064_MISC_CTL 0x1e
  270. #define MGA1064_MISC_CTL_DAC_POW_DN    ( 0x01 << 0 )
  271. #define MGA1064_MISC_CTL_VGA    ( 0x01 << 1 )
  272. #define MGA1064_MISC_CTL_DIS_CON    ( 0x03 << 1 )
  273. #define MGA1064_MISC_CTL_MAFC    ( 0x02 << 1 )
  274. #define MGA1064_MISC_CTL_VGA8    ( 0x01 << 3 )
  275. #define MGA1064_MISC_CTL_DAC_RAM_CS    ( 0x01 << 4 )
  276. #define MGA1064_GEN_IO_CTL 0x2a
  277. #define MGA1064_GEN_IO_DATA 0x2b
  278. #define MGA1064_SYS_PLL_M 0x2c
  279. #define MGA1064_SYS_PLL_N 0x2d
  280. #define MGA1064_SYS_PLL_P 0x2e
  281. #define MGA1064_SYS_PLL_STAT 0x2f
  282. #define MGA1064_ZOOM_CTL 0x38
  283. #define MGA1064_SENSE_TST 0x3a
  284. #define MGA1064_CRC_LSB 0x3c
  285. #define MGA1064_CRC_MSB 0x3d
  286. #define MGA1064_CRC_CTL 0x3e
  287. #define MGA1064_COL_KEY_MSK_LSB 0x40
  288. #define MGA1064_COL_KEY_MSK_MSB 0x41
  289. #define MGA1064_COL_KEY_LSB 0x42
  290. #define MGA1064_COL_KEY_MSB 0x43
  291. #define MGA1064_PIX_PLLA_M 0x44
  292. #define MGA1064_PIX_PLLA_N 0x45
  293. #define MGA1064_PIX_PLLA_P 0x46
  294. #define MGA1064_PIX_PLLB_M 0x48
  295. #define MGA1064_PIX_PLLB_N 0x49
  296. #define MGA1064_PIX_PLLB_P 0x4a
  297. #define MGA1064_PIX_PLLC_M 0x4c
  298. #define MGA1064_PIX_PLLC_N 0x4d
  299. #define MGA1064_PIX_PLLC_P 0x4e
  300. #define MGA1064_PIX_PLL_STAT 0x4f
  301. #endif