Commit graph

17,121 commits

Author SHA1 Message Date
Guillaume Gautier
447d552ac0 include: dt-bindings: clock: stm32fx: add missing clock sources
Add some missing clock sources and reorganize them to class the PLL outputs
together for STM32F4 and F7.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-01-19 16:20:44 -06:00
Alain Volmat
83e6e4379b include: display: Add description for all formats
Add detailed description for all supported display formats.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2026-01-19 16:04:04 +00:00
Alain Volmat
b13d9a0510 display: rename current BGR_565 format into RGB_565X
The format currently expected by devices and sample display
application for BGR_565 is actually RGB_565 format with bytes
swapped (not B / R swapped). That is:

PIXEL_FORMAT_RGB_565:
         * @code{.unparsed}
         *   7......0 15.....8
         * | gggBbbbb RrrrrGgg | ...
         * @endcode

current PIXEL_FORMAT_BGR_565:
         * @code{.unparsed}
         *   7......0 15.....8
         * | RrrrrGgg gggBbbbb | ...
         * @endcode

This is explained in both st7796s display driver but also is
what is generated by the sample display application. As a video
format (ex: V4L2), such format is not mentioned as BGR (for
which R and B are swapped) but RGB_565X.

Within the whole Zephyr tree, rename the curremt BGR_565 format
into RGB_565X in order to emphasis that this is a byte swapped
format rather than a B/G component swapped format.

This also correct the description of the format in display.h
file, which wasn't correct based on what was being used by
display driver or sample display app.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2026-01-19 16:04:04 +00:00
Pieter De Gendt
bc63b5cd30 nvmem: Improve doxygen in public APIs
Update the NVMEM doxygen in accordance with the contribution guidelines.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2026-01-19 15:15:07 +01:00
Can Wang
d9a5b9cc4a Bluetooth: OBEX: add setpath flags enum
Add documentation for the setpath flags parameter by defining a new
enum bt_obex_setpath_flags that describes the available flags:
- BT_OBEX_SETPATH_FLAG_BACKUP: backup a level before applying name
- BT_OBEX_SETPATH_FLAG_NO_CREATE: don't create folder if it doesn't exist

Update the documentation for bt_obex_setpath() and the setpath callback
in bt_obex_server_ops to reference the new enum, improving clarity for
users of the OBEX setpath operation.

Signed-off-by: Can Wang <can.wang@nxp.com>
2026-01-19 15:08:42 +01:00
Can Wang
3138be0b08 Bluetooth: OBEX: allow zero-length body in End-of-Body header
According to OBEX Version 1.5, section 2.2.9, it is legal to send a
zero-length End-of-Body header when object body data is generated on
the fly and the end cannot be anticipated.

Update parameter validation in bt_obex_add_header_body_or_end_body()
and bt_obex_add_header_end_body() to allow NULL body pointer when
length is zero, while still rejecting NULL body with non-zero length.

This enables proper support for zero-length End-of-Body headers as
specified in the OBEX specification.

Signed-off-by: Can Wang <can.wang@nxp.com>
2026-01-19 15:08:42 +01:00
Can Wang
85446aafd7 Bluetooth: OBEX: add bt_obex_has_app_param helper function
Add a new helper function bt_obex_has_app_param() to check whether
a specific application parameter tag exists in the OBEX buffer.

The function uses the existing bt_obex_get_header_app_param() to
retrieve the application parameters, then parses them using
bt_obex_tlv_parse() with a callback to search for the specified tag ID.

This simplifies checking for the presence of application parameters
without needing to manually parse the TLV structure.

Signed-off-by: Can Wang <can.wang@nxp.com>
2026-01-19 15:08:42 +01:00
Antoni Duda
28a9b43459 bluetooth: host: Allow unregistering per adv sync cbs
Introduce bt_le_per_adv_sync_cb_unregister to allow
unregistering of the periodic sync callbacks.

Signed-off-by: Antoni Duda <antoni.duda@programmer.net>
2026-01-19 12:17:53 +01:00
Camille BAUD
6b2f1c19ac drivers: lora: Add missing Bandwidth and Spreading Factor values
Add missing values and replace arbitrary BW enum with actual value

Signed-off-by: Camille BAUD <mail@massdriver.space>
2026-01-16 11:43:43 +00:00
Gatien Chevallier
7db8328b08 drivers: Introduce new OTP subsystem
Introduce a new OTP subsystem to be able to interact with One Time
Programmable(OTP) memory. For now, add basic read()/program() APIs.
Program() API is default disabled due to its sensitivity.

File drivers/otp.h is inspired by drivers/eeprom.h as the basic
features are similar.

