Commit graph

15398 commits

Author SHA1 Message Date
Bjarki Arge Andreasen
400c038008 drivers: clock_control: z_nrf_clock: add get_startup_time API
Implement vendor specific
z_nrf_clock_bt_ctlr_hf_get_startup_time_us() which gets the startup
time of the high frequency clock used for Bluetooth.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2025-05-28 17:49:41 +02:00
Brandon Allen
979933cfb4 drivers: current_sense_amplifier: add zero-current-voltage binding
some current sense amplifiers have a non zero offset voltage
that correlates to zero current. adding this offset voltage binding
allows the driver to be used with this type of circuitry.

Signed-off-by: Brandon Allen <brandon.allen@exacttechnology.com>
2025-05-28 17:48:47 +02:00
Neal Jackson
2ef1ddea73 mgmt: hawkbit: interface support for ip addresses and domain name
Previously, hawkbit interface only supported a url/hostname and a port,
and internally it resolves to an IP address. This does not work for
network layers that rely on NAT64, like OpenThread.  Zephyr's
implementation of `getaddrinfo` is not aware of NAT64.  DNS will resolve
an IPV4 address that needs to be converted to IPV6 with the NAT64
prefix.

This commit alters the Hawkbit interface to allow providing an explicit
domain name as a string via `server_domain`, and an already resolved IP
address as `server_addr`.

This commit changes the usage of `hawkbit_runtime_config.server_addr` to
point to either an IP address or domain name. It adds a new Kconfig
(`HAWKBIT_USE_DOMAIN_NAME`) to specify an explicit domain name and adds
a new variable `hawkbit_runtime_config.server_domain`. If
`HAWKBIT_USE_DOMAIN_NAME` is enabled and a user provides an IP address
to `server_addr`, the user must provide a domain name to
`server_domain`.

Signed-off-by: Neal Jackson <neal@blueirislabs.com>
2025-05-28 11:08:53 +02:00
Jukka Rissanen
d718b46ddb net: ipv6: Do not access link address past array length
It is possible to manually set link address length past 6 at runtime
and trying to check IPv6 ll address that way. This should fail
as we could read two bytes past the address buffer.

Coverity-CID: 516242

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-05-28 10:05:30 +02:00
Benson Huang
3e8ec3aaf2 driver: flash: Add Set/ Get write protect function
Add Set_WP function to set SPI flash WP line to low
Add Get_WP function to obtain status of the SPI flash WP line

Signed-off-by: Benson Huang <benson7633769@gmail.com>
2025-05-28 08:14:27 +02:00
Tony Han
cc206e05b9 drivers: mfd: add FLEXCOM drivers for Microchip SAM devices
The FLEXCOM offers several serial communication protocols that are
managed by the three sub-modules USART, SPI, and TWI (I2C).

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-05-28 08:14:08 +02:00
Tony Han
8f5a0559c6 drivers: clock_control: microchip: add drivers for sama7g5 PMC
Initialize the configurations for PMC driver.
Add implement of the API for PMC clocks.

Signed-off-by: Tony Han <tony.han@microchip.com>
2025-05-28 08:14:08 +02:00
Alain Volmat
5d10955863 video: common: add checks of frame interval values
Add checks regarding specific values (numerator / denominator) not being
0 for frame intervals.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-05-28 05:54:15 +02:00
Alain Volmat
08df2fd92e video: common: add __ASSERT_NO_MSG in video api function entry
Protect video API functions via __ASSERT_NO_MSG call to ensure that
required pointers are valid when entering functions.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-05-28 05:54:15 +02:00
Phi Bang Nguyen
66e8a6f873 drivers: video: Combine some API function pointer types
Some API function pointer types such as set/get_format(),
set/get_frmival() are indentical. Combine them to save some spaces.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-05-28 01:46:32 +02:00
Jilay Pandya
2ef1558896 drivers: stepper: add missing include guard
Add missing include guard in drv84xx pubic header

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2025-05-27 17:56:13 +02:00
Flavio Ceolin
437b56d22e pm: device_runtime: Make async optional
Async now uses its own work queue, which means it consumes more
resources. Since not all applications need the async API, we can make
it optional without any penalty for those applications.

Signed-off-by: Flavio Ceolin <flavio@hubblenetwork.com>
2025-05-27 14:45:07 +02:00
Neal Jackson
d9be126eca mgmt: hawkbit: add check for valid domain name length
This commit adds a `strnlen` length check for `server_addr` to ensure that
it will not be truncated and result in a silent failure. Instead, the
call to `hawkbit_set_config` will return -EINVAL if the supplied
`server_addr` is too long for the internal buffer.

