Commit graph

25,525 commits

Author SHA1 Message Date
Jimmy Zheng
6658b9c02c drivers: mbox: rework andes mbox plic to leverage intc_plic driver
Andes MBOX PLIC-SW use the same hardware as intc_plic driver. Reworked
mbox_andes_plic_sw implementation to leverage the intc_plic driver.

Signed-off-by: Jimmy Zheng <jimmyzhe@andestech.com>
2024-10-23 16:53:13 +02:00
Armando Visconti
5be36eef47 drivers/sensor: lps2xdf: add ilps22qs support
The ILPS22QS is an ultra-compact piezoresistive absolute pressure sensor
which functions as a digital output barometer, supporting dual full-scale
up to user- selectable 4060 hPa. The device delivers ultra-low pressure
noise with very low power consumption and operates over an extended
temperature range from -40 °C to +105 °C.

(https://www.st.com/en/mems-and-sensors/ilps22qs.html)

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2024-10-23 16:52:57 +02:00
Armando Visconti
4c3606a3bf drivers/sensor: lps2xdf: Fix typo in Kconfig
Change I2C into I3C as it is a typo.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2024-10-23 16:52:57 +02:00
Armando Visconti
71bb3f7ade drivers/sensor: lps2xdf: add API to configure interrupt
Add a generic lps2xdf_config_int() API to configure device interrupt
mode, and implement the specific routines for lps22df and lps28dfw.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2024-10-23 16:52:57 +02:00
Armando Visconti
8fab391d3f drivers/sensor: lps2xdf: (Fix) move API inside CONFIG_LPS2XDF_TRIGGER
Move api_lps2xdf_handle_interrupt() API inside the CONFIG_LPS2XDF_TRIGGER
ifdef, because it should be defined only in that case.

Signed-off-by: Armando Visconti <armando.visconti@st.com>
2024-10-23 16:52:57 +02:00
Tomasz Moń
19955f6478 drivers: udc_dwc2: Reduce TxFIFO0 allocation size
DWC2 peripherals can have TxFIFO sizes configured to any value between
16 and 32768. The value configured during synthesis is the maximum value
the software can program. Designs that give full flexibility configure
the TxFIFO sizes to value equal to total SPRAM size.

Currently DWC2 driver does not have prior knowledge about the endpoints
used within available configurations and has to come up with TxFIFO0
value up front. The original approach was to use MAX(16, max allowed).
locations. Because DWC2 peripheral cannot have TxFIFO0 with size lower
than 16 locations, always the max allowed was used. This logic prevented
any IN endpoint other than EP0 on designs that have TxFIFO0 size set to
total SPRAM size.

Change the logic to MIN(2 * 16, max allowed) to have sufficient memory
available on flexible designs and allow simultaneous operation if
possible (i.e. when maximum TxFIFO0 size is at least 32).

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-10-23 16:51:38 +02:00
Tomasz Moń
94a6b82572 drivers: udc_dwc2: Handle IN events before OUT events
DWC2 otg OUT transfers are being used for SETUP DATA0, OUT Data Stage
packets and OUT Status Stage ZLP. On High-Speed it is possible for IN
Data Stage, OUT Status Stage ZLP and subsequent SETUP DATA0 to happen
in very quick succession, making all the three events appear at the same
time to the handler thread.

The handler thread is picking up next endpoint to handle based on the
least significant bit set. When OUT endpoints were on bits 0-15 and IN
endpoints were on bits 16-31, the least significant bit policy favored
OUT endpoints over IN endpoints. This caused problems in Completer mode
(but suprisingly not in Buffer DMA mode) that lead to incorrect control
transfer handling.

The choice between least significant bit first or most significant bit
first is arbitrary. Switching from least to most significant bit first
would have resolved the issue. It would also favor higher numbered
endpoints over lower numbered endpoints.

Swap the order of endpoints in bitmaps to have IN on bits 0-15 and OUT
on bits 16-31 to keep handling lower numbered endpoints first and
resolve the control transfer handling in Completer mode.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-10-23 16:51:02 +02:00
Johan Hedberg
393ecf4426 drivers: bluetooth: Rename Silabs HCI driver
Rename the Silabs HCI driver to hci_silabs_efr32.c to better indicate what
hardware it supports. Also rename the associated devicetree binding and
Kconfig options to be consistent with the new driver name.

Signed-off-by: Johan Hedberg <johan.hedberg@silabs.com>
2024-10-23 16:50:39 +02:00
Kapil Bhatt
7161a7a06a drivers: wifi: Add changes for regulatory domain
Add changes for offloaded raw tx regulatory domain.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-10-23 16:50:15 +02:00
Andrew Davis
9d0da02fbd soc: ti: k3: Select PINCTRL in UART driver not Kconfig.defconfig
The default configuration for PINCTRL should not be set with
the other default configurations in .defconfig, instead select
a default value as part of defining the UART driver.

Signed-off-by: Andrew Davis <afd@ti.com>
2024-10-23 11:23:18 +02:00
Hao Luo
05531647ee drivers: spi: remove unused variables
Removed unused variables to get rid of warning

Signed-off-by: Hao Luo <hluo@ambiq.com>
2024-10-23 11:19:56 +02:00
Swift Tian
744338f6ea drivers: mspi: fix incorrect DT macro used in controller emulator
DT_INST* should be used in MSPI_CONFIG or device tree value capture
will fail sliently and fall back to defaults.

Signed-off-by: Swift Tian <swift.tian@ambiq.com>
2024-10-22 22:46:47 -04:00
Jilay Pandya
271aeaf5f9 tests: drivers: stepper: stepper_api: test cb user_data
This commit does the following:
1. tests set_callback and user_data
2. fixes the api as well as the drivers by passing user_data
back to the set callback

Signed-off-by: Jilay Pandya <jilay.pandya@outlook.com>
2024-10-22 22:46:26 -04:00
Daniel DeGrasse
e8e43b60eb drivers: flash: flash_mcux_flexspi_nor: add IS25LP support
IS25LP flash chips have a similar P[6:3] register to the IS25WP series,
and need the same workaround.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-23 09:06:19 +09:00
Daniel DeGrasse
7ca996234f drivers: flash: flash_mcux_flexspi_nor: fix IS25WP flash support
Some NXP boards program the read parameters bits (P[6:3]) within the
IS25WP flash device during init, which will result in JESD216 probe
commands failing (as the number of dummy cycles will be incorrect). Add
handling to force these volatile bits to their default value to the
flexspi flash driver.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-23 09:06:19 +09:00
Daniel DeGrasse
c410b020b5 drivers: flash: flash_mcux_flexspi: fix support for QE method 5
Quad enable method 5 reads status register 2 (one byte), but then writes
to 2 bytes to the status registers, so we need to shift the output
buffer in order to manage this correctly.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-23 09:06:19 +09:00
Daniel DeGrasse
966b4339ee drivers: flash: flash_mcux_flexspi_nor: fix quad enable sequence
Writing the quad enable bit on flash chips typically requires a write
enable instruction be issued before writing the non-volatile status
register, and the flash may remain busy briefly after programming this
bit. Add code to send the WREN instruction, and to wait for the flash to
finish programming after writing the status register.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-23 09:06:19 +09:00
Daniel DeGrasse
e8a2832beb drivers: flash: flash_mcux_flexspi_nor: store probe lut in .data
Move the LUT used for probing to be stored in .data, instead of on the
stack. This reduces stack usage during probe by 192 bytes, which avoids
stack overflows that were occurring on some platforms.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-23 09:06:19 +09:00
Daniel DeGrasse
52d98498bc drivers: input: gt911: always set INT pin during probe
Even in cases where the alt-addr is set, we can still use the INT pin
during probe. Some boards require this, as if a reset GPIO is not
defined the INT pin may still need to be toggled in order to initialize
the GT911 IC correctly.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-22 19:04:59 -04:00
Luis Ubieda
1fdf6e64fb spi: sam: Refactor driver to use SPI RTIO common APIs
- Following similar approach followed on spi_mcux_lpspi driver.
- Enabling DMA by default when SPI RTIO is selected to favor
non-blocking transfers.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-10-22 18:30:24 -04:00
Vladislav Pejic
cfe64f7f1c drivers: sensor: adxl372: Updated driver with RTIO stream functionality
Updated ADXL372 driver with RTIO stream functionality.
RTIO stream is using both FIFO threshold and FIFO full triggers.
Together with RTIO stream, RTIO async read is also implemented.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-22 18:30:13 -04:00
Reto Schneider
f81c1de130 drivers: serial: Sort CMake and Kconfig files alphabetically
By sorting the lines alphabetically, merge conflicts can be reduced.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-10-22 18:29:53 -04:00
David Missael Maciel
cc1266ad6a drivers: memc: add memc_mcux_flexspi_aps6404l driver
Add driver for aps6404l PSRAM, using FlexSPI MEMC driver interface.

Signed-off-by: David Missael Maciel <davidmissael.maciel@nxp.com>
2024-10-22 18:29:42 -04:00
Daniel DeGrasse
e8d9dec141 drivers: memc: memc_mcux_flexspi: allow setting ahb alignment boundary
Some instances of the FLEXSPI IP permit limiting AHB bus access so that
no memory access requests will straddle a page boundary. Add a property
to manage this setting.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-22 18:29:42 -04:00
Daniel DeGrasse
df18121526 drivers: memc_mcux_flexspi_is66wvq8m4: make addressShift unconditional
is66wvq8m4 PSRAM always requires the address to be left shifted by
5 bits, regardless of which FLEXSPI port it is on. Fix the addressShift
assignment to be unconditional

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-22 18:29:42 -04:00
Daniel DeGrasse
5b4e4cfb04 drivers: memc_mcux_flexspi: remove addr adjustment based on ADDRSHIFT
The ADDRSHIFT bit simply left shifts the address written to IPCR0[SFAR],
(or the address used for AHB access), by 5 bits before sending it to the
attached memory. This bit does not have an effect on the base address
used to access the flash/psram device.

Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
2024-10-22 18:29:42 -04:00
Tom Burdick
24762115d4 i2c: Fix default RTIO handler transactions
Transactions from RTIO should result in single calls to i2c_transfer.
This corrects the default handler to first count the number of
submissions in the transaction, allocate on the stack, and then copy
over each submission to an equivalent i2c_msg.

It also cleans up the helper functions to be infallible, taking only the
submission and msg to copy to.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2024-10-22 18:29:34 -04:00
Tom Burdick
fab01c0c44 i2c: Drop TXRX from default RTIO handler
TXRX is meant specifically to handle a full duplex bus like SPI, I2C is
half duplex meaning only read or write can be performed at once.

Drop TXRX as a supported operation code for the default I2C submission
path.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2024-10-22 18:29:34 -04:00
Dimitrije Lilic
86ed9811c4 drivers: sensor: adxl345: Updated ADXL345 drv RTIO stream & Trigger func
Updated ADXL345 driver with RTIO stream functionality.
Added Trigger intterupt functionality. RTIO stream is using
FIFO threshold.Together with RTIO stream, RTIO async read
is also implemented.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2024-10-22 18:29:22 -04:00
Dimitrije Lilic
15ec1f2016 driver: spi: MAX32 add RTIO support plus refactor
Implements the SPIO RTIO API. Refactors internal transcive
fucntios to work with both existing SPI API and RTIO functions.

When SPI_RTIO is enabled the spi_transcieve call translates
the request into an RTIO transaction placed in the queue
that device will execute.

Include the latest refacor changes of RTIO.

Signed-off-by: Dimitrije Lilic <dimitrije.lilic@orioninc.com>
2024-10-22 20:42:20 +02:00
TOKITA Hiroshi
96a17e2a0f drivers: ethernet: Add dummy driver for vnd,ethernet
Add dummy driver for "vnd,ethernet" to use in build_all tests.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-10-22 20:42:05 +02:00
Jerzy Kasenberg
d5a008dd3b drivers: usb: udc: add Smartbond UDC driver
Code adds Smartbond UDC driver to be used with
USB next stack.

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@codecoup.pl>
2024-10-22 20:41:55 +02:00
Jerzy Kasenberg
0575c1a976 drivers: dma: smartbond: Fix power policy handling
Function dma_smartbond_set_channel_status() used incorrect
condition to release state lock.
In initialization function dma_smartbond_init() function
dma_smartbond_set_channel_status() was called for each DMA
channel and tried to release lock that was never taken.

Signed-off-by: Jerzy Kasenberg <jerzy.kasenberg@codecoup.pl>
2024-10-22 20:41:55 +02:00
Luis Ubieda
ca822d4e4b sensor: lm77: Add LM77 config as a subset of the main symbol
Following pattern used in other Kconfigs. This also addresses the CI
failure on previous run.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-10-22 20:41:43 +02:00
Luis Ubieda
d557ee36d5 sensor: tree-wide: Enforce dependency of int-gpios with Trigger feature
We need int-gpios defined to use trigger functionality. Enforced with
the Kconfig parameter.

Signed-off-by: Luis Ubieda <luisf@croxel.com>
2024-10-22 20:41:43 +02:00
Scott Worley
62d7db4d4d drivers: timer: mec5: Driver using Microchip RTOS timer as kernel tick
Timer driver using Microchip 32KHz based RTOS timer as the kernel
timer tick. The driver uses one of the 32-bit basic timers to
support the kernel's k_busy_wait API which is passed a wait
count in 1 us units. The 32-bit basic timer is selected by using
device tree chosen rtimer-busy-wait-timer set to the handle
of the desired 32-bit basic timer. If this driver is disabled,
the build system will select the ARM Cortex-M4 SysTick as the
kernel timer tick driver. The user should specify RTOS timer
as kernel tick by adding the compatible properity and setting
the status property to "okay" at the board or application level
device tree. The driver implements two internal API's for use
by the SoC PM. These two API's allow the SoC PM layer to disable
the timer used for k_busy_wait so the PLL can be disabled in
deep sleep. We used a custom API so we can disable this timer
in the deep sleep path when we know k_busy_wait will not be
called by other drivers or applications.

Signed-off-by: Scott Worley <scott.worley@microchip.com>
2024-10-22 20:41:32 +02:00
Aksel Skauge Mellbye
cfccd11026 drivers: timer: gecko: Remove clock configuration
Clock setup is now done by the clock manager based
on device tree configuration.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2024-10-22 20:41:23 +02:00
Hao Luo
8b107ab5f1 drivers: i2c: add bus recovery
Added bus recovery support for ambiq i2c

Signed-off-by: Hao Luo <hluo@ambiq.com>
2024-10-22 20:40:29 +02:00
Kapil Bhatt
0b11b39461 drivers: wifi: Add Kconfig option for passive scan
Add kconfig option for forced passive scan, It will use for
only scan only mode.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-10-22 20:40:01 +02:00
Mert Vatansever
d1678a51de drivers: flash: Add MAX32xxx flash driver
Support flash read, write, erase features.

Signed-off-by: Mert Vatansever <mert.vatansever@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-10-22 20:39:41 +02:00
Michal Simek
7c809b9945 serial: xilinx: uartlite: switch to DT_INST_IRQN_BY_IDX
Use DT_*IRQN helper to get the IRQ number on systems with multi-level
interrupt configuration instead of IRQ number on particular interrupt
controller.

Signed-off-by: Michal Simek <michal.simek@amd.com>
2024-10-22 20:39:12 +02:00
Chaitanya Tata
f7ef64df28 drivers: nrfwifi: Allow scan-only for all platforms
Though nRF7000 is a special Scan only chipset, scan only can work with
any nRF70 platforms, no need for this enforcement and we can keep things
flexible.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-22 20:38:48 +02:00
Hao Luo
a1cd2d6c83 drivers: pm: add pm_policy_state_lock for drivers
Added pm_policy_state_lock to prevent memory power
off during data transfer

Signed-off-by: Hao Luo <hluo@ambiq.com>
2024-10-22 14:14:34 +02:00
Declan Snyder
41580bdc07 drivers: i2s_mcux_sai: Clang format
Clang format to fix strange formatting, shortens the line count by 100

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-10-22 14:13:59 +02:00
Andrzej Kuros
30c449d9e6 drivers: ieee802154_nrf5: support IEEE802154_SELECTIVE_TXCHANNEL
The ieee802154_nrf5 supports the IEEE802154_SELECTIVE_TXCHANNEL
Kconfig option and advertises the IEEE802154_HW_SELECTIVE_TXCHANNEL
capability.
The ieee802154_nrf5 driver now allows to schedule timed transmission
requests with selective tx channel, that is set at the latest
possible moment. This improves reception performance when the
timed transmissions are requested.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2024-10-22 14:04:33 +02:00
Andrzej Kuros
2fbba82591 drivers: ieee802154: add Kconfig IEEE802154_SELECTIVE_TXCHANNEL
The Kconfig `IEEE802154_SELECTIVE_TXCHANNEL` is added along with
the new capability `IEEE802154_HW_SELECTIVE_TXCHANNEL`.
The new capability of the ieee802154 drivers allows to schedule
CSL transmissions as stated in IEEE 802.15.4-2020 chapter 6.12.2.7
CSL over multiple channels. The benefit of the new API is that
additional call to `ieee802154_radio_api::set_channel()` is not
required. The drivers will switch to the new channel as late as
possible for CSL transmissions thus will not interrupt any reception
that might be in progress until the very late moment when the
transmission actually starts.
This improves reception performance when CSL transmissions are used.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2024-10-22 14:04:33 +02:00
Wajdi ELMuhtadi
fb45c6d93a drivers: sensor: wsen_hids_2525020210002: add sensor driver
Add wsen_hids_2525020210002 driver with
the corrected name and compatibility with
the hal update as well as added new features.

Signed-off-by: Wajdi ELMuhtadi <wajdi.elmuhtadi@we-online.com>
2024-10-22 14:03:08 +02:00
Vladislav Pejic
6d8ace9198 drivers: sensor: adxl362: Added RTIO stream
Updated ADXL362 driver with RTIO stream functionality.
RTIO stream is using both FIFO threshold and FIFO full triggers.
Together with RTIO stream, RTIO async read is also implemented.

Signed-off-by: Vladislav Pejic <vladislav.pejic@orioninc.com>
2024-10-22 14:02:21 +02:00
Ren Chen
ea4f1b758c udc: it82xx2: emit SOF event
This commit emits SOF event.

Fixes: #76225

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2024-10-22 14:01:11 +02:00
Ren Chen
b61111a41a udc: it82xx2: enable RESUME interrupt
This commit enables RESUME interrupt mask.

Signed-off-by: Ren Chen <Ren.Chen@ite.com.tw>
2024-10-22 14:01:11 +02:00