1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef MSM_CAM_ISPIF_H
20 #define MSM_CAM_ISPIF_H
21 #define CSID_VERSION_V20 0x02000011
22 #define CSID_VERSION_V22 0x02001000
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #define CSID_VERSION_V30 0x30000000
25 #define CSID_VERSION_V3 0x30000000
26 enum msm_ispif_vfe_intf {
27  VFE0,
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29  VFE1,
30  VFE_MAX
31 };
32 #define VFE0_MASK (1 << VFE0)
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define VFE1_MASK (1 << VFE1)
35 enum msm_ispif_intftype {
36  PIX0,
37  RDI0,
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39  PIX1,
40  RDI1,
41  RDI2,
42  INTF_MAX
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 };
45 #define MAX_PARAM_ENTRIES (INTF_MAX * 2)
46 #define MAX_CID_CH 8
47 #define PIX0_MASK (1 << PIX0)
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define PIX1_MASK (1 << PIX1)
50 #define RDI0_MASK (1 << RDI0)
51 #define RDI1_MASK (1 << RDI1)
52 #define RDI2_MASK (1 << RDI2)
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 enum msm_ispif_vc {
55  VC0,
56  VC1,
57  VC2,
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  VC3,
60  VC_MAX
61 };
62 enum msm_ispif_cid {
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  CID0,
65  CID1,
66  CID2,
67  CID3,
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  CID4,
70  CID5,
71  CID6,
72  CID7,
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74  CID8,
75  CID9,
76  CID10,
77  CID11,
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  CID12,
80  CID13,
81  CID14,
82  CID15,
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  CID_MAX
85 };
86 enum msm_ispif_csid {
87  CSID0,
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  CSID1,
90  CSID2,
91  CSID3,
92  CSID_MAX
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 };
95 struct msm_ispif_params_entry {
96  enum msm_ispif_vfe_intf vfe_intf;
97  enum msm_ispif_intftype intftype;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  int num_cids;
100  enum msm_ispif_cid cids[3];
101  enum msm_ispif_csid csid;
102  int crop_enable;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  uint16_t crop_start_pixel;
105  uint16_t crop_end_pixel;
106 };
107 struct msm_ispif_param_data {
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  uint32_t num;
110  struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES];
111 };
112 struct msm_isp_info {
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  uint32_t max_resolution;
115  uint32_t id;
116  uint32_t ver;
117 };
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 struct msm_ispif_vfe_info {
120  int num_vfe;
121  struct msm_isp_info info[VFE_MAX];
122 };
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 enum ispif_cfg_type_t {
125  ISPIF_CLK_ENABLE,
126  ISPIF_CLK_DISABLE,
127  ISPIF_INIT,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  ISPIF_CFG,
130  ISPIF_START_FRAME_BOUNDARY,
131  ISPIF_STOP_FRAME_BOUNDARY,
132  ISPIF_STOP_IMMEDIATELY,
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  ISPIF_RELEASE,
135  ISPIF_ENABLE_REG_DUMP,
136  ISPIF_SET_VFE_INFO,
137 };
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 struct ispif_cfg_data {
140  enum ispif_cfg_type_t cfg_type;
141  union {
142  int reg_dump;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  uint32_t csid_version;
145  struct msm_ispif_vfe_info vfe_info;
146  struct msm_ispif_param_data params;
147  };
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149 };
150 #define VIDIOC_MSM_ISPIF_CFG   _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data)
151 #endif
152