^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) TDA8261 8PSK/QPSK tuner driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Copyright (C) Manu Abraham (abraham.manu@gmail.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^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 __TDA8261_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #define __TDA8261_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) enum tda8261_step {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) TDA8261_STEP_2000 = 0, /* 2000 kHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) TDA8261_STEP_1000, /* 1000 kHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) TDA8261_STEP_500, /* 500 kHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) TDA8261_STEP_250, /* 250 kHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) TDA8261_STEP_125 /* 125 kHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct tda8261_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) // u8 buf[16];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) u8 addr;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) enum tda8261_step step_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #if IS_REACHABLE(CONFIG_DVB_TDA8261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) extern struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) const struct tda8261_config *config,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct i2c_adapter *i2c);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) static inline struct dvb_frontend *tda8261_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) const struct tda8261_config *config,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct i2c_adapter *i2c)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) printk(KERN_WARNING "%s: Driver disabled by Kconfig\n", __func__);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) return NULL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #endif //CONFIG_DVB_TDA8261
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #endif// __TDA8261_H