Lines Matching +full:pci +full:- +full:based

1 // SPDX-License-Identifier: GPL-2.0+
3 * COMEDI driver for generic PCI based 8255 digital i/o boards
6 * Based on the tested adl_pci7296 driver written by:
11 * COMEDI - Linux Control and Measurement Device Interface
17 * Description: Generic PCI based 8255 Digital I/O boards
18 * Devices: [ADLink] PCI-7224 (adl_pci-7224), PCI-7248 (adl_pci-7248),
19 * PCI-7296 (adl_pci-7296),
20 * [Measurement Computing] PCI-DIO24 (cb_pci-dio24),
21 * PCI-DIO24H (cb_pci-dio24h), PCI-DIO48H (cb_pci-dio48h),
22 * PCI-DIO96H (cb_pci-dio96h),
23 * [National Instruments] PCI-DIO-96 (ni_pci-dio-96),
24 * PCI-DIO-96B (ni_pci-dio-96b), PXI-6508 (ni_pxi-6508),
25 * PCI-6503 (ni_pci-6503), PCI-6503B (ni_pci-6503b),
26 * PCI-6503X (ni_pci-6503x), PXI-6503 (ni_pxi-6503)
28 * Updated: Wed, 12 Sep 2012 11:52:01 -0700
32 * is supported as a separate 24-channel DIO subdevice.
36 * PCI-7224, PCI-DIO24, PCI-DIO24H, PCI-6503, PCI-6503B, PCI-6503X,
37 * PXI-6503
41 * PCI-7248, PCI-DIO48H
45 * PCI-7296, PCI-DIO96H, PCI-DIO-96, PCI-DIO-96B, PXI-6508
52 * Configuration Options: not applicable, uses PCI auto config.
89 .name = "adl_pci-7224",
94 .name = "adl_pci-7248",
99 .name = "adl_pci-7296",
104 .name = "cb_pci-dio24",
109 .name = "cb_pci-dio24h",
114 .name = "cb_pci-dio48h",
119 .name = "cb_pci-dio48h",
124 .name = "cb_pci-dio96h",
130 .name = "ni_pci-dio-96",
136 .name = "ni_pci-dio-96b",
142 .name = "ni_pxi-6508",
148 .name = "ni_pci-6503",
154 .name = "ni_pci-6503b",
160 .name = "ni_pci-6503x",
166 .name = "ni_pxi-6503",
185 return -ENOMEM; in pci_8255_mite_init()
208 return -ENODEV; in pci_8255_auto_attach()
209 dev->board_ptr = board; in pci_8255_auto_attach()
210 dev->board_name = board->name; in pci_8255_auto_attach()
216 if (board->has_mite) { in pci_8255_auto_attach()
222 if ((pci_resource_flags(pcidev, board->dio_badr) & IORESOURCE_MEM)) { in pci_8255_auto_attach()
223 dev->mmio = pci_ioremap_bar(pcidev, board->dio_badr); in pci_8255_auto_attach()
224 if (!dev->mmio) in pci_8255_auto_attach()
225 return -ENOMEM; in pci_8255_auto_attach()
227 dev->iobase = pci_resource_start(pcidev, board->dio_badr); in pci_8255_auto_attach()
229 dev_err(dev->class_dev, "error! need I/O port support\n"); in pci_8255_auto_attach()
230 return -ENXIO; in pci_8255_auto_attach()
238 ret = comedi_alloc_subdevices(dev, board->n_8255); in pci_8255_auto_attach()
242 for (i = 0; i < board->n_8255; i++) { in pci_8255_auto_attach()
243 s = &dev->subdevices[i]; in pci_8255_auto_attach()
244 if (dev->mmio) in pci_8255_auto_attach()
265 return comedi_pci_auto_config(dev, &pci_8255_driver, id->driver_data); in pci_8255_pci_probe()
290 MODULE_DEVICE_TABLE(pci, pci_8255_pci_table);
300 MODULE_DESCRIPTION("COMEDI - Generic PCI based 8255 Digital I/O boards");