Signed-off-by: Neal Jackson <neal@blueirislabs.com>
2025-05-27 11:50:52 +02:00
Jianxiong Gu
b25bdc4fa7 usbc: tcpc: Update set_drp_toggle function
Updated set_drp_toggle to handle differences in TCPCI revisions.
Added a macro for TCPCI revision and read it from the chip register
during initialization.

Signed-off-by: Jianxiong Gu <jianxiong.gu@outlook.com>
2025-05-27 11:50:29 +02:00
Jianxiong Gu
d18308cde1 usbc: tcpc: Add generic TCPCI related functions
Add generic functions that will be common to TCPCI compliant drivers.

Signed-off-by: Jianxiong Gu <jianxiong.gu@outlook.com>
2025-05-27 11:50:29 +02:00
Jianxiong Gu
a4cf7d11a7 usbc: fix errors in TCPC_REG_PD_REV and TCPC_REG_PD_INT_REV macros
Corrected macro definitions.

Signed-off-by: Jianxiong Gu <jianxiong.gu@outlook.com>
2025-05-27 11:50:29 +02:00
Chris Friedt
13e827fe1b sys: timeutil: add missing copyright for recent changes
Add copyright for changes that were included with #90060.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-05-27 06:51:38 +02:00
Adrian Gielniewski
4d8ffcca93 net: if: Add dummy member to anonymous union in net_if_addr
When both CONFIG_NET_IPV6_DAD and CONFIG_NET_IPV4_ACD are disabled, the
anonymous union in struct net_if_addr ends up with no members, which
results in a different struct layout between C and C++.

In C, an empty union has size 0, while in C++ it has size >=1, which
shifts the offsets of the following fields.

Add a 1-byte dummy member to the union to ensure consistent layout
across both compilers.

Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
2025-05-26 23:35:51 +02:00
Lars-Ove Karlsson
64ac57abcb arch: arm: Added IAR support to ARM irq header macros
Added IAR support to the macros ARCH_ISR_DIAG_OFF and
ARCH_ISR_DIAG_ON and updated the IAR warning macros.

Signed-off-by: Lars-Ove Karlsson <lars-ove.karlsson@iar.com>
2025-05-24 18:04:20 +02:00
Lars-Ove Karlsson
8cfd84986d arch: arm: mpu: Fix alignment check for iccarm
The IAR C/C++ compiler can't resolve a cast on a pointer
to a constant expression. This is used in the
_ARCH_MEM_PARTITION_ALIGN_CHECK macro.

This fix checks if an IAR compiler is used and disables the
start-alignment check if it is.

This was already fixed for v7 in rev d34d554d.

Signed-off-by: Lars-Ove Karlsson <lars-ove.karlsson@iar.com>
2025-05-24 18:04:09 +02:00
Robert Lubos
3572c9f825 net: http: client: Allow to abort download from response callback
Update the response callback function signature to allow the callback to
return an error code, which in turn will cause the HTTP client to abort
the download.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-05-23 17:20:24 +02:00
Rodrigo Peixoto
c71f51c829 api: zbus: Make zbus a stable API
Make zbus stable API since it fulfills all the requirements that
makes an API stable.

Signed-off-by: Rodrigo Peixoto <rodrigopex@gmail.com>
2025-05-23 15:30:48 +02:00
Chris Friedt
d3ec91674a sys: timeutil: check for 32-bit time_t to avoid warning (part 2)
Same error had to be fixed in the branch where optimizations were done.

This is probably a good example of where using `if (IS_ENABLED()) ...`
is a better choice than using `#ifdef`. Because the compiler would have
caught this error last time as well.

Anyway, same problem - different line(s)!

A warning was propogated to error when building for
native_sim/native.

```
timeutil.h:682:17: error: result of comparison of constant \
  -9223372036854775808 with expression of type '__time_t' (aka 'long') \
  is always false [-Werror,-Wtautological-constant-out-of-range-compare]
timeutil.h:680:17: error: result of comparison of constant \
  -9223372036854775808 with expression of type '__time_t' (aka 'long') \
  is always false [-Werror,-Wtautological-constant-out-of-range-compare]
```

This is due to the issue described in #90029.

Add workarounds for `timespec_to_timeout()` and `timespec_negate()`
until 90029 is resolved.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-05-23 14:04:53 +02:00
Veijo Pesonen
68f8c1b256 toolchain: gcc: ramfunc with Clang
With Clang you can't set long_call attribute on function basis. Instead
of converting all calls to long calls let the linker create veneers when
necessary.

