diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/video/gbe.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/video/gbe.h')
-rw-r--r-- | include/video/gbe.h | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/include/video/gbe.h b/include/video/gbe.h new file mode 100644 index 000000000000..ad510284f8a6 --- /dev/null +++ b/include/video/gbe.h | |||
@@ -0,0 +1,317 @@ | |||
1 | /* | ||
2 | * include/video/gbe.h -- SGI GBE (Graphics Back End) | ||
3 | * | ||
4 | * Copyright (C) 1999 Silicon Graphics, Inc. (Jeffrey Newquist) | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License version 2 as published by the Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #ifndef __GBE_H__ | ||
11 | #define __GBE_H__ | ||
12 | |||
13 | struct sgi_gbe { | ||
14 | volatile uint32_t ctrlstat; /* general control */ | ||
15 | volatile uint32_t dotclock; /* dot clock PLL control */ | ||
16 | volatile uint32_t i2c; /* crt I2C control */ | ||
17 | volatile uint32_t sysclk; /* system clock PLL control */ | ||
18 | volatile uint32_t i2cfp; /* flat panel I2C control */ | ||
19 | volatile uint32_t id; /* device id/chip revision */ | ||
20 | volatile uint32_t config; /* power on configuration [1] */ | ||
21 | volatile uint32_t bist; /* internal bist status [1] */ | ||
22 | uint32_t _pad0[0x010000/4 - 8]; | ||
23 | volatile uint32_t vt_xy; /* current dot coords */ | ||
24 | volatile uint32_t vt_xymax; /* maximum dot coords */ | ||
25 | volatile uint32_t vt_vsync; /* vsync on/off */ | ||
26 | volatile uint32_t vt_hsync; /* hsync on/off */ | ||
27 | volatile uint32_t vt_vblank; /* vblank on/off */ | ||
28 | volatile uint32_t vt_hblank; /* hblank on/off */ | ||
29 | volatile uint32_t vt_flags; /* polarity of vt signals */ | ||
30 | volatile uint32_t vt_f2rf_lock; /* f2rf & framelck y coord */ | ||
31 | volatile uint32_t vt_intr01; /* intr 0,1 y coords */ | ||
32 | volatile uint32_t vt_intr23; /* intr 2,3 y coords */ | ||
33 | volatile uint32_t fp_hdrv; /* flat panel hdrv on/off */ | ||
34 | volatile uint32_t fp_vdrv; /* flat panel vdrv on/off */ | ||
35 | volatile uint32_t fp_de; /* flat panel de on/off */ | ||
36 | volatile uint32_t vt_hpixen; /* intrnl horiz pixel on/off */ | ||
37 | volatile uint32_t vt_vpixen; /* intrnl vert pixel on/off */ | ||
38 | volatile uint32_t vt_hcmap; /* cmap write (horiz) */ | ||
39 | volatile uint32_t vt_vcmap; /* cmap write (vert) */ | ||
40 | volatile uint32_t did_start_xy; /* eol/f did/xy reset val */ | ||
41 | volatile uint32_t crs_start_xy; /* eol/f crs/xy reset val */ | ||
42 | volatile uint32_t vc_start_xy; /* eol/f vc/xy reset val */ | ||
43 | uint32_t _pad1[0xffb0/4]; | ||
44 | volatile uint32_t ovr_width_tile;/*overlay plane ctrl 0 */ | ||
45 | volatile uint32_t ovr_inhwctrl; /* overlay plane ctrl 1 */ | ||
46 | volatile uint32_t ovr_control; /* overlay plane ctrl 1 */ | ||
47 | uint32_t _pad2[0xfff4/4]; | ||
48 | volatile uint32_t frm_size_tile;/* normal plane ctrl 0 */ | ||
49 | volatile uint32_t frm_size_pixel;/*normal plane ctrl 1 */ | ||
50 | volatile uint32_t frm_inhwctrl; /* normal plane ctrl 2 */ | ||
51 | volatile uint32_t frm_control; /* normal plane ctrl 3 */ | ||
52 | uint32_t _pad3[0xfff0/4]; | ||
53 | volatile uint32_t did_inhwctrl; /* DID control */ | ||
54 | volatile uint32_t did_control; /* DID shadow */ | ||
55 | uint32_t _pad4[0x7ff8/4]; | ||
56 | volatile uint32_t mode_regs[32];/* WID table */ | ||
57 | uint32_t _pad5[0x7f80/4]; | ||
58 | volatile uint32_t cmap[6144]; /* color map */ | ||
59 | uint32_t _pad6[0x2000/4]; | ||
60 | volatile uint32_t cm_fifo; /* color map fifo status */ | ||
61 | uint32_t _pad7[0x7ffc/4]; | ||
62 | volatile uint32_t gmap[256]; /* gamma map */ | ||
63 | uint32_t _pad8[0x7c00/4]; | ||
64 | volatile uint32_t gmap10[1024]; /* gamma map */ | ||
65 | uint32_t _pad9[0x7000/4]; | ||
66 | volatile uint32_t crs_pos; /* cusror control 0 */ | ||
67 | volatile uint32_t crs_ctl; /* cusror control 1 */ | ||
68 | volatile uint32_t crs_cmap[3]; /* crs cmap */ | ||
69 | uint32_t _pad10[0x7fec/4]; | ||
70 | volatile uint32_t crs_glyph[64];/* crs glyph */ | ||
71 | uint32_t _pad11[0x7f00/4]; | ||
72 | volatile uint32_t vc_0; /* video capture crtl 0 */ | ||
73 | volatile uint32_t vc_1; /* video capture crtl 1 */ | ||
74 | volatile uint32_t vc_2; /* video capture crtl 2 */ | ||
75 | volatile uint32_t vc_3; /* video capture crtl 3 */ | ||
76 | volatile uint32_t vc_4; /* video capture crtl 4 */ | ||
77 | volatile uint32_t vc_5; /* video capture crtl 5 */ | ||
78 | volatile uint32_t vc_6; /* video capture crtl 6 */ | ||
79 | volatile uint32_t vc_7; /* video capture crtl 7 */ | ||
80 | volatile uint32_t vc_8; /* video capture crtl 8 */ | ||
81 | }; | ||
82 | |||
83 | #define MASK(msb, lsb) \ | ||
84 | ( (((u32)1<<((msb)-(lsb)+1))-1) << (lsb) ) | ||
85 | #define GET(v, msb, lsb) \ | ||
86 | ( ((u32)(v) & MASK(msb,lsb)) >> (lsb) ) | ||
87 | #define SET(v, f, msb, lsb) \ | ||
88 | ( (v) = ((v)&~MASK(msb,lsb)) | (( (u32)(f)<<(lsb) ) & MASK(msb,lsb)) ) | ||
89 | |||
90 | #define GET_GBE_FIELD(reg, field, v) \ | ||
91 | GET((v), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB) | ||
92 | #define SET_GBE_FIELD(reg, field, v, f) \ | ||
93 | SET((v), (f), GBE_##reg##_##field##_MSB, GBE_##reg##_##field##_LSB) | ||
94 | |||
95 | /* | ||
96 | * Bit mask information | ||
97 | */ | ||
98 | #define GBE_CTRLSTAT_CHIPID_MSB 3 | ||
99 | #define GBE_CTRLSTAT_CHIPID_LSB 0 | ||
100 | #define GBE_CTRLSTAT_SENSE_N_MSB 4 | ||
101 | #define GBE_CTRLSTAT_SENSE_N_LSB 4 | ||
102 | #define GBE_CTRLSTAT_PCLKSEL_MSB 29 | ||
103 | #define GBE_CTRLSTAT_PCLKSEL_LSB 28 | ||
104 | |||
105 | #define GBE_DOTCLK_M_MSB 7 | ||
106 | #define GBE_DOTCLK_M_LSB 0 | ||
107 | #define GBE_DOTCLK_N_MSB 13 | ||
108 | #define GBE_DOTCLK_N_LSB 8 | ||
109 | #define GBE_DOTCLK_P_MSB 15 | ||
110 | #define GBE_DOTCLK_P_LSB 14 | ||
111 | #define GBE_DOTCLK_RUN_MSB 20 | ||
112 | #define GBE_DOTCLK_RUN_LSB 20 | ||
113 | |||
114 | #define GBE_VT_XY_Y_MSB 23 | ||
115 | #define GBE_VT_XY_Y_LSB 12 | ||
116 | #define GBE_VT_XY_X_MSB 11 | ||
117 | #define GBE_VT_XY_X_LSB 0 | ||
118 | #define GBE_VT_XY_FREEZE_MSB 31 | ||
119 | #define GBE_VT_XY_FREEZE_LSB 31 | ||
120 | |||
121 | #define GBE_FP_VDRV_ON_MSB 23 | ||
122 | #define GBE_FP_VDRV_ON_LSB 12 | ||
123 | #define GBE_FP_VDRV_OFF_MSB 11 | ||
124 | #define GBE_FP_VDRV_OFF_LSB 0 | ||
125 | |||
126 | #define GBE_FP_HDRV_ON_MSB 23 | ||
127 | #define GBE_FP_HDRV_ON_LSB 12 | ||
128 | #define GBE_FP_HDRV_OFF_MSB 11 | ||
129 | #define GBE_FP_HDRV_OFF_LSB 0 | ||
130 | |||
131 | #define GBE_FP_DE_ON_MSB 23 | ||
132 | #define GBE_FP_DE_ON_LSB 12 | ||
133 | #define GBE_FP_DE_OFF_MSB 11 | ||
134 | #define GBE_FP_DE_OFF_LSB 0 | ||
135 | |||
136 | #define GBE_VT_VSYNC_VSYNC_ON_MSB 23 | ||
137 | #define GBE_VT_VSYNC_VSYNC_ON_LSB 12 | ||
138 | #define GBE_VT_VSYNC_VSYNC_OFF_MSB 11 | ||
139 | #define GBE_VT_VSYNC_VSYNC_OFF_LSB 0 | ||
140 | |||
141 | #define GBE_VT_HSYNC_HSYNC_ON_MSB 23 | ||
142 | #define GBE_VT_HSYNC_HSYNC_ON_LSB 12 | ||
143 | #define GBE_VT_HSYNC_HSYNC_OFF_MSB 11 | ||
144 | #define GBE_VT_HSYNC_HSYNC_OFF_LSB 0 | ||
145 | |||
146 | #define GBE_VT_VBLANK_VBLANK_ON_MSB 23 | ||
147 | #define GBE_VT_VBLANK_VBLANK_ON_LSB 12 | ||
148 | #define GBE_VT_VBLANK_VBLANK_OFF_MSB 11 | ||
149 | #define GBE_VT_VBLANK_VBLANK_OFF_LSB 0 | ||
150 | |||
151 | #define GBE_VT_HBLANK_HBLANK_ON_MSB 23 | ||
152 | #define GBE_VT_HBLANK_HBLANK_ON_LSB 12 | ||
153 | #define GBE_VT_HBLANK_HBLANK_OFF_MSB 11 | ||
154 | #define GBE_VT_HBLANK_HBLANK_OFF_LSB 0 | ||
155 | |||
156 | #define GBE_VT_FLAGS_F2RF_HIGH_MSB 6 | ||
157 | #define GBE_VT_FLAGS_F2RF_HIGH_LSB 6 | ||
158 | #define GBE_VT_FLAGS_SYNC_LOW_MSB 5 | ||
159 | #define GBE_VT_FLAGS_SYNC_LOW_LSB 5 | ||
160 | #define GBE_VT_FLAGS_SYNC_HIGH_MSB 4 | ||
161 | #define GBE_VT_FLAGS_SYNC_HIGH_LSB 4 | ||
162 | #define GBE_VT_FLAGS_HDRV_LOW_MSB 3 | ||
163 | #define GBE_VT_FLAGS_HDRV_LOW_LSB 3 | ||
164 | #define GBE_VT_FLAGS_HDRV_INVERT_MSB 2 | ||
165 | #define GBE_VT_FLAGS_HDRV_INVERT_LSB 2 | ||
166 | #define GBE_VT_FLAGS_VDRV_LOW_MSB 1 | ||
167 | #define GBE_VT_FLAGS_VDRV_LOW_LSB 1 | ||
168 | #define GBE_VT_FLAGS_VDRV_INVERT_MSB 0 | ||
169 | #define GBE_VT_FLAGS_VDRV_INVERT_LSB 0 | ||
170 | |||
171 | #define GBE_VT_VCMAP_VCMAP_ON_MSB 23 | ||
172 | #define GBE_VT_VCMAP_VCMAP_ON_LSB 12 | ||
173 | #define GBE_VT_VCMAP_VCMAP_OFF_MSB 11 | ||
174 | #define GBE_VT_VCMAP_VCMAP_OFF_LSB 0 | ||
175 | |||
176 | #define GBE_VT_HCMAP_HCMAP_ON_MSB 23 | ||
177 | #define GBE_VT_HCMAP_HCMAP_ON_LSB 12 | ||
178 | #define GBE_VT_HCMAP_HCMAP_OFF_MSB 11 | ||
179 | #define GBE_VT_HCMAP_HCMAP_OFF_LSB 0 | ||
180 | |||
181 | #define GBE_VT_XYMAX_MAXX_MSB 11 | ||
182 | #define GBE_VT_XYMAX_MAXX_LSB 0 | ||
183 | #define GBE_VT_XYMAX_MAXY_MSB 23 | ||
184 | #define GBE_VT_XYMAX_MAXY_LSB 12 | ||
185 | |||
186 | #define GBE_VT_HPIXEN_HPIXEN_ON_MSB 23 | ||
187 | #define GBE_VT_HPIXEN_HPIXEN_ON_LSB 12 | ||
188 | #define GBE_VT_HPIXEN_HPIXEN_OFF_MSB 11 | ||
189 | #define GBE_VT_HPIXEN_HPIXEN_OFF_LSB 0 | ||
190 | |||
191 | #define GBE_VT_VPIXEN_VPIXEN_ON_MSB 23 | ||
192 | #define GBE_VT_VPIXEN_VPIXEN_ON_LSB 12 | ||
193 | #define GBE_VT_VPIXEN_VPIXEN_OFF_MSB 11 | ||
194 | #define GBE_VT_VPIXEN_VPIXEN_OFF_LSB 0 | ||
195 | |||
196 | #define GBE_OVR_CONTROL_OVR_DMA_ENABLE_MSB 0 | ||
197 | #define GBE_OVR_CONTROL_OVR_DMA_ENABLE_LSB 0 | ||
198 | |||
199 | #define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_MSB 0 | ||
200 | #define GBE_OVR_INHWCTRL_OVR_DMA_ENABLE_LSB 0 | ||
201 | |||
202 | #define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_MSB 13 | ||
203 | #define GBE_OVR_WIDTH_TILE_OVR_FIFO_RESET_LSB 13 | ||
204 | |||
205 | #define GBE_FRM_CONTROL_FRM_DMA_ENABLE_MSB 0 | ||
206 | #define GBE_FRM_CONTROL_FRM_DMA_ENABLE_LSB 0 | ||
207 | #define GBE_FRM_CONTROL_FRM_TILE_PTR_MSB 31 | ||
208 | #define GBE_FRM_CONTROL_FRM_TILE_PTR_LSB 9 | ||
209 | #define GBE_FRM_CONTROL_FRM_LINEAR_MSB 1 | ||
210 | #define GBE_FRM_CONTROL_FRM_LINEAR_LSB 1 | ||
211 | |||
212 | #define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_MSB 0 | ||
213 | #define GBE_FRM_INHWCTRL_FRM_DMA_ENABLE_LSB 0 | ||
214 | |||
215 | #define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_MSB 12 | ||
216 | #define GBE_FRM_SIZE_TILE_FRM_WIDTH_TILE_LSB 5 | ||
217 | #define GBE_FRM_SIZE_TILE_FRM_RHS_MSB 4 | ||
218 | #define GBE_FRM_SIZE_TILE_FRM_RHS_LSB 0 | ||
219 | #define GBE_FRM_SIZE_TILE_FRM_DEPTH_MSB 14 | ||
220 | #define GBE_FRM_SIZE_TILE_FRM_DEPTH_LSB 13 | ||
221 | #define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_MSB 15 | ||
222 | #define GBE_FRM_SIZE_TILE_FRM_FIFO_RESET_LSB 15 | ||
223 | |||
224 | #define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_MSB 31 | ||
225 | #define GBE_FRM_SIZE_PIXEL_FB_HEIGHT_PIX_LSB 16 | ||
226 | |||
227 | #define GBE_DID_CONTROL_DID_DMA_ENABLE_MSB 0 | ||
228 | #define GBE_DID_CONTROL_DID_DMA_ENABLE_LSB 0 | ||
229 | #define GBE_DID_INHWCTRL_DID_DMA_ENABLE_MSB 0 | ||
230 | #define GBE_DID_INHWCTRL_DID_DMA_ENABLE_LSB 0 | ||
231 | |||
232 | #define GBE_DID_START_XY_DID_STARTY_MSB 23 | ||
233 | #define GBE_DID_START_XY_DID_STARTY_LSB 12 | ||
234 | #define GBE_DID_START_XY_DID_STARTX_MSB 11 | ||
235 | #define GBE_DID_START_XY_DID_STARTX_LSB 0 | ||
236 | |||
237 | #define GBE_CRS_START_XY_CRS_STARTY_MSB 23 | ||
238 | #define GBE_CRS_START_XY_CRS_STARTY_LSB 12 | ||
239 | #define GBE_CRS_START_XY_CRS_STARTX_MSB 11 | ||
240 | #define GBE_CRS_START_XY_CRS_STARTX_LSB 0 | ||
241 | |||
242 | #define GBE_WID_AUX_MSB 12 | ||
243 | #define GBE_WID_AUX_LSB 11 | ||
244 | #define GBE_WID_GAMMA_MSB 10 | ||
245 | #define GBE_WID_GAMMA_LSB 10 | ||
246 | #define GBE_WID_CM_MSB 9 | ||
247 | #define GBE_WID_CM_LSB 5 | ||
248 | #define GBE_WID_TYP_MSB 4 | ||
249 | #define GBE_WID_TYP_LSB 2 | ||
250 | #define GBE_WID_BUF_MSB 1 | ||
251 | #define GBE_WID_BUF_LSB 0 | ||
252 | |||
253 | #define GBE_VC_START_XY_VC_STARTY_MSB 23 | ||
254 | #define GBE_VC_START_XY_VC_STARTY_LSB 12 | ||
255 | #define GBE_VC_START_XY_VC_STARTX_MSB 11 | ||
256 | #define GBE_VC_START_XY_VC_STARTX_LSB 0 | ||
257 | |||
258 | /* Constants */ | ||
259 | |||
260 | #define GBE_FRM_DEPTH_8 0 | ||
261 | #define GBE_FRM_DEPTH_16 1 | ||
262 | #define GBE_FRM_DEPTH_32 2 | ||
263 | |||
264 | #define GBE_CMODE_I8 0 | ||
265 | #define GBE_CMODE_I12 1 | ||
266 | #define GBE_CMODE_RG3B2 2 | ||
267 | #define GBE_CMODE_RGB4 3 | ||
268 | #define GBE_CMODE_ARGB5 4 | ||
269 | #define GBE_CMODE_RGB8 5 | ||
270 | #define GBE_CMODE_RGBA5 6 | ||
271 | #define GBE_CMODE_RGB10 7 | ||
272 | |||
273 | #define GBE_BMODE_BOTH 3 | ||
274 | |||
275 | #define GBE_CRS_MAGIC 54 | ||
276 | #define GBE_PIXEN_MAGIC_ON 19 | ||
277 | #define GBE_PIXEN_MAGIC_OFF 2 | ||
278 | |||
279 | #define GBE_TLB_SIZE 128 | ||
280 | |||
281 | /* [1] - only GBE revision 2 and later */ | ||
282 | |||
283 | /* | ||
284 | * Video Timing Data Structure | ||
285 | */ | ||
286 | |||
287 | struct gbe_timing_info { | ||
288 | int flags; | ||
289 | short width; /* Monitor resolution */ | ||
290 | short height; | ||
291 | int fields_sec; /* fields/sec (Hz -3 dec. places */ | ||
292 | int cfreq; /* pixel clock frequency (MHz -3 dec. places) */ | ||
293 | short htotal; /* Horizontal total pixels */ | ||
294 | short hblank_start; /* Horizontal blank start */ | ||
295 | short hblank_end; /* Horizontal blank end */ | ||
296 | short hsync_start; /* Horizontal sync start */ | ||
297 | short hsync_end; /* Horizontal sync end */ | ||
298 | short vtotal; /* Vertical total lines */ | ||
299 | short vblank_start; /* Vertical blank start */ | ||
300 | short vblank_end; /* Vertical blank end */ | ||
301 | short vsync_start; /* Vertical sync start */ | ||
302 | short vsync_end; /* Vertical sync end */ | ||
303 | short pll_m; /* PLL M parameter */ | ||
304 | short pll_n; /* PLL P parameter */ | ||
305 | short pll_p; /* PLL N parameter */ | ||
306 | }; | ||
307 | |||
308 | /* Defines for gbe_vof_info_t flags */ | ||
309 | |||
310 | #define GBE_VOF_UNKNOWNMON 1 | ||
311 | #define GBE_VOF_STEREO 2 | ||
312 | #define GBE_VOF_DO_GENSYNC 4 /* enable incoming sync */ | ||
313 | #define GBE_VOF_SYNC_ON_GREEN 8 /* sync on green */ | ||
314 | #define GBE_VOF_FLATPANEL 0x1000 /* FLATPANEL Timing */ | ||
315 | #define GBE_VOF_MAGICKEY 0x2000 /* Backdoor key */ | ||
316 | |||
317 | #endif /* ! __GBE_H__ */ | ||