linux-kernelorg-stable/drivers/comedi/drivers
Ian Abbott 20f2044bae comedi: Add new driver for ADLink PCI-7250 series
The ADLink PCI-7250, LPCI-7250, and LPCIe-7250 are PCI/PCIe boards with
8 relay outputs and 8 isolated digital inputs.  Add a new Comedi driver
"adl_pci7250" to support them.

It is possible to add up to three PCI-7251 plug-in modules to the
PCI-7250, with 8 relay outputs and 8 isolated digital inputs per plug-in
module.  We cannot reliably detect whether the modules are fitted
without changing their state.  It is harmless to assume the modules are
fitted; they just won't do anything, so the driver allows all 32 relay
outputs to be written (and their initial state to be read), and all 32
digital inputs to be read.

The LPCI-7250 and LPCIe-7250 are low-profile boards that do not support
the plug-in modules, but except for a newer variant of the LPCIe-7250,
they cannot be distinguished from the full-height boards by their PCI
IDs.  For the newer variant of the LPCIe-7250, we can assume that there
are no plug-in modules fitted and limit the number of channels
accordingly.  This newer variant of the LPCIe-7250 uses memory-mapped
registers, whereas all the other boards use port-mapped registers.

I have tested the PCI-7250.  The new variant of the LPCIe-7250 has been
tested in an out-of-tree version of the Comedi drivers by someone else.

