linux/drivers/comedi/drivers/jr3_pci.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * comedi/drivers/jr3_pci.c
 * hardware driver for JR3/PCI force sensor board
 *
 * COMEDI - Linux Control and Measurement Device Interface
 * Copyright (C) 2007 Anders Blomdell <[email protected]>
 */
/*
 * Driver: jr3_pci
 * Description: JR3/PCI force sensor board
 * Author: Anders Blomdell <[email protected]>
 * Updated: Thu, 01 Nov 2012 17:34:55 +0000
 * Status: works
 * Devices: [JR3] PCI force sensor board (jr3_pci)
 *
 * Configuration options:
 *   None
 *
 * Manual configuration of comedi devices is not supported by this
 * driver; supported PCI devices are configured as comedi devices
 * automatically.
 *
 * The DSP on the board requires initialization code, which can be
 * loaded by placing it in /lib/firmware/comedi.  The initialization
 * code should be somewhere on the media you got with your card.  One
 * version is available from https://www.comedi.org in the
 * comedi_nonfree_firmware tarball.  The file is called "jr3pci.idm".
 */

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/ctype.h>
#include <linux/jiffies.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/comedi/comedi_pci.h>

#include "jr3_pci.h"

#define PCI_VENDOR_ID_JR3

enum jr3_pci_boardid {};

struct jr3_pci_board {};

static const struct jr3_pci_board jr3_pci_boards[] =;

struct jr3_pci_transform {};

struct jr3_pci_poll_delay {};

struct jr3_pci_dev_private {};

jr3_pci_single_range;

enum jr3_pci_poll_state {};

struct jr3_pci_subdev_private {};

static struct jr3_pci_poll_delay poll_delay_min_max(int min, int max)
{}

static int is_complete(struct jr3_sensor __iomem *sensor)
{}

static void set_transforms(struct jr3_sensor __iomem *sensor,
			   const struct jr3_pci_transform *transf, short num)
{}

static void use_transform(struct jr3_sensor __iomem *sensor,
			  short transf_num)
{}

static void use_offset(struct jr3_sensor __iomem *sensor, short offset_num)
{}

static void set_offset(struct jr3_sensor __iomem *sensor)
{}

struct six_axis_t {};

static void set_full_scales(struct jr3_sensor __iomem *sensor,
			    struct six_axis_t full_scale)
{}

static struct six_axis_t get_max_full_scales(struct jr3_sensor __iomem *sensor)
{}

static unsigned int jr3_pci_ai_read_chan(struct comedi_device *dev,
					 struct comedi_subdevice *s,
					 unsigned int chan)
{}

static int jr3_pci_ai_insn_read(struct comedi_device *dev,
				struct comedi_subdevice *s,
				struct comedi_insn *insn,
				unsigned int *data)
{}

static int jr3_pci_open(struct comedi_device *dev)
{}

static int read_idm_word(const u8 *data, size_t size, int *pos,
			 unsigned int *val)
{}

static int jr3_check_firmware(struct comedi_device *dev,
			      const u8 *data, size_t size)
{}

static void jr3_write_firmware(struct comedi_device *dev,
			       int subdev, const u8 *data, size_t size)
{}

static int jr3_download_firmware(struct comedi_device *dev,
				 const u8 *data, size_t size,
				 unsigned long context)
{}

static struct jr3_pci_poll_delay
jr3_pci_poll_subdevice(struct comedi_subdevice *s)
{}

static void jr3_pci_poll_dev(struct timer_list *t)
{}

static struct jr3_pci_subdev_private *
jr3_pci_alloc_spriv(struct comedi_device *dev, struct comedi_subdevice *s)
{}

static void jr3_pci_show_copyright(struct comedi_device *dev)
{}

static int jr3_pci_auto_attach(struct comedi_device *dev,
			       unsigned long context)
{}

static void jr3_pci_detach(struct comedi_device *dev)
{}

static struct comedi_driver jr3_pci_driver =;

static int jr3_pci_pci_probe(struct pci_dev *dev,
			     const struct pci_device_id *id)
{}

static const struct pci_device_id jr3_pci_pci_table[] =;
MODULE_DEVICE_TABLE(pci, jr3_pci_pci_table);

static struct pci_driver jr3_pci_pci_driver =;
module_comedi_pci_driver();

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