summaryrefslogtreecommitdiff
path: root/src/drivers/xgi/common/vb_def.h
blob: 2d3075e90fc53396c8d213e3c286fd1531ffff83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
/*
 * This file is part of the coreboot project.
 *
 * File taken verbatim from the Linux xgifb driver (v3.18.5)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 2 of the License.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 */

#ifndef _VB_DEF_
#define _VB_DEF_

#define VB_XGI301C      0x0020 /* for 301C */

#define SupportCRT2in301C       0x0100  /* for 301C */
#define SetCHTVOverScan         0x8000

#define Panel_320x480            0x07 /*fstn*/
#define PanelResInfo            0x1F /* CR36 Panel Type/LCDResInfo */
#define Panel_1024x768x75        0x22
#define Panel_1280x1024x75       0x23

#define PanelRef60Hz            0x00
#define PanelRef75Hz            0x20

#define YPbPr525iVCLK           0x03B
#define YPbPr525iVCLK_2         0x03A

#define XGI_CRT2_PORT_00        (0x00 - 0x030)

#define SupportAllCRT2      0x0078
#define NoSupportTV         0x0070
#define NoSupportHiVisionTV 0x0060
#define NoSupportLCD        0x0058

/* -------------- SetMode Stack/Scratch */
#define XGI_SetCRT2ToLCDA   0x0100
#define SetCRT2ToDualEdge   0x8000

#define ReserveTVOption     0x0008

#define SetTVLowResolution   0x0400
#define TVSimuMode           0x0800
#define RPLLDIV2XO           0x1000
#define NTSC1024x768         0x2000
#define SetTVLockMode        0x4000

#define XGI_LCDVESATiming    0x0001 /* LCD Info/CR37 */
#define XGI_EnableLVDSDDA    0x0002
#define EnableScalingLCD     0x0008
#define SetPWDEnable         0x0004
#define SetLCDtoNonExpanding 0x0010
#define SetLCDDualLink       0x0100
#define SetLCDLowResolution  0x0200

/* LCD Capability shampoo */
#define DefaultLCDCap        0x80ea
#define EnableLCD24bpp       0x0004 /* default */
#define LCDPolarity          0x00c0 /* default: SyncNN */
#define XGI_LCDDualLink      0x0100
#define EnableSpectrum       0x0200
#define PWDEnable            0x0400
#define EnableVBCLKDRVLOW    0x4000
#define EnablePLLSPLOW       0x8000

#define AVIDEOSense          0x01   /* CR32 */
#define SVIDEOSense          0x02
#define SCARTSense           0x04
#define LCDSense             0x08
#define Monitor2Sense        0x10
#define Monitor1Sense        0x20
#define HiTVSense            0x40

#define YPbPrSense           0x80   /* NEW SCRATCH */

#define TVSense              0xc7

#define YPbPrMode            0xe0
#define YPbPrMode525i        0x00
#define YPbPrMode525p        0x20
#define YPbPrMode750p        0x40
#define YPbPrMode1080i       0x60

#define ScalingLCD           0x08

#define SetYPbPr             0x04

/* ---------------------- VUMA Information */
#define DisplayDeviceFromCMOS 0x10

/* ---------------------- HK Evnet Definition */
#define XGI_ModeSwitchStatus  0xf0
#define ActiveCRT1            0x10
#define ActiveLCD             0x0020
#define ActiveTV              0x40
#define ActiveCRT2            0x80

#define ActiveAVideo          0x01
#define ActiveSVideo          0x02
#define ActiveSCART           0x04
#define ActiveHiTV            0x08
#define ActiveYPbPr           0x10

#define NTSC1024x768HT       1908

#define YPbPrTV525iHT        1716 /* YPbPr */
#define YPbPrTV525iVT         525
#define YPbPrTV525pHT        1716
#define YPbPrTV525pVT         525
#define YPbPrTV750pHT        1650
#define YPbPrTV750pVT         750

#define VCLK25_175           0x00
#define VCLK28_322           0x01
#define VCLK31_5             0x02
#define VCLK36               0x03
#define VCLK43_163           0x05
#define VCLK44_9             0x06
#define VCLK49_5             0x07
#define VCLK50               0x08
#define VCLK52_406           0x09
#define VCLK56_25            0x0A
#define VCLK68_179           0x0D
#define VCLK72_852           0x0E
#define VCLK75               0x0F
#define VCLK78_75            0x11
#define VCLK79_411           0x12
#define VCLK83_95            0x13
#define VCLK86_6             0x15
#define VCLK94_5             0x16
#define VCLK113_309          0x1B
#define VCLK116_406          0x1C
#define VCLK135_5            0x1E
#define VCLK139_054          0x1F
#define VCLK157_5            0x20
#define VCLK162              0x21
#define VCLK175              0x22
#define VCLK189              0x23
#define VCLK202_5            0x25
#define VCLK229_5            0x26
#define VCLK234              0x27
#define VCLK254_817          0x29
#define VCLK266_952          0x2B
#define VCLK269_655          0x2C
#define VCLK277_015          0x2E
#define VCLK291_132          0x30
#define VCLK291_766          0x31
#define VCLK315_195          0x33
#define VCLK323_586          0x34
#define VCLK330_615          0x35
#define VCLK340_477          0x37
#define VCLK375_847          0x38
#define VCLK388_631          0x39
#define VCLK125_999          0x51
#define VCLK148_5            0x52
#define VCLK217_325          0x55
#define XGI_YPbPr750pVCLK    0x57

