Commit graph

17,121 commits

Author SHA1 Message Date
Robert Lubos
991ea36f70 net: lib: ftp_client: Add FTP client library
Add FTP client library, based on the FTP client library from nRF Connect
SDK.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2026-02-24 15:37:25 +01:00
Daniel Leung
c1ff64599b kernel: mem_domain: support memory domain de-initialization
This adds the ability to de-initialization a memory domain.
This requires support in the architecture layer. One usage of
this is to release the resources associated with the domain.
For example, we can release allocated page tables so they can
go back to the pool of page tables to be allocated later.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2026-02-24 10:39:59 +01:00
Gustav Holmberg
cf7b658609 llext: disable section placement by default
In commit 7a671993eacf7542a450d62439c012503b7cda2e a change was introduced
that placed variables in llextspecific sections. In the linker script
these are guarded by `#ifdef CONFIG_LLEXT`, but not the corresponding
C code, so these variables are being put in sections that are not
specified in linker scripts. This causes issues with IAR linker,
which warns about these orphan sections.

Signed-off-by: Gustav Holmberg <gustav.holmberg@iar.com>
2026-02-24 10:38:00 +01:00
Laurentiu Mihalcea
d9db1a9516 firmware: scmi: shmem: add "use_polling" parameter
Add a new parameter to SHMEM's write_message() functon, which is meant to
allow it to perform the required configuration whenever the SCMI stack
(via the SCMI transport layer) wishes to poll for the reply.

For now, don't implement any logic related to this. Thus, no functional
change.

This commit is part of #102904.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2026-02-24 10:35:07 +01:00
Laurentiu Mihalcea
aad91d7fe9 firmware: scmi: transport: add "use_polling" parameter
Add a new parameter to the transport layer's send_message() function,
which is meant to allow it to perform the required configuration whenever
the SCMI stack user (via the SCMI core layer) wishes to poll for the
reply.

For now, don't implement any logic related to this. Thus, no functional
change.

This commit is part of #102904.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2026-02-24 10:35:07 +01:00
Thinh Le Cong
f615de0c71 dt-bindings: misc: Add ELC enum dts binding for RA8E1 SoC
Add RA8E1 SoC's ELC signal enums for devicetree bindings

Signed-off-by: Thinh Le Cong <thinh.le.xr@bp.renesas.com>
2026-02-24 10:34:05 +01:00
Jilay Pandya
dc934c36be drivers: stepper: split stepper.h and rename apis
rename stepper_drv_driver_api to stepper_driver_api
rename stepper_driver_api to stepper_ctrl_driver_api

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2026-02-24 10:32:31 +01:00
Tom Burdick
25074f3f93 rtio: Split header into logical components
Much like the kernel or llext, rtio.h had become quite large though the
concepts and data types are not.

Restructure the headers into logically grouped components.

Signed-off-by: Tom Burdick <thomas.burdick@infineon.com>
2026-02-23 13:34:04 -06:00
Philémon Jaermann
795cfce286 drivers: gnss: Extend the iface_init with valset_supported
Used to configure the baudrate with the more modern UBX-CFG-VALSET
if supported, and falling back on UBX-CFG-PRT otherwise.

Adding the UART1 related configuration keys.
Just using the baudrate one, relying on the other default parameters.

Signed-off-by: Philémon Jaermann <p.jaermann@gmail.com>
2026-02-23 13:33:51 -06:00
Martin Moya
996feaea91 bluetooth: services: cts: Add local time information characteristic
CTS is missing the Local Time Information characteristic and this
commit adds the UUID and the full characteristic to its service.

The peripheral example has been updated as well to use this and
implement it on the example so it is easy to test it out.

Signed-off-by: Martin Moya <moyamartin1@gmail.com>
2026-02-23 16:58:13 +00:00
Afonso Oliveira
ce3f07a47d arch: riscv: csr: lock IRQs around indirect CSR (micsr) access
The micsr_* helpers use a two-step MISELECT+MIREG sequence that is not
atomic. If an interrupt fires between writing MISELECT and accessing
MIREG, the handler could modify MISELECT, causing the MIREG operation
to target the wrong indirect register.

