1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Industrial I/O subsystem configuration
4#
5
6menuconfig IIO
7	tristate "Industrial I/O support"
8	help
9	  The industrial I/O subsystem provides a unified framework for
10	  drivers for many different types of embedded sensors using a
11	  number of different physical interfaces (i2c, spi, etc).
12
13if IIO
14
15config IIO_BUFFER
16	bool "Enable buffer support within IIO"
17	help
18	  Provide core support for various buffer based data
19	  acquisition methods.
20
21if IIO_BUFFER
22	source "drivers/iio/buffer/Kconfig"
23endif # IIO_BUFFER
24
25config IIO_CONFIGFS
26	tristate "Enable IIO configuration via configfs"
27	select CONFIGFS_FS
28	help
29	  This allows configuring various IIO bits through configfs
30	  (e.g. software triggers). For more info see
31	  Documentation/iio/iio_configfs.rst.
32
33config IIO_GTS_HELPER
34	tristate
35
36config IIO_TRIGGER
37	bool "Enable triggered sampling support"
38	help
39	  Provides IIO core support for triggers.  Currently these
40	  are used to initialize capture of samples to push into
41	  buffers.  The triggers are effectively a 'capture
42	  data now' interrupt.
43
44config IIO_CONSUMERS_PER_TRIGGER
45	int "Maximum number of consumers per trigger"
46	depends on IIO_TRIGGER
47	default "2"
48	help
49	  This value controls the maximum number of consumers that a
50	  given trigger may handle. Default is 2.
51
52config IIO_SW_DEVICE
53	tristate "Enable software IIO device support"
54	select IIO_CONFIGFS
55	help
56	  Provides IIO core support for software devices. A software
57	  device can be created via configfs or directly by a driver
58	  using the API provided.
59
60config IIO_SW_TRIGGER
61	tristate "Enable software triggers support"
62	select IIO_CONFIGFS
63	help
64	  Provides IIO core support for software triggers. A software
65	  trigger can be created via configfs or directly by a driver
66	  using the API provided.
67
68config IIO_TRIGGERED_EVENT
69	tristate "Enable triggered events support"
70	select IIO_TRIGGER
71	help
72	  Provides helper functions for setting up triggered events.
73
74config IIO_BACKEND
75	tristate
76	help
77	  Framework to handle complex IIO aggregate devices. The typical
78	  architecture that can make use of this framework is to have one
79	  device as the frontend device which can be "linked" against one or
80	  multiple backend devices. The framework then makes it easy to get
81	  and control such backend devices.
82
83source "drivers/iio/accel/Kconfig"
84source "drivers/iio/adc/Kconfig"
85source "drivers/iio/addac/Kconfig"
86source "drivers/iio/afe/Kconfig"
87source "drivers/iio/amplifiers/Kconfig"
88source "drivers/iio/cdc/Kconfig"
89source "drivers/iio/chemical/Kconfig"
90source "drivers/iio/common/Kconfig"
91source "drivers/iio/dac/Kconfig"
92source "drivers/iio/dummy/Kconfig"
93source "drivers/iio/filter/Kconfig"
94source "drivers/iio/frequency/Kconfig"
95source "drivers/iio/gyro/Kconfig"
96source "drivers/iio/health/Kconfig"
97source "drivers/iio/humidity/Kconfig"
98source "drivers/iio/imu/Kconfig"
99source "drivers/iio/light/Kconfig"
100source "drivers/iio/magnetometer/Kconfig"
101source "drivers/iio/multiplexer/Kconfig"
102source "drivers/iio/orientation/Kconfig"
103source "drivers/iio/test/Kconfig"
104if IIO_TRIGGER
105   source "drivers/iio/trigger/Kconfig"
106endif #IIO_TRIGGER
107source "drivers/iio/position/Kconfig"
108source "drivers/iio/potentiometer/Kconfig"
109source "drivers/iio/potentiostat/Kconfig"
110source "drivers/iio/pressure/Kconfig"
111source "drivers/iio/proximity/Kconfig"
112source "drivers/iio/resolver/Kconfig"
113source "drivers/iio/temperature/Kconfig"
114
115endif # IIO
116