]> git.baikalelectronics.ru Git - kernel.git/commit
can: c_can: Add support for Bosch D_CAN controller
authorAnilKumar Ch <anilkumar@ti.com>
Tue, 29 May 2012 05:43:16 +0000 (11:13 +0530)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 7 Jun 2012 08:02:27 +0000 (10:02 +0200)
commit049b736934419580b09ec5092083d72317350dc0
treeef9487a9cab32ed0baa50749b4dbbe2232e0af99
parent628900d4845cced6299d2677b957b324595edbc7
can: c_can: Add support for Bosch D_CAN controller

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: AnilKumar Ch <anilkumar@ti.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/c_can/Kconfig
drivers/net/can/c_can/c_can.h
drivers/net/can/c_can/c_can_platform.c