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
include
media
davinci
vpss.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2009 Texas Instruments Inc
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* vpss - video processing subsystem module header file.
19
*
20
* Include this header file if a driver needs to configure vpss system
21
* module. It exports a set of library functions for video drivers to
22
* configure vpss system module functions such as clock enable/disable,
23
* vpss interrupt mux to arm, and other common vpss system module
24
* functions.
25
*/
26
#ifndef _VPSS_H
27
#define _VPSS_H
28
29
/* selector for ccdc input selection on DM355 */
30
enum
vpss_ccdc_source_sel
{
31
VPSS_CCDCIN
,
32
VPSS_HSSIIN
,
33
VPSS_PGLPBK
,
/* for DM365 only */
34
VPSS_CCDCPG
/* for DM365 only */
35
};
36
37
struct
vpss_sync_pol
{
38
unsigned
int
ccdpg_hdpol
:1;
39
unsigned
int
ccdpg_vdpol
:1;
40
};
41
42
struct
vpss_pg_frame_size
{
43
short
hlpfr
;
44
short
pplen
;
45
};
46
47
/* Used for enable/disable VPSS Clock */
48
enum
vpss_clock_sel
{
49
/* DM355/DM365 */
50
VPSS_CCDC_CLOCK
,
51
VPSS_IPIPE_CLOCK
,
52
VPSS_H3A_CLOCK
,
53
VPSS_CFALD_CLOCK
,
54
/*
55
* When using VPSS_VENC_CLOCK_SEL in vpss_enable_clock() api
56
* following applies:-
57
* en = 0 selects ENC_CLK
58
* en = 1 selects ENC_CLK/2
59
*/
60
VPSS_VENC_CLOCK_SEL
,
61
VPSS_VPBE_CLOCK
,
62
/* DM365 only clocks */
63
VPSS_IPIPEIF_CLOCK
,
64
VPSS_RSZ_CLOCK
,
65
VPSS_BL_CLOCK
,
66
/*
67
* When using VPSS_PCLK_INTERNAL in vpss_enable_clock() api
68
* following applies:-
69
* en = 0 disable internal PCLK
70
* en = 1 enables internal PCLK
71
*/
72
VPSS_PCLK_INTERNAL
,
73
/*
74
* When using VPSS_PSYNC_CLOCK_SEL in vpss_enable_clock() api
75
* following applies:-
76
* en = 0 enables MMR clock
77
* en = 1 enables VPSS clock
78
*/
79
VPSS_PSYNC_CLOCK_SEL
,
80
VPSS_LDC_CLOCK_SEL
,
81
VPSS_OSD_CLOCK_SEL
,
82
VPSS_FDIF_CLOCK
,
83
VPSS_LDC_CLOCK
84
};
85
86
/* select input to ccdc on dm355 */
87
int
vpss_select_ccdc_source
(
enum
vpss_ccdc_source_sel
src_sel);
88
/* enable/disable a vpss clock, 0 - success, -1 - failure */
89
int
vpss_enable_clock
(
enum
vpss_clock_sel
clock_sel,
int
en);
90
/* set sync polarity, only for DM365*/
91
void
dm365_vpss_set_sync_pol
(
struct
vpss_sync_pol
);
92
/* set the PG_FRAME_SIZE register, only for DM365 */
93
void
dm365_vpss_set_pg_frame_size
(
struct
vpss_pg_frame_size
);
94
95
/* wbl reset for dm644x */
96
enum
vpss_wbl_sel
{
97
VPSS_PCR_AEW_WBL_0
= 16,
98
VPSS_PCR_AF_WBL_0
,
99
VPSS_PCR_RSZ4_WBL_0
,
100
VPSS_PCR_RSZ3_WBL_0
,
101
VPSS_PCR_RSZ2_WBL_0
,
102
VPSS_PCR_RSZ1_WBL_0
,
103
VPSS_PCR_PREV_WBL_0
,
104
VPSS_PCR_CCDC_WBL_O
,
105
};
106
/* clear wbl overflow flag for DM6446 */
107
int
vpss_clear_wbl_overflow
(
enum
vpss_wbl_sel
wbl_sel);
108
#endif
Generated on Thu Jan 10 2013 14:52:54 for Linux Kernel by
1.8.2