/* SPDX-License-Identifier: GPL-2.0 */
/*
* The Virtual DTV test driver serves as a reference DVB driver and helps
* validate the existing APIs in the media subsystem. It can also aid
* developers working on userspace applications.
*
* Copyright (C) 2020 Daniel W. S. Almeida
*/
#ifndef VIDTV_TUNER_H
#define VIDTV_TUNER_H
#include <linux/types.h>
#include <media/dvb_frontend.h>
#define NUM_VALID_TUNER_FREQS 8
/**
* struct vidtv_tuner_config - Configuration used to init the tuner.
* @fe: A pointer to the dvb_frontend structure allocated by vidtv_demod.
* @mock_power_up_delay_msec: Simulate a power-up delay.
* @mock_tune_delay_msec: Simulate a tune delay.
* @vidtv_valid_dvb_t_freqs: The valid DVB-T frequencies to simulate.
* @vidtv_valid_dvb_c_freqs: The valid DVB-C frequencies to simulate.
* @vidtv_valid_dvb_s_freqs: The valid DVB-S frequencies to simulate.
* @max_frequency_shift_hz: The maximum frequency shift in HZ allowed when
* tuning in a channel
*
* The configuration used to init the tuner module, usually filled
* by a bridge driver. For vidtv, this is filled by vidtv_bridge before the
* tuner module is probed.
*/
struct vidtv_tuner_config {
struct dvb_frontend *fe;
u32 mock_power_up_delay_msec;
u32 mock_tune_delay_msec;
u32 vidtv_valid_dvb_t_freqs[NUM_VALID_TUNER_FREQS];
u32 vidtv_valid_dvb_c_freqs[NUM_VALID_TUNER_FREQS];
u32 vidtv_valid_dvb_s_freqs[NUM_VALID_TUNER_FREQS];
u8 max_frequency_shift_hz;
};
#endif //VIDTV_TUNER_H