2 Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
4 Copyright (C) 2005 Steven Toth <stoth@hauppauge.com>
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.
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.
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.
24 #include <linux/dvb/frontend.h>
28 /* the demodulator's i2c address */
32 int (*pll_init
)(struct dvb_frontend
* fe
);
33 int (*pll_set
)(struct dvb_frontend
* fe
, struct dvb_frontend_parameters
* params
);
35 /* Need to set device param for start_dma */
36 int (*set_ts_params
)(struct dvb_frontend
* fe
, int is_punctured
);
39 /* Various tuner defaults need to be established for a given symbol rate Sps */
50 } cx24123_AGC_vals
[] =
53 .symbolrate_low
= 1000000,
54 .symbolrate_high
= 4999999,
59 .VGAprogdata
= (2 << 18) | (0x1f8 << 9) | 0x1f8,
60 .VCAprogdata
= (4 << 18) | (0x07 << 9) | 0x07,
63 .symbolrate_low
= 5000000,
64 .symbolrate_high
= 14999999,
69 .VGAprogdata
= (2 << 18) | (0x180 << 9) | 0x1e0,
70 .VCAprogdata
= (4 << 18) | (0x07 << 9) | 0x1f,
73 .symbolrate_low
= 15000000,
74 .symbolrate_high
= 45000000,
79 .VGAprogdata
= (2 << 18) | (0x100 << 9) | 0x180,
80 .VCAprogdata
= (4 << 18) | (0x07 << 9) | 0x3f,
85 * Various tuner defaults need to be established for a given frequency kHz.
86 * fixme: The bounds on the bands do not match the doc in real life.
87 * fixme: Some of them have been moved, other might need adjustment.
97 } cx24123_bandselect_vals
[] =
101 .freq_high
= 1018999,
105 .progdata
= (0 << 18) | (0 << 9) | 0x40,
109 .freq_high
= 1074999,
113 .progdata
= (0 << 18) | (0 << 9) | 0x80,
117 .freq_high
= 1227999,
121 .progdata
= (0 << 18) | (1 << 9) | 0x01,
125 .freq_high
= 1349999,
129 .progdata
= (0 << 18) | (1 << 9) | 0x02,
133 .freq_high
= 1481999,
137 .progdata
= (0 << 18) | (1 << 9) | 0x04,
141 .freq_high
= 1595999,
145 .progdata
= (0 << 18) | (1 << 9) | 0x08,
149 .freq_high
= 1717999,
153 .progdata
= (0 << 18) | (1 << 9) | 0x10,
157 .freq_high
= 1855999,
161 .progdata
= (0 << 18) | (1 << 9) | 0x20,
165 .freq_high
= 2035999,
169 .progdata
= (0 << 18) | (1 << 9) | 0x40,
173 .freq_high
= 2149999,
177 .progdata
= (0 << 18) | (1 << 9) | 0x80,
181 extern struct dvb_frontend
* cx24123_attach(const struct cx24123_config
* config
,
182 struct i2c_adapter
* i2c
);
184 #endif /* CX24123_H */