aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/parrot/media/video/avi_v4l2_isp_ctrls.h
blob: 5fc65f78d3c975ba325567e5661302a690278195 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
/*
 *  linux/drivers/parrot/video/media/avi_v4l2_isp_ctrls.h
 *
 *  Copyright (C) 2015 Parrot S.A.
 *
 * @author  Alexandre Dilly <alexandre.dilly@parrot.com>
 * @date  01-Jan-2015
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _AVI_V4L2_ISP_CTRLS_H_
#define _AVI_V4L2_ISP_CTRLS_H_

#include <linux/videodev2.h>

/* Definition of controls
 *  All V4L2 controls are defined in this header with the following syntax:
 *    NAME:	(TYPE)		Description
 *  Where NAME is the name of control to pass as ID in v4l2_ext_control
 *  structure, TYPE is one of type provided by V4L2 control API:
 *    - bool	for a boolean (V4L2_CTRL_TYPE_BOOLEAN)
 *    - int	for an integer (V4L2_CTRL_TYPE_INTEGER)
 *      The syntax format is (int Xb [MIN:MAX]) where X is number of bytes and
 *      MIN/MAX are respectively the minimum and maximum value allowed by the
 *      control. If the value passed in v4l2_ext_control is out of range, all
 *      set of controls in v4l2_ext_controls fail.
 *    - ary[Y]	for an array (multi types (U8 to S32) with 1 dimension: matrix
 *		of 1xY)
 *      The syntax is the same as integer.
 *      To use with an v4l2_ext_control, the local array is passed through its
 *      pointer with one of the following field:
 *       - p_u8		for an U8. Size is equal to Y (count of value in the
 *			array),
 *       - p_u16	for an U16. Size is equal to Y*2,
 *       - ptr		for an S/U32. Size is equal to Y*4.
 *
 * For more informations about the ext controls, see videodev2.h and
 * v4l2_ext_control and v4l2_ext_controls structures.
 */

/* Color Filter Array */
enum p7_isp_cfa {
	P7_ISP_CFA_BGGR = 0,
	P7_ISP_CFA_RGGB = 1,
	P7_ISP_CFA_GBRG = 2,
	P7_ISP_CFA_GRBG = 3,
};

#define P7_CID_ISP_BASE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 10)

/* Bypass ISP module
 *  BYPASS_PEDESTAL:	 (bool)	Bypass Pedestal block
 *  BYPASS_GRIM:	 (bool)	Bypass Green Imbalance block
 *  BYPASS_RIP:		 (bool)	Bypass Dead Pixel Correction block
 *  BYPASS_DENOISE:	 (bool)	Bypass Denoising block
 *  BYPASS_LSC:		 (bool)	Bypass Lens Shading Correction block
 *  BYPASS_CHROMA_ABER:	 (bool)	Bypass Chromatic Aberration block
 *  BYPASS_BAYER:	 (bool)	Bypass Bayer block
 *  BYPASS_COLOR_MATRIX: (bool)	Byapss Color Correction block
 */
#define P7_CID_BYPASS_BASE		(P7_CID_ISP_BASE + 1)
#define P7_CID_BYPASS_PEDESTAL		(P7_CID_BYPASS_BASE + 1)
#define P7_CID_BYPASS_GRIM		(P7_CID_BYPASS_BASE + 2)
#define P7_CID_BYPASS_RIP		(P7_CID_BYPASS_BASE + 3)
#define P7_CID_BYPASS_DENOISE		(P7_CID_BYPASS_BASE + 4)
#define P7_CID_BYPASS_LSC		(P7_CID_BYPASS_BASE + 5)
#define P7_CID_BYPASS_CHROMA_ABER	(P7_CID_BYPASS_BASE + 6)
#define P7_CID_BYPASS_BAYER		(P7_CID_BYPASS_BASE + 7)
#define P7_CID_BYPASS_COLOR_MATRIX	(P7_CID_BYPASS_BASE + 8)

/* Bypass YUV ISP module
 *  BYPASS_EE_CRF:	(bool)	Bypass Edge Enhancement block
 *  BYPASS_I3D_LUT:	(bool)	Bypass I3D block
 *  BYPASS_DROP:	(bool)	Bypass Drop block
 */
#define P7_CID_BYPASS_YUV_BASE	(P7_CID_BYPASS_BASE + 10)
#define P7_CID_BYPASS_EE_CRF	(P7_CID_BYPASS_YUV_BASE + 1)
#define P7_CID_BYPASS_I3D_LUT	(P7_CID_BYPASS_YUV_BASE + 2)
#define P7_CID_BYPASS_DROP	(P7_CID_BYPASS_YUV_BASE + 3)

/* VL Format 32 to 40 ISP module
 *  VLF_32_TO_40:	(int 3b [0:4])	Convert format from 32 to 40
 *    see enum p7_vlf_32to40 for types.
 */
#define P7_CID_ISP_VLF_32_TO_40		(P7_CID_BYPASS_YUV_BASE + 5)
enum p7_vlf_32to40 {
	P7_VLF_32_RAW10_TO_RAW10,
	P7_VLF_32_RAW8_TO_RAW10,
	P7_VLF_32_RAW3x10_TO_RAW10,
	P7_VLF_32_RGB3x10_TO_RGB3x10,
	P7_VLF_32_ARGB_TO_RGB3x10,
};

