/* SPDX-License-Identifier: GPL-2.0 */ /* * Driver for the MaxLinear MxL5xx family of tuners/demods * * Copyright (C) 2014-2015 Ralph Metzler <rjkm@metzlerbros.de> * Marcus Metzler <mocm@metzlerbros.de> * developed for Digital Devices GmbH * * based on code: * Copyright (c) 2011-2013 MaxLinear, Inc. All rights reserved * which was released under GPL V2 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef _MXL5XX_H_ #define _MXL5XX_H_ #include <linux/types.h> #include <linux/i2c.h> #include <media/dvb_frontend.h> struct mxl5xx_cfg { u8 adr; u8 type; u32 cap; u32 clk; u32 ts_clk; u8 *fw; u32 fw_len; int (*fw_read)(void *priv, u8 *buf, u32 len); void *fw_priv; }; #if IS_REACHABLE(CONFIG_DVB_MXL5XX) extern struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c, struct mxl5xx_cfg *cfg, u32 demod, u32 tuner, int (**fn_set_input)(struct dvb_frontend *, int)); #else static inline struct dvb_frontend *mxl5xx_attach(struct i2c_adapter *i2c, struct mxl5xx_cfg *cfg, u32 demod, u32 tuner, int (**fn_set_input)(struct dvb_frontend *, int)) { pr_warn("%s: driver disabled by Kconfig\n", __func__); return NULL; } #endif /* CONFIG_DVB_MXL5XX */ #endif /* _MXL5XX_H_ */