Commit Graph

54 Commits

Author SHA1 Message Date
Alexander Apostolu
2e7ec2bc29 drivers: sensor: adi: adxl372: Remove logically dead code
Remove logically dead if and else-if conditions as shown by the static
analysis, replacing with the else statement.

When data_opt is assigned to the MIN of fifo_wmark_cfg and fifo_full_cfg,
both those variables will be non-NULL as an earlier condition ensures the
function returns if either one of the variables is NULL before assigning
to data_opt.

Signed-off-by: Alexander Apostolu <apostolu240@gmail.com>
2025-06-17 07:22:34 +02:00
Benjamin Cabé
ba17577d7c drivers: sensor: adi: adxl362: change return type of ret variable
Updated the return type of the 'ret' variable in the
adxl362_attr_set_thresh function to int

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-09 14:47:41 -07:00
Jilay Pandya
6cc35eea81 tests: adltc2990: introduce mock_i2c_error function
Introduce mock_i2c_error function in emulator in order to emulate i2c
errors for various registers

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-06-06 09:08:22 -07:00
Jilay Pandya
529029e4e3 tests: adltc2990: increase coverage
increase test coverage for adltc2990 and fix a bug found during testing

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-06-06 09:08:22 -07:00
Nathan Olff
b88a27a3e8 drivers: sensor: adi: add ad2s1210 resolver support
implement driver for ad2s1210 resolver

Signed-off-by: Nathan Olff <nathan@kickmaker.net>
2025-05-27 23:43:56 +02:00
Maureen Helm
77f7b1feb1 drivers: sensor: adi: Set adxl345 thread name
Sets the adxl345 driver thread name for easier debugging.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2025-05-20 15:23:51 +02:00
Luis Ubieda
75fda15b8c sensor: adxl345: Set FIFO to bypass mode when DRDY is enabled
In order to prevent not serving all events that would clear the
interrupt line. This patch also removes FIFO servicing through
fetch/get APIs, as this is only exposed through streaming mode.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-20 15:23:51 +02:00
Luis Ubieda
8e0e99b9dd sensor: adxl345: Formatting improvements on macrobatics
No functional changes, only formatting changes.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
9a044aaacb sensor: adxl345: Optimize RTIO SQE/CQE pool based on fifo-watermark
Since it's directly related (we can't just burst-read the fifo at
once). This patch includes a comment block explaining this rationale.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
36917d4809 sensor: adxl345: Allow fifo-watermark configurable through dts
Allow for users to define the fifo-watermark on a per-instance basis
through device-tree properties. This setting is validated at build
time, so missing it when required, or setting an invalid value should
not end up in a run-time errror (as in: it runs but nothing happens).

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
4243ad20ca sensor: adxl345: rename ADXL345_ODR_12HZ to ADXL345_ODR_12_5HZ
To better reflect the actual ODR setting.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
f8416de09e sensor: adxl345: fix: Overriding of ODR setting in DTS property
This patch fixes previous overriding of ODR setting through DTS (it
would always be 25-Hz, irrespective of what the DTS property said).

While doing so, create dt-binding enum to improve settings clarity.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
5e1a2fcf31 sensor: adxl345: Prevent clearing SQE flags set while prepping SQEs
SQE flags are adjusted when preparing write/read ops, therefore an OR
operation is required.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Luis Ubieda
ce2d16be01 sensor: adxl345: Fix conditional instantiation of RTIO ctx and IODEV
With actual parameter to determine whether the driver requires it:
Streaming mode enabled.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-05-16 09:37:28 +02:00
Vladislav Pejic
e72e1c1c44 drivers: sensor: adxl372: FIFO mode from DT
Adds support for setting FIFO mode and water-mark from DT.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2025-04-28 12:55:18 -05:00
Vladislav Pejic
4a9029771f drivers: sensor: adxl367: FIFO mode from DT
Add support for setting FIFO mode using DT property.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2025-04-28 08:34:35 +02:00
Vladislav Pejic
5fc5259964 drivers: sensor: adxl362: FIFO mode from DT
Adds support for setting FIFO mode from DT.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2025-04-26 10:55:34 +02: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
Jordan Yates
a0d22be980 sensor: adxl345: add missing Kconfig dependency
Add a missed dependency to all sub-symbols of `ADXL345`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-03-04 21:56:05 +01:00
Luis Ubieda
6e897ccd69 sensor: adxl372: Fix build time issue due to shift variable namespace
Change `data->header.shift` to `data->shift`, as it is not contained
within the header struct.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-02-21 04:39:16 +01:00
Luis Ubieda
5847680e1e sensor: adxl367 and adxl372: fix build-failure with streaming mode
These two sensors do not build with asserts enabled as they're
referencing a non-existent variable `pkt_size`.

