Commit Graph

2313 Commits

Author SHA1 Message Date
Jordan Yates
c7bc268656 sensor: current_amp: add a noise threshold
ADC output values can have noise, even if the input is 0V. Add a noise
threshold so that raw ADC readings below the threshold can be zeroed
out. By default the threshold is disabled.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-04-09 19:32:02 +02:00
Benjamin Cabé
39a65c0be2 drivers: sensor: icp201xx: fix channel check logic
Update the channel validation logic to properly check channel against
SENSOR_CHAN_ALTITUDE.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-08 10:48:49 +02:00
Benjamin Cabé
93c52cf0b5 drivers: sensor: icp201xx: fix channel check logic
Update the channel validation logic to avoid using enum constants as
boolean values.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-08 10:48:49 +02:00
Emil Dahl Juhl
1a3dd63dde drivers: sensor: ti: opt3001: add trigger support
The ti,opt3001 ambient light sensor is capable of asserting its interrupt
gpio upon conversion completion. The interrupt gpio can then be used to
trigger a reading of the conversion result automatically.
Due to this, it makes sense for the driver to implement the sensor trigger
functionality.

Add a devicetree property, int-gpios, to the ti,opt3001 bindings to allow
describing the gpio used for getting interrupts from the ti,opt3001.

Implement the sensor trigger functionality with options for using the
global worker thread or letting the ti,opt3001 create its own thread for
servicing the interrupts.
In both cases, when an interrupt is received the driver will read a new
measurement from the chip and clear the interrupt. The sample is then ready
to be read by the user of the sensor.

When manually triggering a sample_fetch, the trigger handler is not
invoked.

Signed-off-by: Emil Dahl Juhl <emdj@bang-olufsen.dk>
2025-04-07 15:18:21 +02:00
Remi Buisson
7f0b538d4a drivers: sensor: icp201xx: Add icp201xx support
Use official TDK Invensense driver for icp201xx sensor in tdk_hal module.

Signed-off-by: Remi Buisson <remi.buisson@tdk.com>
2025-04-07 15:17:44 +02:00
Ivan Wagner
b5adb4457c drivers: sensor: meas: ms5837 supporting 02 and 30 variants via dt
This patch adds support via dt compatible property.

Signed-off-by: Ivan Wagner <ivan.wagner@tecinvent.ch>
2025-04-04 21:16:20 +02:00
Valerio Setti
d75c2113a9 drivers: sensors: bma4xx: add I2C_RTIO Kconfig for I2C
Since #83575 bma4xx driver relies on RTIO to work. This means that
CONFIG_I2C_RTIO should be defined together with CONFIG_I2C in the
Kconfig, otherwise I2C_DT_IODEV_DEFINE() won't be available at
build time.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2025-04-04 18:17:41 +02:00
Jordan Yates
e661a55044 sensor: bme280: clamp humidity to non-negative
Clamp the returned humidity to a non-negative value. This ensure that
the return value is always within the expected range, even if the
calibration parameters are read out incorrectly or corrupted.

This check is applied in the example Bosch driver for the float
conversion case, so there are situations that warrant it.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-04-04 14:57:43 +02:00
David Cerrone
bbaaac999f drivers: sensor: current_amp: add calibration option
Allow the option to enable or disable calibration of the ADC.

Signed-off-by: David Cerrone <davidcerrone@gmail.com>
2025-04-03 15:26:36 -07:00
Luis Ubieda
c1e75b6c3b sensor: pat9136: Add cooldown timer
This sensor may trigger data at a very fast pace (20,000 fps) and this
may not be useful for the application. Instead, it may affect its
proper functioning. Therefore, this patch includes a cool-down timer
before which time the INT line won't be enabled.

