| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | /* | 
|  | 2 | * Realtek RTL2832 DVB-T demodulator driver | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 2012 Thomas Mair <thomas.mair86@gmail.com> | 
|  | 5 | * Copyright (C) 2012-2014 Antti Palosaari <crope@iki.fi> | 
|  | 6 | * | 
|  | 7 | *	This program is free software; you can redistribute it and/or modify | 
|  | 8 | *	it under the terms of the GNU General Public License as published by | 
|  | 9 | *	the Free Software Foundation; either version 2 of the License, or | 
|  | 10 | *	(at your option) any later version. | 
|  | 11 | * | 
|  | 12 | *	This program is distributed in the hope that it will be useful, | 
|  | 13 | *	but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 14 | *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | 15 | *	GNU General Public License for more details. | 
|  | 16 | * | 
|  | 17 | *	You should have received a copy of the GNU General Public License along | 
|  | 18 | *	with this program; if not, write to the Free Software Foundation, Inc., | 
|  | 19 | *	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 
|  | 20 | */ | 
|  | 21 |  | 
|  | 22 | #ifndef RTL2832_H | 
|  | 23 | #define RTL2832_H | 
|  | 24 |  | 
|  | 25 | #include <linux/dvb/frontend.h> | 
|  | 26 | #include <linux/i2c-mux.h> | 
|  | 27 |  | 
|  | 28 | /** | 
|  | 29 | * struct rtl2832_platform_data - Platform data for the rtl2832 driver | 
|  | 30 | * @clk: Clock frequency (4000000, 16000000, 25000000, 28800000). | 
|  | 31 | * @tuner: Used tuner model. | 
|  | 32 | * @get_dvb_frontend: Get DVB frontend. | 
|  | 33 | * @get_i2c_adapter: Get I2C adapter. | 
|  | 34 | * @slave_ts_ctrl: Control slave TS interface. | 
|  | 35 | * @pid_filter: Set PID to PID filter. | 
|  | 36 | * @pid_filter_ctrl: Control PID filter. | 
|  | 37 | */ | 
|  | 38 | struct rtl2832_platform_data { | 
|  | 39 | u32 clk; | 
|  | 40 | /* | 
|  | 41 | * XXX: This list must be kept sync with dvb_usb_rtl28xxu USB IF driver. | 
|  | 42 | */ | 
|  | 43 | #define RTL2832_TUNER_FC2580    0x21 | 
|  | 44 | #define RTL2832_TUNER_TUA9001   0x24 | 
|  | 45 | #define RTL2832_TUNER_FC0012    0x26 | 
|  | 46 | #define RTL2832_TUNER_E4000     0x27 | 
|  | 47 | #define RTL2832_TUNER_FC0013    0x29 | 
|  | 48 | #define RTL2832_TUNER_R820T     0x2a | 
|  | 49 | #define RTL2832_TUNER_R828D     0x2b | 
|  | 50 | #define RTL2832_TUNER_SI2157    0x2c | 
|  | 51 | u8 tuner; | 
|  | 52 |  | 
|  | 53 | struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *); | 
|  | 54 | struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *); | 
|  | 55 | int (*slave_ts_ctrl)(struct i2c_client *, bool); | 
|  | 56 | int (*pid_filter)(struct dvb_frontend *, u8, u16, int); | 
|  | 57 | int (*pid_filter_ctrl)(struct dvb_frontend *, int); | 
|  | 58 | /* private: Register access for SDR module use only */ | 
|  | 59 | struct regmap *regmap; | 
|  | 60 | }; | 
|  | 61 |  | 
|  | 62 | #endif /* RTL2832_H */ |