Commit graph

25,525 commits

Author SHA1 Message Date
Phi Bang Nguyen
c95387a815 drivers: video: Add video query control API
Application can query information about a control given the control id,
the framework fill the rest of the structure. Application can also
enumerate all kinds of device's supported controls by iterating with
VIDEO_CTRL_FLAG_NEXT_CTRL on the same API.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-04-21 20:03:31 +02:00
Phi Bang Nguyen
135528a1be drivers: video: Implement video control framework
Implement the video control framework with the following features:

- Drivers initialize the control with a valid value range at boot which
  guides the application developer and the framework. Hence, the video
  framework could do all common works for drivers e.g., sanity check.

- Controls need to be cached to memory. Video framework handles
  get_ctrl(), drivers don't need to implement this API. It is because
  reading control value directly from registers are not only inefficient
  but also sometimes impossible, e.g. controls that scatter through
  several registers. Only "volatile" control needs to be updated at
  runtime.

- Only the devices (e.g., sensors) owning the controls need to
  implement set_ctrl(). Other devices of the pipeline do not need to
  propagate set_ctrl() and hence, do not need to implement this API

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-04-21 20:03:31 +02:00
Phi Bang Nguyen
2b46cc0b78 drivers: video: Introduce video device structure
Introduce a new video device structure representing a device in a
video pipeline. Each video device embeds a pointer to its "source"
device and other "video" characteristics.

This structure give the video framework an access to all video features
of the device and a hierachical view of the video pipeline that the
device belongs to.

Signed-off-by: Phi Bang Nguyen <phibang.nguyen@nxp.com>
2025-04-21 20:03:31 +02:00
Titan Chen
5179463750 drivers: timer : fix rtmr and slow timer.
RTMR use slow timer be the busy_wait timers,
only ARCH_HAS_CUSTOM_BUSY_WAIT if slow timer disabled.

Signed-off-by: Titan Chen <titan.chen@realtek.com>
2025-04-21 12:42:28 +02:00
Hu Dou
25564f73dc drivers: i3c: stm32: fix clock init for i2c fast mode plus
The logic of clock initialization for i2c fast mode (FM) and fast
mode plus (FMP) is as follows:
 1 compute how many system clock cycles for SCL to be low
 2 compute how many system clock cycles for SCL to be high by
   subtracting the low duration computed above from the SCL period
 3 verify the high duration computed in 2 is larger than a minimum
The bug is that the step 3 for the FMP is compared with the
minimum value for FM, and causes it to fail.

The fix corrects the bug.

Signed-off-by: Hu Dou <hugh.dou@gmail.com>
2025-04-21 12:42:01 +02:00
Fin Maaß
1ace896425 ethernet: dwc_xgmac: use phy api correctly
use phy_configure_link() instead of phy_api->cfg_link().

Signed-off-by: Fin Maaß <f.maass@vogl-electronic.com>
2025-04-18 17:47:14 +02:00
Tim Pambor
d68929c64a drivers: flash_stm32_xspi: fix DT accessor for flash size
The flash size is the second part (size) of the first reg value, not the
first part (address) of a nonexistent second reg value.

Based-on-patch-by: Armin Brauns <armin.brauns@embedded-solutions.at>
Signed-off-by: Tim Pambor <tim.pambor@codewrights.de>
2025-04-18 12:36:20 +02:00
Tom Chang
eb5597e90a drivers: espi: npcx: ensure the host receives the value from eSPI VW
This commit adds an option to verify weather the host has read the value
after the wire 3-0 bits have been updated.

Signed-off-by: Tom Chang <CHChang19@nuvoton.com>
2025-04-18 10:40:23 +02:00
Dipak Shetty
8f6b0b2e2e drivers: stepper: refactor stepper move_to and move_by calls
Refactored stepper move_to calls and move_by calls.
Now, relative movement required or absolute target position
is calculated and then redirected to move_by or move_to calls
respectively.

Signed-off-by: Dipak Shetty <shetty.dipak@gmx.com>
2025-04-17 21:17:55 +02:00
Andrei-Edward Popa
e4c2cecb7d drivers: i2c: added wch i2c driver
added i2c driver for wch platforms

