diff options
-rw-r--r-- | drivers/staging/comedi/Kconfig | 14 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/Makefile | 1 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/addi_apci_3001.c | 88 | ||||
-rw-r--r-- | drivers/staging/comedi/drivers/addi_apci_3120.c | 37 |
4 files changed, 39 insertions, 101 deletions
diff --git a/drivers/staging/comedi/Kconfig b/drivers/staging/comedi/Kconfig index 21a6748d7ad..6246bed00ef 100644 --- a/drivers/staging/comedi/Kconfig +++ b/drivers/staging/comedi/Kconfig | |||
@@ -647,22 +647,12 @@ config COMEDI_ADDI_APCI_2200 | |||
647 | To compile this driver as a module, choose M here: the module will be | 647 | To compile this driver as a module, choose M here: the module will be |
648 | called addi_apci_2200. | 648 | called addi_apci_2200. |
649 | 649 | ||
650 | config COMEDI_ADDI_APCI_3001 | ||
651 | tristate "ADDI-DATA APCI_3001 support" | ||
652 | depends on VIRT_TO_BUS | ||
653 | select COMEDI_FC | ||
654 | ---help--- | ||
655 | Enable support for ADDI-DATA APCI_3001 cards | ||
656 | |||
657 | To compile this driver as a module, choose M here: the module will be | ||
658 | called addi_apci_3001. | ||
659 | |||
660 | config COMEDI_ADDI_APCI_3120 | 650 | config COMEDI_ADDI_APCI_3120 |
661 | tristate "ADDI-DATA APCI_3520 support" | 651 | tristate "ADDI-DATA APCI_3120/3001 support" |
662 | depends on VIRT_TO_BUS | 652 | depends on VIRT_TO_BUS |
663 | select COMEDI_FC | 653 | select COMEDI_FC |
664 | ---help--- | 654 | ---help--- |
665 | Enable support for ADDI-DATA APCI_3520 cards | 655 | Enable support for ADDI-DATA APCI_3120/3001 cards |
666 | 656 | ||
667 | To compile this driver as a module, choose M here: the module will be | 657 | To compile this driver as a module, choose M here: the module will be |
668 | called addi_apci_3120. | 658 | called addi_apci_3120. |
diff --git a/drivers/staging/comedi/drivers/Makefile b/drivers/staging/comedi/drivers/Makefile index a2787c0ca32..c784bedb911 100644 --- a/drivers/staging/comedi/drivers/Makefile +++ b/drivers/staging/comedi/drivers/Makefile | |||
@@ -65,7 +65,6 @@ obj-$(CONFIG_COMEDI_ADDI_APCI_16XX) += addi_apci_16xx.o | |||
65 | obj-$(CONFIG_COMEDI_ADDI_APCI_2016) += addi_apci_2016.o | 65 | obj-$(CONFIG_COMEDI_ADDI_APCI_2016) += addi_apci_2016.o |
66 | obj-$(CONFIG_COMEDI_ADDI_APCI_2032) += addi_apci_2032.o | 66 | obj-$(CONFIG_COMEDI_ADDI_APCI_2032) += addi_apci_2032.o |
67 | obj-$(CONFIG_COMEDI_ADDI_APCI_2200) += addi_apci_2200.o | 67 | obj-$(CONFIG_COMEDI_ADDI_APCI_2200) += addi_apci_2200.o |
68 | obj-$(CONFIG_COMEDI_ADDI_APCI_3001) += addi_apci_3001.o | ||
69 | obj-$(CONFIG_COMEDI_ADDI_APCI_3120) += addi_apci_3120.o | 68 | obj-$(CONFIG_COMEDI_ADDI_APCI_3120) += addi_apci_3120.o |
70 | obj-$(CONFIG_COMEDI_ADDI_APCI_3501) += addi_apci_3501.o | 69 | obj-$(CONFIG_COMEDI_ADDI_APCI_3501) += addi_apci_3501.o |
71 | obj-$(CONFIG_COMEDI_ADDI_APCI_3XXX) += addi_apci_3xxx.o | 70 | obj-$(CONFIG_COMEDI_ADDI_APCI_3XXX) += addi_apci_3xxx.o |
diff --git a/drivers/staging/comedi/drivers/addi_apci_3001.c b/drivers/staging/comedi/drivers/addi_apci_3001.c deleted file mode 100644 index 90506a3d1dc..00000000000 --- a/drivers/staging/comedi/drivers/addi_apci_3001.c +++ /dev/null | |||
@@ -1,88 +0,0 @@ | |||
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_apci3120.c" | ||
9 | #include "addi-data/addi_common.c" | ||
10 | |||
11 | static const struct addi_board apci3001_boardtypes[] = { | ||
12 | { | ||
13 | .pc_DriverName = "apci3001", | ||
14 | .i_VendorId = PCI_VENDOR_ID_ADDIDATA_OLD, | ||
15 | .i_DeviceId = 0x828D, | ||
16 | .i_IorangeBase0 = AMCC_OP_REG_SIZE, | ||
17 | .i_IorangeBase1 = APCI3120_ADDRESS_RANGE, | ||
18 | .i_IorangeBase2 = 8, | ||
19 | .i_PCIEeprom = ADDIDATA_NO_EEPROM, | ||
20 | .i_NbrAiChannel = 16, | ||
21 | .i_NbrAiChannelDiff = 8, | ||
22 | .i_AiChannelList = 16, | ||
23 | .i_AiMaxdata = 0xfff, | ||
24 | .pr_AiRangelist = &range_apci3120_ai, | ||
25 | .i_NbrDiChannel = 4, | ||
26 | .i_NbrDoChannel = 4, | ||
27 | .i_DoMaxdata = 0x0f, | ||
28 | .i_Dma = 1, | ||
29 | .i_Timer = 1, | ||
30 | .b_AvailableConvertUnit = 1, | ||
31 | .ui_MinAcquisitiontimeNs = 10000, | ||
32 | .ui_MinDelaytimeNs = 100000, | ||
33 | .interrupt = v_APCI3120_Interrupt, | ||
34 | .reset = i_APCI3120_Reset, | ||
35 | .ai_config = i_APCI3120_InsnConfigAnalogInput, | ||
36 | .ai_read = i_APCI3120_InsnReadAnalogInput, | ||
37 | .ai_cmdtest = i_APCI3120_CommandTestAnalogInput, | ||
38 | .ai_cmd = i_APCI3120_CommandAnalogInput, | ||
39 | .ai_cancel = i_APCI3120_StopCyclicAcquisition, | ||
40 | .di_read = i_APCI3120_InsnReadDigitalInput, | ||
41 | .di_bits = i_APCI3120_InsnBitsDigitalInput, | ||
42 | .do_config = i_APCI3120_InsnConfigDigitalOutput, | ||
43 | .do_write = i_APCI3120_InsnWriteDigitalOutput, | ||
44 | .do_bits = i_APCI3120_InsnBitsDigitalOutput, | ||
45 | .timer_config = i_APCI3120_InsnConfigTimer, | ||
46 | .timer_write = i_APCI3120_InsnWriteTimer, | ||
47 | .timer_read = i_APCI3120_InsnReadTimer, | ||
48 | }, | ||
49 | }; | ||
50 | |||
51 | static struct comedi_driver apci3001_driver = { | ||
52 | .driver_name = "addi_apci_3001", | ||
53 | .module = THIS_MODULE, | ||
54 | .attach_pci = addi_attach_pci, | ||
55 | .detach = i_ADDI_Detach, | ||
56 | .num_names = ARRAY_SIZE(apci3001_boardtypes), | ||
57 | .board_name = &apci3001_boardtypes[0].pc_DriverName, | ||
58 | .offset = sizeof(struct addi_board), | ||
59 | }; | ||
60 | |||
61 | static int __devinit apci3001_pci_probe(struct pci_dev *dev, | ||
62 | const struct pci_device_id *ent) | ||
63 | { | ||
64 | return comedi_pci_auto_config(dev, &apci3001_driver); | ||
65 | } | ||
66 | |||
67 | static void __devexit apci3001_pci_remove(struct pci_dev *dev) | ||
68 | { | ||
69 | comedi_pci_auto_unconfig(dev); | ||
70 | } | ||
71 | |||
72 | static DEFINE_PCI_DEVICE_TABLE(apci3001_pci_table) = { | ||
73 | { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA_OLD, 0x828d) }, | ||
74 | { 0 } | ||
75 | }; | ||
76 | MODULE_DEVICE_TABLE(pci, apci3001_pci_table); | ||
77 | |||
78 | static struct pci_driver apci3001_pci_driver = { | ||
79 | .name = "addi_apci_3001", | ||
80 | .id_table = apci3001_pci_table, | ||
81 | .probe = apci3001_pci_probe, | ||
82 | .remove = __devexit_p(apci3001_pci_remove), | ||
83 | }; | ||
84 | module_comedi_pci_driver(apci3001_driver, apci3001_pci_driver); | ||
85 | |||
86 | MODULE_AUTHOR("Comedi http://www.comedi.org"); | ||
87 | MODULE_DESCRIPTION("Comedi low-level driver"); | ||
88 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/comedi/drivers/addi_apci_3120.c b/drivers/staging/comedi/drivers/addi_apci_3120.c index 5db6bfc0e22..979b8a9703a 100644 --- a/drivers/staging/comedi/drivers/addi_apci_3120.c +++ b/drivers/staging/comedi/drivers/addi_apci_3120.c | |||
@@ -51,6 +51,42 @@ static const struct addi_board apci3120_boardtypes[] = { | |||
51 | .timer_config = i_APCI3120_InsnConfigTimer, | 51 | .timer_config = i_APCI3120_InsnConfigTimer, |
52 | .timer_write = i_APCI3120_InsnWriteTimer, | 52 | .timer_write = i_APCI3120_InsnWriteTimer, |
53 | .timer_read = i_APCI3120_InsnReadTimer, | 53 | .timer_read = i_APCI3120_InsnReadTimer, |
54 | }, { | ||
55 | .pc_DriverName = "apci3001", | ||
56 | .i_VendorId = PCI_VENDOR_ID_ADDIDATA_OLD, | ||
57 | .i_DeviceId = 0x828D, | ||
58 | .i_IorangeBase0 = AMCC_OP_REG_SIZE, | ||
59 | .i_IorangeBase1 = APCI3120_ADDRESS_RANGE, | ||
60 | .i_IorangeBase2 = 8, | ||
61 | .i_PCIEeprom = ADDIDATA_NO_EEPROM, | ||
62 | .i_NbrAiChannel = 16, | ||
63 | .i_NbrAiChannelDiff = 8, | ||
64 | .i_AiChannelList = 16, | ||
65 | .i_AiMaxdata = 0xfff, | ||
66 | .pr_AiRangelist = &range_apci3120_ai, | ||
67 | .i_NbrDiChannel = 4, | ||
68 | .i_NbrDoChannel = 4, | ||
69 | .i_DoMaxdata = 0x0f, | ||
70 | .i_Dma = 1, | ||
71 | .i_Timer = 1, | ||
72 | .b_AvailableConvertUnit = 1, | ||
73 | .ui_MinAcquisitiontimeNs = 10000, | ||
74 | .ui_MinDelaytimeNs = 100000, | ||
75 | .interrupt = v_APCI3120_Interrupt, | ||
76 | .reset = i_APCI3120_Reset, | ||
77 | .ai_config = i_APCI3120_InsnConfigAnalogInput, | ||
78 | .ai_read = i_APCI3120_InsnReadAnalogInput, | ||
79 | .ai_cmdtest = i_APCI3120_CommandTestAnalogInput, | ||
80 | .ai_cmd = i_APCI3120_CommandAnalogInput, | ||
81 | .ai_cancel = i_APCI3120_StopCyclicAcquisition, | ||
82 | .di_read = i_APCI3120_InsnReadDigitalInput, | ||
83 | .di_bits = i_APCI3120_InsnBitsDigitalInput, | ||
84 | .do_config = i_APCI3120_InsnConfigDigitalOutput, | ||
85 | .do_write = i_APCI3120_InsnWriteDigitalOutput, | ||
86 | .do_bits = i_APCI3120_InsnBitsDigitalOutput, | ||
87 | .timer_config = i_APCI3120_InsnConfigTimer, | ||
88 | .timer_write = i_APCI3120_InsnWriteTimer, | ||
89 | .timer_read = i_APCI3120_InsnReadTimer, | ||
54 | }, | 90 | }, |
55 | }; | 91 | }; |
56 | 92 | ||
@@ -77,6 +113,7 @@ static void __devexit apci3120_pci_remove(struct pci_dev *dev) | |||
77 | 113 | ||
78 | static DEFINE_PCI_DEVICE_TABLE(apci3120_pci_table) = { | 114 | static DEFINE_PCI_DEVICE_TABLE(apci3120_pci_table) = { |
79 | { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA_OLD, 0x818d) }, | 115 | { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA_OLD, 0x818d) }, |
116 | { PCI_DEVICE(PCI_VENDOR_ID_ADDIDATA_OLD, 0x828d) }, | ||
80 | { 0 } | 117 | { 0 } |
81 | }; | 118 | }; |
82 | MODULE_DEVICE_TABLE(pci, apci3120_pci_table); | 119 | MODULE_DEVICE_TABLE(pci, apci3120_pci_table); |