lkml.org 
[lkml]   [2024]   [Apr]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH 00/12] Introduce STM32 DMA3 support
    Date
    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/

    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 | 125 ++
    .../dma/{ => stm32}/st,stm32-dmamux.yaml | 4 +-
    .../dma/{ => stm32}/st,stm32-mdma.yaml | 4 +-
    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 | 1838 +++++++++++++++++
    drivers/dma/{ => stm32}/stm32-dmamux.c | 0
    drivers/dma/{ => stm32}/stm32-mdma.c | 2 +-
    include/linux/dmaengine.h | 3 +-
    17 files changed, 2117 insertions(+), 51 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%)

    --
    2.25.1


    \
     
     \ /
      Last update: 2024-05-27 17:58    [W:4.025 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site