mxl5xx.h (1224B)
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Driver for the MaxLinear MxL5xx family of tuners/demods 4 * 5 * Copyright (C) 2014-2015 Ralph Metzler <rjkm@metzlerbros.de> 6 * Marcus Metzler <mocm@metzlerbros.de> 7 * developed for Digital Devices GmbH 8 * 9 * based on code: 10 * Copyright (c) 2011-2013 MaxLinear, Inc. All rights reserved 11 * which was released under GPL V2 12 */ 13 14#ifndef _MXL5XX_H_ 15#define _MXL5XX_H_ 16 17#include <linux/types.h> 18#include <linux/i2c.h> 19 20#include <media/dvb_frontend.h> 21 22struct mxl5xx_cfg { 23 u8 adr; 24 u8 type; 25 u32 cap; 26 u32 clk; 27 u32 ts_clk; 28 29 u8 *fw; 30 u32 fw_len; 31 32 int (*fw_read)(void *priv, u8 *buf, u32 len); 33 void *fw_priv; 34}; 35 36#if IS_REACHABLE(CONFIG_DVB_MXL5XX) 37 38extern struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c, 39 struct mxl5xx_cfg *cfg, u32 demod, u32 tuner, 40 int (**fn_set_input)(struct dvb_frontend *, int)); 41 42#else 43 44static inline struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c, 45 struct mxl5xx_cfg *cfg, u32 demod, u32 tuner, 46 int (**fn_set_input)(struct dvb_frontend *, int)) 47{ 48 pr_warn("%s: driver disabled by Kconfig\n", __func__); 49 return NULL; 50} 51 52#endif /* CONFIG_DVB_MXL5XX */ 53 54#endif /* _MXL5XX_H_ */