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
26enum 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)
35enum 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 */
54enum 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};
62enum 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};
86enum 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};
95struct 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};
107struct 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};
112struct 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 */
119struct 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 */
124enum 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 */
139struct 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