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>
80 lines
1.9 KiB
C
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 */
|