1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Support for Intel Camera Imaging ISP subsystem.
4  * Copyright (c) 2015, Intel Corporation.
5  */
6 
7 #ifndef __IA_CSS_OB_TYPES_H
8 #define __IA_CSS_OB_TYPES_H
9 
10 /* @file
11 * CSS-API header file for Optical Black level parameters.
12 */
13 
14 #include "ia_css_frac.h"
15 
16 /* Optical black mode.
17  */
18 enum ia_css_ob_mode {
19 	IA_CSS_OB_MODE_NONE,	/** OB has no effect. */
20 	IA_CSS_OB_MODE_FIXED,	/** Fixed OB */
21 	IA_CSS_OB_MODE_RASTER	/** Raster OB */
22 };
23 
24 /* Optical Black level configuration.
25  *
26  *  ISP block: OB1
27  *  ISP1: OB1 is used.
28  *  ISP2: OB1 is used.
29  */
30 struct ia_css_ob_config {
31 	enum ia_css_ob_mode mode; /** Mode (None / Fixed / Raster).
32 					enum, [0,2],
33 					default 1, ineffective 0 */
34 	ia_css_u0_16 level_gr;    /** Black level for GR pixels
35 					(used for Fixed Mode only).
36 					u0.16, [0,65535],
37 					default/ineffective 0 */
38 	ia_css_u0_16 level_r;     /** Black level for R pixels
39 					(used for Fixed Mode only).
40 					u0.16, [0,65535],
41 					default/ineffective 0 */
42 	ia_css_u0_16 level_b;     /** Black level for B pixels
43 					(used for Fixed Mode only).
44 					u0.16, [0,65535],
45 					default/ineffective 0 */
46 	ia_css_u0_16 level_gb;    /** Black level for GB pixels
47 					(used for Fixed Mode only).
48 					u0.16, [0,65535],
49 					default/ineffective 0 */
50 	u16 start_position; /** Start position of OB area
51 					(used for Raster Mode only).
52 					u16.0, [0,63],
53 					default/ineffective 0 */
54 	u16 end_position;  /** End position of OB area
55 					(used for Raster Mode only).
56 					u16.0, [0,63],
57 					default/ineffective 0 */
58 };
59 
60 #endif /* __IA_CSS_OB_TYPES_H */
61