Commit graph zephyr/drivers
Author SHA1 Message Date
Bartlomiej Fijal
a0dbdc2073 drivers: sensor: nxp_lpadc_temp40: fix invalid member access in init
config->adc is of type 'const struct device *', assigned via
DEVICE_DT_GET(). It has no '.dev' member — that field exists only
in 'struct adc_dt_spec'.

The LOG_ERR_DEVICE_NOT_READY() call in lpadc_temp40_init() was
using config->adc.dev, causing a compile error on all platforms
that select NXP_LPADC_TEMP40:

  error: 'config->adc' is a pointer; did you mean to use '->'?

Remove the spurious '.dev' dereference. LOG_ERR_DEVICE_NOT_READY()
accepts 'const struct device *' directly, so passing config->adc
is correct and consistent with the device_is_ready() call on the
line above.

Signed-off-by: Bartlomiej Fijal <StaryAnoda@Gmail.com>
2026-04-29 16:32:52 -04:00
Julien Racki
3a8c6f1714 drivers: flash: stm32_xspi: add page-layout fallback for XIP init path
When flash_stm32_xspi_init() returns early in the XIP fast path it
leaves layout.pages_size unset. This causes problems for code that
relies on the page layout being available, even in XIP mode. This
commit adds a fallback to ensure a valid page layout is always
available.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-04-29 16:31:40 -04:00
William Markezana
fc58a57869 drivers: sensor: bflb: add TSEN die temperature sensor
Add a die temperature sensor driver for Bouffalo Lab SoCs using
the internal TSEN peripheral integrated into the GPADC.

The driver uses the ADC subsystem for hardware initialization and
raw sample acquisition via adc_bflb_tsen_read_phase(). Temperature
is computed from two ADC measurement phases (TSVBE_LOW toggle)
using the formula: temp = (|v0 - v1| - tsen_offset) / 7.753

The TSEN calibration offset is read from efuse when available,
falling back to the default value of 2042.

Includes:
- Sensor driver at drivers/sensor/bflb/bflb_tsen/
- DT binding for compatible "bflb,tsen"
- TSEN nodes (disabled) in bl60x, bl61x, bl70x, bl70xl dtsi files

Tested on BL602, BL616, BL706, and BL704L hardware.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-29 16:31:08 -04:00
William Markezana
557ad86efc drivers: adc: bflb: add internal TSEN channel support
Add temperature sensor (TSEN) support to the BFLB ADC driver.

When input_positive is set to the TSEN channel (14), the driver
automatically configures CONFIG2 for TSEN mode: enables TS_EN,
sets VREF to 2.0V, CHOP_MODE to Vref AZ, and clears test/debug
bits. ADC calibration is skipped for TSEN channels since the
temperature formula uses raw values.

A new adc_bflb_tsen_read_phase() function is exposed for the TSEN
sensor driver to perform the two-phase measurement (TSVBE_LOW
toggle) needed for temperature calculation.

Also makes efuse calibration failure non-fatal (warning instead
of error) since some chips lack programmed trim data.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-29 16:31:08 -04:00
Bjarki Arge Andreasen
407cedc1cf drivers: spi: nrfx_spim: patch flow so bus inits before cs is set
The current flow sets CS before the SPIM peripheral actually drives
the bus. This can cause SCK to be in the incorrect initial state
dictated by CPOL. New flow enables SPIM after it has been configured,
before CS is set, and disabled is after CS is cleared, thus the bus
is driven by SPIM during the entire transfer.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
0068b2f06b drivers: spi: nrfx_spim_common: include gpiote_nrfx.h
The gpiote_nrfx.h header is needed for a macro used when handling
NRF52_ANOMALY_58

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
05d6a7f770 drivers: spi: context: calculate total rxtx before using buffers
The spi context tx_buf, rx_buf, tx_count and rx_count members are
modified during the transfer. These members are currently accessed
in spi_context_wait_for_completion when calculating the expected
timeout, which happens concurrently with the transfer being in
progress. This can lead to concurrency issues as the mentioned
members may be modified independently as they are being accessed by
the thread setting up the wait.

