linux/drivers/comedi/drivers/ni_tio_internal.h

/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * Header file for NI general purpose counter support code (ni_tio.c and
 * ni_tiocmd.c)
 *
 * COMEDI - Linux Control and Measurement Device Interface
 */

#ifndef _COMEDI_NI_TIO_INTERNAL_H
#define _COMEDI_NI_TIO_INTERNAL_H

#include "ni_tio.h"

#define NITIO_AUTO_INC_REG(x)
#define GI_AUTO_INC_MASK
#define NITIO_CMD_REG(x)
#define GI_ARM
#define GI_SAVE_TRACE
#define GI_LOAD
#define GI_DISARM
#define GI_CNT_DIR(x)
#define GI_CNT_DIR_MASK
#define GI_WRITE_SWITCH
#define GI_SYNC_GATE
#define GI_LITTLE_BIG_ENDIAN
#define GI_BANK_SWITCH_START
#define GI_BANK_SWITCH_MODE
#define GI_BANK_SWITCH_ENABLE
#define GI_ARM_COPY
#define GI_SAVE_TRACE_COPY
#define GI_DISARM_COPY
#define NITIO_HW_SAVE_REG(x)
#define NITIO_SW_SAVE_REG(x)
#define NITIO_MODE_REG(x)
#define GI_GATING_MODE(x)
#define GI_GATING_DISABLED
#define GI_LEVEL_GATING
#define GI_RISING_EDGE_GATING
#define GI_FALLING_EDGE_GATING
#define GI_GATING_MODE_MASK
#define GI_GATE_ON_BOTH_EDGES
#define GI_EDGE_GATE_MODE(x)
#define GI_EDGE_GATE_STARTS_STOPS
#define GI_EDGE_GATE_STOPS_STARTS
#define GI_EDGE_GATE_STARTS
#define GI_EDGE_GATE_NO_STARTS_OR_STOPS
#define GI_EDGE_GATE_MODE_MASK
#define GI_STOP_MODE(x)
#define GI_STOP_ON_GATE
#define GI_STOP_ON_GATE_OR_TC
#define GI_STOP_ON_GATE_OR_SECOND_TC
#define GI_STOP_MODE_MASK
#define GI_LOAD_SRC_SEL
#define GI_OUTPUT_MODE(x)
#define GI_OUTPUT_TC_PULSE
#define GI_OUTPUT_TC_TOGGLE
#define GI_OUTPUT_TC_OR_GATE_TOGGLE
#define GI_OUTPUT_MODE_MASK
#define GI_COUNTING_ONCE(x)
#define GI_NO_HARDWARE_DISARM
#define GI_DISARM_AT_TC
#define GI_DISARM_AT_GATE
#define GI_DISARM_AT_TC_OR_GATE
#define GI_COUNTING_ONCE_MASK
#define GI_LOADING_ON_TC
#define GI_GATE_POL_INVERT
#define GI_LOADING_ON_GATE
#define GI_RELOAD_SRC_SWITCHING
#define NITIO_LOADA_REG(x)
#define NITIO_LOADB_REG(x)
#define NITIO_INPUT_SEL_REG(x)
#define GI_READ_ACKS_IRQ
#define GI_WRITE_ACKS_IRQ
#define GI_BITS_TO_SRC(x)
#define GI_SRC_SEL(x)
#define GI_SRC_SEL_MASK
#define GI_BITS_TO_GATE(x)
#define GI_GATE_SEL(x)
#define GI_GATE_SEL_MASK
#define GI_GATE_SEL_LOAD_SRC
#define GI_OR_GATE
#define GI_OUTPUT_POL_INVERT
#define GI_SRC_POL_INVERT
#define NITIO_CNT_MODE_REG(x)
#define GI_CNT_MODE(x)
#define GI_CNT_MODE_NORMAL
#define GI_CNT_MODE_QUADX1
#define GI_CNT_MODE_QUADX2
#define GI_CNT_MODE_QUADX4
#define GI_CNT_MODE_TWO_PULSE
#define GI_CNT_MODE_SYNC_SRC
#define GI_CNT_MODE_MASK
#define GI_INDEX_MODE
#define GI_INDEX_PHASE(x)
#define GI_INDEX_PHASE_MASK
#define GI_HW_ARM_ENA
#define GI_HW_ARM_SEL(x)
#define GI_660X_HW_ARM_SEL_MASK
#define GI_M_HW_ARM_SEL_MASK
#define GI_660X_PRESCALE_X8
#define GI_M_PRESCALE_X8
#define GI_660X_ALT_SYNC
#define GI_M_ALT_SYNC
#define GI_660X_PRESCALE_X2
#define GI_M_PRESCALE_X2
#define NITIO_GATE2_REG(x)
#define GI_GATE2_MODE
#define GI_BITS_TO_GATE2(x)
#define GI_GATE2_SEL(x)
#define GI_GATE2_SEL_MASK
#define GI_GATE2_POL_INVERT
#define GI_GATE2_SUBSEL
#define GI_SRC_SUBSEL
#define NITIO_SHARED_STATUS_REG(x)
#define GI_SAVE(x)
#define GI_COUNTING(x)
#define GI_NEXT_LOAD_SRC(x)
#define GI_STALE_DATA(x)
#define GI_ARMED(x)
#define GI_NO_LOAD_BETWEEN_GATES(x)
#define GI_TC_ERROR(x)
#define GI_GATE_ERROR(x)
#define NITIO_RESET_REG(x)
#define GI_RESET(x)
#define NITIO_STATUS1_REG(x)
#define NITIO_STATUS2_REG(x)
#define GI_OUTPUT(x)
#define GI_HW_SAVE(x)
#define GI_PERMANENT_STALE(x)
#define NITIO_DMA_CFG_REG(x)
#define GI_DMA_ENABLE
#define GI_DMA_WRITE
#define GI_DMA_INT_ENA
#define GI_DMA_RESET
#define GI_DMA_BANKSW_ERROR
#define NITIO_DMA_STATUS_REG(x)
#define GI_DMA_READBANK
#define GI_DRQ_ERROR
#define GI_DRQ_STATUS
#define NITIO_ABZ_REG(x)
#define NITIO_INT_ACK_REG(x)
#define GI_GATE_ERROR_CONFIRM(x)
#define GI_TC_ERROR_CONFIRM(x)
#define GI_TC_INTERRUPT_ACK
#define GI_GATE_INTERRUPT_ACK
#define NITIO_STATUS_REG(x)
#define GI_GATE_INTERRUPT
#define GI_TC
#define GI_INTERRUPT
#define NITIO_INT_ENA_REG(x)
#define GI_TC_INTERRUPT_ENABLE(x)
#define GI_GATE_INTERRUPT_ENABLE(x)

void ni_tio_write(struct ni_gpct *counter, unsigned int value,
		  enum ni_gpct_register);
unsigned int ni_tio_read(struct ni_gpct *counter, enum ni_gpct_register);

static inline bool
ni_tio_counting_mode_registers_present(const struct ni_gpct_device *counter_dev)
{}

void ni_tio_set_bits(struct ni_gpct *counter, enum ni_gpct_register reg,
		     unsigned int mask, unsigned int value);
unsigned int ni_tio_get_soft_copy(const struct ni_gpct *counter,
				  enum ni_gpct_register reg);

int ni_tio_arm(struct ni_gpct *counter, bool arm, unsigned int start_trigger);
int ni_tio_set_gate_src(struct ni_gpct *counter, unsigned int gate,
			unsigned int src);
int ni_tio_set_gate_src_raw(struct ni_gpct *counter, unsigned int gate,
			    unsigned int src);

#endif /* _COMEDI_NI_TIO_INTERNAL_H */