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