Remove this potential conflict by calculating the number of bytes
as part of spi_context_buffers_setup and store it, before the
transfer is started. Then used the stored value when setting up
the wait.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
ff6084fe96 drivers: spi: nrfx_spim: move update of buffer to after transfer
Update the tx and rx buffer progress after each transfer has
completed.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
ca9b6d4ab9 drivers: spi: nrfx_spim_rtio: set CS after configuring SPIM
Ensure SPI pins are correctly configured before setting CS, by
configuring the SPIM before setting CS.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
50df2d9a77 drivers: spi: spi_nrfx_spim_common.c: patch pinctrl sleep state set
The common pm_suspend implementation for the spi_nrfx_spim drivers
unconditionally sets the sleep state. The sleep state may not be
available, in which case we should not try to set it. Check
CONFIG_PINCTRL_KEEP_SLEEP_STATE and only try to set sleep state if
true.

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Bjarki Arge Andreasen
8ff7835ff1 drivers: spi: spi_nrfx_spim_rtio: update spi_rtio.h include path
The header at drivers/spi/rtio.h was moved to a relative path, and
renamed "spi_rtio.h".

Signed-off-by: Bjarki Arge Andreasen <bjarki.andreasen@nordicsemi.no>
2026-04-29 16:30:23 -04:00
Ofir Shemesh
4e59810ffa boards: nxp: add soc-nv-flash child to remaining FlexSPI boards
Add soc-nv-flash child nodes to the six NXP FlexSPI boards
not yet converted: mimxrt595_evk, mimxrt685_evk, vmu_rt1170
(mx25um51345g), and mimxrt1050_evk, mimxrt1060_evk,
mimxrt1062_fmurt6 (hyperflash).

Update FlexSPI NOR and HyperFlash drivers to read
write_block_size from the soc-nv-flash node. Remove
soc-nv-flash.yaml from hyperflash and mx25um51345g
bindings.

Signed-off-by: Ofir Shemesh <ofirshemesh777@gmail.com>
2026-04-29 16:30:04 -04:00
Julien Racki
9baa42e68f drivers: ethernet: Introduce the eth_stm32_hal2 driver
Introduce eth_stm32_hal2 driver based on HAL2.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-04-29 16:29:40 -04:00
Julien Racki
94c46e7b1d drivers: mdio: Introduce new driver for HAL2 MDIO
Introduce a new MDIO driver for STM32 HAL2.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-04-29 16:29:40 -04:00
Narek Aydinyan
6873d691ae drivers: i2c: stm32_v2: align style with clang-format
Apply the formatting-only adjustments flagged by the
ClangFormat compliance check in the STM32 I2C v2 driver.

Keep these style-only changes separate from the functional
commits in the branch.

Signed-off-by: Narek Aydinyan <aydinyan.narek@gmail.com>
2026-04-29 16:29:18 -04:00
Narek Aydinyan
a1609f6a45 drivers: i2c: stm32_v2: make target preempt check explicit
Use an explicit boolean comparison for the
target-preempt helper call in the IRQ path to address
review feedback without mixing the style-only change
into the functional commits.

Signed-off-by: Narek Aydinyan <aydinyan.narek@gmail.com>
2026-04-29 16:29:18 -04:00
Narek Aydinyan
d2d09bde31 drivers: i2c: stm32_v2: make bus wait timeout configurable
Replace the hard-coded bus-wait timeout with
CONFIG_I2C_STM32_WAIT_BUS_IDLE_TIMEOUT_USEC and use it when
waiting for the bus to become idle before starting a new
controller session with target mode attached.

Keep wait_bus_idle() thread-context only, switch timeout
tracking to k_timepoint_t, and sleep briefly between BUSY
polls.

