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 __UAPI_LINUX_MSM_CAM_SENSOR_H
20#define __UAPI_LINUX_MSM_CAM_SENSOR_H
21#include <linux/v4l2-mediabus.h>
22#include <media/msm_camsensor_sdk.h>
23/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24#include <linux/types.h>
25#include <linux/i2c.h>
26#define I2C_SEQ_REG_SETTING_MAX 5
27#define MSM_SENSOR_MCLK_8HZ 8000000
28/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29#define MSM_SENSOR_MCLK_16HZ 16000000
30#define MSM_SENSOR_MCLK_24HZ 24000000
31#define MAX_SENSOR_NAME 32
32#define MAX_ACTUATOR_AF_TOTAL_STEPS 1024
33/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34#define MAX_OIS_MOD_NAME_SIZE 32
35#define MAX_OIS_NAME_SIZE 32
36#define MAX_OIS_REG_SETTINGS 800
37#define MOVE_NEAR 0
38/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39#define MOVE_FAR 1
40#define MSM_ACTUATOR_MOVE_SIGNED_FAR - 1
41#define MSM_ACTUATOR_MOVE_SIGNED_NEAR 1
42#define MAX_ACTUATOR_REGION 5
43/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44#define MAX_EEPROM_NAME 32
45#define MAX_AF_ITERATIONS 3
46#define MAX_NUMBER_OF_STEPS 47
47#define MAX_REGULATOR 5
48/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49#define MSM_V4L2_PIX_FMT_META v4l2_fourcc('M', 'E', 'T', 'A')
50#define MSM_V4L2_PIX_FMT_SBGGR14 v4l2_fourcc('B', 'G', '1', '4')
51#define MSM_V4L2_PIX_FMT_SGBRG14 v4l2_fourcc('G', 'B', '1', '4')
52#define MSM_V4L2_PIX_FMT_SGRBG14 v4l2_fourcc('B', 'A', '1', '4')
53/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54#define MSM_V4L2_PIX_FMT_SRGGB14 v4l2_fourcc('R', 'G', '1', '4')
55enum flash_type {
56  LED_FLASH = 1,
57  STROBE_FLASH,
58/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59  GPIO_FLASH
60};
61enum msm_sensor_resolution_t {
62  MSM_SENSOR_RES_FULL,
63/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  MSM_SENSOR_RES_QTR,
65  MSM_SENSOR_RES_2,
66  MSM_SENSOR_RES_3,
67  MSM_SENSOR_RES_4,
68/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  MSM_SENSOR_RES_5,
70  MSM_SENSOR_RES_6,
71  MSM_SENSOR_RES_7,
72  MSM_SENSOR_INVALID_RES,
73/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74};
75enum msm_camera_stream_type_t {
76  MSM_CAMERA_STREAM_PREVIEW,
77  MSM_CAMERA_STREAM_SNAPSHOT,
78/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  MSM_CAMERA_STREAM_VIDEO,
80  MSM_CAMERA_STREAM_INVALID,
81};
82enum sensor_sub_module_t {
83/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  SUB_MODULE_SENSOR,
85  SUB_MODULE_CHROMATIX,
86  SUB_MODULE_ACTUATOR,
87  SUB_MODULE_EEPROM,
88/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89  SUB_MODULE_LED_FLASH,
90  SUB_MODULE_STROBE_FLASH,
91  SUB_MODULE_CSID,
92  SUB_MODULE_CSID_3D,
93/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94  SUB_MODULE_CSIPHY,
95  SUB_MODULE_CSIPHY_3D,
96  SUB_MODULE_OIS,
97  SUB_MODULE_EXT,
98/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99  SUB_MODULE_MAX,
100};
101enum {
102  MSM_CAMERA_EFFECT_MODE_OFF,
103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104  MSM_CAMERA_EFFECT_MODE_MONO,
105  MSM_CAMERA_EFFECT_MODE_NEGATIVE,
106  MSM_CAMERA_EFFECT_MODE_SOLARIZE,
107  MSM_CAMERA_EFFECT_MODE_SEPIA,
108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109  MSM_CAMERA_EFFECT_MODE_POSTERIZE,
110  MSM_CAMERA_EFFECT_MODE_WHITEBOARD,
111  MSM_CAMERA_EFFECT_MODE_BLACKBOARD,
112  MSM_CAMERA_EFFECT_MODE_AQUA,
113/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114  MSM_CAMERA_EFFECT_MODE_EMBOSS,
115  MSM_CAMERA_EFFECT_MODE_SKETCH,
116  MSM_CAMERA_EFFECT_MODE_NEON,
117  MSM_CAMERA_EFFECT_MODE_MAX
118/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119};
120enum {
121  MSM_CAMERA_WB_MODE_AUTO,
122  MSM_CAMERA_WB_MODE_CUSTOM,
123/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124  MSM_CAMERA_WB_MODE_INCANDESCENT,
125  MSM_CAMERA_WB_MODE_FLUORESCENT,
126  MSM_CAMERA_WB_MODE_WARM_FLUORESCENT,
127  MSM_CAMERA_WB_MODE_DAYLIGHT,
128/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129  MSM_CAMERA_WB_MODE_CLOUDY_DAYLIGHT,
130  MSM_CAMERA_WB_MODE_TWILIGHT,
131  MSM_CAMERA_WB_MODE_SHADE,
132  MSM_CAMERA_WB_MODE_OFF,
133/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134  MSM_CAMERA_WB_MODE_MAX
135};
136enum {
137  MSM_CAMERA_SCENE_MODE_OFF,
138/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139  MSM_CAMERA_SCENE_MODE_AUTO,
140  MSM_CAMERA_SCENE_MODE_LANDSCAPE,
141  MSM_CAMERA_SCENE_MODE_SNOW,
142  MSM_CAMERA_SCENE_MODE_BEACH,
143/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144  MSM_CAMERA_SCENE_MODE_SUNSET,
145  MSM_CAMERA_SCENE_MODE_NIGHT,
146  MSM_CAMERA_SCENE_MODE_PORTRAIT,
147  MSM_CAMERA_SCENE_MODE_BACKLIGHT,
148/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149  MSM_CAMERA_SCENE_MODE_SPORTS,
150  MSM_CAMERA_SCENE_MODE_ANTISHAKE,
151  MSM_CAMERA_SCENE_MODE_FLOWERS,
152  MSM_CAMERA_SCENE_MODE_CANDLELIGHT,
153/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154  MSM_CAMERA_SCENE_MODE_FIREWORKS,
155  MSM_CAMERA_SCENE_MODE_PARTY,
156  MSM_CAMERA_SCENE_MODE_NIGHT_PORTRAIT,
157  MSM_CAMERA_SCENE_MODE_THEATRE,
158/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159  MSM_CAMERA_SCENE_MODE_ACTION,
160  MSM_CAMERA_SCENE_MODE_AR,
161  MSM_CAMERA_SCENE_MODE_FACE_PRIORITY,
162  MSM_CAMERA_SCENE_MODE_BARCODE,
163/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164  MSM_CAMERA_SCENE_MODE_HDR,
165  MSM_CAMERA_SCENE_MODE_MAX
166};
167enum csid_cfg_type_t {
168/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169  CSID_INIT,
170  CSID_CFG,
171  CSID_TESTMODE_CFG,
172  CSID_RELEASE,
173/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174};
175enum csiphy_cfg_type_t {
176  CSIPHY_INIT,
177  CSIPHY_CFG,
178/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179  CSIPHY_RELEASE,
180};
181enum camera_vreg_type {
182  VREG_TYPE_DEFAULT,
183/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184  VREG_TYPE_CUSTOM,
185};
186enum sensor_af_t {
187  SENSOR_AF_FOCUSSED,
188/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189  SENSOR_AF_NOT_FOCUSSED,
190};
191enum cci_i2c_master_t {
192  MASTER_0,
193/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194  MASTER_1,
195  MASTER_MAX,
196};
197struct msm_camera_i2c_array_write_config {
198/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199  struct msm_camera_i2c_reg_setting conf_array;
200  uint16_t slave_addr;
201};
202struct msm_camera_i2c_read_config {
203/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204  uint16_t slave_addr;
205  uint16_t reg_addr;
206  enum msm_camera_i2c_reg_addr_type addr_type;
207  enum msm_camera_i2c_data_type data_type;
208/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209  uint16_t data;
210};
211struct msm_camera_csi2_params {
212  struct msm_camera_csid_params csid_params;
213/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214  struct msm_camera_csiphy_params csiphy_params;
215  uint8_t csi_clk_scale_enable;
216};
217struct msm_camera_csi_lane_params {
218/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219  uint16_t csi_lane_assign;
220  uint16_t csi_lane_mask;
221};
222struct csi_lane_params_t {
223/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224  uint16_t csi_lane_assign;
225  uint8_t csi_lane_mask;
226  uint8_t csi_if;
227  int8_t csid_core[2];
228/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229  uint8_t csi_phy_sel;
230};
231struct msm_sensor_info_t {
232  char sensor_name[MAX_SENSOR_NAME];
233/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234  uint32_t session_id;
235  int32_t subdev_id[SUB_MODULE_MAX];
236  int32_t subdev_intf[SUB_MODULE_MAX];
237  uint8_t is_mount_angle_valid;
238/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239  uint32_t sensor_mount_angle;
240  int modes_supported;
241  enum camb_position_t position;
242};
243/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244struct camera_vreg_t {
245  const char * reg_name;
246  int min_voltage;
247  int max_voltage;
248/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249  int op_mode;
250  uint32_t delay;
251  const char * custom_vreg_name;
252  enum camera_vreg_type type;
253/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254};
255struct sensorb_cfg_data {
256  int cfgtype;
257  union {
258/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259    struct msm_sensor_info_t sensor_info;
260    struct msm_sensor_init_params sensor_init_params;
261    void * setting;
262    struct msm_sensor_i2c_sync_params sensor_i2c_sync_params;
263/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264  } cfg;
265};
266struct csid_cfg_data {
267  enum csid_cfg_type_t cfgtype;
268/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269  union {
270    uint32_t csid_version;
271    struct msm_camera_csid_params * csid_params;
272    struct msm_camera_csid_testmode_parms * csid_testmode_params;
273/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274  } cfg;
275};
276struct csiphy_cfg_data {
277  enum csiphy_cfg_type_t cfgtype;
278/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279  union {
280    struct msm_camera_csiphy_params * csiphy_params;
281    struct msm_camera_csi_lane_params * csi_lane_params;
282  } cfg;
283/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284};
285enum eeprom_cfg_type_t {
286  CFG_EEPROM_GET_INFO,
287  CFG_EEPROM_GET_CAL_DATA,
288/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
289  CFG_EEPROM_READ_CAL_DATA,
290  CFG_EEPROM_WRITE_DATA,
291  CFG_EEPROM_GET_MM_INFO,
292  CFG_EEPROM_INIT,
293/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
294};
295struct eeprom_get_t {
296  uint32_t num_bytes;
297};
298/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
299struct eeprom_read_t {
300  uint8_t * dbuffer;
301  uint32_t num_bytes;
302};
303/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
304struct eeprom_write_t {
305  uint8_t * dbuffer;
306  uint32_t num_bytes;
307};
308/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
309struct eeprom_get_cmm_t {
310  uint32_t cmm_support;
311  uint32_t cmm_compression;
312  uint32_t cmm_size;
313/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
314};
315struct msm_eeprom_info_t {
316  struct msm_sensor_power_setting_array * power_setting_array;
317  enum i2c_freq_mode_t i2c_freq_mode;
318/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
319  struct msm_eeprom_memory_map_array * mem_map_array;
320};
321struct msm_eeprom_cfg_data {
322  enum eeprom_cfg_type_t cfgtype;
323/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
324  uint8_t is_supported;
325  union {
326    char eeprom_name[MAX_SENSOR_NAME];
327    struct eeprom_get_t get_data;
328/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
329    struct eeprom_read_t read_data;
330    struct eeprom_write_t write_data;
331    struct eeprom_get_cmm_t get_cmm_data;
332    struct msm_eeprom_info_t eeprom_info;
333/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
334  } cfg;
335};
336enum msm_sensor_cfg_type_t {
337  CFG_SET_SLAVE_INFO,
338/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
339  CFG_SLAVE_READ_I2C,
340  CFG_WRITE_I2C_ARRAY,
341  CFG_SLAVE_WRITE_I2C_ARRAY,
342  CFG_WRITE_I2C_SEQ_ARRAY,
343/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
344  CFG_POWER_UP,
345  CFG_POWER_DOWN,
346  CFG_SET_STOP_STREAM_SETTING,
347  CFG_GET_SENSOR_INFO,
348/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
349  CFG_GET_SENSOR_INIT_PARAMS,
350  CFG_SET_INIT_SETTING,
351  CFG_SET_RESOLUTION,
352  CFG_SET_STOP_STREAM,
353/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
354  CFG_SET_START_STREAM,
355  CFG_SET_SATURATION,
356  CFG_SET_CONTRAST,
357  CFG_SET_SHARPNESS,
358/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
359  CFG_SET_ISO,
360  CFG_SET_EXPOSURE_COMPENSATION,
361  CFG_SET_ANTIBANDING,
362  CFG_SET_BESTSHOT_MODE,
363/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
364  CFG_SET_EFFECT,
365  CFG_SET_WHITE_BALANCE,
366  CFG_SET_AUTOFOCUS,
367  CFG_CANCEL_AUTOFOCUS,
368/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
369  CFG_SET_STREAM_TYPE,
370  CFG_SET_I2C_SYNC_PARAM,
371  CFG_WRITE_I2C_ARRAY_ASYNC,
372  CFG_WRITE_I2C_ARRAY_SYNC,
373/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
374  CFG_WRITE_I2C_ARRAY_SYNC_BLOCK,
375};
376enum msm_actuator_cfg_type_t {
377  CFG_GET_ACTUATOR_INFO,
378/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
379  CFG_SET_ACTUATOR_INFO,
380  CFG_SET_DEFAULT_FOCUS,
381  CFG_MOVE_FOCUS,
382  CFG_SET_POSITION,
383/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
384  CFG_ACTUATOR_POWERDOWN,
385  CFG_ACTUATOR_POWERUP,
386  CFG_ACTUATOR_INIT,
387};
388/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
389enum msm_ois_cfg_type_t {
390  CFG_OIS_INIT,
391  CFG_OIS_POWERDOWN,
392  CFG_OIS_POWERUP,
393/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
394  CFG_OIS_CONTROL,
395  CFG_OIS_I2C_WRITE_SEQ_TABLE,
396};
397enum msm_ois_i2c_operation {
398/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
399  MSM_OIS_WRITE = 0,
400  MSM_OIS_POLL,
401};
402struct reg_settings_ois_t {
403/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
404  uint16_t reg_addr;
405  enum msm_camera_i2c_reg_addr_type addr_type;
406  uint32_t reg_data;
407  enum msm_camera_i2c_data_type data_type;
408/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
409  enum msm_ois_i2c_operation i2c_operation;
410  uint32_t delay;
411};
412struct msm_ois_params_t {
413/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
414  uint16_t data_size;
415  uint16_t setting_size;
416  uint32_t i2c_addr;
417  enum i2c_freq_mode_t i2c_freq_mode;
418/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
419  enum msm_camera_i2c_reg_addr_type i2c_addr_type;
420  enum msm_camera_i2c_data_type i2c_data_type;
421  struct reg_settings_ois_t * settings;
422};
423/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
424struct msm_ois_set_info_t {
425  struct msm_ois_params_t ois_params;
426};
427struct msm_actuator_move_params_t {
428/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
429  int8_t dir;
430  int8_t sign_dir;
431  int16_t dest_step_pos;
432  int32_t num_steps;
433/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
434  uint16_t curr_lens_pos;
435  struct damping_params_t * ringing_params;
436};
437struct msm_actuator_tuning_params_t {
438/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
439  int16_t initial_code;
440  uint16_t pwd_step;
441  uint16_t region_size;
442  uint32_t total_steps;
443/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
444  struct region_params_t * region_params;
445};
446struct park_lens_data_t {
447  uint32_t damping_step;
448/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
449  uint32_t damping_delay;
450  uint32_t hw_params;
451  uint32_t max_step;
452};
453/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
454struct msm_actuator_params_t {
455  enum actuator_type act_type;
456  uint8_t reg_tbl_size;
457  uint16_t data_size;
458/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
459  uint16_t init_setting_size;
460  uint32_t i2c_addr;
461  enum i2c_freq_mode_t i2c_freq_mode;
462  enum msm_camera_i2c_reg_addr_type i2c_addr_type;
463/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
464  enum msm_camera_i2c_data_type i2c_data_type;
465  struct msm_actuator_reg_params_t * reg_tbl_params;
466  struct reg_settings_t * init_settings;
467  struct park_lens_data_t park_lens;
468/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
469};
470struct msm_actuator_set_info_t {
471  struct msm_actuator_params_t actuator_params;
472  struct msm_actuator_tuning_params_t af_tuning_params;
473/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
474};
475struct msm_actuator_get_info_t {
476  uint32_t focal_length_num;
477  uint32_t focal_length_den;
478/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
479  uint32_t f_number_num;
480  uint32_t f_number_den;
481  uint32_t f_pix_num;
482  uint32_t f_pix_den;
483/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
484  uint32_t total_f_dist_num;
485  uint32_t total_f_dist_den;
486  uint32_t hor_view_angle_num;
487  uint32_t hor_view_angle_den;
488/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
489  uint32_t ver_view_angle_num;
490  uint32_t ver_view_angle_den;
491};
492enum af_camera_name {
493/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
494  ACTUATOR_MAIN_CAM_0,
495  ACTUATOR_MAIN_CAM_1,
496  ACTUATOR_MAIN_CAM_2,
497  ACTUATOR_MAIN_CAM_3,
498/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
499  ACTUATOR_MAIN_CAM_4,
500  ACTUATOR_MAIN_CAM_5,
501  ACTUATOR_WEB_CAM_0,
502  ACTUATOR_WEB_CAM_1,
503/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
504  ACTUATOR_WEB_CAM_2,
505};
506struct msm_ois_cfg_data {
507  int cfgtype;
508/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
509  union {
510    struct msm_ois_set_info_t set_info;
511    struct msm_camera_i2c_seq_reg_setting * settings;
512  } cfg;
513/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
514};
515struct msm_actuator_set_position_t {
516  uint16_t number_of_steps;
517  uint32_t hw_params;
518/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
519  uint16_t pos[MAX_NUMBER_OF_STEPS];
520  uint16_t delay[MAX_NUMBER_OF_STEPS];
521};
522struct msm_actuator_cfg_data {
523/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
524  int cfgtype;
525  uint8_t is_af_supported;
526  union {
527    struct msm_actuator_move_params_t move;
528/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
529    struct msm_actuator_set_info_t set_info;
530    struct msm_actuator_get_info_t get_info;
531    struct msm_actuator_set_position_t setpos;
532    enum af_camera_name cam_name;
533/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
534  } cfg;
535};
536enum msm_camera_led_config_t {
537  MSM_CAMERA_LED_OFF,
538/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
539  MSM_CAMERA_LED_LOW,
540  MSM_CAMERA_LED_HIGH,
541  MSM_CAMERA_LED_INIT,
542  MSM_CAMERA_LED_RELEASE,
543/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
544};
545struct msm_camera_led_cfg_t {
546  enum msm_camera_led_config_t cfgtype;
547  int32_t torch_current[MAX_LED_TRIGGERS];
548/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
549  int32_t flash_current[MAX_LED_TRIGGERS];
550  int32_t flash_duration[MAX_LED_TRIGGERS];
551};
552struct msm_flash_init_info_t {
553/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
554  enum msm_flash_driver_type flash_driver_type;
555  uint32_t slave_addr;
556  enum i2c_freq_mode_t i2c_freq_mode;
557  struct msm_sensor_power_setting_array * power_setting_array;
558/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
559  struct msm_camera_i2c_reg_setting_array * settings;
560};
561struct msm_flash_cfg_data_t {
562  enum msm_flash_cfg_type_t cfg_type;
563/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
564  int32_t flash_current[MAX_LED_TRIGGERS];
565  int32_t flash_duration[MAX_LED_TRIGGERS];
566  union {
567    struct msm_flash_init_info_t * flash_init_info;
568/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
569    struct msm_camera_i2c_reg_setting_array * settings;
570  } cfg;
571};
572enum msm_sensor_init_cfg_type_t {
573/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
574  CFG_SINIT_PROBE,
575  CFG_SINIT_PROBE_DONE,
576  CFG_SINIT_PROBE_WAIT_DONE,
577};
578/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
579struct sensor_init_cfg_data {
580  enum msm_sensor_init_cfg_type_t cfgtype;
581  struct msm_sensor_info_t probed_info;
582  char entity_name[MAX_SENSOR_NAME];
583/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
584  union {
585    void * setting;
586  } cfg;
587};
588/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
589#define VIDIOC_MSM_SENSOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 1, struct sensorb_cfg_data)
590#define VIDIOC_MSM_SENSOR_RELEASE _IO('V', BASE_VIDIOC_PRIVATE + 2)
591#define VIDIOC_MSM_SENSOR_GET_SUBDEV_ID _IOWR('V', BASE_VIDIOC_PRIVATE + 3, uint32_t)
592#define VIDIOC_MSM_CSIPHY_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 4, struct csiphy_cfg_data)
593/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
594#define VIDIOC_MSM_CSID_IO_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 5, struct csid_cfg_data)
595#define VIDIOC_MSM_ACTUATOR_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 6, struct msm_actuator_cfg_data)
596#define VIDIOC_MSM_FLASH_LED_DATA_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 7, struct msm_camera_led_cfg_t)
597#define VIDIOC_MSM_EEPROM_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 8, struct msm_eeprom_cfg_data)
598/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
599#define VIDIOC_MSM_SENSOR_GET_AF_STATUS _IOWR('V', BASE_VIDIOC_PRIVATE + 9, uint32_t)
600#define VIDIOC_MSM_SENSOR_INIT_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 10, struct sensor_init_cfg_data)
601#define VIDIOC_MSM_OIS_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 11, struct msm_ois_cfg_data)
602#define VIDIOC_MSM_FLASH_CFG _IOWR('V', BASE_VIDIOC_PRIVATE + 13, struct msm_flash_cfg_data_t)
603/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
604#endif
605
606