Merge branch 'sundance'
[linux-2.6] / include / asm-cris / arch-v32 / juliette.h
1 #ifndef _ASM_JULIETTE_H
2 #define _ASM_JULIETTE_H
3
4 /* juliette _IOC_TYPE, bits 8 to 15 in ioctl cmd */
5
6 #define JULIOCTYPE 42
7
8 /* supported ioctl _IOC_NR's */
9
10 #define JULSTARTDMA      0x1        /* start a picture asynchronously */
11
12 /* set parameters */
13
14 #define SETDEFAULT        0x2 /* CCD/VIDEO/SS1M */
15 #define SETPARAMETERS     0x3 /* CCD/VIDEO      */
16 #define SETSIZE           0x4 /* CCD/VIDEO/SS1M */
17 #define SETCOMPRESSION    0x5 /* CCD/VIDEO/SS1M */
18 #define SETCOLORLEVEL     0x6 /* CCD/VIDEO      */
19 #define SETBRIGHTNESS     0x7 /* CCD            */
20 #define SETROTATION       0x8 /* CCD            */
21 #define SETTEXT           0x9 /* CCD/VIDEO/SS1M */
22 #define SETCLOCK          0xa /* CCD/VIDEO/SS1M */
23 #define SETDATE           0xb /* CCD/VIDEO/SS1M */
24 #define SETTIMEFORMAT     0xc /* CCD/VIDEO/SS1M */
25 #define SETDATEFORMAT     0xd /*     VIDEO      */
26 #define SETTEXTALIGNMENT  0xe /*     VIDEO      */
27 #define SETFPS            0xf /* CCD/VIDEO/SS1M */
28 #define SETVGA           0xff /*     VIDEO      */
29 #define SETCOMMENT       0xfe /* CCD/VIDEO      */
30
31 /* get parameters */
32
33 #define GETDRIVERTYPE    0x10 /* CCD/VIDEO/SS1M */
34 #define GETNBROFCAMERAS  0x11 /* CCD/VIDEO/SS1M */
35 #define GETPARAMETERS    0x12 /* CCD/VIDEO/SS1M */
36 #define GETBUFFERSIZE    0x13 /* CCD/VIDEO/SS1M */
37 #define GETVIDEOTYPE     0x14 /*     VIDEO/SS1M */
38 #define GETVIDEOSIGNAL   0x15 /*     VIDEO      */
39 #define GETMODULATION    0x16 /*     VIDEO      */
40 #define GETDCYVALUES     0xa0 /* CCD      /SS1M */
41 #define GETDCYWIDTH      0xa1 /* CCD      /SS1M */
42 #define GETDCYHEIGHT     0xa2 /* CCD      /SS1M */
43 #define GETSIZE          0xa3 /* CCD/VIDEO      */
44 #define GETCOMPRESSION   0xa4 /* CCD/VIDEO      */
45
46 /* detect and get parameters */
47
48 #define DETECTMODULATION  0x17 /*     VIDEO      */
49 #define DETECTVIDEOTYPE   0x18 /*     VIDEO      */
50 #define DETECTVIDEOSIGNAL 0x19 /*     VIDEO      */
51
52 /* configure default parameters */
53
54 #define CONFIGUREDEFAULT  0x20 /* CCD/VIDEO/SS1M */
55 #define DEFSIZE           0x21 /* CCD/VIDEO/SS1M */
56 #define DEFCOMPRESSION    0x22 /* CCD/VIDEO/SS1M */
57 #define DEFCOLORLEVEL     0x23 /* CCD/VIDEO      */
58 #define DEFBRIGHTNESS     0x24 /* CCD            */
59 #define DEFROTATION       0x25 /* CCD            */
60 #define DEFWHITEBALANCE   0x26 /* CCD            */
61 #define DEFEXPOSURE       0x27 /* CCD            */
62 #define DEFAUTOEXPWINDOW  0x28 /* CCD            */
63 #define DEFTEXT           0x29 /* CCD/VIDEO/SS1M */
64 #define DEFCLOCK          0x2a /* CCD/VIDEO/SS1M */
65 #define DEFDATE           0x2b /* CCD/VIDEO/SS1M */
66 #define DEFTIMEFORMAT     0x2c /* CCD/VIDEO/SS1M */
67 #define DEFDATEFORMAT     0x2d /*     VIDEO      */
68 #define DEFTEXTALIGNMENT  0x2e /*     VIDEO      */
69 #define DEFFPS            0x2f /* CCD/VIDEO/SS1M */
70 #define DEFTEXTSTRING     0x30 /* CCD/VIDEO/SS1M */
71 #define DEFHEADERINFO     0x31 /* CCD/VIDEO/SS1M */
72 #define DEFWEXAR          0x32 /* CCD            */
73 #define DEFLINEDELAY      0x33 /* CCD            */
74 #define DEFDISABLEDVIDEO  0x34 /*     VIDEO      */
75 #define DEFVIDEOTYPE      0x35 /*     VIDEO      */
76 #define DEFMODULATION     0x36 /*     VIDEO      */
77 #define DEFXOFFSET        0x37 /*     VIDEO      */
78 #define DEFYOFFSET        0x38 /*     VIDEO      */
79 #define DEFYCMODE         0x39 /*     VIDEO      */
80 #define DEFVCRMODE        0x3a /*     VIDEO      */
81 #define DEFSTOREDCYVALUES 0x3b /* CCD/VIDEO/SS1M */
82 #define DEFWCDS           0x3c /* CCD            */
83 #define DEFVGA            0x3d /*     VIDEO      */
84 #define DEFCOMMENT        0x3e /* CCD/VIDEO      */
85 #define DEFCOMMENTSIZE    0x3f /* CCD/VIDEO      */
86 #define DEFCOMMENTTEXT    0x50 /* CCD/VIDEO      */
87 #define DEFSTOREDCYTEXT   0x51 /*     VIDEO      */
88
89
90 #define JULABORTDMA       0x70 /* Abort current DMA transfer */
91
92 /* juliette general i/o port */
93
94 #define JIO_READBITS      0x40 /* read and return current port bits */
95 #define JIO_SETBITS       0x41 /* set bits marked by 1 in the argument */
96 #define JIO_CLRBITS       0x42 /* clr bits marked by 1 in the argument */
97 #define JIO_READDIR       0x43 /* read direction, 0=input 1=output */
98 #define JIO_SETINPUT      0x44 /* set direction, 0=unchanged 1=input
99                                   returns current dir */
100 #define JIO_SETOUTPUT     0x45 /* set direction, 0=unchanged 1=output
101                                   returns current dir */
102
103 /**** YumYum internal adresses ****/
104
105 /* Juliette buffer addresses */
106
107 #define BUFFER1_VIDEO   0x1100
108 #define BUFFER2_VIDEO   0x2800
109 #define ACDC_BUFF_VIDEO 0x0aaa
110 #define BUFFER1         0x1700
111 #define BUFFER2         0x2b01
112 #define ACDC_BUFFER     0x1200
113 #define BUFFER1_SS1M    0x1100
114 #define BUFFER2_SS1M    0x2800
115 #define ACDC_BUFF_SS1M  0x0900
116
117 /* Juliette parameter memory addresses */
118
119 #define PA_BUFFER_CNT     0x3f09 /* CCD/VIDEO */
120 #define PA_CCD_BUFFER     0x3f10 /* CCD       */
121 #define PA_VIDEO_BUFFER   0x3f10 /*     VIDEO */
122 #define PA_DCT_BUFFER     0x3f11 /* CCD/VIDEO */
123 #define PA_TEMP           0x3f12 /* CCD/VIDEO */
124 #define PA_VIDEOLINE_RD   0x3f13 /*     VIDEO */
125 #define PA_VIDEOLINE_WR   0x3f14 /*     VIDEO */
126 #define PA_VI_HDELAY0     0x3f15 /*     VIDEO */
127 #define PA_VI_VDELAY0     0x3f16 /*     VIDEO */
128 #define PA_VI_HDELAY1     0x3f17 /*     VIDEO */
129 #define PA_VI_VDELAY1     0x3f18 /*     VIDEO */
130 #define PA_VI_HDELAY2     0x3f19 /*     VIDEO */
131 #define PA_VI_VDELAY2     0x3f1a /*     VIDEO */
132 #define PA_VI_HDELAY3     0x3f1b /*     VIDEO */
133 #define PA_VI_VDELAY3     0x3f1c /*     VIDEO */
134 #define PA_VI_CTRL        0x3f20 /*     VIDEO */
135 #define PA_JPEG_CTRL      0x3f22 /* CCD/VIDEO */
136 #define PA_BUFFER_SIZE    0x3f24 /* CCD/VIDEO */
137 #define PA_PAL_NTSC       0x3f25 /*     VIDEO */
138 #define PA_MACROBLOCKS    0x3f26 /* CCD/VIDEO */
139 #define PA_COLOR          0x3f27 /*     VIDEO */
140 #define PA_MEMCH1CNT2     0x3f28 /* CCD/VIDEO */
141 #define PA_MEMCH1CNT3     0x3f29 /*     VIDEO */
142 #define PA_MEMCH1STR2     0x3f2a /* CCD/VIDEO */
143 #define PA_MEMCH1STR3     0x3f2b /*     VIDEO */
144 #define PA_BUFFERS        0x3f2c /* CCD/VIDEO */
145 #define PA_PROGRAM        0x3f2d /* CCD/VIDEO */
146 #define PA_ROTATION       0x3f2e /* CCD       */
147 #define PA_PC             0x3f30 /* CCD/VIDEO */
148 #define PA_PC2            0x3f31 /*     VIDEO */
149 #define PA_ODD_LINE       0x3f32 /*     VIDEO */
150 #define PA_EXP_DELAY      0x3f34 /* CCD       */
151 #define PA_MACROBLOCK_CNT 0x3f35 /* CCD/VIDEO */
152 #define PA_DRAM_PTR1_L    0x3f36 /* CCD/VIDEO */
153 #define PA_CLPOB_CNT      0x3f37 /* CCD       */
154 #define PA_DRAM_PTR1_H    0x3f38 /* CCD/VIDEO */
155 #define PA_DRAM_PTR2_L    0x3f3a /*     VIDEO */
156 #define PA_DRAM_PTR2_H    0x3f3c /*     VIDEO */
157 #define PA_CCD_LINE_CNT   0x3f3f /* CCD       */
158 #define PA_VIDEO_LINE_CNT 0x3f3f /*     VIDEO */
159 #define PA_TEXT           0x3f41 /* CCD/VIDEO */
160 #define PA_CAMERA_CHANGED 0x3f42 /*     VIDEO */
161 #define PA_TEXTALIGNMENT  0x3f43 /*     VIDEO */
162 #define PA_DISABLED       0x3f44 /*     VIDEO */
163 #define PA_MACROBLOCKTEXT 0x3f45 /*     VIDEO */
164 #define PA_VGA            0x3f46 /*     VIDEO */
165 #define PA_ZERO           0x3ffe /*     VIDEO */
166 #define PA_NULL           0x3fff /* CCD/VIDEO */
167
168 typedef enum {
169         jpeg  = 0,
170         dummy = 1
171 } request_type;
172
173 typedef enum {
174         hugesize  = 0,
175         fullsize  = 1,
176         halfsize  = 2,
177         fieldsize = 3
178 } size_type;
179
180 typedef enum {
181         min       = 0,
182         low       = 1,
183         medium    = 2,
184         high      = 3,
185         very_high = 4,
186         very_low  = 5,
187         q1        = 6,
188         q2        = 7,
189         q3        = 8,
190         q4        = 9,
191         q5        = 10,
192         q6        = 11
193 } compr_type;
194
195 typedef enum {
196         deg_0   = 0,
197         deg_180 = 1,
198         deg_90  = 2,
199         deg_270 = 3
200 } rotation_type;
201
202 typedef enum {
203         auto_white    = 0,
204         hold          = 1,
205         fixed_outdoor = 2,
206         fixed_indoor  = 3,
207         fixed_fluor   = 4
208 } white_balance_type;
209
210 typedef enum {
211         auto_exp  = 0,
212         fixed_exp = 1
213 } exposure_type;
214
215 typedef enum {
216         no_window = 0,
217         center    = 1,
218         top       = 2,
219         lower     = 3,
220         left      = 4,
221         right     = 5,
222         spot      = 6,
223         cw        = 7
224 } exp_window_type;
225
226 typedef enum {
227         h_24 = 0,
228         h_12 = 1,
229         h_24P = 2
230 } hour_type;
231
232 typedef enum {
233         standard = 0,
234         YYYY_MM_DD = 1,
235         Www_Mmm_DD_YYYY = 2,
236         Www_DD_MM_YYYY = 3
237 } date_type;
238
239 typedef enum {
240         left_align = 0,
241         center_align = 1,
242         right_align = 2
243 } alignment_type;
244
245 typedef enum {
246         off = 0,
247         on  = 1,
248         no  = 0,
249         yes = 1
250 } enable_type;
251
252 typedef enum {
253          disabled = 0,
254          enabled  = 1,
255          extended = 2
256 } comment_type;
257
258 typedef enum {
259         pal  = 0,
260         ntsc = 1
261 } video_type;
262
263 typedef enum {
264         pal_bghi_ntsc_m              = 0,
265         ntsc_4_43_50hz_pal_4_43_60hz = 1,
266         pal_n_ntsc_4_43_60hz         = 2,
267         ntsc_n_pal_m                 = 3,
268         secam_pal_4_43_60hz          = 4
269 } modulation_type;
270
271 typedef enum {
272         cam0 = 0,
273         cam1 = 1,
274         cam2 = 2,
275         cam3 = 3,
276         quad = 32
277 } camera_type;
278
279 typedef enum {
280         video_driver = 0,
281         ccd_driver   = 1
282 } driver_type;
283
284 struct jul_param {
285         request_type req_type;
286         size_type size;
287         compr_type compression;
288         rotation_type rotation;
289         int color_level;
290         int brightness;
291         white_balance_type white_balance;
292         exposure_type exposure;
293         exp_window_type auto_exp_window;
294         hour_type time_format;
295         date_type date_format;
296         alignment_type text_alignment;
297         enable_type text;
298         enable_type clock;
299         enable_type date;
300         enable_type fps;
301         enable_type vga;
302         enable_type comment;
303 };
304
305 struct video_param {
306         enable_type disabled;
307         modulation_type modulation;
308         video_type video;
309         enable_type signal;
310         enable_type vcr;
311         int xoffset;
312         int yoffset;
313 };
314
315 /* The juliette_request structure is used during the JULSTARTDMA asynchronous
316  * picture-taking ioctl call as an argument to specify a buffer which will get
317  * the final picture.
318  */
319
320 struct juliette_request {
321         char *buf;              /* Pointer to the buffer to hold picture data */
322         unsigned int buflen;    /* Length of the above buffer */
323         unsigned int size;      /* Resulting length, 0 if the picture is not ready */
324 };
325
326 #endif