Also document why the IRQ transfer path resets
device_sync_sem before arming a new transfer.

Signed-off-by: Narek Aydinyan <aydinyan.narek@gmail.com>
2026-04-29 16:29:18 -04:00
Narek Aydinyan
879678acbb drivers: i2c: stm32_v2: handle controller/target own-address races
In target+controller mode, the STM32 I2C v2 peripheral can
recognize its own target address while a controller transfer is
being started. If the driver stays on the controller path,
target IRQ handling may be blocked and the bus can hang.

Wait briefly for BUSY to clear before starting a new controller
session when target mode is attached. If own-address recognition
still happens after a controller request has been queued, abort
the controller path and continue immediately with target
handling.

Fold the later handover-only cleanup into this change so the
branch keeps a single commit for the controller/target race
handling behavior.

Fixes #99074

Signed-off-by: Narek Aydinyan <aydinyan.narek@gmail.com>
2026-04-29 16:29:18 -04:00
Narek Aydinyan
dd9b1122e1 drivers: i2c: stm32_v2: abort pending controller START on ADDR
In multi-master scenarios, controller mode may mark itself active before
START is actually issued. If the controller then waits for BUSY while an
ADDR event arrives in target mode, target IRQ handling can be blocked,
which may leave the bus stuck.

Abort the pending controller START when ADDR is detected so target-side
handling can proceed correctly.

Fixes #99074

Signed-off-by: Narek Aydinyan <aydinyan.narek@gmail.com>
2026-04-29 16:29:18 -04:00
Yuzhuo Liu
a3138ce417 drivers: sensor: add Realtek Bee series QDEC driver
Add QDEC driver support for Realtek Bee series SoCs,
including RTL87x2G (AON QDEC) and RTL8752H (Basic QDEC).

This driver supports:
- X, Y, and Z axis count reading
- Hardware interrupt-based event trigger

Signed-off-by: Yuzhuo Liu <yuzhuo_liu@realsil.com.cn>
2026-04-29 16:29:07 -04:00
Ramya T
3259e5d3a2 drivers: spi: sam0: Add DMA support for synchronous transfers
The SAM0 SPI driver previously supported DMA only for asynchronous
operations, which required higher-level drivers needing blocking DMA
transfers to implement workarounds. This patch extends DMA support
to the synchronous transfer path, enabling efficient blocking SPI
transactions without driver-specific hacks.

With this change, both synchronous and asynchronous SPI operations
can leverage DMA for improved performance and reduced CPU overhead.

Signed-off-by: Ramya T <ramya.t@microchip.com>
Signed-off-by: Parthiban Veerasooran <parthiban.veerasooran@microchip.com>
2026-04-29 16:28:36 -04:00
Måns Ansgariusson
794f8abe75 drivers: i2s: silabs_siwx91x: use sys_ringq instead of ring_buffer
Use the sys_ringq instead of the custom ring_buffer implementation for
SiWx91x I2S driver.
The aim is to reduce code duplication and improve maintainability.

Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-04-29 16:28:23 -04:00
Måns Ansgariusson
0339c3a79f drivers: i2s: sam_ssc: use sys/ringq.h instead of ring_buffer
The SSC I2S driver was using a custom ring buffer implementation for
buffering audio data. This commit replaces the custom ring_buffer
implementation with the sys_ringq implementation to improve
maintainability and code reuse.

Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-04-29 16:28:23 -04:00
Måns Ansgariusson
c2bc4b4864 drivers: i2s: litex: ring_buffer => ringq
Replacing the i2s_litex ring_buffer implementation with the
sys_ringq implementation to improve maintainability and code reuse.

Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-04-29 16:28:23 -04:00
Måns Ansgariusson
bde9f88ad1 drivers: console: switch from ring_buf_item to ring_buf
This commit updates the ipm_console_receiver driver to use the standard
ring_buf API instead of ring_buf_item*.

