share.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
  4. * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
  5. */
  6. #ifndef __SHARE_H__
  7. #define __SHARE_H__
  8. #include "via_modesetting.h"
  9. /* Define Bit Field */
  10. #define BIT0 0x01
  11. #define BIT1 0x02
  12. #define BIT2 0x04
  13. #define BIT3 0x08
  14. #define BIT4 0x10
  15. #define BIT5 0x20
  16. #define BIT6 0x40
  17. #define BIT7 0x80
  18. /* Video Memory Size */
  19. #define VIDEO_MEMORY_SIZE_16M 0x1000000
  20. /*
  21. * Lengths of the VPIT structure arrays.
  22. */
  23. #define StdCR 0x19
  24. #define StdSR 0x04
  25. #define StdGR 0x09
  26. #define StdAR 0x14
  27. #define PatchCR 11
  28. /* Display path */
  29. #define IGA1 1
  30. #define IGA2 2
  31. /* Define Color Depth */
  32. #define MODE_8BPP 1
  33. #define MODE_16BPP 2
  34. #define MODE_32BPP 4
  35. #define GR20 0x20
  36. #define GR21 0x21
  37. #define GR22 0x22
  38. /* Sequencer Registers */
  39. #define SR01 0x01
  40. #define SR10 0x10
  41. #define SR12 0x12
  42. #define SR15 0x15
  43. #define SR16 0x16
  44. #define SR17 0x17
  45. #define SR18 0x18
  46. #define SR1B 0x1B
  47. #define SR1A 0x1A
  48. #define SR1C 0x1C
  49. #define SR1D 0x1D
  50. #define SR1E 0x1E
  51. #define SR1F 0x1F
  52. #define SR20 0x20
  53. #define SR21 0x21
  54. #define SR22 0x22
  55. #define SR2A 0x2A
  56. #define SR2D 0x2D
  57. #define SR2E 0x2E
  58. #define SR30 0x30
  59. #define SR39 0x39
  60. #define SR3D 0x3D
  61. #define SR3E 0x3E
  62. #define SR3F 0x3F
  63. #define SR40 0x40
  64. #define SR43 0x43
  65. #define SR44 0x44
  66. #define SR45 0x45
  67. #define SR46 0x46
  68. #define SR47 0x47
  69. #define SR48 0x48
  70. #define SR49 0x49
  71. #define SR4A 0x4A
  72. #define SR4B 0x4B
  73. #define SR4C 0x4C
  74. #define SR52 0x52
  75. #define SR57 0x57
  76. #define SR58 0x58
  77. #define SR59 0x59
  78. #define SR5D 0x5D
  79. #define SR5E 0x5E
  80. #define SR65 0x65
  81. /* CRT Controller Registers */
  82. #define CR00 0x00
  83. #define CR01 0x01
  84. #define CR02 0x02
  85. #define CR03 0x03
  86. #define CR04 0x04
  87. #define CR05 0x05
  88. #define CR06 0x06
  89. #define CR07 0x07
  90. #define CR08 0x08
  91. #define CR09 0x09
  92. #define CR0A 0x0A
  93. #define CR0B 0x0B
  94. #define CR0C 0x0C
  95. #define CR0D 0x0D
  96. #define CR0E 0x0E
  97. #define CR0F 0x0F
  98. #define CR10 0x10
  99. #define CR11 0x11
  100. #define CR12 0x12
  101. #define CR13 0x13
  102. #define CR14 0x14
  103. #define CR15 0x15
  104. #define CR16 0x16
  105. #define CR17 0x17
  106. #define CR18 0x18
  107. /* Extend CRT Controller Registers */
  108. #define CR30 0x30
  109. #define CR31 0x31
  110. #define CR32 0x32
  111. #define CR33 0x33
  112. #define CR34 0x34
  113. #define CR35 0x35
  114. #define CR36 0x36
  115. #define CR37 0x37
  116. #define CR38 0x38
  117. #define CR39 0x39
  118. #define CR3A 0x3A
  119. #define CR3B 0x3B
  120. #define CR3C 0x3C
  121. #define CR3D 0x3D
  122. #define CR3E 0x3E
  123. #define CR3F 0x3F
  124. #define CR40 0x40
  125. #define CR41 0x41
  126. #define CR42 0x42
  127. #define CR43 0x43
  128. #define CR44 0x44
  129. #define CR45 0x45
  130. #define CR46 0x46
  131. #define CR47 0x47
  132. #define CR48 0x48
  133. #define CR49 0x49
  134. #define CR4A 0x4A
  135. #define CR4B 0x4B
  136. #define CR4C 0x4C
  137. #define CR4D 0x4D
  138. #define CR4E 0x4E
  139. #define CR4F 0x4F
  140. #define CR50 0x50
  141. #define CR51 0x51
  142. #define CR52 0x52
  143. #define CR53 0x53
  144. #define CR54 0x54
  145. #define CR55 0x55
  146. #define CR56 0x56
  147. #define CR57 0x57
  148. #define CR58 0x58
  149. #define CR59 0x59
  150. #define CR5A 0x5A
  151. #define CR5B 0x5B
  152. #define CR5C 0x5C
  153. #define CR5D 0x5D
  154. #define CR5E 0x5E
  155. #define CR5F 0x5F
  156. #define CR60 0x60
  157. #define CR61 0x61
  158. #define CR62 0x62
  159. #define CR63 0x63
  160. #define CR64 0x64
  161. #define CR65 0x65
  162. #define CR66 0x66
  163. #define CR67 0x67
  164. #define CR68 0x68
  165. #define CR69 0x69
  166. #define CR6A 0x6A
  167. #define CR6B 0x6B
  168. #define CR6C 0x6C
  169. #define CR6D 0x6D
  170. #define CR6E 0x6E
  171. #define CR6F 0x6F
  172. #define CR70 0x70
  173. #define CR71 0x71
  174. #define CR72 0x72
  175. #define CR73 0x73
  176. #define CR74 0x74
  177. #define CR75 0x75
  178. #define CR76 0x76
  179. #define CR77 0x77
  180. #define CR78 0x78
  181. #define CR79 0x79
  182. #define CR7A 0x7A
  183. #define CR7B 0x7B
  184. #define CR7C 0x7C
  185. #define CR7D 0x7D
  186. #define CR7E 0x7E
  187. #define CR7F 0x7F
  188. #define CR80 0x80
  189. #define CR81 0x81
  190. #define CR82 0x82
  191. #define CR83 0x83
  192. #define CR84 0x84
  193. #define CR85 0x85
  194. #define CR86 0x86
  195. #define CR87 0x87
  196. #define CR88 0x88
  197. #define CR89 0x89
  198. #define CR8A 0x8A
  199. #define CR8B 0x8B
  200. #define CR8C 0x8C
  201. #define CR8D 0x8D
  202. #define CR8E 0x8E
  203. #define CR8F 0x8F
  204. #define CR90 0x90
  205. #define CR91 0x91
  206. #define CR92 0x92
  207. #define CR93 0x93
  208. #define CR94 0x94
  209. #define CR95 0x95
  210. #define CR96 0x96
  211. #define CR97 0x97
  212. #define CR98 0x98
  213. #define CR99 0x99
  214. #define CR9A 0x9A
  215. #define CR9B 0x9B
  216. #define CR9C 0x9C
  217. #define CR9D 0x9D
  218. #define CR9E 0x9E
  219. #define CR9F 0x9F
  220. #define CRA0 0xA0
  221. #define CRA1 0xA1
  222. #define CRA2 0xA2
  223. #define CRA3 0xA3
  224. #define CRD2 0xD2
  225. #define CRD3 0xD3
  226. #define CRD4 0xD4
  227. /* LUT Table*/
  228. #define LUT_DATA 0x3C9 /* DACDATA */
  229. #define LUT_INDEX_READ 0x3C7 /* DACRX */
  230. #define LUT_INDEX_WRITE 0x3C8 /* DACWX */
  231. #define DACMASK 0x3C6
  232. /* Definition Device */
  233. #define DEVICE_CRT 0x01
  234. #define DEVICE_DVI 0x03
  235. #define DEVICE_LCD 0x04
  236. /* Device output interface */
  237. #define INTERFACE_NONE 0x00
  238. #define INTERFACE_ANALOG_RGB 0x01
  239. #define INTERFACE_DVP0 0x02
  240. #define INTERFACE_DVP1 0x03
  241. #define INTERFACE_DFP_HIGH 0x04
  242. #define INTERFACE_DFP_LOW 0x05
  243. #define INTERFACE_DFP 0x06
  244. #define INTERFACE_LVDS0 0x07
  245. #define INTERFACE_LVDS1 0x08
  246. #define INTERFACE_LVDS0LVDS1 0x09
  247. #define INTERFACE_TMDS 0x0A
  248. #define HW_LAYOUT_LCD_ONLY 0x01
  249. #define HW_LAYOUT_DVI_ONLY 0x02
  250. #define HW_LAYOUT_LCD_DVI 0x03
  251. #define HW_LAYOUT_LCD1_LCD2 0x04
  252. #define HW_LAYOUT_LCD_EXTERNAL_LCD2 0x10
  253. /* Definition CRTC Timing Index */
  254. #define H_TOTAL_INDEX 0
  255. #define H_ADDR_INDEX 1
  256. #define H_BLANK_START_INDEX 2
  257. #define H_BLANK_END_INDEX 3
  258. #define H_SYNC_START_INDEX 4
  259. #define H_SYNC_END_INDEX 5
  260. #define V_TOTAL_INDEX 6
  261. #define V_ADDR_INDEX 7
  262. #define V_BLANK_START_INDEX 8
  263. #define V_BLANK_END_INDEX 9
  264. #define V_SYNC_START_INDEX 10
  265. #define V_SYNC_END_INDEX 11
  266. #define H_TOTAL_SHADOW_INDEX 12
  267. #define H_BLANK_END_SHADOW_INDEX 13
  268. #define V_TOTAL_SHADOW_INDEX 14
  269. #define V_ADDR_SHADOW_INDEX 15
  270. #define V_BLANK_SATRT_SHADOW_INDEX 16
  271. #define V_BLANK_END_SHADOW_INDEX 17
  272. #define V_SYNC_SATRT_SHADOW_INDEX 18
  273. #define V_SYNC_END_SHADOW_INDEX 19
  274. /* LCD display method
  275. */
  276. #define LCD_EXPANDSION 0x00
  277. #define LCD_CENTERING 0x01
  278. /* LCD mode
  279. */
  280. #define LCD_OPENLDI 0x00
  281. #define LCD_SPWG 0x01
  282. struct crt_mode_table {
  283. int refresh_rate;
  284. int h_sync_polarity;
  285. int v_sync_polarity;
  286. struct via_display_timing crtc;
  287. };
  288. struct io_reg {
  289. int port;
  290. u8 index;
  291. u8 mask;
  292. u8 value;
  293. };
  294. #endif /* __SHARE_H__ */