268 lines
8.6 KiB
YAML
268 lines
8.6 KiB
YAML
# Copyright (c) 2021 STMicroelectronics
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
description: |
|
|
When setting the odr property in a .dts or .dtsi file you may include
|
|
lis2dw12.h and use the macros defined there.
|
|
|
|
Example:
|
|
#include <zephyr/dt-bindings/sensor/lis2dw12.h>
|
|
|
|
lis2dw12: lis2dw12@0 {
|
|
...
|
|
|
|
wakeup-duration = <LIS2DW12_DT_WAKEUP_4_ODR>;
|
|
ff-threshold = <LIS2DW12_DT_FF_THRESHOLD_500_mg>;
|
|
tap-mode = <LIS2DW12_DT_SINGLE_DOUBLE_TAP>;
|
|
power-mode = <LIS2DW12_DT_HP_MODE>;
|
|
bw-filt = <LIS2DW12_DT_FILTER_BW_ODR_DIV_2>;
|
|
};
|
|
|
|
include: sensor-device.yaml
|
|
|
|
properties:
|
|
irq-gpios:
|
|
type: phandle-array
|
|
description: |
|
|
DRDY pin
|
|
|
|
This pin defaults to active high when produced by the sensor.
|
|
The property value should ensure the flags properly describe
|
|
the signal that is presented to the driver.
|
|
|
|
int-pin:
|
|
type: int
|
|
default: 1
|
|
enum: [1, 2]
|
|
|
|
description: |
|
|
Select DRDY pin number (1 or 2).
|
|
|
|
1 # drdy is generated from INT1
|
|
2 # drdy is generated from INT2
|
|
|
|
This number represents which of the two interrupt pins
|
|
(INT1 or INT2) the drdy line is attached to. This property is not
|
|
mandatory and if not present it defaults to 1 which is the
|
|
configuration at power-up.
|
|
|
|
range:
|
|
type: int
|
|
default: 2
|
|
description: |
|
|
Range in g. Default is power-up configuration.
|
|
|
|
16 # 16g (1.952 mg/LSB)
|
|
8 # 8g (0.976 mg/LSB)
|
|
4 # 4g (0.488 mg/LSB)
|
|
2 # 2g (0.244 mg/LSB)
|
|
|
|
enum: [16, 8, 4, 2]
|
|
|
|
odr:
|
|
type: int
|
|
description: |
|
|
Output data rate in Hz. Default value is 12.5Hz if this is not set.
|
|
The output data rates which are represented with fractional
|
|
numbers are converted into their integer parts (1.65Hz -> 1, 12.5Hz -> 12).
|
|
If 0 selected as the odr, the accelerometer initializes into
|
|
power off state.
|
|
|
|
enum: [0, 1, 12, 25, 50, 100, 200, 400, 800, 1600]
|
|
|
|
bw-filt:
|
|
type: int
|
|
default: 0
|
|
description: |
|
|
Digital filtering cutoff bandwidth. Default is power-up configuration.
|
|
|
|
- 0 # LIS2DW12_DT_FILTER_BW_ODR_DIV_2
|
|
- 1 # LIS2DW12_DT_FILTER_BW_ODR_DIV_4
|
|
- 2 # LIS2DW12_DT_FILTER_BW_ODR_DIV_10
|
|
- 3 # LIS2DW12_DT_FILTER_BW_ODR_DIV_20
|
|
|
|
enum: [0, 1, 2, 3]
|
|
|
|
power-mode:
|
|
type: int
|
|
default: 0
|
|
description: |
|
|
Specify the sensor power mode. Default is power-up configuration.
|
|
|
|
- 0 # LIS2DW12_DT_LP_M1
|
|
- 1 # LIS2DW12_DT_LP_M2
|
|
- 2 # LIS2DW12_DT_LP_M3
|
|
- 3 # LIS2DW12_DT_LP_M4
|
|
- 4 # LIS2DW12_DT_HP_MODE
|
|
|
|
enum: [0, 1, 2, 3, 4]
|
|
|
|
# tap and tap-tap configuration section
|
|
# All default values are selected to match the power-up values.
|
|
# tap and tap-tap events can be generated on INT1 only.
|
|
|
|
tap-mode:
|
|
type: int
|
|
default: 0
|
|
description: |
|
|
Tap mode. Default is power-up configuration.
|
|
|
|
- 0 # LIS2DW12_DT_SINGLE_TAP
|
|
- 1 # LIS2DW12_DT_SINGLE_DOUBLE_TAP
|
|
|
|
enum: [0, 1]
|
|
|
|
tap-threshold:
|
|
type: array
|
|
default: [0, 0, 0]
|
|
description: |
|
|
Tap X/Y/Z axes threshold. Default is power-up configuration.
|
|
(X/Y/Z values range from 0x00 to 0x1F)
|
|
|
|
Thresholds to start the tap-event detection procedure on the X/Y/Z axes.
|
|
Threshold values for each axis are unsigned 5-bit corresponding
|
|
to a 2g acceleration full-scale range. A threshold value equal to zero
|
|
corresponds to disable the tap detection on that axis.
|
|
|
|
For example, if you want to set the threshold for X to 12, for Z to 14
|
|
and want to disable tap detection on Y, you should specify in Device Tree
|
|
|
|
tap-threshold = <12>, <0>, <14>
|
|
|
|
which is equivalent to X = 12 * 2g/32 = 750mg and Z = 14 * 2g/32 = 875mg.
|
|
|
|
tap-shock:
|
|
type: int
|
|
default: 0x0
|
|
description: |
|
|
Tap shock value. Default is power-up configuration.
|
|
(values range from 0x0 to 0x3)
|
|
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.
|
|
|
|
tap-latency:
|
|
type: int
|
|
default: 0x0
|
|
description: |
|
|
Tap latency. Default is power-up configuration.
|
|
(values range from 0x0 to 0xF)
|
|
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.
|
|
|
|
tap-quiet:
|
|
type: int
|
|
default: 0x0
|
|
description: |
|
|
Expected quiet time after a tap detection. Default is power-up configuration.
|
|
(values range from 0x0 to 0x3)
|
|
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.
|
|
|
|
low-noise:
|
|
type: boolean
|
|
description: |
|
|
Enables the LOW_NOISE flag in the CTRL6 register.
|
|
This influences the noise density and the current consumption.
|
|
See the datasheet for more information.
|
|
|
|
hp-filter-path:
|
|
type: boolean
|
|
description: |
|
|
Sets the Filtered Data Selection bit in the CTRL6 register.
|
|
When enabled, the high-pass filter path is selected.
|
|
When disabled, the low-pass filter path is selected.
|
|
Note that this influences the OUT_REG / FIFO values,
|
|
but not the Wakeup function.
|
|
|
|
hp-ref-mode:
|
|
type: boolean
|
|
description: |
|
|
Enables the high-pass filter reference mode in the CTRL7 register.
|
|
When the high-pass filter is configured in reference mode,
|
|
the output data is calculated as the difference between the input
|
|
acceleration and the values captured when reference mode was enabled.
|
|
In this way only the difference is applied without any filtering
|
|
of the LIS2DW12.
|
|
Note that this influences both the OUT_REG / FIFO values,
|
|
as well as the Wakeup function.
|
|
|
|
drdy-pulsed:
|
|
type: boolean
|
|
description: |
|
|
Selects the pulsed mode for data-ready interrupt when enabled,
|
|
and the latched mode when disabled.
|
|
Sets the corresponding DRDY_PULSED bit in the CTRL7 register.
|
|
|
|
ff-duration:
|
|
type: int
|
|
default: 30
|
|
description: |
|
|
The freefall duration value represented in milliseconds.
|
|
If the accelerometer readings of the all axes are lower
|
|
than the freefall threshold value for the freefall duration long,
|
|
then a freefall trigger occurs. This value is 5 bits long in the
|
|
register and 1 LSB = 1 * 1/ODR. This value depends on the ODR.
|
|
if the data rate change in code with SENSOR ATTR SAMPLING FREQUENCY,
|
|
It must be set again with SENSOR_ATT_FF_DUR attribute. ST propose
|
|
100Hz ODR and 30ms ff-duration for recognize freefall detection
|
|
refer to ST DT0100 design tip document.
|
|
|
|
ff-threshold:
|
|
type: int
|
|
default: 3
|
|
description: |
|
|
The freefall threshold value represented in mg.
|
|
If the accelerometer readings of the all axes are lower
|
|
than the freefall threshold value for the freefall duration long,
|
|
then a freefall trigger occurs. This value is 3 bits long.
|
|
Default value chosen 3 (312 mg) refer to ST DT0100 design tip document.
|
|
|
|
- 0 # LIS2DW12_DT_FF_THRESHOLD_156_mg
|
|
- 1 # LIS2DW12_DT_FF_THRESHOLD_219_mg
|
|
- 2 # LIS2DW12_DT_FF_THRESHOLD_250_mg
|
|
- 3 # LIS2DW12_DT_FF_THRESHOLD_312_mg
|
|
- 4 # LIS2DW12_DT_FF_THRESHOLD_344_mg
|
|
- 5 # LIS2DW12_DT_FF_THRESHOLD_406_mg
|
|
- 6 # LIS2DW12_DT_FF_THRESHOLD_469_mg
|
|
- 7 # LIS2DW12_DT_FF_THRESHOLD_500_mg
|
|
|
|
enum: [0, 1, 2, 3, 4, 5, 6, 7]
|
|
|
|
wakeup-duration:
|
|
type: int
|
|
default: 0
|
|
description: |
|
|
The wakeup duration. Default value is the register reset value.
|
|
If the accelerometer readings of the all axes are higher
|
|
than the wakeup threshold value for the wakeup duration long,
|
|
then a wakeup trigger occurs. This value is 2 bits long in the
|
|
register and 1 LSB = 1 * 1/ODR.
|
|
|
|
- 0 # LIS2DW12_DT_WAKEUP_1_ODR
|
|
- 1 # LIS2DW12_DT_WAKEUP_2_ODR
|
|
- 2 # LIS2DW12_DT_WAKEUP_3_ODR
|
|
- 3 # LIS2DW12_DT_WAKEUP_4_ODR
|
|
|
|
enum: [0, 1, 2, 3]
|
|
|
|
sleep-duration:
|
|
type: int
|
|
default: 0
|
|
description: |
|
|
The sleep duration. Default value is the register reset value (0000 -> 16*1/ODR).
|
|
If the accelerometer readings of the all axes are lower
|
|
than the wakeup threshold value for the sleep duration long,
|
|
then a sleep trigger occurs or the device goes in sleep mode. This value is 4 bits long in the
|
|
register and 1 LSB = 512 * 1/ODR.
|
|
|
|
Value goes from 0 to 15
|
|
|
|
- 0 # LIS2DW12_DT_SLEEP_0_ODR
|
|
...
|
|
- 15 # LIS2DW12_DT_SLEEP_15_ODR
|
|
|
|
enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|