/* Pedestal ISP module
 *  PEDESTAL_SUB_R:	(int 10b [0:1023])	Substract X to Red pixel
 *  PEDESTAL_SUB_GB:	(int 10b [0:1023])	Substract X to Green red pixel
 *  PEDESTAL_SUB_GR:	(int 10b [0:1023])	Substract X to Green blue pixel
 *  PEDESTAL_SUB_B:	(int 10b [0:1023])	Substract X to Blue pixel
 *  PEDESTAL_CFA:	(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_PEDESTAL_BASE	(P7_CID_BYPASS_YUV_BASE + 10)
#define P7_CID_ISP_PEDESTAL_SUB_R	(P7_CID_ISP_PEDESTAL_BASE + 1)
#define P7_CID_ISP_PEDESTAL_SUB_GB	(P7_CID_ISP_PEDESTAL_BASE + 2)
#define P7_CID_ISP_PEDESTAL_SUB_GR	(P7_CID_ISP_PEDESTAL_BASE + 3)
#define P7_CID_ISP_PEDESTAL_SUB_B	(P7_CID_ISP_PEDESTAL_BASE + 4)
#define P7_CID_ISP_PEDESTAL_CFA		(P7_CID_ISP_PEDESTAL_BASE + 5)

/* Green Imbalance ISP module
 *  GRIM_OFFSET_X:	(int 9b [0:511])	Offset of top left pixel from
 *						top left vertice of cell
 *  GRIM_OFFSET_Y:	(int 10b [0:1023])	Offset of top left pixel from
 *						top left vertice of cell
 *  GRIM_CELL_ID_X:	(int 4b [0:15])		Horizontal cell index to which
 *						top left pixel belongs
 *  GRIM_CELL_ID_Y:	(int 4b [0:15])		Vertical cell index to which top
 *						left pixel belongs
 *  GRIM_CELL_W:	(int 9b [0:511])	Mesh cells width in pixel
 *  GRIM_CELL_H:	(int 10b [0:1023])	Mesh cells height in pixel
 *  GRIM_CELL_W_INV:	(int 17b [0:131071])	Mesh cells inverse width
 *  GRIM_CELL_H_INV:	(int 17b [0:131071])	Mesh cells inverse height
 *  GRIM_ALPHA:		(int 17b [0:131071])	Normalised horizontal offset of
 *						top left pixel from top left
 *						vertice of cell
 *  GRIM_BETA:		(int 17b [0:131071])	Normalised vertical offset of
 *						top left pixel from top left
 *						vertice of cell
 *  GRIM_GR_COEFF:	(ary[221] 8b [0:255])	Red coefficients: Correction
 *						mesh for R channel
 *  GRIM_GB_COEFF:	(ary[221] 8b [0:255])	Blue coefficients: Correction
 *						mesh for B channel
 *  GRIM_CFA:		(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_GRIM_BASE		(P7_CID_ISP_PEDESTAL_BASE + 10)
#define P7_CID_ISP_GRIM_OFFSET_X	(P7_CID_ISP_GRIM_BASE + 1)
#define P7_CID_ISP_GRIM_OFFSET_Y	(P7_CID_ISP_GRIM_BASE + 2)
#define P7_CID_ISP_GRIM_CELL_ID_X	(P7_CID_ISP_GRIM_BASE + 3)
#define P7_CID_ISP_GRIM_CELL_ID_Y	(P7_CID_ISP_GRIM_BASE + 4)
#define P7_CID_ISP_GRIM_CELL_W		(P7_CID_ISP_GRIM_BASE + 5)
#define P7_CID_ISP_GRIM_CELL_H		(P7_CID_ISP_GRIM_BASE + 6)
#define P7_CID_ISP_GRIM_CELL_W_INV	(P7_CID_ISP_GRIM_BASE + 7)
#define P7_CID_ISP_GRIM_CELL_H_INV	(P7_CID_ISP_GRIM_BASE + 8)
#define P7_CID_ISP_GRIM_ALPHA		(P7_CID_ISP_GRIM_BASE + 9)
#define P7_CID_ISP_GRIM_BETA		(P7_CID_ISP_GRIM_BASE + 10)
#define P7_CID_ISP_GRIM_GR_COEFF	(P7_CID_ISP_GRIM_BASE + 11)
#define P7_CID_ISP_GRIM_GB_COEFF	(P7_CID_ISP_GRIM_BASE + 12)
#define P7_CID_ISP_GRIM_CFA		(P7_CID_ISP_GRIM_BASE + 13)

/* Reconstruction Incorrect Pixel ISP module
 *  LIST_MEM_X:			(ary[256] 11b [0:2047])	Abscissa of known dead
 *							pixel
 *  LIST_MEM_Y:			(ary[256] 12b [0:4095])	Ordinate of known dead
 *							pixel
 *  LIST_MEM_OP:		(ary[256] 3bits [0:7])	List of suitable
 *							corrections for each
 *							corresponding dead pixel
 *							position
 *  BYPASS_RGRIM:		(bool)			Deactivates list mode
 *  BYPASS_AUTO_DETECTION:	(bool)			Deactivates live mode
 *  BYPASS_LIST:		(bool)			Deactivates the RGRIM
 *							filter list mode, which
 *							in turn takes precedence
 *							over the RGRIM filter
 *  THRESHOLD:			(int 10b [0:1023])	Used in Live mode to
 *							compare one pixel to its
 *							neighbours
 *  RGRIM_CONF_TCON:		(int 8b [0:255])	Contrast
 *  RGRIM_CONF_TSAT:		(int 8b [0:255])	Saturation
 *  RGRIM_CONF_TIM_2:		(int 8b [0:255])	Imbalance 2
 *  RGRIM_CONF_TIM_1:		(int 8b [0:255])	Imbalance 1
 *  RGRIM_GAIN:			(int 7b [0:127])	The gain obeys the
 *							formula : actual gain =
 *							20 * gain / 4096
 *  RIP_CFA:			(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_RIP_BASE			(P7_CID_ISP_GRIM_BASE + 20)
#define P7_CID_ISP_RIP_LIST_MEM_X		(P7_CID_ISP_RIP_BASE + 1)
#define P7_CID_ISP_RIP_LIST_MEM_Y		(P7_CID_ISP_RIP_BASE + 2)
#define P7_CID_ISP_RIP_LIST_MEM_OP		(P7_CID_ISP_RIP_BASE + 3)
#define P7_CID_ISP_RIP_BYPASS_RGRIM		(P7_CID_ISP_RIP_BASE + 4)
#define P7_CID_ISP_RIP_BYPASS_AUTO_DETECTION	(P7_CID_ISP_RIP_BASE + 5)
#define P7_CID_ISP_RIP_BYPASS_LIST		(P7_CID_ISP_RIP_BASE + 6)
#define P7_CID_ISP_RIP_THRESHOLD		(P7_CID_ISP_RIP_BASE + 7)
#define P7_CID_ISP_RIP_RGRIM_CONF_TCON		(P7_CID_ISP_RIP_BASE + 8)
#define P7_CID_ISP_RIP_RGRIM_CONF_TSAT		(P7_CID_ISP_RIP_BASE + 9)
#define P7_CID_ISP_RIP_RGRIM_CONF_TIM_2		(P7_CID_ISP_RIP_BASE + 10)
#define P7_CID_ISP_RIP_RGRIM_CONF_TIM_1		(P7_CID_ISP_RIP_BASE + 11)
#define P7_CID_ISP_RIP_RGRIM_GAIN		(P7_CID_ISP_RIP_BASE + 12)
#define P7_CID_ISP_RIP_CFA			(P7_CID_ISP_RIP_BASE + 13)

/* Denoising ISP module
 *  DENOISE_LUMOCOEFF_RED:	(ary[14] 8b [0:255])	Ordinates of lumo coeffs
 *							Red
 *  DENOISE_LUMOCOEFF_BLUE:	(ary[14] 8b [0:255])	Ordinates of lumo coeffs
 *							Blue
 *  DENOISE_LUMOCOEFF_GREEN:	(ary[14] 8b [0:255])	Ordinates of lumo coeffs
 *							Green
 *  DENOISE_CFA:		(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_DENOISE_BASE			(P7_CID_ISP_RIP_BASE + 15)
#define P7_CID_ISP_DENOISE_LUMOCOEFF_RED	(P7_CID_ISP_DENOISE_BASE + 1)
#define P7_CID_ISP_DENOISE_LUMOCOEFF_BLUE	(P7_CID_ISP_DENOISE_BASE + 2)
#define P7_CID_ISP_DENOISE_LUMOCOEFF_GREEN	(P7_CID_ISP_DENOISE_BASE + 3)
#define P7_CID_ISP_DENOISE_CFA			(P7_CID_ISP_DENOISE_BASE + 4)

/* Bayer Statistics ISP module
 *  BSTAT_MEASURE_REQ_CLEAR:	 (bool)			Force clear the
 *							histogram, usually done
 *							the first time before
 *							enabling the stats bayer
 *							module
 *  BSTAT_WINDOW_X_WIDTH:	 (int 11b [0:2047])	Width of a thumbnail
 *							pixel in sensor pixels
 *							(how many columns are
 *							averaged into one)
 *  BSTAT_WINDOW_X_OFFSET:	 (int 13b [0:8191])	Origin abcissa of the
 *							statistics window in the
 *							captured image
 *  BSTAT_WINDOW_Y_HEIGHT:	 (int 11b [0:2047])	Height of a thumbnail
 *							pixel in sensor pixels
 *							(how many rows are
 *							averaged into one)
 *  BSTAT_WINDOW_Y_OFFSET:	 (int 13b [0:8191])	Origin abcissa of the
 *							statistics window in the
 *							captured image
 *  BSTAT_CIRCLE_POS_X_CENTER:	 (int 14b [0:16383])	Center abcissa of the
 *							image circle in sensor
 *							pixels
 *  BSTAT_CIRCLE_POS_X_SQUARED:	 (int 26b [0:67108863])	Center abcissa of the
 *							image circle in sensor
 *							pixels value squared
 *  BSTAT_CIRCLE_POS_Y_CENTER:	 (int 14b [0:16383])	Center ordinate of the
 *							image circle in sensor
 *							pixels
 *  BSTAT_CIRCLE_POS_Y_SQUARED:	 (int 26b [0:67108863])	Center ordinate of the
 *							image circle in sensor
 *							pixels value squared
 *  BSTAT_CIRCLE_RADIUS_SQUARED: (int 29b [0:536870911])Squared radius of the
 *							image circle
 *  BSTAT_INC_X_LOG2_INC:	 (int 3b [0:7])		Vertical
 *							skipping/binning
 *							parameter
 *  BSTAT_INC_Y_LOG2_INC:	 (int 3b [0:7])		Horizontal
 *							skipping/binning
 *							parameter
 *  BSTAT_SAT_THRESHOLD:	 (int 10b [0:1023])	Below this threshold a
 *							pixel is considered
 *							unsaturated, a Bayer
 *							block is saturated if
 *							any of its 4 pixels is
 *							saturated
 *  BSTAT_MAX_X_WINDOW_COUNT:	 (int 7b [0:127])	Width of thumbnail
 *  BSTAT_MAX_Y_WINDOW_COUNT:	 (int 7b [0:127])	Height of thumbnail
 *  BSTAT_CFA:			 (int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_BSTAT_BASE			(P7_CID_ISP_DENOISE_BASE + 5)
#define P7_CID_ISP_BSTAT_MEASURE_REQ_CLEAR	(P7_CID_ISP_BSTAT_BASE + 1)
#define P7_CID_ISP_BSTAT_WINDOW_X_WIDTH		(P7_CID_ISP_BSTAT_BASE + 2)
#define P7_CID_ISP_BSTAT_WINDOW_X_OFFSET	(P7_CID_ISP_BSTAT_BASE + 3)
#define P7_CID_ISP_BSTAT_WINDOW_Y_HEIGHT	(P7_CID_ISP_BSTAT_BASE + 4)
#define P7_CID_ISP_BSTAT_WINDOW_Y_OFFSET	(P7_CID_ISP_BSTAT_BASE + 5)
#define P7_CID_ISP_BSTAT_CIRCLE_POS_X_CENTER	(P7_CID_ISP_BSTAT_BASE + 6)
#define P7_CID_ISP_BSTAT_CIRCLE_POS_X_SQUARED	(P7_CID_ISP_BSTAT_BASE + 7)
#define P7_CID_ISP_BSTAT_CIRCLE_POS_Y_CENTER	(P7_CID_ISP_BSTAT_BASE + 8)
#define P7_CID_ISP_BSTAT_CIRCLE_POS_Y_SQUARED	(P7_CID_ISP_BSTAT_BASE + 9)
#define P7_CID_ISP_BSTAT_CIRCLE_RADIUS_SQUARED	(P7_CID_ISP_BSTAT_BASE + 10)
#define P7_CID_ISP_BSTAT_INC_X_LOG2_INC		(P7_CID_ISP_BSTAT_BASE + 11)
#define P7_CID_ISP_BSTAT_INC_Y_LOG2_INC		(P7_CID_ISP_BSTAT_BASE + 12)
#define P7_CID_ISP_BSTAT_SAT_THRESHOLD		(P7_CID_ISP_BSTAT_BASE + 13)
#define P7_CID_ISP_BSTAT_MAX_X_WINDOW_COUNT	(P7_CID_ISP_BSTAT_BASE + 14)
#define P7_CID_ISP_BSTAT_MAX_Y_WINDOW_COUNT	(P7_CID_ISP_BSTAT_BASE + 15)
#define P7_CID_ISP_BSTAT_CFA			(P7_CID_ISP_BSTAT_BASE + 16)

/* Lens Shading Correction ISP module
 *  LSC_OFFSET_X:	 (int 9b [0:511])	Offset of top left pixel from
 *						top left vertice of cell
 *  LSC_OFFSET_Y:	 (int 10b [0:1023])	Offset of top left pixel from
 *						top left vertice of cell
 *  LSC_CELL_ID_X:	 (int 4b [0:15])	Horizontal cell index to which
 *						top left pixel belongs
 *  LSC_CELL_ID_Y:	 (int 4b [0:15])	Vertical cell index to which top
 *						left pixel belongs
 *  LSC_CELL_W:		 (int 9b [0:511])	Mesh cells width in pixel
 *  LSC_CELL_H:		 (int 10b [0:1023])	Mesh cells height in pixel
 *  LSC_CELL_W_INV:	 (int 17b [0:131071])	Mesh cells inverse width
 *  LSC_CELL_H_INV:	 (int 17b [0:131071])	Mesh cells inverse height
 *  LSC_ALPHA:		 (int 17b [0:131071])	Normalised horizontal offset of
 *						top left pixel from top left
 *						vertice of cell
 *  LSC_BETA:		 (int 17b [0:131071])	Normalised vertical offset of
 *						top left pixel from top left
 *						vertice of cell
 *  LSC_THRESHOLD_B:	 (int 10b [0:1023])	Threshold to avoid declipping on
 *						Blue
 *  LSC_THRESHOLD_G:	 (int 10b [0:1023])	Threshold to avoid declipping on
 *						Green
 *  LSC_THRESHOLD_R:	 (int 10b [0:1023])	Threshold to avoid declipping on
 *						Blue
 *  LSC_GAIN_B:		 (int 10b [0:1023])	White balance gain Blue
 *  LSC_GAIN_G:		 (int 10b [0:1023])	White balance gain Green
 *  LSC_GAIN_R:		 (int 10b [0:1023])	White balance gain Red
 *  LSC_RED_COEFF_MEM:	 (ary[221] 8b [0:255])	Correction mesh for Red channel
 *						(array 15x13)
 *  LSC_GREEN_COEFF_MEM: (ary[221] 8b [0:255])	Correction mesh for Green
 *						channel (array 15x13)
 *  LSC_BLUE_COEFF_MEM:	 (ary[221] 8b [0:255])	Correction mesh for Blue channel
 *						(array 15x13)
 *  LSC_CFA:		 (int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_LSC_BASE		(P7_CID_ISP_BSTAT_BASE + 20)
#define P7_CID_ISP_LSC_OFFSET_X		(P7_CID_ISP_LSC_BASE + 1)
#define P7_CID_ISP_LSC_OFFSET_Y		(P7_CID_ISP_LSC_BASE + 2)
#define P7_CID_ISP_LSC_CELL_ID_X	(P7_CID_ISP_LSC_BASE + 3)
#define P7_CID_ISP_LSC_CELL_ID_Y	(P7_CID_ISP_LSC_BASE + 4)
#define P7_CID_ISP_LSC_CELL_W		(P7_CID_ISP_LSC_BASE + 5)
#define P7_CID_ISP_LSC_CELL_H		(P7_CID_ISP_LSC_BASE + 6)
#define P7_CID_ISP_LSC_CELL_W_INV	(P7_CID_ISP_LSC_BASE + 7)
#define P7_CID_ISP_LSC_CELL_H_INV	(P7_CID_ISP_LSC_BASE + 8)
#define P7_CID_ISP_LSC_ALPHA		(P7_CID_ISP_LSC_BASE + 9)
#define P7_CID_ISP_LSC_BETA		(P7_CID_ISP_LSC_BASE + 10)
#define P7_CID_ISP_LSC_THRESHOLD_B	(P7_CID_ISP_LSC_BASE + 11)
#define P7_CID_ISP_LSC_THRESHOLD_G	(P7_CID_ISP_LSC_BASE + 12)
#define P7_CID_ISP_LSC_THRESHOLD_R	(P7_CID_ISP_LSC_BASE + 13)
#define P7_CID_ISP_LSC_GAIN_B		(P7_CID_ISP_LSC_BASE + 14)
#define P7_CID_ISP_LSC_GAIN_G		(P7_CID_ISP_LSC_BASE + 15)
#define P7_CID_ISP_LSC_GAIN_R		(P7_CID_ISP_LSC_BASE + 16)
#define P7_CID_ISP_LSC_RED_COEFF_MEM	(P7_CID_ISP_LSC_BASE + 17)
#define P7_CID_ISP_LSC_GREEN_COEFF_MEM	(P7_CID_ISP_LSC_BASE + 18)
#define P7_CID_ISP_LSC_BLUE_COEFF_MEM	(P7_CID_ISP_LSC_BASE + 19)
#define P7_CID_ISP_LSC_CFA		(P7_CID_ISP_LSC_BASE + 20)

/* Chromatic Aberation ISP module
 *  CA_RADIUS_SQUARED:		(ary[20] 24b [0:16777215])Abscissa of the Look
 *							Up Table
 *  CA_DISPLACEMENT_RED_COEFF:	(ary[20] 16b [0:65535])	Displacement for the
 *							BLUE channel
 *  CA_DISPLACEMENT_BLUE_COEFF:	(ary[20] 16b [0:65535])	Displacement for the
 *							RED channel
 *  CA_CIRCLE_POS_X_CENTER:	(int 14b [0:16383])	Center abcissa of the
 *							image circle in sensor
 *							pixels
 *  CA_CIRCLE_POS_X_SQUARED:	(int 26b [0:67108863])	Center abcissa of the
 *							image circle in sensor
 *							pixels value squared
 *  CA_CIRCLE_POS_Y_CENTER:	(int 14b [0:16383])	Center ordinate of the
 *							image circle in sensor
 *							pixels
 *  CA_CIRCLE_POS_Y_SQUARED:	(int 26b [0:67108863])	Center ordinate of the
 *							image circle in sensor
 *							pixels value squared
 *  CA_GREEN_VARIATION:		(bool)			Green variation is
 *							taken into account for
 *							the correction
 *  CA_X_LOG2_INC:		(int 3b [0:7])		Horizontal
 *							skipping/binning
 *							parameter
 *  CA_Y_LOG2_INC:		(int 3b [0:7])		Vertical
 *							skipping/binning
 *							parameter
 *  CA_CFA:			(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_CA_BASE			(P7_CID_ISP_LSC_BASE + 25)
#define P7_CID_ISP_CA_RADIUS_SQUARED		(P7_CID_ISP_CA_BASE + 1)
#define P7_CID_ISP_CA_DISPLACEMENT_RED_COEFF	(P7_CID_ISP_CA_BASE + 2)
#define P7_CID_ISP_CA_DISPLACEMENT_BLUE_COEFF	(P7_CID_ISP_CA_BASE + 3)
#define P7_CID_ISP_CA_CIRCLE_POS_X_CENTER	(P7_CID_ISP_CA_BASE + 4)
#define P7_CID_ISP_CA_CIRCLE_POS_X_SQUARED	(P7_CID_ISP_CA_BASE + 5)
#define P7_CID_ISP_CA_CIRCLE_POS_Y_CENTER	(P7_CID_ISP_CA_BASE + 6)
#define P7_CID_ISP_CA_CIRCLE_POS_Y_SQUARED	(P7_CID_ISP_CA_BASE + 7)
#define P7_CID_ISP_CA_GREEN_VARIATION		(P7_CID_ISP_CA_BASE + 8)
#define P7_CID_ISP_CA_X_LOG2_INC		(P7_CID_ISP_CA_BASE + 9)
#define P7_CID_ISP_CA_Y_LOG2_INC		(P7_CID_ISP_CA_BASE + 10)
#define P7_CID_ISP_CA_CFA			(P7_CID_ISP_CA_BASE + 11)

/* Bayer ISP module
 *  BAYER_THRESHOLD_1	(int 13b [0:8191])	Low threshold value
 *  BAYER_THRESHOLD_2	(int 13b [0:8191])	High threshold value
 *  BAYER_CFA:		(int 2b [0:3])		Color Filter Array
 *     see enum p7_isp_cfa for types.
 */