Signed-off-by: Veijo Pesonen <veijo.pesonen@alifsemi.com>
2025-05-23 09:37:16 +02:00
Chris Friedt
d61a7a80ad sys: timeutil: check for 32-bit time_t to avoid warning
A warning was propogated to error when building for
native_sim/native.

```
timeutil.h:519:17: error: result of comparison of constant \
  -9223372036854775808 with expression of type '__time_t' (aka 'long') \
  is always false [-Werror,-Wtautological-constant-out-of-range-compare]
```

This is due to the issue described in #90029.

Add workarounds for `timespec_to_timeout()` and `timespec_negate()`
until 90029 is resolved.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-05-23 09:36:41 +02:00
Chris Friedt
21b8bd1ba1 sys: timeutil: add utility functions for struct timespec
Add a number of utility functions for manipulating struct timespec.

* timespec_add()
* timespec_compare()
* timespec_equal()
* timespec_is_valid()
* timespec_negate()
* timespec_normalize()
* timespec_sub()
* timespec_from_timeout()
* timespec_to_timeout()

If the `__builtin_add_overflow()` function is available, then the
API is mostly branchless, which should provide decent performance on
systems with an instruction cache and branch prediction. Otherwise,
manually written alternatives exist that are also perhaps more
readable.

The two functions at the end convert time durations between
representation as `struct timespec` and `k_timeout_t`.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-05-22 23:57:17 +02:00
Chris Friedt
246c65bfe9 timeutil: correct position of doxygen end-group comment
swap the relative position of the __cplusplus closing
bracket and the doxygen end-group comment.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2025-05-22 23:57:17 +02:00
Joel Holdsworth
8b5fe624e2 include: usb_ch9: ensure packing of usb_setup_packet
struct usb_setup_packet represents the setup data payload of a USB control
message which is exactly 8-bytes in length.

On a legacy build of GCC 4.1.2 for an OpenRISC-like architecture it was
found that the compiler added padding after the bmRequestType anonymous
union, and subsequently the bRequest field causing the structure to be
padded to 12-bytes in length with the fields incorrectly laid out.

This patch corrects the issue by applying the __packed attribute to the
anonymous union. This corrects the issue.

The __packed attribute is also applied to the outer structure for the sake
of consistency.

Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
2025-05-22 20:57:47 +02:00
Alain Volmat
f6a5aa0117 dts: bindings: addition of RaspberryPi CSI 22 pins camera connector
Add RaspberryPi CSI 22 pins camera connector description.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-05-22 20:56:38 +02:00
Jonathan Nilsen
51609f0380 drivers: firmware: nrf_ironside: add IRONside update service
Add an IPC service API for triggering updates of the Nordic IRONside SE
firmware using the IRONside call module.

Co-authored-by: Håkon Amundsen <haakon.amundsen@nordicsemi.no>
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-05-22 16:17:35 +02:00
Sebastian Bøe
14a47cbe05 drivers: firmware: nrf_ironside: add IRONside CPUCONF service
Add an IPC service API for booting local domain cores.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Signed-off-by: Jonathan Nilsen <jonathan.nilsen@nordicsemi.no>
2025-05-22 16:17:35 +02:00
Mark Wang
36bdc6c502 bluetooth: pairing_accept's feat parameter is NULL in BR/EDR SSP case
Add description in the callback definition.

Signed-off-by: Mark Wang <yichang.wang@nxp.com>
2025-05-22 16:17:29 +02:00
Anas Nashif
d8c8333917 toolchain: do not redefine __fallthrough
Do not redefine __fallthrough if already defined by the c library.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-05-22 16:17:12 +02:00
Raffael Rostagno
d8c6376030 soc: esp32c6: i2s: Add support
Add i2s support to ESP32-C6.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-05-22 15:25:12 +02:00
Raffael Rostagno
fb2b48fe41 drivers: pcnt: esp32c6: Add support
Add PCNT support to ESP32-C6.

Signed-off-by: Raffael Rostagno <raffael.rostagno@espressif.com>
2025-05-22 15:23:31 +02:00
Robert Lubos
2bb9aef4b1 net: sockets: tls: Add new option to register certificate verify cb
Add new TLS socket option, TLS_CERT_VERIFY_CALLBACK, which allows to
register an application callback to verify certificates obtained during
the TLS handshake.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-05-22 13:44:43 +02:00
Robert Lubos
887e8e0e7e net: sockets: tls: Add new option to retrieve cert verification result
Add new TLS socket option, TLS_CERT_VERIFY_RESULT, to obtain the
certificate verification result from the most recent handshake on the
socket. The option works if TLS_PEER_VERIFY_OPTIONAL was set on the
socket, in which case the handshake may succeed even if certificate
verification fails.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-05-22 13:44:43 +02:00
Yau-ming Leung
39923e3e19 drivers: icm42688: pin9 function
PIN9 of an ICM42688 can be configured as an interrupt output, external
clock input or frame sync output. Pin function can now be set via a sensor
attribute.

