Commit graph

23353 commits

Author SHA1 Message Date
Silicon Signals
ba36bf6c0a audio: codec: Add driver for MAX98091 codec
This patch adds a minimal driver for the MAX98091 audio codec.
Currently, playback functionality is supported.

Co-developed-by: Rutvij Trivedi <rutvij.trivedi@siliconsignals.io>
Signed-off-by: Rutvij Trivedi <rutvij.trivedi@siliconsignals.io>
Co-developed-by: Tarang Raval <tarang.raval@siliconsignals.io>
Signed-off-by: Tarang Raval <tarang.raval@siliconsignals.io>
Signed-off-by: Silicon Signals <siliconsignalsforgit@gmail.com>
2025-06-11 16:17:08 -07:00
Julien Panis
e0f02d93a6 drivers: crypto: cc23x0: Add support for DMA mode
Two DMA channels are assigned to AES channels A and B respectively.
Each channel A/B has an interface to control the conditions that will
generate requests on the related DMA channel: trigger condition,
R/W address, and DMA done action.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-06-11 16:06:55 -07:00
Matthias Ringwald
b67b5c5dc1 bluetooth: cyw43xxx: support newer PatchRAM files
The CYW43xxx for Infineon Controllers stops after the first LauncRAM
command. Newer Controllers like the CYW5557x update the firmware in
multiple stages, which is supported by this commit.

Signed-off-by: Matthias Ringwald <matthias@ringwald.ch>
2025-06-11 16:04:56 -07:00
Fin Maaß
f569bb523d drivers: ethernet: phy_mii: restart autoneg after phy_configure_link
make sure that autonegotiation is restarted, after
changing the speeds. Also make sure to only write
the changed registers, as mdio is pretty slow.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:21:21 -07:00
Fin Maaß
b1483a69d6 drivers: ethernet: phy_mii: correct indentation
correct indentation

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:21:21 -07:00
Fin Maaß
ed4d421ace drivers: ethernet: remove phy related configs from eth config
remove phy related configs from eth config.
phy related configs chould go directly into the phy.
Most ethernet drivers didn't support the now removed
functions yet. Users should instead use `phy_configure_link()`
together with the `net_eth_get_phy()` function.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:17:37 -07:00
Fin Maaß
c169ac07a0 drivers: ethernet: remove get configs that are unused
remove get configs that are unused by the
ethernet mgmt api.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-06-11 10:17:37 -07:00
Matthias Ringwald
e50f03404e bluetooth: cyw43xxx: support autobaud feature
Newer AIROC controllers like the CYW55573 don't support changing the
baudrate in Download Mode. However, a higher baud rate can be used
directly to sent HCI Reset.

This commit adds the KConfig flag CONFIG_AIROC_DOWNLOAD_MODE to enable
the new behaviour.

Signed-off-by: Matthias Ringwald <matthias@ringwald.ch>
2025-06-11 10:12:24 -07:00
sudarsan N
6d88a62417 drivers: adc: fix underflow in lmp90xxx_adc_start_read channel check
Prevent integer underflow when sequence->channels is 0.
Add an explicit check before calling find_msb_set().

Coverity CID: 487765

Signed-off-by: sudarsan N <sudarsansamy2002@gmail.com>
2025-06-11 09:55:42 +02:00
Benjamin Cabé
660d2b3e7a audio: codec: shell: adopt SHELL_HELP
have audio codec shell commands use the new SHELL_HELP macro

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 09:55:21 +02:00
Benjamin Cabé
3096ea0216 watchdog: shell: adopt SHELL_HELP
have wdt shell commands use the new SHELL_HELP macro

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 09:55:21 +02:00
Benjamin Cabé
b84294c156 w1: shell: adopt SHELL_HELP
have w1 shell commands use the new SHELL_HELP macro

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 09:55:21 +02:00
Fabio Baltieri
33f6b76110 drivers: i2c: i2c_dw: only includ cmsis_core on ARM platforms
Only include cmsis_core.h on ARM platforms, including it unconditionally
as it is now causes a build failure on all other platforms, namely x86
on the weekly build run.

Tested with:

west build -p -b up_squared/apollo_lake tests/drivers/build_all/led
(and others)

Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
2025-06-11 08:20:40 +02:00
Michael Estes
bd0efcc948 drivers: serial: uart_xlnx_uartlite: set irq flags per device tree
PG142 from AMD specifically says the uartlite IP generates a
"rising-edge sensitive interrupt" when interrupts are enabled. When
using this IP on a ZynqMP platform with
CONFIG_UART_INTERRUPT_DRIVEN enabled, the GIC does not get
configured correctly to detect these interrupts. Update driver to heed
the flags set by the interrupts property in the device tree.

