menuconfig CAN_SJA1000
	tristate "Philips/NXP SJA1000 devices"
	depends on CAN_DEV && HAS_IOMEM

if CAN_SJA1000

config CAN_SJA1000_ISA
	tristate "ISA Bus based legacy SJA1000 driver"
	---help---
	  This driver adds legacy support for SJA1000 chips connected to
	  the ISA bus using I/O port, memory mapped or indirect access.

config CAN_SJA1000_PLATFORM
	tristate "Generic Platform Bus based SJA1000 driver"
	---help---
	  This driver adds support for the SJA1000 chips connected to
	  the "platform bus" (Linux abstraction for directly to the
	  processor attached devices).  Which can be found on various
	  boards from Phytec (http://www.phytec.de) like the PCM027,
	  PCM038.

config CAN_SJA1000_OF_PLATFORM
	tristate "Generic OF Platform Bus based SJA1000 driver"
	depends on PPC_OF
	---help---
	  This driver adds support for the SJA1000 chips connected to
	  the OpenFirmware "platform bus" found on embedded systems with
	  OpenFirmware bindings, e.g. if you have a PowerPC based system
	  you may want to enable this option.

config CAN_EMS_PCMCIA
	tristate "EMS CPC-CARD Card"
	depends on PCMCIA
	---help---
	  This driver is for the one or two channel CPC-CARD cards from
	  EMS Dr. Thomas Wuensche (http://www.ems-wuensche.de).

config CAN_EMS_PCI
	tristate "EMS CPC-PCI, CPC-PCIe and CPC-104P Card"
	depends on PCI
	---help---
	  This driver is for the one, two or four channel CPC-PCI,
	  CPC-PCIe and CPC-104P cards from EMS Dr. Thomas Wuensche
	  (http://www.ems-wuensche.de).

config CAN_PEAK_PCMCIA
	tristate "PEAK PCAN-PC Card"
	depends on PCMCIA
	---help---
	  This driver is for the PCAN-PC Card PCMCIA adapter (1 or 2 channels)
	  from PEAK-System (http://www.peak-system.com). To compile this
	  driver as a module, choose M here: the module will be called
	  peak_pcmcia.

config CAN_PEAK_PCI
	tristate "PEAK PCAN-PCI/PCIe/miniPCI Cards"
	depends on PCI
	---help---
	  This driver is for the PCAN-PCI/PCIe/miniPCI cards
	  (1, 2, 3 or 4 channels) from PEAK-System Technik
	  (http://www.peak-system.com).

config CAN_PEAK_PCIEC
	bool "PEAK PCAN-ExpressCard Cards"
	depends on CAN_PEAK_PCI
	select I2C
	select I2C_ALGOBIT
	default y
	---help---
	  Say Y here if you want to use a PCAN-ExpressCard from PEAK-System
	  Technik. This will also automatically select I2C and I2C_ALGO
	  configuration options.

config CAN_KVASER_PCI
	tristate "Kvaser PCIcanx and Kvaser PCIcan PCI Cards"
	depends on PCI
	---help---
	  This driver is for the PCIcanx and PCIcan cards (1, 2 or
	  4 channel) from Kvaser (http://www.kvaser.com).

config CAN_PLX_PCI
	tristate "PLX90xx PCI-bridge based Cards"
	depends on PCI
	---help---
	  This driver is for CAN interface cards based on
	  the PLX90xx PCI bridge.
	  Driver supports now:
	   - Adlink PCI-7841/cPCI-7841 card (http://www.adlinktech.com/)
	   - Adlink PCI-7841/cPCI-7841 SE card
	   - esd CAN-PCI/CPCI/PCI104/200 (http://www.esd.eu/)
	   - esd CAN-PCI/PMC/266
	   - esd CAN-PCIe/2000
	   - Marathon CAN-bus-PCI card (http://www.marathon.ru/)
	   - TEWS TECHNOLOGIES TPMC810 card (http://www.tews.com/)
	   - IXXAT Automation PC-I 04/PCI card (http://www.ixxat.com/)

config CAN_TSCAN1
	tristate "TS-CAN1 PC104 boards"
	depends on ISA
	help
	This driver is for Technologic Systems' TSCAN-1 PC104 boards.
	http://www.embeddedarm.com/products/board-detail.php?product=TS-CAN1
	The driver supports multiple boards and automatically configures them:
	PLD IO base addresses are read from jumpers JP1 and JP2,
	IRQ numbers are read from jumpers JP4 and JP5,
	SJA1000 IO base addresses are chosen heuristically (first that works).

endif