#define P7_CID_ISP_BAYER_BASE		(P7_CID_ISP_CA_BASE + 15)
#define P7_CID_ISP_BAYER_THRESHOLD_1	(P7_CID_ISP_BAYER_BASE + 1)
#define P7_CID_ISP_BAYER_THRESHOLD_2	(P7_CID_ISP_BAYER_BASE + 2)
#define P7_CID_ISP_BAYER_CFA		(P7_CID_ISP_BAYER_BASE + 3)

/* Color correction ISP module
 *  CC_COEFF_00:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_01:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_02:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_10:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_11:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_12:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_20:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_21:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_COEFF_22:	(int 14b [0:16383])	Coded in signed fixed-pointQ2.11
 *  CC_OFFSET_RY_IN:	(int 10b [0:1023])	Red or Y component offset:
 *						before matrix multiplication,
 *						the pixel vector is subtracted
 *						by 'OFFSET_IN' value
 *  CC_OFFSET_RY_OUT:	(int 10b [0:1023])	Red or Y component offsets:
 *						after the matrix multiplication,
 *						the product is added with
 *						'OFFSET_OUT' value
 *  CC_CLIP_RY_MIN:	(int 10b [0:1023])	Red or Y component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 *  CC_CLIP_RY_MAX:	(int 10b [0:1023])	Red or Y component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 *  CC_OFFSET_GU_IN:	(int 10b [0:1023])	Green or U component offset:
 *						before matrix multiplication,
 *						the pixel vector is subtracted
 *						by 'OFFSET_IN' value
 *  CC_OFFSET_GU_OUT:	(int 10b [0:1023])	Green or U component offsets:
 *						after the matrix multiplication,
 *						the product is added with
 *						'OFFSET_OUT' value
 *  CC_CLIP_GU_MIN:	(int 10b [0:1023])	Green or U component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 *  CC_CLIP_GU_MAX:	(int 10b [0:1023])	Green or U component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 *  CC_OFFSET_BV_IN:	(int 10b [0:1023])	Blue or V component offset:
 *						before matrix multiplication,
 *						the pixel vector is subtracted
 *						by 'OFFSET_IN' value
 *  CC_OFFSET_BV_OUT:	(int 10b [0:1023])	Blue or V component offsets:
 *						after the matrix multiplication,
 *						the product is added with
 *						'OFFSET_OUT' value
 *  CC_CLIP_BV_MIN:	(int 10b [0:1023])	Blue or V component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 *  CC_CLIP_BV_MAX:	(int 10b [0:1023])	Blue or V component clips: the
 *						output result is clipped between
 *						'CLIP_MIN' and 'CLIP_MAX' value
 */
