CAN: Add Flexcan CAN controller driver

This core is found on some Freescale SoCs and also some Coldfire
SoCs. Support for Coldfire is missing though at the moment as
they have an older revision of the core which does not have RX FIFO
support.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Acked-by: Wolfgang Grandegger <wg@grandegger.com>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
tirimbino
Marc Kleine-Budde 16 years ago
parent 4cfa580e7e
commit e955cead03
  1. 9
      drivers/net/can/Kconfig
  2. 1
      drivers/net/can/Makefile
  3. 1030
      drivers/net/can/flexcan.c
  4. 20
      include/linux/can/platform/flexcan.h

@ -73,6 +73,15 @@ config CAN_JANZ_ICAN3
This driver can also be built as a module. If so, the module will be
called janz-ican3.ko.
config HAVE_CAN_FLEXCAN
bool
config CAN_FLEXCAN
tristate "Support for Freescale FLEXCAN based chips"
depends on CAN_DEV && HAVE_CAN_FLEXCAN
---help---
Say Y here if you want to support for Freescale FlexCAN.
source "drivers/net/can/mscan/Kconfig"
source "drivers/net/can/sja1000/Kconfig"

@ -16,5 +16,6 @@ obj-$(CONFIG_CAN_TI_HECC) += ti_hecc.o
obj-$(CONFIG_CAN_MCP251X) += mcp251x.o
obj-$(CONFIG_CAN_BFIN) += bfin_can.o
obj-$(CONFIG_CAN_JANZ_ICAN3) += janz-ican3.o
obj-$(CONFIG_CAN_FLEXCAN) += flexcan.o
ccflags-$(CONFIG_CAN_DEBUG_DEVICES) := -DDEBUG

File diff suppressed because it is too large Load Diff

@ -0,0 +1,20 @@
/*
* Copyright (C) 2010 Marc Kleine-Budde <kernel@pengutronix.de>
*
* This file is released under the GPLv2
*
*/
#ifndef __CAN_PLATFORM_FLEXCAN_H
#define __CAN_PLATFORM_FLEXCAN_H
/**
* struct flexcan_platform_data - flex CAN controller platform data
* @transceiver_enable: - called to power on/off the transceiver
*
*/
struct flexcan_platform_data {
void (*transceiver_switch)(int enable);
};
#endif /* __CAN_PLATFORM_FLEXCAN_H */
Loading…
Cancel
Save