24 #ifndef _COMEDI_NI_TIO_INTERNAL_H
25 #define _COMEDI_NI_TIO_INTERNAL_H
32 switch (counter_index) {
52 static inline enum ni_gpct_register NITIO_Gi_Command_Reg(
unsigned counter_index)
54 switch (counter_index) {
77 switch (counter_index) {
100 switch (counter_index) {
123 switch (counter_index) {
142 switch (counter_index) {
161 switch (counter_index) {
177 static inline enum ni_gpct_register NITIO_Gxx_Status_Reg(
unsigned counter_index)
179 switch (counter_index) {
195 static inline enum ni_gpct_register NITIO_Gi_LoadA_Reg(
unsigned counter_index)
197 switch (counter_index) {
217 static inline enum ni_gpct_register NITIO_Gi_LoadB_Reg(
unsigned counter_index)
219 switch (counter_index) {
239 static inline enum ni_gpct_register NITIO_Gi_Mode_Reg(
unsigned counter_index)
241 switch (counter_index) {
263 switch (counter_index) {
283 static inline enum ni_gpct_register NITIO_Gi_Second_Gate_Reg(
int counter_index)
285 switch (counter_index) {
305 static inline enum ni_gpct_register NITIO_Gi_DMA_Config_Reg(
int counter_index)
307 switch (counter_index) {
327 static inline enum ni_gpct_register NITIO_Gi_DMA_Status_Reg(
int counter_index)
329 switch (counter_index) {
351 switch (counter_index) {
368 switch (counter_index) {
390 switch (counter_index) {
413 switch (counter_index) {
437 #define Gi_Up_Down_Shift 5
459 #define Gi_Index_Phase_Bitshift 5
460 #define Gi_HW_Arm_Select_Shift 8
494 #define Gi_Source_Select_Shift 2
495 #define Gi_Gate_Select_Shift 7
540 #define Gi_Second_Gate_Select_Shift 7
550 static inline unsigned Gi_Second_Gate_Select_Bits(
unsigned second_gate_select)
574 static inline enum Gxx_Status_Bits Gi_Counting_Bit(
unsigned counter_index)
576 if (counter_index % 2)
581 static inline enum Gxx_Status_Bits Gi_Armed_Bit(
unsigned counter_index)
583 if (counter_index % 2)
591 if (counter_index % 2)
596 static inline enum Gxx_Status_Bits Gi_Stale_Data_Bit(
unsigned counter_index)
598 if (counter_index % 2)
603 static inline enum Gxx_Status_Bits Gi_TC_Error_Bit(
unsigned counter_index)
605 if (counter_index % 2)
610 static inline enum Gxx_Status_Bits Gi_Gate_Error_Bit(
unsigned counter_index)
612 if (counter_index % 2)
618 static inline unsigned Gi_Reset_Bit(
unsigned counter_index)
620 return 0x1 << (2 + (counter_index % 2));
634 if (counter_index % 2)
659 static inline unsigned Gi_Gate_Error_Confirm_Bit(
unsigned counter_index)
661 if (counter_index % 2)
666 static inline unsigned Gi_TC_Error_Confirm_Bit(
unsigned counter_index)
668 if (counter_index % 2)
693 static inline unsigned Gi_Gate_Interrupt_Enable_Bit(
unsigned counter_index)
697 if (counter_index % 2)
708 counter->
counter_dev->write_register(counter, bits, reg);
711 static inline unsigned read_register(
struct ni_gpct *counter,
715 return counter->
counter_dev->read_register(counter, reg);
718 static inline int ni_tio_counting_mode_registers_present(
const struct
722 switch (counter_dev->
variant) {
737 static inline void ni_tio_set_bits_transient(
struct ni_gpct *counter,
739 register_index,
unsigned bit_mask,
741 unsigned transient_bit_values)
748 counter_dev->
regs[register_index] &= ~bit_mask;
749 counter_dev->
regs[register_index] |= (bit_values & bit_mask);
751 counter_dev->
regs[register_index] | transient_bit_values,
754 spin_unlock_irqrestore(&counter_dev->
regs_lock, flags);
761 static inline void ni_tio_set_bits(
struct ni_gpct *counter,
763 unsigned bit_mask,
unsigned bit_values)
765 ni_tio_set_bits_transient(counter, register_index, bit_mask, bit_values,
773 static inline unsigned ni_tio_get_soft_copy(
const struct ni_gpct *counter,
783 value = counter_dev->
regs[register_index];
784 spin_unlock_irqrestore(&counter_dev->
regs_lock, flags);
790 unsigned int gate_source);