Since the ipm_console driver operates at the byte level, there is no need
to use the item-level API. This makes way for the removal of ring_buf_item
api in the future.

Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-04-29 16:28:23 -04:00
Måns Ansgariusson
f62dce2d0b drivers: input: tsc_keys: Use fifo abstraction for input events
Replace the ring buffer–based event queue with the new sys_ringq API to
simplify input event handling. The sys_ringq abstraction removes the need
for manual item size management and improves readability by removing logic
regarding item boundries.

Signed-off-by: Måns Ansgariusson <mansgariusson@gmail.com>
2026-04-29 16:28:23 -04:00
Fin Maaß
15e565514f drivers: ethernet: wifi: remove redundant net_if_carrier_on()
For ethernet and wifi drivers the carrier
is on by default, no need to set it up in the
iface init again.

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2026-04-29 11:55:10 -05:00
Zayne Stites
059fca326c drivers: usb: udc: Add Infineon vendor quirks
Add Infineon vendor quirks to the UDC DW2 implementation.  This
ties to the infineon,usbhs binding.

Signed-off-by: Zayne Stites <Zayne.Stites@infineon.com>
2026-04-29 11:53:30 -05:00
Girinandha Manivelpandiyan
394a227232 drivers: crypto: mspm0: Add support for TI MSPM0 AES module
add driver support for TI MSPM0 AES module

Introduced a hardware accelerated AES driver for the TI MSPM0
enable support for encryption and decryption using ECB and CBC mode
of operation.

Signed-off-by: Girinandha Manivelpandiyan <girinandha@linumiz.com>
2026-04-29 06:37:12 -05:00
Martin Hoff
4503dab4a5 drivers: gpio: siwx91x: enable uulp gpio wakeup interrupt feature
This patch handles UULP GPIO configuration when the GPIO_INT_WAKEUP
flag is set. It allows the interrupt to wake the device from deep sleep.
The code has been tested by configuring UULP GPIO 2 (button_0) as a
wakeup interrupt on the siwx91x_rb4338a board.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2026-04-29 06:25:46 -05:00
Chun-Chieh Li
164ad704ba drivers: usb: udc: numaker: support m335x usbd
Add support for Nuvoton NuMaker SoC series M3351 USBD

Signed-off-by: Chun-Chieh Li <ccli8@nuvoton.com>
2026-04-29 10:00:37 +02:00
Albort Xue
b64b88c434 drivers: flash: mcux_flexspi: Add support for ISSI IS25LP/WP256
Add JEDEC IDs 0x19609D (IS25LP256) and 0x19709D (IS25WP256) to the
IS25 family switch. Like other IS25 variants, dummy cycles are reset
before SFDP probe, which handles the full LUT configuration.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-04-29 10:00:20 +02:00
Sylvio Alves
e7c1ab8965 drivers: mbox: esp32: replace cross-core atomic with busy flag
The atomic_cas/atomic_set lock in shared LP RAM does not work
once RISC-V hardware atomics are used: lr.w/sc.w reservation
sets are not honored across the HP and LP harts.

Replace it with a per-direction volatile busy flag and a memory
fence. Sender claims the slot under irq_lock and returns -EBUSY
if the receiver has not consumed the previous message; receiver
clears the flag after the callback runs. Each transition has a
single writer, so no atomic is needed.

Returning -EBUSY matches the pattern used by other Zephyr mbox
drivers (ti_secproxy, renesas_ra_ipc, rpi_pico, xlnx_ipi_mailbox,
ti_omap, mhuv3, renesas_rz_mhu) and lets the caller decide the
retry policy.

