162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# RapidIO configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig HAVE_RAPIDIO
762306a36Sopenharmony_ci	bool
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimenuconfig RAPIDIO
1062306a36Sopenharmony_ci	tristate "RapidIO support"
1162306a36Sopenharmony_ci	depends on HAVE_RAPIDIO || PCI
1262306a36Sopenharmony_ci	help
1362306a36Sopenharmony_ci	  If you say Y here, the kernel will include drivers and
1462306a36Sopenharmony_ci	  infrastructure code to support RapidIO interconnect devices.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_cisource "drivers/rapidio/devices/Kconfig"
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciconfig RAPIDIO_DISC_TIMEOUT
1962306a36Sopenharmony_ci	int "Discovery timeout duration (seconds)"
2062306a36Sopenharmony_ci	depends on RAPIDIO
2162306a36Sopenharmony_ci	default "30"
2262306a36Sopenharmony_ci	help
2362306a36Sopenharmony_ci	  Amount of time a discovery node waits for a host to complete
2462306a36Sopenharmony_ci	  enumeration before giving up.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciconfig RAPIDIO_ENABLE_RX_TX_PORTS
2762306a36Sopenharmony_ci	bool "Enable RapidIO Input/Output Ports"
2862306a36Sopenharmony_ci	depends on RAPIDIO
2962306a36Sopenharmony_ci	help
3062306a36Sopenharmony_ci	  The RapidIO specification describes a Output port transmit
3162306a36Sopenharmony_ci	  enable and a Input port receive enable. The recommended state
3262306a36Sopenharmony_ci	  for Input ports and Output ports should be disabled. When
3362306a36Sopenharmony_ci	  this switch is set the RapidIO subsystem will enable all
3462306a36Sopenharmony_ci	  ports for Input/Output direction to allow other traffic
3562306a36Sopenharmony_ci	  than Maintenance transfers.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig RAPIDIO_DMA_ENGINE
3862306a36Sopenharmony_ci	bool "DMA Engine support for RapidIO"
3962306a36Sopenharmony_ci	depends on RAPIDIO
4062306a36Sopenharmony_ci	depends on DMADEVICES
4162306a36Sopenharmony_ci	select DMA_ENGINE
4262306a36Sopenharmony_ci	help
4362306a36Sopenharmony_ci	  Say Y here if you want to use DMA Engine frameork for RapidIO data
4462306a36Sopenharmony_ci	  transfers to/from target RIO devices. RapidIO uses NREAD and
4562306a36Sopenharmony_ci	  NWRITE (NWRITE_R, SWRITE) requests to transfer data between local
4662306a36Sopenharmony_ci	  memory and memory on remote target device. You need a DMA controller
4762306a36Sopenharmony_ci	  capable to perform data transfers to/from RapidIO.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  If you are unsure about this, say Y here.
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciconfig RAPIDIO_DEBUG
5262306a36Sopenharmony_ci	bool "RapidIO subsystem debug messages"
5362306a36Sopenharmony_ci	depends on RAPIDIO
5462306a36Sopenharmony_ci	help
5562306a36Sopenharmony_ci	  Say Y here if you want the RapidIO subsystem to produce a bunch of
5662306a36Sopenharmony_ci	  debug messages to the system log. Select this if you are having a
5762306a36Sopenharmony_ci	  problem with the RapidIO subsystem and want to see more of what is
5862306a36Sopenharmony_ci	  going on.
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci	  If you are unsure about this, say N here.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_cichoice
6362306a36Sopenharmony_ci	prompt "Enumeration method"
6462306a36Sopenharmony_ci	depends on RAPIDIO
6562306a36Sopenharmony_ci	default RAPIDIO_ENUM_BASIC
6662306a36Sopenharmony_ci	help
6762306a36Sopenharmony_ci	  There are different enumeration and discovery mechanisms offered
6862306a36Sopenharmony_ci	  for RapidIO subsystem. You may select single built-in method or
6962306a36Sopenharmony_ci	  or any number of methods to be built as modules.
7062306a36Sopenharmony_ci	  Selecting a built-in method disables use of loadable methods.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci	  If unsure, select Basic built-in.
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciconfig RAPIDIO_ENUM_BASIC
7562306a36Sopenharmony_ci	tristate "Basic"
7662306a36Sopenharmony_ci	help
7762306a36Sopenharmony_ci	  This option includes basic RapidIO fabric enumeration and discovery
7862306a36Sopenharmony_ci	  mechanism similar to one described in RapidIO specification Annex 1.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciendchoice
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciconfig RAPIDIO_CHMAN
8362306a36Sopenharmony_ci	tristate "RapidIO Channelized Messaging driver"
8462306a36Sopenharmony_ci	depends on RAPIDIO
8562306a36Sopenharmony_ci	help
8662306a36Sopenharmony_ci	  This option includes RapidIO channelized messaging driver which
8762306a36Sopenharmony_ci	  provides socket-like interface to allow sharing of single RapidIO
8862306a36Sopenharmony_ci	  messaging mailbox between multiple user-space applications.
8962306a36Sopenharmony_ci	  See "Documentation/driver-api/rapidio/rio_cm.rst" for driver description.
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ciconfig RAPIDIO_MPORT_CDEV
9262306a36Sopenharmony_ci	tristate "RapidIO /dev mport device driver"
9362306a36Sopenharmony_ci	depends on RAPIDIO
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  This option includes generic RapidIO mport device driver which
9662306a36Sopenharmony_ci	  allows to user space applications to perform RapidIO-specific
9762306a36Sopenharmony_ci	  operations through selected RapidIO mport.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_cimenu "RapidIO Switch drivers"
10062306a36Sopenharmony_ci	depends on RAPIDIO
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_cisource "drivers/rapidio/switches/Kconfig"
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciendmenu
105