rtl2832.h revision 298efdd3765dfdfb92976d3bb7113061f8b0a92a
182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair/*
282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair * Realtek RTL2832 DVB-T demodulator driver
382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *
482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair * Copyright (C) 2012 Thomas Mair <thomas.mair86@gmail.com>
582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *
682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	This program is free software; you can redistribute it and/or modify
782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	it under the terms of the GNU General Public License as published by
882041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	the Free Software Foundation; either version 2 of the License, or
982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	(at your option) any later version.
1082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *
1182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	This program is distributed in the hope that it will be useful,
1282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	but WITHOUT ANY WARRANTY; without even the implied warranty of
1382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	GNU General Public License for more details.
1582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *
1682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	You should have received a copy of the GNU General Public License along
1782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	with this program; if not, write to the Free Software Foundation, Inc.,
1882041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair *	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
1982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair */
2082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
2182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#ifndef RTL2832_H
2282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#define RTL2832_H
2382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
2482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#include <linux/dvb/frontend.h>
2582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
2682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mairstruct rtl2832_config {
2782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	/*
2882041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * Demodulator I2C address.
2982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 */
3082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	u8 i2c_addr;
3182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
3282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	/*
3382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * Xtal frequency.
3482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * Hz
3582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * 4000000, 16000000, 25000000, 28800000
3682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 */
3782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	u32 xtal;
3882041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
3982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	/*
4082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * IFs for all used modes.
4182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * Hz
4282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 * 4570000, 4571429, 36000000, 36125000, 36166667, 44000000
4382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 */
4482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	u32 if_dvbt;
4582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
4682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	/*
47832cc7cdfb8ba78e03cf5c8c0ad9701ed0e20fb6Antti Palosaari	 * tuner
48832cc7cdfb8ba78e03cf5c8c0ad9701ed0e20fb6Antti Palosaari	 * XXX: This must be keep sync with dvb_usb_rtl28xxu demod driver.
4982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	 */
505db4187a037fb9e4b6908ef7bcef0f79395b398fAntti Palosaari#define RTL2832_TUNER_TUA9001   0x24
51832cc7cdfb8ba78e03cf5c8c0ad9701ed0e20fb6Antti Palosaari#define RTL2832_TUNER_FC0012    0x26
52832cc7cdfb8ba78e03cf5c8c0ad9701ed0e20fb6Antti Palosaari#define RTL2832_TUNER_FC0013    0x29
5382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	u8 tuner;
5482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair};
5582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
5682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#if defined(CONFIG_DVB_RTL2832) || \
5782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	(defined(CONFIG_DVB_RTL2832_MODULE) && defined(MODULE))
5882041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mairextern struct dvb_frontend *rtl2832_attach(
5982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	const struct rtl2832_config *cfg,
6082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	struct i2c_adapter *i2c
6182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair);
6282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#else
6382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mairstatic inline struct dvb_frontend *rtl2832_attach(
6482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	const struct rtl2832_config *config,
6582041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	struct i2c_adapter *i2c
6682041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair)
6782041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair{
68298efdd3765dfdfb92976d3bb7113061f8b0a92aAntti Palosaari	pr_warn("%s: driver disabled by Kconfig\n", __func__);
6982041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair	return NULL;
7082041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair}
7182041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#endif
7282041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
7382041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair
7482041c0a15fdd45336f11c893c4ff69d48dcc4f1Thomas Mair#endif /* RTL2832_H */
75