#define P7_CID_ISP_CC_BASE		(P7_CID_ISP_BAYER_BASE + 5)
#define P7_CID_ISP_CC_COEFF_00		(P7_CID_ISP_CC_BASE + 1)
#define P7_CID_ISP_CC_COEFF_01		(P7_CID_ISP_CC_BASE + 2)
#define P7_CID_ISP_CC_COEFF_02		(P7_CID_ISP_CC_BASE + 3)
#define P7_CID_ISP_CC_COEFF_10		(P7_CID_ISP_CC_BASE + 4)
#define P7_CID_ISP_CC_COEFF_11		(P7_CID_ISP_CC_BASE + 5)
#define P7_CID_ISP_CC_COEFF_12		(P7_CID_ISP_CC_BASE + 6)
#define P7_CID_ISP_CC_COEFF_20		(P7_CID_ISP_CC_BASE + 7)
#define P7_CID_ISP_CC_COEFF_21		(P7_CID_ISP_CC_BASE + 8)
#define P7_CID_ISP_CC_COEFF_22		(P7_CID_ISP_CC_BASE + 9)
#define P7_CID_ISP_CC_OFFSET_RY_IN	(P7_CID_ISP_CC_BASE + 10)
#define P7_CID_ISP_CC_OFFSET_RY_OUT	(P7_CID_ISP_CC_BASE + 11)
#define P7_CID_ISP_CC_CLIP_RY_MIN	(P7_CID_ISP_CC_BASE + 12)
#define P7_CID_ISP_CC_CLIP_RY_MAX	(P7_CID_ISP_CC_BASE + 13)
#define P7_CID_ISP_CC_OFFSET_GU_IN	(P7_CID_ISP_CC_BASE + 14)
#define P7_CID_ISP_CC_OFFSET_GU_OUT	(P7_CID_ISP_CC_BASE + 15)
#define P7_CID_ISP_CC_CLIP_GU_MIN	(P7_CID_ISP_CC_BASE + 16)
#define P7_CID_ISP_CC_CLIP_GU_MAX	(P7_CID_ISP_CC_BASE + 17)
#define P7_CID_ISP_CC_OFFSET_BV_IN	(P7_CID_ISP_CC_BASE + 18)
#define P7_CID_ISP_CC_OFFSET_BV_OUT	(P7_CID_ISP_CC_BASE + 19)
#define P7_CID_ISP_CC_CLIP_BV_MIN	(P7_CID_ISP_CC_BASE + 20)
#define P7_CID_ISP_CC_CLIP_BV_MAX	(P7_CID_ISP_CC_BASE + 21)

