• Andreas Gröger's avatar
    can: janz-ican3: add support for CAL/CANopen firmware · 844e0edf
    Andreas Gröger authored
    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: default avatarAndreas Gröger <andreas24groeger@gmail.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    844e0edf
janz-ican3.c 47.8 KB