[PATCH v3 00/12] Introduce STM32 DMA3 support

Amelie Delaunay amelie.delaunay at foss.st.com
Mon May 20 08:46:42 PDT 2024


Drop this incomplete series, issue with mail server.

On 5/20/24 17:42, Amelie Delaunay wrote:
> STM32 DMA3 is a direct memory access controller with different features
> depending on its hardware configuration. It is either called LPDMA (Low
> Power), GPDMA (General Purpose) or HPDMA (High Performance), and it can
> be found in new STM32 MCUs and MPUs.
> 
> In STM32MP25 SoC [1], 3 HPDMAs and 1 LPDMA are embedded. Only HPDMAs are
> used by Linux.
> 
> Before adding this new driver, this series gathers existing STM32 DMA
> drivers and bindings under stm32/ subdirectory and adds an entry in
> MAINTAINERS file.
> 
> To ease review, the initial "dmaengine: Add STM32 DMA3 support" has been
> split into functionnalities.
> Patches 6 to 9 can be squashed into patch 5.
> 
> Patch 10 has already been proposed [2], the API is now used in stm32-dma3
> driver. Indeed, STM32 DMA3 channels can be individually reserved either
> because they are secure, or dedicated to another CPU. These channels are
> not registered in dmaengine, so id is not incremented, but, using the new
> API to specify the channel name, channel name matches the name in the
> Reference Manual and ease requesting a channel thanks to its name.
> 
> [1] https://www.st.com/resource/en/reference_manual/rm0457-stm32mp25xx-advanced-armbased-3264bit-mpus-stmicroelectronics.pdf
> [2] https://lore.kernel.org/lkml/20231213174021.3074759-1-amelie.delaunay@foss.st.com/
> 
> v3:
> - address Rob's remarks about st,stm32-dma3.yaml
>    (wrap at 80, remove useless '|')
> - address Frank's remarks about patch 5: improve commit message and
>    ensure descriptors availability before starting the channel
> 
> v2:
> - fix reference in spi/st,stm32-spi.yaml with an updated description of the
>    dmas property to reflect the new path of STM32 DMA controllers bindings.
> - address Rob's remarks about st,stm32-dma3.yaml
> - address Vinod's remarks about stm32-dma3.c
> 
> Amelie Delaunay (12):
>    dt-bindings: dma: New directory for STM32 DMA controllers bindings
>    dmaengine: stm32: New directory for STM32 DMA controllers drivers
>    MAINTAINERS: Add entry for STM32 DMA controllers drivers and
>      documentation
>    dt-bindings: dma: Document STM32 DMA3 controller bindings
>    dmaengine: Add STM32 DMA3 support
>    dmaengine: stm32-dma3: add DMA_CYCLIC capability
>    dmaengine: stm32-dma3: add DMA_MEMCPY capability
>    dmaengine: stm32-dma3: add device_pause and device_resume ops
>    dmaengine: stm32-dma3: improve residue granularity
>    dmaengine: add channel device name to channel registration
>    dmaengine: stm32-dma3: defer channel registration to specify channel
>      name
>    arm64: dts: st: add HPDMA nodes on stm32mp251
> 
>   .../dma/{ => stm32}/st,stm32-dma.yaml         |    4 +-
>   .../bindings/dma/stm32/st,stm32-dma3.yaml     |  135 ++
>   .../dma/{ => stm32}/st,stm32-dmamux.yaml      |    4 +-
>   .../dma/{ => stm32}/st,stm32-mdma.yaml        |    4 +-
>   .../devicetree/bindings/spi/st,stm32-spi.yaml |    2 +-
>   MAINTAINERS                                   |    9 +
>   arch/arm64/boot/dts/st/stm32mp251.dtsi        |   69 +
>   drivers/dma/Kconfig                           |   34 +-
>   drivers/dma/Makefile                          |    4 +-
>   drivers/dma/dmaengine.c                       |   16 +-
>   drivers/dma/idxd/dma.c                        |    2 +-
>   drivers/dma/stm32/Kconfig                     |   47 +
>   drivers/dma/stm32/Makefile                    |    5 +
>   drivers/dma/{ => stm32}/stm32-dma.c           |    2 +-
>   drivers/dma/stm32/stm32-dma3.c                | 1847 +++++++++++++++++
>   drivers/dma/{ => stm32}/stm32-dmamux.c        |    0
>   drivers/dma/{ => stm32}/stm32-mdma.c          |    2 +-
>   include/linux/dmaengine.h                     |    3 +-
>   18 files changed, 2137 insertions(+), 52 deletions(-)
>   rename Documentation/devicetree/bindings/dma/{ => stm32}/st,stm32-dma.yaml (97%)
>   create mode 100644 Documentation/devicetree/bindings/dma/stm32/st,stm32-dma3.yaml
>   rename Documentation/devicetree/bindings/dma/{ => stm32}/st,stm32-dmamux.yaml (89%)
>   rename Documentation/devicetree/bindings/dma/{ => stm32}/st,stm32-mdma.yaml (96%)
>   create mode 100644 drivers/dma/stm32/Kconfig
>   create mode 100644 drivers/dma/stm32/Makefile
>   rename drivers/dma/{ => stm32}/stm32-dma.c (99%)
>   create mode 100644 drivers/dma/stm32/stm32-dma3.c
>   rename drivers/dma/{ => stm32}/stm32-dmamux.c (100%)
>   rename drivers/dma/{ => stm32}/stm32-mdma.c (99%)
> 



More information about the linux-arm-kernel mailing list