Update hal_silabs to new HAL versions:
* SiSDK 2025.12.3
* WiSeConnect 4.0.2
This HAL update requires a minor change to the `memc` driver
for SiWx91x because an API has been renamed.
Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
For bsim targets MDK define (NRF_TIMERx) which is an address
of TIMER peripheral is not the same as register address for
timer node. Driver expects that address is set to the HW
peripheral address and it is later on converted to RAM
structure used by the bsim. Use address from the device tree
as it actually is set to the HW address, contrary to the
NRF_TIMERx macro which already points to the RAM structure
used by the simulator.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
Convert the driver clock accesses to use the new generic API, so the
driver can be used on R-Car boards generations 3, 4 and 5 without changes.
This code has been tested on a Spider S4 and on an Ironhide X5H.
Signed-off-by: Adrien Ricciardi <aricciardi@baylibre.com>
Fix more LOG_ERR_DEVICE_NOT_READY usages that were missing from
31b5866c88 for some reasons, there should be no more custom "not ready"
messages in input drivers after this.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
The I2C shell scan probes addresses with a 0-byte write.
The driver returned -EIO without touching the bus because both
tx_size and rx_size are 0. Handle tx non-NULL with tx_size 0 by
calling MasterWrite which sends START + address + STOP.
Signed-off-by: Alexpandi Muniyandi <alexpandi@linumiz.com>
Next-generation it51xxx SoCs support more than 256 irqs.
This change extends irq range up to 16 bit depend on
CONFIG_NUM_IRQS.
And the it8xxx2 SoC series only supports 8-bit irq
number size. Add irq type check assertion for this
series.
Tested with:
- it82xx2_evb/it8xxx2_evb/it51xxx_evb_it51526aw:
tests/drivers/gpio/gpio_basic_api
- native_sim/native:
tests/drivers/gpio/gpio_ite_it8xxx2_v2
Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
Extend the shared BFLB HCI driver with BL61x (BL616/BL618) support:
BL61x include paths and RF init routing through bflb_rf_init().
Kconfig adds BT_BFLB_BL61X with four controller variant choices, a
configurable PHY/RF retention memory size, and a 64 KB exchange memory
option for the BR/EDR variant.
Signed-off-by: William Markezana <william.markezana@gmail.com>
Add a driver for the HTU31D digital humidity and temperature sensor
from TE Connectivity (Measurement Specialties).
The driver implements the Zephyr sensor API with support for
SENSOR_CHAN_HUMIDITY (%) and SENSOR_CHAN_AMBIENT_TEMP (degrees C).
Measurement data is validated with CRC-8 per the datasheet.
Signed-off-by: William Markezana <william.markezana@gmail.com>
uart_cmsdk_apb_init() returns early when pinctrl_apply_state()
succeeds, because the return value check is wrong.
As a result, the rest of the UART initialization is skipped and
the device remains only partially initialized.
Ignore -ENOENT as intended, but continue init on success and
abort only on real pinctrl errors.
Signed-off-by: Andrei-Edward Popa <andreip@axonne.com>
393350fd65 made it so that the `mbedTLS`
library is only created when `CONFIG_MBEDTLS_BUILTIN`.
Before this commit, users of Mbed TLS did the following:
`zephyr_library_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS)`
If the `mbedTLS` CMake library doesn't exist but is still linked to
(as is the case when `CONFIG_MBEDTLS && !CONFIG_MBEDTLS_BUILTIN`),
the linker command is populated with `-lmbedTLS` which makes the build
fail because there is no `libmbedTLS.a` in the build.
Make it so that users of Mbed TLS only link to the `mbedTLS` CMake
library when the builtin version is used.
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
TI MSPM0 has a WWDT module to initiate a reset when correct operation of
the device has failed due to an unexpected software or system delay.
Signed-off-by: Sanjay Vallimanalan <sanjay@linumiz.com>
Signed-off-by: Jackson Farley <j-farley@ti.com>
Add missing null buffer checks in event callbacks for IN/OUT done handling,
various small fixes for halted state handling, remove some unnecessary
logging for expected failure modes, etc
Signed-off-by: Pete Johanson <pete.johanson@analog.com>
The LL_ADC_GetChannelSingleDiff function to know whether an ADC channel
is configured as differential or single-ended was not used correctly.
This lead to systematically disabling the ADC to reconfigure it, even if
the configuration was already the correct one.
Instead of returning the mode, LL_ADC_GetChannelSingleDiff returns the
channel if it is configured as differential, or 0 if it is single-ended.
Signed-off-by: Guillaume Gautier <guillaume.gautier-ext@st.com>
- As described in datasheet, MSPM0L110x has 28 pins in GPIOA.
- Also, it does not contain GPIOB and GPIOC.
Signed-off-by: Ayush Singh <ayush@beagleboard.org>
The poll_in function doesn't return any error codes related to
the transmission itself. Call 'err_check' afterwarwds to make
sure no error flags are present.
Example: in case an FIFO overrun happens, poll_in would return
no data but this command should report the error.
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
Implements a method for discarding fragmented extended advertising. In
order to acheive this, we need to consider past and future fragments
of the advertising report we discard.
The future fragments are on its way from the controller, and will result
in either a complete- or incomplete event. These are handled by tracking
the adv SID and address until the controller sends either a complete or
incomplete event. Once an advertising report is marked as discarded,
consecutive fragments will be silently discarded.
The past fragments are either already in the reassembler (in scan.c),
or on their way through the rx_queue. To handle these, and allow the
reassembler to recover from a in-progress reassembly which is discarded,
we add a work item which is rescheduled when each consecutive fragment
is received. The timeout is configurable through the new Kconfig option
`CONFIG_BT_EXT_ADV_REASSEMBLY_TIMEOUT`. On timeout, the reassembler will
change its state to discard incoming fragments from the same advertiser.
The reassembler will start assembling new fragments if it recognises a
new advertiser, or if a final fragment (either marked as complete
or incomplete) from the advertiser it is currently tracking is received.
This functionality needs to be added at a HCI driver level by using the
new `hci_ext_adv_report_process` function. It is added the the
IPC HCI driver to fixzephyrproject-rtos/zephyr#50786
Signed-off-by: Håvard Reierstad <haavard.reierstad@nordicsemi.no>
This commit dsiables alarm counter before executing callback
function. Additionally, the alarm counter (external timer 7)
ticks are limited to 3 bytes. Return errno if the configured
value exceeds this range.
Tested with: samples/drivers/counter/alarm
Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
Make the m55hp_cfg register block optional to support single-core
Alif SoCs (such as from the Balletto family) that only have the
Cortex-M55 HE subsystem. Multi-core SoCs that have both RTSS-HE
and RTSS-HP subsystems require all 7 register blocks.
Update the binding documentation accordingly.
Signed-off-by: Silesh C V <silesh@alifsemi.com>
Fix build error:
eth_nxp_imx_netc.c:304: error: too few arguments to function
'netc_eth_get_ptp_clock'
Add the missing argument tested with:
west build -p -b imx943_evk/mimx94398/m33/ddr
samples/net/ethernet/tsn-switch
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
wait_bus_idle is only used if CONFIG_I2C_TARGET is set.
Guard function in ifdef block to avoid unused function
warning.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
Used ptp_clock only when NETC_PTP_TIMESTAMPING_SUPPORT is true.
This is to keep same with driver timestamping operations code in
other places, and also to keep same with dsa core driver which uses
ptp_clock when NET_L2_PTP is true.
Signed-off-by: Yangbo Lu <yangbo.lu@nxp.com>
As pointed out in #106786, when disentangling the bitstream from the chip,
for every 8 bits, instead of sampling bit 1, 3, 5, and 7, bit 0, 3, 5, and
7 are erroneously sampled. The behavior of sampling bit 0 is undefined in
the datasheet, and causes data corruption in some cases.
This fix has been tested on actual hardware and no regression is observed.
Fixes#106786
Signed-off-by: Terry Geng <terry@terriex.com>
Avoid copying (cloning) the data to be transmitted and
just increase the reference count of the original buffer.
This is more efficient and reduces memory and CPU usage.
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
The PCA series GPIO driver was updated to allow disabling automatic
reset. This feature would enable GPIO expander ports to retain states
which could be helpful for situations where certain pins are configured
in the bootloader and their states need to be retained when switching to
application code.
Signed-off-by: Lay Desai <lay.desai@he360.com>
Consolidate the SPI_CTRLR0 INST_L/ADDR_L masking with the cmd/addr
length application into a single conditional. In standard SPI mode with
DMA, the controller still needs INST_L and ADDR_L to drive the cmd/addr
phase via scatter-gather, so only mask these fields in PIO mode.
Signed-off-by: David Jewsbury <david.jewsbury@nordicsemi.no>
Add new implementations for entropy driver and random subsystem
based on ARM64 RNDRRS and RNDR instructions.
Signed-off-by: Christoph Busold <cbusold@qti.qualcomm.com>
Add new inline function entropy_get_default_device which returns
the "zephyr,entropy" device or the architectural entropy device,
if the former is not set, and use that in all places to query the
entropy device.
This allows using architectural drivers which do not have a DT
node.
Signed-off-by: Christoph Busold <cbusold@qti.qualcomm.com>
Issue found in tcpci_tcpm_transmit_data():
1. Control messages (0 data objects) caused cnt=0, skipping the
TX buffer write entirely. Fix by gating on msg->type instead.
Fixes#105736
Signed-off-by: Way Young <wayyoung@gmail.com>
Adds a timeout which is non-0 for this driver, Kconfig based on
commit by Jordan Yates:
95d8deb572
Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
update the ieee802154 driver to be compliant
with LL update integrating 802.15.4 error code
unification change
Signed-off-by: Vincent Tardy <vincent.tardy@st.com>
Selecting MCUX_LPTMR_TIMER directly from
/chosen/zephyr,system-timer broadens the default behavior for
any SoC DTSI that now sets the chosen node. KE1xF only
intends to use LPTMR under PM, while MCX-W7xx and i.MX95 M7
still require their SoC-specific selection rules.
Keep the generic Kconfig selection policy implicit and retain
the SoC-specific enablement rules in the MCX-W7xx and i.MX95
M7 defconfigs.
This keeps the chosen-based instance selection while avoiding
unintended system timer changes outside the narrow fix scope.
Signed-off-by: Holt Sun <holt.sun@nxp.com>
The ISR was computing the receive buffer offset using the host's
msg_base and remote_ipi_id, which points to the outbound (TX) buffer.
Fix to use the remote's msg_base and host's ipi_id to correctly read
from the inbound (RX) buffer.
TX (send): off = parent_msg_base + (remote_id × BUF_STRIDE)
RX (recv): off = remote_msg_base + (host_id × BUF_STRIDE)
Signed-off-by: Harini T <harini.t@amd.com>
Make init structures static so that they are not exposed externally.
This also ensures the structures are stored in data section
Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
Signed-off-by: Harini T <harini.t@amd.com>
RV3032 PMU register should be set from DTS info, but is always being
set to 0 which prevents backup power source configuration.
Restore building PMU reg from DTS.
Signed-off-by: Jacob Schloss <jacob.schloss@suburbanmarine.io>
Set the OSPI memory mapped timeout period to avoid keeping the chip
select line asserted indefinitely after memory mapped accesses.
This is needed when OSPI1 and OSPI2 operate simultaneously with shared
IO0-IO3 and CLK lines, and both instances use memory mapped mode.
The timeout period follows the recommendation from the STM32U575xx and
STM32U585xx device errata, ES0499 section 2.6.4.
Allow dqs-port to be set to 0. The STM32 HAL uses value 0 to indicate
that the DQS port is not used.
Update the debug log printed when CONFIG_STM32_MEMMAP is not enabled,
because stm32_ospi_set_memorymap() is not called in that case.
Signed-off-by: Kirill Shypachov <kshypachov@outlook.com>
The EFM32HG (Series 0) WDOG has no IRQ support, no window mode
and no reset-disable bit.
Guard the logic with HAL feature macros and use `IF_ENABLED` with
`DT_INST_IRQ_HAS_IDX` for conditional IRQ setup.
Add the `wdog0` node to the EFM32HG device tree.
Signed-off-by: Patryk Koscik <pkoscik@antmicro.com>