1# SPDX-License-Identifier: GPL-2.0-only
2#
3# RapidIO configuration
4#
5
6config HAVE_RAPIDIO
7	bool
8
9menuconfig RAPIDIO
10	tristate "RapidIO support"
11	depends on HAVE_RAPIDIO || PCI
12	help
13	  If you say Y here, the kernel will include drivers and
14	  infrastructure code to support RapidIO interconnect devices.
15
16source "drivers/rapidio/devices/Kconfig"
17
18config RAPIDIO_DISC_TIMEOUT
19	int "Discovery timeout duration (seconds)"
20	depends on RAPIDIO
21	default "30"
22	help
23	  Amount of time a discovery node waits for a host to complete
24	  enumeration before giving up.
25
26config RAPIDIO_ENABLE_RX_TX_PORTS
27	bool "Enable RapidIO Input/Output Ports"
28	depends on RAPIDIO
29	help
30	  The RapidIO specification describes a Output port transmit
31	  enable and a Input port receive enable. The recommended state
32	  for Input ports and Output ports should be disabled. When
33	  this switch is set the RapidIO subsystem will enable all
34	  ports for Input/Output direction to allow other traffic
35	  than Maintenance transfers.
36
37config RAPIDIO_DMA_ENGINE
38	bool "DMA Engine support for RapidIO"
39	depends on RAPIDIO
40	depends on DMADEVICES
41	select DMA_ENGINE
42	help
43	  Say Y here if you want to use DMA Engine frameork for RapidIO data
44	  transfers to/from target RIO devices. RapidIO uses NREAD and
45	  NWRITE (NWRITE_R, SWRITE) requests to transfer data between local
46	  memory and memory on remote target device. You need a DMA controller
47	  capable to perform data transfers to/from RapidIO.
48
49	  If you are unsure about this, say Y here.
50
51config RAPIDIO_DEBUG
52	bool "RapidIO subsystem debug messages"
53	depends on RAPIDIO
54	help
55	  Say Y here if you want the RapidIO subsystem to produce a bunch of
56	  debug messages to the system log. Select this if you are having a
57	  problem with the RapidIO subsystem and want to see more of what is
58	  going on.
59
60	  If you are unsure about this, say N here.
61
62choice
63	prompt "Enumeration method"
64	depends on RAPIDIO
65	default RAPIDIO_ENUM_BASIC
66	help
67	  There are different enumeration and discovery mechanisms offered
68	  for RapidIO subsystem. You may select single built-in method or
69	  or any number of methods to be built as modules.
70	  Selecting a built-in method disables use of loadable methods.
71
72	  If unsure, select Basic built-in.
73
74config RAPIDIO_ENUM_BASIC
75	tristate "Basic"
76	help
77	  This option includes basic RapidIO fabric enumeration and discovery
78	  mechanism similar to one described in RapidIO specification Annex 1.
79
80endchoice
81
82config RAPIDIO_CHMAN
83	tristate "RapidIO Channelized Messaging driver"
84	depends on RAPIDIO
85	help
86	  This option includes RapidIO channelized messaging driver which
87	  provides socket-like interface to allow sharing of single RapidIO
88	  messaging mailbox between multiple user-space applications.
89	  See "Documentation/driver-api/rapidio/rio_cm.rst" for driver description.
90
91config RAPIDIO_MPORT_CDEV
92	tristate "RapidIO /dev mport device driver"
93	depends on RAPIDIO
94	help
95	  This option includes generic RapidIO mport device driver which
96	  allows to user space applications to perform RapidIO-specific
97	  operations through selected RapidIO mport.
98
99menu "RapidIO Switch drivers"
100	depends on RAPIDIO
101
102source "drivers/rapidio/switches/Kconfig"
103
104endmenu
105