Commit graph

126,787 commits

Author SHA1 Message Date
Camille BAUD
a97508cd9c dts: bindings: Add Zbit Semiconductor
Add zb prefix

Signed-off-by: Camille BAUD <mail@massdriver.space>
2025-05-01 07:15:25 +02:00
Keith Packard
f075022bec libc/picolibc: Make lock typing match between Zephyr and picolibc
Picolibc's retargetable locking is based upon having the user own the lock
type (struct __lock, along with typedef struct __lock *_LOCK_T), and then
having the picolibc internal code only refer to this type via the _LOCK_T
pointer typedef, leaving the actual struct undeclared there.

Zephyr wants to use 'struct k_mutex' for this type; the initial picolibc
port handled this by trying to redefine the picolibc locking to use 'void
*' instead of 'struct __lock *' by including '#define _LOCK_T void
*'. Which 'works' as long as the Zephyr code doesn't actually include
picolibc's sys/lock.h.

A recent picolibc change to support POSIX stdio locking has picolibc's
stdio.h including sys/lock.h, which breaks Zephyr's hack.

To fix this, create a real 'struct __lock' type as

	struct __lock { struct k_mutex m; };

Define all of the required picolibc locking API with this real type,
referring to the mutex inside without needing any casts.

This required switching the definition of the C library global lock from
K_MUTEX_DEFINE to the open-coded version, STRUCT_SECTION_ITERABLE_ALTERNATE
so that it has the correct type and still lands in the same elf section.