Replaced for what (AFAIK) is the intended variable.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-02-21 04:39:16 +01:00
Luis Ubieda
e453a0ca4d sensor: adxl345: Disable Sensor Streaming by default
Have the application enable this feature explicitcly, so that
simple applications do not need to disable this to get the
expected behavior.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-01-20 20:56:19 +01:00
Luis Ubieda
2a59a0282c sensor: adxl345: Only enable FIFO Stream with Sensor Stream is enabled
Otherwise with its default configuration (25-Hz, 32-level FIFO),
getting individual samples could be up to 1-second old.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-01-20 20:56:19 +01:00
Luis Ubieda
283b5197e6 sensor: adxl345: Fix decoder for non-streaming mode
The following fixes have been applied to this decoder:
- The Q-scale factor was fixed, both for full-scale and non
full-scale modes.
- The data-type decoded is struct sensor_three_axis_data, as
it should for read/decode API.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-01-20 20:56:19 +01:00
Luis Ubieda
2dba777432 sensor: adxl345: Add get_size_info API
Used by the sensor-shell in order to retrieve values, otherwise
it crashes.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-01-20 20:56:19 +01:00
Jilay Pandya
01852b555e drivers: sensor: adltc2990: refactor sample_fetch function
sample_fetch function has quite a high cyclomatic complexity, this
refactoring aims to reduce cyclomatic complexity by refactoring.
- introduce fetch current on pin function
- introduce fetch voltage on pin function
- introduce fetch temperature on pin

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-01-16 22:36:30 +01:00
Jilay Pandya
5c0b85d00f drivers: sensor: adltc2990 expose functions to public api
This commit replaces a hack where is_busy status of adltc2990 was
checked by fetching SENSOR_CHAN_ALL with a dedicated function
expose adltc2990_trigger_measurement function to public api

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-01-16 22:36:30 +01:00
Jilay Pandya
831b732554 drivers: sensor: adltc2990 return explicit -EIO errors
return explicit -EIO errors from i2c_reg_<read/write>_byte_dt

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-01-16 22:36:30 +01:00
Jilay Pandya
23c23eae41 drivers: sensor: adltc2990 remove curly braces
unify switch case coding style with that of linx kernel and
other in-tree drivers

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-01-16 22:36:30 +01:00
Luis Ubieda
5a9ff03c21 sensor: adxl3xx: Move run-time modification of ODR from cfg to data
Config struct is constant and attempting to modify it triggers a fault.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-01-15 19:05:45 +01:00
Mark Chen
f4da9b9705 drivers: sensor: Add sensor clock API support
This commit introduces a new Sensor Clock API, enabling the retrieval
of cycle counts and conversion to nanoseconds based on the system or
external clock. The API includes:

- `sensor_clock_get_cycles()` to get the current cycle count from the
  sensor clock.
- `sensor_clock_cycles_to_ns()` to convert cycles to nanoseconds using
  the clock's frequency.

The implementation supports both system clocks and external clocks
defined in the device tree, making the sensor clock integration more
flexible for various sensor use cases.

