2019-05-20 10:19:02 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2008-04-19 04:34:00 +04:00
/*
Auvitek AU8522 QAM / 8 VSB demodulator driver
2008-09-04 00:12:12 +04:00
Copyright ( C ) 2008 Steven Toth < stoth @ linuxtv . org >
2008-04-19 04:34:00 +04:00
*/
# ifndef __AU8522_H__
# define __AU8522_H__
# include <linux/dvb/frontend.h>
2008-09-03 23:46:35 +04:00
enum au8522_if_freq {
AU8522_IF_6MHZ = 0 ,
AU8522_IF_4MHZ ,
AU8522_IF_3_25MHZ ,
} ;
2008-04-06 03:55:14 +04:00
struct au8522_led_config {
u16 vsb8_strong ;
u16 qam64_strong ;
u16 qam256_strong ;
u16 gpio_output ;
/* unset hi bits, set low bits */
u16 gpio_output_enable ;
u16 gpio_output_disable ;
u16 gpio_leds ;
u8 * led_states ;
unsigned int num_led_states ;
} ;
2008-04-19 05:12:52 +04:00
struct au8522_config {
2008-04-19 04:34:00 +04:00
/* the demodulator's i2c address */
u8 demod_address ;
/* Return lock status based on tuner lock, or demod lock */
# define AU8522_TUNERLOCKING 0
# define AU8522_DEMODLOCKING 1
u8 status_mode ;
2008-09-03 23:46:35 +04:00
2008-04-06 03:55:14 +04:00
struct au8522_led_config * led_cfg ;
2008-09-03 23:46:35 +04:00
enum au8522_if_freq vsb_if ;
enum au8522_if_freq qam_if ;
2008-04-19 04:34:00 +04:00
} ;
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_DVB_AU8522_DTV)
2008-04-03 01:59:48 +04:00
extern struct dvb_frontend * au8522_attach ( const struct au8522_config * config ,
struct i2c_adapter * i2c ) ;
2008-04-19 04:34:00 +04:00
# else
2008-04-03 01:59:48 +04:00
static inline
struct dvb_frontend * au8522_attach ( const struct au8522_config * config ,
struct i2c_adapter * i2c )
2008-04-19 04:34:00 +04:00
{
2008-04-03 01:59:48 +04:00
printk ( KERN_WARNING " %s: driver disabled by Kconfig \n " , __func__ ) ;
2008-04-19 04:34:00 +04:00
return NULL ;
}
# endif /* CONFIG_DVB_AU8522 */
2009-03-11 09:00:38 +03:00
/* Other modes may need to be added later */
enum au8522_video_input {
AU8522_COMPOSITE_CH1 = 1 ,
AU8522_COMPOSITE_CH2 ,
AU8522_COMPOSITE_CH3 ,
AU8522_COMPOSITE_CH4 ,
AU8522_COMPOSITE_CH4_SIF ,
AU8522_SVIDEO_CH13 ,
AU8522_SVIDEO_CH24 ,
} ;
enum au8522_audio_input {
AU8522_AUDIO_NONE ,
AU8522_AUDIO_SIF ,
} ;
2008-04-19 04:34:00 +04:00
# endif /* __AU8522_H__ */