Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^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)  *  mxl111sf-tuner.h - driver for the MaxLinear MXL111SF CMOS tuner
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *  Copyright (C) 2010-2014 Michael Krufky <mkrufky@linuxtv.org>
^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 __MXL111SF_TUNER_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) #define __MXL111SF_TUNER_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <media/dvb_frontend.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include "mxl111sf.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) enum mxl_if_freq {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #if 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	MXL_IF_LO    = 0x00, /* other IF < 9MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	MXL_IF_4_0   = 0x01, /* 4.0   MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	MXL_IF_4_5   = 0x02, /* 4.5   MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	MXL_IF_4_57  = 0x03, /* 4.57  MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	MXL_IF_5_0   = 0x04, /* 5.0   MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	MXL_IF_5_38  = 0x05, /* 5.38  MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	MXL_IF_6_0   = 0x06, /* 6.0   MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	MXL_IF_6_28  = 0x07, /* 6.28  MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	MXL_IF_7_2   = 0x08, /* 7.2   MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	MXL_IF_35_25 = 0x09, /* 35.25 MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	MXL_IF_36    = 0x0a, /* 36    MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	MXL_IF_36_15 = 0x0b, /* 36.15 MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	MXL_IF_44    = 0x0c, /* 44    MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #if 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	MXL_IF_HI    = 0x0f, /* other IF > 35 MHz and < 45 MHz */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct mxl111sf_tuner_config {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	enum mxl_if_freq if_freq;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	unsigned int invert_spectrum:1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	int (*read_reg)(struct mxl111sf_state *state, u8 addr, u8 *data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	int (*write_reg)(struct mxl111sf_state *state, u8 addr, u8 data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	int (*program_regs)(struct mxl111sf_state *state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 			    struct mxl111sf_reg_ctrl_info *ctrl_reg_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	int (*top_master_ctrl)(struct mxl111sf_state *state, int onoff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	int (*ant_hunt)(struct dvb_frontend *fe);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) /* ------------------------------------------------------------------------ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #if IS_ENABLED(CONFIG_DVB_USB_MXL111SF)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) extern
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) struct dvb_frontend *mxl111sf_tuner_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 				struct mxl111sf_state *mxl_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 				const struct mxl111sf_tuner_config *cfg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) static inline
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) struct dvb_frontend *mxl111sf_tuner_attach(struct dvb_frontend *fe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 				struct mxl111sf_state *mxl_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 				const struct mxl111sf_tuner_config *cfg)
^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 /* __MXL111SF_TUNER_H__ */