Signed-off-by: Andrei-Edward Popa <andrei.popa105@yahoo.com>
2025-04-17 21:17:06 +02:00
Ryan McClelland
3932794aee drivers: i3c: shell: add direct rstdaa shell command
This adds a shell helper for a direct rstdaa for I3C v1.0 devices

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-17 21:16:45 +02:00
Ryan McClelland
c0503597ba drivers: i3c: add rstdaa direct helper
In I3C v1.0, there was a RSTDAA direct CCC. It is deprecated in I3C v1.1
and later. This adds a CCC helper for it.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-17 21:16:45 +02:00
Ryan McClelland
2e8c911fa3 drivers: i3c: add v1.0 support flag
This adds a v1.0 support dts flag for devices. This also makes it so it
doesn't try to send a GETCAPS (GETHDRCAP) ccc if this flag is set and it
doesn't support any HDR modes.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-17 21:16:45 +02:00
Jérôme Pouiller
8e5c95ed4b drivers: dma: siwx91x: Allow static allocation of DMA channel descriptors
Some instances of DMA (dma0) can use the normal sram to store their
descriptors. In this case, it makes sense to allow the linker to
allocate the memory rather than tweaking the memory layout.

So, if the attribute silabs,sram-region is not defined, use a statically
allocated buffer.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-04-17 17:23:32 +02:00
Jérôme Pouiller
832a006806 drivers: dma: siwx91x: Early init is not required
DMA can be initialized with the other devices. The user only need to the
ensure CONFIG_DMA_INIT_PRIORITY is less than the DMA consumers.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-04-17 17:23:32 +02:00
Jérôme Pouiller
164bbdf294 drivers: dma: siwx91x: Use DT to declare descriptors
Silabs siwx91x hardware use specific memory areas to store descriptors
for DMA requests. These areas are tightly coupled between the CPU and
the hardware. This helps in reducing the wait cycles.

Until now these addresses was also hard coded in the DT and in the
linker script. This patch leverage the zephyr,memory-region driver to
centralize the information in the DT.

Then, with this new implementation, the memory mapping is easier to
understand for the reader.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-04-17 17:23:32 +02:00
Maochen Wang
90cd350c5a drivers: serial: fix console hang when waken up from PM3
The console can't input when waken up from PM3, as get the wrong
usart_intenset when process PM_DEVICE_ACTION_TURN_ON and the
USART interrupt is not enabled. Only saving usart_intenset after
PM action of PM_DEVICE_ACTION_TURN_OFF can fix this issue.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-04-17 09:06:38 +02:00
Tim Lin
db4344b06b drivers/i2c: ite: Use i2c_bitbang API for bus recovery
Replace the manually implemented GPIO-based I2C recovery logic
with Zephyr's i2c_bitbang API.

Signed-off-by: Tim Lin <tim2.lin@ite.corp-partner.google.com>
2025-04-17 09:06:29 +02:00
Hao Luo
6f4b92d64d soc: ambiq: Optimize the inclusion relationship of header files
Optimized the inclusion relationship of header files

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-04-17 09:06:18 +02:00
Ryan McClelland
2c66a2adc0 drivers: i3c: add i3c controller and target kconfigs
I3C can contain a lot of features that may be unused. Add Kconfigs for
enabling controller and/or target code. Choosing just one can reduce
the code size footprint.

Signed-off-by: Ryan McClelland <ryanmcclelland@meta.com>
2025-04-17 09:05:36 +02:00
Aditya Bhutada
2c36616dd2 drivers: espi: espi_mchp_xec: Fix the VW change check time
Adjusted the VW change check timings:
- Polling time changed from 100 uSec to 1 uSec.
- Timeout value changed from 10 mSec to 1 mSec.

This is to achieve the lowest possible pulse width for SCI VW in S0,
while ensuring that the VW change check is still reliable for S0iX
where SoC may take longer to process upstream events.

Also added -ETIMEDOUT error when failure.

Signed-off-by: Aditya Bhutada <aditya.bhutada@intel.com>
2025-04-17 00:57:28 +02:00
Mika Braunschweig
d19c499037 drivers: interrupt-controller: vim: Compare interrupt numbers
To avoid misconfigurations a comparision has been added which compares the
amount of reported interrupts from the VIM interrupt controller with the
configured number of interrupts via Kconfig.

Signed-off-by: Mika Braunschweig <mika.braunschweig@siemens.com>
2025-04-17 00:56:59 +02:00
Mika Braunschweig
2b7db7f395 drivers: interrupt-controller: vim: Fix wrong address
On startup the VIM interrupt controller driver had a sys_read32 call with a
bitmask instead of an address. This has been fixed.

Signed-off-by: Mika Braunschweig <mika.braunschweig@siemens.com>
2025-04-17 00:56:59 +02:00
Julien Panis
45895ecfea drivers: spi: Add support for cc23x0 SPI
Add support for SPI to cc23x0 SoC. Only controller mode is implemented.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
Signed-off-by: Stoyan Bogdanov <sbogdanov@baylibre.com>
2025-04-17 00:55:56 +02:00
Anders Nielsen
b2b597aa6e drivers: stepper: adi_tmc: adi_tmc50xx_stepper_controller.c
Replace stall guard retry error log on EAGAIN with enable/disable info log.
Log position, sg result and sg status on each rampstat_work_handler() call.
Treat only negative return values from tmc_spi_write_register() and
tmc_spi_read_register() as an error.

