mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
0427a106a9
As is custom with all modern sensors, add a clever burst mode that will just stream out values from the sensor and provide it to userspace to do the proper offsetting and scaling. This is the result when tested with an HRTimer trigger: $ generic_buffer -a -c 10 -n kxsd9 -t foo /sys/bus/iio/devices/iio:device1 foo 0.371318 0.718680 9.869872 1795.000000 97545896129 -0.586922 0.179670 9.378775 2398.000000 97555864721 -0.299450 0.179670 10.348992 2672.000000 97565874055 0.371318 0.335384 11.103606 2816.000000 97575883240 0.179670 0.574944 10.540640 2847.000000 97585862351 0.335384 0.754614 9.953718 2840.000000 97595872425 0.179670 0.754614 10.732288 2879.000000 97605882351 0.000000 0.754614 10.348992 2872.000000 97615891832 -0.730658 0.574944 9.570422 2831.000000 97625871536 0.000000 1.137910 10.732288 2872.000000 97635881610 Columns shown are x, y, z acceleration, so a positive acceleration of ~9.81 (shaky due to bad calibration) along the z axis. The fourth column is the AUX IN which is floating on this system, it seems to float up to the 2.85V VDD voltage. To be able to cleanup the triggered buffer, we need to add .remove() callbacks to the I2C and SPI subdrivers and call back into an exported .remove() callback in the core. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Tested-by: Jonathan Cameron <jic23@kernel.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
291 lines
7.8 KiB
Plaintext
291 lines
7.8 KiB
Plaintext
#
|
|
# Accelerometer drivers
|
|
#
|
|
# When adding new entries keep the list in alphabetical order
|
|
|
|
menu "Accelerometers"
|
|
|
|
config BMA180
|
|
tristate "Bosch BMA180/BMA250 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say Y here if you want to build a driver for the Bosch BMA180 or
|
|
BMA250 triaxial acceleration sensor.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called bma180.
|
|
|
|
config BMA220
|
|
tristate "Bosch BMA220 3-Axis Accelerometer Driver"
|
|
depends on SPI
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say yes here to add support for the Bosch BMA220 triaxial
|
|
acceleration sensor.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called bma220_spi.
|
|
|
|
config BMC150_ACCEL
|
|
tristate "Bosch BMC150 Accelerometer Driver"
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
select REGMAP
|
|
select BMC150_ACCEL_I2C if I2C
|
|
select BMC150_ACCEL_SPI if SPI
|
|
help
|
|
Say yes here to build support for the following Bosch accelerometers:
|
|
BMC150, BMI055, BMA250E, BMA222E, BMA255, BMA280.
|
|
|
|
This is a combo module with both accelerometer and magnetometer.
|
|
This driver is only implementing accelerometer part, which has
|
|
its own address and register map.
|
|
|
|
config BMC150_ACCEL_I2C
|
|
tristate
|
|
select REGMAP_I2C
|
|
|
|
config BMC150_ACCEL_SPI
|
|
tristate
|
|
select REGMAP_SPI
|
|
|
|
config DMARD06
|
|
tristate "Domintech DMARD06 Digital Accelerometer Driver"
|
|
depends on OF || COMPILE_TEST
|
|
depends on I2C
|
|
help
|
|
Say yes here to build support for the Domintech low-g tri-axial
|
|
digital accelerometers: DMARD05, DMARD06, DMARD07.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called dmard06.
|
|
|
|
config DMARD09
|
|
tristate "Domintech DMARD09 3-axis Accelerometer Driver"
|
|
depends on I2C
|
|
help
|
|
Say yes here to get support for the Domintech DMARD09 3-axis
|
|
accelerometer.
|
|
|
|
Choosing M will build the driver as a module. If so, the module
|
|
will be called dmard09.
|
|
|
|
config HID_SENSOR_ACCEL_3D
|
|
depends on HID_SENSOR_HUB
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
select HID_SENSOR_IIO_COMMON
|
|
select HID_SENSOR_IIO_TRIGGER
|
|
tristate "HID Accelerometers 3D"
|
|
help
|
|
Say yes here to build support for the HID SENSOR
|
|
accelerometers 3D.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called hid-sensor-accel-3d.
|
|
|
|
config IIO_ST_ACCEL_3AXIS
|
|
tristate "STMicroelectronics accelerometers 3-Axis Driver"
|
|
depends on (I2C || SPI_MASTER) && SYSFS
|
|
select IIO_ST_SENSORS_CORE
|
|
select IIO_ST_ACCEL_I2C_3AXIS if (I2C)
|
|
select IIO_ST_ACCEL_SPI_3AXIS if (SPI_MASTER)
|
|
select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
|
|
help
|
|
Say yes here to build support for STMicroelectronics accelerometers:
|
|
LSM303DLH, LSM303DLHC, LIS3DH, LSM330D, LSM330DL, LSM330DLC,
|
|
LIS331DLH, LSM303DL, LSM303DLM, LSM330, LIS2DH12, H3LIS331DL.
|
|
|
|
This driver can also be built as a module. If so, these modules
|
|
will be created:
|
|
- st_accel (core functions for the driver [it is mandatory]);
|
|
- st_accel_i2c (necessary for the I2C devices [optional*]);
|
|
- st_accel_spi (necessary for the SPI devices [optional*]);
|
|
|
|
(*) one of these is necessary to do something.
|
|
|
|
config IIO_ST_ACCEL_I2C_3AXIS
|
|
tristate
|
|
depends on IIO_ST_ACCEL_3AXIS
|
|
depends on IIO_ST_SENSORS_I2C
|
|
|
|
config IIO_ST_ACCEL_SPI_3AXIS
|
|
tristate
|
|
depends on IIO_ST_ACCEL_3AXIS
|
|
depends on IIO_ST_SENSORS_SPI
|
|
|
|
config KXSD9
|
|
tristate "Kionix KXSD9 Accelerometer Driver"
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say yes here to build support for the Kionix KXSD9 accelerometer.
|
|
It can be accessed using an (optional) SPI or I2C interface.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called kxsd9.
|
|
|
|
config KXSD9_SPI
|
|
tristate "Kionix KXSD9 SPI transport"
|
|
depends on KXSD9
|
|
depends on SPI
|
|
default KXSD9
|
|
select REGMAP_SPI
|
|
help
|
|
Say yes here to enable the Kionix KXSD9 accelerometer
|
|
SPI transport channel.
|
|
|
|
config KXSD9_I2C
|
|
tristate "Kionix KXSD9 I2C transport"
|
|
depends on KXSD9
|
|
depends on I2C
|
|
default KXSD9
|
|
select REGMAP_I2C
|
|
help
|
|
Say yes here to enable the Kionix KXSD9 accelerometer
|
|
I2C transport channel.
|
|
|
|
config KXCJK1013
|
|
tristate "Kionix 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say Y here if you want to build a driver for the Kionix KXCJK-1013
|
|
triaxial acceleration sensor. This driver also supports KXCJ9-1008
|
|
and KXTJ2-1009.
|
|
|
|
To compile this driver as a module, choose M here: the module will
|
|
be called kxcjk-1013.
|
|
|
|
config MMA7455
|
|
tristate
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
|
|
config MMA7455_I2C
|
|
tristate "Freescale MMA7455L/MMA7456L Accelerometer I2C Driver"
|
|
depends on I2C
|
|
select MMA7455
|
|
select REGMAP_I2C
|
|
help
|
|
Say yes here to build support for the Freescale MMA7455L and
|
|
MMA7456L 3-axis accelerometer.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called mma7455_i2c.
|
|
|
|
config MMA7455_SPI
|
|
tristate "Freescale MMA7455L/MMA7456L Accelerometer SPI Driver"
|
|
depends on SPI_MASTER
|
|
select MMA7455
|
|
select REGMAP_SPI
|
|
help
|
|
Say yes here to build support for the Freescale MMA7455L and
|
|
MMA7456L 3-axis accelerometer.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called mma7455_spi.
|
|
|
|
config MMA7660
|
|
tristate "Freescale MMA7660FC 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
help
|
|
Say yes here to get support for the Freescale MMA7660FC 3-Axis
|
|
accelerometer.
|
|
|
|
Choosing M will build the driver as a module. If so, the module
|
|
will be called mma7660.
|
|
|
|
config MMA8452
|
|
tristate "Freescale / NXP MMA8452Q and similar Accelerometers Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say yes here to build support for the following Freescale / NXP 3-axis
|
|
accelerometers: MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC,
|
|
FXLS8471Q.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called mma8452.
|
|
|
|
config MMA9551_CORE
|
|
tristate
|
|
|
|
config MMA9551
|
|
tristate "Freescale MMA9551L Intelligent Motion-Sensing Platform Driver"
|
|
depends on I2C
|
|
select MMA9551_CORE
|
|
|
|
help
|
|
Say yes here to build support for the Freescale MMA9551L
|
|
Intelligent Motion-Sensing Platform Driver.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called mma9551.
|
|
|
|
config MMA9553
|
|
tristate "Freescale MMA9553L Intelligent Pedometer Platform Driver"
|
|
depends on I2C
|
|
select MMA9551_CORE
|
|
help
|
|
Say yes here to build support for the Freescale MMA9553L
|
|
Intelligent Pedometer Platform Driver.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called mma9553.
|
|
|
|
config MXC4005
|
|
tristate "Memsic MXC4005XC 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
select REGMAP_I2C
|
|
help
|
|
Say yes here to build support for the Memsic MXC4005XC 3-axis
|
|
accelerometer.
|
|
|
|
To compile this driver as a module, choose M. The module will be
|
|
called mxc4005.
|
|
|
|
config MXC6255
|
|
tristate "Memsic MXC6255 Orientation Sensing Accelerometer Driver"
|
|
depends on I2C
|
|
select REGMAP_I2C
|
|
help
|
|
Say yes here to build support for the Memsic MXC6255 Orientation
|
|
Sensing Accelerometer Driver.
|
|
|
|
To compile this driver as a module, choose M here: the module will be
|
|
called mxc6255.
|
|
|
|
config STK8312
|
|
tristate "Sensortek STK8312 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say yes here to get support for the Sensortek STK8312 3-axis
|
|
accelerometer.
|
|
|
|
Choosing M will build the driver as a module. If so, the module
|
|
will be called stk8312.
|
|
|
|
config STK8BA50
|
|
tristate "Sensortek STK8BA50 3-Axis Accelerometer Driver"
|
|
depends on I2C
|
|
select IIO_BUFFER
|
|
select IIO_TRIGGERED_BUFFER
|
|
help
|
|
Say yes here to get support for the Sensortek STK8BA50 3-axis
|
|
accelerometer.
|
|
|
|
Choosing M will build the driver as a module. If so, the module
|
|
will be called stk8ba50.
|
|
|
|
endmenu
|