linux/drivers/media/radio/radio-sf16fmi.c

// SPDX-License-Identifier: GPL-2.0-only
/* SF16-FMI, SF16-FMP and SF16-FMD radio driver for Linux radio support
 * heavily based on rtrack driver...
 * (c) 1997 M. Kirkwood
 * (c) 1998 Petr Vandrovec, [email protected]
 *
 * Fitted to new interface by Alan Cox <[email protected]>
 * Made working and cleaned up functions <[email protected]>
 * Support for ISAPnP by Ladislav Michl <[email protected]>
 *
 * Notes on the hardware
 *
 *  Frequency control is done digitally -- ie out(port,encodefreq(95.8));
 *  No volume control - only mute/unmute - you have to use line volume
 *  control on SB-part of SF16-FMI/SF16-FMP/SF16-FMD
 *
 * Converted to V4L2 API by Mauro Carvalho Chehab <[email protected]>
 */

#include <linux/kernel.h>	/* __setup			*/
#include <linux/module.h>	/* Modules			*/
#include <linux/init.h>		/* Initdata			*/
#include <linux/ioport.h>	/* request_region		*/
#include <linux/delay.h>	/* udelay			*/
#include <linux/isapnp.h>
#include <linux/mutex.h>
#include <linux/videodev2.h>	/* kernel radio structs		*/
#include <linux/io.h>		/* outb, outb_p			*/
#include <media/v4l2-device.h>
#include <media/v4l2-ioctl.h>
#include <media/v4l2-ctrls.h>
#include <media/v4l2-event.h>
#include "lm7000.h"

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

static int io =;
static int radio_nr =;

module_param(io, int, 0);
MODULE_PARM_DESC();
module_param(radio_nr, int, 0);

struct fmi
{};

static struct fmi fmi_card;
static struct pnp_dev *dev;
static bool pnp_attached;

#define RSF16_MINFREQ
#define RSF16_MAXFREQ

#define FMI_BIT_TUN_CE
#define FMI_BIT_TUN_CLK
#define FMI_BIT_TUN_DATA
#define FMI_BIT_VOL_SW
#define FMI_BIT_TUN_STRQ

static void fmi_set_pins(void *handle, u8 pins)
{}

static inline void fmi_mute(struct fmi *fmi)
{}

static inline void fmi_unmute(struct fmi *fmi)
{}

static inline int fmi_getsigstr(struct fmi *fmi)
{}

static void fmi_set_freq(struct fmi *fmi)
{}

static int vidioc_querycap(struct file *file, void  *priv,
					struct v4l2_capability *v)
{}

static int vidioc_g_tuner(struct file *file, void *priv,
					struct v4l2_tuner *v)
{}

static int vidioc_s_tuner(struct file *file, void *priv,
					const struct v4l2_tuner *v)
{}

static int vidioc_s_frequency(struct file *file, void *priv,
					const struct v4l2_frequency *f)
{}

static int vidioc_g_frequency(struct file *file, void *priv,
					struct v4l2_frequency *f)
{}

static int fmi_s_ctrl(struct v4l2_ctrl *ctrl)
{}

static const struct v4l2_ctrl_ops fmi_ctrl_ops =;

static const struct v4l2_file_operations fmi_fops =;

static const struct v4l2_ioctl_ops fmi_ioctl_ops =;

/* ladis: this is my card. does any other types exist? */
static struct isapnp_device_id id_table[] =;

MODULE_DEVICE_TABLE(isapnp, id_table);

static int __init isapnp_fmi_probe(void)
{}

static int __init fmi_init(void)
{}

static void __exit fmi_exit(void)
{}

module_init();
module_exit(fmi_exit);