Wrap the MISELECT+MIREG sequence in each micsr_* helper with
irq_lock/irq_unlock to prevent preemption during the two-step access.
This ensures all callers are automatically protected without needing
to add locking at each call site.

Move the micsr_* helpers from csr.h into a new icsr.h header to avoid
pulling zephyr/irq.h into csr.h, which causes circular dependencies
on some SoCs. Code that needs indirect CSR access now explicitly
includes icsr.h.

Signed-off-by: Afonso Oliveira <afonso.oliveira707@gmail.com>
2026-02-23 11:36:07 +00:00
Fiona Behrens
e4068f8757 soc: nuvoton m48x: use numaker reset driver for uart
Use the numaker reset driver for the reset in the numicro uart driver.

Signed-off-by: Fiona Behrens <me@kloenk.dev>
2026-02-23 08:48:43 +01:00
Joakim Tjernlund
8d2018b5e3 arm64: init cntp
CNTP could be used by an application, best make sure it is running.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
2026-02-21 15:35:09 +00:00
Joakim Tjernlund
b6fd653637 arm64: cnthctl_el2: Set EL1PCTEN/EL1PCEN for cntp in EL1
zeroing CNTHCTL_EL2 traps physical timer/counter access from EL1 to EL2,
but Zephyr has no hypervisor to handle those traps.
Enabling access is the standard EL2→EL1 drop behavior.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
2026-02-21 15:35:09 +00:00
Dominik Ermel
097fba7517 fs: Add redirections for nvs.h and zms.h
Add header files that redirect to new paths for nvs.h and zms.h.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2026-02-20 12:13:53 -08:00
Dominik Ermel
f00d08ae1d kvss: Fix header guards in nvs.h and zms.h
Need to reflect current path of includes in header guards.

Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
2026-02-20 12:13:53 -08:00
Adam BERLINGER
ac9b2e2264 soc: stm32: Introduce stm32_iocell driver.
Goal is to configure HSLV options and I/O compensation cell
based on device tree settings.

Signed-off-by: Adam BERLINGER <adam.berlinger@st.com>
2026-02-20 10:32:44 -08:00
Dev Joshi
925224a98e drivers: fuelgauge: add support for SOH property
This commit adds support for State-of-Health (SOH) property in the
fuel_gauge subsystem.

Signed-off-by: Dev Joshi <devbhave@qti.qualcomm.com>
2026-02-20 10:28:42 -08:00
Zhaoxiang Jin
60197bf514 kernel: refactor sys_clock_hw_cycles_per_sec runtime support
- Move the variable declaration and related code from kernel/timeout.c
  to a new kernel/sys_clock_hw_cycles.c file. The motivation is that
  both functions are part of the system clock frequency plumbing
  (runtime query / update) and don’t naturally fit the responsibilities
  of timeout.c, which is otherwise focused on timeout queue management
  and tick announcement logic.

- Make sys_clock_hw_cycles_per_sec_runtime_get() (and its
  z_impl_sys_clock_hw_cycles_per_sec_runtime_get() implementation)
  visible under CONFIG_SYSTEM_CLOCK_HW_CYCLES_PER_SEC_RUNTIME_UPDATE
  as well, not only under CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME.
  This allows callers and time unit conversion helpers to retrieve the
  current system timer frequency after runtime clock changes even when
  the timer driver does not discover the rate by querying hardware.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-02-20 13:31:07 +01:00
Zhaoxiang Jin
df6e6cf0d2 drivers: timer: add runtime system timer frequency update support
Add infrastructure to support updating the system timer frequency at
runtime on platforms where the timer clock rate can change dynamically.

Introduce CONFIG_SYSTEM_CLOCK_HW_CYCLES_PER_SEC_RUNTIME_UPDATE Kconfig
option that enables runtime frequency updates. This option is mutually
exclusive with CPU_FREQ_PER_CPU_SCALING since the system timer frequency
is tracked as a single global value.

Add z_sys_clock_hw_cycles_per_sec_update() API that platforms must call
after applying a system timer clock change. The kernel provides a weak
default implementation that updates the stored frequency value used by
sys_clock_hw_cycles_per_sec().

System timer drivers that cache derived constants or need to reprogram
hardware on frequency changes can provide a strong override of this
function to maintain driver state consistency while ensuring the stored
frequency is also updated.

