aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Kime <kime@ixxat.de>2011-12-12 07:45:58 -0500
committerMarc Kleine-Budde <mkl@pengutronix.de>2012-02-02 19:21:25 -0500
commite08534b57e79fa722e3136b79868a725a8eea0f0 (patch)
tree927f73b51ac38077cda3f430c9f9b91ba92f14da
parent2ee6850ca0cac95101d2a36c8b186b40d4fc7311 (diff)
can: plx_pci: add support for IXXAT PCI cards
This patch adds support for IXXAT passive CAN controllers Signed-off-by: James Kime <kime@ixxat.de> Acked-by: Wolfgang Grandegger <wg@grandegger.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-rw-r--r--drivers/net/can/sja1000/Kconfig1
-rw-r--r--drivers/net/can/sja1000/plx_pci.c22
2 files changed, 22 insertions, 1 deletions
diff --git a/drivers/net/can/sja1000/Kconfig b/drivers/net/can/sja1000/Kconfig
index 36e9d594069d..b21523ddff3c 100644
--- a/drivers/net/can/sja1000/Kconfig
+++ b/drivers/net/can/sja1000/Kconfig
@@ -71,6 +71,7 @@ config CAN_PLX_PCI
71 - esd CAN-PCIe/2000 71 - esd CAN-PCIe/2000
72 - Marathon CAN-bus-PCI card (http://www.marathon.ru/) 72 - Marathon CAN-bus-PCI card (http://www.marathon.ru/)
73 - TEWS TECHNOLOGIES TPMC810 card (http://www.tews.com/) 73 - TEWS TECHNOLOGIES TPMC810 card (http://www.tews.com/)
74 - IXXAT Automation PC-I 04/PCI card (http://www.ixxat.com/)
74 75
75config CAN_TSCAN1 76config CAN_TSCAN1
76 tristate "TS-CAN1 PC104 boards" 77 tristate "TS-CAN1 PC104 boards"
diff --git a/drivers/net/can/sja1000/plx_pci.c b/drivers/net/can/sja1000/plx_pci.c
index c7f3d4ea1167..a227586ddd52 100644
--- a/drivers/net/can/sja1000/plx_pci.c
+++ b/drivers/net/can/sja1000/plx_pci.c
@@ -43,7 +43,8 @@ MODULE_SUPPORTED_DEVICE("Adlink PCI-7841/cPCI-7841, "
43 "TEWS TECHNOLOGIES TPMC810, " 43 "TEWS TECHNOLOGIES TPMC810, "
44 "esd CAN-PCI/CPCI/PCI104/200, " 44 "esd CAN-PCI/CPCI/PCI104/200, "
45 "esd CAN-PCI/PMC/266, " 45 "esd CAN-PCI/PMC/266, "
46 "esd CAN-PCIe/2000") 46 "esd CAN-PCIe/2000, "
47 "IXXAT PC-I 04/PCI")
47MODULE_LICENSE("GPL v2"); 48MODULE_LICENSE("GPL v2");
48 49
49#define PLX_PCI_MAX_CHAN 2 50#define PLX_PCI_MAX_CHAN 2
@@ -121,6 +122,10 @@ struct plx_pci_card {
121#define ESD_PCI_SUB_SYS_ID_PCIE2000 0x0200 122#define ESD_PCI_SUB_SYS_ID_PCIE2000 0x0200
122#define ESD_PCI_SUB_SYS_ID_PCI104200 0x0501 123#define ESD_PCI_SUB_SYS_ID_PCI104200 0x0501
123 124
125#define IXXAT_PCI_VENDOR_ID 0x10b5
126#define IXXAT_PCI_DEVICE_ID 0x9050
127#define IXXAT_PCI_SUB_SYS_ID 0x2540
128
124#define MARATHON_PCI_DEVICE_ID 0x2715 129#define MARATHON_PCI_DEVICE_ID 0x2715
125 130
126#define TEWS_PCI_VENDOR_ID 0x1498 131#define TEWS_PCI_VENDOR_ID 0x1498
@@ -193,6 +198,14 @@ static struct plx_pci_card_info plx_pci_card_info_esd2000 __devinitdata = {
193 /* based on PEX8311 */ 198 /* based on PEX8311 */
194}; 199};
195 200
201static struct plx_pci_card_info plx_pci_card_info_ixxat __devinitdata = {
202 "IXXAT PC-I 04/PCI", 2,
203 PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
204 {0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x200, 0x80} },
205 &plx_pci_reset_common
206 /* based on PLX9050 */
207};
208
196static struct plx_pci_card_info plx_pci_card_info_marathon __devinitdata = { 209static struct plx_pci_card_info plx_pci_card_info_marathon __devinitdata = {
197 "Marathon CAN-bus-PCI", 2, 210 "Marathon CAN-bus-PCI", 2,
198 PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR, 211 PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
@@ -267,6 +280,13 @@ static DEFINE_PCI_DEVICE_TABLE(plx_pci_tbl) = {
267 (kernel_ulong_t)&plx_pci_card_info_esd2000 280 (kernel_ulong_t)&plx_pci_card_info_esd2000
268 }, 281 },
269 { 282 {
283 /* IXXAT PC-I 04/PCI card */
284 IXXAT_PCI_VENDOR_ID, IXXAT_PCI_DEVICE_ID,
285 PCI_ANY_ID, IXXAT_PCI_SUB_SYS_ID,
286 0, 0,
287 (kernel_ulong_t)&plx_pci_card_info_ixxat
288 },
289 {
270 /* Marathon CAN-bus-PCI card */ 290 /* Marathon CAN-bus-PCI card */
271 PCI_VENDOR_ID_PLX, MARATHON_PCI_DEVICE_ID, 291 PCI_VENDOR_ID_PLX, MARATHON_PCI_DEVICE_ID,
272 PCI_ANY_ID, PCI_ANY_ID, 292 PCI_ANY_ID, PCI_ANY_ID,