1 /* SPDX-License-Identifier: ((GPL-2.0+ WITH Linux-syscall-note) OR MIT) */
2 /*
3  * Allwinner A31 ISP Configuration
4  */
5 
6 #ifndef _UAPI_SUN6I_ISP_CONFIG_H
7 #define _UAPI_SUN6I_ISP_CONFIG_H
8 
9 #include <linux/types.h>
10 
11 #define V4L2_META_FMT_SUN6I_ISP_PARAMS v4l2_fourcc('S', '6', 'I', 'P') /* Allwinner A31 ISP Parameters */
12 
13 #define SUN6I_ISP_MODULE_BAYER			(1U << 0)
14 #define SUN6I_ISP_MODULE_BDNF			(1U << 1)
15 
16 struct sun6i_isp_params_config_bayer {
17 	__u16	offset_r;
18 	__u16	offset_gr;
19 	__u16	offset_gb;
20 	__u16	offset_b;
21 
22 	__u16	gain_r;
23 	__u16	gain_gr;
24 	__u16	gain_gb;
25 	__u16	gain_b;
26 };
27 
28 struct sun6i_isp_params_config_bdnf {
29 	__u8	in_dis_min;
30 	__u8	in_dis_max;
31 
32 	__u8	coefficients_g[7];
33 	__u8	coefficients_rb[5];
34 };
35 
36 struct sun6i_isp_params_config {
37 	__u32					modules_used;
38 
39 	struct sun6i_isp_params_config_bayer	bayer;
40 	struct sun6i_isp_params_config_bdnf	bdnf;
41 };
42 
43 #endif /* _UAPI_SUN6I_ISP_CONFIG_H */
44