1706f2543Smrg
2706f2543Smrg#include <xf86RamDac.h>
3706f2543Smrg
4706f2543Smrgextern _X_EXPORT RamDacHelperRecPtr IBMramdacProbe(ScrnInfoPtr pScrn, RamDacSupportedInfoRecPtr ramdacs);
5706f2543Smrgextern _X_EXPORT void IBMramdacSave(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
6706f2543Smrgextern _X_EXPORT void IBMramdacRestore(ScrnInfoPtr pScrn, RamDacRecPtr RamDacRec, RamDacRegRecPtr RamDacRegRec);
7706f2543Smrgextern _X_EXPORT void IBMramdac526SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
8706f2543Smrgextern _X_EXPORT void IBMramdac640SetBpp(ScrnInfoPtr pScrn, RamDacRegRecPtr RamDacRegRec);
9706f2543Smrgextern _X_EXPORT unsigned long IBMramdac526CalculateMNPCForClock(unsigned long RefClock,
10706f2543Smrg    unsigned long ReqClock, char IsPixClock, unsigned long MinClock,
11706f2543Smrg    unsigned long MaxClock, unsigned long *rM, unsigned long *rN,
12706f2543Smrg    unsigned long *rP, unsigned long *rC);
13706f2543Smrgextern _X_EXPORT unsigned long IBMramdac640CalculateMNPCForClock(unsigned long RefClock,
14706f2543Smrg    unsigned long ReqClock, char IsPixClock, unsigned long MinClock,
15706f2543Smrg    unsigned long MaxClock, unsigned long *rM, unsigned long *rN,
16706f2543Smrg    unsigned long *rP, unsigned long *rC);
17706f2543Smrgextern _X_EXPORT void IBMramdac526HWCursorInit(xf86CursorInfoPtr infoPtr);
18706f2543Smrgextern _X_EXPORT void IBMramdac640HWCursorInit(xf86CursorInfoPtr infoPtr);
19706f2543Smrg
20706f2543Smrgtypedef void IBMramdac526SetBppProc(ScrnInfoPtr, RamDacRegRecPtr);
21706f2543Smrgextern _X_EXPORT IBMramdac526SetBppProc *IBMramdac526SetBppWeak(void);
22706f2543Smrg
23706f2543Smrg#define IBM524_RAMDAC		((VENDOR_IBM << 16) | 0x00)
24706f2543Smrg#define IBM524A_RAMDAC		((VENDOR_IBM << 16) | 0x01)
25706f2543Smrg#define IBM525_RAMDAC		((VENDOR_IBM << 16) | 0x02)
26706f2543Smrg#define IBM526_RAMDAC		((VENDOR_IBM << 16) | 0x03)
27706f2543Smrg#define IBM526DB_RAMDAC		((VENDOR_IBM << 16) | 0x04)
28706f2543Smrg#define IBM528_RAMDAC		((VENDOR_IBM << 16) | 0x05)
29706f2543Smrg#define IBM528A_RAMDAC		((VENDOR_IBM << 16) | 0x06)
30706f2543Smrg#define IBM624_RAMDAC		((VENDOR_IBM << 16) | 0x07)
31706f2543Smrg#define IBM624DB_RAMDAC		((VENDOR_IBM << 16) | 0x08)
32706f2543Smrg#define IBM640_RAMDAC		((VENDOR_IBM << 16) | 0x09)
33706f2543Smrg
34706f2543Smrg/*
35706f2543Smrg * IBM Ramdac registers
36706f2543Smrg */
37706f2543Smrg
38706f2543Smrg#define IBMRGB_REF_FREQ_1       14.31818
39706f2543Smrg#define IBMRGB_REF_FREQ_2       50.00000
40706f2543Smrg
41706f2543Smrg#define IBMRGB_rev		0x00
42706f2543Smrg#define IBMRGB_id		0x01
43706f2543Smrg#define IBMRGB_misc_clock	0x02
44706f2543Smrg#define IBMRGB_sync		0x03
45706f2543Smrg#define IBMRGB_hsync_pos	0x04
46706f2543Smrg#define IBMRGB_pwr_mgmt		0x05
47706f2543Smrg#define IBMRGB_dac_op		0x06
48706f2543Smrg#define IBMRGB_pal_ctrl		0x07
49706f2543Smrg#define IBMRGB_sysclk		0x08  /* not RGB525 */
50706f2543Smrg#define IBMRGB_pix_fmt		0x0a
51706f2543Smrg#define IBMRGB_8bpp		0x0b
52706f2543Smrg#define IBMRGB_16bpp		0x0c
53706f2543Smrg#define IBMRGB_24bpp		0x0d
54706f2543Smrg#define IBMRGB_32bpp		0x0e
55706f2543Smrg#define IBMRGB_pll_ctrl1	0x10
56706f2543Smrg#define IBMRGB_pll_ctrl2	0x11
57706f2543Smrg#define IBMRGB_pll_ref_div_fix	0x14
58706f2543Smrg#define IBMRGB_sysclk_ref_div	0x15  /* not RGB525 */
59706f2543Smrg#define IBMRGB_sysclk_vco_div	0x16  /* not RGB525 */
60706f2543Smrg/* #define IBMRGB_f0		0x20 */
61706f2543Smrg
62706f2543Smrg#define IBMRGB_sysclk_n		0x15
63706f2543Smrg#define IBMRGB_sysclk_m		0x16
64706f2543Smrg#define IBMRGB_sysclk_p		0x17
65706f2543Smrg#define IBMRGB_sysclk_c		0x18
66706f2543Smrg
67706f2543Smrg#define IBMRGB_m0		0x20
68706f2543Smrg#define IBMRGB_n0		0x21
69706f2543Smrg#define IBMRGB_p0		0x22
70706f2543Smrg#define IBMRGB_c0		0x23
71706f2543Smrg#define IBMRGB_m1		0x24
72706f2543Smrg#define IBMRGB_n1		0x25
73706f2543Smrg#define IBMRGB_p1		0x26
74706f2543Smrg#define IBMRGB_c1		0x27
75706f2543Smrg#define IBMRGB_m2		0x28
76706f2543Smrg#define IBMRGB_n2		0x29
77706f2543Smrg#define IBMRGB_p2		0x2a
78706f2543Smrg#define IBMRGB_c2		0x2b
79706f2543Smrg#define IBMRGB_m3		0x2c
80706f2543Smrg#define IBMRGB_n3		0x2d
81706f2543Smrg#define IBMRGB_p3		0x2e
82706f2543Smrg#define IBMRGB_c3		0x2f
83706f2543Smrg
84706f2543Smrg#define IBMRGB_curs		0x30
85706f2543Smrg#define IBMRGB_curs_xl		0x31
86706f2543Smrg#define IBMRGB_curs_xh		0x32
87706f2543Smrg#define IBMRGB_curs_yl		0x33
88706f2543Smrg#define IBMRGB_curs_yh		0x34
89706f2543Smrg#define IBMRGB_curs_hot_x	0x35
90706f2543Smrg#define IBMRGB_curs_hot_y	0x36
91706f2543Smrg#define IBMRGB_curs_col1_r	0x40
92706f2543Smrg#define IBMRGB_curs_col1_g	0x41
93706f2543Smrg#define IBMRGB_curs_col1_b	0x42
94706f2543Smrg#define IBMRGB_curs_col2_r	0x43
95706f2543Smrg#define IBMRGB_curs_col2_g	0x44
96706f2543Smrg#define IBMRGB_curs_col2_b	0x45
97706f2543Smrg#define IBMRGB_curs_col3_r	0x46
98706f2543Smrg#define IBMRGB_curs_col3_g	0x47
99706f2543Smrg#define IBMRGB_curs_col3_b	0x48
100706f2543Smrg#define IBMRGB_border_col_r	0x60
101706f2543Smrg#define IBMRGB_border_col_g	0x61
102706f2543Smrg#define IBMRGB_botder_col_b	0x62
103706f2543Smrg#define IBMRGB_key		0x68
104706f2543Smrg#define IBMRGB_key_mask		0x6C
105706f2543Smrg#define IBMRGB_misc1		0x70
106706f2543Smrg#define IBMRGB_misc2		0x71
107706f2543Smrg#define IBMRGB_misc3		0x72
108706f2543Smrg#define IBMRGB_misc4		0x73  /* not RGB525 */
109706f2543Smrg#define IBMRGB_key_control	0x78
110706f2543Smrg#define IBMRGB_dac_sense	0x82
111706f2543Smrg#define IBMRGB_misr_r		0x84
112706f2543Smrg#define IBMRGB_misr_g		0x86
113706f2543Smrg#define IBMRGB_misr_b		0x88
114706f2543Smrg#define IBMRGB_pll_vco_div_in	0x8e
115706f2543Smrg#define IBMRGB_pll_ref_div_in	0x8f
116706f2543Smrg#define IBMRGB_vram_mask_0	0x90
117706f2543Smrg#define IBMRGB_vram_mask_1	0x91
118706f2543Smrg#define IBMRGB_vram_mask_2	0x92
119706f2543Smrg#define IBMRGB_vram_mask_3	0x93
120706f2543Smrg#define IBMRGB_curs_array	0x100
121706f2543Smrg
122706f2543Smrg
123706f2543Smrg
124706f2543Smrg/* Constants rgb525.h */
125706f2543Smrg
126706f2543Smrg/* RGB525_REVISION_LEVEL */
127706f2543Smrg#define RGB525_PRODUCT_REV_LEVEL        0xf0
128706f2543Smrg
129706f2543Smrg/* RGB525_ID */
130706f2543Smrg#define RGB525_PRODUCT_ID               0x01
131706f2543Smrg
132706f2543Smrg/* RGB525_MISC_CTRL_1 */
133706f2543Smrg#define MISR_CNTL_ENABLE                0x80
134706f2543Smrg#define VMSK_CNTL_ENABLE                0x40
135706f2543Smrg#define PADR_RDMT_RDADDR                0x0
136706f2543Smrg#define PADR_RDMT_PAL_STATE             0x20
137706f2543Smrg#define SENS_DSAB_DISABLE               0x10
138706f2543Smrg#define SENS_SEL_BIT3                   0x0
139706f2543Smrg#define SENS_SEL_BIT7                   0x08
140706f2543Smrg#define VRAM_SIZE_32                    0x0
141706f2543Smrg#define VRAM_SIZE_64                    0x01
142706f2543Smrg
143706f2543Smrg/* RGB525_MISC_CTRL_2 */
144706f2543Smrg#define PCLK_SEL_LCLK                   0x0
145706f2543Smrg#define PCLK_SEL_PLL                    0x40
146706f2543Smrg#define PCLK_SEL_EXT                    0x80
147706f2543Smrg#define INTL_MODE_ENABLE                0x20
148706f2543Smrg#define BLANK_CNTL_ENABLE               0x10
149706f2543Smrg#define COL_RES_6BIT                    0x0
150706f2543Smrg#define COL_RES_8BIT                    0x04
151706f2543Smrg#define PORT_SEL_VGA                    0x0
152706f2543Smrg#define PORT_SEL_VRAM                   0x01
153706f2543Smrg
154706f2543Smrg/* RGB525_MISC_CTRL_3 */
155706f2543Smrg#define SWAP_RB                         0x80
156706f2543Smrg#define SWAP_WORD_LOHI                  0x0
157706f2543Smrg#define SWAP_WORD_HILO                  0x10
158706f2543Smrg#define SWAP_NIB_HILO                   0x0
159706f2543Smrg#define SWAP_NIB_LOHI                   0x02
160706f2543Smrg
161706f2543Smrg/* RGB525_MISC_CLK_CTRL */
162706f2543Smrg#define DDOT_CLK_ENABLE                 0x0
163706f2543Smrg#define DDOT_CLK_DISABLE                0x80
164706f2543Smrg#define SCLK_ENABLE                     0x0
165706f2543Smrg#define SCLK_DISABLE                    0x40
166706f2543Smrg#define B24P_DDOT_PLL                   0x0
167706f2543Smrg#define B24P_DDOT_SCLK                  0x20
168706f2543Smrg#define DDOT_DIV_PLL_1                  0x0
169706f2543Smrg#define DDOT_DIV_PLL_2                  0x02
170706f2543Smrg#define DDOT_DIV_PLL_4                  0x04
171706f2543Smrg#define DDOT_DIV_PLL_8                  0x06
172706f2543Smrg#define DDOT_DIV_PLL_16                 0x08
173706f2543Smrg#define PLL_DISABLE                     0x0
174706f2543Smrg#define PLL_ENABLE                      0x01
175706f2543Smrg
176706f2543Smrg/* RGB525_SYNC_CTRL */
177706f2543Smrg#define DLY_CNTL_ADD                    0x0
178706f2543Smrg#define DLY_SYNC_NOADD                  0x80
179706f2543Smrg#define CSYN_INVT_DISABLE               0x0
180706f2543Smrg#define CSYN_INVT_ENABLE                0x40
181706f2543Smrg#define VSYN_INVT_DISABLE               0x0
182706f2543Smrg#define VSYN_INVT_ENABLE                0x20
183706f2543Smrg#define HSYN_INVT_DISABLE               0x0
184706f2543Smrg#define HSYN_INVT_ENABLE                0x10
185706f2543Smrg#define VSYN_CNTL_NORMAL                0x0
186706f2543Smrg#define VSYN_CNTL_HIGH                  0x04
187706f2543Smrg#define VSYN_CNTL_LOW                   0x08
188706f2543Smrg#define VSYN_CNTL_DISABLE               0x0C
189706f2543Smrg#define HSYN_CNTL_NORMAL                0x0
190706f2543Smrg#define HSYN_CNTL_HIGH                  0x01
191706f2543Smrg#define HSYN_CNTL_LOW                   0x02
192706f2543Smrg#define HSYN_CNTL_DISABLE               0x03
193706f2543Smrg
194706f2543Smrg/* RGB525_HSYNC_CTRL */
195706f2543Smrg#define HSYN_POS(n)                     (n)
196706f2543Smrg
197706f2543Smrg/* RGB525_POWER_MANAGEMENT */
198706f2543Smrg#define SCLK_PWR_NORMAL                 0x0
199706f2543Smrg#define SCLK_PWR_DISABLE                0x10
200706f2543Smrg#define DDOT_PWR_NORMAL                 0x0
201706f2543Smrg#define DDOT_PWR_DISABLE                0x08
202706f2543Smrg#define SYNC_PWR_NORMAL                 0x0
203706f2543Smrg#define SYNC_PWR_DISABLE                0x04
204706f2543Smrg#define ICLK_PWR_NORMAL                 0x0
205706f2543Smrg#define ICLK_PWR_DISABLE                0x02
206706f2543Smrg#define DAC_PWR_NORMAL                  0x0
207706f2543Smrg#define DAC_PWR_DISABLE                 0x01
208706f2543Smrg
209706f2543Smrg/* RGB525_DAC_OPERATION */
210706f2543Smrg#define SOG_DISABLE                     0x0
211706f2543Smrg#define SOG_ENABLE                      0x08
212706f2543Smrg#define BRB_NORMAL                      0x0
213706f2543Smrg#define BRB_ALWAYS                      0x04
214706f2543Smrg#define DSR_DAC_SLOW                    0x02
215706f2543Smrg#define DSR_DAC_FAST                    0x0
216706f2543Smrg#define DPE_DISABLE                     0x0
217706f2543Smrg#define DPE_ENABLE                      0x01
218706f2543Smrg
219706f2543Smrg/* RGB525_PALETTE_CTRL */
220706f2543Smrg#define SIXBIT_LINEAR_ENABLE            0x0
221706f2543Smrg#define SIXBIT_LINEAR_DISABLE           0x80
222706f2543Smrg#define PALETTE_PARITION(n)             (n)
223706f2543Smrg
224706f2543Smrg/* RGB525_PIXEL_FORMAT */
225706f2543Smrg#define PIXEL_FORMAT_4BPP               0x02
226706f2543Smrg#define PIXEL_FORMAT_8BPP               0x03
227706f2543Smrg#define PIXEL_FORMAT_16BPP              0x04
228706f2543Smrg#define PIXEL_FORMAT_24BPP              0x05
229706f2543Smrg#define PIXEL_FORMAT_32BPP              0x06
230706f2543Smrg
231706f2543Smrg/* RGB525_8BPP_CTRL */
232706f2543Smrg#define B8_DCOL_INDIRECT                0x0
233706f2543Smrg#define B8_DCOL_DIRECT                  0x01
234706f2543Smrg
235706f2543Smrg/* RGB525_16BPP_CTRL */
236706f2543Smrg#define B16_DCOL_INDIRECT               0x0
237706f2543Smrg#define B16_DCOL_DYNAMIC                0x40
238706f2543Smrg#define B16_DCOL_DIRECT                 0xC0
239706f2543Smrg#define B16_POL_FORCE_BYPASS            0x0
240706f2543Smrg#define B16_POL_FORCE_LOOKUP            0x20
241706f2543Smrg#define B16_ZIB                         0x0
242706f2543Smrg#define B16_LINEAR                      0x04
243706f2543Smrg#define B16_555                         0x0
244706f2543Smrg#define B16_565                         0x02
245706f2543Smrg#define B16_SPARSE                      0x0
246706f2543Smrg#define B16_CONTIGUOUS                  0x01
247706f2543Smrg
248706f2543Smrg/* RGB525_24BPP_CTRL */
249706f2543Smrg#define B24_DCOL_INDIRECT               0x0
250706f2543Smrg#define B24_DCOL_DIRECT                 0x01
251706f2543Smrg
252706f2543Smrg/* RGB525_32BPP_CTRL */
253706f2543Smrg#define B32_POL_FORCE_BYPASS            0x0
254706f2543Smrg#define B32_POL_FORCE_LOOKUP            0x04
255706f2543Smrg#define B32_DCOL_INDIRECT               0x0
256706f2543Smrg#define B32_DCOL_DYNAMIC                0x01
257706f2543Smrg#define B32_DCOL_DIRECT                 0x03
258706f2543Smrg
259706f2543Smrg/* RGB525_PLL_CTRL_1 */
260706f2543Smrg#define REF_SRC_REFCLK                  0x0
261706f2543Smrg#define REF_SRC_EXTCLK                  0x10
262706f2543Smrg#define PLL_EXT_FS_3_0                  0x0
263706f2543Smrg#define PLL_EXT_FS_2_0                  0x01
264706f2543Smrg#define PLL_CNTL2_3_0                   0x02
265706f2543Smrg#define PLL_CNTL2_2_0                   0x03
266706f2543Smrg
267706f2543Smrg/* RGB525_PLL_CTRL_2 */
268706f2543Smrg#define PLL_INT_FS_3_0(n)               (n)
269706f2543Smrg#define PLL_INT_FS_2_0(n)               (n)
270706f2543Smrg
271706f2543Smrg/* RGB525_PLL_REF_DIV_COUNT */
272706f2543Smrg#define REF_DIV_COUNT(n)                (n)
273706f2543Smrg
274706f2543Smrg/* RGB525_F0 - RGB525_F15 */
275706f2543Smrg#define VCO_DIV_COUNT(n)                (n)
276706f2543Smrg
277706f2543Smrg/* RGB525_PLL_REFCLK values */
278706f2543Smrg#define RGB525_PLL_REFCLK_MHz(n)        ((n)/2)
279706f2543Smrg
280706f2543Smrg/* RGB525_CURSOR_CONTROL */
281706f2543Smrg#define SMLC_PART_0                     0x0
282706f2543Smrg#define SMLC_PART_1                     0x40
283706f2543Smrg#define SMLC_PART_2                     0x80
284706f2543Smrg#define SMLC_PART_3                     0xC0
285706f2543Smrg#define PIX_ORDER_RL                    0x0
286706f2543Smrg#define PIX_ORDER_LR                    0x20
287706f2543Smrg#define LOC_READ_LAST                   0x0
288706f2543Smrg#define LOC_READ_ACTUAL                 0x10
289706f2543Smrg#define UPDT_CNTL_DELAYED               0x0
290706f2543Smrg#define UPDT_CNTL_IMMEDIATE             0x08
291706f2543Smrg#define CURSOR_SIZE_32                  0x0
292706f2543Smrg#define CURSOR_SIZE_64                  0x40
293706f2543Smrg#define CURSOR_MODE_OFF                 0x0
294706f2543Smrg#define CURSOR_MODE_3_COLOR             0x01
295706f2543Smrg#define CURSOR_MODE_2_COLOR_HL          0x02
296706f2543Smrg#define CURSOR_MODE_2_COLOR             0x03
297706f2543Smrg
298706f2543Smrg/* RGB525_REVISION_LEVEL */
299706f2543Smrg#define REVISION_LEVEL                  0xF0    /* predefined */
300706f2543Smrg
301706f2543Smrg/* RGB525_ID */
302706f2543Smrg#define ID_CODE                         0x01    /* predefined */
303706f2543Smrg
304706f2543Smrg/* MISR status */
305706f2543Smrg#define RGB525_MISR_DONE                0x01
306706f2543Smrg
307706f2543Smrg/* the IBMRGB640 is rather different from the rest of the RAMDACs,
308706f2543Smrg   so we define a completely new set of register names for it */
309706f2543Smrg#define RGB640_SER_07_00		0x02
310706f2543Smrg#define RGB640_SER_15_08		0x03
311706f2543Smrg#define RGB640_SER_23_16		0x04
312706f2543Smrg#define RGB640_SER_31_24		0x05
313706f2543Smrg#define RGB640_SER_WID_03_00		0x06
314706f2543Smrg#define RGB640_SER_WID_07_04		0x07
315706f2543Smrg#define RGB640_SER_MODE			0x08
316706f2543Smrg#define		IBM640_SER_2_1	0x00
317706f2543Smrg#define		IBM640_SER_4_1	0x01
318706f2543Smrg#define		IBM640_SER_8_1	0x02
319706f2543Smrg#define		IBM640_SER_16_1	0x03
320706f2543Smrg#define		IBM640_SER_16_3	0x05
321706f2543Smrg#define		IBM640_SER_5_1	0x06
322706f2543Smrg#define RGB640_PIXEL_INTERLEAVE		0x09
323706f2543Smrg#define RGB640_MISC_CONF		0x0a
324706f2543Smrg#define		IBM640_PCLK		0x00
325706f2543Smrg#define		IBM640_PCLK_2		0x40
326706f2543Smrg#define		IBM640_PCLK_4		0x80
327706f2543Smrg#define		IBM640_PCLK_8		0xc0
328706f2543Smrg#define		IBM640_PSIZE10		0x10
329706f2543Smrg#define		IBM640_LCI		0x08
330706f2543Smrg#define		IBM640_WIDCTL_MASK	0x07
331706f2543Smrg#define RGB640_VGA_CONTROL		0x0b
332706f2543Smrg#define 	IBM640_RDBK	0x04
333706f2543Smrg#define 	IBM640_PSIZE8	0x02
334706f2543Smrg#define		IBM640_VRAM	0x01
335706f2543Smrg#define RGB640_DAC_CONTROL		0x0d
336706f2543Smrg#define		IBM640_MONO	0x08
337706f2543Smrg#define		IBM640_DACENBL	0x04
338706f2543Smrg#define		IBM640_SHUNT	0x02
339706f2543Smrg#define		IBM640_SLOWSLEW	0x01
340706f2543Smrg#define RGB640_OUTPUT_CONTROL		0x0e
341706f2543Smrg#define		IBM640_RDAI	0x04
342706f2543Smrg#define		IBM640_WDAI	0x02
343706f2543Smrg#define		IBM640_WATCTL	0x01
344706f2543Smrg#define RGB640_SYNC_CONTROL		0x0f
345706f2543Smrg#define		IBM640_PWR	0x20
346706f2543Smrg#define		IBM640_VSP	0x10
347706f2543Smrg#define		IBM640_HSP	0x08
348706f2543Smrg#define		IBM640_CSE	0x04
349706f2543Smrg#define		IBM640_CSG	0x02
350706f2543Smrg#define		IBM640_BPE	0x01
351706f2543Smrg#define RGB640_PLL_N			0x10
352706f2543Smrg#define RGB640_PLL_M			0x11
353706f2543Smrg#define RGB640_PLL_P			0x12
354706f2543Smrg#define RGB640_PLL_CTL			0x13
355706f2543Smrg#define 	IBM640_PLL_EN	0x04
356706f2543Smrg#define		IBM640_PLL_HIGH	0x10
357706f2543Smrg#define		IBM640_PLL_LOW	0x01
358706f2543Smrg#define RGB640_AUX_PLL_CTL		0x17
359706f2543Smrg#define		IBM640_AUXPLL	0x04
360706f2543Smrg#define		IBM640_AUX_HI	0x02
361706f2543Smrg#define		IBM640_AUX_LO	0x01
362706f2543Smrg#define RGB640_CHROMA_KEY0		0x20
363706f2543Smrg#define RGB640_CHROMA_MASK0		0x21
364706f2543Smrg#define RGB640_CURS_X_LOW		0x40
365706f2543Smrg#define RGB640_CURS_X_HIGH		0x41
366706f2543Smrg#define RGB640_CURS_Y_LOW		0x42
367706f2543Smrg#define RGB640_CURS_Y_HIGH		0x43
368706f2543Smrg#define RGB640_CURS_OFFSETX		0x44
369706f2543Smrg#define RGB640_CURS_OFFSETY		0x45
370706f2543Smrg#define RGB640_CURSOR_CONTROL		0x4B
371706f2543Smrg#define		IBM640_CURS_OFF		0x00
372706f2543Smrg#define		IBM640_CURS_MODE0	0x01
373706f2543Smrg#define		IBM640_CURS_MODE1	0x02
374706f2543Smrg#define		IBM640_CURS_MODE2	0x03
375706f2543Smrg#define		IBM640_CURS_ADV		0x04
376706f2543Smrg#define RGB640_CROSSHAIR_CONTROL	0x57
377706f2543Smrg#define RGB640_VRAM_MASK0		0xf0
378706f2543Smrg#define RGB640_VRAM_MASK1		0xf1
379706f2543Smrg#define RGB640_VRAM_MASK2		0xf2
380706f2543Smrg#define RGB640_DIAGS			0xfa
381706f2543Smrg#define RGB640_CURS_WRITE		0x1000
382706f2543Smrg#define RGB640_CURS_COL0		0x4800
383706f2543Smrg#define RGB640_CURS_COL1		0x4801
384706f2543Smrg#define RGB640_CURS_COL2		0x4802
385706f2543Smrg#define RGB640_CURS_COL3		0x4803
386