Signed-off-by: Michael Estes <michael.estes@byteserv.io>
2025-06-11 08:19:28 +02:00
Benjamin Cabé
25dc5fe968 drivers: dac: esp32: avoid out-of-range channel ID
Fix channel ID check in dac_esp32_channel_setup as it was allowing to
set up a channel with ID greater than the number of channels.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 08:19:09 +02:00
Benjamin Cabé
aa8386929e drivers: intc_wch_pfic: replace shift operations with BIT macro
Updated intc_wch_pfic driver to use BIT() macro for clarity.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 08:18:58 +02:00
Benjamin Cabé
b15f942684 drivers: intc_wch_pfic: correct/optimize interrupt disable logic
The IRER registers are write-only and clear the enable bit for the
provided interrupt. Use a direct write instead of a read/modify/write
sequence to avoid generating a bogus read access and improve performance

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-11 08:18:58 +02:00
Jordan Yates
7189ade82d drivers: voltage_divider: handle ADC PM
Some ADC's draw significant power while enabled, so make sure the
driver can handle ADC's that have device runtime PM enabled.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-06-11 08:18:39 +02:00
Pete Dietl
c9e48c8c01 drivers: spi: sam0: Reset SPI peripheral on init
Reset the SPI peripheral to its default state
and register values on init by setting its SWRST bit.
This is important since the driver assumes that certain
registers are at their default values.

Signed-off-by: Pete Dietl <petedietl@gmail.com>
2025-06-11 08:15:06 +02:00
Pete Dietl
3b40a91dbc drivers: spi: sam0: Handle 32-bit length extension
The sam0 SPI driver does not ensure that it clears the 32-bit extension
option during init. The 32-bit extension option, which comprises of a field
in the CTRLC register and the LENGTH register enables better bus
utilization by allowing 32-bit writes to the SPI DATA register
(as opposed to the usual 8-bit writes). The driver breaks down if this
option is enabled by causing each intended byte of output to become
four bytes. We fix this by explicitly disabling the 32-bit extension
option in init.

Signed-off-by: Pete Dietl <petedietl@gmail.com>
2025-06-11 08:15:06 +02:00
Keith Packard
513e6ed5d2 arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS
When not using dynamic interrupt mapping, various interrupt tables are
configured to be stored in read-only memory in the linker script.. Mark
them const so that the linker doesn't complain.

This affects _sw_isr_table, _irq_vector_table, and z_shared_sw_isr_table in
arch/common along with _VectorTable in arch/arc.

Signed-off-by: Keith Packard <keithp@keithp.com>
2025-06-10 22:13:09 +02:00
Maxime Vincent
8425ad04da usb: nxp mcux: usb device remote wakeup
USB device remote wakeup implementation for NXP MCUX

Signed-off-by: Maxime Vincent <maxime@veemax.be>
2025-06-10 22:07:27 +02:00
Mike J. Chen
27975075a5 drivers: mbox_nxp_imx_mu: return negative errno value on error
Change nxp_imx_mu_send() to return a negative errno value
on error.

The fsl_mu function MU_TriggerInterrupts() returns either
kStatus_Success or kStatus_Fail, which have the value 0
or 1, respectively. kStatus_Fail should not be returned
to the upper levels, which expect negative values for
errors, so add a check for the return value of
MU_TriggerInterrupts() and return an errno value on error.

Signed-off-by: Mike J. Chen <mjchen@google.com>
2025-06-10 22:06:40 +02:00
Maksim Salau
bdd94261a5 modbus: serial: Add non-compliant mode with custom stop-bit settings
The mode is activated by the CONFIG_MODBUS_NONCOMPLIANT_SERIAL_MODE option
and allows any stop-bit setting for the serial port.

Signed-off-by: Maksim Salau <msalau@iotecha.com>
2025-06-10 12:53:23 -04:00
Jordan Yates
6e0d0f5879 spi: nrfx_spim: fix incorrect clock control logic
To determine whether device runtime PM is enabled on a device, use
`pm_device_runtime_is_enabled`. This results in the same behaviour when
`CONFIG_PM_DEVICE_RUNTIME=n`, but properly controls the clocks on a
per-instance basis when `CONFIG_PM_DEVICE_RUNTIME=y`.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-06-10 12:53:07 -04:00
Saravanan Sekar
7a3f79ef86 drivers: counter: Add a support for TI MSPM0 Timer counter
TI MSPM0 SoC series has General Purpose Timer and Advanced control timers
with Counting module, Capture block (measure input signal period/time) and
Compare block (to generate time expiry, output waveform like PWM).

