alistair23-linux/drivers/media/dvb-frontends/ts2020.h
Antti Palosaari e6ad9ce3e9 [media] ts2020: register I2C driver from legacy media attach
Register driver using I2C bindings internally when legacy media
attach is used. That is done by registering driver using I2C binding
from legacy attach. That way we can get valid I2C client, which is
needed for proper dev_() logging and regmap for example even legacy
binding is used.

Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
2015-06-10 10:58:48 -03:00

80 lines
1.9 KiB
C

/*
Montage Technology TS2020 - Silicon Tuner driver
Copyright (C) 2009-2012 Konstantin Dimitrov <kosio.dimitrov@gmail.com>
Copyright (C) 2009-2012 TurboSight.com
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef TS2020_H
#define TS2020_H
#include <linux/kconfig.h>
#include <linux/dvb/frontend.h>
struct ts2020_config {
u8 tuner_address;
u32 frequency_div;
/*
* RF loop-through
*/
u8 loop_through:1;
/*
* clock output
*/
#define TS2020_CLK_OUT_DISABLED 0
#define TS2020_CLK_OUT_ENABLED 1
#define TS2020_CLK_OUT_ENABLED_XTALOUT 2
u8 clk_out:2;
/*
* clock output divider
* 1 - 31
*/
u8 clk_out_div:5;
/*
* pointer to DVB frontend
*/
struct dvb_frontend *fe;
/*
* driver private, do not set value
*/
u8 attach_in_use:1;
};
/* Do not add new ts2020_attach() users! Use I2C bindings instead. */
#if IS_REACHABLE(CONFIG_DVB_TS2020)
extern struct dvb_frontend *ts2020_attach(
struct dvb_frontend *fe,
const struct ts2020_config *config,
struct i2c_adapter *i2c);
#else
static inline struct dvb_frontend *ts2020_attach(
struct dvb_frontend *fe,
const struct ts2020_config *config,
struct i2c_adapter *i2c)
{
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
#endif
#endif /* TS2020_H */