linux/drivers/comedi/drivers/mpc624.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * mpc624.c
 * Hardware driver for a Micro/sys inc. MPC-624 PC/104 board
 *
 * COMEDI - Linux Control and Measurement Device Interface
 * Copyright (C) 2000 David A. Schleef <[email protected]>
 */

/*
 * Driver: mpc624
 * Description: Micro/sys MPC-624 PC/104 board
 * Devices: [Micro/sys] MPC-624 (mpc624)
 * Author: Stanislaw Raczynski <[email protected]>
 * Updated: Thu, 15 Sep 2005 12:01:18 +0200
 * Status: working
 *
 * The Micro/sys MPC-624 board is based on the LTC2440 24-bit sigma-delta
 * ADC chip.
 *
 * Subdevices supported by the driver:
 * - Analog In:   supported
 * - Digital I/O: not supported
 * - LEDs:        not supported
 * - EEPROM:      not supported
 *
 * Configuration Options:
 *   [0] - I/O base address
 *   [1] - conversion rate
 *	   Conversion rate   RMS noise	Effective Number Of Bits
 *	   0	3.52kHz		23uV		17
 *	   1	1.76kHz		3.5uV		20
 *	   2	880Hz		2uV		21.3
 *	   3	440Hz		1.4uV		21.8
 *	   4	220Hz		1uV		22.4
 *	   5	110Hz		750uV		22.9
 *	   6	55Hz		510nV		23.4
 *	   7	27.5Hz		375nV		24
 *	   8	13.75Hz		250nV		24.4
 *	   9	6.875Hz		200nV		24.6
 *   [2] - voltage range
 *	   0	-1.01V .. +1.01V
 *	   1	-10.1V .. +10.1V
 */

#include <linux/module.h>
#include <linux/comedi/comedidev.h>
#include <linux/delay.h>

/* Offsets of different ports */
#define MPC624_MASTER_CONTROL
#define MPC624_GNMUXCH
#define MPC624_ADC
#define MPC624_EE
#define MPC624_LEDS
#define MPC624_DIO
#define MPC624_IRQ_MASK

/* Register bits' names */
#define MPC624_ADBUSY
#define MPC624_ADSDO
#define MPC624_ADFO
#define MPC624_ADCS
#define MPC624_ADSCK
#define MPC624_ADSDI

/* 32-bit output value bits' names */
#define MPC624_EOC_BIT
#define MPC624_DMY_BIT
#define MPC624_SGN_BIT

/* SDI Speed/Resolution Programming bits */
#define MPC624_OSR(x)
#define MPC624_SPEED_3_52_KHZ
#define MPC624_SPEED_1_76_KHZ
#define MPC624_SPEED_880_HZ
#define MPC624_SPEED_440_HZ
#define MPC624_SPEED_220_HZ
#define MPC624_SPEED_110_HZ
#define MPC624_SPEED_55_HZ
#define MPC624_SPEED_27_5_HZ
#define MPC624_SPEED_13_75_HZ
#define MPC624_SPEED_6_875_HZ

struct mpc624_private {};

/* -------------------------------------------------------------------------- */
static const struct comedi_lrange range_mpc624_bipolar1 =;

static const struct comedi_lrange range_mpc624_bipolar10 =;

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

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

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

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

static struct comedi_driver mpc624_driver =;
module_comedi_driver();

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