Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
media
platform
omap3isp
ispccp2.h
Go to the documentation of this file.
1
/*
2
* ispccp2.h
3
*
4
* TI OMAP3 ISP - CCP2 module
5
*
6
* Copyright (C) 2010 Nokia Corporation
7
* Copyright (C) 2010 Texas Instruments, Inc.
8
*
9
* Contacts: Laurent Pinchart <
[email protected]
>
10
* Sakari Ailus <
[email protected]
>
11
*
12
* This program is free software; you can redistribute it and/or modify
13
* it under the terms of the GNU General Public License version 2 as
14
* published by the Free Software Foundation.
15
*
16
* This program is distributed in the hope that it will be useful, but
17
* WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
* General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program; if not, write to the Free Software
23
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
24
* 02110-1301 USA
25
*/
26
27
#ifndef OMAP3_ISP_CCP2_H
28
#define OMAP3_ISP_CCP2_H
29
30
#include <linux/videodev2.h>
31
32
struct
isp_device
;
33
struct
isp_csiphy
;
34
35
/* Sink and source ccp2 pads */
36
#define CCP2_PAD_SINK 0
37
#define CCP2_PAD_SOURCE 1
38
#define CCP2_PADS_NUM 2
39
40
/* CCP2 input media entity */
41
enum
ccp2_input_entity
{
42
CCP2_INPUT_NONE
,
43
CCP2_INPUT_SENSOR
,
44
CCP2_INPUT_MEMORY
,
45
};
46
47
/* CCP2 output media entity */
48
enum
ccp2_output_entity
{
49
CCP2_OUTPUT_NONE
,
50
CCP2_OUTPUT_CCDC
,
51
CCP2_OUTPUT_MEMORY
,
52
};
53
54
55
/* Logical channel configuration */
56
struct
isp_interface_lcx_config
{
57
int
crc
;
58
u32
data_start
;
59
u32
data_size
;
60
u32
format
;
61
};
62
63
/* Memory channel configuration */
64
struct
isp_interface_mem_config
{
65
u32
dst_port
;
66
u32
vsize_count
;
67
u32
hsize_count
;
68
u32
src_ofst
;
69
u32
dst_ofst
;
70
};
71
72
/* CCP2 device */
73
struct
isp_ccp2_device
{
74
struct
v4l2_subdev
subdev
;
75
struct
v4l2_mbus_framefmt
formats
[
CCP2_PADS_NUM
];
76
struct
media_pad
pads
[
CCP2_PADS_NUM
];
77
78
enum
ccp2_input_entity
input
;
79
enum
ccp2_output_entity
output
;
80
struct
isp_interface_lcx_config
if_cfg
;
81
struct
isp_interface_mem_config
mem_cfg
;
82
struct
isp_video
video_in
;
83
struct
isp_csiphy
*
phy
;
84
struct
regulator
*
vdds_csib
;
85
enum
isp_pipeline_stream_state
state
;
86
wait_queue_head_t
wait
;
87
atomic_t
stopping
;
88
};
89
90
/* Function declarations */
91
int
omap3isp_ccp2_init
(
struct
isp_device
*isp);
92
void
omap3isp_ccp2_cleanup
(
struct
isp_device
*isp);
93
int
omap3isp_ccp2_register_entities
(
struct
isp_ccp2_device
*ccp2,
94
struct
v4l2_device
*vdev);
95
void
omap3isp_ccp2_unregister_entities
(
struct
isp_ccp2_device
*ccp2);
96
void
omap3isp_ccp2_isr
(
struct
isp_ccp2_device
*ccp2);
97
98
#endif
/* OMAP3_ISP_CCP2_H */
Generated on Thu Jan 10 2013 13:49:31 for Linux Kernel by
1.8.2