• AnilKumar Ch's avatar
    can: c_can: Add support for Bosch D_CAN controller · 69927fcc
    AnilKumar Ch authored
    This patch adds the support for D_CAN controller driver to the existing
    C_CAN driver.
    
    Bosch D_CAN controller is a full-CAN implementation which is compliant
    to CAN protocol version 2.0 part A and B. Bosch D_CAN user manual can be
    obtained from: http://www.semiconductors.bosch.de/media/en/pdf/
    ipmodules_1/can/d_can_users_manual_111.pdf
    
    A new array is added for accessing the d_can registers, according to d_can
    controller register space.
    
    Current D_CAN implementation has following limitations, this is done
    to avoid large changes to the C_CAN driver.
    1. Message objects are limited to 32, 16 for RX and 16 for TX. C_CAN IP
       supports upto 32 message objects but in case of D_CAN we can configure
       upto 128 message objects.
    2. Using two 16bit reads/writes for accessing the 32bit D_CAN registers.
    3. These patches have been tested on little endian machine, there might
       be some hidden endian-related issues due to the nature of the accesses
       (32-bit registers accessed as 2 16-bit registers). However, I do not
       have a big-endian D_CAN implementation to confirm.
    Signed-off-by: default avatarAnilKumar Ch <anilkumar@ti.com>
    Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    69927fcc
c_can.h 4.61 KB