/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Driver for Sharp IX2505V (marked B0017) DVB-S silicon tuner
 *
 * Copyright (C) 2010 Malcolm Priestley
 */

#ifndef DVB_IX2505V_H
#define DVB_IX2505V_H

#include <linux/i2c.h>
#include <media/dvb_frontend.h>

/**
 * struct ix2505v_config - ix2505 attachment configuration
 *
 * @tuner_address: tuner address
 * @tuner_gain: Baseband AMP gain control 0/1=0dB(default) 2=-2bB 3=-4dB
 * @tuner_chargepump: Charge pump output +/- 0=120 1=260 2=555 3=1200(default)
 * @min_delay_ms: delay after tune
 * @tuner_write_only: disables reads
 */
struct ix2505v_config {
	u8 tuner_address;
	u8 tuner_gain;
	u8 tuner_chargepump;
	int min_delay_ms;
	u8 tuner_write_only;

};

#if IS_REACHABLE(CONFIG_DVB_IX2505V)
/**
 * ix2505v_attach - Attach a ix2505v tuner to the supplied frontend structure.
 *
 * @fe: Frontend to attach to.
 * @config: pointer to &struct ix2505v_config
 * @i2c: pointer to &struct i2c_adapter.
 *
 * return: FE pointer on success, NULL on failure.
 */
extern struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe,
	const struct ix2505v_config *config, struct i2c_adapter *i2c);
#else
static inline struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe,
	const struct ix2505v_config *config, struct i2c_adapter *i2c)
{
	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
	return NULL;
}
#endif

#endif /* DVB_IX2505V_H */