/* VL Format 40 to 32 ISP module
 *  VLF_40_TO_32:	(int 3b [0:4])	Convert format from 40 to 32
 *    see enum p7_vlf_40to32 for types.
 */
#define P7_CID_ISP_VLF_40_TO_32		(P7_CID_ISP_CC_BASE + 25)
enum p7_vlf_40to32 {
	P7_VLF_40_RAW10_TO_RAW8,
	P7_VLF_40_RAW10_TO_RAW10,
	P7_VLF_40_RAW10_TO_RAW3x10,
	P7_VLF_40_RGB3x10_TO_RGB3x10,
	P7_VLF_40_RGB3x10_TO_ARGB,
};

/* Gamma Correction YUV ISP module
 *  GAMMA_BYPASS:	(bool)			Bypass Gamma correction
 *  GAMMA_PALETTE:	(bool)			Palette mode
 *						(0 = non-linear, 1 = palette)
 *  GAMMA_COMP_WIDTH:	(bool)			Component width
 *						(0 = 8bits, 1 = 10bits)
 *  GAMMA_RY_LUT:	(ary[1024] 8b [0:255])	Red or Y curve
 *  GAMMA_GU_LUT:	(ary[1024] 8b [0:255])	Green or U curve
 *  GAMMA_BV_LUT:	(ary[1024] 8b [0:255])	Blue or V curve
 */
