Linux 3.9-rc5
[deliverable/linux.git] / drivers / staging / comedi / drivers / addi_apci_035.c
1 #include <linux/pci.h>
2
3 #include "../comedidev.h"
4 #include "comedi_fc.h"
5 #include "amcc_s5933.h"
6
7 #include "addi-data/addi_common.h"
8
9 #define ADDIDATA_WATCHDOG 2 /* Or shold it be something else */
10
11 #include "addi-data/addi_eeprom.c"
12 #include "addi-data/hwdrv_apci035.c"
13 #include "addi-data/addi_common.c"
14
15 static const struct addi_board apci035_boardtypes[] = {
16 {
17 .pc_DriverName = "apci035",
18 .i_VendorId = PCI_VENDOR_ID_ADDIDATA,
19 .i_DeviceId = 0x0300,
20 .i_IorangeBase0 = 127,
21 .i_IorangeBase1 = APCI035_ADDRESS_RANGE,
22 .i_PCIEeprom = 1,
23 .pc_EepromChip = ADDIDATA_S5920,
24 .i_NbrAiChannel = 16,
25 .i_NbrAiChannelDiff = 8,
26 .i_AiChannelList = 16,
27 .i_AiMaxdata = 0xff,
28 .pr_AiRangelist = &range_apci035_ai,
29 .i_Timer = 1,
30 .ui_MinAcquisitiontimeNs = 10000,
31 .ui_MinDelaytimeNs = 100000,
32 .interrupt = v_APCI035_Interrupt,
33 .reset = i_APCI035_Reset,
34 .ai_config = i_APCI035_ConfigAnalogInput,
35 .ai_read = i_APCI035_ReadAnalogInput,
36 .timer_config = i_APCI035_ConfigTimerWatchdog,
37 .timer_write = i_APCI035_StartStopWriteTimerWatchdog,
38 .timer_read = i_APCI035_ReadTimerWatchdog,
39 },
40 };
41
42 static struct comedi_driver apci035_driver = {
43 .driver_name = "addi_apci_035",
44 .module = THIS_MODULE,
45 .auto_attach = addi_auto_attach,
46 .detach = i_ADDI_Detach,
47 .num_names = ARRAY_SIZE(apci035_boardtypes),
48 .board_name = &apci035_boardtypes[0].pc_DriverName,
49 .offset = sizeof(struct addi_board),
50 };
51
52 static int apci035_pci_probe(struct pci_dev *dev,
53 const struct pci_device_id *ent)
54 {
55 return comedi_pci_auto_config(dev, &apci035_driver);
56 }
57
58 static DEFINE_PCI_DEVICE_TABLE(apci035_pci_table) = {
59 { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA, 0x0300) },
60 { 0 }
61 };
62 MODULE_DEVICE_TABLE(pci, apci035_pci_table);
63
64 static struct pci_driver apci035_pci_driver = {
65 .name = "addi_apci_035",
66 .id_table = apci035_pci_table,
67 .probe = apci035_pci_probe,
68 .remove = comedi_pci_auto_unconfig,
69 };
70 module_comedi_pci_driver(apci035_driver, apci035_pci_driver);
71
72 MODULE_AUTHOR("Comedi http://www.comedi.org");
73 MODULE_DESCRIPTION("Comedi low-level driver");
74 MODULE_LICENSE("GPL");
This page took 0.036648 seconds and 5 git commands to generate.