Signed-off-by: Anders Nielsen <anders.nielsen@prevas.dk>
2025-04-16 20:37:04 +02:00
Jukka Rissanen
f1c83bca8f drivers: nxp: wifi: Disable softap mode by default
Do not enable CONFIG_NXP_WIFI_SOFTAP_SUPPORT by default as
that should be let for the user to decide whether the AP
mode is compiled or not.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-04-16 20:36:37 +02:00
Hao Luo
a499afde23 drivers: pinctrl: Update ambiq nce definitions in pinctrl
Updated nce definitions in pinctrl structure to be consistent
with ambiq HAL.

Signed-off-by: Hao Luo <hluo@ambiq.com>
2025-04-16 17:07:51 +02:00
Valerio Setti
65a7e79eab drivers: charger: add charger support in X-Powers AXP2101
AXP2101 is MFD device. Zephyr already support the regulator part. This
commit introduces intial support for the charger one.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2025-04-16 17:07:20 +02:00
Ravi Dondaputi
ba5b897cb6 wifi: nrf_wifi: Add control pool specific APIs
Memory allocations in HAL are using data pool. These operations
are in control plane. Add APIs for allocation/free operations on
control pool.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2025-04-16 14:51:59 +02:00
Huaqi Fang
a7f9ebe9d5 driver: interrupt_controller: intc_clic: support 32 and 64 bit riscv cpu
This patch is used to provide clic(eclic) in 64 bit riscv cpu support,
since in 64 bit riscv cpu, the clic irq table entry is also 64 bit,
so we need to use ld/sd to do irq entry load and store

Signed-off-by: Huaqi Fang <578567190@qq.com>
2025-04-16 08:10:47 +02:00
Derek Snell
331e0cef3f drivers: i2s_mcux_sai: control MCLK direction with DT property
For the SAI peripheral, the MCLK signal input/output direction is
independent from the TX or RX bit clocks directions (TCR2[BCD] and
RCR2[BCD]). Introduces mclk-output property.

Signed-off-by: Derek Snell <derek.snell@nxp.com>
2025-04-16 08:09:41 +02:00
Chaitanya Tata
5293155588 drivers: nrf_wifi: Fix log level of a print
This is just for developers, so, convert to a debug.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-04-16 01:10:37 +02:00
Chaitanya Tata
37d774e908 drivers: nrf_wifi: Fix co-ex configs
They all depends on main COEX feature flag.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-04-16 01:10:37 +02:00
Marcio Ribeiro
a5d69a5b63 drivers: i2s: esp32 fix warnings and errors due to variable declarations
Fixes warnings and errors due to misplacement of variable declarations

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2025-04-16 01:10:26 +02:00
Arnaud Pouliquen
42463cbee8 drivers: hwinfo: stm32: add support for STM32MP13
Adds the support for the STM32MP13 series to the existing STM32
Hardware Information driver.

Note that there is no  LL_GetUID_Word<x> functions for the STM32MP13
series. to allow to use HAL_GetUIDw<x> functions create macros to
fill the stm32_uid structure.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
2025-04-16 01:09:56 +02:00
IBEN EL HADJ MESSAOUD Marwa
60835568fc drivers: usb: device: resolve USB build error for STM32N6
- Removing the unused declaration of 'ret'
  in the usb_dc_stm32_init function for STM32N6.
- Ensuring the 'ret' variable is used correctly
  in the pinctrl_apply_state function call.

Signed-off-by: IBEN EL HADJ MESSAOUD Marwa <marwa.ibenelhadjmessaoud-ext@st.com>
2025-04-15 19:10:28 +02:00
Krzysztof Chruściński
e0f5241b28 drivers: serial: nrfx_uarte: Fix use of PM_DEVICE_ISR_SAFE
PM_DEVICE_ISR_SAFE shall not be used when non-asynchronous API is used
because RX is disabled in suspend action and that takes relatively
long time. In case of PM_DEVICE_ISR_SAFE it is done with interrupts
disabled. RX is not used at all if disable-rx property is set and in
that case PM_DEVICE_ISR_SAFE can be used.

Added macro which determines if ISR safe mode can be used.

Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
2025-04-15 19:09:43 +02:00
Francois Ramu
a60d7741b5 drivers: flash: stm32wba6x add flash driver support
-The stm32wba6x has Dual Bank memory. Change the flash driver
 to support this OPTion given by presence of the
 DUAL_BANK bit (21) in the FLASH_OPTR register.