#define P7_CID_ISP_GAMMA_BASE		(P7_CID_ISP_CC_BASE + 30)
#define P7_CID_ISP_GAMMA_BYPASS		(P7_CID_ISP_GAMMA_BASE + 1)
#define P7_CID_ISP_GAMMA_PALETTE	(P7_CID_ISP_GAMMA_BASE + 2)
#define P7_CID_ISP_GAMMA_COMP_WIDTH	(P7_CID_ISP_GAMMA_BASE + 3)
#define P7_CID_ISP_GAMMA_RY_LUT		(P7_CID_ISP_GAMMA_BASE + 4)
#define P7_CID_ISP_GAMMA_GU_LUT		(P7_CID_ISP_GAMMA_BASE + 5)
#define P7_CID_ISP_GAMMA_BV_LUT		(P7_CID_ISP_GAMMA_BASE + 6)

/* Chroma converter YUV ISP module
 *  See definition of Color Correction ISP module (P7_CID_ISP_CC_*)
 */
#define P7_CID_ISP_CONV_BASE		(P7_CID_ISP_GAMMA_BASE + 10)
#define P7_CID_ISP_CONV_COEFF_00	(P7_CID_ISP_CONV_BASE + 1)
#define P7_CID_ISP_CONV_COEFF_01	(P7_CID_ISP_CONV_BASE + 2)
#define P7_CID_ISP_CONV_COEFF_02	(P7_CID_ISP_CONV_BASE + 3)
#define P7_CID_ISP_CONV_COEFF_10	(P7_CID_ISP_CONV_BASE + 4)
#define P7_CID_ISP_CONV_COEFF_11	(P7_CID_ISP_CONV_BASE + 5)
#define P7_CID_ISP_CONV_COEFF_12	(P7_CID_ISP_CONV_BASE + 6)
#define P7_CID_ISP_CONV_COEFF_20	(P7_CID_ISP_CONV_BASE + 7)
#define P7_CID_ISP_CONV_COEFF_21	(P7_CID_ISP_CONV_BASE + 8)
#define P7_CID_ISP_CONV_COEFF_22	(P7_CID_ISP_CONV_BASE + 9)
#define P7_CID_ISP_CONV_OFFSET_RY_IN	(P7_CID_ISP_CONV_BASE + 10)
#define P7_CID_ISP_CONV_OFFSET_RY_OUT	(P7_CID_ISP_CONV_BASE + 11)
#define P7_CID_ISP_CONV_CLIP_RY_MIN	(P7_CID_ISP_CONV_BASE + 12)
#define P7_CID_ISP_CONV_CLIP_RY_MAX	(P7_CID_ISP_CONV_BASE + 13)
#define P7_CID_ISP_CONV_OFFSET_GU_IN	(P7_CID_ISP_CONV_BASE + 14)
#define P7_CID_ISP_CONV_OFFSET_GU_OUT	(P7_CID_ISP_CONV_BASE + 15)
#define P7_CID_ISP_CONV_CLIP_GU_MIN	(P7_CID_ISP_CONV_BASE + 16)
#define P7_CID_ISP_CONV_CLIP_GU_MAX	(P7_CID_ISP_CONV_BASE + 17)
#define P7_CID_ISP_CONV_OFFSET_BV_IN	(P7_CID_ISP_CONV_BASE + 18)
#define P7_CID_ISP_CONV_OFFSET_BV_OUT	(P7_CID_ISP_CONV_BASE + 19)
#define P7_CID_ISP_CONV_CLIP_BV_MIN	(P7_CID_ISP_CONV_BASE + 20)
#define P7_CID_ISP_CONV_CLIP_BV_MAX	(P7_CID_ISP_CONV_BASE + 21)