Signed-off-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
2026-01-16 11:42:50 +00:00
Scott Worley
c6a959dcc3 drivers: serial: microchip: mec: Common UART driver
We modified the Microchip MEC UART driver to be HAL
independent and be usuable on all MEC SoCs. The only
hardware difference is an extra register in the MEC174x/5x
family providing TX FIFO full and current byte count.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2026-01-16 11:40:38 +00:00
Bjarki Arge Andreasen
636e104b23 util: Use CONCAT() instead of internal _CONCAT_\d() in tree
The explicit, and internal, _CONCAT_\d macros are used in a few
files instead of the public CONCAT() macro which automatically
expands to the correct _CONCAT_\d macro based on number of args
passed to it. Update files to use CONCAT().

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-01-16 11:39:41 +00:00
Nikita Divakov
dbc30c5e2f toolchain: gcc: iar: add ___in_section_unique()
Macros __in_section_unique() and __in_section_unique_named() use
___in_section with  __FILE__ argument to create a unique section name.
Since __FILE__ is a string, calling Z_STRINGIFY(__FILE__) in
___in_section() causes double quotes in __FILE__ value to be masked.
This prevents ld from matching section names output by this script.
For example, when using CONFIG_CODE_DATA_RELOCATION to relocate
a noinit section, __in_section_unique() generates the following
section name:

KEEP(*file.c.obj(.noinit."WEST_TOPDIR/path/file.c".symbol))

Besides, __FILE__ is used to create unique sections in two macros,
so why not unify this approach.

This fix adds ___in_section_unique() macro, which substitutes __FILE__
string into section name without additional stringification. Thus,
resulting section is correctly matched by ld.

Signed-off-by: Nikita Divakov <grommerin@gmail.com>
2026-01-15 16:40:39 +00:00
Ibrahim Abdalkader
dca4136f5e llext: Keep constant data in flash.
This patch adds a new Kconfig option that allows read-only data sections
without relocations to be mapped directly (remain in flash) instead of
being copied to RAM during extension loading. This helps extensions that
have large constant data, such as certificates, lookup tables etc.. to
save saving significant RAM, especially with MPU is enabled.

This feature requires the extension to place rodata sections without
relocations in LLEXT_RODATA_NO_RELOC section.

Note that we chose to disable this optimization when MMU or USERSPACE is
enabled because the NO_RELOC section may not be aligned to the MPU/MMU
requirements on some architectures. If we leave it in place, llext will
attempt to create an MPU region for it using a misaligned address, and
if we allow it to be copied to RAM, it defeats the purpose of this feature.

Signed-off-by: Ibrahim Abdalkader <i.abdalkader@gmail.com>
2026-01-15 16:40:29 +00:00
Ivan Iushkov
f0c26dfb85 Bluetooth: fix potential unaligned access in CS HCI fields
This commit fixes an issue reported by LLVM Clang compiler
when building with -Wunaligned-access:
```
bluetooth/hci_types.h:4044:2: error: field  within
'struct bt_hci_le_cs_step_data_mode_1'
is less aligned than 'union bt_hci_le_cs_step_data_mode_1::
(include/zephyr/bluetooth/hci_types.h:4044:2)' and is usually due to
'struct bt_hci_le_cs_step_data_mode_1' being packed, which can lead
to unaligned accesses [-Werror,-Wunaligned-access]
```
and similar issues for other CS-specific types containing
unions

Signed-off-by: Ivan Iushkov <ivan.iushkov@nordicsemi.no>
2026-01-15 15:26:52 +01:00
Farsin Nasar V A
9d156cc98b drivers: reset: microchip: update RSTC G1 driver for PIC32CM JH
Update the reset driver to add support for the
PIC32CM JH family

Signed-off-by: Farsin Nasar V A <farsin.nasarva@microchip.com>
2026-01-15 15:26:19 +01:00
Lucien Zhao
f0a528bbb2 drivers: clock_control_nxp_mc_cgm.c: update clock driver
- Update switch usage for mc_cgm_clock_control_on function
- add pit clock on/get rate feature

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2026-01-15 15:25:08 +01:00
Francis Roi Manabat
51fa798260 drivers: rtc: add MAX31331 RTC Support
Add MAX31331 RTC driver, an ultra-low-power real-time clock (RTC)
that provides timekeeping with
extremely low current consumption (65 nA).