-Flash erase with 2 banks: Add the control of the BKER
 bit of the FLASH_NSCR1 to select BANK1 or 2 of
 the internal flash depending
 on the page number >127 for BANK2

Signed-off-by: Francois Ramu <francois.ramu@st.com>
2025-04-15 15:33:15 +02:00
Jordan Yates
6c989dee10 wifi: nrf_wifi: add alignment requirement to buffers
The nRF lower levels (`spim_addr_check` and `qspi_addr_check`) do
address alignment validation before sending or receiving data. If the
buffer sizes are not aligned, errors like this are printed to the
console when the interface is powered up.

```
<err> : spim_addr_check : Unaligned address ee0b2 2002b020 1 0 0
<err> : spim_addr_check : Unaligned address eeb3e 2002bb40 1 0 0
<err> : spim_addr_check : Unaligned address ef5ca 2002c660 1 0 0
<err> : spim_addr_check : Unaligned address f0056 2002d180 1 0 0
```

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-04-15 09:28:44 +02:00
Ruibin Chang
41bc8efbee drivers/watchdog/it51xxx: implement watchdog driver
Implement watchdog driver for ITE it51xxx series chip.

Signed-off-by: Ruibin Chang <Ruibin.Chang@ite.com.tw>
2025-04-15 09:28:19 +02:00
Jhan BoChao
482d17f235 driver: sensor: add tachometer driver for rts5912
Add tachometer driver for Realtek rts5912.

Signed-off-by: Jhan BoChao <jhan_bo_chao@realtek.com>
2025-04-15 09:28:01 +02:00
Luis Ubieda
d7ebf672bd drivers: i2c_rtio: MCUX LPflexcomm determine by inst
Determine if lpflexcomm wrapped lpi2c by instance and connect
irq differently dependending on that to support platforms with
both flexcomm wrapped and unwrapped lpi2c's.

Applying c1286a8d8d425805fcceb3b872325fb4c439a572 to RTIO version.

Authored-by: Declan Snyder <declan.snyder@nxp.com>
Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-14 23:06:53 +02:00
Luis Ubieda
c7a00248a6 drivers: i2c_rtio: Use the NXP Flexcomm driver for interrupt handling
The Low Power Flexcomm driver manages the interrupt handling
and provides an API to register interrupt callbacks.
Register the NXP LPI2C interrupt handler.

Applying dca6e64c93f26db254089f20225854bb1f8fe9b4 on RTIO-version.

Authored-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-14 23:06:53 +02:00
Luis Ubieda
797772fc41 drivers: i2c_rtio: Use flexcomm interface to manage interrupts
Some NXP SoC's have a FlexComm interface that manages the
interrupts.

Applying 482e39ea9556f53adbb7f67d0d0da3d17bbbae90 on RTIO-version.

Authored-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-14 23:06:53 +02:00
Luis Ubieda
0f0bb7e6e9 drivers: i2c_rtio: Use MCUX variations when using instance number
Update the driver to account for variations in the SDK driver
when it uses the instance number instead of the base address.

Applying 49bdcd2ef2fd5c91ab36f08d29e5183df5437843 on RTIO-version.

Co-authored-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-14 23:06:53 +02:00
Nitin Pandey
50e36095dd driver: wifi: siwx91x: Add roaming configuration
- Defined Kconfig macros for Roam config
- Added set roam configuration API call
  after BGSCAN

Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
2025-04-14 23:06:20 +02:00
Nitin Pandey
bf22b61540 driver: wifi: siwx91x: Implement scan dwell time
- Verified and configured scan
  dwell time for active, passive
  and advance scan

Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
2025-04-14 23:06:20 +02:00
Nitin Pandey
4c5dd7384b driver: wifi: siwx91x: Add support for BG Scan
- Added support for background scan
  and configured the default values
  of BG scan configuration

Signed-off-by: Nitin Pandey <nitin.pandey@silabs.com>
2025-04-14 23:06:20 +02:00
Luis Ubieda
d1b79aa5bc drivers: i2c_nrfx_twi_rtio: Fix multi-writes with OP_TRANSACTION flag
This patch establishes proper handling of RTIO OPs with multiple write
requests in the same transfer (as in: including OP_TRANSACTION flag).
An example of this is captured in test_ram_rtio_write_with_transaction
test). This patch makes that testcase pass for i2c_nrfx_twi_rtio.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2025-04-14 20:04:47 +02:00
Peter Wang
7b2c92f0a0 boards: frdm_mcxa166, frdm_mcxa276: add flash support
1. enable flash support
2. verified test/driver/flash

Signed-off-by: Peter Wang <chaoyi.wang@nxp.com>
2025-04-14 20:03:54 +02:00