can: plx_pci: add support for IXXAT PCI cards
authorJames Kime <kime@ixxat.de>
Mon, 12 Dec 2011 12:45:58 +0000 (13:45 +0100)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Fri, 3 Feb 2012 00:21:25 +0000 (01:21 +0100)
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>
drivers/net/can/sja1000/Kconfig
drivers/net/can/sja1000/plx_pci.c

index 36e9d59..b21523d 100644 (file)
@@ -71,6 +71,7 @@ config CAN_PLX_PCI
           - esd CAN-PCIe/2000
           - Marathon CAN-bus-PCI card (http://www.marathon.ru/)
           - TEWS TECHNOLOGIES TPMC810 card (http://www.tews.com/)
+          - IXXAT Automation PC-I 04/PCI card (http://www.ixxat.com/)
 
 config CAN_TSCAN1
        tristate "TS-CAN1 PC104 boards"
index c7f3d4e..a227586 100644 (file)
@@ -43,7 +43,8 @@ MODULE_SUPPORTED_DEVICE("Adlink PCI-7841/cPCI-7841, "
                        "TEWS TECHNOLOGIES TPMC810, "
                        "esd CAN-PCI/CPCI/PCI104/200, "
                        "esd CAN-PCI/PMC/266, "
-                       "esd CAN-PCIe/2000")
+                       "esd CAN-PCIe/2000, "
+                       "IXXAT PC-I 04/PCI")
 MODULE_LICENSE("GPL v2");
 
 #define PLX_PCI_MAX_CHAN 2
@@ -121,6 +122,10 @@ struct plx_pci_card {
 #define ESD_PCI_SUB_SYS_ID_PCIE2000    0x0200
 #define ESD_PCI_SUB_SYS_ID_PCI104200   0x0501
 
+#define IXXAT_PCI_VENDOR_ID            0x10b5
+#define IXXAT_PCI_DEVICE_ID            0x9050
+#define IXXAT_PCI_SUB_SYS_ID           0x2540
+
 #define MARATHON_PCI_DEVICE_ID         0x2715
 
 #define TEWS_PCI_VENDOR_ID             0x1498
@@ -193,6 +198,14 @@ static struct plx_pci_card_info plx_pci_card_info_esd2000 __devinitdata = {
        /* based on PEX8311 */
 };
 
+static struct plx_pci_card_info plx_pci_card_info_ixxat __devinitdata = {
+       "IXXAT PC-I 04/PCI", 2,
+       PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
+       {0, 0x00, 0x00}, { {2, 0x00, 0x80}, {2, 0x200, 0x80} },
+       &plx_pci_reset_common
+       /* based on PLX9050 */
+};
+
 static struct plx_pci_card_info plx_pci_card_info_marathon __devinitdata = {
        "Marathon CAN-bus-PCI", 2,
        PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
@@ -267,6 +280,13 @@ static DEFINE_PCI_DEVICE_TABLE(plx_pci_tbl) = {
                (kernel_ulong_t)&plx_pci_card_info_esd2000
        },
        {
+               /* IXXAT PC-I 04/PCI card */
+               IXXAT_PCI_VENDOR_ID, IXXAT_PCI_DEVICE_ID,
+               PCI_ANY_ID, IXXAT_PCI_SUB_SYS_ID,
+               0, 0,
+               (kernel_ulong_t)&plx_pci_card_info_ixxat
+       },
+       {
                /* Marathon CAN-bus-PCI card */
                PCI_VENDOR_ID_PLX, MARATHON_PCI_DEVICE_ID,
                PCI_ANY_ID, PCI_ANY_ID,