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 ADXL313 34 tristate 35 36config ADXL313_I2C 37 tristate "Analog Devices ADXL313 3-Axis Digital Accelerometer I2C Driver" 38 depends on I2C 39 select ADXL313 40 select REGMAP_I2C 41 help 42 Say Y here if you want to build i2c support for the Analog Devices 43 ADXL313 3-axis digital accelerometer. 44 45 To compile this driver as a module, choose M here: the module 46 will be called adxl313_i2c and you will also get adxl313_core 47 for the core module. 48 49config ADXL313_SPI 50 tristate "Analog Devices ADXL313 3-Axis Digital Accelerometer SPI Driver" 51 depends on SPI 52 select ADXL313 53 select REGMAP_SPI 54 help 55 Say Y here if you want to build spi support for the Analog Devices 56 ADXL313 3-axis digital accelerometer. 57 58 To compile this driver as a module, choose M here: the module 59 will be called adxl313_spi and you will also get adxl313_core 60 for the core module. 61 62config ADXL345 63 tristate 64 65config ADXL345_I2C 66 tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer I2C Driver" 67 depends on !INPUT_ADXL34X 68 depends on I2C 69 select ADXL345 70 select REGMAP_I2C 71 help 72 Say Y here if you want to build support for the Analog Devices 73 ADXL345 or ADXL375 3-axis digital accelerometer. 74 75 To compile this driver as a module, choose M here: the module 76 will be called adxl345_i2c and you will also get adxl345_core 77 for the core module. INPUT_ADXL34X share compatibles with this 78 driver, do not add both modules to the kernel. 79 80config ADXL345_SPI 81 tristate "Analog Devices ADXL345 3-Axis Digital Accelerometer SPI Driver" 82 depends on !INPUT_ADXL34X 83 depends on SPI 84 select ADXL345 85 select REGMAP_SPI 86 help 87 Say Y here if you want to build support for the Analog Devices 88 ADXL345 or ADXL375 3-axis digital accelerometer. 89 90 To compile this driver as a module, choose M here: the module 91 will be called adxl345_spi and you will also get adxl345_core 92 for the core module. INPUT_ADXL34X share compatibles with this 93 driver, do not add both modules to the kernel. 94 95config ADXL355 96 tristate 97 98config ADXL355_I2C 99 tristate "Analog Devices ADXL355 3-Axis Digital Accelerometer I2C Driver" 100 depends on I2C 101 select ADXL355 102 select REGMAP_I2C 103 select IIO_BUFFER 104 select IIO_TRIGGERED_BUFFER 105 help 106 Say Y here if you want to build i2c support for the Analog Devices 107 ADXL355 3-axis digital accelerometer. 108 109 To compile this driver as a module, choose M here: the module 110 will be called adxl355_i2c and you will also get adxl355_core 111 for the core module. 112 113config ADXL355_SPI 114 tristate "Analog Devices ADXL355 3-Axis Digital Accelerometer SPI Driver" 115 depends on SPI 116 select ADXL355 117 select REGMAP_SPI 118 select IIO_BUFFER 119 select IIO_TRIGGERED_BUFFER 120 help 121 Say Y here if you want to build spi support for the Analog Devices 122 ADXL355 3-axis digital accelerometer. 123 124 To compile this driver as a module, choose M here: the module 125 will be called adxl355_spi and you will also get adxl355_core 126 for the core module. 127 128config ADXL367 129 tristate 130 select IIO_BUFFER 131 select IIO_TRIGGERED_BUFFER 132 133config ADXL367_SPI 134 tristate "Analog Devices ADXL367 3-Axis Accelerometer SPI Driver" 135 depends on SPI 136 select ADXL367 137 select REGMAP_SPI 138 help 139 Say yes here to add support for the Analog Devices ADXL367 triaxial 140 acceleration sensor. 141 To compile this driver as a module, choose M here: the 142 module will be called adxl367_spi. 143 144config ADXL367_I2C 145 tristate "Analog Devices ADXL367 3-Axis Accelerometer I2C Driver" 146 depends on I2C 147 select ADXL367 148 select REGMAP_I2C 149 help 150 Say yes here to add support for the Analog Devices ADXL367 triaxial 151 acceleration sensor. 152 To compile this driver as a module, choose M here: the 153 module will be called adxl367_i2c. 154 155config ADXL372 156 tristate 157 select IIO_BUFFER 158 select IIO_TRIGGERED_BUFFER 159 160config ADXL372_SPI 161 tristate "Analog Devices ADXL372 3-Axis Accelerometer SPI Driver" 162 depends on SPI 163 select ADXL372 164 select REGMAP_SPI 165 help 166 Say yes here to add support for the Analog Devices ADXL372 triaxial 167 acceleration sensor. 168 To compile this driver as a module, choose M here: the 169 module will be called adxl372_spi. 170 171config ADXL372_I2C 172 tristate "Analog Devices ADXL372 3-Axis Accelerometer I2C Driver" 173 depends on I2C 174 select ADXL372 175 select REGMAP_I2C 176 help 177 Say yes here to add support for the Analog Devices ADXL372 triaxial 178 acceleration sensor. 179 To compile this driver as a module, choose M here: the 180 module will be called adxl372_i2c. 181 182config ADXL380 183 tristate 184 select IIO_BUFFER 185 select IIO_TRIGGERED_BUFFER 186 187config ADXL380_SPI 188 tristate "Analog Devices ADXL380 3-Axis Accelerometer SPI Driver" 189 depends on SPI 190 select ADXL380 191 select REGMAP_SPI 192 help 193 Say yes here to add support for the Analog Devices ADXL380 triaxial 194 acceleration sensor. 195 To compile this driver as a module, choose M here: the 196 module will be called adxl380_spi. 197 198config ADXL380_I2C 199 tristate "Analog Devices ADXL380 3-Axis Accelerometer I2C Driver" 200 depends on I2C 201 select ADXL380 202 select REGMAP_I2C 203 help 204 Say yes here to add support for the Analog Devices ADXL380 triaxial 205 acceleration sensor. 206 To compile this driver as a module, choose M here: the 207 module will be called adxl380_i2c. 208 209config BMA180 210 tristate "Bosch BMA023/BMA1x0/BMA250 3-Axis Accelerometer Driver" 211 depends on I2C && INPUT_BMA150=n 212 select IIO_BUFFER 213 select IIO_TRIGGERED_BUFFER 214 help 215 Say Y here if you want to build a driver for the Bosch BMA023, BMA150 216 BMA180, BMA250 or SMB380 triaxial acceleration sensor. 217 218 To compile this driver as a module, choose M here: the 219 module will be called bma180. 220 221config BMA220 222 tristate "Bosch BMA220 3-Axis Accelerometer Driver" 223 depends on I2C || SPI 224 select REGMAP 225 select IIO_BUFFER 226 select IIO_TRIGGERED_BUFFER 227 select BMA220_I2C if I2C 228 select BMA220_SPI if SPI 229 help 230 Say yes here to add support for the Bosch BMA220 triaxial 231 acceleration sensor. 232 233 To compile this driver as a module, choose M here: the 234 module will be called bma220_core and you will also get 235 bma220_i2c if I2C is enabled and bma220_spi if SPI is 236 enabled. 237 238config BMA220_I2C 239 tristate 240 select REGMAP_I2C 241 depends on BMA220 242 243config BMA220_SPI 244 tristate 245 select REGMAP_SPI 246 depends on BMA220 247 248config BMA400 249 tristate "Bosch BMA400 3-Axis Accelerometer Driver" 250 select REGMAP 251 select IIO_BUFFER 252 select IIO_TRIGGERED_BUFFER 253 select BMA400_I2C if I2C 254 select BMA400_SPI if SPI 255 help 256 Say Y here if you want to build a driver for the Bosch BMA400 257 triaxial acceleration sensor. 258 259 To compile this driver as a module, choose M here: the 260 module will be called bma400_core and you will also get 261 bma400_i2c if I2C is enabled and bma400_spi if SPI is 262 enabled. 263 264config BMA400_I2C 265 tristate 266 select REGMAP_I2C 267 depends on BMA400 268 269config BMA400_SPI 270 tristate 271 select REGMAP_SPI 272 depends on BMA400 273 274config BMC150_ACCEL 275 tristate "Bosch BMC150 Accelerometer Driver" 276 select IIO_BUFFER 277 select IIO_TRIGGERED_BUFFER 278 select REGMAP 279 select BMC150_ACCEL_I2C if I2C 280 select BMC150_ACCEL_SPI if SPI 281 help 282 Say yes here to build support for the following Bosch accelerometers: 283 BMA222, BMA222E, BMA250E, BMA253, BMA254, BMA255, BMA280, BMC150, BMC156 284 BMI055. 285 286 Note that some of these are combo modules: 287 - BMC150/BMC156: accelerometer and magnetometer 288 - BMI055: accelerometer and gyroscope 289 290 This driver is only implementing accelerometer part, which has 291 its own address and register map. 292 293config BMC150_ACCEL_I2C 294 tristate 295 select REGMAP_I2C 296 297config BMC150_ACCEL_SPI 298 tristate 299 select REGMAP_SPI 300 301config BMI088_ACCEL 302 tristate "Bosch BMI088 Accelerometer Driver" 303 select IIO_BUFFER 304 select IIO_TRIGGERED_BUFFER 305 select REGMAP 306 select BMI088_ACCEL_SPI if SPI 307 select BMI088_ACCEL_I2C if I2C 308 help 309 Say yes here to build support for the following Bosch accelerometers: 310 BMI088, BMI085, BMI090L. Note that all of these are combo module that 311 include both accelerometer and gyroscope. 312 313 This driver only implements the accelerometer part, which has its own 314 address and register map. BMG160 provides the gyroscope driver. 315 316config BMI088_ACCEL_I2C 317 tristate 318 select REGMAP_I2C 319 320config BMI088_ACCEL_SPI 321 tristate 322 select REGMAP_SPI 323 324config DA280 325 tristate "MiraMEMS DA280 3-axis 14-bit digital accelerometer driver" 326 depends on I2C 327 help 328 Say yes here to build support for the MiraMEMS DA280 3-axis 14-bit 329 digital accelerometer. 330 331 To compile this driver as a module, choose M here: the 332 module will be called da280. 333 334config DA311 335 tristate "MiraMEMS DA311 3-axis 12-bit digital accelerometer driver" 336 depends on I2C 337 help 338 Say yes here to build support for the MiraMEMS DA311 3-axis 12-bit 339 digital accelerometer. 340 341 To compile this driver as a module, choose M here: the 342 module will be called da311. 343 344config DMARD06 345 tristate "Domintech DMARD06 Digital Accelerometer Driver" 346 depends on I2C 347 help 348 Say yes here to build support for the Domintech low-g tri-axial 349 digital accelerometers: DMARD05, DMARD06, DMARD07. 350 351 To compile this driver as a module, choose M here: the 352 module will be called dmard06. 353 354config DMARD09 355 tristate "Domintech DMARD09 3-axis Accelerometer Driver" 356 depends on I2C 357 help 358 Say yes here to get support for the Domintech DMARD09 3-axis 359 accelerometer. 360 361 Choosing M will build the driver as a module. If so, the module 362 will be called dmard09. 363 364config DMARD10 365 tristate "Domintech DMARD10 3-axis Accelerometer Driver" 366 depends on I2C 367 help 368 Say yes here to get support for the Domintech DMARD10 3-axis 369 accelerometer. 370 371 Choosing M will build the driver as a module. If so, the module 372 will be called dmard10. 373 374config FXLS8962AF 375 tristate 376 depends on I2C || !I2C # cannot be built-in for modular I2C 377 select IIO_BUFFER 378 select IIO_KFIFO_BUF 379 380config FXLS8962AF_I2C 381 tristate "NXP FXLS8962AF/FXLS8964AF Accelerometer I2C Driver" 382 depends on I2C 383 select FXLS8962AF 384 select REGMAP_I2C 385 help 386 Say yes here to build support for the NXP 3-axis automotive 387 accelerometer FXLS8962AF/FXLS8964AF with I2C support. 388 389 To compile this driver as a module, choose M here: the module 390 will be called fxls8962af_i2c. 391 392config FXLS8962AF_SPI 393 tristate "NXP FXLS8962AF/FXLS8964AF Accelerometer SPI Driver" 394 depends on SPI 395 depends on I2C || !I2C 396 select FXLS8962AF 397 select REGMAP_SPI 398 help 399 Say yes here to build support for the NXP 3-axis automotive 400 accelerometer FXLS8962AF/FXLS8964AF with SPI support. 401 402 To compile this driver as a module, choose M here: the module 403 will be called fxls8962af_spi. 404 405config HID_SENSOR_ACCEL_3D 406 depends on HID_SENSOR_HUB 407 select IIO_BUFFER 408 select HID_SENSOR_IIO_COMMON 409 select HID_SENSOR_IIO_TRIGGER 410 tristate "HID Accelerometers 3D" 411 help 412 Say yes here to build support for the HID SENSOR 413 accelerometers 3D. 414 415 To compile this driver as a module, choose M here: the 416 module will be called hid-sensor-accel-3d. 417 418config IIO_CROS_EC_ACCEL_LEGACY 419 tristate "ChromeOS EC Legacy Accelerometer Sensor" 420 depends on IIO_CROS_EC_SENSORS_CORE 421 help 422 Say yes here to get support for accelerometers on Chromebook using 423 legacy EC firmware. 424 Sensor data is retrieved through IO memory. 425 Newer devices should use IIO_CROS_EC_SENSORS. 426 427config IIO_ST_ACCEL_3AXIS 428 tristate "STMicroelectronics accelerometers 3-Axis Driver" 429 depends on (I2C || SPI_MASTER) && SYSFS 430 depends on !SENSORS_LIS3_I2C 431 depends on !SENSORS_LIS3_SPI 432 select IIO_ST_SENSORS_CORE 433 select IIO_TRIGGERED_BUFFER if (IIO_BUFFER) 434 help 435 Say yes here to build support for STMicroelectronics accelerometers: 436 LSM303C, LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC, 437 LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL, 438 LNG2DM, LIS3DE, LIS2DE12, LIS2HH12 439 440 Also need to enable at least one of I2C and SPI interface drivers 441 below. 442 443config IIO_ST_ACCEL_I2C_3AXIS 444 tristate "STMicroelectronics accelerometers 3-Axis I2C Interface" 445 depends on I2C && IIO_ST_ACCEL_3AXIS 446 default I2C && IIO_ST_ACCEL_3AXIS 447 select IIO_ST_SENSORS_I2C 448 help 449 Build support for STMicroelectronics accelerometers I2C interface. 450 451 To compile this driver as a module, choose M here. The module 452 will be called st_accel_i2c. 453 454config IIO_ST_ACCEL_SPI_3AXIS 455 tristate "STMicroelectronics accelerometers 3-Axis SPI Interface" 456 depends on SPI_MASTER && IIO_ST_ACCEL_3AXIS 457 default SPI_MASTER && IIO_ST_ACCEL_3AXIS 458 select IIO_ST_SENSORS_SPI 459 help 460 Build support for STMicroelectronics accelerometers SPI interface. 461 462 To compile this driver as a module, choose M here. The module 463 will be called st_accel_spi. 464 465config IIO_KX022A 466 tristate 467 select IIO_BUFFER 468 select IIO_TRIGGERED_BUFFER 469 470config IIO_KX022A_SPI 471 tristate "Kionix KX022A tri-axis digital accelerometer SPI interface" 472 depends on SPI 473 select IIO_KX022A 474 select REGMAP_SPI 475 help 476 Enable support for the Kionix digital tri-axis accelerometers 477 connected to SPI interface. Supported devices are: 478 KX022A, KX132-1211, KX132ACR-LBZ 479 480config IIO_KX022A_I2C 481 tristate "Kionix KX022A tri-axis digital accelerometer I2C interface" 482 depends on I2C 483 select IIO_KX022A 484 select REGMAP_I2C 485 help 486 Enable support for the Kionix digital tri-axis accelerometers 487 connected to I2C interface. Supported devices are: 488 KX022A, KX132-1211, KX132ACR-LBZ 489 490config KXSD9 491 tristate "Kionix KXSD9 Accelerometer Driver" 492 select IIO_BUFFER 493 select IIO_TRIGGERED_BUFFER 494 help 495 Say yes here to build support for the Kionix KXSD9 accelerometer. 496 It can be accessed using an (optional) SPI or I2C interface. 497 498 To compile this driver as a module, choose M here: the module 499 will be called kxsd9. 500 501config KXSD9_SPI 502 tristate "Kionix KXSD9 SPI transport" 503 depends on KXSD9 504 depends on SPI 505 default KXSD9 506 select REGMAP_SPI 507 help 508 Say yes here to enable the Kionix KXSD9 accelerometer 509 SPI transport channel. 510 511config KXSD9_I2C 512 tristate "Kionix KXSD9 I2C transport" 513 depends on KXSD9 514 depends on I2C 515 default KXSD9 516 select REGMAP_I2C 517 help 518 Say yes here to enable the Kionix KXSD9 accelerometer 519 I2C transport channel. 520 521config KXCJK1013 522 tristate "Kionix 3-Axis Accelerometer Driver" 523 depends on I2C 524 select IIO_BUFFER 525 select IIO_TRIGGERED_BUFFER 526 help 527 Say Y here if you want to build a driver for the Kionix KXCJK-1013 528 triaxial acceleration sensor. This driver also supports KXCJ9-1008, 529 KXTJ2-1009 and KXTF9. 530 531 To compile this driver as a module, choose M here: the module will 532 be called kxcjk-1013. 533 534config MC3230 535 tristate "mCube MC3230 Digital Accelerometer Driver" 536 depends on I2C 537 help 538 Say yes here to build support for the mCube MC3230 low-g tri-axial 539 digital accelerometer. 540 541 To compile this driver as a module, choose M here: the 542 module will be called mc3230. 543 544config MMA7455 545 tristate 546 select IIO_BUFFER 547 select IIO_TRIGGERED_BUFFER 548 549config MMA7455_I2C 550 tristate "Freescale MMA7455L/MMA7456L Accelerometer I2C Driver" 551 depends on I2C 552 select MMA7455 553 select REGMAP_I2C 554 help 555 Say yes here to build support for the Freescale MMA7455L and 556 MMA7456L 3-axis accelerometer. 557 558 To compile this driver as a module, choose M here: the module 559 will be called mma7455_i2c. 560 561config MMA7455_SPI 562 tristate "Freescale MMA7455L/MMA7456L Accelerometer SPI Driver" 563 depends on SPI_MASTER 564 select MMA7455 565 select REGMAP_SPI 566 help 567 Say yes here to build support for the Freescale MMA7455L and 568 MMA7456L 3-axis accelerometer. 569 570 To compile this driver as a module, choose M here: the module 571 will be called mma7455_spi. 572 573config MMA7660 574 tristate "Freescale MMA7660FC 3-Axis Accelerometer Driver" 575 depends on I2C 576 help 577 Say yes here to get support for the Freescale MMA7660FC 3-Axis 578 accelerometer. 579 580 Choosing M will build the driver as a module. If so, the module 581 will be called mma7660. 582 583config MMA8452 584 tristate "Freescale / NXP MMA8452Q and similar Accelerometers Driver" 585 depends on I2C 586 select IIO_BUFFER 587 select IIO_TRIGGERED_BUFFER 588 help 589 Say yes here to build support for the following Freescale / NXP 3-axis 590 accelerometers: MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC, 591 FXLS8471Q. 592 593 To compile this driver as a module, choose M here: the module 594 will be called mma8452. 595 596config MMA9551_CORE 597 tristate 598 599config MMA9551 600 tristate "Freescale MMA9551L Intelligent Motion-Sensing Platform Driver" 601 depends on I2C 602 select MMA9551_CORE 603 604 help 605 Say yes here to build support for the Freescale MMA9551L 606 Intelligent Motion-Sensing Platform Driver. 607 608 To compile this driver as a module, choose M here: the module 609 will be called mma9551. 610 611config MMA9553 612 tristate "Freescale MMA9553L Intelligent Pedometer Platform Driver" 613 depends on I2C 614 select MMA9551_CORE 615 help 616 Say yes here to build support for the Freescale MMA9553L 617 Intelligent Pedometer Platform Driver. 618 619 To compile this driver as a module, choose M here: the module 620 will be called mma9553. 621 622config MSA311 623 tristate "MEMSensing Digital 3-Axis Accelerometer Driver" 624 depends on I2C 625 select IIO_BUFFER 626 select IIO_TRIGGERED_BUFFER 627 select REGMAP_I2C 628 help 629 Say yes here to build support for the MEMSensing MSA311 630 accelerometer driver. 631 632 To compile this driver as a module, choose M here: the module will be 633 called msa311. 634 635config MXC4005 636 tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver" 637 depends on I2C 638 select IIO_BUFFER 639 select IIO_TRIGGERED_BUFFER 640 select REGMAP_I2C 641 help 642 Say yes here to build support for the Memsic MXC4005XC 3-axis 643 accelerometer. 644 645 To compile this driver as a module, choose M. The module will be 646 called mxc4005. 647 648config MXC6255 649 tristate "Memsic MXC6255 Orientation Sensing Accelerometer Driver" 650 depends on I2C 651 select REGMAP_I2C 652 help 653 Say yes here to build support for the Memsic MXC6255 Orientation 654 Sensing Accelerometer Driver. 655 656 To compile this driver as a module, choose M here: the module will be 657 called mxc6255. 658 659config SCA3000 660 select IIO_BUFFER 661 select IIO_KFIFO_BUF 662 depends on SPI 663 tristate "VTI SCA3000 series accelerometers" 664 help 665 Say Y here to build support for the VTI SCA3000 series of SPI 666 accelerometers. These devices use a hardware ring buffer. 667 668 To compile this driver as a module, say M here: the module will be 669 called sca3000. 670 671config SCA3300 672 tristate "Murata SCA3300 3-Axis Accelerometer Driver" 673 depends on SPI 674 select CRC8 675 select IIO_BUFFER 676 select IIO_TRIGGERED_BUFFER 677 help 678 Say yes here to build support for Murata SCA3300 3-Axis 679 accelerometer. 680 681 To compile this driver as a module, choose M here: the module will be 682 called sca3300. 683 684config STK8312 685 tristate "Sensortek STK8312 3-Axis Accelerometer Driver" 686 depends on I2C 687 select IIO_BUFFER 688 select IIO_TRIGGERED_BUFFER 689 help 690 Say yes here to get support for the Sensortek STK8312 3-axis 691 accelerometer. 692 693 Choosing M will build the driver as a module. If so, the module 694 will be called stk8312. 695 696config STK8BA50 697 tristate "Sensortek STK8BA50 3-Axis Accelerometer Driver" 698 depends on I2C 699 select IIO_BUFFER 700 select IIO_TRIGGERED_BUFFER 701 help 702 Say yes here to get support for the Sensortek STK8BA50 3-axis 703 accelerometer. 704 705 Choosing M will build the driver as a module. If so, the module 706 will be called stk8ba50. 707 708endmenu 709