Signed-off-by: Zhaoxiang Jin <Zhaoxiang.Jin_1@nxp.com>
2026-02-20 13:31:07 +01:00
Dipak Shetty
cae71714de bluetooth: services: add Elapsed Time Service support
Added support for elapsed time service (ETS). The service
is introduced currently with the experimental tag.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2026-02-20 13:30:34 +01:00
Dipak Shetty
865b5e1604 bluetooth: added uuid for Elapsed Time Service
Added UUID for Elapsed Time Service (0x183F).

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2026-02-20 13:30:34 +01:00
Guillaume Gautier
7a7933ad50 drivers: clock: stm32l4-l5-wb-wl: remove all references to pllsai binding
Now that everything uses the generic STM32L4 PLL binding, remove all
references from the the old PLLSAI binding:
- Remove the lines using div_divr (it is now post_div_r)
- Remove the clock source check since it is now done in the driver
- Remove the PLLSAI binding since it is no longer used

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-20 10:11:30 +01:00
Guillaume Gautier
4841200c8d include: drivers: clock: stm32: update stm32l4 pll macros
Make the STM32L4 PLLSAIx macros available if the PLLSAIs are defined with
the generic L4 PLL compatible.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2026-02-20 10:11:30 +01:00
Emil Gydesen
dd4a01af48 Bluetooth: TBS: set_uri_scheme_list single string instead of array
Refactor bt_tbs_set_uri_scheme_list to take a single string instead
of an array of URIs. This should not affect applications much
in any way (and may actually be easier to use), but simplifies
the implementation significantly, and reduces memory footprint.

Additionally it also make the client and server more similar
as bt_tbs_client_read_uri_list just returns it as a single
string as well.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2026-02-20 10:10:38 +01:00
Braeden Lane
2d650bbf54 drivers: adc: Add Infineon SAR ADC driver
Add driver for the Infineon SAR ADC peripheral with device tree
binding. The driver uses a generic compatible (infineon,sar-adc)
with an infineon,version property to differentiate IP block
revisions (v2, v3). Features include:

- Single-ended and differential channel configuration
- Configurable resolution (8-12 bits)
- Multiple voltage reference sources (internal, VDDA, VDDA/2, external)
- Channel reference validation against block-level vref-src
- Hardware compensation for SAR v2/v3 single-ended channel limitation
- Interrupt-driven conversion completion
- Integration with peripheral clock control

The driver includes a compile-time per-instance API structure to
correctly report reference voltage to the ADC framework for accurate
raw-to-millivolts conversion.

Tested on CY8CKIT-041S-MAX (SAR v2) and CY8CPROTO-041TP (SAR v3) boards.

Signed-off-by: Braeden Lane <Braeden.Lane@infineon.com>
Co-authored-by: Deepika R <deepika@aerlync.com>
Co-authored-by: Sayooj K Karun <sayooj@aerlync.com>
2026-02-20 07:08:02 +01:00
Pete Johanson
6dc49e9dd6 soc: adi: max32: Add RV32 interrupt controller
Add interrupt controller for the RV32 core of the MAX32 SoC.

Signed-off-by: Pete Johanson <pete.johanson@analog.com>
2026-02-20 07:03:31 +01:00
Joakim Tjernlund
bbeb260c9b arch: arm64: Setup ICC_SRE_EL2
ICC_SRE_EL2 needs the same setup as ICC_SRE_EL3 for SPI IRQs
to work.

