#
# RapidIO configuration
#
source "drivers/rapidio/devices/Kconfig"

config RAPIDIO_DISC_TIMEOUT
	int "Discovery timeout duration (seconds)"
	depends on RAPIDIO
	default "30"
	---help---
	  Amount of time a discovery node waits for a host to complete
	  enumeration before giving up.

config RAPIDIO_ENABLE_RX_TX_PORTS
	bool "Enable RapidIO Input/Output Ports"
	depends on RAPIDIO
	---help---
	  The RapidIO specification describes a Output port transmit
	  enable and a Input port receive enable. The recommended state
	  for Input ports and Output ports should be disabled. When
	  this switch is set the RapidIO subsystem will enable all
	  ports for Input/Output direction to allow other traffic
	  than Maintenance transfers.

config RAPIDIO_DMA_ENGINE
	bool "DMA Engine support for RapidIO"
	depends on RAPIDIO
	depends on DMADEVICES
	select DMA_ENGINE
	help
	  Say Y here if you want to use DMA Engine frameork for RapidIO data
	  transfers to/from target RIO devices. RapidIO uses NREAD and
	  NWRITE (NWRITE_R, SWRITE) requests to transfer data between local
	  memory and memory on remote target device. You need a DMA controller
	  capable to perform data transfers to/from RapidIO.

	  If you are unsure about this, say Y here.

config RAPIDIO_DEBUG
	bool "RapidIO subsystem debug messages"
	depends on RAPIDIO
	help
	  Say Y here if you want the RapidIO subsystem to produce a bunch of
	  debug messages to the system log. Select this if you are having a
	  problem with the RapidIO subsystem and want to see more of what is
	  going on.

	  If you are unsure about this, say N here.

choice
	prompt "Enumeration method"
	depends on RAPIDIO
	default RAPIDIO_ENUM_BASIC
	help
	  There are different enumeration and discovery mechanisms offered
	  for RapidIO subsystem. You may select single built-in method or
	  or any number of methods to be built as modules.
	  Selecting a built-in method disables use of loadable methods.

	  If unsure, select Basic built-in.

config RAPIDIO_ENUM_BASIC
	tristate "Basic"
	help
	  This option includes basic RapidIO fabric enumeration and discovery
	  mechanism similar to one described in RapidIO specification Annex 1.

endchoice

config RAPIDIO_CHMAN
	tristate "RapidIO Channelized Messaging driver"
	depends on RAPIDIO
	help
	  This option includes RapidIO channelized messaging driver which
	  provides socket-like interface to allow sharing of single RapidIO
	  messaging mailbox between multiple user-space applications.
	  See "Documentation/rapidio/rio_cm.txt" for driver description.

config RAPIDIO_MPORT_CDEV
	tristate "RapidIO /dev mport device driver"
	depends on RAPIDIO
	help
	  This option includes generic RapidIO mport device driver which
	  allows to user space applications to perform RapidIO-specific
	  operations through selected RapidIO mport.

menu "RapidIO Switch drivers"
	depends on RAPIDIO

source "drivers/rapidio/switches/Kconfig"

endmenu
