^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * descriptions + helper functions for simple dvb plls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #ifndef __DVB_PLL_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #define __DVB_PLL_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include <linux/i2c.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <media/dvb_frontend.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define DVB_PLL_UNDEFINED 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #define DVB_PLL_THOMSON_DTT7579 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define DVB_PLL_THOMSON_DTT759X 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define DVB_PLL_LG_Z201 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define DVB_PLL_UNKNOWN_1 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define DVB_PLL_TUA6010XS 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) #define DVB_PLL_ENV57H1XD5 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define DVB_PLL_TUA6034 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) #define DVB_PLL_TDA665X 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define DVB_PLL_TDED4 9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) #define DVB_PLL_TDHU2 10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define DVB_PLL_SAMSUNG_TBMV 11
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) #define DVB_PLL_PHILIPS_SD1878_TDA8261 12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define DVB_PLL_OPERA1 13
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) #define DVB_PLL_SAMSUNG_DTOS403IH102A 14
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define DVB_PLL_SAMSUNG_TDTC9251DH0 15
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) #define DVB_PLL_SAMSUNG_TBDU18132 16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define DVB_PLL_SAMSUNG_TBMU24112 17
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define DVB_PLL_TDEE4 18
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define DVB_PLL_THOMSON_DTT7520X 19
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define DVB_PLL_TUA6034_FRIIO 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define DVB_PLL_TDA665X_EARTH_PT1 21
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct dvb_pll_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) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #if IS_REACHABLE(CONFIG_DVB_PLL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) * Attach a dvb-pll to the supplied frontend structure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) * @fe: Frontend to attach to.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) * @pll_addr: i2c address of the PLL (if used).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) * @i2c: i2c adapter to use (set to NULL if not used).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) * @pll_desc_id: dvb_pll_desc to use.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) * return: Frontend pointer on success, NULL on failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) extern struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) int pll_addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) struct i2c_adapter *i2c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) unsigned int pll_desc_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) static inline struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) int pll_addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) struct i2c_adapter *i2c,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) unsigned int pll_desc_id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) return NULL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #endif