linux/drivers/media/dvb-frontends/dvb-pll.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * descriptions + helper functions for simple dvb plls.
 *
 * (c) 2004 Gerd Knorr <[email protected]> [SuSE Labs]
 */

#define pr_fmt(fmt)

#include <linux/slab.h>
#include <linux/module.h>
#include <linux/idr.h>
#include <linux/dvb/frontend.h>
#include <asm/types.h>

#include "dvb-pll.h"

#define dprintk(fmt, arg...)

struct dvb_pll_priv {};

#define DVB_PLL_MAX
static DEFINE_IDA(pll_ida);

static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC();

static unsigned int id[DVB_PLL_MAX] =;
module_param_array();
MODULE_PARM_DESC();

/* ----------------------------------------------------------- */

struct dvb_pll_desc {};

/* ----------------------------------------------------------- */
/* descriptions                                                */

static const struct dvb_pll_desc dvb_pll_thomson_dtt7579 =;

static void thomson_dtt759x_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_thomson_dtt759x =;

static void thomson_dtt7520x_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_thomson_dtt7520x =;

static const struct dvb_pll_desc dvb_pll_lg_z201 =;

static const struct dvb_pll_desc dvb_pll_unknown_1 =;

/* Infineon TUA6010XS
 * used in Thomson Cable Tuner
 */
static const struct dvb_pll_desc dvb_pll_tua6010xs =;

/* Panasonic env57h1xd5 (some Philips PLL ?) */
static const struct dvb_pll_desc dvb_pll_env57h1xd5 =;

/* Philips TDA6650/TDA6651
 * used in Panasonic ENV77H11D5
 */
static void tda665x_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_tda665x =;

/* Infineon TUA6034
 * used in LG TDTP E102P
 */
static void tua6034_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_tua6034 =;

/* ALPS TDED4
 * used in Nebula-Cards and USB boxes
 */
static void tded4_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_tded4 =;

/* ALPS TDHU2
 * used in AverTVHD MCE A180
 */
static const struct dvb_pll_desc dvb_pll_tdhu2 =;

/* Samsung TBMV30111IN / TBMV30712IN1
 * used in Air2PC ATSC - 2nd generation (nxt2002)
 */
static const struct dvb_pll_desc dvb_pll_samsung_tbmv =;

/*
 * Philips SD1878 Tuner.
 */
static const struct dvb_pll_desc dvb_pll_philips_sd1878_tda8261 =;

static void opera1_bw(struct dvb_frontend *fe, u8 *buf)
{}

static const struct dvb_pll_desc dvb_pll_opera1 =;

static void samsung_dtos403ih102a_set(struct dvb_frontend *fe, u8 *buf)
{}

/* unknown pll used in Samsung DTOS403IH102A DVB-C tuner */
static const struct dvb_pll_desc dvb_pll_samsung_dtos403ih102a =;

/* Samsung TDTC9251DH0 DVB-T NIM, as used on AirStar 2 */
static const struct dvb_pll_desc dvb_pll_samsung_tdtc9251dh0 =;

/* Samsung TBDU18132 DVB-S NIM with TSA5059 PLL, used in SkyStar2 DVB-S 2.3 */
static const struct dvb_pll_desc dvb_pll_samsung_tbdu18132 =;

/* Samsung TBMU24112 DVB-S NIM with SL1935 zero-IF tuner */
static const struct dvb_pll_desc dvb_pll_samsung_tbmu24112 =;

/* Alps TDEE4 DVB-C NIM, used on Cablestar 2 */
/* byte 4 : 1  *   *   AGD R3  R2  R1  R0
 * byte 5 : C1 *   RE  RTS BS4 BS3 BS2 BS1
 * AGD = 1, R3 R2 R1 R0 = 0 1 0 1 => byte 4 = 1**10101 = 0x95
 * Range(MHz)  C1 *  RE RTS BS4 BS3 BS2 BS1  Byte 5
 *  47 - 153   0  *  0   0   0   0   0   1   0x01
 * 153 - 430   0  *  0   0   0   0   1   0   0x02
 * 430 - 822   0  *  0   0   1   0   0   0   0x08
 * 822 - 862   1  *  0   0   1   0   0   0   0x88 */
static const struct dvb_pll_desc dvb_pll_alps_tdee4 =;

/* Infineon TUA6034 ISDB-T, used in Friio */
/* CP cur. 50uA, AGC takeover: 103dBuV, PORT3 on */
static const struct dvb_pll_desc dvb_pll_tua6034_friio =;

/* Philips TDA6651 ISDB-T, used in Earthsoft PT1 */
static const struct dvb_pll_desc dvb_pll_tda665x_earth_pt1 =;

/* ----------------------------------------------------------- */

static const struct dvb_pll_desc *pll_list[] =;

/* ----------------------------------------------------------- */
/* code                                                        */

static int dvb_pll_configure(struct dvb_frontend *fe, u8 *buf,
			     const u32 frequency)
{}

static void dvb_pll_release(struct dvb_frontend *fe)
{}

static int dvb_pll_sleep(struct dvb_frontend *fe)
{}

static int dvb_pll_set_params(struct dvb_frontend *fe)
{}

static int dvb_pll_calc_regs(struct dvb_frontend *fe,
			     u8 *buf, int buf_len)
{}

static int dvb_pll_get_frequency(struct dvb_frontend *fe, u32 *frequency)
{}

static int dvb_pll_get_bandwidth(struct dvb_frontend *fe, u32 *bandwidth)
{}

static int dvb_pll_init(struct dvb_frontend *fe)
{}

static const struct dvb_tuner_ops dvb_pll_tuner_ops =;

struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr,
				    struct i2c_adapter *i2c,
				    unsigned int pll_desc_id)
{}
EXPORT_SYMBOL_GPL();


static int
dvb_pll_probe(struct i2c_client *client)
{}

static void dvb_pll_remove(struct i2c_client *client)
{}


static const struct i2c_device_id dvb_pll_id[] =;


MODULE_DEVICE_TABLE(i2c, dvb_pll_id);

static struct i2c_driver dvb_pll_driver =;

module_i2c_driver();

MODULE_DESCRIPTION();
MODULE_AUTHOR();
MODULE_LICENSE();