• Jeroen Hofstee's avatar
    can: ti_hecc: ti_hecc_stop(): stop the CPK on down · 59f415c2
    Jeroen Hofstee authored
    When the interface goes down, the CPK should no longer take an active
    part in the CAN-bus communication, like sending acks and error frames.
    So enable configuration mode in ti_hecc_stop, so the CPK is no longer
    active.
    
    When a transceiver switch is present the acks and errors don't make it
    to the bus, but disabling the CPK then does prevent oddities, like
    ti_hecc_reset() failing, since the CPK can become bus-off and starts
    counting the 11 bit recessive bits, which seems to block the reset. It
    can also cause invalid interrupts and disrupt the CAN-bus, since
    transmission can be stopped in the middle of a message, by disabling the
    tranceiver while the CPK is sending.
    
    Since the CPK is disabled after normal power on, it is typically only
    seen when the interface is restarted.
    Signed-off-by: default avatarJeroen Hofstee <jhofstee@victronenergy.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    59f415c2
ti_hecc.c 29.5 KB