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
cxd2820r_priv.h
Go to the documentation of this file.
1
/*
2
* Sony CXD2820R demodulator driver
3
*
4
* Copyright (C) 2010 Antti Palosaari <
[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 along
17
* with this program; if not, write to the Free Software Foundation, Inc.,
18
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19
*/
20
21
22
#ifndef CXD2820R_PRIV_H
23
#define CXD2820R_PRIV_H
24
25
#include <
linux/dvb/version.h
>
26
#include "
dvb_frontend.h
"
27
#include "
dvb_math.h
"
28
#include "
cxd2820r.h
"
29
#include <
linux/gpio.h
>
30
31
struct
reg_val_mask
{
32
u32
reg
;
33
u8
val
;
34
u8
mask
;
35
};
36
37
struct
cxd2820r_priv
{
38
struct
i2c_adapter
*
i2c
;
39
struct
dvb_frontend
fe
;
40
struct
cxd2820r_config
cfg
;
41
42
bool
ber_running
;
43
44
u8
bank
[2];
45
#define GPIO_COUNT 3
46
u8
gpio
[
GPIO_COUNT
];
47
#ifdef CONFIG_GPIOLIB
48
struct
gpio_chip gpio_chip;
49
#endif
50
51
fe_delivery_system_t
delivery_system
;
52
bool
last_tune_failed
;
/* for switch between T and T2 tune */
53
};
54
55
/* cxd2820r_core.c */
56
57
extern
int
cxd2820r_debug
;
58
59
int
cxd2820r_gpio
(
struct
dvb_frontend
*fe,
u8
*
gpio
);
60
61
int
cxd2820r_wr_reg_mask
(
struct
cxd2820r_priv
*
priv
,
u32
reg
,
u8
val
,
62
u8
mask
);
63
64
int
cxd2820r_wr_regs
(
struct
cxd2820r_priv
*
priv
,
u32
reginfo,
u8
*
val
,
65
int
len);
66
67
u32
cxd2820r_div_u64_round_closest
(
u64
dividend,
u32
divisor
);
68
69
int
cxd2820r_wr_regs
(
struct
cxd2820r_priv
*
priv
,
u32
reginfo,
u8
*
val
,
70
int
len);
71
72
int
cxd2820r_rd_regs
(
struct
cxd2820r_priv
*
priv
,
u32
reginfo,
u8
*
val
,
73
int
len);
74
75
int
cxd2820r_wr_reg
(
struct
cxd2820r_priv
*
priv
,
u32
reg
,
u8
val
);
76
77
int
cxd2820r_rd_reg
(
struct
cxd2820r_priv
*
priv
,
u32
reg
,
u8
*
val
);
78
79
/* cxd2820r_c.c */
80
81
int
cxd2820r_get_frontend_c
(
struct
dvb_frontend
*fe);
82
83
int
cxd2820r_set_frontend_c
(
struct
dvb_frontend
*fe);
84
85
int
cxd2820r_read_status_c
(
struct
dvb_frontend
*fe,
fe_status_t
*
status
);
86
87
int
cxd2820r_read_ber_c
(
struct
dvb_frontend
*fe,
u32
*ber);
88
89
int
cxd2820r_read_signal_strength_c
(
struct
dvb_frontend
*fe,
u16
*strength);
90
91
int
cxd2820r_read_snr_c
(
struct
dvb_frontend
*fe,
u16
*
snr
);
92
93
int
cxd2820r_read_ucblocks_c
(
struct
dvb_frontend
*fe,
u32
*ucblocks);
94
95
int
cxd2820r_init_c
(
struct
dvb_frontend
*fe);
96
97
int
cxd2820r_sleep_c
(
struct
dvb_frontend
*fe);
98
99
int
cxd2820r_get_tune_settings_c
(
struct
dvb_frontend
*fe,
100
struct
dvb_frontend_tune_settings
*
s
);
101
102
/* cxd2820r_t.c */
103
104
int
cxd2820r_get_frontend_t
(
struct
dvb_frontend
*fe);
105
106
int
cxd2820r_set_frontend_t
(
struct
dvb_frontend
*fe);
107
108
int
cxd2820r_read_status_t
(
struct
dvb_frontend
*fe,
fe_status_t
*
status
);
109
110
int
cxd2820r_read_ber_t
(
struct
dvb_frontend
*fe,
u32
*ber);
111
112
int
cxd2820r_read_signal_strength_t
(
struct
dvb_frontend
*fe,
u16
*strength);
113
114
int
cxd2820r_read_snr_t
(
struct
dvb_frontend
*fe,
u16
*
snr
);
115
116
int
cxd2820r_read_ucblocks_t
(
struct
dvb_frontend
*fe,
u32
*ucblocks);
117
118
int
cxd2820r_init_t
(
struct
dvb_frontend
*fe);
119
120
int
cxd2820r_sleep_t
(
struct
dvb_frontend
*fe);
121
122
int
cxd2820r_get_tune_settings_t
(
struct
dvb_frontend
*fe,
123
struct
dvb_frontend_tune_settings
*
s
);
124
125
/* cxd2820r_t2.c */
126
127
int
cxd2820r_get_frontend_t2
(
struct
dvb_frontend
*fe);
128
129
int
cxd2820r_set_frontend_t2
(
struct
dvb_frontend
*fe);
130
131
int
cxd2820r_read_status_t2
(
struct
dvb_frontend
*fe,
fe_status_t
*
status
);
132
133
int
cxd2820r_read_ber_t2
(
struct
dvb_frontend
*fe,
u32
*ber);
134
135
int
cxd2820r_read_signal_strength_t2
(
struct
dvb_frontend
*fe,
u16
*strength);
136
137
int
cxd2820r_read_snr_t2
(
struct
dvb_frontend
*fe,
u16
*
snr
);
138
139
int
cxd2820r_read_ucblocks_t2
(
struct
dvb_frontend
*fe,
u32
*ucblocks);
140
141
int
cxd2820r_init_t2
(
struct
dvb_frontend
*fe);
142
143
int
cxd2820r_sleep_t2
(
struct
dvb_frontend
*fe);
144
145
int
cxd2820r_get_tune_settings_t2
(
struct
dvb_frontend
*fe,
146
struct
dvb_frontend_tune_settings
*
s
);
147
148
#endif
/* CXD2820R_PRIV_H */
Generated on Thu Jan 10 2013 13:45:22 for Linux Kernel by
1.8.2