Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 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 |