Please note that this sensor accumulates the delta compared to the
last reading, so on its own, not reading data-changes does not imply
losing data, as long as it does not saturate.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-02 05:29:23 +02:00
Luis Ubieda
382fa5d085 sensor: pat9136: Add Streaming mode
Working with DRDY and Motion triggers.
DRDY contains a backup software timer to guarantee checking in with
the sensor.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-02 05:29:23 +02:00
Luis Ubieda
9df68a4c48 sensor: pat9136: Add basic functionality
- Basic support with Read/Decode API for one-shot reads.
- Supported channels:
    - SENSOR_CHAN_POS_DX.
    - SENSOR_CHAN_POS_DY.
    - SENSOR_CHAN_POS_DXYZ.
    - SENSOR_CHAN_POS_DX_MM (private channel).
    - SENSOR_CHAN_POS_DY_MM (private channel).
    - SENSOR_CHAN_POS_DXYZ_MM (private channel).

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-02 05:29:23 +02:00
Peggy Chen
9faa7b07ff drivers: sensor: bma4xx: Implement streaming APIs
Add a streaming implementation for the BMA4XX using both
FIFO watermark and FIFO full interrupts. A batch duration of
3,000 have been used for verification.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Peggy Chen
2dff22b0c7 drivers: sensor: bma4xx: Enable and resolve issues with emulator
Enable the sensor emulator and address related issues
to ensure proper functionality.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Peggy Chen
26af8a4b7a drivers: sensor: bma4xx: Refactor submit logic into separate files
Refactor the sensor submit logic into individual files
to enhance maintainability and readability.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Peggy Chen
feb65f6ce1 drivers: sensor: bma4xx: Refactor decoder into separate files
Refactor the sensor decoder code into individual files for
improved maintainability and readability.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Peggy Chen
67e688ee3e drivers: sensor: bma4xx: Update config to use bma4xx_safely_configure
Updated the sensor configuration to use the bma4xx_safely_configure
function for safer and more reliable initialization.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Peggy Chen
551027c5aa drivers: sensor: bma4xx: Split off bma4xx_defs.h
Added register definitions, bit masks, and related constants
for the BMA4XX sensor in a separate header file.

Signed-off-by: Peggy Chen <peggy.chen@cienet.com>
2025-04-02 05:29:11 +02:00
Dipak Shetty
eb0050f7c9 drivers: sensor: add everlight light sensor
Adds driver for Everlight ALS-PT19 Ambient Light Sensor.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-01 22:12:13 +02:00
Konrad Sikora
c099a01760 drivers: sensor: liteon: Move to vendor subdirectory
Organizes liteon sensor drivers by vendor to make consistent
with other drivers.

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Konrad Sikora
8ad2cac1b5 drivers: sensor: Add support for LTR329 sensor
Add support for Liteon LTR329 Digital Ambient Light Sensor

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Konrad Sikora
85e9cef24e drivers: sensor: Change vendor prefix from 'ltr' to 'liteon'
The vendor prefix has been changed from 'ltr' to 'liteon'.
This change is made to better reflect the actual name of
the vendor, which is LiteOn. The previous prefix 'ltr'
was referring to the LiteOn Optical Sensor family, which
could lead to misunderstandings.

Signed-off-by: Konrad Sikora <kontakt@konradsikora.pl>
2025-04-01 22:12:01 +02:00
Armando Visconti
cc9b93d50c sensor: lsm6dsv16x: sensor GBIAS initialization
Use SENSOR_ATTR_OFFSET attribute to initialize the Sensor Fusion GBIAS.
This is useful when the device is not sill (e.g. hold in hand) and so
the gyroscope calibration does not run.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-01 11:59:31 +02:00
Armando Visconti
9a8ecf0c0c sensor: lsm6dsv16x: fix place where gyro_freq get set
Move gyro_freq setting inside lsm6dsv16x_gyro_set_odr_raw() routine,
so that it is properly saved in all cases (i.e. from DT configuration
and from runtime ATTR set case).

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-01 11:59:31 +02:00
Corey Wharton
3aebc9d258 drivers: sensor: tmp112: add support for setting ALERT thresholds
Allows setting tLow/tHigh threasholds via the SENSOR_ATTR_LOWER_THRESH/
SENSOR_ATTR_UPPER_THRESH attributes.

Signed-off-by: Corey Wharton <xodus7@cwharton.com>
2025-03-31 08:07:12 +02:00
Corey Wharton
7425070ecc drivers: sensor: tmp112: format file
Format before other changes.

