diff options
Diffstat (limited to 'include/media/davinci/isif.h')
-rw-r--r-- | include/media/davinci/isif.h | 531 |
1 files changed, 531 insertions, 0 deletions
diff --git a/include/media/davinci/isif.h b/include/media/davinci/isif.h new file mode 100644 index 000000000000..b0b74ad618cc --- /dev/null +++ b/include/media/davinci/isif.h | |||
@@ -0,0 +1,531 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008-2009 Texas Instruments Inc | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
17 | * | ||
18 | * isif header file | ||
19 | */ | ||
20 | #ifndef _ISIF_H | ||
21 | #define _ISIF_H | ||
22 | |||
23 | #include <media/davinci/ccdc_types.h> | ||
24 | #include <media/davinci/vpfe_types.h> | ||
25 | |||
26 | /* isif float type S8Q8/U8Q8 */ | ||
27 | struct isif_float_8 { | ||
28 | /* 8 bit integer part */ | ||
29 | __u8 integer; | ||
30 | /* 8 bit decimal part */ | ||
31 | __u8 decimal; | ||
32 | }; | ||
33 | |||
34 | /* isif float type U16Q16/S16Q16 */ | ||
35 | struct isif_float_16 { | ||
36 | /* 16 bit integer part */ | ||
37 | __u16 integer; | ||
38 | /* 16 bit decimal part */ | ||
39 | __u16 decimal; | ||
40 | }; | ||
41 | |||
42 | /************************************************************************ | ||
43 | * Vertical Defect Correction parameters | ||
44 | ***********************************************************************/ | ||
45 | /* Defect Correction (DFC) table entry */ | ||
46 | struct isif_vdfc_entry { | ||
47 | /* vertical position of defect */ | ||
48 | __u16 pos_vert; | ||
49 | /* horizontal position of defect */ | ||
50 | __u16 pos_horz; | ||
51 | /* | ||
52 | * Defect level of Vertical line defect position. This is subtracted | ||
53 | * from the data at the defect position | ||
54 | */ | ||
55 | __u8 level_at_pos; | ||
56 | /* | ||
57 | * Defect level of the pixels upper than the vertical line defect. | ||
58 | * This is subtracted from the data | ||
59 | */ | ||
60 | __u8 level_up_pixels; | ||
61 | /* | ||
62 | * Defect level of the pixels lower than the vertical line defect. | ||
63 | * This is subtracted from the data | ||
64 | */ | ||
65 | __u8 level_low_pixels; | ||
66 | }; | ||
67 | |||
68 | #define ISIF_VDFC_TABLE_SIZE 8 | ||
69 | struct isif_dfc { | ||
70 | /* enable vertical defect correction */ | ||
71 | __u8 en; | ||
72 | /* Defect level subtraction. Just fed through if saturating */ | ||
73 | #define ISIF_VDFC_NORMAL 0 | ||
74 | /* | ||
75 | * Defect level subtraction. Horizontal interpolation ((i-2)+(i+2))/2 | ||
76 | * if data saturating | ||
77 | */ | ||
78 | #define ISIF_VDFC_HORZ_INTERPOL_IF_SAT 1 | ||
79 | /* Horizontal interpolation (((i-2)+(i+2))/2) */ | ||
80 | #define ISIF_VDFC_HORZ_INTERPOL 2 | ||
81 | /* one of the vertical defect correction modes above */ | ||
82 | __u8 corr_mode; | ||
83 | /* 0 - whole line corrected, 1 - not pixels upper than the defect */ | ||
84 | __u8 corr_whole_line; | ||
85 | #define ISIF_VDFC_NO_SHIFT 0 | ||
86 | #define ISIF_VDFC_SHIFT_1 1 | ||
87 | #define ISIF_VDFC_SHIFT_2 2 | ||
88 | #define ISIF_VDFC_SHIFT_3 3 | ||
89 | #define ISIF_VDFC_SHIFT_4 4 | ||
90 | /* | ||
91 | * defect level shift value. level_at_pos, level_upper_pos, | ||
92 | * and level_lower_pos can be shifted up by this value. Choose | ||
93 | * one of the values above | ||
94 | */ | ||
95 | __u8 def_level_shift; | ||
96 | /* defect saturation level */ | ||
97 | __u16 def_sat_level; | ||
98 | /* number of vertical defects. Max is ISIF_VDFC_TABLE_SIZE */ | ||
99 | __u16 num_vdefects; | ||
100 | /* VDFC table ptr */ | ||
101 | struct isif_vdfc_entry table[ISIF_VDFC_TABLE_SIZE]; | ||
102 | }; | ||
103 | |||
104 | struct isif_horz_bclamp { | ||
105 | |||
106 | /* Horizontal clamp disabled. Only vertical clamp value is subtracted */ | ||
107 | #define ISIF_HORZ_BC_DISABLE 0 | ||
108 | /* | ||
109 | * Horizontal clamp value is calculated and subtracted from image data | ||
110 | * along with vertical clamp value | ||
111 | */ | ||
112 | #define ISIF_HORZ_BC_CLAMP_CALC_ENABLED 1 | ||
113 | /* | ||
114 | * Horizontal clamp value calculated from previous image is subtracted | ||
115 | * from image data along with vertical clamp value. | ||
116 | */ | ||
117 | #define ISIF_HORZ_BC_CLAMP_NOT_UPDATED 2 | ||
118 | /* horizontal clamp mode. One of the values above */ | ||
119 | __u8 mode; | ||
120 | /* | ||
121 | * pixel value limit enable. | ||
122 | * 0 - limit disabled | ||
123 | * 1 - pixel value limited to 1023 | ||
124 | */ | ||
125 | __u8 clamp_pix_limit; | ||
126 | /* Select Most left window for bc calculation */ | ||
127 | #define ISIF_SEL_MOST_LEFT_WIN 0 | ||
128 | /* Select Most right window for bc calculation */ | ||
129 | #define ISIF_SEL_MOST_RIGHT_WIN 1 | ||
130 | /* Select most left or right window for clamp val calculation */ | ||
131 | __u8 base_win_sel_calc; | ||
132 | /* Window count per color for calculation. range 1-32 */ | ||
133 | __u8 win_count_calc; | ||
134 | /* Window start position - horizontal for calculation. 0 - 8191 */ | ||
135 | __u16 win_start_h_calc; | ||
136 | /* Window start position - vertical for calculation 0 - 8191 */ | ||
137 | __u16 win_start_v_calc; | ||
138 | #define ISIF_HORZ_BC_SZ_H_2PIXELS 0 | ||
139 | #define ISIF_HORZ_BC_SZ_H_4PIXELS 1 | ||
140 | #define ISIF_HORZ_BC_SZ_H_8PIXELS 2 | ||
141 | #define ISIF_HORZ_BC_SZ_H_16PIXELS 3 | ||
142 | /* Width of the sample window in pixels for calculation */ | ||
143 | __u8 win_h_sz_calc; | ||
144 | #define ISIF_HORZ_BC_SZ_V_32PIXELS 0 | ||
145 | #define ISIF_HORZ_BC_SZ_V_64PIXELS 1 | ||
146 | #define ISIF_HORZ_BC_SZ_V_128PIXELS 2 | ||
147 | #define ISIF_HORZ_BC_SZ_V_256PIXELS 3 | ||
148 | /* Height of the sample window in pixels for calculation */ | ||
149 | __u8 win_v_sz_calc; | ||
150 | }; | ||
151 | |||
152 | /************************************************************************ | ||
153 | * Black Clamp parameters | ||
154 | ***********************************************************************/ | ||
155 | struct isif_vert_bclamp { | ||
156 | /* Reset value used is the clamp value calculated */ | ||
157 | #define ISIF_VERT_BC_USE_HORZ_CLAMP_VAL 0 | ||
158 | /* Reset value used is reset_clamp_val configured */ | ||
159 | #define ISIF_VERT_BC_USE_CONFIG_CLAMP_VAL 1 | ||
160 | /* No update, previous image value is used */ | ||
161 | #define ISIF_VERT_BC_NO_UPDATE 2 | ||
162 | /* | ||
163 | * Reset value selector for vertical clamp calculation. Use one of | ||
164 | * the above values | ||
165 | */ | ||
166 | __u8 reset_val_sel; | ||
167 | /* U8Q8. Line average coefficient used in vertical clamp calculation */ | ||
168 | __u8 line_ave_coef; | ||
169 | /* Height of the optical black region for calculation */ | ||
170 | __u16 ob_v_sz_calc; | ||
171 | /* Optical black region start position - horizontal. 0 - 8191 */ | ||
172 | __u16 ob_start_h; | ||
173 | /* Optical black region start position - vertical 0 - 8191 */ | ||
174 | __u16 ob_start_v; | ||
175 | }; | ||
176 | |||
177 | struct isif_black_clamp { | ||
178 | /* | ||
179 | * This offset value is added irrespective of the clamp enable status. | ||
180 | * S13 | ||
181 | */ | ||
182 | __u16 dc_offset; | ||
183 | /* | ||
184 | * Enable black/digital clamp value to be subtracted from the image data | ||
185 | */ | ||
186 | __u8 en; | ||
187 | /* | ||
188 | * black clamp mode. same/separate clamp for 4 colors | ||
189 | * 0 - disable - same clamp value for all colors | ||
190 | * 1 - clamp value calculated separately for all colors | ||
191 | */ | ||
192 | __u8 bc_mode_color; | ||
193 | /* Vrtical start position for bc subtraction */ | ||
194 | __u16 vert_start_sub; | ||
195 | /* Black clamp for horizontal direction */ | ||
196 | struct isif_horz_bclamp horz; | ||
197 | /* Black clamp for vertical direction */ | ||
198 | struct isif_vert_bclamp vert; | ||
199 | }; | ||
200 | |||
201 | /************************************************************************* | ||
202 | ** Color Space Convertion (CSC) | ||
203 | *************************************************************************/ | ||
204 | #define ISIF_CSC_NUM_COEFF 16 | ||
205 | struct isif_color_space_conv { | ||
206 | /* Enable color space conversion */ | ||
207 | __u8 en; | ||
208 | /* | ||
209 | * csc coeffient table. S8Q5, M00 at index 0, M01 at index 1, and | ||
210 | * so forth | ||
211 | */ | ||
212 | struct isif_float_8 coeff[ISIF_CSC_NUM_COEFF]; | ||
213 | }; | ||
214 | |||
215 | |||
216 | /************************************************************************* | ||
217 | ** Black Compensation parameters | ||
218 | *************************************************************************/ | ||
219 | struct isif_black_comp { | ||
220 | /* Comp for Red */ | ||
221 | __s8 r_comp; | ||
222 | /* Comp for Gr */ | ||
223 | __s8 gr_comp; | ||
224 | /* Comp for Blue */ | ||
225 | __s8 b_comp; | ||
226 | /* Comp for Gb */ | ||
227 | __s8 gb_comp; | ||
228 | }; | ||
229 | |||
230 | /************************************************************************* | ||
231 | ** Gain parameters | ||
232 | *************************************************************************/ | ||
233 | struct isif_gain { | ||
234 | /* Gain for Red or ye */ | ||
235 | struct isif_float_16 r_ye; | ||
236 | /* Gain for Gr or cy */ | ||
237 | struct isif_float_16 gr_cy; | ||
238 | /* Gain for Gb or g */ | ||
239 | struct isif_float_16 gb_g; | ||
240 | /* Gain for Blue or mg */ | ||
241 | struct isif_float_16 b_mg; | ||
242 | }; | ||
243 | |||
244 | #define ISIF_LINEAR_TAB_SIZE 192 | ||
245 | /************************************************************************* | ||
246 | ** Linearization parameters | ||
247 | *************************************************************************/ | ||
248 | struct isif_linearize { | ||
249 | /* Enable or Disable linearization of data */ | ||
250 | __u8 en; | ||
251 | /* Shift value applied */ | ||
252 | __u8 corr_shft; | ||
253 | /* scale factor applied U11Q10 */ | ||
254 | struct isif_float_16 scale_fact; | ||
255 | /* Size of the linear table */ | ||
256 | __u16 table[ISIF_LINEAR_TAB_SIZE]; | ||
257 | }; | ||
258 | |||
259 | /* Color patterns */ | ||
260 | #define ISIF_RED 0 | ||
261 | #define ISIF_GREEN_RED 1 | ||
262 | #define ISIF_GREEN_BLUE 2 | ||
263 | #define ISIF_BLUE 3 | ||
264 | struct isif_col_pat { | ||
265 | __u8 olop; | ||
266 | __u8 olep; | ||
267 | __u8 elop; | ||
268 | __u8 elep; | ||
269 | }; | ||
270 | |||
271 | /************************************************************************* | ||
272 | ** Data formatter parameters | ||
273 | *************************************************************************/ | ||
274 | struct isif_fmtplen { | ||
275 | /* | ||
276 | * number of program entries for SET0, range 1 - 16 | ||
277 | * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is | ||
278 | * ISIF_COMBINE | ||
279 | */ | ||
280 | __u16 plen0; | ||
281 | /* | ||
282 | * number of program entries for SET1, range 1 - 16 | ||
283 | * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is | ||
284 | * ISIF_COMBINE | ||
285 | */ | ||
286 | __u16 plen1; | ||
287 | /** | ||
288 | * number of program entries for SET2, range 1 - 16 | ||
289 | * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is | ||
290 | * ISIF_COMBINE | ||
291 | */ | ||
292 | __u16 plen2; | ||
293 | /** | ||
294 | * number of program entries for SET3, range 1 - 16 | ||
295 | * when fmtmode is ISIF_SPLIT, 1 - 8 when fmtmode is | ||
296 | * ISIF_COMBINE | ||
297 | */ | ||
298 | __u16 plen3; | ||
299 | }; | ||
300 | |||
301 | struct isif_fmt_cfg { | ||
302 | #define ISIF_SPLIT 0 | ||
303 | #define ISIF_COMBINE 1 | ||
304 | /* Split or combine or line alternate */ | ||
305 | __u8 fmtmode; | ||
306 | /* enable or disable line alternating mode */ | ||
307 | __u8 ln_alter_en; | ||
308 | #define ISIF_1LINE 0 | ||
309 | #define ISIF_2LINES 1 | ||
310 | #define ISIF_3LINES 2 | ||
311 | #define ISIF_4LINES 3 | ||
312 | /* Split/combine line number */ | ||
313 | __u8 lnum; | ||
314 | /* Address increment Range 1 - 16 */ | ||
315 | __u8 addrinc; | ||
316 | }; | ||
317 | |||
318 | struct isif_fmt_addr_ptr { | ||
319 | /* Initial address */ | ||
320 | __u32 init_addr; | ||
321 | /* output line number */ | ||
322 | #define ISIF_1STLINE 0 | ||
323 | #define ISIF_2NDLINE 1 | ||
324 | #define ISIF_3RDLINE 2 | ||
325 | #define ISIF_4THLINE 3 | ||
326 | __u8 out_line; | ||
327 | }; | ||
328 | |||
329 | struct isif_fmtpgm_ap { | ||
330 | /* program address pointer */ | ||
331 | __u8 pgm_aptr; | ||
332 | /* program address increment or decrement */ | ||
333 | __u8 pgmupdt; | ||
334 | }; | ||
335 | |||
336 | struct isif_data_formatter { | ||
337 | /* Enable/Disable data formatter */ | ||
338 | __u8 en; | ||
339 | /* data formatter configuration */ | ||
340 | struct isif_fmt_cfg cfg; | ||
341 | /* Formatter program entries length */ | ||
342 | struct isif_fmtplen plen; | ||
343 | /* first pixel in a line fed to formatter */ | ||
344 | __u16 fmtrlen; | ||
345 | /* HD interval for output line. Only valid when split line */ | ||
346 | __u16 fmthcnt; | ||
347 | /* formatter address pointers */ | ||
348 | struct isif_fmt_addr_ptr fmtaddr_ptr[16]; | ||
349 | /* program enable/disable */ | ||
350 | __u8 pgm_en[32]; | ||
351 | /* program address pointers */ | ||
352 | struct isif_fmtpgm_ap fmtpgm_ap[32]; | ||
353 | }; | ||
354 | |||
355 | struct isif_df_csc { | ||
356 | /* Color Space Conversion confguration, 0 - csc, 1 - df */ | ||
357 | __u8 df_or_csc; | ||
358 | /* csc configuration valid if df_or_csc is 0 */ | ||
359 | struct isif_color_space_conv csc; | ||
360 | /* data formatter configuration valid if df_or_csc is 1 */ | ||
361 | struct isif_data_formatter df; | ||
362 | /* start pixel in a line at the input */ | ||
363 | __u32 start_pix; | ||
364 | /* number of pixels in input line */ | ||
365 | __u32 num_pixels; | ||
366 | /* start line at the input */ | ||
367 | __u32 start_line; | ||
368 | /* number of lines at the input */ | ||
369 | __u32 num_lines; | ||
370 | }; | ||
371 | |||
372 | struct isif_gain_offsets_adj { | ||
373 | /* Gain adjustment per color */ | ||
374 | struct isif_gain gain; | ||
375 | /* Offset adjustment */ | ||
376 | __u16 offset; | ||
377 | /* Enable or Disable Gain adjustment for SDRAM data */ | ||
378 | __u8 gain_sdram_en; | ||
379 | /* Enable or Disable Gain adjustment for IPIPE data */ | ||
380 | __u8 gain_ipipe_en; | ||
381 | /* Enable or Disable Gain adjustment for H3A data */ | ||
382 | __u8 gain_h3a_en; | ||
383 | /* Enable or Disable Gain adjustment for SDRAM data */ | ||
384 | __u8 offset_sdram_en; | ||
385 | /* Enable or Disable Gain adjustment for IPIPE data */ | ||
386 | __u8 offset_ipipe_en; | ||
387 | /* Enable or Disable Gain adjustment for H3A data */ | ||
388 | __u8 offset_h3a_en; | ||
389 | }; | ||
390 | |||
391 | struct isif_cul { | ||
392 | /* Horizontal Cull pattern for odd lines */ | ||
393 | __u8 hcpat_odd; | ||
394 | /* Horizontal Cull pattern for even lines */ | ||
395 | __u8 hcpat_even; | ||
396 | /* Vertical Cull pattern */ | ||
397 | __u8 vcpat; | ||
398 | /* Enable or disable lpf. Apply when cull is enabled */ | ||
399 | __u8 en_lpf; | ||
400 | }; | ||
401 | |||
402 | struct isif_compress { | ||
403 | #define ISIF_ALAW 0 | ||
404 | #define ISIF_DPCM 1 | ||
405 | #define ISIF_NO_COMPRESSION 2 | ||
406 | /* Compression Algorithm used */ | ||
407 | __u8 alg; | ||
408 | /* Choose Predictor1 for DPCM compression */ | ||
409 | #define ISIF_DPCM_PRED1 0 | ||
410 | /* Choose Predictor2 for DPCM compression */ | ||
411 | #define ISIF_DPCM_PRED2 1 | ||
412 | /* Predictor for DPCM compression */ | ||
413 | __u8 pred; | ||
414 | }; | ||
415 | |||
416 | /* all the stuff in this struct will be provided by userland */ | ||
417 | struct isif_config_params_raw { | ||
418 | /* Linearization parameters for image sensor data input */ | ||
419 | struct isif_linearize linearize; | ||
420 | /* Data formatter or CSC */ | ||
421 | struct isif_df_csc df_csc; | ||
422 | /* Defect Pixel Correction (DFC) confguration */ | ||
423 | struct isif_dfc dfc; | ||
424 | /* Black/Digital Clamp configuration */ | ||
425 | struct isif_black_clamp bclamp; | ||
426 | /* Gain, offset adjustments */ | ||
427 | struct isif_gain_offsets_adj gain_offset; | ||
428 | /* Culling */ | ||
429 | struct isif_cul culling; | ||
430 | /* A-Law and DPCM compression options */ | ||
431 | struct isif_compress compress; | ||
432 | /* horizontal offset for Gain/LSC/DFC */ | ||
433 | __u16 horz_offset; | ||
434 | /* vertical offset for Gain/LSC/DFC */ | ||
435 | __u16 vert_offset; | ||
436 | /* color pattern for field 0 */ | ||
437 | struct isif_col_pat col_pat_field0; | ||
438 | /* color pattern for field 1 */ | ||
439 | struct isif_col_pat col_pat_field1; | ||
440 | #define ISIF_NO_SHIFT 0 | ||
441 | #define ISIF_1BIT_SHIFT 1 | ||
442 | #define ISIF_2BIT_SHIFT 2 | ||
443 | #define ISIF_3BIT_SHIFT 3 | ||
444 | #define ISIF_4BIT_SHIFT 4 | ||
445 | #define ISIF_5BIT_SHIFT 5 | ||
446 | #define ISIF_6BIT_SHIFT 6 | ||
447 | /* Data shift applied before storing to SDRAM */ | ||
448 | __u8 data_shift; | ||
449 | /* enable input test pattern generation */ | ||
450 | __u8 test_pat_gen; | ||
451 | }; | ||
452 | |||
453 | #ifdef __KERNEL__ | ||
454 | struct isif_ycbcr_config { | ||
455 | /* isif pixel format */ | ||
456 | enum ccdc_pixfmt pix_fmt; | ||
457 | /* isif frame format */ | ||
458 | enum ccdc_frmfmt frm_fmt; | ||
459 | /* ISIF crop window */ | ||
460 | struct v4l2_rect win; | ||
461 | /* field polarity */ | ||
462 | enum vpfe_pin_pol fid_pol; | ||
463 | /* interface VD polarity */ | ||
464 | enum vpfe_pin_pol vd_pol; | ||
465 | /* interface HD polarity */ | ||
466 | enum vpfe_pin_pol hd_pol; | ||
467 | /* isif pix order. Only used for ycbcr capture */ | ||
468 | enum ccdc_pixorder pix_order; | ||
469 | /* isif buffer type. Only used for ycbcr capture */ | ||
470 | enum ccdc_buftype buf_type; | ||
471 | }; | ||
472 | |||
473 | /* MSB of image data connected to sensor port */ | ||
474 | enum isif_data_msb { | ||
475 | ISIF_BIT_MSB_15, | ||
476 | ISIF_BIT_MSB_14, | ||
477 | ISIF_BIT_MSB_13, | ||
478 | ISIF_BIT_MSB_12, | ||
479 | ISIF_BIT_MSB_11, | ||
480 | ISIF_BIT_MSB_10, | ||
481 | ISIF_BIT_MSB_9, | ||
482 | ISIF_BIT_MSB_8, | ||
483 | ISIF_BIT_MSB_7 | ||
484 | }; | ||
485 | |||
486 | enum isif_cfa_pattern { | ||
487 | ISIF_CFA_PAT_MOSAIC, | ||
488 | ISIF_CFA_PAT_STRIPE | ||
489 | }; | ||
490 | |||
491 | struct isif_params_raw { | ||
492 | /* isif pixel format */ | ||
493 | enum ccdc_pixfmt pix_fmt; | ||
494 | /* isif frame format */ | ||
495 | enum ccdc_frmfmt frm_fmt; | ||
496 | /* video window */ | ||
497 | struct v4l2_rect win; | ||
498 | /* field polarity */ | ||
499 | enum vpfe_pin_pol fid_pol; | ||
500 | /* interface VD polarity */ | ||
501 | enum vpfe_pin_pol vd_pol; | ||
502 | /* interface HD polarity */ | ||
503 | enum vpfe_pin_pol hd_pol; | ||
504 | /* buffer type. Applicable for interlaced mode */ | ||
505 | enum ccdc_buftype buf_type; | ||
506 | /* Gain values */ | ||
507 | struct isif_gain gain; | ||
508 | /* cfa pattern */ | ||
509 | enum isif_cfa_pattern cfa_pat; | ||
510 | /* Data MSB position */ | ||
511 | enum isif_data_msb data_msb; | ||
512 | /* Enable horizontal flip */ | ||
513 | unsigned char horz_flip_en; | ||
514 | /* Enable image invert vertically */ | ||
515 | unsigned char image_invert_en; | ||
516 | |||
517 | /* all the userland defined stuff*/ | ||
518 | struct isif_config_params_raw config_params; | ||
519 | }; | ||
520 | |||
521 | enum isif_data_pack { | ||
522 | ISIF_PACK_16BIT, | ||
523 | ISIF_PACK_12BIT, | ||
524 | ISIF_PACK_8BIT | ||
525 | }; | ||
526 | |||
527 | #define ISIF_WIN_NTSC {0, 0, 720, 480} | ||
528 | #define ISIF_WIN_VGA {0, 0, 640, 480} | ||
529 | |||
530 | #endif | ||
531 | #endif | ||