/* Statistics YUV ISP module
 *  YSTAT_MEASURE_REQ:		 (bool)			Will measure at the
 *							beginning of the next
 *							frame
 *  YSTAT_CLEAR:		 (bool)			Clearing the histogram
 *  YSTAT_DONE:			 (bool)			Asserted at the end of
 *							each measured frame
 *  YSTAT_ERROR:		 (bool)			Asserted if there is
 *							valid input stream
 *							during the histogram
 *							clearing process
 *  BSTAT_WINDOW_X_START:	 (int 13b [0:8191])	Beginning of the
 *							measured window X
 *  BSTAT_WINDOW_X_END:		 (int 13b [0:8191])	End of the measured
 *							window X
 *  BSTAT_WINDOW_Y_START:	 (int 13b [0:8191])	Beginning of the
 *							measured window Y
 *  BSTAT_WINDOW_Y_END:		 (int 13b [0:8191])	End of the measured
 *							window Y
 *  YSTAT_CIRCLE_POS_X_CENTER:	 (int 14b [0:16383])	Circle center X
 *  YSTAT_CIRCLE_POS_X_SQUARED:	 (int 26b [0:67108863])	X center squared
 *  YSTAT_CIRCLE_POS_Y_CENTER:	 (int 14b [0:16383])	Circle center Y
 *  YSTAT_CIRCLE_POS_Y_SQUARED:	 (int 26b [0:67108863])	Y center squared
 *  YSTAT_CIRCLE_RADIUS_SQUARED: (int 29b [0:536870911])Circle radius squared
 *  YSTAT_INC_X_LOG2_INC:	 (int 3b [0:7])		Horizontal
 *							skipping/binning
 *							parameter
 *  YSTAT_INC_Y_LOG2_INC:	 (int 3b [0:7])		Vertical
 *							skipping/binning
 *							parameter
 *  YSTAT_AWB_THRESHOLD:	 (int 8b [0:255])	Auto white balancing
 *							threshold
 *
 * Read Only controls:
 *  YSTAT_AE_NB_VALID_Y:	 (int 22b [0:4194303])		Number of valid
 *								luma pixels
 *  YSTAT_AWB_SUM_Y:		 (int 30b [0:1073741823])	White balancing
 *								sum of Y
 *  YSTAT_AWB_SUM_U:		 (int 30b [0:1073741823])	White balancing
 *								sum of U
 *  YSTAT_AWB_SUM_V:		 (int 30b [0:1073741823])	White balancing
 *								sum of V
 *  YSTAT_AWB_NB_GREY_PIXELS:	 (int 22b [0:4194303])		Number of valid
 *								grey pixels
 *  YSTAT_AE_HISTOGRAM_Y:	 (ary[256] 22b [0:4194303])	Value of each
 *								bin
 */
