GNU Linux-libre 4.14.324-gnu1
[releases.git] / drivers / staging / media / atomisp / pci / atomisp2 / css2400 / css_2401_csi2p_system / pixelgen_global.h
1 /*
2  * Support for Intel Camera Imaging ISP subsystem.
3  * Copyright (c) 2015, Intel Corporation.
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  *
9  * This program is distributed in the hope it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
12  * more details.
13  */
14
15 #ifndef __PIXELGEN_GLOBAL_H_INCLUDED__
16 #define __PIXELGEN_GLOBAL_H_INCLUDED__
17
18 #include <type_support.h>
19
20 /**
21  * Pixel-generator. ("pixelgen_global.h")
22  */
23 /*
24  * Duplicates "sync_generator_cfg_t" in "input_system_global.h".
25  */
26 typedef struct sync_generator_cfg_s sync_generator_cfg_t;
27 struct sync_generator_cfg_s {
28         uint32_t        hblank_cycles;
29         uint32_t        vblank_cycles;
30         uint32_t        pixels_per_clock;
31         uint32_t        nr_of_frames;
32         uint32_t        pixels_per_line;
33         uint32_t        lines_per_frame;
34 };
35
36 typedef enum {
37         PIXELGEN_TPG_MODE_RAMP = 0,
38         PIXELGEN_TPG_MODE_CHBO,
39         PIXELGEN_TPG_MODE_MONO,
40         N_PIXELGEN_TPG_MODE
41 } pixelgen_tpg_mode_t;
42
43 /*
44  * "pixelgen_tpg_cfg_t" duplicates parts of
45  * "tpg_cfg_t" in "input_system_global.h".
46  */
47 typedef struct pixelgen_tpg_cfg_s pixelgen_tpg_cfg_t;
48 struct pixelgen_tpg_cfg_s {
49         pixelgen_tpg_mode_t     mode;   /* CHBO, MONO */
50
51         struct {
52                 /* be used by CHBO and MON */
53                 uint32_t R1;
54                 uint32_t G1;
55                 uint32_t B1;
56
57                 /* be used by CHBO only */
58                 uint32_t R2;
59                 uint32_t G2;
60                 uint32_t B2;
61         } color_cfg;
62
63         struct {
64                 uint32_t        h_mask;         /* horizontal mask */
65                 uint32_t        v_mask;         /* vertical mask */
66                 uint32_t        hv_mask;        /* horizontal+vertical mask? */
67         } mask_cfg;
68
69         struct {
70                 int32_t h_delta;        /* horizontal delta? */
71                 int32_t v_delta;        /* vertical delta? */
72         } delta_cfg;
73
74         sync_generator_cfg_t     sync_gen_cfg;
75 };
76
77 /*
78  * "pixelgen_prbs_cfg_t" duplicates parts of
79  * prbs_cfg_t" in "input_system_global.h".
80  */
81 typedef struct pixelgen_prbs_cfg_s pixelgen_prbs_cfg_t;
82 struct pixelgen_prbs_cfg_s {
83         int32_t seed0;
84         int32_t seed1;
85
86         sync_generator_cfg_t    sync_gen_cfg;
87 };
88
89 /** end of Pixel-generator: TPG. ("pixelgen_global.h") */
90 #endif /* __PIXELGEN_GLOBAL_H_INCLUDED__ */
91