media: tegra: as3648: initial driver bring up
[linux-3.10.git] / include / media / ov9772.h
1 /**
2  * Copyright (c) 2012 NVIDIA Corporation.  All rights reserved.
3  *
4  * NVIDIA Corporation and its licensors retain all intellectual property
5  * and proprietary rights in and to this software and related documentation
6  * and any modifications thereto.  Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA Corporation is strictly prohibited.
9  */
10
11 #ifndef __OV9772_H__
12 #define __OV9772_H__
13
14 #include <linux/ioctl.h>
15
16 #define OV9772_IOCTL_SET_MODE                   _IOW('o', 1, struct ov9772_mode)
17 #define OV9772_IOCTL_GET_STATUS                 _IOR('o', 2, __u8)
18 #define OV9772_IOCTL_SET_FRAME_LENGTH   _IOW('o', 3, __u32)
19 #define OV9772_IOCTL_SET_COARSE_TIME    _IOW('o', 4, __u32)
20 #define OV9772_IOCTL_SET_GAIN                   _IOW('o', 5, __u16)
21 #define OV9772_IOCTL_GET_SENSORDATA             _IOR('o', 6, struct ov9772_sensordata)
22 #define OV9772_IOCTL_SET_GROUP_HOLD             _IOW('o', 7, struct ov9772_ae)
23
24 struct ov9772_mode {
25         int             xres;
26         int             yres;
27         __u32   frame_length;
28         __u32   coarse_time;
29         __u16   gain;
30 };
31
32 struct ov9772_ae {
33         __u32   frame_length;
34         __u8    frame_length_enable;
35         __u32   coarse_time;
36         __u8    coarse_time_enable;
37         __s32   gain;
38         __u8    gain_enable;
39 };
40
41 struct ov9772_sensordata {
42         __u32   fuse_id_size;
43         __u8    fuse_id[16];
44 };
45
46 #ifdef __KERNEL__
47
48 #define OV9772_REG_FRAME_LENGTH_HI      0x340
49 #define OV9772_REG_FRAME_LENGTH_LO      0x341
50 #define OV9772_REG_COARSE_TIME_HI       0x202
51 #define OV9772_REG_COARSE_TIME_LO       0x203
52 #define OV9772_REG_GAIN_HI                      0x204
53 #define OV9772_REG_GAIN_LO                      0x205
54
55 struct ov9772_platform_data {
56         int     (*power_on)(struct device *);
57         int     (*power_off)(struct device *);
58 };
59 #endif /* __KERNEL__ */
60
61 #endif  /* __OV9772_H__ */
62