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