mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 12:21:22 -05:00
Move the gpib drivers out of staging and into the "real" part of the kernel. This entails: - Remove the gpib Kconfig menu and Makefile build rule from staging. - Remove gpib/uapi from the header file search path in subdir-ccflags of the gpib Makefile - move the gpib/uapi files to include/uapi/linux - Move the gpib tree out of staging to drivers. - Remove the word "Linux" from the gpib Kconfig file. - Add the gpib Kconfig menu and Makefile build rule to drivers Signed-off-by: Dave Penkler <dpenkler@gmail.com> Link: https://patch.msgid.link/20251117144021.23569-5-dpenkler@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
105 lines
2.9 KiB
C
105 lines
2.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
|
|
/***************************************************************************
|
|
* copyright : (C) 2002 by Frank Mori Hess
|
|
***************************************************************************/
|
|
|
|
#ifndef _GPIB_H
|
|
#define _GPIB_H
|
|
|
|
#define GPIB_MAX_NUM_BOARDS 16
|
|
#define GPIB_MAX_NUM_DESCRIPTORS 0x1000
|
|
|
|
enum ibsta_bit_numbers {
|
|
DCAS_NUM = 0,
|
|
DTAS_NUM = 1,
|
|
LACS_NUM = 2,
|
|
TACS_NUM = 3,
|
|
ATN_NUM = 4,
|
|
CIC_NUM = 5,
|
|
REM_NUM = 6,
|
|
LOK_NUM = 7,
|
|
CMPL_NUM = 8,
|
|
EVENT_NUM = 9,
|
|
SPOLL_NUM = 10,
|
|
RQS_NUM = 11,
|
|
SRQI_NUM = 12,
|
|
END_NUM = 13,
|
|
TIMO_NUM = 14,
|
|
ERR_NUM = 15
|
|
};
|
|
|
|
/* IBSTA status bits (returned by all functions) */
|
|
enum ibsta_bits {
|
|
DCAS = (1 << DCAS_NUM), /* device clear state */
|
|
DTAS = (1 << DTAS_NUM), /* device trigger state */
|
|
LACS = (1 << LACS_NUM), /* GPIB interface is addressed as Listener */
|
|
TACS = (1 << TACS_NUM), /* GPIB interface is addressed as Talker */
|
|
ATN = (1 << ATN_NUM), /* Attention is asserted */
|
|
CIC = (1 << CIC_NUM), /* GPIB interface is Controller-in-Charge */
|
|
REM = (1 << REM_NUM), /* remote state */
|
|
LOK = (1 << LOK_NUM), /* lockout state */
|
|
CMPL = (1 << CMPL_NUM), /* I/O is complete */
|
|
EVENT = (1 << EVENT_NUM), /* DCAS, DTAS, or IFC has occurred */
|
|
SPOLL = (1 << SPOLL_NUM), /* board serial polled by busmaster */
|
|
RQS = (1 << RQS_NUM), /* Device requesting service */
|
|
SRQI = (1 << SRQI_NUM), /* SRQ is asserted */
|
|
END = (1 << END_NUM), /* EOI or EOS encountered */
|
|
TIMO = (1 << TIMO_NUM), /* Time limit on I/O or wait function exceeded */
|
|
ERR = (1 << ERR_NUM), /* Function call terminated on error */
|
|
|
|
device_status_mask = ERR | TIMO | END | CMPL | RQS,
|
|
board_status_mask = ERR | TIMO | END | CMPL | SPOLL |
|
|
EVENT | LOK | REM | CIC | ATN | TACS | LACS | DTAS | DCAS | SRQI,
|
|
};
|
|
|
|
/* End-of-string (EOS) modes for use with ibeos */
|
|
|
|
enum eos_flags {
|
|
EOS_MASK = 0x1c00,
|
|
REOS = 0x0400, /* Terminate reads on EOS */
|
|
XEOS = 0x800, /* assert EOI when EOS char is sent */
|
|
BIN = 0x1000 /* Do 8-bit compare on EOS */
|
|
};
|
|
|
|
/* GPIB Bus Control Lines bit vector */
|
|
enum bus_control_line {
|
|
VALID_DAV = 0x01,
|
|
VALID_NDAC = 0x02,
|
|
VALID_NRFD = 0x04,
|
|
VALID_IFC = 0x08,
|
|
VALID_REN = 0x10,
|
|
VALID_SRQ = 0x20,
|
|
VALID_ATN = 0x40,
|
|
VALID_EOI = 0x80,
|
|
VALID_ALL = 0xff,
|
|
BUS_DAV = 0x0100, /* DAV line status bit */
|
|
BUS_NDAC = 0x0200, /* NDAC line status bit */
|
|
BUS_NRFD = 0x0400, /* NRFD line status bit */
|
|
BUS_IFC = 0x0800, /* IFC line status bit */
|
|
BUS_REN = 0x1000, /* REN line status bit */
|
|
BUS_SRQ = 0x2000, /* SRQ line status bit */
|
|
BUS_ATN = 0x4000, /* ATN line status bit */
|
|
BUS_EOI = 0x8000 /* EOI line status bit */
|
|
};
|
|
|
|
enum ppe_bits {
|
|
PPC_DISABLE = 0x10,
|
|
PPC_SENSE = 0x8, /* parallel poll sense bit */
|
|
PPC_DIO_MASK = 0x7
|
|
};
|
|
|
|
enum {
|
|
request_service_bit = 0x40,
|
|
};
|
|
|
|
enum gpib_events {
|
|
EVENT_NONE = 0,
|
|
EVENT_DEV_TRG = 1,
|
|
EVENT_DEV_CLR = 2,
|
|
EVENT_IFC = 3
|
|
};
|
|
|
|
#endif /* _GPIB_H */
|
|
|