Signed-off-by: Francis Roi Manabat <francisroi.manabat@analog.com>
2026-01-15 11:05:00 +00:00
Nicolas Moreno
69e353904c drivers: display: features for ILI9341 driver
Replaced display-controller.yaml with lcd-controller.yaml
Deleted pixel format property, replacing it with the
property on lcd-controller.yaml. Replace ILI9XXX RGB macro
with PANEL RGB macro. Also, added condition to verify pixel
format is RGB565, BRG565 or RGB888, otherwise it will show error
Replaced <zephyr/dt-bindings/display/ili9xxx.h> with
<zephyr/dt-bindings/display/panel.h> and
ILI9XXX_PIXEL with PANEL_PIXEL in some Devicetrees
and files that contained both elements. Fixed some
script sintax. Deleted drivers/display/display_ili9xxx.c

Signed-off-by: Nicolas Moreno <niko722795@gmail.com>
2026-01-15 11:04:16 +00:00
Nicolas Moreno
9b2593b8c5 drivers: display: issue with configuration on ILI9341
ILI9341 is not deploying correctly the display sample.
The screen looks mirrored vertically and the color
doesn't match with the sequence expected. To fix it,
change the Memory Access Control configuration data.

Signed-off-by: Nicolas Moreno <niko722795@gmail.com>
2026-01-15 11:04:16 +00:00
Samuel Kleiser
0fbbba2dc0 mcumgr: fs_mgmt: forward return values from fs_close
A new error code FS_MGMT_ERR_FILE_CLOSE_FAILED is returned when
closing a file fails. This is done on write or close operations - read
operations remain unchecked.

Signed-off-by: Samuel Kleiser <s.kleiser@vega.com>
2026-01-14 09:18:10 -06:00
Lyle Zhu
8dca624355 doc: bluetooth: reorganize Classic API documentation into subdirectory
Reorganize Bluetooth Classic API documentation by moving existing files
(SDP, RFCOMM, A2DP, HFP) into a new `classic/` subdirectory and adding
new documentation files for L2CAP BR/EDR, AVRCP, GOEP, and BIP.

Changes include:
- Move existing Classic API docs to subdirectory `classic/`
- Add new L2CAP BR/EDR documentation
- Add AVRCP, GOEP, and BIP API reference documentation
- Update HFP documentation to include both HFP Unit and HFP-AG sections
- Update index.rst to reflect new directory structure
- Add Doxygen group documentation to AVRCP header
- Update AVRCP Cover Art to be a subgroup of AVRCP
- Fix L2CAP BR/EDR Doxygen group name and description

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2026-01-14 09:57:38 +01:00
Firas Sammoura
6834cd5dae mem_mgmt: add mem_attr_get_region_index_by_name()
Add a new API to look up a memory region's index using its DeviceTree
node name. This allows callers to identify specific regions within the
internal regions array.

Includes unit tests for successful lookups and error handling for
non-existent names.

Signed-off-by: Firas Sammoura <fsammoura@google.com>
2026-01-14 09:56:53 +01:00
Sylvio Alves
b05332abee arch: riscv: pmp: add SoC-specific region support
Add infrastructure for SoCs to define additional PMP regions
that need protection beyond the standard ROM region. This uses
iterable sections to collect region definitions at link time.

The PMP_SOC_REGION_DEFINE macro allows SoCs to register memory
regions with specific permissions. These regions become global
PMP entries shared between M-mode and U-mode.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-01-13 17:26:48 +01:00
Fin Maaß
6f9e5bed93 devicetree: add DT_ANY/ALL_INST for reg names
add DT_ANY_INST_REG_HAS_NAME_STATUS_OKAY
and DT_ALL_INST_REG_HAS_NAME_STATUS_OKAY
to check if any instance has a register with a specific
name.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-01-13 17:26:08 +01:00
Kai Vehmanen
cf318bb1f2 drivers: dai: fix optional use of dai_get_properties_copy()
Handle the case if driver is not implementing get_properties_copy().

Document the behaviour and add a note that the method is optional and
users need to be handle the case that not all drivers will have this
method defined.

Also add documentation on error codes. Drivers should use -ENOENT if
no properties are defined for the device. This matches behaviour of
dai_get_properties() returning NULL if there are no properties.

Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
2026-01-13 13:32:58 +01:00
Kapil Bhatt
094d30cc05 net: wifi: Add API support for P2P power save
Add API support for P2P power save.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2026-01-13 13:30:23 +01:00
Kapil Bhatt
4e5783f39a net: wifi: Add API support for P2P GO mode
Add structures and API support for P2P Go mode.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2026-01-13 13:30:23 +01:00
Kapil Bhatt
c2649b5887 net: wifi: Add Wi-Fi direct P2P connect API support
Add structures and API support for P2P connect.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2026-01-13 13:30:23 +01:00
Kapil Bhatt
84db77c46b net: wifi: Add Wi-Fi direct P2P discovery API support
Add supplicant api and  mgmt ops support for P2P discovery.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2026-01-13 13:30:23 +01:00
Johann Fischer
cfd748fff1 dap: add header and macro to instantiate DAP context
Although we have the three layers, SWDP driver API, DAP stack, and USB
backend, to implement a debug probe, there is no way for the user to
instantiate the DAP context, which would allow it to be used with
different backends or to change the configuration at runtime.

