blob: 145a87544966d99d500e09ada07dfcc5fad68373 [file] [log] [blame]
# 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 && HAS_DTS_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