Add a support for counter driver with alarm and counter top functions.

Signed-off-by: Saravanan Sekar <saravanan@linumiz.com>
2025-06-10 10:25:10 -04:00
Krzysztof Chruściński
0261d7d96d drivers: pwm: nrfx: Add option to glitch free 100% duty cycle
IDLEOUT presence in PWM means that there are 3 sources from which
PWM pin can be driven:
- GPIO setting when PWM peripheral is disabled.
- IDLEOUT setting when PWM is enabled.
- PWM Sequence when it is in use.

IDLEOUT setting cannot be changed after enabling PWM so it is
configured to the initial state of the pin. It means that if duty
cycle is 100%, GPIO output is set to 1 but initial pin state was 0
(IDLEOUT setting) there will be a glitch between disabling a PWM
sequence and disabling a PWM peripheral.

By default, PWM driver tries to disable PWM peripheral if all channels
are 0% or 100% duty cycle to safe power. When IDLEOUT feature is
present there will be a short glitch on channels with 100% duty cycle.

In order to avoid that CONFIG_PWM_NRFX_NO_GLITCH_DUTY_100 option is
added (enabled by default). When option is enabled 100% duty cycle
is achieved by PWM sequence and not by driving a GPIO pin. It will
consume more power in cases where all channels are 0% or 100% with
at least one channel set to 100% duty cycle.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-06-10 10:24:16 -04:00
Benjamin Cabé
e37631eea7 drivers: dac: max22017: return negative errno
Changed the return value for unsupported channel from ENOTSUP to -ENOTSUP

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-10 13:30:33 +02:00
Aksel Skauge Mellbye
837b0d303a drivers: clock_control: siwx91x: Fix clock init
New versions of the Wiseconnect HAL require a clock manager init
function to be called as part of clock configuration.

Without this, the default reference clock isn't configured correctly
for use with peripherals.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-06-10 13:29:06 +02:00
Jean Nanchen
bc097a6fe6 drivers: i2c: stm32: fix build error after timeout patch
Follow-up to PR #88631: fix missing variable declarations introduced in
the STM32 I2C LL driver after adding timeouts to blocking loops.

The missing declarations caused a build failure when interrupts were
disabled (CONFIG_I2C_STM32_INTERRUPT=n).

Fixes a regression introduced in #88631.

Signed-off-by: Jean Nanchen <jean.nanchen@gmail.com>
2025-06-10 12:10:59 +02:00
Leifu Zhao
3555c26053 drivers: serial: sedi: add ifndef to uart busy set
The uart_busy_set and uart_busy_clear are only used when runtime
pm is not enabled. So add #ifndef CONFIG_PM_DEVICE_RUNTIME to
enclose these two functions.

Signed-off-by: Leifu Zhao <leifu.zhao@intel.com>
2025-06-10 12:10:01 +02:00
Clément Laigle
b921db6608 driver: sensor: as6212: fix sampling frequency
AS6212 supports 0.25Hz, 1Hz, 4Hz, and 8Hz sampling frequencies, but the
current driver supports 0.25Hz, 1Hz, 4Hz, and 16Hz sampling frequencies.

Signed-off-by: Clément Laigle <c.laigle@catie.fr>
2025-06-10 12:09:51 +02:00
Julien Panis
fa199b6f6c drivers: serial: cc23x0: Add support for DMA mode
Two DMA channels are assigned to TX and RX respectively:
- A TX DMA request is asserted when there is space in the FIFO.
- A RX DMA request is asserted when data is in the FIFO.

When DMA is enabled for a peripheral, the DMA transfer completion is
signaled on the peripheral's interrupt only (here UART's interrupt).
It is not signaled on the DMA dedicated interrupt.

Also, when DMA is enabled for a peripheral, the DMA controller stops
the normal transfer interrupts for this peripheral from reaching the
NVIC (the interrupts are still reported in the interrupt registers of
the peripheral). Thus, when a large amount of data is transferred using
DMA, instead of receiving multiple interrupts from the peripheral as
data flows, the NVIC receives only one interrupt when the transfer
completes (unmasked peripheral error interrupts continue to be sent
to the NVIC).

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-06-10 12:08:22 +02:00
Julien Panis
45a8a0f0c6 drivers: adc: cc23x0: Add support for DMA mode
The ADC has a dedicated interface for communicating with the DMA.
The ADC module provides four interrupt sources (one for each
conversion result storage register) which can be configured to
source the DMA trigger.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-06-10 12:07:54 +02:00
Sai Santhosh Malae
bfe4065657 drivers: adc: siwx91x: Add siwx91x ADC driver
Implement ADC driver for siwx91x device

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-06-10 12:07:33 +02:00
Sai Santhosh Malae
9c436baf85 drivers: adc: siwx91x: Analog pin initialization
Modified pinctrl driver to configure analog pins for
ULP and HP modes.

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-06-10 12:07:33 +02:00
Sai Santhosh Malae
6d5e217262 drivers: adc: siwx91x: ADC clock initialization for siwx91x
Clock driver changes required for initializing the ADC clock
for the siwx91x driver

