Commit Graph

122 Commits

Author SHA1 Message Date
Sreeram Tatapudi
b3067bde98 board: infineon: add XMC7200 Eval board support
- Support for kit_xmc72_evk

Signed-off-by: Sreeram Tatapudi <sreeram.praveen@infineon.com>
Signed-off-by: Yurii Lozynskyi <yurii.lozynskyi@infineon.com>
2025-05-28 21:29:20 +02:00
Benjamin Cabé
98e61da55c bindings: dma: fix naming of xlnx bindings
file should be named after the compatible and these files where using
an incorrect vendor prefix.

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-05-28 01:47:02 +02:00
Quang Le
4f63592f56 drivers: spi: Initial support for RZ/G3S
Add SPI driver support for Renesas RZ/G3S

Signed-off-by: Quang Le <quang.le.eb@bp.renesas.com>
Signed-off-by: Binh Nguyen <binh.nguyen.xw@renesas.com>
2025-05-15 09:00:31 +02:00
Aksel Skauge Mellbye
4b4d40017a dts: bindings: silabs: Clean up descriptions, add titles
Clean up dt binding descriptions and introduce titles where
needed to make board documentation pages look nice. The supported
hardware table on board documentation pages sources its data
from dt bindings, and needs succinct titles.

Signed-off-by: Aksel Skauge Mellbye <aksel.mellbye@silabs.com>
2025-05-02 09:15:50 +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
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
James Roy
c47926e911 dts: dma: Simplify the description of the binding
Remove redundant descriptions in DMA bindings, such
as "... node".

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-04-03 13:17:16 +02:00
Julien Panis
d8dbf5653e drivers: dma: Add support for cc23x0 DMA
Add support for 8-channel configurable DMA controller. The driver
supports the following features:
- memory to peripheral (ch0 to ch5)
- peripheral to memory (ch0 to ch5)
- memory to memory (ch6 and ch7)

Each DMA channel is multiplexed between two or more trigger sources:
- ch0 -> SPI0_TX or UART0_RX
- ch1 -> SPI0_RX or UART0_TX
- ch2 -> LRFD or UART0_TX
- ch3 -> ADC0 or UART0_RX
- ch4 -> AES_A or LRFD
- ch5 -> AES_B or ADC0
- ch6 -> Software Event Channel 0
- ch7 -> Software Event Channel 1

Signed-off-by: Julien Panis <jpanis@baylibre.com>
2025-03-31 08:05:52 +02:00
James Roy
7b5af294a7 dts: bindings: dma: Change the property names in the DTS
Unify property names in bindings and DTS, using
hyphens (-) instead of underscores (_) as separators.

Signed-off-by: James Roy <rruuaanng@outlook.com>
2025-03-24 07:57:50 +01:00
Tien Nguyen
342d2d7954 drivers: dma: Initial support for RZ/G3S
Add DMA driver support for Renesas RZ/G3S

Signed-off-by: Tien Nguyen <tien.nguyen.zg@renesas.com>
Signed-off-by: Nhut Nguyen <nhut.nguyen.kc@renesas.com>
2025-03-14 09:16:42 +01:00
Paul Wedeck
1cfec8c19a drivers: dma_wch: add support for the WCH DMA controller
This patch adds an initial driver for the WCH DMA
controller. All hardware features and most interface
features are implemented.

Signed-off-by: Paul Wedeck <paulwedeck@gmail.com>
2025-03-10 21:32:27 +01:00
Marcio Ribeiro
5d32c2a640 doc: dma: esp32: update supported peripheral list
Updates gdma supported peripheral lists

Signed-off-by: Marcio Ribeiro <marcio.ribeiro@espressif.com>
2025-03-07 17:34:47 +00:00
Benjamin Cabé
2c1538d57e dts: stm32: Streamline Devicetree binding descriptions
Ensure consistent (and concise) short descriptions of all the st,*.yaml
bindings

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-04 21:55:54 +01:00
Benjamin Cabé
957647b382 dts: espressif: Streamline device tree binding descriptions
Ensure consistent (and concise) short descriptions of all the esp*.yaml
bindings

Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
2025-03-04 18:26:43 +00:00
Jérôme Pouiller
124c79dd23 drivers: dma: Introduce support for SiWx91x
Implement DMA driver for siwx917 using UDMA peripheral. For now,
Scatter/Gather DMA is not yet supported.

Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com>
2025-02-11 22:07:11 +01:00
Martin Hoff
c901551825 driver: dma: silabs: Add signal binding to support P2M and M2P transfer
Improve the silabs ldma driver to support P2M and M2P transfer. It also
adds signal binding to support source request binding in the dts.

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-02-05 15:02:35 +01:00
Haiyue Wang
d3d7e185ba dts: bindings: dma: Update the STM32 DMA reference link
ST engineer has moved STM32 DMA controllers bindings under ./dma/stm32/
in Linux source code reference by this commit:
	https://git.kernel.org/torvalds/c/8494ae75dde4

