[PATCH] CAN: sja1000: Add support for Connect Tech Inc's Canpro/104-Plus Opto CAN board

Muhammad Ghias
2012-10-16T21:16:56Z

Patch adds support for CANpro/104-Plus Opto CAN board. Board uses PLX9030
bridge and two NXP SJA1000 CAN controllers. Patch is generated and tested
with kernel 3.6.1.

If you have any questions or any feedback please let me know.

Thanks,

Signed-off-by: Muhammad Ghias <mghias@connecttech.com>
---
diff -uprN -X linux-3.6.1-vanilla/Documentation/dontdiff
linux-3.6.1-vanilla/drivers/net/can/sja1000/Kconfig
linux-3.6.1/drivers/net/can/sja1000/Kconfig
--- linux-3.6.1-vanilla/drivers/net/can/sja1000/Kconfig 2012-10-07
11:41:28.000000000 -0400
+++ linux-3.6.1/drivers/net/can/sja1000/Kconfig 2012-10-16
10:04:46.000000000 -0400
@@ -93,6 +93,7 @@ config CAN_PLX_PCI
- 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/)
+ - Connect Tech Inc. CANpro/104-Plus Opto (CRG001) card
(http://www.connecttech.com)

config CAN_TSCAN1
tristate "TS-CAN1 PC104 boards"
diff -uprN -X linux-3.6.1-vanilla/Documentation/dontdiff
linux-3.6.1-vanilla/drivers/net/can/sja1000/plx_pci.c
linux-3.6.1/drivers/net/can/sja1000/plx_pci.c
--- linux-3.6.1-vanilla/drivers/net/can/sja1000/plx_pci.c 2012-10-07
11:41:28.000000000 -0400
+++ linux-3.6.1/drivers/net/can/sja1000/plx_pci.c 2012-10-16
10:11:05.000000000 -0400
@@ -44,6 +44,7 @@ MODULE_SUPPORTED_DEVICE("Adlink PCI-7841
"esd CAN-PCI/CPCI/PCI104/200, "
"esd CAN-PCI/PMC/266, "
"esd CAN-PCIe/2000, "
+ "Connect Tech Inc. CANpro/104-Plus Opto (CRG001), "
"IXXAT PC-I 04/PCI")
MODULE_LICENSE("GPL v2");

@@ -131,6 +132,9 @@ struct plx_pci_card {
#define TEWS_PCI_VENDOR_ID 0x1498
#define TEWS_PCI_DEVICE_ID_TMPC810 0x032A

+#define CTI_PCI_VENDOR_ID 0x12c4
+#define CTI_PCI_DEVICE_ID_CRG001 0x0900
+
static void plx_pci_reset_common(struct pci_dev *pdev);
static void plx_pci_reset_marathon(struct pci_dev *pdev);
static void plx9056_pci_reset_common(struct pci_dev *pdev);
@@ -222,6 +226,14 @@ static struct plx_pci_card_info plx_pci_
/* based on PLX9030 */
};

+static struct plx_pci_card_info plx_pci_card_info_cti __devinitdata = {
+ "Connect Tech Inc. CANpro/104-Plus Opto (CRG001)", 2,
+ PLX_PCI_CAN_CLOCK, PLX_PCI_OCR, PLX_PCI_CDR,
+ {0, 0x00, 0x00}, { {2, 0x000, 0x80}, {2, 0x100, 0x80} },
+ &plx_pci_reset_common
+ /* based on PLX9030 */
+};
+
static DEFINE_PCI_DEVICE_TABLE(plx_pci_tbl) = {
{
/* Adlink PCI-7841/cPCI-7841 */
@@ -300,6 +312,13 @@ static DEFINE_PCI_DEVICE_TABLE(plx_pci_t
0, 0,
(kernel_ulong_t)&plx_pci_card_info_tews
},
+ {
+ /* Connect Tech Inc. CANpro/104-Plus Opto (CRG001) card */
+ PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030,
+ CTI_PCI_VENDOR_ID, CTI_PCI_DEVICE_ID_CRG001,
+ 0, 0,
+ (kernel_ulong_t)&plx_pci_card_info_cti
+ },
{ 0,}
};
MODULE_DEVICE_TABLE(pci, plx_pci_tbl);