1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Accelerometer drivers
4#
5# When adding new entries keep the list in alphabetical order
6
7menu "Accelerometers"
8
9config ADIS16201
10	tristate "Analog Devices ADIS16201 Dual-Axis Digital Inclinometer and Accelerometer"
11	depends on SPI
12	select IIO_ADIS_LIB
13	select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
14	help
15	  Say Y here to build support for Analog Devices adis16201 dual-axis
16	  digital inclinometer and accelerometer.
17
18	  To compile this driver as a module, say M here: the module will
19	  be called adis16201.
20
21config ADIS16209
22	tristate "Analog Devices ADIS16209 Dual-Axis Digital Inclinometer and Accelerometer"
23	depends on SPI
24	select IIO_ADIS_LIB
25	select IIO_ADIS_LIB_BUFFER if IIO_BUFFER
26	help
27	  Say Y here to build support for Analog Devices adis16209 dual-axis digital inclinometer
28	  and accelerometer.
29
30	  To compile this driver as a module, say M here: the module will be
31	  called adis16209.
32
33config ADXL345
34	tristate
35
36config ADXL345_I2C
37	tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer I2C Driver"
38	depends on INPUT_ADXL34X=n
39	depends on I2C
40	select ADXL345
41	select REGMAP_I2C
42	help
43	  Say Y here if you want to build support for the Analog Devices
44	  ADXL345 or ADXL375 3-axis digital accelerometer.
45
46	  To compile this driver as a module, choose M here: the module
47	  will be called adxl345_i2c and you will also get adxl345_core
48	  for the core module.
49
50config ADXL345_SPI
51	tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer SPI Driver"
52	depends on INPUT_ADXL34X=n
53	depends on SPI
54	select ADXL345
55	select REGMAP_SPI
56	help
57	  Say Y here if you want to build support for the Analog Devices
58	  ADXL345 or ADXL375 3-axis digital accelerometer.
59
60	  To compile this driver as a module, choose M here: the module
61	  will be called adxl345_spi and you will also get adxl345_core
62	  for the core module.
63
64config ADXL372
65	tristate
66	select IIO_BUFFER
67	select IIO_TRIGGERED_BUFFER
68
69config ADXL372_SPI
70	tristate "Analog Devices ADXL372 3-Axis Accelerometer SPI Driver"
71	depends on SPI
72	select ADXL372
73	select REGMAP_SPI
74	help
75	  Say yes here to add support for the Analog Devices ADXL372 triaxial
76	  acceleration sensor.
77	  To compile this driver as a module, choose M here: the
78	  module will be called adxl372_spi.
79
80config ADXL372_I2C
81	tristate "Analog Devices ADXL372 3-Axis Accelerometer I2C Driver"
82	depends on I2C
83	select ADXL372
84	select REGMAP_I2C
85	help
86	  Say yes here to add support for the Analog Devices ADXL372 triaxial
87	  acceleration sensor.
88	  To compile this driver as a module, choose M here: the
89	  module will be called adxl372_i2c.
90
91config BMA180
92	tristate "Bosch BMA023/BMA1x0/BMA25x 3-Axis Accelerometer Driver"
93	depends on I2C && INPUT_BMA150=n
94	select IIO_BUFFER
95	select IIO_TRIGGERED_BUFFER
96	help
97	  Say Y here if you want to build a driver for the Bosch BMA023, BMA150
98	  BMA180, SMB380, or BMA25x triaxial acceleration sensor.
99
100	  To compile this driver as a module, choose M here: the
101	  module will be called bma180.
102
103config BMA220
104	tristate "Bosch BMA220 3-Axis Accelerometer Driver"
105	depends on SPI
106	select IIO_BUFFER
107	select IIO_TRIGGERED_BUFFER
108	help
109	  Say yes here to add support for the Bosch BMA220 triaxial
110	  acceleration sensor.
111
112	  To compile this driver as a module, choose M here: the
113	  module will be called bma220_spi.
114
115config BMA400
116	tristate "Bosch BMA400 3-Axis Accelerometer Driver"
117	select REGMAP
118	select BMA400_I2C if I2C
119	select BMA400_SPI if SPI
120	help
121	  Say Y here if you want to build a driver for the Bosch BMA400
122	  triaxial acceleration sensor.
123
124	  To compile this driver as a module, choose M here: the
125	  module will be called bma400_core and you will also get
126	  bma400_i2c if I2C is enabled and bma400_spi if SPI is
127	  enabled.
128
129config BMA400_I2C
130	tristate
131	select REGMAP_I2C
132	depends on BMA400
133
134config BMA400_SPI
135	tristate
136	select REGMAP_SPI
137	depends on BMA400
138
139config BMC150_ACCEL
140	tristate "Bosch BMC150 Accelerometer Driver"
141	select IIO_BUFFER
142	select IIO_TRIGGERED_BUFFER
143	select REGMAP
144	select BMC150_ACCEL_I2C if I2C
145	select BMC150_ACCEL_SPI if SPI
146	help
147	  Say yes here to build support for the following Bosch accelerometers:
148	  BMC150, BMI055, BMA250E, BMA222E, BMA255, BMA280.
149
150	  This is a combo module with both accelerometer and magnetometer.
151	  This driver is only implementing accelerometer part, which has
152	  its own address and register map.
153
154config BMC150_ACCEL_I2C
155	tristate
156	select REGMAP_I2C
157
158config BMC150_ACCEL_SPI
159	tristate
160	select REGMAP_SPI
161
162config DA280
163	tristate "MiraMEMS DA280 3-axis 14-bit digital accelerometer driver"
164	depends on I2C
165	help
166	  Say yes here to build support for the MiraMEMS DA280 3-axis 14-bit
167	  digital accelerometer.
168
169	  To compile this driver as a module, choose M here: the
170	  module will be called da280.
171
172config DA311
173	tristate "MiraMEMS DA311 3-axis 12-bit digital accelerometer driver"
174	depends on I2C
175	help
176	  Say yes here to build support for the MiraMEMS DA311 3-axis 12-bit
177	  digital accelerometer.
178
179	  To compile this driver as a module, choose M here: the
180	  module will be called da311.
181
182config DMARD06
183	tristate "Domintech DMARD06 Digital Accelerometer Driver"
184	depends on OF || COMPILE_TEST
185	depends on I2C
186	help
187	  Say yes here to build support for the Domintech low-g tri-axial
188	  digital accelerometers: DMARD05, DMARD06, DMARD07.
189
190	  To compile this driver as a module, choose M here: the
191	  module will be called dmard06.
192
193config DMARD09
194	tristate "Domintech DMARD09 3-axis Accelerometer Driver"
195	depends on I2C
196	help
197	  Say yes here to get support for the Domintech DMARD09 3-axis
198	  accelerometer.
199
200	  Choosing M will build the driver as a module. If so, the module
201	  will be called dmard09.
202
203config DMARD10
204	tristate "Domintech DMARD10 3-axis Accelerometer Driver"
205	depends on I2C
206	help
207	  Say yes here to get support for the Domintech DMARD10 3-axis
208	  accelerometer.
209
210	  Choosing M will build the driver as a module. If so, the module
211	  will be called dmard10.
212
213config HID_SENSOR_ACCEL_3D
214	depends on HID_SENSOR_HUB
215	select IIO_BUFFER
216	select HID_SENSOR_IIO_COMMON
217	select HID_SENSOR_IIO_TRIGGER
218	tristate "HID Accelerometers 3D"
219	help
220	  Say yes here to build support for the HID SENSOR
221	  accelerometers 3D.
222
223	  To compile this driver as a module, choose M here: the
224	  module will be called hid-sensor-accel-3d.
225
226config IIO_CROS_EC_ACCEL_LEGACY
227	tristate "ChromeOS EC Legacy Accelerometer Sensor"
228	depends on IIO_CROS_EC_SENSORS_CORE
229	help
230	  Say yes here to get support for accelerometers on Chromebook using
231	  legacy EC firmware.
232	  Sensor data is retrieved through IO memory.
233	  Newer devices should use IIO_CROS_EC_SENSORS.
234
235config IIO_ST_ACCEL_3AXIS
236	tristate "STMicroelectronics accelerometers 3-Axis Driver"
237	depends on (I2C || SPI_MASTER) && SYSFS
238	depends on !SENSORS_LIS3_I2C
239	depends on !SENSORS_LIS3_SPI
240	select IIO_ST_SENSORS_CORE
241	select IIO_ST_ACCEL_I2C_3AXIS if (I2C)
242	select IIO_ST_ACCEL_SPI_3AXIS if (SPI_MASTER)
243	select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
244	help
245	  Say yes here to build support for STMicroelectronics accelerometers:
246	  LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
247	  LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL,
248	  LNG2DM, LIS3DE, LIS2DE12, LIS2HH12
249
250	  This driver can also be built as a module. If so, these modules
251	  will be created:
252	  - st_accel (core functions for the driver [it is mandatory]);
253	  - st_accel_i2c (necessary for the I2C devices [optional*]);
254	  - st_accel_spi (necessary for the SPI devices [optional*]);
255
256	  (*) one of these is necessary to do something.
257
258config IIO_ST_ACCEL_I2C_3AXIS
259	tristate
260	depends on IIO_ST_ACCEL_3AXIS
261	depends on IIO_ST_SENSORS_I2C
262
263config IIO_ST_ACCEL_SPI_3AXIS
264	tristate
265	depends on IIO_ST_ACCEL_3AXIS
266	depends on IIO_ST_SENSORS_SPI
267
268config KXSD9
269	tristate "Kionix KXSD9 Accelerometer Driver"
270	select IIO_BUFFER
271	select IIO_TRIGGERED_BUFFER
272	help
273	  Say yes here to build support for the Kionix KXSD9 accelerometer.
274	  It can be accessed using an (optional) SPI or I2C interface.
275
276	  To compile this driver as a module, choose M here: the module
277	  will be called kxsd9.
278
279config KXSD9_SPI
280	tristate "Kionix KXSD9 SPI transport"
281	depends on KXSD9
282	depends on SPI
283	default KXSD9
284	select REGMAP_SPI
285	help
286	  Say yes here to enable the Kionix KXSD9 accelerometer
287	  SPI transport channel.
288
289config KXSD9_I2C
290	tristate "Kionix KXSD9 I2C transport"
291	depends on KXSD9
292	depends on I2C
293	default KXSD9
294	select REGMAP_I2C
295	help
296	  Say yes here to enable the Kionix KXSD9 accelerometer
297	  I2C transport channel.
298
299config KXCJK1013
300	tristate "Kionix 3-Axis Accelerometer Driver"
301	depends on I2C
302	select IIO_BUFFER
303	select IIO_TRIGGERED_BUFFER
304	help
305	  Say Y here if you want to build a driver for the Kionix KXCJK-1013
306	  triaxial acceleration sensor. This driver also supports KXCJ9-1008,
307	  KXTJ2-1009 and KXTF9.
308
309	  To compile this driver as a module, choose M here: the module will
310	  be called kxcjk-1013.
311
312config MC3230
313	tristate "mCube MC3230 Digital Accelerometer Driver"
314	depends on I2C
315	help
316	  Say yes here to build support for the mCube MC3230 low-g tri-axial
317	  digital accelerometer.
318
319	  To compile this driver as a module, choose M here: the
320	  module will be called mc3230.
321
322config MMA7455
323	tristate
324	select IIO_BUFFER
325	select IIO_TRIGGERED_BUFFER
326
327config MMA7455_I2C
328	tristate "Freescale MMA7455L/MMA7456L Accelerometer I2C Driver"
329	depends on I2C
330	select MMA7455
331	select REGMAP_I2C
332	help
333	  Say yes here to build support for the Freescale MMA7455L and
334	  MMA7456L 3-axis accelerometer.
335
336	  To compile this driver as a module, choose M here: the module
337	  will be called mma7455_i2c.
338
339config MMA7455_SPI
340	tristate "Freescale MMA7455L/MMA7456L Accelerometer SPI Driver"
341	depends on SPI_MASTER
342	select MMA7455
343	select REGMAP_SPI
344	help
345	  Say yes here to build support for the Freescale MMA7455L and
346	  MMA7456L 3-axis accelerometer.
347
348	  To compile this driver as a module, choose M here: the module
349	  will be called mma7455_spi.
350
351config MMA7660
352	tristate "Freescale MMA7660FC 3-Axis Accelerometer Driver"
353	depends on I2C
354	help
355	  Say yes here to get support for the Freescale MMA7660FC 3-Axis
356	  accelerometer.
357
358	  Choosing M will build the driver as a module. If so, the module
359	  will be called mma7660.
360
361config MMA8452
362	tristate "Freescale / NXP MMA8452Q and similar Accelerometers Driver"
363	depends on I2C
364	select IIO_BUFFER
365	select IIO_TRIGGERED_BUFFER
366	help
367	  Say yes here to build support for the following Freescale / NXP 3-axis
368	  accelerometers: MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC,
369	  FXLS8471Q.
370
371	  To compile this driver as a module, choose M here: the module
372	  will be called mma8452.
373
374config MMA9551_CORE
375	tristate
376
377config MMA9551
378	tristate "Freescale MMA9551L Intelligent Motion-Sensing Platform Driver"
379	depends on I2C
380	select MMA9551_CORE
381
382	help
383	  Say yes here to build support for the Freescale MMA9551L
384	  Intelligent Motion-Sensing Platform Driver.
385
386	  To compile this driver as a module, choose M here: the module
387	  will be called mma9551.
388
389config MMA9553
390	tristate "Freescale MMA9553L Intelligent Pedometer Platform Driver"
391	depends on I2C
392	select MMA9551_CORE
393	help
394	  Say yes here to build support for the Freescale MMA9553L
395	  Intelligent Pedometer Platform Driver.
396
397	  To compile this driver as a module, choose M here: the module
398	  will be called mma9553.
399
400config MXC4005
401	tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver"
402	depends on I2C
403	select IIO_BUFFER
404	select IIO_TRIGGERED_BUFFER
405	select REGMAP_I2C
406	help
407	  Say yes here to build support for the Memsic MXC4005XC 3-axis
408	  accelerometer.
409
410	  To compile this driver as a module, choose M. The module will be
411	  called mxc4005.
412
413config MXC6255
414	tristate "Memsic MXC6255 Orientation Sensing Accelerometer Driver"
415	depends on I2C
416	select REGMAP_I2C
417	help
418	  Say yes here to build support for the Memsic MXC6255 Orientation
419	  Sensing Accelerometer Driver.
420
421	  To compile this driver as a module, choose M here: the module will be
422	  called mxc6255.
423
424config SCA3000
425	select IIO_BUFFER
426	select IIO_KFIFO_BUF
427	depends on SPI
428	tristate "VTI SCA3000 series accelerometers"
429	help
430	  Say Y here to build support for the VTI SCA3000 series of SPI
431	  accelerometers. These devices use a hardware ring buffer.
432
433	  To compile this driver as a module, say M here: the module will be
434	  called sca3000.
435
436config STK8312
437	tristate "Sensortek STK8312 3-Axis Accelerometer Driver"
438	depends on I2C
439	select IIO_BUFFER
440	select IIO_TRIGGERED_BUFFER
441	help
442	  Say yes here to get support for the Sensortek STK8312 3-axis
443	  accelerometer.
444
445	  Choosing M will build the driver as a module. If so, the module
446	  will be called stk8312.
447
448config STK8BA50
449	tristate "Sensortek STK8BA50 3-Axis Accelerometer Driver"
450	depends on I2C
451	select IIO_BUFFER
452	select IIO_TRIGGERED_BUFFER
453	help
454	  Say yes here to get support for the Sensortek STK8BA50 3-axis
455	  accelerometer.
456
457	  Choosing M will build the driver as a module. If so, the module
458	  will be called stk8ba50.
459
460endmenu
461