Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e955cead authored by Marc Kleine-Budde's avatar Marc Kleine-Budde
Browse files

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: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
Acked-by: default avatarWolfgang Grandegger <wg@grandegger.com>
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parent 4cfa580e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -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"
+1 −0
Original line number Diff line number Diff line
@@ -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
+1030 −0

File added.

Preview size limit exceeded, changes collapsed.

+20 −0
Original line number Diff line number Diff line
/*
 * 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 */