Sync usage with man page.
[netbsd-mini2440.git] / sys / dev / ic / ibm561reg.h
blob16025af6a893c780c4b8b19d31d837fea608a5ce
1 /* $NetBSD: ibm561reg.h,v 1.4 2007/08/28 00:21:04 macallan Exp $ */
3 /*-
4 * Copyright (c) 2001 The NetBSD Foundation, Inc.
5 * All rights reserved.
7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Roland C. Dowdeswell of Ponte, Inc.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 * 2. Redistributions in binary form must reproduce the above copyright
16 * notice, this list of conditions and the following disclaimer in the
17 * documentation and/or other materials provided with the distribution.
19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE.
32 #define IBM561_ADDR_LOW 0x00
33 #define IBM561_ADDR_HIGH 0x01
34 #define IBM561_CMD 0x02
35 #define IBM561_CMD_FB_WAT 0x03
36 #define IBM561_CMD_CMAP 0x03
37 #define IBM561_CMD_GAMMA 0x03
39 #define IBM561_CONFIG_REG1 0x0001
40 #define CR1_MODEMASK 0xe0
41 #define CR1_MODE_5_1_BASIC 0x00
42 #define CR1_MODE_4_1_BASIC 0x20
43 #define CR1_MODE_4_1_EXTENDED 0x40
44 #define CR1_MODE_4_1_SUPER_EXT 0x60
45 #define CR1_MODE_5_1_30BPP 0x80
46 #define CR1_MODE_8_1_MODE_B 0xa0
47 #define CR1_MODE_4_1_30BPP 0xc0
48 #define CR1_MODE_8_1_MODE_A 0xe0
49 #define CR1_OVL_MASK 0x18
50 #define CR1_OVL_NONE 0x00
51 #define CR1_OVL_8BPP 0x08
52 #define CR1_OVL_16BPP 0x10
53 #define CR1_OVL_VARIABLE 0x18
54 #define CR1_WID_BITS_MASK 0x07
55 #define CR1_WID_0 0x00
56 #define CR1_WID_2 0x01
57 #define CR1_WID_4 0x02
58 #define CR1_WID_6 0x03
59 #define CR1_WID_8 0x04
61 #define IBM561_CONFIG_REG2 0x0002
62 #define CR2_ENABLE_VRAM_MASKING 0x20
63 #define CR2_ENABLE_PLL 0x10
64 #define CR2_ENABLE_CLC 0x08 /* sane handling of cursor
65 * coordinate updates, without
66 * this updates occur
67 * immediately instead of
68 * waiting for the 2nd byte */
69 #define CR2_PLL_REF_SELECT 0x04 /* 0 - REFCLK, 1 - EXTCLK */
70 #define CR2_PIXEL_CLOCK_SELECT 0x02 /* 0 - PLL, 1 - EXTCLK */
71 #define CR2_ENABLE_RGB_OUTPUT 0x01
73 #define IBM561_CONFIG_REG3 0x0003
74 #define CR3_ENABLE_INTERLACE 0x80
75 #define CR3_SERIAL_CLK_CTRL 0x40 /* 1 - enable output */
76 #define CR3_FIELD_POLARITY 0x20 /* 0 - EVEN first */
77 #define CR3_ENABLE_MISR 0x10 /* diagnostic mode */
78 #define CR3_CURSOR_UPDATE_ASYNC 0x08 /* don't wait for VBLANK */
79 #define CR3_ENABLE_VIDEO 0x04 /* AUX video output */
80 #define CR3_RGB 0x01 /* 1 - RGB, 0 - BGR */
82 #define IBM561_CONFIG_REG4 0x0004
83 #define CR4_FB_SPLIT_WID_MASK 0x78 /* number of FB WID bits */
84 #define CR4_ENABLE_SPLIT_WID 0x04
85 #define CR4_SELECT_OL_WID 0x02 /* 1 - use upper 4 bit for OL */
86 #define CR4_SELECT_FB_WID 0x01 /* 1 - use upper 4 bit for FB */
88 #define IBM561_SYNC_CNTL 0x0020
89 #define SYNC_HSYNC_ENABLE 0x20
90 #define SYNC_HSYNC_POLARITY 0x08 /* 1 - active high */
91 #define SYNC_SYNC_ON_GREEN 0x02
92 #define SYNC_ENABLE_PEDESTAL 0x01
94 #define IBM561_PLL_VCO_DIV 0x0021
95 #define IBM561_PLL_REF_REG 0x0022
96 #define IBM561_CURS_CNTL_REG 0x0030
97 #define CURS_COLOR_3_TRANS 0x80 /* 0 - color 3, 1 - trans */
98 #define CURS_SEPARATE 0x40 /* move crosshair separately */
99 #define CURS_OVERLAP_MASK 0x30
100 #define CURS_OVERLAP_XOR 0x00 /* XOR cursor and xhair */
101 #define CURS_OVERLAP_OR 0x10
102 #define CURS_OVERLAP_CURSOR 0x20 /* cursor has priority */
103 #define CURS_OVERLAP_XHAIR 0x30 /* crosshair has priority */
104 #define CURS_XHAIR_BLINK 0x08 /* enable xhair blinking */
105 #define CURS_XHAIR_ENABLE 0x04
106 #define CURS_BLINK 0x02 /* blink cursor */
107 #define CURS_ENABLE 0x01 /* enable cursor */
109 #define IBM561_XHAIR_CONTROL_REG 0x0031
110 #define XHAIR_PRIORITY 0x80 /* FILL or OUTLINE colour */
111 #define XHAIR_WIDTH_MASK 0x60
112 #define XHAIR_WIDTH_1 0x00
113 #define XHAIR_WIDTH_3 0x20
114 #define XHAIR_WIDTH_5 0x40
115 #define XHAIR_WIDTH_7 0x60
116 #define XHAIR_CLIP_MASK 0x18
117 #define XHAIR_CLIP_NONE 0x00
118 #define XHAIR_CLIP_SCISSORS 0x08 /* use scissors registers */
119 #define XHAIR_CLIP_WINDOW 0x10 /* use window registers */
120 #define XHAIR_CLIP_BOTH 0x18 /* window/scissor intersect */
121 #define XHAIR_COLOR_MASK 0x06 /* 0 is transparent */
122 #define XHAIR_EXT_PATTERN 0x01 /* enables colours, patterns */
124 #define IBM561_CURSOR_BLINK_RATE 0x0032
125 #define IBM561_CURSOR_BLINK_DUTY 0x0033
126 #define IBM561_HOTSPOT_REG 0x0034
127 #define IBM561_HOTSPOT_X_REG 0x0034
128 #define IBM561_HOTSPOT_Y_REG 0x0035
130 /* two registers each, low 8 bit first */
131 #define IBM561_CURSOR_X_REG 0x0036
132 #define IBM561_CURSOR_Y_REG 0x0038
134 #define IBM561_XHAIR_SCISSORS 0x0040
136 * four 16bit registers, low first
137 * X start, Y start, X end, Y end
140 #define IBM561_XHAIR_LOCATION 0x0048
141 /* 2x 16bit, X first, lsb first */
143 #define IBM561_XHAIR_PATTERN_CONTROL 0x004c
144 #define IBM561_XHAIR_PATTERN_HORZ 0x004d
145 #define IBM561_XHAIR_PATTERN_VERT 0x004e
147 #define IBM561_VRAM_MASK_REG 0x0050
149 #define IBM561_DAC_CONTROL 0x005f
150 #define DAC_DISABLE_OUTPUT 0x08
151 #define DAC_10BIT_ENABLE 0x04 /* 0 forces bit 0 to 0 */
152 #define DAC_SHUNT_ENABLE 0x02
153 #define DAC_SLEW_ENABLE 0x01 /* 0 - 2.5ns, 1 - 7.5ns */
155 #define IBM561_CURSOR_LUT 0x0a10
157 * four blocks of 4, transparent, 1, 2, 3 each
158 * cursor orimary, cursor blink, xhair primary, xhair blink
161 #define IBM561_CURSOR_BITMAP 0x2000
162 /* 64x64, 2bit packed, msb first */
164 #define IBM561_DIV_DOTCLCK 0x0082
165 #define IBM561_FB_WINTYPE 0x1000
166 #define FB_CLUT_SELECT_MASK 0x03c0 /* selects which 64 entry block
167 * in the CLUT to start with */
168 #define FB_PIXEL_FORM_MASK 0x0030
169 #define FB_PIXEL_8BIT 0x0000
170 #define FB_PIXEL_12BIT 0x0010
171 #define FB_PIXEL_16BIT 0x0020
172 #define FB_PIXEL_24BIT 0x0030
173 #define FB_BUFFER_SELECT 0x0008 /* 1 - buffer B */
174 #define FB_MODE_MASK 0x0006
175 #define FB_MODE_INDEXED 0x0000
176 #define FB_MODE_GREYSCALE 0x0002
177 #define FB_MODE_DIRECT 0x0004
178 #define FB_MODE_TRUECOLOR 0x0006 /* doesn't work right for me */
179 #define FB_MODE_TRANSP_ENABLE 0x0001
181 #define IBM561_AUXFB_WINTYPE 0x0e00
182 #define AUXFB_BYPASS_GAMMA 0x04
183 #define AUXFB_XHAIR_ENABLE 0x02
184 #define AUXFB_TRANSPARENT 0x01 /* 0 - 0x00, 1 - 0xff */
186 #define IBM561_OL_WINTYPE 0x1400
187 #define OL_CLUT_SELECT_MASK 0x03c0 /* selects which 64 entry block
188 * in the CLUT to start with */
189 #define OL_PIXEL_FORM_MASK 0x0030
190 #define OL_PIXEL_8BIT 0x0000
191 #define OL_PIXEL_6_2BIT 0x0010 /* 6 overlay, 2 underlay */
192 #define OL_PIXEL_4_4BIT 0x0020
193 #define OL_PIXEL_4_DBL 0x0030
194 #define OL_BUFFER_SELECT 0x0008 /* 1 - buffer B */
195 #define OL_MODE_MASK 0x0006
196 #define OL_MODE_INDEXED 0x0000
197 #define OL_MODE_GREYSCALE 0x0002
198 #define OL_MODE_INDIRECT 0x0004
199 #define OL_MODE_DIRECT 0x0006
200 #define OL_MODE_TRANSP_ENABLE 0x0001
202 #define IBM561_AUXOL_WINTYPE 0x0f00
203 #define AUXOL_TRANSP_MASK 0x21
204 #define AUXOL_TRANSP_00 0x00
205 #define AUXOL_TRANSP_FF 0x01
206 #define AUXOL_TRANSP_CHROMA0 0x20
207 #define AUXOL_TRANSP_CHROMA1 0x21
208 #define AUXOL_UNDERLAY_ENABLE 0x10
209 #define AUXOL_OVERLAY_ENABLE 0x08
210 #define AUXOL_BYPASS_GAMMA 0x04
211 #define AUXOL_XHAIR_ENABLE 0x02
213 #define IBM561_CMAP_TABLE 0x4000
214 #define IBM561_RED_GAMMA_TABLE 0x3000
215 #define IBM561_GREEN_GAMMA_TABLE 0x3400
216 #define IBM561_BLUE_GAMMA_TABLE 0x3800
218 #define IBM561_CHROMAKEY0 0x0010
219 #define IBM561_CHROMAKEY1 0x0011
220 #define IBM561_CHROMAKEYMASK0 0x0012
221 #define IBM561_CHROMAKEYMASK1 0x0013
223 #define IBM561_WAT_SEG_REG 0x0006
225 #define IBM561_NCMAP_ENTRIES 1024
226 #define IBM561_NGAMMA_ENTRIES 256
228 /* we actually have 1024 of them, but I am just
229 * going define a few, so this is good.
231 #define IBM561_NWTYPES 16