Signed-off-by: Sai Santhosh Malae <Santhosh.Malae@silabs.com>
2025-06-10 12:07:33 +02:00
Wenbin Zhang
b9ec30f129 drivers: spi_ll_stm32: Add LOG to indicate that DMA cannot be enabled
Add LOG to indicate the reason why DMA cannot be enabled

Signed-off-by: Wenbin Zhang <freey7955@gmail.com>
2025-06-10 08:50:49 +02:00
Benjamin Cabé
55769dc501 drivers: mdio: fix typo in macro name
s/SOC_SERIES_STM32F1X/CONFIG_SOC_SERIES_STM32F1X/

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-10 08:48:20 +02:00
sudarsan N
1d51942c50 drivers: adc: fix overflow and div-by-zero in adc_ad7124_odr_to_fs
Add check for odr <= 0 and cast odr to uint32_t before multiplication
to avoid integer overflow and division by zero.

Fixes: CID 489220

Signed-off-by: sudarsan N <sudarsansamy2002@gmail.com>
2025-06-10 08:48:05 +02:00
Tahsin Mutlugun
f7d315cf49 drivers: dma: max32: Handle channel index conversion in HAL
Handle SoC-level differences in channel numbering logic in HAL.

Signed-off-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
2025-06-10 08:47:42 +02:00
Furkan Akkiz
85ef719eb2 drivers: dma: Add a wrapper function to fix build error
For MAX32657, 'MXC_DMA_EnableInt' function requires DMA instance
and this causes build error. To fix this, created wrapper version
of this function and update driver with it.

Signed-off-by: Furkan Akkiz <hasanfurkan.akkiz@analog.com>
2025-06-10 08:47:42 +02:00
jacob kung
2fe357a592 drivers: dma: atcdmac300: add flush chain_block when Data cache is enabled
Add cache flush to ensure dma_chain is written back to memory
for DMA coherence

Signed-off-by: jacob kung <jacob.kung@egistec.com>
2025-06-10 08:47:34 +02:00
Qiankun Li
f31a411770 drivers: wifi: nxp: Modify shim driver to support btwt changes.
Align struct wlan_btwt_config_t in shim driver
with nxp wifi driver.

Signed-off-by: Qiankun Li <qiankun.li@nxp.com>
2025-06-10 08:47:25 +02:00
Van Petrosyan
8d2010e1e1 sensor: sht4x: add device power management support
Registers driver with pm_device_driver_init(). Peform
software reset on TURN_ON. Added a small delay after
power-up

Signed-off-by: Van Petrosyan <van.petrosyan@sensirion.com>
2025-06-09 16:45:30 -07:00
Benjamin Cabé
ec01159440 drivers: clock_control: wch_rcc: remove duplicate reg write
Removed a redundant register write to FLASH->ACTLR

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-09 15:03:20 -07:00
Benjamin Cabé
5cdcaf7b7c drivers: sensor: veaa_x_3: fix broken config initialization
Fixed typos in the preprocessor macros for pressure range initialization
Unfortunately this particular configuration is not covered in CI since
build_all test has pressue-range "D2" and the broken code was concerning
"D9"

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-09 15:00:26 -07:00
Quy Tran
452f2b150c drivers: spi: Update unsupported bit width in SPI driver
Add condition to check the unsupported bit width for Renesas
RA spi and spi_b driver

Signed-off-by: Quy Tran <quy.tran.pz@renesas.com>
2025-06-09 14:58:30 -07:00
Andreas Wolf
dbdfd96c61 drivers: spi: spi_pico_pio: Fix data size issue
To convey the correct data size, use the 'data->dfs' value instead
of '1' when moving the SPI context to the next buffer.

Signed-off-by: Andreas Wolf <awolf002@gmail.com>
2025-06-09 14:56:34 -07:00
Benjamin Cabé
67cfd32e04 drivers: input: esp32: fix threshold calculation
Fix a bug in the touch threshold calculation where channel_num was
incorrectly used instead of channel_sens.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-06-09 14:54:30 -07:00