Signed-off-by: Sylvio Alves <sylvio.alves@espressif.com>
2026-04-29 09:59:37 +02:00
Daniel Baluta
e1cae133a1 drivers: sdma: Fix SDMA compilation error
There is a typo in the DT_INST_IRQ_ macro. SDMA was used
until now only with HIFI4 DSP (xtensa) and for this arch
priority parameter is ignored.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2026-04-29 09:56:47 +02:00
Jordan Yates
ec6ac10de2 audio: dmic_nrfx_pdm: support gain configuration
Apply the requested stream gain to the two audio channels.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2026-04-29 09:56:14 +02:00
Julien Racki
79ce80e73c drivers: ethernet: stm32: Remove the list of enabled variants
Remove the list of supported boards from the ETH_STM32_HAL
menuconfig description.

Signed-off-by: Julien Racki <julien.racki-ext@st.com>
2026-04-28 22:08:10 +02:00
Chris Ruehl
82b898ced7 auxdisplay: tm1637: Support up to 6 digit displays
The TM1637 support up to 6 digits, or just a single one.
Therefore, update the driver and read the column count from
the device tree to set the numbers of digits in use.

Signed-off-by: Chris Ruehl <chris.ruehl@gtsys.com.hk>
2026-04-28 22:07:14 +02:00
Nikita Schewtschuk
be050ec889 drivers: modem: modem_cellular: populate IMSI and ICCID for nRF9160 SLM
The nRF9160 SLM init script does not query IMSI or ICCID. These fields
require SIM access, which is only available after the modem enters
airplane mode (AT+CFUN=4).

Add AT+CIMI (IMSI) and AT%XICCID (ICCID) to the dial script after
AT+CFUN=4, where the SIM is initialised and accessible. AT%XICCID is a
Nordic-proprietary command whose response carries a %XICCID: prefix,
distinct from the +ICCID: prefix used by other modems. Add a dedicated
xiccid_match for this response format alongside the existing iccid_match
and qccid_match definitions.

Signed-off-by: Nikita Schewtschuk <nik@schew.dev>
2026-04-28 17:53:45 +02:00
Ren Chen
124062c965 drivers: timer: it51xxx: add kconfig to select count-up in combination mode
For next-generation it51xxx series, external timers switch
from count-up to count-down when combination mode is enabled.

This change introduces Kconfig option to allow selecting
count-up mode according to hardware design.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2026-04-28 15:22:59 +02:00
Siva Subramanian Ravi Saravanan
921b4a38c7 drivers: dai: add AMD ACP SoundWire DAI
Add SoundWire Digital Audio Interface (DAI) driver for AMD
ACP 7.0 audio DSP. This enables audio streaming configuration
for SoundWire-connected audio peripherals and codecs.

Also adds DAI_AMD_SDW type to the DAI subsystem enum.

Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@amd.com>
2026-04-28 15:22:12 +02:00
Siva Subramanian Ravi Saravanan
56cec1b755 drivers: dma: add AMD ACP host and SoundWire DMA
Add DMA drivers for AMD ACP 7.0 audio DSP:
- Host DMA driver for memory transfers between system memory
  and ACP audio processing units
- SoundWire DMA driver for audio streaming over SoundWire bus

Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@amd.com>
2026-04-28 15:22:12 +02:00
Siva Subramanian Ravi Saravanan
9a9e102661 drivers: intc: add AMD ACP interrupt controller
Add interrupt controller driver for AMD ACP 7.0 audio DSP.
Supports up to 9 interrupt sources including DMA and SoundWire
peripheral interrupts via a second-level dispatch mechanism.

Signed-off-by: Siva Subramanian Ravi Saravanan <sravisar@amd.com>
2026-04-28 15:22:12 +02:00
Albort Xue
8e51e2eb10 driver: timer: mcux_lptmr: add wakeup source support
Add support for configuring the LPTMR as a wakeup source by integrating
with the WUC (Wakeup Controller) subsystem.

Signed-off-by: Albort Xue <yao.xue@nxp.com>
2026-04-28 15:21:15 +02:00
Alberto Escolar Piedras
4ab570427c sensor: pac194x: Fix multiple build warnings with clang
Fix multiple minor issues which trigger build warnings with clang,
including:
* label followed by a declaration is a C23 extension
* duplicate 'const' declaration specifier (DEVICE_API already has const)

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2026-04-28 11:18:04 +02:00
Carlo Caione
7d5a4dcb1a drivers: lora: pass modem config as const pointer
The configuration passed to lora_config() is not supposed to be modified by
the driver. Make it const to save on RAM.

Signed-off-by: Carlo Caione <ccaione@baylibre.com>
2026-04-28 00:27:18 +01:00
Stefan Gloor
ece9ac4213 drivers: pwm: add generic gpio bitbang pwm
Add a generic software PWM driver as a fallback
when no dedicated hardware PWM pins are available.
This implementation leverages a single hardware
timer interrupt as a time base to derive an
arbitrary number of software-controlled PWM channels.
The period is the same for all channels.

This enables use of LED brightness and blink APIs.
Tested on Nucleo H563ZI with this overlay:

/ {
    status_leds: status_leds {
        compatible = "pwm-leds";

        status_led_1: status_led_1 {
            pwms = <&soft_pwm 0 PWM_MSEC(10) PWM_POLARITY_NORMAL>;
            label = "1";
        };
    };

    soft_pwm: soft_pwm {
        compatible = "zephyr,pwm-bitbang";
        #pwm-cells = <3>;
        timer = <&tim6_counter>;
        pwm-gpios = <&gpiob 0 GPIO_ACTIVE_HIGH>;
    };
};

&timers6 {
    status = "okay";
    st,prescaler = <24999>;
    tim6_counter: counter {
        status = "okay";
    };
};

Assisted-by: GitHub Copilot:claude-opus-4.6
Signed-off-by: Stefan Gloor <stefan.gloor@siemens.com>
2026-04-28 00:26:06 +01:00
Wojciech Macek
2613230e73 sensor: pac194x: add driver for Microchip PAC194x power monitors
Add a comprehensive driver for the Microchip PAC194x/195x family of
multi-channel power monitors. This driver supports VBUS, VSENSE,
and power accumulation measurements.

Key features and implementation details:
- Support for PAC1941/42/43/44 (9V FSR) and PAC1951/52/53/54 (32V FSR).
- Efficient I2C handling: uses per-channel burst reads to optimize
  bus bandwidth based on enabled channels.
- Flexible Refresh Modes: introduced SENSOR_ATTR_REFRESH_MODE to
  allow users to choose between AUTO_WAIT (synchronous),
  AUTO_NOWAIT (asynchronous/latched), and MANUAL modes.
- Broadcast Support: added a force refresh command using I2C
  General Call (0x00) to synchronize snapshots across multiple
  sensors (up to 16 instances) simultaneously.
- Configurable range: support for Unipolar, Bipolar, and Bipolar
  Half FSR modes via Devicetree.

Tested on RISC-V (ESP32-C3) with 16 PAC1944 instances.

Signed-off-by: Wojciech Macek <wmacek@google.com>
2026-04-28 00:25:55 +01:00
William Markezana
ae15ea1438 drivers: flash: i2c: add BL808 compatibility
Extend flash and I2C drivers to support BL808 register base addresses
and SoC-specific configuration guards.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-28 00:25:43 +01:00
William Markezana
2b7f32de58 drivers: share BL61x drivers with BL808
Rename BL61x GPIO and pinctrl drivers to bl61x_808 variants since
BL808 shares identical register layouts. Update compatible strings,
Kconfig, CMakeLists, and BL61x device tree accordingly. Extend the
DMA and IR receiver drivers' BL61x guards to also cover BL808.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-28 00:25:43 +01:00
William Markezana
402d9ee859 drivers: clock: add BL808 clock control driver
Add clock control driver for BL808 WiFi PLL initialization, root clock
switching, and peripheral clock gating. Handles flash clock
configuration and mtimer divider adjustment for PLL-derived FCLK.

Signed-off-by: William Markezana <william.markezana@gmail.com>
2026-04-28 00:25:43 +01:00