media: video: tegra: tegra_camera: re-arch power and clock
[linux-2.6.git] / include / media / tegra_camera.h
1 /*
2  * include/linux/tegra_camera.h
3  *
4  * Copyright (C) 2010 Google, Inc.
5  *
6  * This software is licensed under the terms of the GNU General Public
7  * License version 2, as published by the Free Software Foundation, and
8  * may be copied, distributed, and modified under those terms.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16 #ifndef TEGRA_CAMERA_H
17 #define TEGRA_CAMERA_H
18
19 /* this is to enable VI pattern generator (Null Sensor) */
20 #define TEGRA_CAMERA_ENABLE_PD2VI_CLK 0x1
21
22 enum {
23         TEGRA_CAMERA_MODULE_ISP = 0,
24         TEGRA_CAMERA_MODULE_VI,
25         TEGRA_CAMERA_MODULE_CSI,
26         TEGRA_CAMERA_MODULE_MAX,
27 };
28
29 enum {
30         TEGRA_CAMERA_VI_CLK,
31         TEGRA_CAMERA_VI_SENSOR_CLK,
32 };
33
34 struct tegra_camera_clk_info {
35         uint id;
36         uint clk_id;
37         unsigned long rate;
38         uint flag;      /* to inform if any special bits need to enabled/disabled */
39 };
40
41 enum StereoCameraMode {
42         Main = 0x0,             /* Sets the default camera to Main */
43         StereoCameraMode_Left = 0x01,   /* the left camera is on. */
44         StereoCameraMode_Right = 0x02,  /* the right camera is on. */
45         StereoCameraMode_Stereo = 0x03, /* both cameras are on. */
46         StereoCameraMode_Force32 = 0x7FFFFFFF
47 };
48
49
50 #define TEGRA_CAMERA_IOCTL_ENABLE               _IOWR('i', 1, uint)
51 #define TEGRA_CAMERA_IOCTL_DISABLE              _IOWR('i', 2, uint)
52 #define TEGRA_CAMERA_IOCTL_CLK_SET_RATE         \
53         _IOWR('i', 3, struct tegra_camera_clk_info)
54 #define TEGRA_CAMERA_IOCTL_RESET                _IOWR('i', 4, uint)
55
56 #endif