Commit d2dde226 authored by H Hartley Sweeten's avatar H Hartley Sweeten Committed by Greg Kroah-Hartman

staging: comedi: ni_stc.h: tidy up M_Offset_* values

For aesthetics, define the M_Offset_* values instead of using an enum.

Convert the inline helpers used to get some of the M-Series register
offsets into macros.
Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent e0852f6a
...@@ -920,109 +920,58 @@ enum ni_reg_type { ...@@ -920,109 +920,58 @@ enum ni_reg_type {
static const struct comedi_lrange range_ni_E_ao_ext; static const struct comedi_lrange range_ni_E_ao_ext;
enum m_series_register_offsets { /*
M_Offset_CDIO_DMA_Select = 0x7, /* write */ * M-Series specific registers not handled by the DAQ-STC and GPCT register
M_Offset_SCXI_Status = 0x7, /* read */ * remapping.
M_Offset_AI_AO_Select = 0x9, /* write, same offset as e-series */ */
M_Offset_G0_G1_Select = 0xb, /* write, same offset as e-series */ #define M_Offset_CDIO_DMA_Select 0x007
M_Offset_Misc_Command = 0xf, #define M_Offset_SCXI_Status 0x007
M_Offset_SCXI_Serial_Data_Out = 0x11, #define M_Offset_AI_AO_Select 0x009
M_Offset_SCXI_Control = 0x13, #define M_Offset_G0_G1_Select 0x00b
M_Offset_SCXI_Output_Enable = 0x15, #define M_Offset_Misc_Command 0x00f
M_Offset_AI_FIFO_Data = 0x1c, #define M_Offset_SCXI_Serial_Data_Out 0x011
M_Offset_Static_Digital_Output = 0x24, /* write */ #define M_Offset_SCXI_Control 0x013
M_Offset_Static_Digital_Input = 0x24, /* read */ #define M_Offset_SCXI_Output_Enable 0x015
M_Offset_DIO_Direction = 0x28, #define M_Offset_AI_FIFO_Data 0x01c
M_Offset_Cal_PWM = 0x40, #define M_Offset_Static_Digital_Output 0x024
M_Offset_AI_Config_FIFO_Data = 0x5e, #define M_Offset_Static_Digital_Input 0x024
M_Offset_Interrupt_C_Enable = 0x88, /* write */ #define M_Offset_DIO_Direction 0x028
M_Offset_Interrupt_C_Status = 0x88, /* read */ #define M_Offset_Cal_PWM 0x040
M_Offset_Analog_Trigger_Control = 0x8c, #define M_Offset_Gen_PWM(x) (0x044 + ((x) * 2))
M_Offset_AO_Serial_Interrupt_Enable = 0xa0, #define M_Offset_AI_Config_FIFO_Data 0x05e
M_Offset_AO_Serial_Interrupt_Ack = 0xa1, /* write */ #define M_Offset_Interrupt_C_Enable 0x088
M_Offset_AO_Serial_Interrupt_Status = 0xa1, /* read */ #define M_Offset_Interrupt_C_Status 0x088
M_Offset_AO_Calibration = 0xa3, #define M_Offset_Analog_Trigger_Control 0x08c
M_Offset_AO_FIFO_Data = 0xa4, #define M_Offset_AO_Serial_Interrupt_Enable 0x0a0
M_Offset_PFI_Filter = 0xb0, #define M_Offset_AO_Serial_Interrupt_Ack 0x0a1
M_Offset_RTSI_Filter = 0xb4, #define M_Offset_AO_Serial_Interrupt_Status 0x0a1
M_Offset_SCXI_Legacy_Compatibility = 0xbc, #define M_Offset_AO_Calibration 0x0a3
M_Offset_RTSI_Shared_MUX = 0x1a2, #define M_Offset_AO_FIFO_Data 0x0a4
M_Offset_Clock_and_Fout2 = 0x1c4, #define M_Offset_PFI_Filter 0x0b0
M_Offset_PLL_Control = 0x1c6, #define M_Offset_RTSI_Filter 0x0b4
M_Offset_PLL_Status = 0x1c8, #define M_Offset_SCXI_Legacy_Compatibility 0x0bc
M_Offset_PFI_Output_Select_1 = 0x1d0, #define M_Offset_DAC_Direct_Data(x) (0x0c0 + ((x) * 4))
M_Offset_PFI_Output_Select_2 = 0x1d2, #define M_Offset_AO_Waveform_Order(x) (0x0c2 + ((x) * 4))
M_Offset_PFI_Output_Select_3 = 0x1d4, #define M_Offset_AO_Config_Bank(x) (0x0c3 + ((x) * 4))
M_Offset_PFI_Output_Select_4 = 0x1d6, #define M_Offset_RTSI_Shared_MUX 0x1a2
M_Offset_PFI_Output_Select_5 = 0x1d8, #define M_Offset_Clock_and_Fout2 0x1c4
M_Offset_PFI_Output_Select_6 = 0x1da, #define M_Offset_PLL_Control 0x1c6
M_Offset_PFI_DI = 0x1dc, #define M_Offset_PLL_Status 0x1c8
M_Offset_PFI_DO = 0x1de, #define M_Offset_PFI_Output_Select(x) (0x1d0 + ((x) * 2))
M_Offset_AI_Config_FIFO_Bypass = 0x218, #define M_Offset_PFI_DI 0x1dc
M_Offset_SCXI_DIO_Enable = 0x21c, #define M_Offset_PFI_DO 0x1de
M_Offset_CDI_FIFO_Data = 0x220, /* read */ #define M_Offset_AI_Config_FIFO_Bypass 0x218
M_Offset_CDO_FIFO_Data = 0x220, /* write */ #define M_Offset_SCXI_DIO_Enable 0x21c
M_Offset_CDIO_Status = 0x224, /* read */ #define M_Offset_CDI_FIFO_Data 0x220
M_Offset_CDIO_Command = 0x224, /* write */ #define M_Offset_CDO_FIFO_Data 0x220
M_Offset_CDI_Mode = 0x228, #define M_Offset_CDIO_Status 0x224
M_Offset_CDO_Mode = 0x22c, #define M_Offset_CDIO_Command 0x224
M_Offset_CDI_Mask_Enable = 0x230, #define M_Offset_CDI_Mode 0x228
M_Offset_CDO_Mask_Enable = 0x234, #define M_Offset_CDO_Mode 0x22c
}; #define M_Offset_CDI_Mask_Enable 0x230
static inline int M_Offset_AO_Waveform_Order(int channel) #define M_Offset_CDO_Mask_Enable 0x234
{ #define M_Offset_Static_AI_Control(x) ((x) ? (0x260 + (x)) : 0x064)
return 0xc2 + 0x4 * channel; #define M_Offset_AO_Reference_Attenuation(x) (0x264 + (x))
};
static inline int M_Offset_AO_Config_Bank(int channel)
{
return 0xc3 + 0x4 * channel;
};
static inline int M_Offset_DAC_Direct_Data(int channel)
{
return 0xc0 + 0x4 * channel;
}
static inline int M_Offset_Gen_PWM(int channel)
{
return 0x44 + 0x2 * channel;
}
static inline int M_Offset_Static_AI_Control(int i)
{
int offset[] = {
0x64,
0x261,
0x262,
0x263,
};
if (((unsigned)i) >= ARRAY_SIZE(offset)) {
pr_err("%s: invalid channel=%i\n", __func__, i);
return offset[0];
}
return offset[i];
};
static inline int M_Offset_AO_Reference_Attenuation(int channel)
{
int offset[] = {
0x264,
0x265,
0x266,
0x267
};
if (((unsigned)channel) >= ARRAY_SIZE(offset)) {
pr_err("%s: invalid channel=%i\n", __func__, channel);
return offset[0];
}
return offset[channel];
};
static inline unsigned M_Offset_PFI_Output_Select(unsigned n)
{
return M_Offset_PFI_Output_Select_1 + (n * 2);
}
enum MSeries_AI_Config_FIFO_Data_Bits { enum MSeries_AI_Config_FIFO_Data_Bits {
MSeries_AI_Config_Channel_Type_Mask = 0x7 << 6, MSeries_AI_Config_Channel_Type_Mask = 0x7 << 6,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment