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)
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

index af25a58..fdbc03a 100644 (file)
@@ -8,3 +8,12 @@ Description:
                Default: 1 (termination active)
                Reading: get actual termination state
                Writing: set actual termination state (0=no termination, 1=termination active)
+
+What:          /sys/class/net/<iface>/fwinfo
+Date:          May 2015
+KernelVersion: 3.19
+Contact:       Andreas Gröger <andreas24groeger@gmail.com>
+Description:
+               Firmware stamp of ican3 module
+               Read-only: 32 byte string identification of the ICAN3 module
+               (known values: "JANZ-ICAN3 ICANOS 1.xx", "JANZ-ICAN3 CAL/CANopen 1.xx")
Simple merge
Simple merge