#define P7_CID_ISP_YSTAT_BASE			(P7_CID_ISP_CONV_BASE + 25)
#define P7_CID_ISP_YSTAT_MEASURE_REQ		(P7_CID_ISP_YSTAT_BASE + 1)
#define P7_CID_ISP_YSTAT_CLEAR			(P7_CID_ISP_YSTAT_BASE + 2)
#define P7_CID_ISP_YSTAT_DONE			(P7_CID_ISP_YSTAT_BASE + 3)
#define P7_CID_ISP_YSTAT_ERROR			(P7_CID_ISP_YSTAT_BASE + 4)
#define P7_CID_ISP_BSTAT_WINDOW_X_START		(P7_CID_ISP_YSTAT_BASE + 5)
#define P7_CID_ISP_BSTAT_WINDOW_X_END		(P7_CID_ISP_YSTAT_BASE + 6)
#define P7_CID_ISP_BSTAT_WINDOW_Y_START		(P7_CID_ISP_YSTAT_BASE + 7)
#define P7_CID_ISP_BSTAT_WINDOW_Y_END		(P7_CID_ISP_YSTAT_BASE + 8)
#define P7_CID_ISP_YSTAT_CIRCLE_POS_X_CENTER	(P7_CID_ISP_YSTAT_BASE + 9)
#define P7_CID_ISP_YSTAT_CIRCLE_POS_X_SQUARED	(P7_CID_ISP_YSTAT_BASE + 10)
#define P7_CID_ISP_YSTAT_CIRCLE_POS_Y_CENTER	(P7_CID_ISP_YSTAT_BASE + 11)
#define P7_CID_ISP_YSTAT_CIRCLE_POS_Y_SQUARED	(P7_CID_ISP_YSTAT_BASE + 12)
#define P7_CID_ISP_YSTAT_CIRCLE_RADIUS_SQUARED	(P7_CID_ISP_YSTAT_BASE + 13)
#define P7_CID_ISP_YSTAT_INC_X_LOG2_INC		(P7_CID_ISP_YSTAT_BASE + 14)
#define P7_CID_ISP_YSTAT_INC_Y_LOG2_INC		(P7_CID_ISP_YSTAT_BASE + 15)
#define P7_CID_ISP_YSTAT_AE_NB_VALID_Y		(P7_CID_ISP_YSTAT_BASE + 16)
#define P7_CID_ISP_YSTAT_AWB_THRESHOLD		(P7_CID_ISP_YSTAT_BASE + 17)
#define P7_CID_ISP_YSTAT_AWB_SUM_Y		(P7_CID_ISP_YSTAT_BASE + 18)
#define P7_CID_ISP_YSTAT_AWB_SUM_U		(P7_CID_ISP_YSTAT_BASE + 19)
#define P7_CID_ISP_YSTAT_AWB_SUM_V		(P7_CID_ISP_YSTAT_BASE + 20)
#define P7_CID_ISP_YSTAT_AWB_NB_GREY_PIXELS	(P7_CID_ISP_YSTAT_BASE + 21)
#define P7_CID_ISP_YSTAT_AE_HISTOGRAM_Y		(P7_CID_ISP_YSTAT_BASE + 22)

/* Edge enhancement color reduction filter ISP module
 *  EE_CRF_EE_LUT:		(ary[256] 6b [0:63])	EE LUT table
 *  EE_CRF_EE_KERNEL_COEFF:	(ary[6] 11b [0:2047])	EE kernel
 *  EE_CRF_CRF_KERNEL_COEFF:	(ary[6] 11b [0:2047])	CRF kernel
 *  EE_CRF_M_COEFF:		(int 8b [0:255])	Sobel threshold
 *  EE_CRF_D_COEFF:		(int 11b [0:2047])	Normalization factor
 */
#define P7_CID_ISP_EE_CRF_BASE			(P7_CID_ISP_YSTAT_BASE + 25)
#define P7_CID_ISP_EE_CRF_EE_LUT		(P7_CID_ISP_EE_CRF_BASE + 1)
#define P7_CID_ISP_EE_CRF_EE_KERNEL_COEFF	(P7_CID_ISP_EE_CRF_BASE + 2)
#define P7_CID_ISP_EE_CRF_CRF_KERNEL_COEFF	(P7_CID_ISP_EE_CRF_BASE + 3)
#define P7_CID_ISP_EE_CRF_M_COEFF		(P7_CID_ISP_EE_CRF_BASE + 4)
#define P7_CID_ISP_EE_CRF_D_COEFF		(P7_CID_ISP_EE_CRF_BASE + 5)

/* I3D Lut ISP module
 *  I3D_LUT_OUTSIDE_RY:	(ary[125] 8b [0:255])	Red or Y component value
 *  I3D_LUT_OUTSIDE_GU:	(ary[125] 8b [0:255])	Green or U component value
 *  I3D_LUT_OUTSIDE_BV:	(ary[125] 8b [0:255])	Blue or V component value
 *  I3D_LUT_INSIDE_RY:	(ary[125] 8b [0:255])	Red or Y component value
 *  I3D_LUT_INSIDE_GU:	(ary[125] 8b [0:255])	Green or U component value
 *  I3D_LUT_INSIDE_BV:	(ary[125] 8b [0:255])	Blue or V component value
 *  I3D_LUT_CLIP_MODE:	(bool)			YUV Clip
 */
#define P7_CID_ISP_I3D_LUT_BASE		(P7_CID_ISP_EE_CRF_BASE + 10)
#define P7_CID_ISP_I3D_LUT_OUTSIDE_RY	(P7_CID_ISP_I3D_LUT_BASE + 1)
#define P7_CID_ISP_I3D_LUT_OUTSIDE_GU	(P7_CID_ISP_I3D_LUT_BASE + 2)
#define P7_CID_ISP_I3D_LUT_OUTSIDE_BV	(P7_CID_ISP_I3D_LUT_BASE + 3)
#define P7_CID_ISP_I3D_LUT_INSIDE_RY	(P7_CID_ISP_I3D_LUT_BASE + 4)
#define P7_CID_ISP_I3D_LUT_INSIDE_GU	(P7_CID_ISP_I3D_LUT_BASE + 5)
#define P7_CID_ISP_I3D_LUT_INSIDE_BV	(P7_CID_ISP_I3D_LUT_BASE + 6)
#define P7_CID_ISP_I3D_LUT_CLIP_MODE	(P7_CID_ISP_I3D_LUT_BASE + 7)

/* Drop ISP module
 *  DROP_OFFSET_X:	(int 16b [0:65535])	Horizontal offset
 *  DROP_OFFSET_Y:	(int 16b [0:65535])	Vertical offset
 */
#define P7_CID_ISP_DROP_BASE		(P7_CID_ISP_I3D_LUT_BASE + 10)
#define P7_CID_ISP_DROP_OFFSET_X	(P7_CID_ISP_DROP_BASE + 1)
#define P7_CID_ISP_DROP_OFFSET_Y	(P7_CID_ISP_DROP_BASE + 2)

#endif /* _AVI_V4L2_ISP_CTRLS_H_ */