#define VCLK39_77            0x40
#define YPbPr525pVCLK        0x3A
#define NTSC1024VCLK         0x41
#define VCLK35_2             0x49 /* ; 800x480 */
#define VCLK122_61           0x4A
#define VCLK80_350           0x4B
#define VCLK107_385          0x4C

#define RES320x200           0x00
#define RES320x240           0x01
#define RES400x300           0x02
#define RES512x384           0x03
#define RES640x400           0x04
#define RES640x480x60        0x05
#define RES640x480x72        0x06
#define RES640x480x75        0x07
#define RES640x480x85        0x08
#define RES640x480x100       0x09
#define RES640x480x120       0x0A
#define RES640x480x160       0x0B
#define RES640x480x200       0x0C
#define RES800x600x56        0x0D
#define RES800x600x60        0x0E
#define RES800x600x72        0x0F
#define RES800x600x75        0x10
#define RES800x600x85        0x11
#define RES800x600x100       0x12
#define RES800x600x120       0x13
#define RES800x600x160       0x14
#define RES1024x768x43       0x15
#define RES1024x768x60       0x16
#define RES1024x768x70       0x17
#define RES1024x768x75       0x18
#define RES1024x768x85       0x19
#define RES1024x768x100      0x1A
#define RES1024x768x120      0x1B
#define RES1280x1024x43      0x1C
#define RES1280x1024x60      0x1D
#define RES1280x1024x75      0x1E
#define RES1280x1024x85      0x1F
#define RES1600x1200x60      0x20
#define RES1600x1200x65      0x21
#define RES1600x1200x70      0x22
#define RES1600x1200x75      0x23
#define RES1600x1200x85      0x24
#define RES1600x1200x100     0x25
#define RES1600x1200x120     0x26
#define RES1920x1440x60      0x27
#define RES1920x1440x65      0x28
#define RES1920x1440x70      0x29
#define RES1920x1440x75      0x2A
#define RES1920x1440x85      0x2B
#define RES1920x1440x100     0x2C
#define RES2048x1536x60      0x2D
#define RES2048x1536x65      0x2E
#define RES2048x1536x70      0x2F
#define RES2048x1536x75      0x30
#define RES2048x1536x85      0x31
#define RES800x480x60        0x32
#define RES800x480x75        0x33
#define RES800x480x85        0x34
#define RES1024x576x60       0x35
#define RES1024x576x75       0x36
#define RES1024x576x85       0x37
#define RES1280x720x60       0x38
#define RES1280x720x75       0x39
#define RES1280x720x85       0x3A
#define RES1280x960x60       0x3B
#define RES720x480x60        0x3C
#define RES720x576x56        0x3D
#define RES856x480x79I       0x3E
#define RES856x480x60        0x3F
#define RES1280x768x60       0x40
#define RES1400x1050x60      0x41
#define RES1152x864x60       0x42
#define RES1152x864x75       0x43
#define RES1024x768x160      0x44
#define RES1280x960x75       0x45
#define RES1280x960x85       0x46
#define RES1280x960x120      0x47


#define XG27_CR8F 0x0C
#define XG27_SR36 0x30
#define XG27_SR40 0x04
#define XG27_SR41 0x00
#define XG40_CRCF 0x13
#define XGI330_CRT2Data_1_2 0
#define XGI330_CRT2Data_4_D 0
#define XGI330_CRT2Data_4_E 0
#define XGI330_CRT2Data_4_10 0x80
#define XGI330_SR07 0x18
#define XGI330_SR1F 0
#define XGI330_SR23 0xf6
#define XGI330_SR24 0x0d
#define XGI330_SR31 0xc0
#define XGI330_SR32 0x11
#define XGI330_SR33 0

extern const struct XGI_ExtStruct XGI330_EModeIDTable[];
extern const struct XGI_Ext2Struct XGI330_RefIndex[];
extern const struct XGI_CRT1TableStruct XGI_CRT1Table[];
extern const struct XGI_ECLKDataStruct XGI340_ECLKData[];
extern const struct SiS_VCLKData XGI_VCLKData[];
extern const unsigned char XGI340_CR6B[][4];
extern const unsigned char XGI340_AGPReg[];

#endif