Skip to content

Commit

Permalink
can: c_can: Added support for Bosch C_CAN controller
Browse files Browse the repository at this point in the history
Bosch C_CAN controller is a full-CAN implementation which is compliant
to CAN protocol version 2.0 part A and B. Bosch C_CAN user manual can be
obtained from:

http://www.semiconductors.bosch.de/media/en/pdf/ipmodules_1/c_can/users_manual_c_can.pdf

This patch adds the support for this controller.
The following are the design choices made while writing the controller
driver:
1. Interface Register set IF1 has be used only in the current design.
2. Out of the 32 Message objects available, 16 are kept aside for RX
   purposes and the rest for TX purposes.
3. NAPI implementation is such that both the TX and RX paths function
   in polling mode.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Bhupesh Sharma authored and David S. Miller committed Feb 14, 2011
1 parent c906041 commit 881ff67
Show file tree
Hide file tree
Showing 7 changed files with 1,485 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/net/can/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ source "drivers/net/can/mscan/Kconfig"

source "drivers/net/can/sja1000/Kconfig"

source "drivers/net/can/c_can/Kconfig"

source "drivers/net/can/usb/Kconfig"

source "drivers/net/can/softing/Kconfig"
Expand Down
1 change: 1 addition & 0 deletions drivers/net/can/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ obj-y += softing/

obj-$(CONFIG_CAN_SJA1000) += sja1000/
obj-$(CONFIG_CAN_MSCAN) += mscan/
obj-$(CONFIG_CAN_C_CAN) += c_can/
obj-$(CONFIG_CAN_AT91) += at91_can.o
obj-$(CONFIG_CAN_TI_HECC) += ti_hecc.o
obj-$(CONFIG_CAN_MCP251X) += mcp251x.o
Expand Down
15 changes: 15 additions & 0 deletions drivers/net/can/c_can/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
menuconfig CAN_C_CAN
tristate "Bosch C_CAN devices"
depends on CAN_DEV && HAS_IOMEM

if CAN_C_CAN

config CAN_C_CAN_PLATFORM
tristate "Generic Platform Bus based C_CAN driver"
---help---
This driver adds support for the C_CAN chips connected to
the "platform bus" (Linux abstraction for directly to the
processor attached devices) which can be found on various
boards from ST Microelectronics (http://www.st.com)
like the SPEAr1310 and SPEAr320 evaluation boards.
endif
8 changes: 8 additions & 0 deletions drivers/net/can/c_can/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#
# Makefile for the Bosch C_CAN controller drivers.
#

obj-$(CONFIG_CAN_C_CAN) += c_can.o
obj-$(CONFIG_CAN_C_CAN_PLATFORM) += c_can_platform.o

ccflags-$(CONFIG_CAN_DEBUG_DEVICES) := -DDEBUG
Loading

0 comments on commit 881ff67

Please sign in to comment.