Signed-off-by: Corey Wharton <xodus7@cwharton.com>
2025-03-31 08:07:12 +02:00
Zhaoxiang Jin
7ed7cd191a modules: hal_nxp: Move hal_nxp glue layer to zephyr repo
Move hal_nxp glue layer to zephyr repo.
Fix build warnings and failures caused by hal_nxp upgrade.
Update manifest to contain hal_nxp changes.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2025-03-26 16:26:34 +01:00
Corey Wharton
a7f6cee9de drivers: sensors: lsm6dsv16x: add support for lsm6dsv32x variant
The LSM6DSV32X part is nearly identical to the LSM6DSV16X but has different
sensitivity scales for the accelerometer (4-32G versus 2-16G). This commit
adds support for this part via the "st,lsm6dsv32x" compatible string.

Signed-off-by: Corey Wharton <xodus7@cwharton.com>
2025-03-26 16:19:54 +01:00
Jamie McCrae
5c027f270e drivers: sensors: kconfig: Add sort
Adds sort to individual sensor Kconfigs and sorts them

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-03-26 11:33:11 +01:00
Tilmann Unte
224b5b744d drivers: sensor: mpu6050: scale settings to DT, adds sample rate setting
Moves the MPU6050 accel/gyro scale settings from KConfig to Devicetree.
Adds a new setting for the MPU6050 sample rate divider register and
transmits it to the sensor upon initialization.
This helps to reduce the interrupt firing rate when combined with the
data ready trigger.
A default division factor is provided which ensures compatibility with
existing applications.
The MPU6050 sample application is extended and used for hardware tests.

Signed-off-by: Tilmann Unte <unte@es-augsburg.de>
2025-03-25 22:12:49 +01:00
Fredrik Gihl
e6ed809a07 drivers: sensor: tmp114: device tree support for setting oversample
Add support for setting oversample from `attr_set` and device tree

Signed-off-by: Fredrik Gihl <fgihl@hotmail.com>
2025-03-25 22:12:11 +01:00
Fredrik Gihl
83b1422f9c drivers: sensor: tmp114: Support setting odr
Add support for setting the sample frequency via `attr_set` and the
output data rate from device tree source.

Signed-off-by: Fredrik Gihl <fgihl@hotmail.com>
2025-03-25 22:12:11 +01:00
Fredrik Gihl
af0367f295 drivers: sensor: tmp114: Correct clang warning
Corrected clang warning introduced on commit 9eaf488

Signed-off-by: Fredrik Gihl <fgihl@hotmail.com>
2025-03-25 22:12:11 +01:00
Benjamin Cabé
1e75b82244 sensors: lsm6dsv16x: fix double-promotion warning
use roundf instead of round in Q31_SHIFT_VAL macro to avoid
double-promotion warning

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-21 17:03:53 +01:00
Ruibin Chang
dcbd0d1397 drivers/sensor/ite/tach_ite_it8xxx2: run clang format
Run clang format.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-03-21 09:53:22 +01:00
Ruibin Chang
cbe1932a20 drivers/sensor/ite/tach_ite_it8xxx2: don't clear both tach status at once
When two tach use simultaneously, I find that the both tach status will
be cleared at once, which causes one of tach not to get rpm speed.
So I change it to clear status only one tach at a time.

This issue is reported by Huaqin:
https://partnerissuetracker.corp.google.com/issues/404067663?pli=1

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-03-21 09:53:22 +01:00
Maximilian Deubel
878ab53698 drivers: sensor: add Bosch BMM350 magnetometer driver
Add driver for Bosch BMM350 magnetometer sensor.

Signed-off-by: Maximilian Deubel <maximilian.deubel@nordicsemi.no>
2025-03-20 12:17:41 +01:00
Benjamin Cabé
c1531b24e7 drivers: sensors: adxl367: fix clang compilation error
Added missing braces to case statements causing clang compilation errors

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-19 20:25:20 +01:00
Christophe Tournery
2ba3bbe0d9 drivers: sensor: tdk: icm42688: fix wrap-around
When converting raw values to integer and fractional (micro) parts, the
fractional part must be a signed integer.