Tested-by: Ian Abbott <abbotti@mev.co.uk> # PCI-7250 only
Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Link: https://lore.kernel.org/r/20250821145914.10445-1-abbotti@mev.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-09-06 16:03:25 +02:00
..
ni_routing comedi: ni_routing: tools: Check when the file could not be opened 2024-09-11 16:03:28 +02:00
tests
8255.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
8255_pci.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
Makefile comedi: Add new driver for ADLink PCI-7250 series 2025-09-06 16:03:25 +02:00
addi_apci_3xxx.c
addi_apci_16xx.c
addi_apci_1032.c
addi_apci_1500.c
addi_apci_1516.c
addi_apci_1564.c
addi_apci_2032.c
addi_apci_2200.c
addi_apci_3120.c
addi_apci_3501.c
addi_tcw.h
addi_watchdog.c
addi_watchdog.h
adl_pci7x3x.c
adl_pci6208.c
adl_pci7250.c comedi: Add new driver for ADLink PCI-7250 series 2025-09-06 16:03:25 +02:00
adl_pci8164.c
adl_pci9111.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
adl_pci9118.c comedi: drivers: adl_pci9118.c: Edit file so that checkpatch.pl has 0 typo errors 2025-05-08 20:24:14 +02:00
adq12b.c
adv_pci1710.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
adv_pci1720.c
adv_pci1723.c
adv_pci1724.c
adv_pci1760.c
adv_pci_dio.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
aio_aio12_8.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
aio_iiro_16.c comedi: aio_iiro_16: Fix bit shift out of bounds 2025-07-16 15:02:44 +02:00
amcc_s5933.h
amplc_dio200.c
amplc_dio200.h
amplc_dio200_common.c comedi: amplc_dio200_common: Conditionally remove I/O port support 2023-10-05 13:34:04 +02:00
amplc_dio200_pci.c comedi: amplc_dio200_pci: Conditionally remove devices that use port I/O 2023-10-05 13:34:04 +02:00
amplc_pc236.c
amplc_pc236.h
amplc_pc236_common.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
amplc_pc263.c
amplc_pci224.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
amplc_pci230.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
amplc_pci236.c
amplc_pci263.c
c6xdigio.c
cb_das16_cs.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
cb_pcidas.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
cb_pcidas64.c comedi: remove unused helper function dma_chain_flag_bits 2024-04-11 15:12:07 +02:00
cb_pcidda.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
cb_pcimdas.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
cb_pcimdda.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
comedi_8254.c comedi: comedi_8254: Conditionally remove I/O port support 2023-10-05 13:34:04 +02:00
comedi_8255.c comedi: comedi_8255: Correct error in subdevice initialization 2024-03-05 14:21:42 +00:00
comedi_bond.c
comedi_isadma.c
comedi_parport.c
comedi_test.c comedi: comedi_test: Fix possible deletion of uninitialized timers 2025-07-16 15:02:44 +02:00
contec_pci_dio.c
dac02.c
daqboard2000.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
das08.c comedi: remove redundant assignment to variable range 2024-02-18 19:17:11 +01:00
das08.h
das08_cs.c
das08_isa.c
das08_pci.c
das16.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
das16m1.c comedi: das16m1: Fix bit shift out of bounds 2025-07-16 15:02:26 +02:00
das800.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
das1800.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
das6402.c comedi: das6402: Fix bit shift out of bounds 2025-07-16 15:02:44 +02:00
dmm32at.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
dt282x.c
dt2801.c
dt2811.c
dt2814.c
dt2815.c
dt2817.c
dt3000.c
dt9812.c
dyna_pci10xx.c
fl512.c
gsc_hpdi.c
icp_multi.c
ii_pci20kc.c
jr3_pci.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
jr3_pci.h
ke_counter.c
me4000.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
me_daq.c
mf6x4.c
mite.c
mite.h
mpc624.c
multiq3.c
ni_65xx.c
ni_660x.c
ni_670x.c
ni_6527.c
ni_at_a2150.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
ni_at_ao.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
ni_atmio.c comedi: ni_atmio: avoid warning for unused device_ids[] table 2025-04-17 10:56:11 +02:00
ni_atmio16d.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
ni_daq_700.c
ni_daq_dio24.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
ni_labpc.c
ni_labpc.h
ni_labpc_common.c comedi: ni_labpc_common: Conditionally remove I/O port support 2023-10-05 13:34:04 +02:00
ni_labpc_cs.c
ni_labpc_isadma.c
ni_labpc_isadma.h
ni_labpc_pci.c
ni_labpc_regs.h
ni_mio_common.c comedi: ni_*: do not declare unused variable range_ni_E_ao_ext 2024-07-31 13:11:43 +02:00
ni_mio_cs.c
ni_pcidio.c comedi: ni_pcidio: Do not bother filling buffer with 0xaa byte values 2025-04-25 15:53:18 +02:00
ni_pcimio.c comedi: ni_*: do not declare unused variable range_ni_E_ao_ext 2024-07-31 13:11:43 +02:00
ni_routes.c
ni_routes.h
ni_stc.h comedi: ni_*: do not declare unused variable range_ni_E_ao_ext 2024-07-31 13:11:43 +02:00
ni_tio.c
ni_tio.h
ni_tio_internal.h
ni_tiocmd.c
ni_usb6501.c
pcl711.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
pcl724.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
pcl726.c comedi: pcl726: Prevent invalid irq number 2025-08-19 12:56:16 +02:00
pcl730.c
pcl812.c comedi: pcl812: Fix bit shift out of bounds 2025-07-16 15:02:44 +02:00
pcl816.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
pcl818.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
pcm3724.c comedi: comedi_8255: Rework subdevice initialization functions 2023-10-05 13:34:04 +02:00
pcmad.c
pcmda12.c
pcmmio.c
pcmuio.c
plx9052.h
plx9080.h
quatech_daqp_cs.c
rtd520.c comedi: comedi_8254: Replace comedi_8254_init() and comedi_8254_mm_init() 2023-10-05 13:34:04 +02:00
rti800.c
rti802.c
s526.c
s626.c
s626.h
ssv_dnp.c
usbdux.c
usbduxfast.c
usbduxsigma.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
vmk80xx.c comedi: vmk80xx: fix incomplete endpoint checking 2024-04-11 15:16:23 +02:00
z8536.h