can: janz-ican3: add support for CAL/CANopen firmware
authorAndreas Gröger <andreas24groeger@gmail.com>
Tue, 5 May 2015 18:08:34 +0000 (20:08 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Wed, 6 May 2015 06:03:20 +0000 (08:03 +0200)
commit844e0edf42d1847b974427b5597009f1de45496c
tree4d82aa63759b889d1dd41ac92eac7beb066aaad3
parent0d1802ef8fea1eee9bec00319db33ab54202bb0a
can: janz-ican3: add support for CAL/CANopen firmware

In our department we are using some older Janz ICAN3-modules in our dekstop
pcs. There we have slightly different carrier boards than the janz-cmodio
supported in the kernel sources, called CAN-PCI2 with two submodules. But the
pci configuration regions are identical. So extending the supported pci devices
to the corresponding device ids is sufficient to get the drivers working.

* The old ICAN3-modules with firmware 1.28 need more then 250ms for the restart
  after reset. I've increased the timeout to 500ms.
* The janz_ican3 module uses the raw can services of the Janz-firmware, this
  means firmware must be ICANOS/2. Our ICAN3-modules are equipped with
  CAL/CANopen-firmware, so I must use the appropriate commands for the layer
  management services.

Te driver detects the firmware after module reset and selects the commands
matching the firmware. This affects the bus on/off-command
(ican3_set_bus_state) and the configuration of the bittiming
(ican3_set_bittiming). For better diagnostics the detected firmware string is
presented as sysfs attribute (fwinfo).

Signed-off-by: Andreas Gröger <andreas24groeger@gmail.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Documentation/ABI/testing/sysfs-class-net-janz-ican3
drivers/mfd/janz-cmodio.c
drivers/net/can/janz-ican3.c