2019-05-27 09:55:06 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2007-12-18 07:55:51 +03:00
/*
* Driver for Xceive XC5000 " QAM/8VSB single chip tuner "
*
2008-09-04 00:12:12 +04:00
* Copyright ( c ) 2007 Steven Toth < stoth @ linuxtv . org >
2007-12-18 07:55:51 +03:00
*/
# ifndef __XC5000_H__
# define __XC5000_H__
# include <linux/firmware.h>
struct dvb_frontend ;
struct i2c_adapter ;
2012-02-08 21:57:39 +04:00
# define XC5000A 1
# define XC5000C 2
2012-02-07 02:40:32 +04:00
2007-12-18 07:55:51 +03:00
struct xc5000_config {
2008-01-05 22:50:14 +03:00
u8 i2c_address ;
u32 if_khz ;
2009-09-24 20:27:24 +04:00
u8 radio_input ;
2012-04-16 22:21:51 +04:00
u16 xtal_khz ;
2014-10-26 00:17:22 +04:00
u16 output_amp ;
2012-02-07 02:40:32 +04:00
2012-02-08 21:57:39 +04:00
int chip_id ;
2007-12-18 07:55:51 +03:00
} ;
2008-01-05 22:50:14 +03:00
/* xc5000 callback command */
# define XC5000_TUNER_RESET 0
2009-09-24 20:27:24 +04:00
/* Possible Radio inputs */
# define XC5000_RADIO_NOT_CONFIGURED 0
# define XC5000_RADIO_FM1 1
# define XC5000_RADIO_FM2 2
2011-02-01 11:25:19 +03:00
# define XC5000_RADIO_FM1_MONO 3
2009-09-24 20:27:24 +04:00
2008-05-10 21:34:09 +04:00
/* For each bridge framework, when it attaches either analog or digital,
* it has to store a reference back to its _core equivalent structure ,
* so that it can service the hardware by steering gpio ' s etc .
* Each bridge implementation is different so cast devptr accordingly .
* The xc5000 driver cares not for this value , other than ensuring
* it ' s passed back to a bridge during tuner_callback ( ) .
*/
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_MEDIA_TUNER_XC5000)
2008-10-17 03:29:38 +04:00
extern struct dvb_frontend * xc5000_attach ( struct dvb_frontend * fe ,
2007-12-18 07:55:51 +03:00
struct i2c_adapter * i2c ,
2010-08-25 16:50:20 +04:00
const struct xc5000_config * cfg ) ;
2007-12-18 07:55:51 +03:00
# else
2008-10-17 03:29:38 +04:00
static inline struct dvb_frontend * xc5000_attach ( struct dvb_frontend * fe ,
2007-12-18 07:55:51 +03:00
struct i2c_adapter * i2c ,
2010-08-25 16:50:20 +04:00
const struct xc5000_config * cfg )
2007-12-18 07:55:51 +03:00
{
2008-04-09 06:20:00 +04:00
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
2007-12-18 07:55:51 +03:00
return NULL ;
}
2008-10-17 03:29:38 +04:00
# endif
2007-12-18 07:55:51 +03:00
2008-10-17 03:29:38 +04:00
# endif