Signed-off-by: Haiyue Wang <haiyuewa@163.com>
2025-02-05 10:21:29 +01:00
Lucien Zhao
605ade6bc4 drivers: dma: dma_mcux_edma: support EDMA IP in edma drivers
Multi channels share one IRQ, add channels-shared-irq-mask on RT1180
attribution to describe the channel shared status, and add code
implementation to register the handler function for each channel
in different interrupts.

Fix legacy building warning issue

Signed-off-by: Lucien Zhao <lucien.zhao@nxp.com>
2025-01-13 10:08:36 +01:00
Nazar Palamar
01252ad877 drivers: dma: initial implementation CAT1 DMA driver
Initial implementation of DMA driver for CAT1 device

Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
2025-01-10 14:48:24 +01:00
Andrew Featherstone
b6b38e6808 drivers: dma: rpi_pico: Refactor DMA files for Raspberry Pi SoCs
Avoid referring to Pico 2 (the name of a board). In this context,
RPI_PICO is used to refer to the (Zephyr) `SOC_FAMILY` rather than the
Pico 1 board. This clarifies common numerical values between the RP2040
and RP2350 SoC series, and enables existing DTS files to be used with
RP2350-based boards with fewer changes.

Remove the use of Zehpyr's `CONFIG_` macros from the device tree files,
and replace them with `SOC_SERIES`-specific files. Update the driver
implementation to conditionally include the correct file. Update
documentation and samples to match.

Signed-off-by: Andrew Featherstone <andrew.featherstone@gmail.com>
2024-12-23 23:57:57 +01:00
Daniel Baluta
e94c86f395 drivers: dma: Add initial support for NXP SDMA
This adds initial support for NXP SDMA controller. We make use
of NXP HAL to configure the IP.

SDMA uses BD (buffer descriptors) to describe a transfer. We create
a cyclic list of descriptors and trigger them manually at start and
later when data is available.

This is tested using Sound Open Firmware app on top of Zephyr.

Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
2024-12-23 17:11:09 +01:00
Martin Hoff
4c3c67bf24 dts: arm/silabs: add dma node for efr32(mg2x/bg2x)
Update dts for efr32mg2x and efr32bg2x board that support silabs ldma

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2024-12-16 18:24:51 +01:00
Declan Snyder
b070da7c33 dts: nxp,mcux-edma: Convert compats to prop
Convert the numerous revision compatibles to a DT property for the
revision called nxp,version (inspired from a linux DT property from
st called st,version on their DMA).

Signed-off-by: Declan Snyder <declan.snyder@nxp.com>
2024-11-19 09:52:57 -05:00
Eric Ackermann
c9ce311aaa drivers: dma: Add Xilinx AXI DMA driver
The Xilinx AXI DMA Controller is commonly used in FPGA designs.
For example, it is a part of the 1G/2.5G AXI Ethernet subsystem.
This patch adds a driver for the Xilinx AXI DMA that supports
single MM2S and S2MM channels as well as the control and status
streams used by the AXI Ethernet subsystem.

Signed-off-by: Eric Ackermann <eric.ackermann@cispa.de>
2024-11-18 19:31:20 -05:00
Laurentiu Mihalcea
f754e09dcd dma: dma_nxp_edma: drop the hal-cfg-index property
The HAL configuration binding can be done dynamically based on the
IP's address space. The `hal-cfg-index` property is more tied to
software rather than hardware so remove it as an attempt to clean
up the binding.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-11-16 15:07:45 -05:00
Mathieu Choplain
ade5e78928 dts: bindings: dma: make DMAMUX IRQ optional
Remove the "required: true" attribute from the STM32 DMAMUX binding.
This is required for STM32WB0 series where the DMAMUX has no interrupt line

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2024-10-25 14:22:06 +02:00
Fabrice DJIATSA
73cc021a13 dts: bindings: dma: Update stm32-dma-v1.yaml with macros
add macros in the description values and update an example