The only mildly inappropriate code left is that lock are allocated using
k_object_alloc(K_OBJ_MUTEX), which "works" because the size of 'struct
__lock` will exactly match the size of 'struct k_mutex' because of C's
struct allocation rules.

Signed-off-by: Keith Packard <keithp@keithp.com>
2025-05-01 07:15:16 +02:00
Jeppe Odgaard
96f51bf797 drivers: sensor: explorir_m: fix maybe-uninitialized
Fix maybe-uninitialized warning by initializing `restore-rc`.

Signed-off-by: Jeppe Odgaard <jeppe.odgaard@prevas.dk>
2025-04-30 23:03:26 +02:00
Alain Volmat
9494cf259c boards: st: stm32mp135f_dk: add the I/O expander i2c device and led 2-3
The stm32mp135f_dk board embeds an I/O expander to get access
to more I/O. Led 3 (green) and Led 4 (orange) are accessible via this
I/O expander.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
ae4358fa01 boards: st: stm32mp135f_dk: correct led_1 / led_2 polarity
blue and red leds polarity is ACTIVE_LOW hence correct the
DT to have them behave correctly.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
285d1d2529 boards: st: enable all i2c and panel available on the stm32mp135f_dk board
The stm32mp135f_dk board has 3 i2c instances enabled and feature a
480x272 panel controlled via the LTDC.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
7481187b95 dts: arm: st: mp13: add ltdc node in stm32mp135.dtsi
Add the node describing the LTDC available in the stm32mp135.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
d9b41a0a83 include: dt-bindings: clock: add LTDC specific entry for stm32mp13
The non-secure LTDC plane has its own register for clock gating hence
add an entry to control this.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
b538ba71ba dts: arm: st: mp13: add description of all i2c instances
Add description of all 5 instances (i2c1 to i2c5) available
on the stm32mp13 soc.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
9c9f526443 display: stm32_ltdc: update macro to avoid usage of legacy API
Replace the usage of __HAL_LTDC_RELOAD_CONFIG which is a legacy
API with __HAL_LTDC_RELOAD_IMMEDIATE_CONFIG

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
eaa525c2e9 clock_control: stm32: add I2C periph get_subsys_rate for mp13
Add code to handle stm32_clock_control_get_subsys_rate for all
i2c instances from I2C1 to I2C5.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
d78842a5fd modules: stm32: add DCMIPP and DDR modules found on STM32MP13XX
Addition of the DCMIPP and DDR modules.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Alain Volmat
5a672f6cf9 west: update hal_stm32 to take MP13 HAL update
Update hal_stm32 revision to include the MP13 HAL update.

Signed-off-by: Alain Volmat <alain.volmat@foss.st.com>
2025-04-30 23:03:17 +02:00
Dmitrii Sharshakov
114bc8086d Bluetooth: ISO: fix hci_le_set_cig_params validation
Sizeof of a pointer doesn't make sense here, and
e.g. on native_sim/native/64 this would fail.

Signed-off-by: Dmitrii Sharshakov <d3dx12.xx@gmail.com>
2025-04-30 23:03:07 +02:00
Daniel Leung
3cf5b0c8e8 cmake: toolchain/xcc,xt-clang: LD flag for multi-core env vars
When using one set of environment variables for multiple
cores compilation, we also need to supply the core name in
linker flags. So add that to TOOLCHAIN_LD_FLAGS.

Signed-off-by: Daniel Leung <daniel.leung@intel.com>
2025-04-30 23:02:56 +02:00
Keith Short
5615e466c9 pm: Cleanup PM stats
Convert PM stats code to use IS_ENABLED in place of #ifdefs.

Signed-off-by: Keith Short <keithshort@google.com>
2025-04-30 18:44:32 +02:00
Francois Ramu
22ca514ddc doc: release-notes-4-2: new DTS properties for the xSPI of STM32 devices
Change to apply on the DTS of STM32 soc and boards with xSPI nodes

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
95d95dc82c samples: code_relocation_nocopy: update macro for flash size and address
In case of the st,stm32-xspi-nor compatible
new property and node definitions will requires new macro
to get the external NOR flash base address and size

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
8d8b08221b boards: st: stm32H573 disco kit xspi-nor-flash DTS configuration
This PR defines the "st,stm32-xspi-nor" compatible Node
in conformance to the DTS specifications
Includes the size property (in Bits) of the external NOR device

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
6b574e6d37 boards: st: stm32N6 boards xspi-nor-flash DTS configuration
This PR defines the "st,stm32-xspi-nor" compatible Node
and the "st,stm32-xspi-psram" compatible Node
in conformance to the DTS specifications
Includes the size property (in Bits) of the external memory device

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
421c3f6325 drivers: memc: stm32 xspi driver size and address of the external PSRAM
New property of the st,stm32-xspi-psram compatible gives
the external PSRAM memory in bits.
The property of the st,stm32-xspi compatible gives
the external PSRAM memory base address

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
bee60ed906 drivers: flash: stm32 xspi driver size and address of the external NOR
New property of the st,stm32-xspi-nor compatible gives
the external NOR flash in bits.
The property of the st,stm32-xspi compatible gives
the external NOR flash base address

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
a76b784ee2 dts: arm: stm32H5 reg definition for the st,stm32-xspi compatible
The st,stm32-xspi compatible is defining the reg property
with the register address and size at first index
followed by the external memory base address and max allocated
xspi1 is addressing max 256 MBytes from 0x90000000

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
a6d652e158 dts: arm: stm32N6 reg definition for the st,stm32-xspi compatible
The st,stm32-xspi compatible is defining the reg property
with the register address and size at first index
followed by the external memory base address and max allocated
size. For the stm32N6 serie,
xspi1 is addressing max 256 MBytes from 0x90000000
xspi2 is addressing max 256 MBytes from 0x70000000

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
ef2268fea9 dts: bindings: memory controller size of the stm32 xspi psram
This PR adds the size in Bits of the PSRAM  memory
for the st,stm32-xspi-psram compatible

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Francois Ramu
ae748d08fa dts: bindings: flash controller size of the stm32 xspi nor
This PR adds the size in Bits of the flash nor memory
for the st,stm32-xspi-nor compatible

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-30 18:44:24 +02:00
Sai Santhosh Malae
8e57cc6f70 drivers: spi: siwx91x: spi_loopback test support
1. Add board config and overlay files
2. Update testcase.yaml

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-30 18:44:11 +02:00
Sai Santhosh Malae
c22cf4943b drivers: spi: siwx91x: DTS changes for siwx91x SPI driver
1. Create a YAML file for SPI node
2. Add SPI node in the siwx917.dtsi

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-30 18:44:11 +02:00
Sai Santhosh Malae
ab76a345f2 drivers: spi: siwx91x: Add siwx91x SPI primary driver
Implement SPI driver for siwx91x device

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-30 18:44:11 +02:00
Sai Santhosh Malae
8542e401a6 drivers: spi: siwx91x: SPI clock initialization for siwx91x
Clock driver changes required for initializing the SPI clock
for the siwx91x driver

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-04-30 18:44:11 +02:00
Jamie McCrae
c6eb665acf tests: lib: devicetree: devices: Add sub-partition check
Adds a sub-partition check to this test

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-04-30 18:44:06 +02:00
Jamie McCrae
320e654e99 dts: common: nordic: nrf5340: Use sub-paritions for TF-M areas
Uses sub-partitions to allow having a dedicated secure and
non-secure partition area in flash partitions, which also allows
the main application slot to be extended when TF-M is not in use

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-04-30 18:44:06 +02:00
Jamie McCrae
51cf4157e6 scripts: dts: gen_defines: Add support for fixed-subpartitions
Adds support for generating defines for this binding type

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-04-30 18:44:06 +02:00
Jamie McCrae
f85d017e61 dts: bindings: mtd: Add fixed-subpartitions binding
Adds a new binding which allows for sub-partitioning defined flash
areas

Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
2025-04-30 18:44:06 +02:00
Bartosz Miller
21f71dfab4 tests: boards: i2c: Add testing with different i2c speeds
Test with all available speeds on the given device.

Signed-off-by: Bartosz Miller <bartosz.miller@nordicsemi.no>
2025-04-30 16:27:43 +02:00
Armando Visconti
a5d3612ef3 modules/hal_st: Align to stmemsc HAL i/f v2.9.1
Align all sensor drivers that are using stmemsc (STdC) HAL i/f
to new APIs of stmemsc v2.9.1.

Requires https://github.com/zephyrproject-rtos/hal_st/pull/25

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2025-04-30 16:26:53 +02:00
Vinayak Kariappa Chettimada
5b17b5b44f Bluetooth: Controller: Fix adv aux release on insufficient resources
Fix missing adv aux release on insufficient adv data buffers
configured when starting multiple extended advertising sets.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
2025-04-30 16:26:48 +02:00
Emil Gydesen
3d9f2d17ed tests: Bluetooth: ISO: Add validation of broadcast info
Add validation of the info the application can retrieve by
calling bt_iso_chan_get_info.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
2025-04-30 16:26:39 +02:00
Guillaume Gautier
a5f979315e drivers: flash: stm32 xspi: add memmap support for n6
Add memory-mapped support for STM32N6 XSPI Flash driver.

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-04-30 16:26:28 +02:00
Guillaume Gautier
f69fcdf65f drivers: flash: stm32: remove dependeny on XIP for memory map
Remove XIP dependency for enabling memory mapping for Q/O/XSPI NOR Flash.
It is not necessary and is preventing configuring an external Flash in
memmap mode if there is no internal Flash (like on STM32N6)

Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
2025-04-30 16:26:28 +02:00
Robert Lubos
bbad01eb91 tests: net: socket: af_packet: Add more tests to verify binding
In case the receiving packet socket is not bound to any specific
interface, or is explicitly bound to "any" interface (at index 0),
it should collect packets from all interfaces. Add test cases which
verify that.

Also, if a packet socket is bound to a specific interface, it should not
receive packets from others. Add a test case to verify that as well.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Robert Lubos
6654f78376 tests: net: socket: af_packet: Remove unused param
iface parameter in setup_packet_socket() function was not used, remove
it to avoid confusion.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Robert Lubos
cd50608f24 tests: net: sockets: af_packet: Fix recvfrom DGRAM test
The recvfrom test case for DGRAM packet socket specified wrong socket
type, so RAW sockets were tested twice instead. Also, for the DGRAM
variant, the offset was not taken into account for the expected packet
length.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Robert Lubos
29a2b5c8c6 net: sockets: packet: Fix default binding order
Default binding should take place before we actually make use of the
local address when registering packet socket "connection".
Also, instead of hard coding the protocol for default binding to
ETH_P_ALL, use the protocol that the socket was created with.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Robert Lubos
c8798d017f net: sockets: packet: Make it possible to receive packets when unbound
In order to be able to receive packets on unbound packet sockets (which
should collect packet from all interfaces in such case), it's needed to
register receive callback at the socket layer as soon as the socket is
created.

In additional to that, the default binding for packet sockets need to be
revisited. Packet socket should not be bound to the default interface,
as this way the socket would only be receiving packets from that
particular interface. Instead, leave the interface unspecified in such
case.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Robert Lubos
cd0b195b00 net: connection: Make it possible to update local address
Allow to update the local address on a registered connection when
rebinding.

This is needed for packet sockets, as by default packet socket
will be bound to "any" interface (interface index 0), and interface
index is part of the local address registered for packet socket.
In order to be able to explicitly bind to a specific interface later, it
needs to be possible to update the local address registered for the
connection, as we need to update the interface index, which is used
by net_conn_packet_input() for packet filtering.

Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
2025-04-30 16:26:16 +02:00
Benjamin Cabé
6c788e139e fatfs: add support for mmc disks when generating FF_VOLUME_STRS
add zephyr,mmc-disk's disk names as they were missing causing fatfs to
be unusable on boards that had otherwise valid DT configuration for
the mmc disks.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-30 16:26:10 +02:00
Benjamin Cabé
f797d0dc26 boards: mm_feather: add missing mmc node
Add missing mmc node to the mm_feather board, and properly
set disk-name for it.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-04-30 16:26:10 +02:00
Lyle Zhu
cd43e03bbe Bluetooth: classic: shell: Support L2CAP channel seg_recv
Add the callback function `seg_recv` if the configuration
`CONFIG_BT_L2CAP_SEG_RECV` is enabled.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-30 14:00:06 +02:00
Lyle Zhu
df1e2264ff Bluetooth: Classic: L2CAP: Fix seg_recv cannot work issue
When the L2CAP channel connection is in none basic mode, the
`seg_recv` cannot work properly if the configuration
`CONFIG_BT_L2CAP_SEG_RECV` is enabled. And the L2CAP channel
connection will be broken incorrectly.

Check whether the received data len exceeds the SDU length if the
`SAR` is `BT_L2CAP_CONTROL_SAR_END` or `BT_L2CAP_CONTROL_SAR_CONTI`.

And check whether the SDU length is valid if the `SAR` is
`BT_L2CAP_CONTROL_SAR_UNSEG` or `BT_L2CAP_CONTROL_SAR_START`.

Signed-off-by: Lyle Zhu <lyle.zhu@nxp.com>
2025-04-30 14:00:06 +02:00