|
@@ -118,8 +118,8 @@ static DEFINE_PCI_DEVICE_TABLE(s626_pci_table) = {
|
|
|
|
|
|
MODULE_DEVICE_TABLE(pci, s626_pci_table);
|
|
|
|
|
|
-static int s626_attach(comedi_device * dev, comedi_devconfig * it);
|
|
|
-static int s626_detach(comedi_device * dev);
|
|
|
+static int s626_attach(comedi_device *dev, comedi_devconfig *it);
|
|
|
+static int s626_detach(comedi_device *dev);
|
|
|
|
|
|
static comedi_driver driver_s626 = {
|
|
|
driver_name:"s626",
|
|
@@ -222,36 +222,36 @@ static dio_private *dio_private_word[]={
|
|
|
COMEDI_PCI_INITCLEANUP_NOMODULE(driver_s626, s626_pci_table);
|
|
|
|
|
|
/* ioctl routines */
|
|
|
-static int s626_ai_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
+static int s626_ai_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
/* static int s626_ai_rinsn(comedi_device *dev,comedi_subdevice *s,comedi_insn *insn,lsampl_t *data); */
|
|
|
-static int s626_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_ai_cmd(comedi_device * dev, comedi_subdevice * s);
|
|
|
-static int s626_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_cmd * cmd);
|
|
|
-static int s626_ai_cancel(comedi_device * dev, comedi_subdevice * s);
|
|
|
-static int s626_ao_winsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_ao_rinsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_dio_set_irq(comedi_device * dev, unsigned int chan);
|
|
|
-static int s626_dio_reset_irq(comedi_device * dev, unsigned int gruop,
|
|
|
+static int s626_ai_insn_read(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_ai_cmd(comedi_device *dev, comedi_subdevice *s);
|
|
|
+static int s626_ai_cmdtest(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_cmd *cmd);
|
|
|
+static int s626_ai_cancel(comedi_device *dev, comedi_subdevice *s);
|
|
|
+static int s626_ao_winsn(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_ao_rinsn(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_dio_insn_bits(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_dio_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_dio_set_irq(comedi_device *dev, unsigned int chan);
|
|
|
+static int s626_dio_reset_irq(comedi_device *dev, unsigned int gruop,
|
|
|
unsigned int mask);
|
|
|
-static int s626_dio_clear_irq(comedi_device * dev);
|
|
|
-static int s626_enc_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_enc_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
-static int s626_enc_insn_write(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data);
|
|
|
+static int s626_dio_clear_irq(comedi_device *dev);
|
|
|
+static int s626_enc_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_enc_insn_read(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
+static int s626_enc_insn_write(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data);
|
|
|
static int s626_ns_to_timer(int *nanosec, int round_mode);
|
|
|
-static int s626_ai_load_polllist(uint8_t * ppl, comedi_cmd * cmd);
|
|
|
-static int s626_ai_inttrig(comedi_device * dev, comedi_subdevice * s,
|
|
|
+static int s626_ai_load_polllist(uint8_t *ppl, comedi_cmd *cmd);
|
|
|
+static int s626_ai_inttrig(comedi_device *dev, comedi_subdevice *s,
|
|
|
unsigned int trignum);
|
|
|
static irqreturn_t s626_irq_handler(int irq, void *d PT_REGS_ARG);
|
|
|
static lsampl_t s626_ai_reg_to_uint(int data);
|
|
@@ -260,36 +260,36 @@ static lsampl_t s626_ai_reg_to_uint(int data);
|
|
|
/* end ioctl routines */
|
|
|
|
|
|
/* internal routines */
|
|
|
-static void s626_dio_init(comedi_device * dev);
|
|
|
-static void ResetADC(comedi_device * dev, uint8_t * ppl);
|
|
|
-static void LoadTrimDACs(comedi_device * dev);
|
|
|
-static void WriteTrimDAC(comedi_device * dev, uint8_t LogicalChan,
|
|
|
+static void s626_dio_init(comedi_device *dev);
|
|
|
+static void ResetADC(comedi_device *dev, uint8_t *ppl);
|
|
|
+static void LoadTrimDACs(comedi_device *dev);
|
|
|
+static void WriteTrimDAC(comedi_device *dev, uint8_t LogicalChan,
|
|
|
uint8_t DacData);
|
|
|
-static uint8_t I2Cread(comedi_device * dev, uint8_t addr);
|
|
|
-static uint32_t I2Chandshake(comedi_device * dev, uint32_t val);
|
|
|
-static void SetDAC(comedi_device * dev, uint16_t chan, short dacdata);
|
|
|
-static void SendDAC(comedi_device * dev, uint32_t val);
|
|
|
-static void WriteMISC2(comedi_device * dev, uint16_t NewImage);
|
|
|
-static void DEBItransfer(comedi_device * dev);
|
|
|
-static uint16_t DEBIread(comedi_device * dev, uint16_t addr);
|
|
|
-static void DEBIwrite(comedi_device * dev, uint16_t addr, uint16_t wdata);
|
|
|
-static void DEBIreplace(comedi_device * dev, uint16_t addr, uint16_t mask,
|
|
|
+static uint8_t I2Cread(comedi_device *dev, uint8_t addr);
|
|
|
+static uint32_t I2Chandshake(comedi_device *dev, uint32_t val);
|
|
|
+static void SetDAC(comedi_device *dev, uint16_t chan, short dacdata);
|
|
|
+static void SendDAC(comedi_device *dev, uint32_t val);
|
|
|
+static void WriteMISC2(comedi_device *dev, uint16_t NewImage);
|
|
|
+static void DEBItransfer(comedi_device *dev);
|
|
|
+static uint16_t DEBIread(comedi_device *dev, uint16_t addr);
|
|
|
+static void DEBIwrite(comedi_device *dev, uint16_t addr, uint16_t wdata);
|
|
|
+static void DEBIreplace(comedi_device *dev, uint16_t addr, uint16_t mask,
|
|
|
uint16_t wdata);
|
|
|
-static void CloseDMAB(comedi_device * dev, DMABUF * pdma, size_t bsize);
|
|
|
+static void CloseDMAB(comedi_device *dev, DMABUF *pdma, size_t bsize);
|
|
|
|
|
|
/* COUNTER OBJECT ------------------------------------------------ */
|
|
|
typedef struct enc_private_struct {
|
|
|
/* Pointers to functions that differ for A and B counters: */
|
|
|
- uint16_t(*GetEnable) (comedi_device * dev, struct enc_private_struct *); /* Return clock enable. */
|
|
|
- uint16_t(*GetIntSrc) (comedi_device * dev, struct enc_private_struct *); /* Return interrupt source. */
|
|
|
- uint16_t(*GetLoadTrig) (comedi_device * dev, struct enc_private_struct *); /* Return preload trigger source. */
|
|
|
- uint16_t(*GetMode) (comedi_device * dev, struct enc_private_struct *); /* Return standardized operating mode. */
|
|
|
- void (*PulseIndex) (comedi_device * dev, struct enc_private_struct *); /* Generate soft index strobe. */
|
|
|
- void (*SetEnable) (comedi_device * dev, struct enc_private_struct *, uint16_t enab); /* Program clock enable. */
|
|
|
- void (*SetIntSrc) (comedi_device * dev, struct enc_private_struct *, uint16_t IntSource); /* Program interrupt source. */
|
|
|
- void (*SetLoadTrig) (comedi_device * dev, struct enc_private_struct *, uint16_t Trig); /* Program preload trigger source. */
|
|
|
- void (*SetMode) (comedi_device * dev, struct enc_private_struct *, uint16_t Setup, uint16_t DisableIntSrc); /* Program standardized operating mode. */
|
|
|
- void (*ResetCapFlags) (comedi_device * dev, struct enc_private_struct *); /* Reset event capture flags. */
|
|
|
+ uint16_t(*GetEnable) (comedi_device *dev, struct enc_private_struct *); /* Return clock enable. */
|
|
|
+ uint16_t(*GetIntSrc) (comedi_device *dev, struct enc_private_struct *); /* Return interrupt source. */
|
|
|
+ uint16_t(*GetLoadTrig) (comedi_device *dev, struct enc_private_struct *); /* Return preload trigger source. */
|
|
|
+ uint16_t(*GetMode) (comedi_device *dev, struct enc_private_struct *); /* Return standardized operating mode. */
|
|
|
+ void (*PulseIndex) (comedi_device *dev, struct enc_private_struct *); /* Generate soft index strobe. */
|
|
|
+ void (*SetEnable) (comedi_device *dev, struct enc_private_struct *, uint16_t enab); /* Program clock enable. */
|
|
|
+ void (*SetIntSrc) (comedi_device *dev, struct enc_private_struct *, uint16_t IntSource); /* Program interrupt source. */
|
|
|
+ void (*SetLoadTrig) (comedi_device *dev, struct enc_private_struct *, uint16_t Trig); /* Program preload trigger source. */
|
|
|
+ void (*SetMode) (comedi_device *dev, struct enc_private_struct *, uint16_t Setup, uint16_t DisableIntSrc); /* Program standardized operating mode. */
|
|
|
+ void (*ResetCapFlags) (comedi_device *dev, struct enc_private_struct *); /* Reset event capture flags. */
|
|
|
|
|
|
uint16_t MyCRA; /* Address of CRA register. */
|
|
|
uint16_t MyCRB; /* Address of CRB register. */
|
|
@@ -301,33 +301,33 @@ typedef struct enc_private_struct {
|
|
|
#define encpriv ((enc_private *)(dev->subdevices+5)->private)
|
|
|
|
|
|
/* counters routines */
|
|
|
-static void s626_timer_load(comedi_device * dev, enc_private * k, int tick);
|
|
|
-static uint32_t ReadLatch(comedi_device * dev, enc_private * k);
|
|
|
-static void ResetCapFlags_A(comedi_device * dev, enc_private * k);
|
|
|
-static void ResetCapFlags_B(comedi_device * dev, enc_private * k);
|
|
|
-static uint16_t GetMode_A(comedi_device * dev, enc_private * k);
|
|
|
-static uint16_t GetMode_B(comedi_device * dev, enc_private * k);
|
|
|
-static void SetMode_A(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
+static void s626_timer_load(comedi_device *dev, enc_private *k, int tick);
|
|
|
+static uint32_t ReadLatch(comedi_device *dev, enc_private *k);
|
|
|
+static void ResetCapFlags_A(comedi_device *dev, enc_private *k);
|
|
|
+static void ResetCapFlags_B(comedi_device *dev, enc_private *k);
|
|
|
+static uint16_t GetMode_A(comedi_device *dev, enc_private *k);
|
|
|
+static uint16_t GetMode_B(comedi_device *dev, enc_private *k);
|
|
|
+static void SetMode_A(comedi_device *dev, enc_private *k, uint16_t Setup,
|
|
|
uint16_t DisableIntSrc);
|
|
|
-static void SetMode_B(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
+static void SetMode_B(comedi_device *dev, enc_private *k, uint16_t Setup,
|
|
|
uint16_t DisableIntSrc);
|
|
|
-static void SetEnable_A(comedi_device * dev, enc_private * k, uint16_t enab);
|
|
|
-static void SetEnable_B(comedi_device * dev, enc_private * k, uint16_t enab);
|
|
|
-static uint16_t GetEnable_A(comedi_device * dev, enc_private * k);
|
|
|
-static uint16_t GetEnable_B(comedi_device * dev, enc_private * k);
|
|
|
-static void SetLatchSource(comedi_device * dev, enc_private * k,
|
|
|
+static void SetEnable_A(comedi_device *dev, enc_private *k, uint16_t enab);
|
|
|
+static void SetEnable_B(comedi_device *dev, enc_private *k, uint16_t enab);
|
|
|
+static uint16_t GetEnable_A(comedi_device *dev, enc_private *k);
|
|
|
+static uint16_t GetEnable_B(comedi_device *dev, enc_private *k);
|
|
|
+static void SetLatchSource(comedi_device *dev, enc_private *k,
|
|
|
uint16_t value);
|
|
|
/* static uint16_t GetLatchSource(comedi_device *dev, enc_private *k ); */
|
|
|
-static void SetLoadTrig_A(comedi_device * dev, enc_private * k, uint16_t Trig);
|
|
|
-static void SetLoadTrig_B(comedi_device * dev, enc_private * k, uint16_t Trig);
|
|
|
-static uint16_t GetLoadTrig_A(comedi_device * dev, enc_private * k);
|
|
|
-static uint16_t GetLoadTrig_B(comedi_device * dev, enc_private * k);
|
|
|
-static void SetIntSrc_B(comedi_device * dev, enc_private * k,
|
|
|
+static void SetLoadTrig_A(comedi_device *dev, enc_private *k, uint16_t Trig);
|
|
|
+static void SetLoadTrig_B(comedi_device *dev, enc_private *k, uint16_t Trig);
|
|
|
+static uint16_t GetLoadTrig_A(comedi_device *dev, enc_private *k);
|
|
|
+static uint16_t GetLoadTrig_B(comedi_device *dev, enc_private *k);
|
|
|
+static void SetIntSrc_B(comedi_device *dev, enc_private *k,
|
|
|
uint16_t IntSource);
|
|
|
-static void SetIntSrc_A(comedi_device * dev, enc_private * k,
|
|
|
+static void SetIntSrc_A(comedi_device *dev, enc_private *k,
|
|
|
uint16_t IntSource);
|
|
|
-static uint16_t GetIntSrc_A(comedi_device * dev, enc_private * k);
|
|
|
-static uint16_t GetIntSrc_B(comedi_device * dev, enc_private * k);
|
|
|
+static uint16_t GetIntSrc_A(comedi_device *dev, enc_private *k);
|
|
|
+static uint16_t GetIntSrc_B(comedi_device *dev, enc_private *k);
|
|
|
/* static void SetClkMult(comedi_device *dev, enc_private *k, uint16_t value ) ; */
|
|
|
/* static uint16_t GetClkMult(comedi_device *dev, enc_private *k ) ; */
|
|
|
/* static void SetIndexPol(comedi_device *dev, enc_private *k, uint16_t value ); */
|
|
@@ -336,10 +336,10 @@ static uint16_t GetIntSrc_B(comedi_device * dev, enc_private * k);
|
|
|
/* static uint16_t GetClkSrc( comedi_device *dev,enc_private *k ); */
|
|
|
/* static void SetIndexSrc( comedi_device *dev,enc_private *k, uint16_t value ); */
|
|
|
/* static uint16_t GetIndexSrc( comedi_device *dev,enc_private *k ); */
|
|
|
-static void PulseIndex_A(comedi_device * dev, enc_private * k);
|
|
|
-static void PulseIndex_B(comedi_device * dev, enc_private * k);
|
|
|
-static void Preload(comedi_device * dev, enc_private * k, uint32_t value);
|
|
|
-static void CountersInit(comedi_device * dev);
|
|
|
+static void PulseIndex_A(comedi_device *dev, enc_private *k);
|
|
|
+static void PulseIndex_B(comedi_device *dev, enc_private *k);
|
|
|
+static void Preload(comedi_device *dev, enc_private *k, uint32_t value);
|
|
|
+static void CountersInit(comedi_device *dev);
|
|
|
/* end internal routines */
|
|
|
|
|
|
/* Counter objects constructor. */
|
|
@@ -485,7 +485,7 @@ static const comedi_lrange s626_range_table = { 2, {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
-static int s626_attach(comedi_device * dev, comedi_devconfig * it)
|
|
|
+static int s626_attach(comedi_device *dev, comedi_devconfig *it)
|
|
|
{
|
|
|
/* uint8_t PollList; */
|
|
|
/* uint16_t AdcData; */
|
|
@@ -1261,7 +1261,7 @@ static irqreturn_t s626_irq_handler(int irq, void *d PT_REGS_ARG)
|
|
|
return IRQ_HANDLED;
|
|
|
}
|
|
|
|
|
|
-static int s626_detach(comedi_device * dev)
|
|
|
+static int s626_detach(comedi_device *dev)
|
|
|
{
|
|
|
if (devpriv) {
|
|
|
/* stop ai_command */
|
|
@@ -1307,7 +1307,7 @@ static int s626_detach(comedi_device * dev)
|
|
|
/*
|
|
|
* this functions build the RPS program for hardware driven acquistion
|
|
|
*/
|
|
|
-void ResetADC(comedi_device * dev, uint8_t * ppl)
|
|
|
+void ResetADC(comedi_device *dev, uint8_t *ppl)
|
|
|
{
|
|
|
register uint32_t *pRPS;
|
|
|
uint32_t JmpAdrs;
|
|
@@ -1499,8 +1499,8 @@ void ResetADC(comedi_device * dev, uint8_t * ppl)
|
|
|
}
|
|
|
|
|
|
/* TO COMPLETE, IF NECESSARY */
|
|
|
-static int s626_ai_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_ai_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
return -EINVAL;
|
|
@@ -1536,8 +1536,8 @@ static int s626_ai_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
/* return i; */
|
|
|
/* } */
|
|
|
|
|
|
-static int s626_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_ai_insn_read(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
uint16_t chan = CR_CHAN(insn->chanspec);
|
|
|
uint16_t range = CR_RANGE(insn->chanspec);
|
|
@@ -1632,7 +1632,7 @@ static int s626_ai_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
return n;
|
|
|
}
|
|
|
|
|
|
-static int s626_ai_load_polllist(uint8_t * ppl, comedi_cmd * cmd)
|
|
|
+static int s626_ai_load_polllist(uint8_t *ppl, comedi_cmd *cmd)
|
|
|
{
|
|
|
|
|
|
int n;
|
|
@@ -1648,7 +1648,7 @@ static int s626_ai_load_polllist(uint8_t * ppl, comedi_cmd * cmd)
|
|
|
return n;
|
|
|
}
|
|
|
|
|
|
-static int s626_ai_inttrig(comedi_device * dev, comedi_subdevice * s,
|
|
|
+static int s626_ai_inttrig(comedi_device *dev, comedi_subdevice *s,
|
|
|
unsigned int trignum)
|
|
|
{
|
|
|
if (trignum != 0)
|
|
@@ -1667,7 +1667,7 @@ static int s626_ai_inttrig(comedi_device * dev, comedi_subdevice * s,
|
|
|
}
|
|
|
|
|
|
/* TO COMPLETE */
|
|
|
-static int s626_ai_cmd(comedi_device * dev, comedi_subdevice * s)
|
|
|
+static int s626_ai_cmd(comedi_device *dev, comedi_subdevice *s)
|
|
|
{
|
|
|
|
|
|
uint8_t ppl[16];
|
|
@@ -1813,8 +1813,8 @@ static int s626_ai_cmd(comedi_device * dev, comedi_subdevice * s)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int s626_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_cmd * cmd)
|
|
|
+static int s626_ai_cmdtest(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_cmd *cmd)
|
|
|
{
|
|
|
int err = 0;
|
|
|
int tmp;
|
|
@@ -1998,7 +1998,7 @@ static int s626_ai_cmdtest(comedi_device * dev, comedi_subdevice * s,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int s626_ai_cancel(comedi_device * dev, comedi_subdevice * s)
|
|
|
+static int s626_ai_cancel(comedi_device *dev, comedi_subdevice *s)
|
|
|
{
|
|
|
/* Stop RPS program in case it is currently running. */
|
|
|
MC_DISABLE(P_MC1, MC1_ERPS1);
|
|
@@ -2039,8 +2039,8 @@ static int s626_ns_to_timer(int *nanosec, int round_mode)
|
|
|
return divider - 1;
|
|
|
}
|
|
|
|
|
|
-static int s626_ao_winsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_ao_winsn(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
int i;
|
|
@@ -2058,8 +2058,8 @@ static int s626_ao_winsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
return i;
|
|
|
}
|
|
|
|
|
|
-static int s626_ao_rinsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_ao_rinsn(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
@@ -2076,7 +2076,7 @@ static int s626_ao_rinsn(comedi_device * dev, comedi_subdevice * s,
|
|
|
* ports A, B and C, respectively.
|
|
|
*/
|
|
|
|
|
|
-static void s626_dio_init(comedi_device * dev)
|
|
|
+static void s626_dio_init(comedi_device *dev)
|
|
|
{
|
|
|
uint16_t group;
|
|
|
comedi_subdevice *s;
|
|
@@ -2105,8 +2105,8 @@ static void s626_dio_init(comedi_device * dev)
|
|
|
* This allows packed reading/writing of the DIO channels. The comedi
|
|
|
* core can convert between insn_bits and insn_read/write */
|
|
|
|
|
|
-static int s626_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_dio_insn_bits(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
/* Length of data must be 2 (mask and new data, see below) */
|
|
@@ -2141,8 +2141,8 @@ static int s626_dio_insn_bits(comedi_device * dev, comedi_subdevice * s,
|
|
|
return 2;
|
|
|
}
|
|
|
|
|
|
-static int s626_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_dio_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
switch (data[0]) {
|
|
@@ -2168,7 +2168,7 @@ static int s626_dio_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-static int s626_dio_set_irq(comedi_device * dev, unsigned int chan)
|
|
|
+static int s626_dio_set_irq(comedi_device *dev, unsigned int chan)
|
|
|
{
|
|
|
unsigned int group;
|
|
|
unsigned int bitmask;
|
|
@@ -2210,7 +2210,7 @@ static int s626_dio_set_irq(comedi_device * dev, unsigned int chan)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int s626_dio_reset_irq(comedi_device * dev, unsigned int group,
|
|
|
+static int s626_dio_reset_irq(comedi_device *dev, unsigned int group,
|
|
|
unsigned int mask)
|
|
|
{
|
|
|
DEBUG("s626_dio_reset_irq: disable interrupt on dio channel %d group %d\n", mask, group);
|
|
@@ -2226,7 +2226,7 @@ static int s626_dio_reset_irq(comedi_device * dev, unsigned int group,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static int s626_dio_clear_irq(comedi_device * dev)
|
|
|
+static int s626_dio_clear_irq(comedi_device *dev)
|
|
|
{
|
|
|
unsigned int group;
|
|
|
|
|
@@ -2246,8 +2246,8 @@ static int s626_dio_clear_irq(comedi_device * dev)
|
|
|
/* Now this function initializes the value of the counter (data[0])
|
|
|
and set the subdevice. To complete with trigger and interrupt
|
|
|
configuration */
|
|
|
-static int s626_enc_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_enc_insn_config(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
uint16_t Setup = (LOADSRC_INDX << BF_LOADSRC) | /* Preload upon */
|
|
|
/* index. */
|
|
@@ -2276,8 +2276,8 @@ static int s626_enc_insn_config(comedi_device * dev, comedi_subdevice * s,
|
|
|
return insn->n;
|
|
|
}
|
|
|
|
|
|
-static int s626_enc_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_enc_insn_read(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
int n;
|
|
@@ -2294,8 +2294,8 @@ static int s626_enc_insn_read(comedi_device * dev, comedi_subdevice * s,
|
|
|
return n;
|
|
|
}
|
|
|
|
|
|
-static int s626_enc_insn_write(comedi_device * dev, comedi_subdevice * s,
|
|
|
- comedi_insn * insn, lsampl_t * data)
|
|
|
+static int s626_enc_insn_write(comedi_device *dev, comedi_subdevice *s,
|
|
|
+ comedi_insn *insn, lsampl_t *data)
|
|
|
{
|
|
|
|
|
|
enc_private *k = &encpriv[CR_CHAN(insn->chanspec)];
|
|
@@ -2317,7 +2317,7 @@ static int s626_enc_insn_write(comedi_device * dev, comedi_subdevice * s,
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-static void s626_timer_load(comedi_device * dev, enc_private * k, int tick)
|
|
|
+static void s626_timer_load(comedi_device *dev, enc_private *k, int tick)
|
|
|
{
|
|
|
uint16_t Setup = (LOADSRC_INDX << BF_LOADSRC) | /* Preload upon */
|
|
|
/* index. */
|
|
@@ -2363,7 +2363,7 @@ static uint8_t trimchan[] = { 10, 9, 8, 3, 2, 7, 6, 1, 0, 5, 4 };
|
|
|
static uint8_t trimadrs[] =
|
|
|
{ 0x40, 0x41, 0x42, 0x50, 0x51, 0x52, 0x53, 0x60, 0x61, 0x62, 0x63 };
|
|
|
|
|
|
-static void LoadTrimDACs(comedi_device * dev)
|
|
|
+static void LoadTrimDACs(comedi_device *dev)
|
|
|
{
|
|
|
register uint8_t i;
|
|
|
|
|
@@ -2372,7 +2372,7 @@ static void LoadTrimDACs(comedi_device * dev)
|
|
|
WriteTrimDAC(dev, i, I2Cread(dev, trimadrs[i]));
|
|
|
}
|
|
|
|
|
|
-static void WriteTrimDAC(comedi_device * dev, uint8_t LogicalChan,
|
|
|
+static void WriteTrimDAC(comedi_device *dev, uint8_t LogicalChan,
|
|
|
uint8_t DacData)
|
|
|
{
|
|
|
uint32_t chan;
|
|
@@ -2413,7 +2413,7 @@ static void WriteTrimDAC(comedi_device * dev, uint8_t LogicalChan,
|
|
|
/* ************** EEPROM ACCESS FUNCTIONS ************** */
|
|
|
/* Read uint8_t from EEPROM. */
|
|
|
|
|
|
-static uint8_t I2Cread(comedi_device * dev, uint8_t addr)
|
|
|
+static uint8_t I2Cread(comedi_device *dev, uint8_t addr)
|
|
|
{
|
|
|
uint8_t rtnval;
|
|
|
|
|
@@ -2448,7 +2448,7 @@ static uint8_t I2Cread(comedi_device * dev, uint8_t addr)
|
|
|
return rtnval;
|
|
|
}
|
|
|
|
|
|
-static uint32_t I2Chandshake(comedi_device * dev, uint32_t val)
|
|
|
+static uint32_t I2Chandshake(comedi_device *dev, uint32_t val)
|
|
|
{
|
|
|
/* Write I2C command to I2C Transfer Control shadow register. */
|
|
|
WR7146(P_I2CCTRL, val);
|
|
@@ -2469,7 +2469,7 @@ static uint32_t I2Chandshake(comedi_device * dev, uint32_t val)
|
|
|
|
|
|
/* Private helper function: Write setpoint to an application DAC channel. */
|
|
|
|
|
|
-static void SetDAC(comedi_device * dev, uint16_t chan, short dacdata)
|
|
|
+static void SetDAC(comedi_device *dev, uint16_t chan, short dacdata)
|
|
|
{
|
|
|
register uint16_t signmask;
|
|
|
register uint32_t WSImage;
|
|
@@ -2530,7 +2530,7 @@ static void SetDAC(comedi_device * dev, uint16_t chan, short dacdata)
|
|
|
* Dacpol contains valid target image.
|
|
|
*/
|
|
|
|
|
|
-static void SendDAC(comedi_device * dev, uint32_t val)
|
|
|
+static void SendDAC(comedi_device *dev, uint32_t val)
|
|
|
{
|
|
|
|
|
|
/* START THE SERIAL CLOCK RUNNING ------------- */
|
|
@@ -2646,7 +2646,7 @@ static void SendDAC(comedi_device * dev, uint32_t val)
|
|
|
while ((RR7146(P_FB_BUFFER2) & 0xFF000000) == 0) ;
|
|
|
}
|
|
|
|
|
|
-static void WriteMISC2(comedi_device * dev, uint16_t NewImage)
|
|
|
+static void WriteMISC2(comedi_device *dev, uint16_t NewImage)
|
|
|
{
|
|
|
DEBIwrite(dev, LP_MISC1, MISC1_WENABLE); /* enab writes to */
|
|
|
/* MISC2 register. */
|
|
@@ -2656,7 +2656,7 @@ static void WriteMISC2(comedi_device * dev, uint16_t NewImage)
|
|
|
|
|
|
/* Initialize the DEBI interface for all transfers. */
|
|
|
|
|
|
-static uint16_t DEBIread(comedi_device * dev, uint16_t addr)
|
|
|
+static uint16_t DEBIread(comedi_device *dev, uint16_t addr)
|
|
|
{
|
|
|
uint16_t retval;
|
|
|
|
|
@@ -2675,7 +2675,7 @@ static uint16_t DEBIread(comedi_device * dev, uint16_t addr)
|
|
|
|
|
|
/* Execute a DEBI transfer. This must be called from within a */
|
|
|
/* critical section. */
|
|
|
-static void DEBItransfer(comedi_device * dev)
|
|
|
+static void DEBItransfer(comedi_device *dev)
|
|
|
{
|
|
|
/* Initiate upload of shadow RAM to DEBI control register. */
|
|
|
MC_ENABLE(P_MC2, MC2_UPLD_DEBI);
|
|
@@ -2689,7 +2689,7 @@ static void DEBItransfer(comedi_device * dev)
|
|
|
}
|
|
|
|
|
|
/* Write a value to a gate array register. */
|
|
|
-static void DEBIwrite(comedi_device * dev, uint16_t addr, uint16_t wdata)
|
|
|
+static void DEBIwrite(comedi_device *dev, uint16_t addr, uint16_t wdata)
|
|
|
{
|
|
|
|
|
|
/* Set up DEBI control register value in shadow RAM. */
|
|
@@ -2704,7 +2704,7 @@ static void DEBIwrite(comedi_device * dev, uint16_t addr, uint16_t wdata)
|
|
|
* specifies bits that are to be preserved, wdata is new value to be
|
|
|
* or'd with the masked original.
|
|
|
*/
|
|
|
-static void DEBIreplace(comedi_device * dev, uint16_t addr, uint16_t mask,
|
|
|
+static void DEBIreplace(comedi_device *dev, uint16_t addr, uint16_t mask,
|
|
|
uint16_t wdata)
|
|
|
{
|
|
|
|
|
@@ -2722,7 +2722,7 @@ static void DEBIreplace(comedi_device * dev, uint16_t addr, uint16_t mask,
|
|
|
DEBItransfer(dev); /* Execute the DEBI Write transfer. */
|
|
|
}
|
|
|
|
|
|
-static void CloseDMAB(comedi_device * dev, DMABUF * pdma, size_t bsize)
|
|
|
+static void CloseDMAB(comedi_device *dev, DMABUF *pdma, size_t bsize)
|
|
|
{
|
|
|
void *vbptr;
|
|
|
dma_addr_t vpptr;
|
|
@@ -2757,7 +2757,7 @@ static void CloseDMAB(comedi_device * dev, DMABUF * pdma, size_t bsize)
|
|
|
|
|
|
/* Read a counter's output latch. */
|
|
|
|
|
|
-static uint32_t ReadLatch(comedi_device * dev, enc_private * k)
|
|
|
+static uint32_t ReadLatch(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
register uint32_t value;
|
|
|
/* DEBUG FIXME DEBUG("ReadLatch: Read Latch enter\n"); */
|
|
@@ -2776,13 +2776,13 @@ static uint32_t ReadLatch(comedi_device * dev, enc_private * k)
|
|
|
|
|
|
/* Reset a counter's index and overflow event capture flags. */
|
|
|
|
|
|
-static void ResetCapFlags_A(comedi_device * dev, enc_private * k)
|
|
|
+static void ResetCapFlags_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
DEBIreplace(dev, k->MyCRB, (uint16_t) (~CRBMSK_INTCTRL),
|
|
|
CRBMSK_INTRESETCMD | CRBMSK_INTRESET_A);
|
|
|
}
|
|
|
|
|
|
-static void ResetCapFlags_B(comedi_device * dev, enc_private * k)
|
|
|
+static void ResetCapFlags_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
DEBIreplace(dev, k->MyCRB, (uint16_t) (~CRBMSK_INTCTRL),
|
|
|
CRBMSK_INTRESETCMD | CRBMSK_INTRESET_B);
|
|
@@ -2791,7 +2791,7 @@ static void ResetCapFlags_B(comedi_device * dev, enc_private * k)
|
|
|
/* Return counter setup in a format (COUNTER_SETUP) that is consistent */
|
|
|
/* for both A and B counters. */
|
|
|
|
|
|
-static uint16_t GetMode_A(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetMode_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
register uint16_t cra;
|
|
|
register uint16_t crb;
|
|
@@ -2829,7 +2829,7 @@ static uint16_t GetMode_A(comedi_device * dev, enc_private * k)
|
|
|
return setup;
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetMode_B(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetMode_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
register uint16_t cra;
|
|
|
register uint16_t crb;
|
|
@@ -2875,7 +2875,7 @@ static uint16_t GetMode_B(comedi_device * dev, enc_private * k)
|
|
|
* ClkPol, ClkEnab, IndexSrc, IndexPol, LoadSrc.
|
|
|
*/
|
|
|
|
|
|
-static void SetMode_A(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
+static void SetMode_A(comedi_device *dev, enc_private *k, uint16_t Setup,
|
|
|
uint16_t DisableIntSrc)
|
|
|
{
|
|
|
register uint16_t cra;
|
|
@@ -2933,7 +2933,7 @@ static void SetMode_A(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
(uint16_t) (~(CRBMSK_INTCTRL | CRBMSK_CLKENAB_A)), crb);
|
|
|
}
|
|
|
|
|
|
-static void SetMode_B(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
+static void SetMode_B(comedi_device *dev, enc_private *k, uint16_t Setup,
|
|
|
uint16_t DisableIntSrc)
|
|
|
{
|
|
|
register uint16_t cra;
|
|
@@ -2997,7 +2997,7 @@ static void SetMode_B(comedi_device * dev, enc_private * k, uint16_t Setup,
|
|
|
|
|
|
/* Return/set a counter's enable. enab: 0=always enabled, 1=enabled by index. */
|
|
|
|
|
|
-static void SetEnable_A(comedi_device * dev, enc_private * k, uint16_t enab)
|
|
|
+static void SetEnable_A(comedi_device *dev, enc_private *k, uint16_t enab)
|
|
|
{
|
|
|
DEBUG("SetEnable_A: SetEnable_A enter 3541\n");
|
|
|
DEBIreplace(dev, k->MyCRB,
|
|
@@ -3005,19 +3005,19 @@ static void SetEnable_A(comedi_device * dev, enc_private * k, uint16_t enab)
|
|
|
(uint16_t) (enab << CRBBIT_CLKENAB_A));
|
|
|
}
|
|
|
|
|
|
-static void SetEnable_B(comedi_device * dev, enc_private * k, uint16_t enab)
|
|
|
+static void SetEnable_B(comedi_device *dev, enc_private *k, uint16_t enab)
|
|
|
{
|
|
|
DEBIreplace(dev, k->MyCRB,
|
|
|
(uint16_t) (~(CRBMSK_INTCTRL | CRBMSK_CLKENAB_B)),
|
|
|
(uint16_t) (enab << CRBBIT_CLKENAB_B));
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetEnable_A(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetEnable_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRB) >> CRBBIT_CLKENAB_A) & 1;
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetEnable_B(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetEnable_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRB) >> CRBBIT_CLKENAB_B) & 1;
|
|
|
}
|
|
@@ -3027,7 +3027,7 @@ static uint16_t GetEnable_B(comedi_device * dev, enc_private * k)
|
|
|
* latches B.
|
|
|
*/
|
|
|
|
|
|
-static void SetLatchSource(comedi_device * dev, enc_private * k, uint16_t value)
|
|
|
+static void SetLatchSource(comedi_device *dev, enc_private *k, uint16_t value)
|
|
|
{
|
|
|
DEBUG("SetLatchSource: SetLatchSource enter 3550 \n");
|
|
|
DEBIreplace(dev, k->MyCRB,
|
|
@@ -3050,25 +3050,25 @@ static void SetLatchSource(comedi_device * dev, enc_private * k, uint16_t value)
|
|
|
* 2=OverflowA (B counters only), 3=disabled.
|
|
|
*/
|
|
|
|
|
|
-static void SetLoadTrig_A(comedi_device * dev, enc_private * k, uint16_t Trig)
|
|
|
+static void SetLoadTrig_A(comedi_device *dev, enc_private *k, uint16_t Trig)
|
|
|
{
|
|
|
DEBIreplace(dev, k->MyCRA, (uint16_t) (~CRAMSK_LOADSRC_A),
|
|
|
(uint16_t) (Trig << CRABIT_LOADSRC_A));
|
|
|
}
|
|
|
|
|
|
-static void SetLoadTrig_B(comedi_device * dev, enc_private * k, uint16_t Trig)
|
|
|
+static void SetLoadTrig_B(comedi_device *dev, enc_private *k, uint16_t Trig)
|
|
|
{
|
|
|
DEBIreplace(dev, k->MyCRB,
|
|
|
(uint16_t) (~(CRBMSK_LOADSRC_B | CRBMSK_INTCTRL)),
|
|
|
(uint16_t) (Trig << CRBBIT_LOADSRC_B));
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetLoadTrig_A(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetLoadTrig_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRA) >> CRABIT_LOADSRC_A) & 3;
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetLoadTrig_B(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetLoadTrig_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRB) >> CRBBIT_LOADSRC_B) & 3;
|
|
|
}
|
|
@@ -3078,7 +3078,7 @@ static uint16_t GetLoadTrig_B(comedi_device * dev, enc_private * k)
|
|
|
* 2=IndexOnly, 3=IndexAndOverflow.
|
|
|
*/
|
|
|
|
|
|
-static void SetIntSrc_A(comedi_device * dev, enc_private * k,
|
|
|
+static void SetIntSrc_A(comedi_device *dev, enc_private *k,
|
|
|
uint16_t IntSource)
|
|
|
{
|
|
|
/* Reset any pending counter overflow or index captures. */
|
|
@@ -3095,7 +3095,7 @@ static void SetIntSrc_A(comedi_device * dev, enc_private * k,
|
|
|
MyEventBits[IntSource];
|
|
|
}
|
|
|
|
|
|
-static void SetIntSrc_B(comedi_device * dev, enc_private * k,
|
|
|
+static void SetIntSrc_B(comedi_device *dev, enc_private *k,
|
|
|
uint16_t IntSource)
|
|
|
{
|
|
|
uint16_t crb;
|
|
@@ -3118,12 +3118,12 @@ static void SetIntSrc_B(comedi_device * dev, enc_private * k,
|
|
|
MyEventBits[IntSource];
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetIntSrc_A(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetIntSrc_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRA) >> CRABIT_INTSRC_A) & 3;
|
|
|
}
|
|
|
|
|
|
-static uint16_t GetIntSrc_B(comedi_device * dev, enc_private * k)
|
|
|
+static uint16_t GetIntSrc_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
return (DEBIread(dev, k->MyCRB) >> CRBBIT_INTSRC_B) & 3;
|
|
|
}
|
|
@@ -3191,7 +3191,7 @@ static uint16_t GetIntSrc_B(comedi_device * dev, enc_private * k)
|
|
|
|
|
|
/* Generate an index pulse. */
|
|
|
|
|
|
-static void PulseIndex_A(comedi_device * dev, enc_private * k)
|
|
|
+static void PulseIndex_A(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
register uint16_t cra;
|
|
|
|
|
@@ -3203,7 +3203,7 @@ static void PulseIndex_A(comedi_device * dev, enc_private * k)
|
|
|
DEBIwrite(dev, k->MyCRA, cra);
|
|
|
}
|
|
|
|
|
|
-static void PulseIndex_B(comedi_device * dev, enc_private * k)
|
|
|
+static void PulseIndex_B(comedi_device *dev, enc_private *k)
|
|
|
{
|
|
|
register uint16_t crb;
|
|
|
|
|
@@ -3214,7 +3214,7 @@ static void PulseIndex_B(comedi_device * dev, enc_private * k)
|
|
|
|
|
|
/* Write value into counter preload register. */
|
|
|
|
|
|
-static void Preload(comedi_device * dev, enc_private * k, uint32_t value)
|
|
|
+static void Preload(comedi_device *dev, enc_private *k, uint32_t value)
|
|
|
{
|
|
|
DEBUG("Preload: preload enter\n");
|
|
|
DEBIwrite(dev, (uint16_t) (k->MyLatchLsw), (uint16_t) value); /* Write value to preload register. */
|
|
@@ -3223,7 +3223,7 @@ static void Preload(comedi_device * dev, enc_private * k, uint32_t value)
|
|
|
(uint16_t) (value >> 16));
|
|
|
}
|
|
|
|
|
|
-static void CountersInit(comedi_device * dev)
|
|
|
+static void CountersInit(comedi_device *dev)
|
|
|
{
|
|
|
int chan;
|
|
|
enc_private *k;
|