Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * Afatech AF9033 demodulator driver
0004  *
0005  * Copyright (C) 2009 Antti Palosaari <crope@iki.fi>
0006  * Copyright (C) 2012 Antti Palosaari <crope@iki.fi>
0007  */
0008 
0009 #ifndef AF9033_H
0010 #define AF9033_H
0011 
0012 /*
0013  * I2C address: 0x1c, 0x1d, 0x1e, 0x1f
0014  */
0015 struct af9033_config {
0016     /*
0017      * clock Hz
0018      * 12000000, 22000000, 24000000, 34000000, 32000000, 28000000, 26000000,
0019      * 30000000, 36000000, 20480000, 16384000
0020      */
0021     u32 clock;
0022 
0023     /*
0024      * ADC multiplier
0025      */
0026 #define AF9033_ADC_MULTIPLIER_1X   0
0027 #define AF9033_ADC_MULTIPLIER_2X   1
0028     u8 adc_multiplier;
0029 
0030     /*
0031      * tuner
0032      */
0033 #define AF9033_TUNER_TUA9001     0x27 /* Infineon TUA 9001 */
0034 #define AF9033_TUNER_FC0011      0x28 /* Fitipower FC0011 */
0035 #define AF9033_TUNER_FC0012      0x2e /* Fitipower FC0012 */
0036 #define AF9033_TUNER_MXL5007T    0xa0 /* MaxLinear MxL5007T */
0037 #define AF9033_TUNER_TDA18218    0xa1 /* NXP TDA 18218HN */
0038 #define AF9033_TUNER_FC2580      0x32 /* FCI FC2580 */
0039 /* 50-5f Omega */
0040 #define AF9033_TUNER_IT9135_38   0x38 /* Omega */
0041 #define AF9033_TUNER_IT9135_51   0x51 /* Omega LNA config 1 */
0042 #define AF9033_TUNER_IT9135_52   0x52 /* Omega LNA config 2 */
0043 /* 60-6f Omega v2 */
0044 #define AF9033_TUNER_IT9135_60   0x60 /* Omega v2 */
0045 #define AF9033_TUNER_IT9135_61   0x61 /* Omega v2 LNA config 1 */
0046 #define AF9033_TUNER_IT9135_62   0x62 /* Omega v2 LNA config 2 */
0047     u8 tuner;
0048 
0049     /*
0050      * TS settings
0051      */
0052 #define AF9033_TS_MODE_USB       0
0053 #define AF9033_TS_MODE_PARALLEL  1
0054 #define AF9033_TS_MODE_SERIAL    2
0055     u8 ts_mode:2;
0056 
0057     /*
0058      * input spectrum inversion
0059      */
0060     bool spec_inv;
0061 
0062     /*
0063      *
0064      */
0065     bool dyn0_clk;
0066 
0067     /*
0068      * PID filter ops
0069      */
0070     struct af9033_ops *ops;
0071 
0072     /*
0073      * frontend
0074      * returned by that driver
0075      */
0076     struct dvb_frontend **fe;
0077 
0078     /*
0079      * regmap for IT913x integrated tuner driver
0080      * returned by that driver
0081      */
0082     struct regmap *regmap;
0083 };
0084 
0085 struct af9033_ops {
0086     int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff);
0087     int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid,
0088               int onoff);
0089 };
0090 
0091 #endif /* AF9033_H */