| # ST Microelectronics LIS2DW12 3-axis accelerometer driver |
| |
| # Copyright (c) 2019 STMicroelectronics |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| menuconfig LIS2DW12 |
| bool "LIS2DW12 I2C/SPI accelerometer sensor driver" |
| depends on I2C || SPI |
| select HAS_STMEMSC |
| select USE_STDC_LIS2DW12 |
| help |
| Enable driver for LIS2DW12 accelerometer sensor driver |
| |
| if LIS2DW12 |
| |
| choice LIS2DW12_TRIGGER_MODE |
| prompt "Trigger mode" |
| help |
| Specify the type of triggering to be used by the driver. |
| |
| config LIS2DW12_TRIGGER_NONE |
| bool "No trigger" |
| |
| config LIS2DW12_TRIGGER_GLOBAL_THREAD |
| bool "Use global thread" |
| depends on GPIO |
| select LIS2DW12_TRIGGER |
| |
| config LIS2DW12_TRIGGER_OWN_THREAD |
| bool "Use own thread" |
| depends on GPIO |
| select LIS2DW12_TRIGGER |
| |
| endchoice |
| |
| config LIS2DW12_TRIGGER |
| bool |
| |
| if LIS2DW12_TRIGGER |
| |
| config LIS2DW12_THREAD_PRIORITY |
| int "Thread priority" |
| depends on LIS2DW12_TRIGGER_OWN_THREAD |
| default 10 |
| help |
| Priority of thread used by the driver to handle interrupts. |
| |
| config LIS2DW12_THREAD_STACK_SIZE |
| int "Thread stack size" |
| depends on LIS2DW12_TRIGGER_OWN_THREAD |
| default 1024 |
| help |
| Stack size of thread used by the driver to handle interrupts. |
| |
| choice |
| prompt "Sensor INT pin number" |
| default LIS2DW12_INT_PIN_1 |
| help |
| The number of LIS2DW12 int pin used to generate interrupt to cpu. |
| Supported values are int1 or int2 |
| |
| config LIS2DW12_INT_PIN_1 |
| bool "int1" |
| |
| config LIS2DW12_INT_PIN_2 |
| bool "int2" |
| endchoice |
| |
| menuconfig LIS2DW12_PULSE |
| bool "Pulse detection" |
| help |
| Enable pulse (single/double tap) detection |
| |
| if LIS2DW12_PULSE |
| |
| choice |
| prompt "Pulse interrupt source" |
| default LIS2DW12_ONLY_SINGLE |
| |
| config LIS2DW12_ONLY_SINGLE |
| bool "single" |
| |
| config LIS2DW12_SINGLE_DOUBLE |
| bool "single/double" |
| |
| endchoice |
| |
| config LIS2DW12_PULSE_THSX |
| hex "Pulse X-axis threshold" |
| range 0 0x1F |
| default 0x0E |
| help |
| Threshold to start the pulse-event detection procedure on the X-axis. |
| Threshold values for each axis are unsigned 5-bit corresponding |
| to an 2g acceleration full-scale range. |
| |
| config LIS2DW12_PULSE_THSY |
| hex "Pulse Y-axis threshold" |
| range 0 0x1F |
| default 0x0E |
| help |
| Threshold to start the pulse-event detection procedure on the Y-axis. |
| Threshold values for each axis are unsigned 5-bit corresponding |
| to an 2g acceleration full-scale range. |
| |
| config LIS2DW12_PULSE_THSZ |
| hex "Pulse Z-axis threshold" |
| range 0 0x1F |
| default 0x0E |
| help |
| Threshold to start the pulse-event detection procedure on the Z-axis. |
| Threshold values for each axis are unsigned 5-bit corresponding |
| to an 2g acceleration full-scale range. |
| |
| config LIS2DW12_PULSE_X |
| bool "Enable X axis for pulse" |
| default y |
| |
| config LIS2DW12_PULSE_Y |
| bool "Enable Y axis for pulse" |
| default y |
| |
| config LIS2DW12_PULSE_Z |
| bool "Enable Z axis for pulse" |
| default y |
| |
| config LIS2DW12_PULSE_SHOCK |
| hex "Shock value" |
| range 0 0x03 |
| default 0x00 |
| help |
| Maximum duration of over-threshold event: this register represents |
| the maximum time of an over-threshold signal detection to be |
| recognized as a tap event. Where 0 equals 4*1/ODR and 1LSB = 8*1/ODR. |
| |
| config LIS2DW12_PULSE_LTNCY |
| hex "Latency value" |
| range 0 0x0F |
| default 0x05 |
| help |
| When double-tap recognition is enabled, this register expresses |
| the maximum time between two successive detected taps to |
| determine a double-tap event. Where 0 equals 16*1/ODR and |
| 1LSB = 32*1/ODR. |
| |
| config LIS2DW12_PULSE_QUIET |
| hex "Quiet value" |
| range 0 0x03 |
| default 0x00 |
| help |
| Expected quiet time after a tap detection: this register represents |
| the time after the first detected tap in which there must not be |
| any overthreshold event. Where 0 equals 2*1/ODR and 1LSB = 4*1/ODR. |
| |
| endif # LIS2DW12_PULSE |
| |
| endif # LIS2DW12_TRIGGER |
| |
| choice |
| prompt "Accelerometer Full-scale range setting" |
| default LIS2DW12_ACCEL_RANGE_RUNTIME |
| |
| config LIS2DW12_ACCEL_RANGE_RUNTIME |
| bool "Set at runtime (Default 2G)" |
| |
| config LIS2DW12_ACCEL_RANGE_2G |
| bool "2G" |
| |
| config LIS2DW12_ACCEL_RANGE_4G |
| bool "4G" |
| |
| config LIS2DW12_ACCEL_RANGE_8G |
| bool "8G" |
| |
| config LIS2DW12_ACCEL_RANGE_16G |
| bool "16G" |
| endchoice |
| |
| choice |
| prompt "Accelerometer sampling frequency (ODR)" |
| default LIS2DW12_ODR_RUNTIME |
| |
| config LIS2DW12_ODR_RUNTIME |
| bool "Set at runtime (Default 100 Hz)" |
| |
| config LIS2DW12_ODR_1_6 |
| bool "1.6 Hz" |
| |
| config LIS2DW12_ODR_12_5 |
| bool "12.5 Hz" |
| |
| config LIS2DW12_ODR_25 |
| bool "25 Hz" |
| |
| config LIS2DW12_ODR_50 |
| bool "50 Hz" |
| |
| config LIS2DW12_ODR_100 |
| bool "100 Hz" |
| |
| config LIS2DW12_ODR_200 |
| bool "200 Hz" |
| |
| config LIS2DW12_ODR_400 |
| bool "400 Hz" |
| |
| config LIS2DW12_ODR_800 |
| bool "800 Hz" |
| |
| config LIS2DW12_ODR_1600 |
| bool "1600 Hz" |
| |
| endchoice |
| |
| config LIS2DW12_POWER_MODE |
| int "Sensor Power Modes" |
| range 0 4 |
| default 0 |
| help |
| Specify the sensor power mode |
| 0: Low Power M1 |
| 1: Low Power M2 |
| 2: Low Power M3 |
| 3: Low Power M4 |
| 4: High Performance |
| |
| endif # LIS2DW12 |