linux/drivers/comedi/drivers/adv_pci1710.c

// SPDX-License-Identifier: GPL-2.0
/*
 * adv_pci1710.c
 * Comedi driver for Advantech PCI-1710 series boards
 * Author: Michal Dobes <[email protected]>
 *
 * Thanks to ZhenGang Shang <[email protected]>
 * for testing and information.
 */

/*
 * Driver: adv_pci1710
 * Description: Comedi driver for Advantech PCI-1710 series boards
 * Devices: [Advantech] PCI-1710 (adv_pci1710), PCI-1710HG, PCI-1711,
 *   PCI-1713, PCI-1731
 * Author: Michal Dobes <[email protected]>
 * Updated: Fri, 29 Oct 2015 17:19:35 -0700
 * Status: works
 *
 * Configuration options: not applicable, uses PCI auto config
 *
 * This driver supports AI, AO, DI and DO subdevices.
 * AI subdevice supports cmd and insn interface,
 * other subdevices support only insn interface.
 *
 * The PCI-1710 and PCI-1710HG have the same PCI device ID, so the
 * driver cannot distinguish between them, as would be normal for a
 * PCI driver.
 */

#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/comedi/comedi_pci.h>
#include <linux/comedi/comedi_8254.h>

#include "amcc_s5933.h"

/*
 * PCI BAR2 Register map (dev->iobase)
 */
#define PCI171X_AD_DATA_REG
#define PCI171X_SOFTTRG_REG
#define PCI171X_RANGE_REG
#define PCI171X_RANGE_DIFF
#define PCI171X_RANGE_UNI
#define PCI171X_RANGE_GAIN(x)
#define PCI171X_MUX_REG
#define PCI171X_MUX_CHANH(x)
#define PCI171X_MUX_CHANL(x)
#define PCI171X_MUX_CHAN(x)
#define PCI171X_STATUS_REG
#define PCI171X_STATUS_IRQ
#define PCI171X_STATUS_FF
#define PCI171X_STATUS_FH
#define PCI171X_STATUS_FE
#define PCI171X_CTRL_REG
#define PCI171X_CTRL_CNT0
#define PCI171X_CTRL_ONEFH
#define PCI171X_CTRL_IRQEN
#define PCI171X_CTRL_GATE
#define PCI171X_CTRL_EXT
#define PCI171X_CTRL_PACER
#define PCI171X_CTRL_SW
#define PCI171X_CLRINT_REG
#define PCI171X_CLRFIFO_REG
#define PCI171X_DA_REG(x)
#define PCI171X_DAREF_REG
#define PCI171X_DAREF(c, r)
#define PCI171X_DAREF_MASK(c)
#define PCI171X_DI_REG
#define PCI171X_DO_REG
#define PCI171X_TIMER_BASE

static const struct comedi_lrange pci1710_ai_range =;

static const struct comedi_lrange pci1710hg_ai_range =;

static const struct comedi_lrange pci1711_ai_range =;

static const struct comedi_lrange pci171x_ao_range =;

enum pci1710_boardid {};

struct boardtype {};

static const struct boardtype boardtypes[] =;

struct pci1710_private {};

static int pci1710_ai_check_chanlist(struct comedi_device *dev,
				     struct comedi_subdevice *s,
				     struct comedi_cmd *cmd)
{}

static void pci1710_ai_setup_chanlist(struct comedi_device *dev,
				      struct comedi_subdevice *s,
				      unsigned int *chanlist,
				      unsigned int n_chan,
				      unsigned int seglen)
{}

static int pci1710_ai_eoc(struct comedi_device *dev,
			  struct comedi_subdevice *s,
			  struct comedi_insn *insn,
			  unsigned long context)
{}

static int pci1710_ai_read_sample(struct comedi_device *dev,
				  struct comedi_subdevice *s,
				  unsigned int cur_chan,
				  unsigned short *val)
{}

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

static int pci1710_ai_cancel(struct comedi_device *dev,
			     struct comedi_subdevice *s)
{}

static void pci1710_handle_every_sample(struct comedi_device *dev,
					struct comedi_subdevice *s)
{}

static void pci1710_handle_fifo(struct comedi_device *dev,
				struct comedi_subdevice *s)
{}

static irqreturn_t pci1710_irq_handler(int irq, void *d)
{}

static int pci1710_ai_cmd(struct comedi_device *dev, struct comedi_subdevice *s)
{}

static int pci1710_ai_cmdtest(struct comedi_device *dev,
			      struct comedi_subdevice *s,
			      struct comedi_cmd *cmd)
{}

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

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

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

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

static void pci1710_reset(struct comedi_device *dev)
{}

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

static struct comedi_driver adv_pci1710_driver =;

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

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

static struct pci_driver adv_pci1710_pci_driver =;
module_comedi_pci_driver();

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