The Debug Access Port (DAP) is an implementation of the ARM Debug
Interface (ADI) that is typically integrated into SoC.
With all three layers, we implement a link to the DAP on the SoC.
Let's call it Zephyr DAP Link and use the dap_link prefix. There is also
a MBED DAPLink project that implements similar functionality, but using
a different name would likely cause more confusion.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2026-01-13 10:16:27 +01:00
Johann Fischer
490fe49856 include: drivers: add SWD driver user API
Although the DAP subsystem is the only user in the tree, yet, we may have
other subsystems, libraries, or simple samples that could use this API
in the future.

Signed-off-by: Johann Fischer <johann.fischer@nordicsemi.no>
2026-01-13 10:16:27 +01:00
Stefan Gloor
9ae3b77359 net: net_if: remove obsolete documentation about buffer lifetime
The net_linkaddr struct used to use pointers instead of copying the
data. Thankfully this was fixed in
https://github.com/zephyrproject-rtos/zephyr/pull/87027.

Remove the old comment to reflect the current state.

Signed-off-by: Stefan Gloor <stefan.gloor@siemens.com>
2026-01-12 12:41:54 -06:00
Sylvio Alves
6511eb4edf bluetooth: hci: add Espressif VS platform/variant definitions
Add Espressif platform and variant IDs to hci_vs.h for ESP32 family
SoCs (ESP32, ESP32-S3, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2).

Add Espressif Systems to vs_hw_platform() and vs_hw_variant()
functions in hci_core.c for proper vendor identification.

Use CONFIG_SOC_FAMILY guards in vs_hw_variant() to reduce flash
usage by only compiling variant strings for the active SoC family.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-01-12 12:34:47 -06:00
Armando Visconti
56b85ea61a drivers/sensor: lsm6dsvxxx: add ism6hg256x support
Add support to ism6hg256x sensor variant of LSM6DSVXXX driver.

More information:
https://www.st.com/resource/en/datasheet/ism6hg256x.pdf

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-01-12 12:26:41 -06:00
Armando Visconti
b66fc31c95 drivers/sensor: lsm6dsvxxx: add lsm6dsv80x support
Add support to lsm6dsv80x sensor variant of LSM6DSVXXX driver.

More information:
https://www.st.com/resource/en/datasheet/lsm6dsv80x.pdf

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-01-12 12:26:41 -06:00
Armando Visconti
3c16d599b1 drivers/sensor: lsm6dsvxxx: add streaming capabality
Add read_and_decode streaming APIs support.

Triggers supported:
    - SENSOR_TRIG_FIFO_WATERMARK
    - SENSOR_TRIG_FIFO_FULL
    - SENSOR_TRIG_DATA_READY

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-01-12 12:26:41 -06:00
Armando Visconti
d6eaae4d53 drivers/sensor/st: add support to LSM6DSVXXX IMU family
This driver is currently only supporting the polling-mode read_and_decode
APIs (both blocking and non-blocking).

The driver implements a chip_api structure which has to be used to
provide device specific callbacks. The only lsm6dsvxxx family device
currently supported is lsm6dsv320x.

More information about LSM6DSV16X:
https://www.st.com/resource/en/datasheet/lsm6dsv320x.pdf

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-01-12 12:26:41 -06:00
Armando Visconti
5372b41979 sensor/lsm6dsvxxx: change DT common prop names
The Device Tree property names that are common to lsm6dsv16x and
lsm6dsv32x drivers are now prefixed with LSM6DSVXXX_ (and not
LSM6DSV16X_) just for the sake of clarity.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2026-01-12 12:26:41 -06:00
Jukka Rissanen
290384b8cb net: dns: Add missing documentation for struct dns_addrinfo
The documentation of various fields in "struct dns_addrinfo" were
missing.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2026-01-12 11:54:20 +01:00
Francis Roi Manabat
c6a0444f50 drivers: sensor: add MAX30210 Temperature Sensor Support
Add Support for MAX30210, a low-power,
high-accuracy digital temperature sensor
operating from a 1.7 V to 2.0 V supply.

