0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef __LGS8GXX_H__
0013 #define __LGS8GXX_H__
0014
0015 #include <linux/dvb/frontend.h>
0016 #include <linux/i2c.h>
0017
0018 #define LGS8GXX_PROD_LGS8913 0
0019 #define LGS8GXX_PROD_LGS8GL5 1
0020 #define LGS8GXX_PROD_LGS8G42 3
0021 #define LGS8GXX_PROD_LGS8G52 4
0022 #define LGS8GXX_PROD_LGS8G54 5
0023 #define LGS8GXX_PROD_LGS8G75 6
0024
0025 struct lgs8gxx_config {
0026
0027
0028 u8 prod;
0029
0030
0031 u8 demod_address;
0032
0033
0034 u8 serial_ts;
0035
0036
0037 u8 ts_clk_pol;
0038
0039
0040 u8 ts_clk_gated;
0041
0042
0043 u32 if_clk_freq;
0044
0045
0046 u32 if_freq;
0047
0048
0049 u8 ext_adc;
0050
0051
0052 u8 adc_signed;
0053
0054
0055 u8 if_neg_edge;
0056
0057
0058 u8 if_neg_center;
0059
0060
0061
0062 u8 adc_vpp;
0063
0064
0065 u8 tuner_address;
0066 };
0067
0068 #if IS_REACHABLE(CONFIG_DVB_LGS8GXX)
0069 extern struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
0070 struct i2c_adapter *i2c);
0071 #else
0072 static inline
0073 struct dvb_frontend *lgs8gxx_attach(const struct lgs8gxx_config *config,
0074 struct i2c_adapter *i2c) {
0075 printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
0076 return NULL;
0077 }
0078 #endif
0079
0080 #endif