Signed-off-by: Yau-ming Leung <ymleung314@gmail.com>
2025-05-22 11:31:41 +02:00
Philipp Steiner
9a8e4663ac drivers: fuelgauge: Add missing property values
Adds missing property values for battery connect and present state

Signed-off-by: Philipp Steiner <philipp.steiner1987@gmail.com>
2025-05-22 04:51:27 +02:00
Peter van der Perk
49e33d38c1 drivers: sensor: qdec_tpm: Add QDEC support for NXP TPM
Allows to run the NXP Timer/PWM Module (TPM) in Quadrature
Decoder Mode.

Signed-off-by: Peter van der Perk <peter.vanderperk@nxp.com>
2025-05-22 02:21:39 +02:00
Keith Packard
627f0ef565 posix: Use picolibc's limits.h when building POSIX code
When building POSIX code, we need to use picolibc's limits.h instead of
manually defining the POSIX values. This avoids duplicate definitions of
these symbols.

Signed-off-by: Keith Packard <keithp@keithp.com>
2025-05-22 02:21:01 +02:00
Francois Ramu
4bb618c66f drivers: clock control: stm32H7RS has a PLL2 & 3 or HCLK5 output
Add the definitions of the PLL2 and PLL3 outputs for the stm32H7RS mcus
and the HCLK 5 which is clock source for the XSPI instance.
and other HCLKn for other peripherals.

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-05-21 17:35:06 +02:00
Alberto Escolar Piedras
448eac13d4 soc/ambiq/apollo5x: Fix code compliance issues
Fix issues detected by checkpatch

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2025-05-21 12:35:28 +02:00
Markus Lassila
5357013768 modem: backend: uart: Alignment check to recv buf
Receive buffer must be aligned to word when
CONFIG_MODEM_BACKEND_UART_ASYNC_HWFC=y is set.

Signed-off-by: Markus Lassila <markus.lassila@nordicsemi.no>
2025-05-21 12:34:44 +02:00
Vit Stanicek
37ec78f3dc drivers: misc: Add nxp,rtxxx-dsp-ctrl
Add the nxp,rtxxx-dsp-ctrl driver.

Responsibility of this driver is to load code executed by Xtensa-family
cores on NXP i.MX RTxxx microcontrollers and to control their run.

Signed-off-by: Vit Stanicek <vit.stanicek@nxp.com>
2025-05-21 12:34:32 +02:00
Saravanan Sekar
258cc7e9cf drivers: pinctrl: mspm0: Add a pinctrl driver for TI MSPM0
Added a pinctrl driver support for MSPM0 Family.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
Signed-off-by: Jackson Farley <j-farley@ti.com>
2025-05-21 08:04:32 +02:00
Saravanan Sekar
51bb5ddde4 drivers: clock: ti: Add initial support TI MSPM0 clock module
Add initial support TI MSPM0 clock module

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
Signed-off-by: Jackson Farley <j-farley@ti.com>
2025-05-21 08:04:32 +02:00
Sai Santhosh Malae
dcdc8e8a55 drivers: i2s: siwx91x: I2S clock initialization for siwx91x
Clock driver changes required for initializing the I2S clock
for the siwx91x driver

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-05-20 15:24:50 +02:00
Robert Lubos
011f2bc458 net: conn_mgr: Fix disconnect with CONN_MGR_IF_NO_AUTO_DOWN unset
Connection manager enforces non-blocking disconnect() behavior, yet in
case CONN_MGR_IF_NO_AUTO_DOWN flag is not set, it'd put the interface
down right after, disrupting the disconnect process.

As putting the interface down can be handled in the corresponding event
handler as well, when the interface is actually disconnected, remove the
conn_mgr_conn_if_auto_admin_down() call from conn_mgr_if_disconnect().
To make this work with persistence flag, introduce a new internal flag
indicating that the interface is in active disconnect.

Finally, since it isn't really necessary that disconnect() API call is
non-blocking, remove that requirement.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-05-19 16:37:07 +02:00
Anas Nashif
2aacbcaab5 style: add missing curly braces in if/while/for statements.
Add missing curly braces in if/while/for statements.

This is a style guideline we have that was not enforced in CI. All
issues fixed here were detected by sonarqube SCA.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2025-05-17 14:10:33 +02:00