Signed-off-by: Mark Chen <mark.chen@cienet.com>
2025-01-15 19:03:13 +01:00
Dimitrije Lilic
088afe9359 drivers: sensor: adxl345: Support for RTIO I2C stream
Updated ADXL345 driver with RTIO I2C stream functionality.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2024-12-20 16:23:46 +01:00
Vladislav Pejic
756e699a41 driver: sensor: adxl366: Add supp for adxl366
Modifed ADXL367 driver to support both ADXL367 and ADXL366.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-12-03 15:48:01 +00:00
Pieter De Gendt
a553af738d drivers: sensor: Place API into iterable section
Add wrapper DEVICE_API macro to all sensor_driver_api instances.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-12-02 22:04:55 +00:00
Vladislav Pejic
04c70d681e driver: sensor: adxl367: Fix for extra 0
Fix for extra 0 in conversion of acceleration values in
adxl367_accel_convert.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-11-26 15:44:31 -05:00
Vladislav Pejic
19fe816f28 driver: sensor: adxl367: Temp conversion
Fix for conversion of temperature values in adxl367_temp_convert
and missing break statement.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-11-26 15:44:31 -05:00
Vladislav Pejic
eb15f306b6 driver: sensor: adxl367: Fix for SPI
Fix for SPI communication when RTIO is used in SPI driver. When in
adxl367_bus_access, const struct spi_buf buf[3] is used,
spi_rtio_copy function won't set correct buffers and length
for buf[2] and that will cause exception when that buffer is
processed.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-11-26 15:44:31 -05:00
Vladislav Pejic
aad4c69068 drivers: sensor: adxl367: Added RTIO stream
Updated ADXL367 driver with RTIO stream functionality.
RTIO stream is using both FIFO threshold and FIFO full triggers.
Together with RTIO stream, RTIO async read is also implemented.
Supported FIFO_CHANNEL configurations:
- XYZ
- X
- Y
- Z
- XYZT
- XT
- YT
- ZT
Configurations with external ADC are currently not supported.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-11-22 17:43:36 +01:00
Dimitrije Lilic
5ee9d7a869 driver: sensor: adxl345: Bug fix for q31_t conv
This is a bug fix for adxl345_accel_convert_q31 functions.
Functions are used to convert samples received from
sensor to q31_t format when RTIO stream is used.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2024-10-29 07:09:13 -05:00
Maureen Helm
9ca3826abf drivers: sensor: adi: Set trigger thread name
Sets the trigger thread name for all adi sensor drivers to more clearly
identify the thread when tracing or debugging.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2024-10-26 03:56:58 +01:00
Vladislav Pejic
832bbd8030 driver: sensor: adxl372: Bug fix for q31_t conv
This is a bug fix for adxl372_accel_convert_q31 function.
Function is used to convert samples received from
sensor to q31_t format when RTIO stream is used.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-26 03:54:23 +01:00
Vladislav Pejic
527c1f5356 driver: sensor: adxl362: Bug fix for q31_t conv
This is a bug fix for adxl362_temp_convert_q31 and
adxl362_accel_convert_q31 functions.
Functions are used to convert samples received from
sensor to q31_t format when RTIO stream is used.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-25 12:51:31 -05:00
Jilay Pandya
d172847da5 drivers: sensor: adi: ltc2990 init trigger measurement
This commit triggers measurement during sensor initialization

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-10-23 15:33:56 -05:00
Vladislav Pejic
cfe64f7f1c drivers: sensor: adxl372: Updated driver with RTIO stream functionality
Updated ADXL372 driver with RTIO stream functionality.
RTIO stream is using both FIFO threshold and FIFO full triggers.
Together with RTIO stream, RTIO async read is also implemented.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-22 18:30:13 -04:00
Dimitrije Lilic
86ed9811c4 drivers: sensor: adxl345: Updated ADXL345 drv RTIO stream & Trigger func
Updated ADXL345 driver with RTIO stream functionality.
Added Trigger intterupt functionality. RTIO stream is using
FIFO threshold.Together with RTIO stream, RTIO async read
is also implemented.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2024-10-22 18:29:22 -04:00
Luis Ubieda
d557ee36d5 sensor: tree-wide: Enforce dependency of int-gpios with Trigger feature
We need int-gpios defined to use trigger functionality. Enforced with
the Kconfig parameter.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-10-22 20:41:43 +02:00
Vladislav Pejic
6d8ace9198 drivers: sensor: adxl362: Added RTIO stream
Updated ADXL362 driver with RTIO stream functionality.
RTIO stream is using both FIFO threshold and FIFO full triggers.
Together with RTIO stream, RTIO async read is also implemented.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-22 14:02:21 +02:00
Vladislav Pejic
fe5bfc9eb2 driver: sensor: adxl372: Bug fix for status2 reg
This is a bug fix for adxl372_get_status function.
This function is used to get STATUS1, STATUS2, FIFO_ENTRIES2
and FIFO_ENTRIES1 registers (they are continuously present
in the memory in this order). User can choose if it wants
STATUS2 and/or FIFO registers by passing pointers where
to store received values. Bug was when user doesn't want
STATUS2 and want FIFO regs. In that case calculated length
would be 3 which will result in reading of STATUS1, STATUS2
and FIFO_ENTRIES2 regs and not expected STATUS1, FIFO_ENTRIES2
and FIFO_ENTRIES1.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-02 09:47:12 +02:00
Pisit Sawangvonganan
847a4eaad2 style: drivers: comply with MISRA C:2012 Rule 15.6
Add missing braces to comply with MISRA C:2012 Rule 15.6 and
also following Zephyr's style guideline.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-09-11 07:40:35 -04:00
Maureen Helm
e49cca2cc3 drivers: sensor: Fix adxl345 sample fetch return value
Fixes the adxl345 accelerometer driver to return zero on sample fetch
success, as specified by the sensor driver API. Prior to this change,
the driver incorrectly returned a positive non-zero value on sample
fetch success, which in turn caused a bus fault getting data with the
sensor shell.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2024-08-23 09:53:28 +02:00