Signed-off-by: Francis Roi Manabat <francisroi.manabat@analog.com>
2026-01-12 11:53:15 +01:00
Tim Pambor
d40c003513 net: http_server: Add transaction complete status
When the response has been sent completely to the client, the server
reports the new `HTTP_SERVER_TRANSACTION_COMPLETE` status. Together with
the existing `HTTP_SERVER_TRANSACTION_ABORTED` status, the application
can now also for successful completions of requests clean up any
resources allocated for handling the request.

This especially allows to dynamically allocate the response buffer
passed to the server in the request callback and free it when the
request is done.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-01-11 13:04:52 +01:00
Tim Pambor
43d3387634 net: http_server: clarify naming of HTTP server callback status enum
Rename enum http_data_status to enum http_transaction_status
to better reflect its purpose, which is to indicate the status of the
overall HTTP transaction, not just data transfer.

Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2026-01-11 13:04:52 +01:00
Gang He
cbe9396b50 include: zephyr: audio: Update audio codec interface
Support audio device that has both input and output function.

Signed-off-by: Gang He <ganghe@sifli.com>
2026-01-11 13:03:33 +01:00
Gang He
e724188a6f drivers: dma: Add half complete callback for SF32LB chipset
Add callback of half complete in DMA processing, Fix DMA size bug.

Signed-off-by: Gang He <ganghe@sifli.com>
2026-01-11 13:03:33 +01:00
Afonso Oliveira
d7ccfc929d arch: riscv: guard CSR access macros and helpers from asm
The csr_*() macros and Smcsrind indirect CSR access helpers in csr.h
are C-only constructs using GNU C statement expressions, but csr.h is
also included from assembly sources when building with -D_ASMLANGUAGE.

Guard all C-only macros and functions so they are not seen by the
assembler, leaving only the numeric CSR definitions in the common
(ASM+C) section.

Signed-off-by: Afonso Oliveira <afonsoo@synopsys.com>
2026-01-09 17:10:08 -06:00
Vijay Sharma
83f1b8ba49 kernel: timer: Add timer observer hooks for extensibility
Introduce lifecycle observer callbacks (init, start, stop, expiry)
for k_timer using Zephyr's iterable sections pattern. This enables
external modules to extend timer functionality without modifying
kernel internals.

Signed-off-by: Vijay Sharma <vijshar@qti.qualcomm.com>
2026-01-09 14:25:31 -06:00
Jamie McCrae
d94ed7b316 lib: os: Fix ZVFS leaking without being enabled
Fixes this define leaking into all application source files when
the feature is not even enabled

Co-authored-by: Chris Friedt <cfriedt@tenstorrent.com>
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2026-01-09 14:23:25 -06:00
Tomasz Leman
15fa6a374e ipc: intel_adsp: simplify host IPC service backend
Rework the Intel Audio DSP host IPC service backend to use the generic
ipc_service data/len conventions and the new critical send and buffer
management APIs.

Replace the backend-specific intel_adsp_ipc_msg and related enums with a
simple two-word payload passed through the standard ipc_service_send()
and ipc_service_send_critical() interfaces, and adapt the ISR and
receive callback to operate on this representation.

Use ipc_service_get_tx_buffer_size() as a readiness check for the host
channel and provide hold_rx_buffer() / release_rx_buffer()
implementations so ipc_service_release_rx_buffer() can be used to signal
when the channel becomes available again.

Wire the emergency send path through send_critical() to route urgent
messages via the backend's emergency fast path while keeping the normal
IPC flow unchanged.

Move the synchronous IPC wait logic out of the Intel Audio DSP host IPC
backend and into the common intel_adsp_ipc helper used by tests.

Update intel_adsp_ipc_send_message_sync() to both send the IPC message
through ipc_service_send() and wait on the backend semaphore, and remove
the now redundant ipc_send_message_sync() helper from the host IPC
backend.

Document that intel_adsp_ipc_send_message_sync() is a test-only helper,
not used by SOF firmware, and that it is a candidate for future removal
or for replacement by an explicit synchronous send primitive in the
generic IPC service API or in application code.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2026-01-09 14:21:41 -06:00
Tomasz Leman
4cf753bfb2 ipc_service: Add ipc_service_send_critical function
Add ipc_service_send_critical() as a dedicated API for sending critical
high-priority messages over an IPC endpoint.

Introduce an optional send_critical() callback in struct
ipc_service_backend so backends can implement a special fast path that
bypasses normal state and busy checks for critical notifications such as
crash reports or fatal errors.

The ipc_service_send_critical() wrapper mirrors ipc_service_send() on
the service side and delegates the actual behavior to the
backend-specific send_critical() implementation.

Signed-off-by: Tomasz Leman <tomasz.m.leman@intel.com>
2026-01-09 14:21:41 -06:00