Signed-off-by: Joakim Tjernlund <joakim.tjernlund@infinera.com>
2026-02-19 10:01:00 -06:00
Krzysztof Chruściński
4cdc5844ba lib: os: cbprintf: Add option to use default alignment for rv32e
Add option to use default alignment when building a cbprintf package
on riscv (rv32e). It is useful in case when cbprintf packages are not
formatted on rv32e but on another core. There is such case on nrf54h20
where log messages are formatted by the ARM Cortex M33 core (cpuapp)
and without this option 64 bit arguments are incorrectly formatted.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2026-02-19 12:53:43 +01:00
Fin Maaß
aeed5f5c7c drivers: gpio: add macro to set common config struct
add macro to set common config struct.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-02-19 09:25:11 +01:00
Mathieu Choplain
5a0f73f045 kernel: events: wake threads atomically using waitq post-walk callback
When CONFIG_WAITQ_SCALABLE=y, wake up all threads from a post-waitq-walk
callback which is invoked while the scheduler spinlock is still held. This
solves the race condition that was worked around via `no_wake_in_timeout`
flag in k_thread and `is_timeout` parameter of z_sched_wake_thread_locked()
which can now both be dropped.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-18 14:43:10 +00:00
Mathieu Choplain
3ba7dcfe2c kernel: events: wake threads during wait queue walk if possible
When CONFIG_WAITQ_SCALABLE=n, the callback invoked by z_sched_waitq_walk()
is allowed to remove the thread provided as argument from the wait queue
(an operation implicitly performed when waking up a thread).

Use this to our advantage when waking threads pending on a k_event by
waking threads as part of the waitq walk callback instead of building
a list of threads to wake and performing the wake outside the callback.
When CONFIG_WAITQ_SCALABLE=n, this allows removing a pointer-sized field
from the thread structure which reduces the overhead of CONFIG_EVENTS=y.

The old implementation (build list in callback and wake outside callback)
is retained and used when CONFIG_WAITQ_SCALABLE=y since we can't modify
the wait queue as part of the walk callback in this situation. This is now
documented above the corresponding field in k_thread structure.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-18 14:43:10 +00:00
Josuah Demangeon
4360894965 usb: host: class: support multiple controllers
Only bind to a controller after probing. Wait that a class is matching and
assigned to a device to assign a host controller to a class. This allows
a class to be used by any of the controller in place.
Remove the `c_data->uhs_ctx` field, not used anywhere, in favor of using
`c_data->udev->ctx`.

Signed-off-by: Josuah Demangeon <me@josuah.net>
2026-02-18 10:29:27 +00:00
Titouan Christophe
c621c97083 bluetooth: fix typo in reference to option values
The options field of struct bt_le_per_adv_param are defined in Doxygen
group bt_le_per_adv_opt, not bt_le_adv_opt

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2026-02-17 13:22:09 -06:00
Titouan Christophe
fb8a0c8fe5 bluetooth: fix missing doxygen for optional struct fields
When Periodic Advertisement with Responses is enabled with
`CONFIG_BT_PER_ADV_RSP`, some extra optional fields are included in
struct bt_le_ext_adv_cb and struct bt_le_per_adv_param. Even though
these fields are properly doxygen-documented, they are not included
in the HTML docs because they are excluded with conditional compilation.

Update the conditional macros to include them when building the
documentation so they appear there, and add a note to the
corresponding kconfig option to enable them.

Signed-off-by: Titouan Christophe <titouan.christophe@mind.be>
2026-02-17 13:22:09 -06:00
Yuzhuo Liu
08bad54b32 drivers: gpio: add realtek bee gpio driver
Add realtek bee gpio driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Yuzhuo Liu
b1e409e01f drivers: pinctrl: add realtek bee pinctrl driver
Add realtek bee pinctrl driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Yuzhuo Liu
e3864c87c2 drivers: clock: add realtek bee clock driver
Add realtek bee clock driver.

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-02-17 15:22:38 +00:00
Guy Shilman
3d9820f3f7 Bindesc: Fix typo of caluculate to calculate
Fixed typo in documentation of `bindesc_get_size` function
from "caluculate" to "calculate".

Signed-off-by: Guy Shilman <shilmanguy@gmail.com>
2026-02-17 15:21:45 +00:00
Hubert Feurstein
baab6ecda3 sys: list_gen: fix thread safety in list length calculation
The `Z_GENLIST_LEN` macro declared the loop iterator `node` as
`static`. This causes the variable to be stored in the data segment,
shared across all invocations of the generated `sys_*_len` function.

This makes the function non-reentrant and unsafe in multi-threaded
environments. If an ISR or another thread calls the function
concurrently, the shared iterator state gets corrupted, leading to
incorrect results or infinite loops.

Removing the `static` keyword ensures `node` is allocated on the
stack, making the function thread-safe.

