Allow to set attribute of the measurement rate of the apds9253. This
must be done setting the sampling frequency (in Hz).
Signed-off-by: Margherita Milani <margherita.milani@amarulasolutions.com>
Allow to set attribute of the gain of the apds9253. The gain
is applied to all the channels.
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Margherita <margherita.milani@amarulasolutions.com>
Ensure the corresponding bus enables RTIO (I2C, I3C or SPI) before
instantiating rtio-dependent elements. Otherwise, enabling it for
another bus (e.g: SPI_RTIO when the LSM6DS is also on I3C with no
I3C_RTIO) will cause a build-time failure.
Signed-off-by: Luis Ubieda <luisf@croxel.com>
The scd4x_channel_get function converts raw word values to
struct sensor_value's per the datasheet. The calculation for val2 of a
struct sensor_value `val->val2 = ((tmp_val % 0xFFFF) * 1000000) / 0xFFFF;`
can overflow the max of int32_t, resulting in an incorrect
sensor_value.
Fix it by changing the type of tmp_val to int64_t.
Signed-off-by: Zach Thomas <zach.thomas1.zt@gmail.com>
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>
This Introduces a driver for the i2c interface of Phosense XBR818.
XBR818 is a 10.525Ghz Radar chip with builtin detection algorithm.
Signed-off-by: Camille BAUD <mail@massdriver.space>
Building with clang warns:
drivers/sensor/st/ism330dhcx/ism330dhcx.c:107:19: error: unused function
'ism330dhcx_reboot' [-Werror,-Wunused-function]
static inline int ism330dhcx_reboot(const struct device *dev)
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Building with clang warns:
drivers/sensor/st/lis2dw12/lis2dw12.c:194:23: error: unused
function 'sensor_ms2_to_mg' [-Werror,-Wunused-function]
static inline int32_t sensor_ms2_to_mg(const struct sensor_value *ms2)
^
Move the function to include/zephyr/drivers/sensor.h with the other
sensor_ms2_to* functions.
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Building with clang warns:
drivers/sensor/st/iis2iclx/iis2iclx.c:68:19: error: unused function
'iis2iclx_reboot' [-Werror,-Wunused-function]
static inline int iis2iclx_reboot(const struct device *dev)
^
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Building with clang warns:
drivers/sensor/st/lsm9ds0_mfd/lsm9ds0_mfd.c:42:19: error: unused
function 'lsm9ds0_mfd_accel_set_odr_raw' [-Werror,-Wunused-function]
static inline int lsm9ds0_mfd_accel_set_odr_raw(const struct device *dev,
^
lsm9ds0_mfd_accel_set_odr_raw is only used by code that was guarded by
defined(CONFIG_LSM9DS0_MFD_ACCEL_SAMPLING_RATE_RUNTIME) in addition to
!defined(LSM9DS0_MFD_ACCEL_DISABLED).
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Building with clang warns:
drivers/sensor/st/lsm6dso/lsm6dso.c:89:19: error: unused function
'lsm6dso_reboot' [-Werror,-Wunused-function]
static inline int lsm6dso_reboot(const struct device *dev)
^
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Building with clang warns:
drivers/sensor/st/lsm6dso16is/lsm6dso16is.c:83:19: error: unused
function 'lsm6dso16is_reboot' [-Werror,-Wunused-function]
static inline int lsm6dso16is_reboot(const struct device *dev)
^
Signed-off-by: Tom Hughes <tomhughes@chromium.org>
Adds support for the SENSOR_ATTR_SLOPE_TH and SENSOR_ATTR_SLOPE_DUR
attributes These set the sensitivity for the SENSOR_TRIG_DELTA trigger
which uses the sensor's wakeup feature.
Signed-off-by: Corey Wharton <xodus7@cwharton.com>
When individual axis is retrieved, it does not require the other values.
Simplify one-shot decoder to follow this pattern.
Signed-off-by: Luis Ubieda <luisf@croxel.com>
Many drivers use a wrong __ASSERT in the fetch API, where they just
use SENSOR_CHAN_ALL, while it is more common fetching the specific
sensor channel (i.e. SENSOR_CHAN_PRESS, SENSOR_CHAN_ACCEL_XYZ, ...).
Signed-off-by: Armando Visconti <armando.visconti@st.com>
To support icm42370-p sensor, we renamed icm42670 to icm42x70
as the driver is similar to ICM-42670-P/S in hal_tdk module.
Keep icm42670 source and header for dedicated code.
Signed-off-by: Aurelie Fontaine <aurelie.fontaine@tdk.com>
Coverity identified out-of-bounds access. A uint8_t being cast to
an enum is undefined in that the enum can be allocated 4bytes.
Change the internal function to use the base type of the variable,
uint8_t to avoid potential compiler size alignement problems.
Fixes#81927
Signed-off-by: David Leach <david.leach@nxp.com>
Add wsen_pads_2511020213301 driver with
the corrected name and compatibility with
the hal update as well as added new features.
Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
Previously, the Kconfig option CONFIG_STMEMSC_I3C_I2C_WRITE_BUFFER_SIZE
has been introduced to replace i2c_burst_write with i2c_write using a
buffer combining the address and data.
See commit 5f8da77ad3eaf0593107fd99253c1c13b3a98de0
Add missing buffer size config to stmemsc_i2c_write_incr to replace
fixed buffer size.
Signed-off-by: Jonas Spinner <jonas.spinner@burkert.com>
Fix a runtime bug when both CONFIG_LIS3MDL_TRIGGER and CONFIG_ASSERT
are set. The correct assertion should verify that sensor channel is
either SENSOR_CHAN_ALL or SENSOR_CHAN_MAGN_XYZ.
Signed-off-by: Armando Visconti <armando.visconti@st.com>
The TSL2591 driver fails to initialize because the sensor responds with a
NACK on the initial RESET. Although the datasheet from Adafruit claims that
this is operation should be valid (RESET is part of the CONTROL register),
other sample non-Zephyr drivers provided by Arduino don't explicitly reset
the sensor on initialization (see
https://github.com/adafruit/Adafruit_TSL2591_Library/blob/master/Adafruit_TSL2591.cpp).
Thus, the assumption is that when the sensor is reset via software, it
doesn't respond to an ACK.
After removing the check for this initial RESET, the driver initializes
successfully.
Signed-off-by: Mohammed Billoo <mab@mab-labs.com>
As the C language treats 'cases' similar to 'labels' the following
error can also occur when using switch statements when it encounters
a declaration immediately after a label:
drivers/sensor/maxim/ds3231/ds3231.c:77:3: error: a label can only
be part of a statement and a declaration is not a statement
77 | const uint16_t raw_temp = data->raw_temp;
| ^~~~~
Signed-off-by: Stephan Linz <linz@li-pro.net>
Fix correct use of serif_type if the driver is compiled with both SPI
and I2C enabled by storing it in device config.
Signed-off-by: Aurelie Fontaine <aurelie.fontaine@tdk.com>
Explicitly add default trigger mode as none in the kconfig trigger
template for better readability.
Signed-off-by: Mayank Narang <narang.may77@gmail.com>
Fixes a multitude of Kconfigs that wrongly appear on devices
where support is literally impossible
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
i2/3c_burst_write comes with a warning where this combined write
synthesized by thsi API may not be supported by all I2/3C
devices. Replace with i2c_write instead with a buffer combining
the address and data.
The Kconfig STMEMSC_I2C_WRITE_BUFFER_SIZE was added to set the
size of the buffer pushed to the stack.
Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
Makes driver actually build again.
Fixes scaling, q32 encoding, bit shifts, and register mappings.
Also enables High Resolution mode (a unique and beneficial
feature of the chip when used with streaming).
Co-authored-by: James Goppert <james.goppert@gmail.com>
Signed-off-by: Benjamin Perseghetti <bperseghetti@rudislabs.com>
Add shell device filtering using the existing sensor_device_check to all
remaining sensor shell commands.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Added support for vin supply which seems to be needed for the radio
boards in order to power on the sensor.
Signed-off-by: Yishai Jaffe <yishai1999@gmail.com>
Add wsen_tids_2521020222501 driver with
the corrected name and compatibility with
the hal update as well as added new features.
Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
Added a length check in the spi write incr routine to handle both
single and multi byte write operations properly.
Signed-off-by: Mayank Narang <narang.may77@gmail.com>
The lis2de12 sensor driver spi interface was calling spi read api.
This leads to a single byte operation on reading acceleration data
which is a multi byte operation. Fix it by adding a call to spi read
incr api instead. Added a length check to handle both single and multi
byte read properly.
Signed-off-by: Mayank Narang <narang.may77@gmail.com>