blob: f5d73df00bef1cbb442350f8787836e95ae4d8e8 [file] [log] [blame]
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -08001/****************************************************************************
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 ****************************************************************************/
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070019#ifndef UAPI_MSMB_ISPIF_H
20#define UAPI_MSMB_ISPIF_H
21#include <linux/types.h>
22#include <linux/ioctl.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#include <linux/videodev2.h>
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080025#define CSID_VERSION_V20 0x02000011
26#define CSID_VERSION_V22 0x02001000
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080027#define CSID_VERSION_V30 0x30000000
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080029#define CSID_VERSION_V3 0x30000000
30enum msm_ispif_vfe_intf {
31 VFE0,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080032 VFE1,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080034 VFE_MAX
35};
36#define VFE0_MASK (1 << VFE0)
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080037#define VFE1_MASK (1 << VFE1)
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080039enum msm_ispif_intftype {
40 PIX0,
41 RDI0,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080042 PIX1,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080044 RDI1,
45 RDI2,
46 INTF_MAX
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080047};
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080049#define MAX_PARAM_ENTRIES (INTF_MAX * 2)
50#define MAX_CID_CH 8
51#define PIX0_MASK (1 << PIX0)
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080052#define PIX1_MASK (1 << PIX1)
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080054#define RDI0_MASK (1 << RDI0)
55#define RDI1_MASK (1 << RDI1)
56#define RDI2_MASK (1 << RDI2)
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080057enum msm_ispif_vc {
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080059 VC0,
60 VC1,
61 VC2,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080062 VC3,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080064 VC_MAX
65};
66enum msm_ispif_cid {
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080067 CID0,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080069 CID1,
70 CID2,
71 CID3,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080072 CID4,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080074 CID5,
75 CID6,
76 CID7,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080077 CID8,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080079 CID9,
80 CID10,
81 CID11,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080082 CID12,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080084 CID13,
85 CID14,
86 CID15,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080087 CID_MAX
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080089};
90enum msm_ispif_csid {
91 CSID0,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080092 CSID1,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080094 CSID2,
95 CSID3,
96 CSID_MAX
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080097};
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -070098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -080099struct msm_ispif_params_entry {
100 enum msm_ispif_vfe_intf vfe_intf;
101 enum msm_ispif_intftype intftype;
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800102 int num_cids;
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800104 enum msm_ispif_cid cids[3];
105 enum msm_ispif_csid csid;
106 int crop_enable;
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800107 uint16_t crop_start_pixel;
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800109 uint16_t crop_end_pixel;
110};
111struct msm_ispif_param_data {
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800112 uint32_t num;
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800114 struct msm_ispif_params_entry entries[MAX_PARAM_ENTRIES];
115};
116struct msm_isp_info {
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800117 uint32_t max_resolution;
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800119 uint32_t id;
120 uint32_t ver;
121};
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800122struct msm_ispif_vfe_info {
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800124 int num_vfe;
125 struct msm_isp_info info[VFE_MAX];
126};
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800127enum ispif_cfg_type_t {
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800129 ISPIF_CLK_ENABLE,
130 ISPIF_CLK_DISABLE,
131 ISPIF_INIT,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800132 ISPIF_CFG,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800134 ISPIF_START_FRAME_BOUNDARY,
Zhijun He00948a62016-10-24 17:13:17 -0700135 ISPIF_RECONFIG,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800136 ISPIF_STOP_FRAME_BOUNDARY,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800137 ISPIF_STOP_IMMEDIATELY,
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800139 ISPIF_RELEASE,
140 ISPIF_ENABLE_REG_DUMP,
141 ISPIF_SET_VFE_INFO,
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800142};
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800144struct ispif_cfg_data {
145 enum ispif_cfg_type_t cfg_type;
146 union {
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800147 int reg_dump;
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800149 uint32_t csid_version;
150 struct msm_ispif_vfe_info vfe_info;
151 struct msm_ispif_param_data params;
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800152 };
Steve Pfetsch4e5a1b32016-05-10 16:47:20 -0700153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800154};
155#define VIDIOC_MSM_ISPIF_CFG _IOWR('V', BASE_VIDIOC_PRIVATE, struct ispif_cfg_data)
156#endif
Patrick Tjin5d6a7fb2016-01-06 14:49:49 -0800157