2019-05-20 10:19:02 +03:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
2007-02-24 14:31:40 +03:00
/*
STB6100 Silicon Tuner
Copyright ( C ) Manu Abraham ( abraham . manu @ gmail . com )
Copyright ( C ) ST Microelectronics
*/
# ifndef __STB_6100_REG_H
# define __STB_6100_REG_H
# include <linux/dvb/frontend.h>
2017-12-28 21:03:51 +03:00
# include <media/dvb_frontend.h>
2007-02-24 14:31:40 +03:00
# define STB6100_LD 0x00
# define STB6100_LD_LOCK (1 << 0)
# define STB6100_VCO 0x01
# define STB6100_VCO_OSCH (0x01 << 7)
# define STB6100_VCO_OSCH_SHIFT 7
# define STB6100_VCO_OCK (0x03 << 5)
# define STB6100_VCO_OCK_SHIFT 5
# define STB6100_VCO_ODIV (0x01 << 4)
# define STB6100_VCO_ODIV_SHIFT 4
# define STB6100_VCO_OSM (0x0f << 0)
# define STB6100_NI 0x02
# define STB6100_NF_LSB 0x03
# define STB6100_K 0x04
# define STB6100_K_PSD2 (0x01 << 2)
# define STB6100_K_PSD2_SHIFT 2
# define STB6100_K_NF_MSB (0x03 << 0)
# define STB6100_G 0x05
# define STB6100_G_G (0x0f << 0)
# define STB6100_G_GCT (0x07 << 5)
# define STB6100_F 0x06
# define STB6100_F_F (0x1f << 0)
# define STB6100_DLB 0x07
# define STB6100_TEST1 0x08
# define STB6100_FCCK 0x09
# define STB6100_FCCK_FCCK (0x01 << 6)
# define STB6100_LPEN 0x0a
# define STB6100_LPEN_LPEN (0x01 << 4)
# define STB6100_LPEN_SYNP (0x01 << 5)
# define STB6100_LPEN_OSCP (0x01 << 6)
# define STB6100_LPEN_BEN (0x01 << 7)
# define STB6100_TEST3 0x0b
# define STB6100_NUMREGS 0x0c
# define INRANGE(val, x, y) (((x <= val) && (val <= y)) || \
( ( y < = val ) & & ( val < = x ) ) ? 1 : 0 )
# define CHKRANGE(val, x, y) (((val >= x) && (val < y)) ? 1 : 0)
struct stb6100_config {
u8 tuner_address ;
u32 refclock ;
} ;
struct stb6100_state {
struct i2c_adapter * i2c ;
const struct stb6100_config * config ;
struct dvb_tuner_ops ops ;
struct dvb_frontend * frontend ;
u32 frequency ;
u32 srate ;
u32 bandwidth ;
u32 reference ;
} ;
2015-02-18 20:12:42 +03:00
# if IS_REACHABLE(CONFIG_DVB_STB6100)
2007-10-09 01:51:54 +04:00
extern struct dvb_frontend * stb6100_attach ( struct dvb_frontend * fe ,
2010-08-25 16:50:20 +04:00
const struct stb6100_config * config ,
2007-10-09 01:51:54 +04:00
struct i2c_adapter * i2c ) ;
# else
static inline struct dvb_frontend * stb6100_attach ( struct dvb_frontend * fe ,
2010-08-25 16:50:20 +04:00
const struct stb6100_config * config ,
2007-10-09 01:51:54 +04:00
struct i2c_adapter * i2c )
{
printk ( KERN_WARNING " %s: Driver disabled by Kconfig \n " , __func__ ) ;
return NULL ;
}
# endif //CONFIG_DVB_STB6100
2007-02-24 14:31:40 +03:00
# endif