arm: dts: Remove support for IMX208 sensor
[linux-3.10.git] / include / media / imx208.h
1 /**
2  * Copyright (c) 2014-2015, NVIDIA Corporation.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms and conditions of the GNU General Public License,
6  * version 2, as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16
17 #ifndef __IMX208_H__
18 #define __IMX208_H__
19
20 #include <linux/ioctl.h>  /* For IOCTL macros */
21 #include <media/nvc.h>
22 #include <media/nvc_image.h>
23
24 #define IMX208_IOCTL_SET_MODE           _IOW('o', 1, struct imx208_mode)
25 #define IMX208_IOCTL_GET_STATUS         _IOR('o', 2, __u8)
26 #define IMX208_IOCTL_SET_FRAME_LENGTH   _IOW('o', 3, __u32)
27 #define IMX208_IOCTL_SET_COARSE_TIME    _IOW('o', 4, __u32)
28 #define IMX208_IOCTL_SET_GAIN           _IOW('o', 5, __u16)
29 #define IMX208_IOCTL_GET_SENSORDATA     _IOR('o', 6, struct imx208_sensordata)
30 #define IMX208_IOCTL_SET_GROUP_HOLD     _IOW('o', 7, struct imx208_ae)
31 #define IMX208_IOCTL_SET_POWER          _IOW('o', 20, __u32)
32 #define IMX208_IOCTL_GET_FLASH_CAP      _IOR('o', 30, __u32)
33 #define IMX208_IOCTL_SET_FLASH_MODE     _IOW('o', 31, \
34                                                 struct imx208_flash_control)
35
36 struct imx208_mode {
37         int xres;
38         int yres;
39         __u32 frame_length;
40         __u32 coarse_time;
41         __u16 gain;
42 };
43
44 struct imx208_ae {
45         __u32 frame_length;
46         __u8  frame_length_enable;
47         __u32 coarse_time;
48         __u8  coarse_time_enable;
49         __s32 gain;
50         __u8  gain_enable;
51 };
52
53 struct imx208_sensordata {
54         __u32 fuse_id_size;
55         __u8  fuse_id[16];
56 };
57
58 struct imx208_flash_control {
59         u8 enable;
60         u8 edge_trig_en;
61         u8 start_edge;
62         u8 repeat;
63         u16 delay_frm;
64 };
65
66
67 #ifdef __KERNEL__
68 struct imx208_power_rail {
69         struct regulator *dvdd;
70         struct regulator *avdd;
71         struct regulator *iovdd;
72 };
73
74 struct imx208_platform_data {
75         struct imx208_flash_control flash_cap;
76         const char *mclk_name; /* NULL for default default_mclk */
77         unsigned int cam2_gpio;
78         bool ext_reg;
79         int (*power_on)(struct imx208_power_rail *pw);
80         int (*power_off)(struct imx208_power_rail *pw);
81 };
82 #endif /* __KERNEL__ */
83
84 #endif  /* __IMX208_H__ */