Signed-off-by: Fabrice DJIATSA <fabrice.djiatsa-ext@st.com>
2024-09-24 14:20:46 -05:00
Reto Schneider
f84e2f2c2b dts: bindings: dma: Add initial Si32 binding
This is needed for Si32 DMA driver support.

Signed-off-by: Reto Schneider <reto.schneider@husqvarnagroup.com>
2024-09-10 12:38:36 -04:00
Balsundar Ponnusamy
3ab212c1db drivers: dma: add dma driver for designware axi DMA controller
Adding dma driver source for designware axi dma controller

Signed-off-by: Balsundar Ponnusamy <balsundar.ponnusamy@intel.com>
2024-08-19 10:02:53 -04:00
Sadik Ozer
def2dcb70b dts: arm: adi: max32: Add MAX32 DMA driver bindings
Add MAX32 DMA driver bindings and DMA instance for MAX32655 MCU.

Co-authored-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-08-06 17:16:35 -04:00
Dong Wang
9faf111744 dts: bindings: dma: correct compatible name of Intel SEDI dma controller
Replace an underscore with a hyphen in the name to align with the general
naming convention.

Signed-off-by: Dong Wang <dong.d.wang@intel.com>
2024-06-14 20:33:05 +02:00
TOKITA Hiroshi
fbe912395c dts: bindings: dma: raspberrypi: Correcting typo
A `GPIO` word is in the description section.
Correcting it to `DMA`.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-06-12 14:34:09 +03:00
TOKITA Hiroshi
8b49895de6 dts: bindings: dma: raspberrypi: Fix irq0-channels definition
`irq0-channels` defines even-numbered channels as the default value.
Since 6 was dropped from this definition, it is added.
Also, since the maximum number of channels is 12,
remove the ones that are exceeded.

Signed-off-by: TOKITA Hiroshi <tokita.hiroshi@gmail.com>
2024-06-12 14:34:09 +03:00
Ioannis Karachalios
c61ccd9af0 dts: renesas: smartbond: Add missing #dma-cells binding
This commit should address the #73803 issue
where the DMA node does not provide support
for the #dma-cells binding. Peripherals should
specify one or more DMA channels via the dmas
and optionally dma-names DT properties.

Signed-off-by: Ioannis Karachalios <ioannis.karachalios.px@renesas.com>
2024-06-10 14:58:38 +03:00
Mahesh Mahadevan
55abfcb31e drivers: dma: Update NXP EDMA driver for version 4
1. Update EDMA driver for version 4
2. The DMAMux module is not always present. Use the
   feature define to make this optional.
3. Use the EDMA_SetChannelMux API for SoC's that supports
   this feature.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2024-03-26 16:39:18 -04:00
Laurentiu Mihalcea
fe4b559421 dts: bindings: nxp,edma: force dma-cells number to 2
To allow EDMA configuration with the help of the DT_INST_DMAS_*
and DT_DMAS_* macros, all that a consumer node needs to know
is which channel to configure and what MUX value needs to be
used. As such, this commit allows doing this by forcing the
dma-cells property to 2, each cell representing one of the
aforementioned properties.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-03-05 16:57:19 +01:00
Pisit Sawangvonganan
d54e027a38 dts: bindings: more typo correction and wording enhancement
This change reflects further corrections and suggestions
from @ajarmouni-st.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-01-30 18:50:08 -05:00
Pisit Sawangvonganan
bbfdec4371 dts: bindings: dma: fix typo
Utilize a code spell-checking tool to scan for and correct spelling errors
in all files within the dts/bindings/dma directory.

Signed-off-by: Pisit Sawangvonganan <pisit@ndrsolution.com>
2024-01-30 18:50:08 -05:00
Laurentiu Mihalcea
6abc5921e1 drivers: dma: Introduce driver for NXP's eDMA IP
This commit introduces a driver for NXP's eDMA IP.

The main reasons for introducing a new driver are the following:

	1) The HAL EDMA wrappers don't support well different
	eDMA versions (e.g: i.MX93 and i.MX8QM). As such, a new
	revision had to be introduced, thus requiring a new Zephyr
	driver.

	2) The eDMA versions found on i.MX93, i.MX8QM, and i.MX8QXP
	don't use the DMAMUX IP (instead, channel MUX-ing is performed
	through an eDMA register in the case of i.MX93).

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2024-01-23 10:54:21 -05:00
Anisetti Avinash Krishna
2052e9f19b dts: bindings: dma: intel_lpss: remove parent-node
Remove parent node to make a common interface for LPSS DMA.

