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