xref: /OK3568_Linux_fs/kernel/drivers/media/dvb-frontends/tda10071.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * NXP TDA10071 + Conexant CX24118A DVB-S/S2 demodulator + tuner driver
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2011 Antti Palosaari <crope@iki.fi>
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef TDA10071_H
9*4882a593Smuzhiyun #define TDA10071_H
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include <linux/dvb/frontend.h>
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun /*
14*4882a593Smuzhiyun  * I2C address
15*4882a593Smuzhiyun  * 0x05, 0x55,
16*4882a593Smuzhiyun  */
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun /**
19*4882a593Smuzhiyun  * struct tda10071_platform_data - Platform data for the tda10071 driver
20*4882a593Smuzhiyun  * @clk: Clock frequency.
21*4882a593Smuzhiyun  * @i2c_wr_max: Max bytes I2C adapter can write at once.
22*4882a593Smuzhiyun  * @ts_mode: TS mode.
23*4882a593Smuzhiyun  * @spec_inv: Input spectrum inversion.
24*4882a593Smuzhiyun  * @pll_multiplier: PLL multiplier.
25*4882a593Smuzhiyun  * @tuner_i2c_addr: CX24118A tuner I2C address (0x14, 0x54, ...).
26*4882a593Smuzhiyun  * @get_dvb_frontend: Get DVB frontend.
27*4882a593Smuzhiyun  */
28*4882a593Smuzhiyun struct tda10071_platform_data {
29*4882a593Smuzhiyun 	u32 clk;
30*4882a593Smuzhiyun 	u16 i2c_wr_max;
31*4882a593Smuzhiyun #define TDA10071_TS_SERIAL        0
32*4882a593Smuzhiyun #define TDA10071_TS_PARALLEL      1
33*4882a593Smuzhiyun 	u8 ts_mode;
34*4882a593Smuzhiyun 	bool spec_inv;
35*4882a593Smuzhiyun 	u8 pll_multiplier;
36*4882a593Smuzhiyun 	u8 tuner_i2c_addr;
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun 	struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
39*4882a593Smuzhiyun };
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun #endif /* TDA10071_H */
42