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
dvb-frontends
lgdt3305.h
Go to the documentation of this file.
1
/*
2
* Support for LG Electronics LGDT3304 and LGDT3305 - VSB/QAM
3
*
4
* Copyright (C) 2008, 2009, 2010 Michael Krufky <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19
*
20
*/
21
22
#ifndef _LGDT3305_H_
23
#define _LGDT3305_H_
24
25
#include <linux/i2c.h>
26
#include "
dvb_frontend.h
"
27
28
29
enum
lgdt3305_mpeg_mode
{
30
LGDT3305_MPEG_PARALLEL
= 0,
31
LGDT3305_MPEG_SERIAL
= 1,
32
};
33
34
enum
lgdt3305_tp_clock_edge
{
35
LGDT3305_TPCLK_RISING_EDGE
= 0,
36
LGDT3305_TPCLK_FALLING_EDGE
= 1,
37
};
38
39
enum
lgdt3305_tp_valid_polarity
{
40
LGDT3305_TP_VALID_LOW
= 0,
41
LGDT3305_TP_VALID_HIGH
= 1,
42
};
43
44
enum
lgdt_demod_chip_type
{
45
LGDT3305
= 0,
46
LGDT3304
= 1,
47
};
48
49
struct
lgdt3305_config
{
50
u8
i2c_addr
;
51
52
/* user defined IF frequency in KHz */
53
u16
qam_if_khz
;
54
u16
vsb_if_khz
;
55
56
/* AGC Power reference - defaults are used if left unset */
57
u16
usref_8vsb
;
/* default: 0x32c4 */
58
u16
usref_qam64
;
/* default: 0x5400 */
59
u16
usref_qam256
;
/* default: 0x2a80 */
60
61
/* disable i2c repeater - 0:repeater enabled 1:repeater disabled */
62
unsigned
int
deny_i2c_rptr
:1;
63
64
/* spectral inversion - 0:disabled 1:enabled */
65
unsigned
int
spectral_inversion
:1;
66
67
/* use RF AGC loop - 0:disabled 1:enabled */
68
unsigned
int
rf_agc_loop
:1;
69
70
enum
lgdt3305_mpeg_mode
mpeg_mode
;
71
enum
lgdt3305_tp_clock_edge
tpclk_edge
;
72
enum
lgdt3305_tp_valid_polarity
tpvalid_polarity
;
73
enum
lgdt_demod_chip_type
demod_chip
;
74
};
75
76
#if defined(CONFIG_DVB_LGDT3305) || (defined(CONFIG_DVB_LGDT3305_MODULE) && \
77
defined(MODULE))
78
extern
79
struct
dvb_frontend
*
lgdt3305_attach
(
const
struct
lgdt3305_config
*
config
,
80
struct
i2c_adapter
*i2c_adap);
81
#else
82
static
inline
83
struct
dvb_frontend
*
lgdt3305_attach
(
const
struct
lgdt3305_config
*
config
,
84
struct
i2c_adapter
*i2c_adap)
85
{
86
printk
(
KERN_WARNING
"%s: driver disabled by Kconfig\n"
, __func__);
87
return
NULL
;
88
}
89
#endif
/* CONFIG_DVB_LGDT3305 */
90
91
#endif
/* _LGDT3305_H_ */
Generated on Thu Jan 10 2013 13:45:43 for Linux Kernel by
1.8.2