########################## CAN #######################
config OC_CANFRAMEWORK
	bool "CAN"
	depends on OC_COMM
	help
	  This enables options to configure OCERA CAN/CANopen framework.
	  Actual version requires use of make program version 3.81rc1 or better.

menu "Linux/RT-Linux CAN Driver (LinCAN)"
        depends on OC_CANFRAMEWORK

config OC_LINCAN
	bool "LinCAN - Linux CAN driver"
	depends on OC_CANFRAMEWORK && MODULES
	default y
	help
	  Linux CAN driver
	  ================
	  
	  The driver can be compiled in two modes:
	  - Linux only driver, prerequisite is only kernel modules support
	  - Linux+RT-Linux driver
	  The RT-Linux and RT-Linux dynamic memory support is required for
	  the second compilation mode. Driver provides equivalent device
	  driver API for both Linux and RT-Linux in such case.
	  
	  The more documentation can be found on OCERA (http://www.ocera.org) site.
	  Temporary version of the documentation can be found at:
	  
	  http://cmp.felk.cvut.cz/~pisa/can/doc/lincandoc-0.2.pdf

config OC_LINCANRTL
	bool "LinCAN RT-Linux API support"
	depends on OC_LINCAN && MODULES && RTLINUX && RTL_OC_DYNMEM
	default y
	help
	  RT-Linux application interface to LinCAN driver.
	  This modifies behavior of the LinCAN driver,
	  the chips supporting interrupt routines are called
	  from RT-Linux worker threads.

config OC_LINCANVME
        bool "LinCAN VME bus support"
	depends on OC_LINCAN && MODULES
        default n
	help
	  Support for VME bus. This option adds support for VME bus
          currently provided by ca91c042 driver for Tundra Universe II
          VME-PCI brige.

comment "===========> Supported peripheral access methods  <==========="

choice 
	prompt "Select type of card access"
	depends on OC_LINCAN
	default OC_LINCAN_DYNAMICIO
	help
	  Select which board kinds are supported by the LinCAN driver.

	  The first choice is to support only cards with
	  linear I/O port chip access style. 
	  
	  The second choice is to support cards with directly 
	  memory mapped chips.
	  
	  The third choice enables runtime selection of the chip
	  access style when card registration function is invoked.
	  This can be used for cards with segmented and indexed
	  mapping of the chips as well.

config OC_LINCAN_PORTIO_ONLY
	bool "Only plain port IO access cards support compiled"

config OC_LINCAN_MEMIO_ONLY
	bool "Only plain memory mapped cards support compiled"

config OC_LINCAN_DYNAMICIO
	bool "Both port IO and memory mapped cards support"
	help
	  The driver will compile with dynamic port access.
	  This enables to support both, memory mapped and port IO
	  style cards and cards, which use segmented and indexed
	  access to chip ports.
	  
	  This is best choice for general case, but results in 
	  slightly bigger chip access overhead.	  

endchoice 

comment "===========> Selection of supported cards <==========="


config OC_LINCAN_CARD_adlink7841
	bool "PCI-7841 card (ADLINK)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_aim104
	bool "AIM104CAN PC/104 card (Arcom Control Systems)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_bfadcan
	bool "BfaD CAN card (BfaD GmbH)"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_cc_can104
	bool "CAN104 PC/104 card (Contemporary Controls)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_ems_cpcpci
	bool "EMS CPC-PCI card support"
	depends on OC_LINCAN_DYNAMICIO
	default n
	help
		Support for EMS Wuensche CPC-PCI dual SJA1000 card
		For more informations about this card look at
		page http://www.ems-wuensche.com/

config OC_LINCAN_CARD_eb8245
	bool "EB8245 onboard CAN (Kontron)"
	depends on OC_LINCAN_MEMIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_m437
	bool "M436 PC/104 card (SECO)"
	depends on OC_LINCAN_MEMIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_msmcan
	bool "MSMCAN PC/104 card (MICROSPACE)"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_nsi
	bool "CAN104 PC/104 card (NSI)"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_pc_i03
	bool "PC-I03 ISA card (IXXAT)"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_pcan_dongle
	bool "PCAN parallel port dongle (PEAK System-Technik GmbH)"
	depends on OC_LINCAN_DYNAMICIO && CONFIG_PARPORT_PC
	default y

config OC_LINCAN_CARD_pccan
	bool "PCcan-Q/D/S/F ISA cards (KVASER)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_kv_pcican
	bool "PCIcan-Q/D/S PCI cards (KVASER)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_pcccan
	bool "PCCCAN card"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_pcm3680
	bool "PCM-3680 PC/104 card (Advantech)"
	depends on OC_LINCAN_MEMIO_ONLY || OC_LINCAN_DYNAMICIO
	default y
	help
		PC104 Advantech PCM3680 dual channel board

config OC_LINCAN_CARD_pikronisa
	bool "ISA memory mapped sja1000 CAN card (PiKRON Ltd.)"
	depends on OC_LINCAN_MEMIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_pip
	bool "pip5 computer (MPL)"
	depends on OC_LINCAN_PORTIO_ONLY || OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_smartcan
	bool "SmartCAN card"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_ssv
	bool "SSV card"
	depends on OC_LINCAN_DYNAMICIO
	default y

config OC_LINCAN_CARD_unican
	bool "Unicontrols PCAN cards series support"
	depends on OC_LINCAN
	default n
	help
		Support for Unicontrols ISA/PC104 PCAN cards series.
		For more informations about these cards look at
		page  http://www.unicontrols.cz/eng/products/isa/pc_104.asp 
		Driver supports Linux and RT-Linux clients CAN API.

config OC_LINCAN_CARD_template
	bool "Template driver for other cards"
	depends on OC_LINCAN
	default y
	help
		Board support skeleton template for yet unsupported hardware.

config OC_LINCAN_CARD_virtual
	bool "Virtual CAN board"
	depends on OC_LINCAN
	default y
	help
		Virtual CAN board support. This enables to interconnect
		local clients/applications with exactly same interface
		as if real CAN bus is used. It can even emulate some
		transfer delays for Linux only compilation.
		It can be used even for interconnection and testing
		of Linux and RT-Linux CAN devices.

endmenu

########################## CAN RTLINUX ###############
menu "Hard Realtime"
        depends on OC_CANFRAMEWORK && RTLINUX

config OC_CANVCARTL
	bool "Virtual CAN API for RT-Linux (Experimental)"
	depends on OC_UNSTABLE
	default n
	help
	  RT-Linux version of VCA library.

config OC_CANDEVRTL
	bool "CANOpen Device for RT-Linux (Not finished yet)"
	depends on OC_CANVCARTL && OC_UNSTABLE
	default n
	help
	  RT-Linux version of CANopen slave device.


endmenu

########################## CAN LINUX #################
menu "Soft Realtime"
        depends on OC_CANFRAMEWORK

config OC_CANVCA
        bool "Virtual CAN API"
        default y
	help
	  This library implements abstraction layer above low level system
	  dependent CAN driver API and basic CANopen SDO/PDO transfer protocols.
	  CANopen Object Dictionary functions are provided by library too.
	  The VCA library can be used to build CANopen master and slave devices.

config OC_CANDEV  
        bool "CANOpen Device"
        default y
	depends on OC_CANVCA
	help
	  Linux version of configurable dynamic CANopen slave device
	  which builds its Object Dictionary from EDS
	  (CANopen Electronic Data Sheet).

config OC_CANMOND
        bool "CAN Buss Monitor Daemon"
	depends on OC_CANFRAMEWORK
        default y
	depends on OC_CANVCA
	help
	  Daemon providing TCP/IP bridge to CAN/CANopne network.

config OC_CANMONITOR
        bool "CAN Monitor UI Interface (requires Java and Ant to build)"
        default n
	help
	  UI interface for CAN/CANopen buss monitoring
	  and CANopen device Object Dictionary manipulations.
	  Communicates with CAN Monitor Daemon through TCP/IP sockets.


config OC_CAN_ETH_MASTER    
	bool "CANopen master/ETH bridge"
	depends on OC_CANFRAMEWORK
	help
		CANopen master/ETH bridge (requires C++)

config OC_CAN_ETH_SIMPLE    
	bool "CANopen simple ETH bridge"
	depends on OC_CANFRAMEWORK
	help
		CANopen simple ETH bridge 


endmenu


