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
tdhd1.h
Go to the documentation of this file.
1
/*
2
* tdhd1.h - ALPS TDHD1-204A tuner support
3
*
4
* Copyright (C) 2008 Oliver Endriss <
[email protected]
>
5
*
6
*
7
* This program is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU General Public License
9
* as published by the Free Software Foundation; either version 2
10
* of the License, or (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
* Or, point your browser to http://www.gnu.org/copyleft/gpl.html
21
*
22
*
23
* The project's page is at http://www.linuxtv.org
24
*/
25
26
#ifndef TDHD1_H
27
#define TDHD1_H
28
29
#include "
tda1004x.h
"
30
31
static
int
alps_tdhd1_204_request_firmware(
struct
dvb_frontend
*fe,
const
struct
firmware
**
fw
,
char
*
name
);
32
33
static
struct
tda1004x_config
alps_tdhd1_204a_config = {
34
.demod_address = 0x8,
35
.invert = 1,
36
.invert_oclk = 0,
37
.xtal_freq =
TDA10046_XTAL_4M
,
38
.agc_config =
TDA10046_AGC_DEFAULT
,
39
.if_freq =
TDA10046_FREQ_3617
,
40
.request_firmware = alps_tdhd1_204_request_firmware
41
};
42
43
static
int
alps_tdhd1_204a_tuner_set_params(
struct
dvb_frontend
*fe)
44
{
45
struct
dtv_frontend_properties
*
p
= &fe->
dtv_property_cache
;
46
struct
i2c_adapter
*i2c = fe->
tuner_priv
;
47
u8
data
[4];
48
struct
i2c_msg
msg
= { .addr = 0x61, .flags = 0, .buf =
data
, .len =
sizeof
(
data
) };
49
u32
div
;
50
51
div = (p->
frequency
+ 36166666) / 166666;
52
53
data[0] = (div >> 8) & 0x7f;
54
data[1] = div & 0xff;
55
data[2] = 0x85;
56
57
if
(p->
frequency
>= 174000000 && p->
frequency
<= 230000000)
58
data[3] = 0x02;
59
else
if
(p->
frequency
>= 470000000 && p->
frequency
<= 823000000)
60
data[3] = 0x0C;
61
else
if
(p->
frequency
> 823000000 && p->
frequency
<= 862000000)
62
data[3] = 0x8C;
63
else
64
return
-
EINVAL
;
65
66
if
(fe->
ops
.i2c_gate_ctrl)
67
fe->
ops
.i2c_gate_ctrl(fe, 1);
68
if
(
i2c_transfer
(i2c, &msg, 1) != 1)
69
return
-
EIO
;
70
71
return
0;
72
}
73
74
#endif
/* TDHD1_H */
Generated on Thu Jan 10 2013 13:46:12 for Linux Kernel by
1.8.2