menu "CAN Device Drivers"
	depends on CAN

config CAN_VCAN
	tristate "Virtual Local CAN Interface (vcan)"
	depends on CAN
	default N
	---help---
	  Similar to the network loopback devices, vcan offers a
	  virtual local CAN interface.

	  This driver can also be built as a module.  If so, the module
	  will be called vcan.

config CAN_SLCAN
	tristate "Serial / USB serial CAN Adaptors (slcan)"
	depends on CAN
	default N
	---help---
	  CAN driver for several 'low cost' CAN interfaces that are attached
	  via serial lines or via USB-to-serial adapters using the LAWICEL
	  ASCII protocol. The driver implements the tty linediscipline N_SLCAN.

	  As only the sending and receiving of CAN frames is implemented, this
	  driver should work with the (serial/USB) CAN hardware from:
	  www.canusb.com / www.can232.com / www.mictronics.de / www.canhack.de

	  Userspace tools to attach the SLCAN line discipline (slcan_attach,
	  slcand) can be found in the can-utils at the SocketCAN SVN, see
	  http://developer.berlios.de/projects/socketcan for details.

	  The slcan driver supports up to 10 CAN netdevices by default which
	  can be changed by the 'maxdev=xx' module option. This driver can
	  also be built as a module. If so, the module will be called slcan.

config CAN_DEV
	tristate "Platform CAN drivers with Netlink support"
	depends on CAN
	default Y
	---help---
	  Enables the common framework for platform CAN drivers with Netlink
	  support. This is the standard library for CAN drivers.
	  If unsure, say Y.

config CAN_CALC_BITTIMING
	bool "CAN bit-timing calculation"
	depends on CAN_DEV
	default Y
	---help---
	  If enabled, CAN bit-timing parameters will be calculated for the
	  bit-rate specified via Netlink argument "bitrate" when the device
	  get started. This works fine for the most common CAN controllers
	  with standard bit-rates but may fail for exotic bit-rates or CAN
	  source clock frequencies. Disabling saves some space, but then the
	  bit-timing parameters must be specified directly using the Netlink
	  arguments "tq", "prop_seg", "phase_seg1", "phase_seg2" and "sjw".
	  If unsure, say Y.

config CAN_AT91
	tristate "Atmel AT91 onchip CAN controller"
	depends on CAN_DEV && ARCH_AT91SAM9263
	---help---
	  This is a driver for the SoC CAN controller in Atmel's AT91SAM9263.

config CAN_TI_HECC
	depends on CAN_DEV && ARCH_OMAP3
	tristate "TI High End CAN Controller"
	---help---
	  Driver for TI HECC (High End CAN Controller) module found on many
	  TI devices. The device specifications are available from www.ti.com

config CAN_MCP251X
	tristate "Microchip MCP251x SPI CAN controllers"
	depends on CAN_DEV && SPI && HAS_DMA
	---help---
	  Driver for the Microchip MCP251x SPI CAN controllers.

config CAN_BFIN
	depends on CAN_DEV && (BF534 || BF536 || BF537 || BF538 || BF539 || BF54x)
	tristate "Analog Devices Blackfin on-chip CAN"
	---help---
	  Driver for the Analog Devices Blackfin on-chip CAN controllers

	  To compile this driver as a module, choose M here: the
	  module will be called bfin_can.

config CAN_JANZ_ICAN3
	tristate "Janz VMOD-ICAN3 Intelligent CAN controller"
	depends on CAN_DEV && MFD_JANZ_CMODIO
	---help---
	  Driver for Janz VMOD-ICAN3 Intelligent CAN controller module, which
	  connects to a MODULbus carrier board.

	  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.

config PCH_CAN
	tristate "PCH CAN"
	depends on CAN_DEV && PCI
	---help---
	  This driver is for PCH CAN of Topcliff which is an IOH for x86
	  embedded processor.
	  This driver can access CAN bus.

source "drivers/net/can/mscan/Kconfig"

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

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

source "drivers/net/can/softing/Kconfig"

config CAN_DEBUG_DEVICES
	bool "CAN devices debugging messages"
	depends on CAN
	default N
	---help---
	  Say Y here if you want the CAN device drivers to produce a bunch of
	  debug messages to the system log.  Select this if you are having
	  a problem with CAN support and want to see more of what is going
	  on.

endmenu
