addi_apci_2032.c revision bf36f012c7ddaff083bb0ef187feddf4d85507a0
1#include "../comedidev.h" 2#include "comedi_fc.h" 3#include "amcc_s5933.h" 4 5#include "addi-data/addi_common.h" 6 7#include "addi-data/addi_eeprom.c" 8#include "addi-data/hwdrv_apci2032.c" 9#include "addi-data/addi_common.c" 10 11static const struct addi_board apci2032_boardtypes[] = { 12 { 13 .pc_DriverName = "apci2032", 14 .i_VendorId = PCI_VENDOR_ID_ADDIDATA, 15 .i_DeviceId = 0x1004, 16 .i_IorangeBase0 = 4, 17 .i_IorangeBase1 = APCI2032_ADDRESS_RANGE, 18 .i_PCIEeprom = ADDIDATA_EEPROM, 19 .pc_EepromChip = ADDIDATA_93C76, 20 .i_NbrDoChannel = 32, 21 .i_DoMaxdata = 0xffffffff, 22 .i_Timer = 1, 23 .interrupt = v_APCI2032_Interrupt, 24 .reset = i_APCI2032_Reset, 25 .do_config = i_APCI2032_ConfigDigitalOutput, 26 .do_write = i_APCI2032_WriteDigitalOutput, 27 .do_bits = i_APCI2032_ReadDigitalOutput, 28 .do_read = i_APCI2032_ReadInterruptStatus, 29 .timer_config = i_APCI2032_ConfigWatchdog, 30 .timer_write = i_APCI2032_StartStopWriteWatchdog, 31 .timer_read = i_APCI2032_ReadWatchdog, 32 }, 33}; 34 35static struct comedi_driver apci2032_driver = { 36 .driver_name = "addi_apci_2032", 37 .module = THIS_MODULE, 38 .attach_pci = addi_attach_pci, 39 .detach = i_ADDI_Detach, 40 .num_names = ARRAY_SIZE(apci2032_boardtypes), 41 .board_name = &apci2032_boardtypes[0].pc_DriverName, 42 .offset = sizeof(struct addi_board), 43}; 44 45static int __devinit apci2032_pci_probe(struct pci_dev *dev, 46 const struct pci_device_id *ent) 47{ 48 return comedi_pci_auto_config(dev, &apci2032_driver); 49} 50 51static void __devexit apci2032_pci_remove(struct pci_dev *dev) 52{ 53 comedi_pci_auto_unconfig(dev); 54} 55 56static DEFINE_PCI_DEVICE_TABLE(apci2032_pci_table) = { 57 { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x1004) }, 58 { 0 } 59}; 60MODULE_DEVICE_TABLE(pci, apci2032_pci_table); 61 62static struct pci_driver apci2032_pci_driver = { 63 .name = "addi_apci_2032", 64 .id_table = apci2032_pci_table, 65 .probe = apci2032_pci_probe, 66 .remove = __devexit_p(apci2032_pci_remove), 67}; 68module_comedi_pci_driver(apci2032_driver, apci2032_pci_driver); 69 70MODULE_AUTHOR("Comedi http://www.comedi.org"); 71MODULE_DESCRIPTION("Comedi low-level driver"); 72MODULE_LICENSE("GPL"); 73