Added paired_ep to bt_bap_ep_get_info, which would allow to check
whether an endpoint is paired with another endpoint, this would
indicate that its coupled to a bidirectional iso.
Signed-off-by: Fredrik Danebjer <frdn@demant.com>
TFM is not the only provider for PSA API, which means
the PSA config shouldn't depend only on it.
Signed-off-by: Piotr Jasiński <piotr.jasinski@nordicsemi.no>
The condition just needs to be <=, as it is ok
to write say 128KB in a 128KB storage partition.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Now that the nrf52 HW models support it,
let's use their flash model instead of falling back
to the openthread RAM settings backend.
Note that the flash model defaults to just keeping the
flash content in the Linux process heap.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Update to the latest NRF HW models which include
models of the NVMC and UICR peripherals,
as well as some other (very) minor fixes.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Use new nrfx hal function to memcpy from flash
instead of accessing the array directly.
That function is inlining a memcpy for real targets,
so there is no practical difference for those.
Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
Use the common exit() provided by libc so we get standard behavior
across all architectures. So only implement a special exit when
XT_SIMULATOR is defined.
Signed-off-by: Kumar Gala <kumar.gala@intel.com>
The receiver_ready field can only be set while in the enabling
state, and is a requirement to go into the streaming state.
If for any reason we go into a state that is not enabling
or streaming, then the receiver_ready field should be
cleared, as the circumstances are changed.
This also fixes an issue where if the CIS disconnects,
then we go from the streaming state to the
qos configured state, without clearing it, causing
incorrect behavior if we attempt to connect the streams
again.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Move the abort implementation into common so its shared among the
libc. As part of this start using the common abort on newlib.
Signed-off-by: Kumar Gala <kumar.gala@intel.com>
Move the strnlen implementation into common so its available to any
libc that may not implement strnlen.
Signed-off-by: Kumar Gala <kumar.gala@intel.com>
Change fixes check for upgrade-only to ensure that the the new image
version is greater than version of the currently running image.
Signed-off-by: Marek Pieta <Marek.Pieta@nordicsemi.no>
Disable various samples because they require certain digital signals
from the Arduino header, which are not connected when the board is
shipped and therefore not defined via the connector gpio-map.
Signed-off-by: Stephan Linz <linz@li-pro.net>
When ever a Ardunio UNO R3 compatible shield will be used
together with the NXP MIMXRT1010-EVK board Zephyr runs into
an DTS parse error because of missing label 'arduino_spi'.
On NXP MIMXRT1010-EVK pin D10 (CS), D11 (MOSI), D12 (MISO) and
D13 (CLK) are always connected to the on-board but not populated
SPI flash in default and can be disconnected optionally. Pin
D10 (CS) will be shared with pin D2 (GPIO/INT0) and is connected
in parallel. Pin D13 (CLK) will be shared with pin D3 (GPIO/PWM)
and is connected in parallel.
Signed-off-by: Stephan Linz <linz@li-pro.net>
When ever a Ardunio UNO R3 compatible shield will be used
together with the NXP MIMXRT1010-EVK board Zephyr runs into
an DTS parse error because of missing label 'arduino_i2c'.
On NXP MIMXRT1010-EVK pin D14 (SDA) and D15 (SCL) will be
shared with multiple on-board components: audio codec and
sensors. Pin A4 (SDA) and A5 (SCL) are not connected in
parallel, but unusually shared with pin D6 (A4) and D7 (A5)
as same signal line. When solder bridge R793 for pin D5
was populated, pin D5 (GPIO/PWM) will be shared with pin
D14 (SDA) and is connected in parallel.
Signed-off-by: Stephan Linz <linz@li-pro.net>
An Arduino header is soldered on the NXP MIMXRT1010-EVK, but the
corresponding DTS does not define the necessary GPIO Nexus Map.
This provides the header with its preset signal mapping (delivery
state). Customers can use shields to define their specific assembly
option via DTS overlays.
On NXP MIMXRT1010-EVK pin D0 (RX) and D1 (TX) will be shared with the
on-board FreeLink ISP module (ARM DAPLink CMSIS-DAP / Segger JLink).
Pin D4 (GPIO), D5 (GPIO/PWM), and D9 (GPIO/PWM) are disconnected
in default and can be closed optionally. But keep in mind that the
signals are already connected to a on-board header for a special NXP
motor driver add-on bard.
Signed-off-by: Stephan Linz <linz@li-pro.net>
Set GPIO pull-up option bit (GPIO_PULL_UP) in DTS for User Button
on NXP MIMXRT1010-EVK. This fixes an issue with the detection of
the low active input signal from the button as GPIO key. Zephyr's
basic sample "button" will now work with this correctly.
Signed-off-by: Stephan Linz <linz@li-pro.net>
Mesh models may have a data that needs to be stored persistently.
Currently, the models should call bt_mesh_model_data_store and the store
will happen in the calling context. Most likely that it will be called
in BT RX thread as this is the context from which model's opcodes
handlers are called. Thus, the thread will be blocked until the store is
finished.
Another issues is that some models may have states that changes
frequently. Triggering the store on every state change may wear out
flash. Therefore, the models need to implement some postpone mechanism
to reduce the flash wear out.
The mesh stack has already implemented the mechanism of deferred store
with its own settings. The models could use it instead of implementing
their own mechanism.
In combination with the mesh settings workqueue, the models can store
their data without blocking the stack work.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Currently mesh settings are stored in the system workqueue context.
Most of other stack functionality, such that advertisements (incl
relay), loopback, transport sar, beacons transmission, etc. is also
processed in the system workqueue context. When a massive amount of
data needs to be stored and in particularly when page erase needs to
be triggered by GC of NVS subsystem to allocate flash pages, the
execution of the stack (and other functionality that uses the system
workqueue) will be blocked until storing is finished. For example,
right after the provisioning of a erased device, a node may not be
responsive for up to 400ms before it can continue sending messages.
The waiting time may increase if there is a GATT connection in the
mean time.
When write or erase operation is triggered, the flash driver waits for
Bluetooth controller to allocate a time needed to perform the operation.
During the whole operation, the context from which the operation was
triggered is put to sleep. This allows other threads to run until
Bluetooth controller finds the time for the flash driver. In other words,
every settings_save_one or settings_delete should be considered as
rescheduling points.
Considering this, Bluetooth mesh can use another thread to store its
settings, thus releasing the system workqueue for other tasks including
the operation of the stack itself.
The consistency of the data to be stored is guaranteed by the current
implementation where the data is copied to another struct before calling
settings_save_one. The pending flag of a particular module is dropped in
settings.c before starting to store the corresponding data. Thus, if
during the sleep the node receives a message that triggers a change in a
module which data is currently being stored, the pending flag will be
restored and the new change will be stored eventually.
Having this option enabled including with the partial erase, will make
the node more responsive in the described situations.
Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
Add charging mode support the PI3USB9201 emulator and add a backend API
for connecting/disconnecting a portable device partner.
Signed-off-by: Keith Short <keithshort@google.com>
Update the result callback routine to also provide information about the
charging mode role. This permits tests to validate plug/unplug events
detected by the BC1.2 device operating in charging mode.
Signed-off-by: Keith Short <keithshort@google.com>
Cleanup some internal names. Remove references to the pi3usb9201 device
as the test should work with all BC1.2 driver/emulators.
Signed-off-by: Keith Short <keithshort@google.com>
This PR adds a driver for the BMI323, which implements
the following features:
* Enable and disable accelerometer and gyroscope respectively
* Set full scale for accelerometer and gyroscope respectively
* Set data rate for accelerometer and gyroscope respectively
* Get samples (x,y,z) from accelerometer and gyroscope respectively
* Get die temperature
* Set trigger to accelerometer data ready, and accelerometer any motion.
The driver implements device and device runtime power management. If
runtime management is used, it is initialized into the suspended state,
which soft-resets the device to achieve the lowest possible power
consumption, otherwise it is resumed when initialized. When resumed,
the bus is initialized, the feature engine is enabled, and INT1 is
initialized.
The driver only implements the SPI bus at this time. The driver is
prepared to be expanded with I2C support in the future.
Signed-off-by: Bjarki Arge Andreasen <baa@trackunit.com>
Make use of positive status values in the DMA callback to pass
info to the DMA client after a successful DMA operation.
A completed DMA transfer uses the status 0 while a reached
water mark uses the status 1.
Signed-off-by: Cyril Fougeray <cyril.fougeray@worldcoin.org>
Modify the BT_UUID_XX_ENCODE and BT_LE_SUPP_FEAT_XX_ENCODE
macros to use the SYS_ENCODE_LEXX macros, instead of re-inventing
the encoding.
Also apply the macros for several other places.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Add a series of macros that can encode a XX-bit value
into array values. This can be used to easily encode
const array data.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
KSGEN and CRYPT tasks and corresponding events weren't compiled
for boards with nRF51 SoCs due to change in HAL.
Signed-off-by: Adam Wojasinski <adam.wojasinski@nordicsemi.no>
- Add doxygen group and improve documentation for bbram.h
- Add a bbram section under peripherals in the main doc/ directory
Fixes#55257
Signed-off-by: Yuval Peress <peress@google.com>
Modify UseTab to use ForContinuationAndIndentation instead
of always. This will only use tabs for indentation, and then
spaces for alignment, which is the most commonly used approach
in Zephyr.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The function bt_codec_cfg_get_chan_allocation_val takes a pointer
to an enum, rather than an uint32_t, but was wrongly defined in
the header files and incorrectly used a few places.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
The generic BT shell header, bt.h, contained quite a few things
related to audio, which should be put in the audio.h shell header
file.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Word size setting limited any SPI transaction to the frame
size. In addition to making the SPI inefficient this
broke drivers that set the word size. It appears that most
drivers use a one byte (8) size for this setting.
This change respects what I think is the intended use of
the word size setting. That is to set the length of
each element in a tx/rx buffer struct.
Signed-off-by: Dean Sellers <dsellers@evos.com.au>
Allow defining multiple instances of enc28j60.
Remove the ETH_ENC28J60_0 Kconfig option along with this.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
Following the change that replaces ETH_ENC28J60_0_FULL_DUPLEX
by devicetree property.
Enable enc28j60's `full-duplex` explicitly in the overlay file.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>
Following the change that replaces ETH_ENC28J60_0_FULL_DUPLEX
by devicetree property.
Enable `full-duplex` explicitly in overlay files.
Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@fujitsu.com>