• Ramesh Shanmugasundaram's avatar
    can: rcar_canfd: Add Renesas R-Car CAN FD driver · dd3bd23e
    Ramesh Shanmugasundaram authored
    This patch adds support for the CAN FD controller found in Renesas R-Car
    SoCs. The controller operates in CAN FD only mode by default.
    
    CAN FD mode supports both Classical CAN & CAN FD frame formats. The
    controller supports ISO 11898-1:2015 CAN FD format only.
    
    This controller supports two channels and the driver can enable either
    or both of the channels.
    
    Driver uses Rx FIFOs (one per channel) for reception & Common FIFOs (one
    per channel) for transmission. Rx filter rules are configured to the
    minimum (one per channel) and it accepts Standard, Extended, Data &
    Remote Frame combinations.
    
    Note: There are few documentation errors in R-Car Gen3 Hardware User
    Manual v0.5E with respect to CAN FD controller. They are listed below:
    
    1. CAN FD interrupt numbers 29 & 30 are listed as per channel
    interrupts. However, they are common to both channels (i.e.) they are
    global and channel interrupts respectively.
    
    2. CANFD clock is derived from PLL1. This is not documented.
    
    3. CANFD clock is further divided by (1/2) within the CAN FD controller.
    This is not documented.
    
    4. The minimum value of NTSEG1 in RSCFDnCFDCmNCFG register is 2 Tq. It
    is specified 4 Tq in the manual.
    
    5. The maximum number of message RAM area the controller can use is 3584
    bytes. It is specified 10752 bytes in the manual.
    Signed-off-by: default avatarRamesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Reviewed-by: default avatarUlrich Hecht <ulrich.hecht+renesas@gmail.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    dd3bd23e
rcar_canfd.c 48.1 KB