Signed-off-by: Anisetti Avinash Krishna <anisetti.avinash.krishna@intel.com>
2023-12-22 09:52:59 +01:00
Christopher Friedt
e2cd8d6416 dts: bindings: dma: add bindings for an emulated dma controller
Many driver APIs are opting to provide an `emul` driver
implementation that can be used for a number of purposes.

- providing an ideal / model driver for reference
- configurable backends
- seamless integration with device tree
- support for native posix, qemu, and any other board
- fast regression testing of app and library code

Provide an initial set of bindings for `zephyr,dma-emul` devices.

Signed-off-by: Christopher Friedt <cfriedt@meta.com>
2023-12-03 19:22:31 -05:00
Laurentiu Mihalcea
43a0839c6c drivers: dma: Add SOF host DMA driver
This commit introduces the SOF host DMA driver.
This driver is used by NXP platforms in the context of
SOF's host component to copy data from the host memory
to the firmware (local) memory. This is possible because
NXP platforms can access the host memory directly w/o
an actual DMA engine.

Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
2023-11-20 09:19:53 +01:00
Ioannis Karachalios
546a640657 drivers: dma: smartbond: Support DMA accelerator.
Add support for the DMA engine.

Signed-off-by: Ioannis Karachalios <ioannis.karachalios.px@renesas.com>
2023-11-09 10:17:29 +00:00
Ning Yang
e5d47e91a4 drivers: dma: add init version for dma sedi driver
Add dma sedi driver support

Signed-off-by: Ning Yang <ning.yang@intel.com>
2023-11-02 09:44:30 +01:00
Kevin Wang
d3a73cdb0e drivers: dma: Add Andestech atcdmac300 driver.
Support the Andes atcdmac300 dma driver.

Signed-off-by: Kevin Wang <kevinwang821020@google.com>
2023-10-20 14:51:08 +02:00
Dat Nguyen Duy
8185faa0cb drivers: dma_mcux_edma: add support dma driver for s32k344
On S32K344, the offset in memory map between each channel
is 0x4000 for most channels, but there is specific case is
between channel 11 and 12 which is 0x1D4000 instead. As a
consequence, 32 channels are divided to two parts: one
starts from channel 0 -> 11. The other is from channel 128
to 145. The channel gap is from 12 -> 127.

For user and data structures in shim driver, the channel's
value comes from 0 --> 31. Above constraint will be counted
when interact with the mcux sdk

Beside that, the DMAMUX register in this platform is very
specific, not in identical with DMAMUX channel, so shim
driver is updated to cover this case

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2023-09-27 14:02:09 -05:00
Dat Nguyen Duy
d4a2b2244f drivers: dma_mcux_edma: add support for edma version 3
Add new dt binding for edma v3 that inherits whole dt
properties from current version. One more property is
added for SoCs that don't have separate error interrupt
id, use same id with channel interrupt

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2023-09-27 14:02:09 -05:00
Dat Nguyen Duy
a5cf757c9e drivers: dma_mcux_edma: improve interrupt handling
The current implementation iterates over all channels
even if only several channels share the same irq. This
introduces one more dt property to describe an offset
between two channels share the same interrupt id.

Beside that, the error interrupt must be put as last
element of "interrupt" dt property.

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2023-09-27 14:02:09 -05:00
Dat Nguyen Duy
f27815d645 dts: bindings: correct information in mcux edma bindings
With the current implementation, the 1st cell is not DMAMUX id
as mentioned in the bindings (0 for DMAMUX0 and 1 for DMAMUX1).

Moreover, the referenced Linux bindings is obsoleted, it was
migrated to use yaml syntax

Signed-off-by: Dat Nguyen Duy <dat.nguyenduy@nxp.com>
2023-09-27 14:02:09 -05:00
Anisetti Avinash Krishna
0b57fdb1ad dts: bindings: dma: intel_lpss: Added phandle dma-parent
Added a phandle named dma-parent to get base address instead of
adding DMA as child node because it is causing a build warning
(avoid_unnecessary_addr_size) if the parent instance has
"#address-cells/#size-cells" dts properties marked required
and child doesn't have reg property. DMA doesn't have reg
as it gets the base address from parent device

Signed-off-by: Anisetti Avinash Krishna <anisetti.avinash.krishna@intel.com>
2023-09-25 18:43:29 -04:00