nidas
v1.2-1520
|
#include <linux/delay.h>
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/cdev.h>
#include <linux/ioport.h>
#include <linux/module.h>
#include <linux/poll.h>
#include <linux/unistd.h>
#include <linux/syscalls.h>
#include <linux/version.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <asm/byteorder.h>
#include <asm/io.h>
#include <linux/uaccess.h>
#include <nidas/linux/ver_macros.h>
#include <nidas/linux/util.h>
#include <nidas/linux/irigclock.h>
#include <nidas/linux/isa_bus.h>
#include <nidas/linux/Revision.h>
#include <nidas/linux/klog.h>
#include "ncar_a2d_priv.h"
Macros | |
#define | REPO_REVISION "unknown" |
#define | BOARD_INDEX(boardptr) ((boardptr) - BoardInfo) |
#define | DEVNAME_A2D "ncar_a2d" |
Info for A/D user devices. More... | |
#define | X -1 |
#define | SHORT_START |
Functions | |
MODULE_AUTHOR ("Chris Burghart <burghart@ucar.edu>") | |
MODULE_DESCRIPTION ("NCAR A/D driver") | |
MODULE_LICENSE ("GPL") | |
MODULE_VERSION (REPO_REVISION) | |
MODULE_PARM_DESC (IoPort,"ISA port address of each board, e.g.: 0x3A0") | |
MODULE_PARM_DESC (Master,"Master A/D for the board, default=first requested channel") | |
MODULE_PARM_DESC (fifoReadFrac,"N: read 1/N of FIFO on each poll, N >= 4") | |
MODULE_PARM_DESC (dtestnum,"Test to run: 0=no test, 1=16 bit write of 0x5555/0xaaaa in 1/2 second loop") | |
MODULE_PARM_DESC (dtestchan,"Channel number for write test 0-7") | |
MODULE_PARM_DESC (dtestcnt,"Number of tests to run") | |
MODULE_PARM_DESC (a2dchans,"Active A2D channels, 0-7, separated by commas") | |
static unsigned long | CHAN_ADDR16 (struct A2DBoard *brd, int channel) |
static int | stopBoard (struct A2DBoard *brd) |
Stop data collection on the selected board. More... | |
static ssize_t | ncar_a2d_read (struct file *filp, char __user *buf, size_t count, loff_t *pos) |
User-space read on the A/D device. More... | |
static int | ncar_a2d_open (struct inode *inode, struct file *filp) |
User-space open of the A/D device. More... | |
static int | ncar_a2d_release (struct inode *inode, struct file *filp) |
User-space close of the A/D device. More... | |
static unsigned int | ncar_a2d_poll (struct file *filp, poll_table *wait) |
Support for select/poll on the user device. More... | |
static long | ncar_a2d_ioctl (struct file *filp, unsigned int cmd, unsigned long arg) |
static void | i2c_clock_hi (struct A2DBoard *brd) |
static void | i2c_clock_lo (struct A2DBoard *brd) |
static void | i2c_data_hi (struct A2DBoard *brd) |
static void | i2c_data_lo (struct A2DBoard *brd) |
static void | i2c_start_sequence (struct A2DBoard *brd) |
static void | i2c_stop_sequence (struct A2DBoard *brd) |
static int | i2c_getAck (struct A2DBoard *brd) |
static void | i2c_putNoAck (struct A2DBoard *brd) |
static void | i2c_putAck (struct A2DBoard *brd) |
static unsigned char | i2c_get_byte (struct A2DBoard *brd) |
static int | i2c_put_byte (struct A2DBoard *brd, unsigned char byte) |
static short | A2DTemp (struct A2DBoard *brd) |
Read on-board LM92 temperature sensor via i2c serial bus The signed short returned is (16 * temperature in deg C) More... | |
static int | wait7725Int (struct A2DBoard *brd, int channel, int ncoef) |
static unsigned short | AD7725Status (struct A2DBoard *brd, int channel) |
static void | AD7725StatusAll (struct A2DBoard *brd) |
static unsigned short | AD7725StatusInstrBits (unsigned short instr) |
AD7725 sets some of the bits of the previous instruction in its status register. More... | |
static int | A2DSetGain (struct A2DBoard *brd, int channel) |
static int | A2DSetMaster (struct A2DBoard *brd, int channel) |
static int | CalVoltIsValid (int volt) |
static int | CalVoltToBits (int volt) |
static void | UnSetVcal (struct A2DBoard *brd) |
static void | SetVcal (struct A2DBoard *brd) |
static void | SetCal (struct A2DBoard *brd) |
static void | SetOffset (struct A2DBoard *brd) |
static void | A2DSetSYNC (struct A2DBoard *brd) |
static void | A2DClearSYNC (struct A2DBoard *brd) |
static void | A2DEnable1PPS (struct A2DBoard *brd) |
static void | A2DClearFIFO (struct A2DBoard *brd) |
static unsigned short | A2DBoardStatus (struct A2DBoard *brd) |
Return the status from the card. More... | |
static int | getA2DFIFOLevel (struct A2DBoard *brd) |
Get the FIFO fill level: More... | |
static void | A2DStopRead (struct A2DBoard *brd, int channel) |
static void | A2DStopReadAll (struct A2DBoard *brd) |
static void | A2DAuto (struct A2DBoard *brd) |
static void | A2DNotAuto (struct A2DBoard *brd) |
static int | A2DStart (struct A2DBoard *brd, int channel, unsigned int nloop) |
static int | A2DStartAll (struct A2DBoard *brd) |
static int | A2DConfig (struct A2DBoard *brd, int channel) |
static int | A2DConfigAll (struct A2DBoard *brd) |
static int | getSerialNumber (struct A2DBoard *brd) |
static void | ppsCallback1 (void *ptr) |
static int | waitFor1PPS (struct A2DBoard *brd, irig_callback_func *ppsfunc) |
static int | A2DSetGainAndOffset (struct A2DBoard *brd) |
static int | addSampleConfig (struct A2DBoard *brd, struct nidas_a2d_sample_config *cfg) |
static void | freeFilters (struct A2DBoard *brd) |
static int | configBoard (struct A2DBoard *brd, struct nidas_a2d_config *cfg) |
int | withinRange (int volt, int gain, int offset) |
static void | do_filters (struct A2DBoard *brd, dsm_sample_time_t tt, const short *dp) |
Invoke filters. More... | |
static void | a2d_bottom_half (struct work_struct *work) |
static void | discardA2DFifo (struct A2DBoard *brd) |
static void | readA2DFifo (struct A2DBoard *brd) |
static void | ReadSampleCallback (void *ptr) |
static void | TemperatureCallback (void *ptr) |
static int | resetBoard (struct A2DBoard *brd) |
static void | resetBoardWorkFunc (struct work_struct *work) |
static int | startBoard (struct A2DBoard *brd) |
Start data collection on the selected board. More... | |
static int | test_ISA_Writes (struct A2DBoard *brd, int ioport) |
static void | ncar_a2d_cleanup (void) |
static int __init | ncar_a2d_init (void) |
module_init (ncar_a2d_init) | |
module_exit (ncar_a2d_cleanup) | |
Variables | |
static const int | WAITING_FOR_RESET = 1 |
static int | IoPort [MAX_A2D_BOARDS] = { 0x3a0, 0, 0, 0 } |
static int | Master [MAX_A2D_BOARDS] = { -1, -1, -1, -1 } |
static int | nIoPort |
static int | nMaster |
static int | dtestnum |
static int | dtestchan |
static uint | dtestcnt |
static uint | a2dchans [NUM_NCAR_A2D_CHANNELS] = { 0,1,2,3,4,5,6,7 } |
static uint | numa2ds = NUM_NCAR_A2D_CHANNELS |
static int | fifoReadFrac = 8 |
static int | NumBoards = 0 |
static struct A2DBoard * | BoardInfo = 0 |
static struct workqueue_struct * | work_queue = 0 |
static struct file_operations | ncar_a2d_fops |
static dev_t | ncar_a2d_device = MKDEV(0, 0) |
static struct cdev | ncar_a2d_cdev |
static struct class * | ncar_a2d_class |
static const unsigned long | I2CSCL = 0x2 |
static const unsigned long | I2CSDA = 0x1 |
int | GainOffsetToEnum [5][2] |
#define BOARD_INDEX | ( | boardptr | ) | ((boardptr) - BoardInfo) |
Referenced by startBoard().
#define DEVNAME_A2D "ncar_a2d" |
Info for A/D user devices.
Referenced by ncar_a2d_init().
#define REPO_REVISION "unknown" |
Referenced by ncar_a2d_init().
#define SHORT_START |
#define X -1 |
|
static |
References A2DBoard::a2d_samples, dsm_sample::data, do_filters(), A2DBoard::fifo_samples, A2DBoard::lastWakeup, A2DBoard::latencyJiffies, dsm_sample::length, NUM_NCAR_A2D_CHANNELS, A2DBoard::rwaitq_a2d, A2DBoard::sampleWorker, A2DBoard::scanDeltatMsec, and dsm_sample::timetag.
Referenced by ncar_a2d_init().
|
static |
References A2DAUTO, A2DIO_FIFO, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::FIFOCtl.
Referenced by resetBoard().
|
inlinestatic |
Return the status from the card.
The upper 10 bits of the status are the card serial number, and the lower six bits are:
0x20: PRESYNC Presync bit (NOT USED) 0x10: INV1PPS Inverted 1 PPS pulse 0x08: FIFONOTFULL FIFO not full 0x04: FIFONOTEMPTY FIFO not empty 0x02: FIFOAFAE FIFO contains < 1024 words or > 3072 words 0x01: FIFOHF FIFO half full
References A2DIO_FIFOSTAT, A2DBoard::base_addr16, and A2DBoard::cmd_addr.
Referenced by getA2DFIFOLevel(), getSerialNumber(), and ppsCallback1().
|
static |
References A2DIO_FIFO, A2DBoard::base_addr, A2DBoard::cmd_addr, FIFOCLR, and A2DBoard::FIFOCtl.
Referenced by resetBoard(), and startBoard().
|
static |
References A2DIO_FIFO, A2DSYNC, A2DSYNCCK, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::FIFOCtl.
Referenced by startBoard().
|
static |
References a2dchans, A2DCONFIGEND, A2DCRCERR, A2DDATAREQ, A2DIDERR, A2DIO_CS_CMD_RD, A2DIO_CS_CMD_WR, A2DIO_DATA, A2DSTAT_INSTR_MASK, AD7725_WRCONFIG, AD7725Status(), AD7725StatusInstrBits(), CHAN_ADDR16(), A2DBoard::cmd_addr, A2DBoard::cur_status, A2DBoard::deviceName, ncar_a2d_status::goodval, NUM_NCAR_A2D_CHANNELS, numa2ds, A2DBoard::ocfilter, and wait7725Int().
Referenced by A2DConfigAll().
|
static |
References a2dchans, A2DConfig(), and numa2ds.
Referenced by startBoard().
|
static |
References A2D1PPSEBL, A2DIO_FIFO, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::FIFOCtl.
Referenced by resetBoard().
|
static |
References A2DAUTO, A2DIO_FIFO, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::FIFOCtl.
Referenced by ncar_a2d_init(), resetBoard(), and stopBoard().
|
static |
References a2dchans, A2DIO_DATA, A2DBoard::base_addr, A2DBoard::base_addr16, A2DBoard::cmd_addr, A2DBoard::deviceName, A2DBoard::gain, NUM_NCAR_A2D_CHANNELS, numa2ds, and A2DBoard::offset.
Referenced by A2DSetGainAndOffset().
|
static |
References a2dchans, A2DIO_D2A1, A2DSetGain(), A2DBoard::cmd_addr, A2DBoard::deviceName, A2DBoard::FIFOCtl, numa2ds, A2DBoard::OffCal, and SetOffset().
Referenced by startBoard().
|
static |
References a2dchans, A2DIO_FIFOSTAT, A2DBoard::base_addr, A2DBoard::cmd_addr, A2DBoard::deviceName, NUM_NCAR_A2D_CHANNELS, and numa2ds.
Referenced by startBoard().
|
static |
References A2DIO_FIFO, A2DSYNC, A2DSYNCCK, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::FIFOCtl.
Referenced by resetBoard().
|
static |
References a2dchans, A2DIO_CS_CMD_RD, A2DIO_CS_CMD_WR, A2DSTAT_INSTR_MASK, AD7725_READDATA, AD7725StatusInstrBits(), CHAN_ADDR16(), A2DBoard::cmd_addr, A2DBoard::deviceName, dtestnum, NUM_NCAR_A2D_CHANNELS, and numa2ds.
Referenced by A2DStartAll().
|
static |
References a2dchans, A2DStart(), dtestcnt, dtestnum, and numa2ds.
Referenced by resetBoard(), and startBoard().
|
static |
References A2DIO_CS_CMD_RD, A2DIO_CS_CMD_WR, AD7725_ABORT, CHAN_ADDR16(), A2DBoard::cmd_addr, and A2DBoard::deviceName.
Referenced by A2DStopReadAll().
|
static |
References a2dchans, A2DStopRead(), and numa2ds.
Referenced by resetBoard(), startBoard(), and stopBoard().
|
static |
Read on-board LM92 temperature sensor via i2c serial bus The signed short returned is (16 * temperature in deg C)
References A2DIO_FIFO, A2DIO_I2C, A2DBoard::busy, A2DBoard::cmd_addr, i2c_get_byte(), i2c_put_byte(), i2c_putAck(), i2c_putNoAck(), i2c_start_sequence(), and i2c_stop_sequence().
Referenced by TemperatureCallback().
|
static |
References A2DIO_CS_CMD_RD, CHAN_ADDR16(), and A2DBoard::cmd_addr.
Referenced by A2DConfig(), and AD7725StatusAll().
|
static |
References a2dchans, AD7725Status(), A2DBoard::cur_status, A2DBoard::gain, ncar_a2d_status::goodval, NUM_NCAR_A2D_CHANNELS, and numa2ds.
Referenced by ncar_a2d_cleanup(), and stopBoard().
|
inlinestatic |
AD7725 sets some of the bits of the previous instruction in its status register.
For a given instruction, return the value of those status bits, which gives some indication of the success of the previous operation.
References A2DINSTREG00, A2DINSTREG01, A2DINSTREG04, A2DINSTREG05, A2DINSTREG06, A2DINSTREG11, A2DINSTREG12, A2DINSTREG13, and A2DINSTREG15.
Referenced by A2DConfig(), A2DStart(), and ncar_a2d_init().
|
static |
References a2dchans, nidas_a2d_sample_config::bipolar, A2DBoard::busy, nidas_a2d_sample_config::channels, A2DBoard::deviceName, nidas_a2d_sample_config::filterData, A2DBoard::filters, nidas_a2d_sample_config::filterType, nidas_a2d_sample_config::gain, A2DBoard::gain, get_short_filter_methods(), nidas_a2d_sample_config::nFilterData, A2DBoard::nfilters, NUM_NCAR_A2D_CHANNELS, numa2ds, nidas_a2d_sample_config::nvars, A2DBoard::offset, nidas_a2d_sample_config::rate, A2DBoard::scanRate, nidas_a2d_sample_config::sindex, and A2DBoard::totalOutputRate.
Referenced by ncar_a2d_ioctl().
|
static |
Referenced by withinRange().
|
static |
Referenced by SetVcal().
|
inlinestatic |
References A2DBoard::base_addr16.
Referenced by A2DConfig(), A2DStart(), A2DStopRead(), AD7725Status(), ncar_a2d_init(), and test_ISA_Writes().
|
static |
References A2DBoard::latencyJiffies, nidas_a2d_config::latencyUsecs, A2DBoard::scanDeltatMsec, nidas_a2d_config::scanRate, A2DBoard::scanRate, USECS_PER_MSEC, and USECS_PER_SEC.
Referenced by ncar_a2d_ioctl().
|
static |
References A2DBoard::base_addr16, and A2DBoard::nFifoValues.
Referenced by readA2DFifo().
|
static |
Invoke filters.
References A2DBoard::a2d_samples, A2DBoard::deviceName, A2DBoard::filters, A2DBoard::nfilters, NUM_NCAR_A2D_CHANNELS, SIZEOF_DSM_SAMPLE_HEADER, and A2DBoard::skippedSamples.
Referenced by a2d_bottom_half().
|
static |
References A2DBoard::filters, and A2DBoard::nfilters.
Referenced by ncar_a2d_cleanup(), and stopBoard().
|
inlinestatic |
Get the FIFO fill level:
References A2DBoardStatus(), FIFONOTEMPTY, and FIFONOTFULL.
Referenced by ReadSampleCallback(), and resetBoard().
|
static |
References A2DBoardStatus().
Referenced by ncar_a2d_init(), and nidas::dynld::isff::CSAT3_Sonic::querySonic().
|
inlinestatic |
References A2DBoard::base_addr, A2DBoard::i2c, and I2CSCL.
Referenced by i2c_get_byte(), i2c_getAck(), i2c_put_byte(), i2c_putAck(), i2c_putNoAck(), i2c_start_sequence(), and i2c_stop_sequence().
|
inlinestatic |
References A2DBoard::base_addr, A2DBoard::i2c, and I2CSCL.
Referenced by i2c_get_byte(), i2c_getAck(), i2c_put_byte(), i2c_putAck(), i2c_putNoAck(), and i2c_start_sequence().
|
inlinestatic |
References A2DBoard::base_addr, A2DBoard::i2c, and I2CSDA.
Referenced by i2c_put_byte(), i2c_putAck(), i2c_putNoAck(), i2c_start_sequence(), and i2c_stop_sequence().
|
inlinestatic |
References A2DBoard::base_addr, A2DBoard::i2c, and I2CSDA.
Referenced by i2c_put_byte(), i2c_putAck(), i2c_start_sequence(), and i2c_stop_sequence().
|
inlinestatic |
References A2DBoard::base_addr, i2c_clock_hi(), and i2c_clock_lo().
Referenced by A2DTemp().
|
inlinestatic |
References A2DBoard::base_addr, A2DBoard::deviceName, i2c_clock_hi(), and i2c_clock_lo().
Referenced by i2c_put_byte().
|
inlinestatic |
References i2c_clock_hi(), i2c_clock_lo(), i2c_data_hi(), i2c_data_lo(), and i2c_getAck().
Referenced by A2DTemp().
|
inlinestatic |
References i2c_clock_hi(), i2c_clock_lo(), i2c_data_hi(), and i2c_data_lo().
Referenced by A2DTemp().
|
inlinestatic |
References i2c_clock_hi(), i2c_clock_lo(), and i2c_data_hi().
Referenced by A2DTemp().
|
inlinestatic |
References i2c_clock_hi(), i2c_clock_lo(), i2c_data_hi(), and i2c_data_lo().
Referenced by A2DTemp().
|
inlinestatic |
References i2c_clock_hi(), i2c_data_hi(), and i2c_data_lo().
Referenced by A2DTemp().
MODULE_AUTHOR | ( | "Chris Burghart <burghart@ucar.edu>" | ) |
MODULE_DESCRIPTION | ( | "NCAR A/D driver" | ) |
module_exit | ( | ncar_a2d_cleanup | ) |
module_init | ( | ncar_a2d_init | ) |
MODULE_LICENSE | ( | "GPL" | ) |
MODULE_PARM_DESC | ( | Master | , |
"Master A/D for the | board | ||
) |
MODULE_PARM_DESC | ( | fifoReadFrac | , |
"N: read 1/N of FIFO on each | poll, | ||
N >=4" | |||
) |
MODULE_PARM_DESC | ( | dtestnum | , |
"Test to run: | 0 = no test |
||
) |
MODULE_PARM_DESC | ( | dtestchan | , |
"Channel number for write test 0-7" | |||
) |
MODULE_PARM_DESC | ( | dtestcnt | , |
"Number of tests to run" | |||
) |
MODULE_PARM_DESC | ( | a2dchans | , |
"Active A2D | channels, | ||
0- | 7, | ||
separated by commas" | |||
) |
MODULE_VERSION | ( | REPO_REVISION | ) |
|
static |
References A2DBoard::a2d_samples, A2DIOWIDTH, AD7725StatusAll(), A2DBoard::busy, A2DBoard::device, A2DBoard::fifo_samples, A2DBoard::filters, flush_irig_callbacks(), free_dsm_circ_buf(), freeFilters(), A2DBoard::ioport, A2DBoard::mutex, ncar_a2d_cdev, ncar_a2d_class, ncar_a2d_device, NumBoards, A2DBoard::ppsCallback, stopBoard(), unregister_irig_callback(), and work_queue.
Referenced by ncar_a2d_init().
|
static |
References a2d_bottom_half(), A2DBoard::a2d_samples, a2dchans, A2DCMDADDR, A2DIO_CS_CMD_RD, A2DIO_CS_CMD_WR, A2DIOWIDTH, A2DNotAuto(), A2DSTAT_INSTR_MASK, AD7725_ABORT, AD7725StatusInstrBits(), A2DBoard::base_addr, A2DBoard::base_addr16, A2DBoard::cal, CHAN_ADDR16(), A2DBoard::cmd_addr, A2DBoard::device, A2DBoard::deviceName, DEVNAME_A2D, dtestnum, err, A2DBoard::fifo_samples, fifoReadFrac, getSerialNumber(), IoPort, A2DBoard::ioport, IRIG_NUM_RATES, MAX_A2D_BOARDS, A2DBoard::mutex, ncar_a2d_cdev, ncar_a2d_class, ncar_a2d_cleanup(), ncar_a2d_device, ncar_a2d_fops, A2DBoard::nFifoValues, numa2ds, NumBoards, A2DBoard::ppsWaitQ, REPO_REVISION, resetBoardWorkFunc(), A2DBoard::resetWorker, A2DBoard::rwaitq_a2d, A2DBoard::sampleWorker, A2DBoard::ser_num, A2DBoard::tempRate, test_ISA_Writes(), UnSetVcal(), ncar_a2d_cal_config::vcal, and work_queue.
|
static |
References a2dchans, addSampleConfig(), A2DBoard::busy, A2DBoard::cal, ncar_a2d_setup::calset, ncar_a2d_cal_config::calset, configBoard(), A2DBoard::currentTemp, A2DBoard::deviceName, ncar_a2d_ocfilter_config::filter, ncar_a2d_setup::gain, A2DBoard::gain, IRIG_10_HZ, len, NCAR_A2D_GET_SETUP, NCAR_A2D_GET_STATUS, NCAR_A2D_GET_TEMP, NCAR_A2D_RUN, NCAR_A2D_SET_CAL, NCAR_A2D_SET_OCFILTER, NCAR_A2D_SET_TEMPRATE, NCAR_A2D_STOP, NIDAS_A2D_CONFIG_SAMPLE, NIDAS_A2D_GET_NCHAN, NIDAS_A2D_SET_CONFIG, NUM_NCAR_A2D_CHANNELS, numa2ds, A2DBoard::ocfilter, ncar_a2d_setup::offset, A2DBoard::offset, A2DBoard::prev_status, rate, SetCal(), SetVcal(), startBoard(), ncar_a2d_cal_config::state, stopBoard(), A2DBoard::tempRate, UnSetVcal(), ncar_a2d_setup::vcal, ncar_a2d_cal_config::vcal, and withinRange().
|
static |
User-space open of the A/D device.
References A2DBoard::deviceName, A2DBoard::gain, A2DBoard::i2c, I2CSCL, I2CSDA, IRIG_NUM_RATES, NUM_NCAR_A2D_CHANNELS, and A2DBoard::tempRate.
|
static |
Support for select/poll on the user device.
References A2DBoard::a2d_read_state, A2DBoard::a2d_samples, A2DBoard::errorState, A2DBoard::interrupted, A2DBoard::rwaitq_a2d, and WAITING_FOR_RESET.
|
static |
User-space read on the A/D device.
References A2DBoard::a2d_read_state, A2DBoard::a2d_samples, A2DBoard::errorState, if(), A2DBoard::interrupted, nidas_circbuf_read(), A2DBoard::rwaitq_a2d, and WAITING_FOR_RESET.
|
static |
User-space close of the A/D device.
References A2DBoard::deviceName, and stopBoard().
|
static |
References A2DBoardStatus(), A2DBoard::deviceName, A2DBoard::havePPS, INV1PPS, and A2DBoard::ppsWaitQ.
Referenced by resetBoard().
|
static |
References A2DIO_FIFO, A2DBoard::base_addr16, A2DBoard::cmd_addr, dsm_sample::data, A2DBoard::delaysBeforeFirstPoll, A2DBoard::deviceName, discardA2DFifo(), A2DBoard::discardNextScan, A2DBoard::fifo_samples, dsm_sample::length, A2DBoard::nFifoValues, NUM_NCAR_A2D_CHANNELS, A2DBoard::pollDeltatMsec, A2DBoard::sampleWorker, A2DBoard::skippedSamples, dsm_sample::timetag, and work_queue.
Referenced by ReadSampleCallback().
|
static |
References A2DBoard::cur_status, A2DBoard::deviceName, A2DBoard::errorState, getA2DFIFOLevel(), A2DBoard::numPollDelaysLeft, A2DBoard::pollRate, ncar_a2d_status::preFifoLevel, A2DBoard::prev_status, readA2DFifo(), A2DBoard::readCtr, ncar_a2d_status::resets, A2DBoard::resets, A2DBoard::resetWorker, A2DBoard::rwaitq_a2d, ncar_a2d_status::ser_num, A2DBoard::ser_num, ncar_a2d_status::skippedSamples, A2DBoard::skippedSamples, WAITING_FOR_RESET, and work_queue.
Referenced by resetBoard().
|
static |
References A2DBoard::a2d_samples, A2DAuto(), A2DBoard::a2dCallback, A2DClearFIFO(), A2DEnable1PPS(), A2DNotAuto(), A2DSetSYNC(), A2DStartAll(), A2DStopReadAll(), A2DBoard::busy, A2DBoard::delaysBeforeFirstPoll, A2DBoard::deviceName, A2DBoard::discardNextScan, A2DBoard::errorState, A2DBoard::fifo_samples, flush_irig_callbacks(), getA2DFIFOLevel(), A2DBoard::interrupted, IRIG_NUM_RATES, A2DBoard::irigRate, A2DBoard::numPollDelaysLeft, ppsCallback1(), A2DBoard::readCtr, ReadSampleCallback(), register_irig_callback(), A2DBoard::skippedSamples, A2DBoard::tempCallback, TemperatureCallback(), A2DBoard::tempRate, unregister_irig_callback(), waitFor1PPS(), and WAITING_FOR_RESET.
Referenced by resetBoardWorkFunc(), and startBoard().
|
static |
References A2DBoard::errorState, resetBoard(), A2DBoard::resetWorker, and A2DBoard::rwaitq_a2d.
Referenced by ncar_a2d_init().
|
static |
References a2dchans, A2DIO_SYSCTL, A2DBoard::base_addr16, A2DBoard::cal, ncar_a2d_cal_config::calset, A2DBoard::cmd_addr, A2DBoard::deviceName, numa2ds, A2DBoard::OffCal, and A2DBoard::offset.
Referenced by ncar_a2d_ioctl().
|
static |
References a2dchans, A2DIO_SYSCTL, A2DBoard::base_addr16, A2DBoard::cmd_addr, A2DBoard::deviceName, numa2ds, A2DBoard::OffCal, and A2DBoard::offset.
Referenced by A2DSetGainAndOffset().
|
static |
References A2DIO_CALV, A2DBoard::base_addr16, A2DBoard::cal, CalVoltToBits(), A2DBoard::cmd_addr, A2DBoard::deviceName, UnSetVcal(), and ncar_a2d_cal_config::vcal.
Referenced by ncar_a2d_ioctl().
|
static |
Start data collection on the selected board.
This is only called via user space initiation (i.e., through the NCAR_A2D_RUN ioctl).
References A2DBoard::a2d_read_state, A2DBoard::a2d_samples, a2dchans, A2DClearFIFO(), A2DClearSYNC(), A2DConfigAll(), A2DSetGainAndOffset(), A2DSetMaster(), A2DStartAll(), A2DStopReadAll(), BOARD_INDEX, A2DBoard::cur_status, A2DBoard::delaysBeforeFirstPoll, A2DBoard::deviceName, A2DBoard::errorState, A2DBoard::fifo_samples, fifoReadFrac, A2DBoard::gain, HWFIFODEPTH, A2DBoard::interrupted, IRIG_NUM_RATES, irigClockRateToEnum(), A2DBoard::irigRate, A2DBoard::lastWakeup, Master, A2DBoard::nFifoValues, NUM_NCAR_A2D_CHANNELS, numa2ds, A2DBoard::pollDeltatMsec, A2DBoard::pollRate, A2DBoard::prev_status, realloc_dsm_circ_buf(), resetBoard(), A2DBoard::scanDeltatMsec, A2DBoard::scanRate, A2DBoard::totalOutputRate, USECS_PER_MSEC, and USECS_PER_SEC.
Referenced by ncar_a2d_ioctl().
|
static |
Stop data collection on the selected board.
References A2DBoard::a2d_samples, A2DBoard::a2dCallback, A2DNotAuto(), A2DStopReadAll(), AD7725StatusAll(), A2DBoard::busy, A2DBoard::fifo_samples, A2DBoard::filters, flush_irig_callbacks(), free_dsm_circ_buf(), freeFilters(), A2DBoard::gain, A2DBoard::interrupted, NUM_NCAR_A2D_CHANNELS, A2DBoard::rwaitq_a2d, A2DBoard::tempCallback, A2DBoard::totalOutputRate, unregister_irig_callback(), and work_queue.
Referenced by ncar_a2d_cleanup(), ncar_a2d_ioctl(), and ncar_a2d_release().
|
static |
|
static |
References A2DIO_CS_CMD_WR, CHAN_ADDR16(), A2DBoard::cmd_addr, dtestchan, dtestcnt, and dtestnum.
Referenced by ncar_a2d_init().
|
static |
References A2DIO_CALV, A2DBoard::base_addr16, and A2DBoard::cmd_addr.
Referenced by ncar_a2d_init(), ncar_a2d_ioctl(), and SetVcal().
|
inlinestatic |
References A2DIO_SYSCTL, A2DBoard::base_addr, A2DBoard::cmd_addr, and A2DBoard::deviceName.
Referenced by A2DConfig().
|
static |
References A2DBoard::deviceName, A2DBoard::havePPS, IRIG_100_HZ, A2DBoard::mutex, A2DBoard::ppsCallback, A2DBoard::ppsWaitQ, register_irig_callback(), and unregister_irig_callback().
Referenced by resetBoard().
int withinRange | ( | int | volt, |
int | gain, | ||
int | offset | ||
) |
References CalVoltIsValid(), and GainOffsetToEnum.
Referenced by ncar_a2d_ioctl().
|
static |
|
static |
|
static |
Referenced by test_ISA_Writes().
|
static |
Referenced by A2DStartAll(), and test_ISA_Writes().
|
static |
Referenced by A2DStart(), A2DStartAll(), ncar_a2d_init(), and test_ISA_Writes().
|
static |
Referenced by ncar_a2d_init(), and startBoard().
int GainOffsetToEnum[5][2] |
|
static |
Referenced by i2c_clock_hi(), i2c_clock_lo(), and ncar_a2d_open().
|
static |
Referenced by i2c_data_hi(), i2c_data_lo(), and ncar_a2d_open().
|
static |
Referenced by ncar_a2d_init().
|
static |
Referenced by startBoard().
|
static |
Referenced by ncar_a2d_cleanup(), and ncar_a2d_init().
|
static |
Referenced by ncar_a2d_cleanup(), and ncar_a2d_init().
|
static |
Referenced by ncar_a2d_cleanup(), and ncar_a2d_init().
|
static |
Referenced by ncar_a2d_init().
|
static |
|
static |
|
static |
|
static |
Referenced by ncar_a2d_cleanup(), and ncar_a2d_init().
|
static |
Referenced by ncar_a2d_poll(), ncar_a2d_read(), ReadSampleCallback(), and resetBoard().
|
static |
Referenced by ncar_a2d_cleanup(), ncar_a2d_init(), readA2DFifo(), ReadSampleCallback(), and stopBoard().