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 __PIXELGEN_GLOBAL_H_INCLUDED__
8 #define __PIXELGEN_GLOBAL_H_INCLUDED__
9 
10 #include <type_support.h>
11 
12 /**
13  * Pixel-generator. ("pixelgen_global.h")
14  */
15 /*
16  * Duplicates "sync_generator_cfg_t" in "input_system_global.h".
17  */
18 typedef struct isp2401_sync_generator_cfg_s isp2401_sync_generator_cfg_t;
19 struct isp2401_sync_generator_cfg_s {
20 	u32	hblank_cycles;
21 	u32	vblank_cycles;
22 	u32	pixels_per_clock;
23 	u32	nr_of_frames;
24 	u32	pixels_per_line;
25 	u32	lines_per_frame;
26 };
27 
28 typedef enum {
29 	PIXELGEN_TPG_MODE_RAMP = 0,
30 	PIXELGEN_TPG_MODE_CHBO,
31 	PIXELGEN_TPG_MODE_MONO,
32 	N_PIXELGEN_TPG_MODE
33 } pixelgen_tpg_mode_t;
34 
35 /*
36  * "pixelgen_tpg_cfg_t" duplicates parts of
37  * "tpg_cfg_t" in "input_system_global.h".
38  */
39 typedef struct pixelgen_tpg_cfg_s pixelgen_tpg_cfg_t;
40 struct pixelgen_tpg_cfg_s {
41 	pixelgen_tpg_mode_t	mode;	/* CHBO, MONO */
42 
43 	struct {
44 		/* be used by CHBO and MON */
45 		u32 R1;
46 		u32 G1;
47 		u32 B1;
48 
49 		/* be used by CHBO only */
50 		u32 R2;
51 		u32 G2;
52 		u32 B2;
53 	} color_cfg;
54 
55 	struct {
56 		u32	h_mask;		/* horizontal mask */
57 		u32	v_mask;		/* vertical mask */
58 		u32	hv_mask;	/* horizontal+vertical mask? */
59 	} mask_cfg;
60 
61 	struct {
62 		s32	h_delta;	/* horizontal delta? */
63 		s32	v_delta;	/* vertical delta? */
64 	} delta_cfg;
65 
66 	isp2401_sync_generator_cfg_t	 sync_gen_cfg;
67 };
68 
69 /*
70  * "pixelgen_prbs_cfg_t" duplicates parts of
71  * prbs_cfg_t" in "input_system_global.h".
72  */
73 typedef struct pixelgen_prbs_cfg_s pixelgen_prbs_cfg_t;
74 struct pixelgen_prbs_cfg_s {
75 	s32	seed0;
76 	s32	seed1;
77 
78 	isp2401_sync_generator_cfg_t	sync_gen_cfg;
79 };
80 
81 /* end of Pixel-generator: TPG. ("pixelgen_global.h") */
82 #endif /* __PIXELGEN_GLOBAL_H_INCLUDED__ */
83