Signed-off-by: Hubert Feurstein <hubert.feurstein@stratum9.at>
2026-02-17 08:00:12 -05:00
Andrzej Puzdrowski
26ea9fef16 include/zephyr/settings: remove API functions #if-defry
Remove #if-defry for inclusion of functions definitions.
This change follows practices recommended in the zephyr-rtos
API Design Guide.

Signed-off-by: Andrzej Puzdrowski <andrzej.puzdrowski@nordicsemi.no>
2026-02-17 12:20:11 +01:00
Silesh C V
4ed4684d57 dts: bindings: pinctrl: add alif pinctrl bindings
Add device tree bindings for the Alif Semiconductor pin controller
and Ensemble SoC specific pin definitions.

The binding supports pin multiplexing via predefined macros that
encode port, pin, and alternate function into a 32-bit value.
Pad configuration (input enable, drive strength, slew rate, bias
control, etc.) is specified using standard pinctrl properties.

Signed-off-by: Silesh C V <silesh@alifsemi.com>
2026-02-17 10:31:21 +01:00
Silesh C V
448b24f1de dt-bindings: clock: add alif clock bindings
Alif SoCs organize clock control into multiple register regions
(called clock modules in the driver). Bitfields in these modules
are used to manage different clocks in the SoC. Add headers that
define the encoding of the information necessary to operate on
the clocks.

The encoding packs clock control information into a single 32-bit
value that includes clock module and register offset within the
module, clock enable information and clock source information.

Note that alif-clocks-common.h contains the common encoding scheme,
module definitions etc. that could be reused by other Alif SoCs and
alif-ensemble-clocks.h defines the peripheral clock IDs specific to
the Ensemble family (UART 0-7 clocks are added for initial support).

Co-authored-by: Manoj A Murudi <manoj.murudi@alifsemi.com>
Signed-off-by: Silesh C V <silesh@alifsemi.com>
2026-02-17 10:31:21 +01:00
Sunil Abraham
8c2c58de6a drivers: clock_control: PIC32CZ_CA: Add clock control driver
Add clock control driver
Implement bootup clock initialization, on, off, configure and get_rate API

Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
2026-02-16 08:59:23 -06:00
Sunil Abraham
7136b03f30 dts: clock: PIC32CZ_CA: Add clock control driver bindings
Add bindings for dfll, dpll, gclk generator, mclk cpu, osc32k, rtc clock
and xosc.

Signed-off-by: Sunil Abraham <sunil.abraham@microchip.com>
2026-02-16 08:59:23 -06:00
Johan Hedberg
62763f5368 drivers: bluetooth: Take advantage of DEVICE_API_GET()
Use the DEVICE_API_GET() helper macro when extracting the bt_hci API from a
device pointer. This also enforces that the given device pointer actually
implements the API in question.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2026-02-16 11:11:22 +01:00
Muhammed Asif
a51311010c drivers: microchip: interrupt_controller: Add g1 driver for eic
- Adds the g1 driver for eic for microchip devices
- Uses the APIs of the eic driver from gpio driver

Signed-off-by: Muhammed Asif <muhammed.asif@microchip.com>
2026-02-16 00:12:43 +00:00
Muhammed Asif
5b203fe53f dts: arm: microchip: samd5xe5x: Adds the eic node
- Adds the device tree node to the dts
- Adds the binding yaml file for EIC

Signed-off-by: Muhammed Asif <muhammed.asif@microchip.com>
2026-02-16 00:12:43 +00:00
Mathieu Choplain
c364761460 include: kernel: fix documentation of return values
Various functions in kernel.h used the `@retval` command, which requires
a return value to be specified right afterwards, without actually providing
said return value. This causes the first word after the command to render
in a different color inside the documentation which looks odd.

Fix by using `@return` instead or adding the missing return value for the
`@retval` depending on the situation.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-13 13:56:19 +01:00
Mathieu Choplain
bf8f523818 include: kernel: add missing retval in k_float_en/disable documentation
A `@retval` command was missing which caused the documentation for -EINVAL
to be integrated in the documentation paragraph for return value -ENOTSUP
instead of being in its own paragraph.

Signed-off-by: Mathieu Choplain <mathieu.choplain-ext@st.com>
2026-02-13 13:56:19 +01:00