GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / media / dvb-frontends / si2168.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Silicon Labs Si2168 DVB-T/T2/C demodulator driver
4  *
5  * Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
6  */
7
8 #ifndef SI2168_H
9 #define SI2168_H
10
11 #include <linux/dvb/frontend.h>
12 /**
13  * struct si2168_config - configuration parameters for si2168
14  *
15  * @fe:
16  *      frontend returned by driver
17  * @i2c_adapter:
18  *      tuner I2C adapter returned by driver
19  * @ts_mode:
20  *      Transport Stream mode. Can be:
21  *      - %SI2168_TS_PARALLEL
22  *      - %SI2168_TS_SERIAL
23  *      - %SI2168_TS_TRISTATE
24  *      - %SI2168_TS_CLK_MANUAL
25  * @ts_clock_inv:
26  *      TS clock inverted
27  * @ts_clock_gapped:
28  *      TS clock gapped
29  * @spectral_inversion:
30  *      Inverted spectrum
31  *
32  * Note:
33  *      The I2C address of this demod is 0x64.
34  */
35 struct si2168_config {
36         struct dvb_frontend **fe;
37         struct i2c_adapter **i2c_adapter;
38
39 #define SI2168_TS_PARALLEL      0x06
40 #define SI2168_TS_SERIAL        0x03
41 #define SI2168_TS_TRISTATE      0x00
42 #define SI2168_TS_CLK_MANUAL    0x20
43         u8 ts_mode;
44
45         /* Flags */
46         unsigned int ts_clock_inv:1;
47         unsigned int ts_clock_gapped:1;
48         unsigned int spectral_inversion:1;
49 };
50
51 #endif