The description of k_thread_name_get() indicated that a Kconfig option
is required for the function to return non-NULL values, but did not
provide the name of that option.
Fix by adding the name of the option: CONFIG_THREAD_NAME.
While at it, also update the documentation of k_thread_name_set() which
indicates CONFIG_THREAD_MONITOR is needed, when it actually requires
option CONFIG_THREAD_NAME too.
Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
The "@funcprops" Doxygen alias was originally introduced to list all
the function properties that apply to a given function (e.g. isr_ok,
etc.) in the form of a bullet list. However, since commit a258ab32d1
that is no longer the case and all the properties are rendered as
qualifiers (https://www.doxygen.nl/manual/commands.html#cmdqualifier)
and therefore no longer need to be grouped in a separate list.
This commit also ensure all aliases for the actual qualifiers use
`@qualifier` notation instead of `\qualifier` to be consistent with
our Doxygen guidelines.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Adds routines to remove a range of nodes from one list and either
prepend them or append them to another. This can be more efficient
than moving them one by one.
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
This check was asserting on the wrong struct size and was not taking in
the architecture configured cache line size. The build assert now checks
the right struct size and takes into account the configured cache line
size or sets a default.
Additional makes the check entire opt in.
Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
OP_DELAY requires embedding in the submission queue entry a _timeout
struct which can push the struct size over the specified 64 byte (cache
line) limit.
Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
Use the DEVICE_API_GET() macro for obtaining a pointer to the
can_driver_api struct from the device struct.
Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
The current way of setting the public address using
`bt_hci_driver_api::setup` does not work well in split builds
where host and controller runs on different cores/socs/boards.
This approach requires each HCI driver and each `hci_<transport>`
application to implement the setup and pass the information on
to the next layer.
Zephyr already defines a vendor-specific command that can be used
to set the public address (`bt_hci_cp_vs_write_bd_addr`).
Use this in `bt_enable` after opening the HCI transport and before
initializing the id module. This makes the setup independent of
hci transport and only depends on a controller that implements the
Zephyr HCI VS commands.
Signed-off-by: Herman Berget <herman.berget@nordicsemi.no>
Add support for two new pixel formats:
- VIDEO_PIX_FMT_YUV24: 24-bit YUV format with 8 bits per component
(Y, U, V packed format)
- VIDEO_PIX_FMT_PNG: PNG compressed image format
Signed-off-by: Kate Wang <yumeng.wang@nxp.com>
Add documentation to the defines and API function types. The missing return
types were checked by comparing the corresponding settings_*()
documentation to a few driver implementations. In some cases the return
value of the API functions were not checked by the subsystem code. Most
notably in the case of csi_save_start() and csi_save_end() the return
values are never checked by the settings subsystem code. In those two cases
the documented return value follow the most common usage pattern. When
loading subtrees the return value of csi_load() is also not checked, but
the intended usage can be guessed from other call sites.
Ran clang-format on the file as newly added changes were not formatted
correctly.
Signed-off-by: Henrik Lindblom <henrik.lindblom@vaisala.com>
The GINT peripheral provides grouped GPIO interrupt
functionality, allowing multiple pins to be combined
into a single interrupt source.
Support the peripheral in interrupt controller
Signed-off-by: Jason Yu <zejiang.yu@nxp.com>
Apply the recently introduced driver_ops Doxygen macros to the SPI driver
API. This standardizes how driver operations are documented, making it
easier for developers to distinguish between mandatory and optional
operations directly in the public API documentation.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Apply the recently introduced driver_ops Doxygen macros to the CAN
controller driver API. This standardizes how driver operations are
documented, making it easier for developers to distinguish between
mandatory and optional operations directly in the public API
documentation.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Apply the recently introduced driver_ops Doxygen macros to the GNSS driver
API. This standardizes how driver operations are documented, making it
easier for developers to distinguish between mandatory and optional
operations directly in the public API documentation.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add a macro to approximate the heap size required by a heap in order for
an allocation of N bytes to succeed. The intent is to provide a way for
small heaps to more accurately specify their sizes.
Signed-off-by: Jordan Yates <jordan@embeint.com>
Always put the inclusion of snippets-rodata.ld into the normal rodata
section no matter pinned sections are used or not. No reason to put it
in pinned sections.
Signed-off-by: Dong Wang <dong.d.wang@intel.com>
I2S bus specification 3.0 [1] updated terms "Master" and "Slave" to
"Controller" and "Target". This rename macros using these terms and
deprecates old names.
[1] https://www.nxp.com/docs/en/user-manual/UM11732.pdf
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add a user_data field to bt_ccp_call_control_client_cb. The
field is optional to enable via Kconfig. The field can be used
to provide additional context from the owner of the callback
structure, to the callbacks themselves.
This solves a memory use-after-free issue in the unit tests
where the values from the callback was accessed after they
were released, as the values were just stack allocated.
Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
Embeds both an anonymous union and an anonymous structure within the
k_spinlock structure to ensure that the structure can easily have a
non-zero size.
This new option provides a cleaner way to specify that the
spinlock structure must have a non-zero size. A non-zero size
is necessary when C++ support is enabled, or when a library
or application wants to create an array of spinlocks.
Fixes#59922
Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
We converted the QMSPI-LDMA driver to linux style with a local
register header in the driver folder. This is part of the long
term plan to remove the MEC5 HAL and have common drivers for
as many SoC's as possible. QMSPI register definitions are in
the SoC layer to be shared with other drivers (MSPI). The driver
was also updated based on changes in the SPI config structure.
The lastest SPI config structure changes force hardware controlled
chip selects and GPIO controlled chip selects to be mutually exclusive.
NOTE: driver works with the flash driver sample
and passes the common flash driver test.
Signed-off-by: Scott Worley <scott.worley@microchip.com>
We updated the SoC Microchip MEC common helper and headers.
Add helper routines to manipulate PCR sleep enable bits, etc.
Add miscellaneous helper routines.
Add QMSPI register definitions to be used by SPI and MSPI drivers.
Create a common header containing includes of all other
common headers to prevent changing each chip's soc.h
Note, we must add build logic to handle naming difference of eSPI
SAF/TAF nodes. Intel changed name of SAF to TAF. MEC15xx and MEC172x
older driver still use SAF in DT node naming.
Signed-off-by: Scott Worley <scott.worley@microchip.com>
CoAP response code 2.00 is not defined anywhere in the spec nor
assigned in the IANA registry, therefore it should not be defined
in Zephyr either. Remove the invalid response code and its usage
in tests.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
The out_div dts setting differs to the register setting
causing the frequency calcuation to be incorrect.
This was originally intended to be fixed in NRFX but
this requires further investigation on how to approach
translation of literal values to enums in NRFX. This PR
adds a helper function for the conversion for now and
changes the devicetree bindings to align with the literal
value.
Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
The BCM2711 GPIO controller provides 58 GPIO pins (0-57) that can be
configured for various functions including GPIO input/output and
alternate functions for peripherals like SPI, I2C, UART, PWM, etc.
Signed-off-by: Muhammad Waleed Badar <walid.badar@gmail.com>
Add documentation for the transport driver API. This is done by moving
and rewriting the previously existing documentation bits from the
transport consumer API. The documentation is rewritten such that it can
be more concise.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
"struct scmi_channel" has a couple of fields, which are only meant to
be used by the SCMI core. As such, there's no need to expose their
documentation to the public since transport driver writers shouldn't have
to care about them anyways. Thus, mark these fields as INTERNAL_HIDDEN.
Note that the order of the structure fields is shuffled such that
public and private fields can stay grouped together.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The consumer functions are only meant to be used by the SCMI core. Thus,
there's no need to keep their documentation public. Transport driver
writers should only care about the driver API documentation anyways.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
This makes using instrumentation with any sample/board combination
much easier, as it eliminates the need to define a custom dt overlay.
Trigger/stopper functions need to be configured at build time.
Signed-off-by: Maciej Sobkowski <msobkowski@antmicro.com>
The CRC8_REFLECT_POLY macro comment previously referred to CCITT,
which can be misleading in this context. The value (0xE0) depicts
the reflected form of the standard CRC-8 polynomial (0x07).
The comment is updated to explicitly describe it as the reflected
CRC-8 polynomial so the intent is clearer when reading the code.
Signed-off-by: Somil Gupta <somil24559@iiitd.ac.in>
The public API file <zephyr/usb/class/usbd_uvc.h> lacked an include
to <zephyr/drivers/video.h> making it fail depending on the order of
the includes.
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
- Add test suite for biometrics API using emulated driver
- Test enrollment flow: start, capture, finalize, abort
- Test template operations: store, read, delete, list
- Test matching: verify and identify modes
- Test attribute get/set and error handling
- Runs on native_sim and real hardware
Signed-off-by: Siratul Islam <email@sirat.me>
Introduces a new drivers subsystem for biometric sensors.
The API supports enrollment, matching, and template storage.
Signed-off-by: Siratul Islam <email@sirat.me>
Add functions to probe/remove all classes as part of a new usbh_class.c
and a matching usbh_class.h. These functions are called from the function
usbh_init_device_intl() in usbh_core.c to initialize every class upon
connection of a device. Every class driver provide filters to match the
interfaces of the device.
Co-authored-by: Aiden Hu <weiwei.hu@nxp.com>
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
In addition to storing the interface pointers, also store the pointers
for the interface association. Also add comments to the other fields
of the structs to adapt to a new CI check.
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add API wrappers around the function pointers in struct usbh_class_api,
while also documenting the USB host class internal API.
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add a "struct usbh_class_api" for the host implementation, and move all
the function poitners to it. Add more fields to "struct usbh_class_data".
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Add a "struct usbh_status" that contains a bitmask of flags to keep
track of the global state of the host context, like done for the
device_next implementation.
Signed-off-by: Josuah Demangeon <josuah.demangeon@nordicsemi.no>
Implement BR/EDR inquiry scan parameters update functionality with
new API bt_br_inquiry_scan_update_param(). Adds support for setting
inquiry scan interval, window and type via HCI commands. Includes
default parameter set for standard inquiry scanning.
Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
Implement BR/EDR page scan parameters update functionality with new
API bt_br_page_scan_update_param(). Adds support for setting page scan
interval, window and type (standard/interlaced) via HCI commands.
Includes predefined parameter sets for different Bluetooth versions
and use cases.
Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
This commit implements Class of Device (COD) functionality for
Classic Bluetooth, supporting both setting and retrieving COD
from the controller by bt_br_write_cod and bt_br_read_cod.
Signed-off-by: Kai Cheng <chengkai@xiaomi.com>
There is no need for it to have a different type than the packet data. The
variable is never checked for negativity and is only used when ts_gwinfo is
non zero, in which case client_radius must have been set as well.
Signed-off-by: Michael Zimmermann <michael.zimmermann@sevenlab.de>
The internals of an NVMEM cell should be kept private, and needs to be
interacted with using an API.
Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>