162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * mxl5007t.h - driver for the MaxLinear MxL5007T silicon tuner 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2008 Michael Krufky <mkrufky@linuxtv.org> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#ifndef __MXL5007T_H__ 962306a36Sopenharmony_ci#define __MXL5007T_H__ 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <media/dvb_frontend.h> 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* ------------------------------------------------------------------------- */ 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cienum mxl5007t_if_freq { 1662306a36Sopenharmony_ci MxL_IF_4_MHZ, /* 4000000 */ 1762306a36Sopenharmony_ci MxL_IF_4_5_MHZ, /* 4500000 */ 1862306a36Sopenharmony_ci MxL_IF_4_57_MHZ, /* 4570000 */ 1962306a36Sopenharmony_ci MxL_IF_5_MHZ, /* 5000000 */ 2062306a36Sopenharmony_ci MxL_IF_5_38_MHZ, /* 5380000 */ 2162306a36Sopenharmony_ci MxL_IF_6_MHZ, /* 6000000 */ 2262306a36Sopenharmony_ci MxL_IF_6_28_MHZ, /* 6280000 */ 2362306a36Sopenharmony_ci MxL_IF_9_1915_MHZ, /* 9191500 */ 2462306a36Sopenharmony_ci MxL_IF_35_25_MHZ, /* 35250000 */ 2562306a36Sopenharmony_ci MxL_IF_36_15_MHZ, /* 36150000 */ 2662306a36Sopenharmony_ci MxL_IF_44_MHZ, /* 44000000 */ 2762306a36Sopenharmony_ci}; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cienum mxl5007t_xtal_freq { 3062306a36Sopenharmony_ci MxL_XTAL_16_MHZ, /* 16000000 */ 3162306a36Sopenharmony_ci MxL_XTAL_20_MHZ, /* 20000000 */ 3262306a36Sopenharmony_ci MxL_XTAL_20_25_MHZ, /* 20250000 */ 3362306a36Sopenharmony_ci MxL_XTAL_20_48_MHZ, /* 20480000 */ 3462306a36Sopenharmony_ci MxL_XTAL_24_MHZ, /* 24000000 */ 3562306a36Sopenharmony_ci MxL_XTAL_25_MHZ, /* 25000000 */ 3662306a36Sopenharmony_ci MxL_XTAL_25_14_MHZ, /* 25140000 */ 3762306a36Sopenharmony_ci MxL_XTAL_27_MHZ, /* 27000000 */ 3862306a36Sopenharmony_ci MxL_XTAL_28_8_MHZ, /* 28800000 */ 3962306a36Sopenharmony_ci MxL_XTAL_32_MHZ, /* 32000000 */ 4062306a36Sopenharmony_ci MxL_XTAL_40_MHZ, /* 40000000 */ 4162306a36Sopenharmony_ci MxL_XTAL_44_MHZ, /* 44000000 */ 4262306a36Sopenharmony_ci MxL_XTAL_48_MHZ, /* 48000000 */ 4362306a36Sopenharmony_ci MxL_XTAL_49_3811_MHZ, /* 49381100 */ 4462306a36Sopenharmony_ci}; 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cienum mxl5007t_clkout_amp { 4762306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_94V = 0, 4862306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_53V = 1, 4962306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_37V = 2, 5062306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_28V = 3, 5162306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_23V = 4, 5262306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_20V = 5, 5362306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_17V = 6, 5462306a36Sopenharmony_ci MxL_CLKOUT_AMP_0_15V = 7, 5562306a36Sopenharmony_ci}; 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_cistruct mxl5007t_config { 5862306a36Sopenharmony_ci s32 if_diff_out_level; 5962306a36Sopenharmony_ci enum mxl5007t_clkout_amp clk_out_amp; 6062306a36Sopenharmony_ci enum mxl5007t_xtal_freq xtal_freq_hz; 6162306a36Sopenharmony_ci enum mxl5007t_if_freq if_freq_hz; 6262306a36Sopenharmony_ci unsigned int invert_if:1; 6362306a36Sopenharmony_ci unsigned int loop_thru_enable:1; 6462306a36Sopenharmony_ci unsigned int clk_out_enable:1; 6562306a36Sopenharmony_ci}; 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci#if IS_REACHABLE(CONFIG_MEDIA_TUNER_MXL5007T) 6862306a36Sopenharmony_ciextern struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe, 6962306a36Sopenharmony_ci struct i2c_adapter *i2c, u8 addr, 7062306a36Sopenharmony_ci struct mxl5007t_config *cfg); 7162306a36Sopenharmony_ci#else 7262306a36Sopenharmony_cistatic inline struct dvb_frontend *mxl5007t_attach(struct dvb_frontend *fe, 7362306a36Sopenharmony_ci struct i2c_adapter *i2c, 7462306a36Sopenharmony_ci u8 addr, 7562306a36Sopenharmony_ci struct mxl5007t_config *cfg) 7662306a36Sopenharmony_ci{ 7762306a36Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 7862306a36Sopenharmony_ci return NULL; 7962306a36Sopenharmony_ci} 8062306a36Sopenharmony_ci#endif 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci#endif /* __MXL5007T_H__ */ 83