linux/drivers/comedi/drivers/das6402.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * das6402.c
 * Comedi driver for DAS6402 compatible boards
 * Copyright(c) 2014 H Hartley Sweeten <[email protected]>
 *
 * Rewrite of an experimental driver by:
 * Copyright (C) 1999 Oystein Svendsen <[email protected]>
 */

/*
 * Driver: das6402
 * Description: Keithley Metrabyte DAS6402 (& compatibles)
 * Devices: [Keithley Metrabyte] DAS6402-12 (das6402-12),
 *   DAS6402-16 (das6402-16)
 * Author: H Hartley Sweeten <[email protected]>
 * Updated: Fri, 14 Mar 2014 10:18:43 -0700
 * Status: unknown
 *
 * Configuration Options:
 *   [0] - I/O base address
 *   [1] - IRQ (optional, needed for async command support)
 */

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

/*
 * Register I/O map
 */
#define DAS6402_AI_DATA_REG
#define DAS6402_AI_MUX_REG
#define DAS6402_AI_MUX_LO(x)
#define DAS6402_AI_MUX_HI(x)
#define DAS6402_DI_DO_REG
#define DAS6402_AO_DATA_REG(x)
#define DAS6402_AO_LSB_REG(x)
#define DAS6402_AO_MSB_REG(x)
#define DAS6402_STATUS_REG
#define DAS6402_STATUS_FFNE
#define DAS6402_STATUS_FHALF
#define DAS6402_STATUS_FFULL
#define DAS6402_STATUS_XINT
#define DAS6402_STATUS_INT
#define DAS6402_STATUS_XTRIG
#define DAS6402_STATUS_INDGT
#define DAS6402_STATUS_10MHZ
#define DAS6402_STATUS_W_CLRINT
#define DAS6402_STATUS_W_CLRXTR
#define DAS6402_STATUS_W_CLRXIN
#define DAS6402_STATUS_W_EXTEND
#define DAS6402_STATUS_W_ARMED
#define DAS6402_STATUS_W_POSTMODE
#define DAS6402_STATUS_W_10MHZ
#define DAS6402_CTRL_REG
#define DAS6402_CTRL_TRIG(x)
#define DAS6402_CTRL_SOFT_TRIG
#define DAS6402_CTRL_EXT_FALL_TRIG
#define DAS6402_CTRL_EXT_RISE_TRIG
#define DAS6402_CTRL_PACER_TRIG
#define DAS6402_CTRL_BURSTEN
#define DAS6402_CTRL_XINTE
#define DAS6402_CTRL_IRQ(x)
#define DAS6402_CTRL_INTE
#define DAS6402_TRIG_REG
#define DAS6402_TRIG_TGEN
#define DAS6402_TRIG_TGSEL
#define DAS6402_TRIG_TGPOL
#define DAS6402_TRIG_PRETRIG
#define DAS6402_AO_RANGE(_chan, _range)
#define DAS6402_AO_RANGE_MASK(_chan)
#define DAS6402_MODE_REG
#define DAS6402_MODE_RANGE(x)
#define DAS6402_MODE_POLLED
#define DAS6402_MODE_FIFONEPTY
#define DAS6402_MODE_FIFOHFULL
#define DAS6402_MODE_EOB
#define DAS6402_MODE_ENHANCED
#define DAS6402_MODE_SE
#define DAS6402_MODE_UNI
#define DAS6402_MODE_DMA(x)
#define DAS6402_MODE_DMA1
#define DAS6402_MODE_DMA3
#define DAS6402_TIMER_BASE

static const struct comedi_lrange das6402_ai_ranges =;

/*
 * Analog output ranges are programmable on the DAS6402/12.
 * For the DAS6402/16 the range bits have no function, the
 * DAC ranges are selected by switches on the board.
 */
static const struct comedi_lrange das6402_ao_ranges =;

struct das6402_boardinfo {};

static struct das6402_boardinfo das6402_boards[] =;

struct das6402_private {};

static void das6402_set_mode(struct comedi_device *dev,
			     unsigned int mode)
{}

static void das6402_set_extended(struct comedi_device *dev,
				 unsigned int val)
{}

static void das6402_clear_all_interrupts(struct comedi_device *dev)
{}

static void das6402_ai_clear_eoc(struct comedi_device *dev)
{}

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

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

static void das6402_ai_set_mode(struct comedi_device *dev,
				struct comedi_subdevice *s,
				unsigned int chanspec,
				unsigned int mode)
{}

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

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

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

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

static void das6402_ai_soft_trig(struct comedi_device *dev)
{}

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

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

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

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

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

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

static void das6402_reset(struct comedi_device *dev)
{}

static int das6402_attach(struct comedi_device *dev,
			  struct comedi_devconfig *it)
{}

static struct comedi_driver das6402_driver =;
module_comedi_driver()

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