Added support tu ISM330IS ST MEMS IMU sensor with following features:
- Sensor Hub
1) Maximum of 2 device supported to be chosen from the following
part numbers:
- LIS2MDL 3-axis magnetometer
- LPS22HH pressure
2) Possibility to configure pull up on I2C master interface through
device tree
3) Self scan on I2C master interface of supported device, including
multi address devices
4) Configure SHUB sensor ODR
- Self-test
verifying the functionality of the device without moving it.
The Self Test procedure can be performed on the Accelerometer and
also on Gyro sensor separately using the selftest entry of the sysfs.
- Acc, gyro and temperature data reading (with sensitivity and raw data)
- External trigger
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I6de3f216b54244dae7127ae48e38b7939009e248
Added support for the imu lsm6dsv16bx sensor. The current driver
version supports the following features:
- Acc and Gyro in continuous mode supported by the internal HW FIFO
- QVAR sensor for presence and touch detection, data of QVAR are
managed internally by HW FIFO.
- SFLP Embedded Sensor Fusion Function Game Rotation vector sensor.
- TDM slave interface configuration for accelerometer data.
- MLC / FSM programmable functions.
- Free fall, step counter, step detection, wake-up, significant
motion, tilt, tap, double tap, 6D and sleep change embedded
functions event detection.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I1f2ad688261cba90b5c3633ccd9fc6fb0301d771
Added support to STMEMS acc LIS2DU12 sensor.
The following features has been included:
- Acc and Temp sensor in FIFO
- Embedded features event detection supported:
- Wake-up
- Free fall
- Tap
- Double Tap
- 6D / 4D
- activity / inactivity
- Embedded features parameters configuration
- Self test procedure
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I89df1f65ca14e01bc424b8e26de2c972cf71b999
Add support to the h3lis331dl STMEMS accel sensor with the
following basic features:
- Accel raw data read
- Buffered data read
- Trigger support
h3lis331dl driver include support for H3LIS331DL and LIS331DLH
STMEMS accel sensor devices.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ic8553294d1e646aa048b3f4be294d8d6d3916035
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/296337
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
the may wakeup functionality has been removed from the
driver and managed via device tree where supported by
the target, for this reason defining it in the sensor
default config is no longer necessary.
Signed-off-by: mariotesi <mario.tesi@st.com>
Change-Id: If4de48330aebb923453c67f61ad845236d9f0670
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/326363
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
Preliminary version of ilps22qs STMEMS Pressure driver to enable
reading data from pressure and temperature sensors.
Since the interrupts of the device are exclusively software, timers
have been used for the management of the data polling in continuous
mode with IIO buffer.
Available features:
- Configure ODR for Pressure and Temperature sensor
- Reading raw Pressure and Temperature sensor data
- Reading IIO buffer Pressure and Temperature sensor data
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ifce3655b2687911b88bdbc854f6ff42778b60a40
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/284832
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
The st_lsm6dso16is driver was not included in the kernel build
because it was not added in the top level Kconfig/Makefile,
furthermore the default config contained a typo.
In lsm6dso16is_defconfig there is a wrong device name,
this fix enables lsm6dso16is module compilation.
Signed-off-by: mariotesi <mario.tesi@st.com>
Change-Id: I92df0ca4c3e29af6bcaef5ce80a78d494672ef00
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/325964
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Add support of TMOS ST MEMS IIO sensor with the following features:
- Tobject sensor data (compensation can be enabled / disabled)
- Tambient sensor data
- Tpresence sensor data and event generation
- Tmotion sensor data and event generation
- Tambient_shock sensor data and event generation
- LPF configurable
- Hysteresis and Threshold setting
- Supported ODR are 0.25, 0.5, 1, 2, 4, 8, 15 and 30 Hz
- Support reset algo procedure
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I74b8b50baf91693230a195300b3660591d32605e
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/315094
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
Added support to STMEMS acc LIS2DUXS12 sensor.
The following features has been included:
- Acc, Temp and QVAR sensors in FIFO
- Self Test
- Embedded features event detection supported:
- Wake-up
- Free fall
- Single Tap
- Double Tap
- Triple Tap
- 6D orientation
- Sleep change
- Step Counter
- Step Detection
- Significant Motion
- Tilt
- MLC and FSM configuration
- I2C / SPI / I3C interfaces through regmap
- Multi kernel version support up to v5.15
- Preload MLC/FSM presence detection using QVAR
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I014d990f55c178f15a4a087a897d7eb8ed17ed8f
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/261051
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Matteo DAMENO <matteo.dameno@st.com>
Preliminary version of lsm6dso16is STMEMS IMU driver to enable
reading data from acc gyro and temp sensors using raw data.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ia257191dc964d14331bcf66782a36971f602a348
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/272011
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
lsm6dsrx driver has now been extended in order to support also lsm6dsr
device.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ia846480148d78800740eda93f3b8e0b88d84ac5a
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/268463
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
The LSM6DSVx STMEMS IMU device family can be configured to generate
interrupt signals activated by user-defined motion patterns. To
do this, up to 8 embedded finite state machines (FSM) can be programmed
independently for motion detection. Moreover this sensor family embeds
a dedicated core for machine learning processing (MLC) that provides system
flexibility, allowing up to 4 algorithms run in the application
processor to be moved in the MEMS sensor with the advantage of consistent
reduction in overall power consumption.
This commit add the possibility to configure the internal MLC and FSM core
using the unico ucf configuration file at runtime.
Each configured MLC or FSM exports an IIO device capable of generating
events for which it was designed and can be individually enabled and
disabled.
In addition, an example configuration file for MLC and FSM has been
included in driver code and can be preloaded immediately in order to
test this functionality.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I061746d1f827f6e8db43fd3bb9054e7bdb64f1a9
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/266723
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Predisposition of the driver to manage more devices id of the same
family having slightly different characteristics or partially supported
functions.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I1ec9195dee15855fadef4e8ca55b61c86c2d2356
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/266410
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Added support for the imu lsm6dsvx sensor family which the progenitor
lsm6dsv16x belongs to. The current driver version supports the following
features:
- Acc and Gyro in continuous mode supported by the internal HW FIFO
- Sensor Hub function with support for the following slave sensors
connected to the component master I2C interface:
- LIS2MDL - Magnetometer
- LPS22HH - Pressure
- QVAR sensor for presence and touch detection, data of QVAR can be
managed internally by HW FIFO or generated by an hr timer depending
on Kconfig.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I0e7595696806c98341b7fe94befd8ac684bb30b2
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/266065
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
This driver adds support to the family of magnetometric sensors
having the common whoami 0x3d. The following devices belong to
this family:
LIS3MDL - 3 axis Magnetometer
LSM9DS1 - 6 axis IMU + 3 axis Magnetometer
Tested on Kernel <= 5.4 and 5.10 where trigger ops structure
differs.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: If7d7b82333592fdb5a888bf53dfafc8382cce9a6
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/265990
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Permanently deletes the MLC defines left in the interface part and in
the default config of the driver.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I168a8675ca8ecbadce6d1156cf9fd2e03697e2af
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/265267
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
ASM330LHHX device include Finite State Machine (FSM) and Machine
Learning Core (MLC) HW block features which can be programmed through
binary ucf files generated by the "Unico" STmicroelectronics tool.
Through this patch the possibility to exploit the new features with
the following characteristics:
- Preload a test configuration for MLC / FSM during probe.
- Dynamically upload a new configuration via firmware upload.
- Individually enable and disable IIO devices generated by the ucf
configuration.
- Max number of contemporary MLC 8 and FSM 16 supported.
- Configurable MLC/FSM interrupt pin.
- Management of MLC and FSM events as IIO_ACTIVITY type including output
register data and timestamp.
- Possibility to dynamically flush a configuration.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I17ff5a9133e93a75774f4b193d50cd23706d1237
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/262550
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Renamed st_asm330lhh driver to st_asm330lhhx, in order to include all
asm330lhh IMU device sensor family.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I98355a2050269eac4576d3e0a2d6243284c37387
Reviewed-on: https://gerrit.st.com/c/linuxandroidopen/stm-ldd-iio/+/260376
Tested-by: CITOOLS <MDG-smet-aci-reviews@list.st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Added support to LSM6DS3H STMEMS IMU.
This device was missing from the list of supported devices for
kernel 5.4 despite being supported in older version kernels.
This commit aligns device supported to previous kernel versions.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I27beac842372e7da0faeaf04c3ec77a3203f00ed
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/631
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Added support to LSM6DS3 STMEMS IMU.
This device was missing from the list of supported devices for
kernel 5.4 despite being supported in older version kernels.
This commit aligns device supported to previous kernel versions.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I679e66def879d17440e77d6df303263b0457a8d8
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/630
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Added support to LIS2HH12 STMEMS accel.
This device was missing from the list of supported devices for
kernel 5.4 despite being supported in older version kernels.
This commit aligns device supported to previous kernel versions.
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: I3508361e425a74a8f3fa6073feeae82b5c0dadaf
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/629
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
vdd and vddio are optional regulators for the driver.
The request regulator (NORMAL_GET) will provide a dummy regulator if
no one is found.
There is no need of letting the user decide at compile this, it should
always be enabled.
Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Change-Id: I22b6a78bd5079874c61df5a2e94a18e55d373bf5
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/496
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Mario TESI <mario.tesi@st.com>
vdd and vddio are optional regulators for the driver.
The request regulator (NORMAL_GET) will provide a dummy regulator if
no one is found.
There is no need of letting the user decide at compile this, it should
always be enabled.
Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Change-Id: I37a5174f8ef6a7c5582e596669f0c79470837cf7
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/495
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Mario TESI <mario.tesi@st.com>
vdd and vddio are optional regulators for the driver.
The request regulator (NORMAL_GET) will provide a dummy regulator if
no one is found.
There is no need of letting the user decide at compile this, it should
always be enabled.
Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Change-Id: Ie6b5d8a11aed10bdad61b971e20e7c37645bb883
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/494
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Mario TESI <mario.tesi@st.com>
lsm6dsox driver has now been extended in order to support these
devices.
Signed-off-by: Denis Ciocca <denis.ciocca@st.com>
Change-Id: Ife47dd16df4528e169df8feba76a24f2f1b75269
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/463
Tested-by: CI STM MSD <aosp-ger@st.com>
Reviewed-by: Mario TESI <mario.tesi@st.com>
LSM6DSOX driver now support all devices included in the following list:
- LSM6DSO
- LSM6DSOX
- LSM6DSO32
- LSM6DSO32X
Select device using the device tree compatible string
Signed-off-by: Mario Tesi <mario.tesi@st.com>
Change-Id: Ib5f9f292a671f744843646a3c24f042e1b8e3dd5
Reviewed-on: https://sczcxd1104.scz.st.com/gerrit/c/linux/stm-ldd-iio/+/420
Reviewed-by: Denis CIOCCA <denis.ciocca@st.com>
Tested-by: CI STM MSD <aosp-ger@st.com>
Added support to LPS33HW ST MEMS pressure and temperature sensor
List of supported features:
- Configurable ODRs [Power_Off ... 75] Hz
- Sensor Event Timestamp support
- Read single raw data values for pressure and temperature
- FIFO:
> Pressure data stored in FIFO
> HW Watermark configuration
> Custom Flush command / event support
Signed-off-by: mario tesi <mario.tesi@st.com>
Change-Id: Iae0b2ad72d7242e237450a74e9d8d25133a5ccc0
Added support to LPS22DB ST MEMS pressure and temperature sensor
List of supported features:
- Configurable ODRs [Power_Off ... 75] Hz
- Sensor Event Timestamp support
- Read single raw data values for pressure and temperature
- FIFO:
> Pressure data stored in FIFO
> HW Watermark configuration
> Custom Flush command / event support
Signed-off-by: mario tesi <mario.tesi@st.com>
Change-Id: I435b87f7377b43cd34cb766968ca6326815c186c
Added support to LPS22DF ST MEMS pressure and temperature sensor
List of supported features:
- Configurable ODRs [Power_Off ... 200] Hz
- Sensor Event Timestamp support
- Read single raw data values for pressure and temperature
- FIFO:
> Pressure data stored in FIFO
> HW Watermark configuration
> Custom Flush command / event support
Signed-off-by: mario tesi <mario.tesi@st.com>
Change-Id: Ia3be1f93498c6c46345a067c6323968a94014662