- Fix prototypes where the fractional part was declared as unsigned.
- Fix comments which did not match the declared type.

Signed-off-by: Christophe Tournery <christophe.tournery@freshape.com>
2025-03-18 19:52:42 +01:00
Luis Ubieda
8258cba2c6 sensor: icm45686: Add Streaming Mode
Enable Streaming mode with the following modes:
- DRDY
- FIFO Watermark
- FIFO Full

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-03-17 13:56:41 +01:00
Luis Ubieda
356480c4cb sensor: icm45686: Simplify decoder to directly receive fs
Instead of requiring the edata struct, just receive full-scale
parameter. This simplifies the decoding process for FIFO data
during streaming.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-03-17 13:56:41 +01:00
Jeppe Odgaard
6c627df62e drivers: sensor: explorir_m: add calibration
Add calibration via a known gas concentration. This is the recommended way
of calibrating the sensor according to the datasheet.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-03-14 17:54:39 +01:00
Andreas Klinger
72b2f01298 drivers: sensor: add vishay veml6031 ambient light sensor
- add driver for Vishay VEML6031 High Accuracy Ambient Light Sensor.
- add new compatible "vishay,veml6031".
- read and write consecutive 8 bit registers as bulk operation.
- add driver to build all test of sensors.
- support fetch and get.
- triggered mode and interrupt is not yet supported.

Signed-off-by: Andreas Klinger <ak@it-klinger.de>
2025-03-14 14:40:12 +01:00
Luis Ubieda
df1d3b8ef3 sensor: paa3905: Add streaming mode
Working through either Motion detection or through Data-Ready.

Data-ready has a back-up timer to trigger worst case, if no motion
occurs within 10X data-rate.

On every streaming event, the driver checks for the sensor health, and
attempts recoverying its state if it detects issues.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-03-13 16:56:07 +00:00
Luis Ubieda
53bb372980 sensor: PA3905: Add basic functionality
- Add bus support for SPI (based on RTIO).
- Support read/decode API for one-shot reads on the following channels:
    - SENSOR_CHAN_POS_DX.
    - SENSOR_CHAN_POS_DY.
    - SENSOR_CHAN_POS_DXYZ.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-03-13 16:56:07 +00:00
Ioannis Damigos
a7c0ec2c55 drivers: sensor: hs400x: Soft reset HS400x during initialization
Soft reset HS400x during initialization to make sure that
device is at a known state and writeable registers have the
default values.

Signed-off-by: Ioannis Damigos <ioannis.damigos.uj@renesas.com>
2025-03-13 07:22:36 +01:00
Ioannis Damigos
dcd8c611aa drivers: sensor: hs400x: Fix measurement time
According to the datasheet, maximum conversion time for both
humidity and temperature at 14 bits resolution is 1.7 ms.

Signed-off-by: Ioannis Damigos <ioannis.damigos.uj@renesas.com>
2025-03-12 14:05:33 +00:00
Jeppe Odgaard
8b8d56a5ca drivers: sensor: explorir_m: increase max response delay
The sensor does not always finish responding within 200 ms.
This is the sometimes the case when using the sensor calibrate command `X`.
Response delay up to 212 ms has been measured with a logic analyzer.

Increase the max response delay to 300 ms to fix the issue.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-03-11 18:54:34 +01:00
Jeppe Odgaard
e575eea233 drivers: sensor: explorir_m: improve transceive
During calibration feature development the following loop was used for
testing:

```shell
CMD="sensor attr_set explorir_m co2 calibration 1234"
while : ; do echo "$CMD" > /dev/ttyACM0; sleep .8; done
```

At some point calibration would fail and all following calibration commands
would fail.

Reset buffer and semaphore just before terminating the command to better
mitigate disturbance from previous failed command.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-03-11 18:54:34 +01:00
Luis Ubieda
4aef791a0e sensor: icm45686: Add Triggers functionality
Only working with SENSOR_TRIG_DATA_READY so far.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-03-11 05:37:06 +01:00