Devicetree
 help / color / mirror / Atom feed
* [PATCH v3 0/2] Add Loongson-2K0300 APB DMA mux support
@ 2026-10-26  4:33 Binbin Zhou
  2026-10-26  4:33 ` [PATCH v3 1/2] dt-bindings: dma: Document DMA mux support for Loongson-2K0300 Binbin Zhou
  2026-10-26  4:33 ` [PATCH v3 2/2] dmaengine: loongson: Add Loongson-2K0300 APB DMA mux driver Binbin Zhou
  0 siblings, 2 replies; 4+ messages in thread
From: Binbin Zhou @ 2026-10-26  4:33 UTC (permalink / raw)
  To: Binbin Zhou, Huacai Chen, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Vinod Koul, Frank Li, dmaengine
  Cc: Huacai Chen, Xuerui Wang, loongarch, devicetree, Keguang Zhang,
	Binbin Zhou

Hi all:

Loongson-2K0300 integrates a CMC DMA controller with 8 physical
channels. Peripheral DMA requests are not hard-wired to these channels;
they are routed through the CHIP_CTRL13/14/15 DMA_MAP fields.

This series adds support for that DMA request router.

Patch 1 adds the DT binding constants for the peripheral request IDs
and yaml file for the DMA mux.
Patch 2 adds the driver, Kconfig symbol and Makefile entry.

The driver registers with of_dma_router_register(). In the route
allocation callback it validates the <request> <channel> <flags>
specifier, programs the SoC-specific route register, and forwards
<channel> <flags> to the parent CMC DMA controller.

Thanks.
Binbin.

=========
V3:
Patch(1/2):
 - Merged the two commits containing the dt-binding header file and
   the YAML file; no other changes were made;
 - Add Acked-by tag from Conor.

Patch(2/2):
 - Append the dmamux object to the existing CMC DMA line;
 - Add loongson2_dmamux_assign_bits() helper, no functional change;
 - Add Reviewed-by tag from Frank.

Link to V2:
https://lore.kernel.org/all/cover.1791535540.git.zhoubinbin@loongson.cn/

V2:
Patch(1/3):
 - Drop LS2K0300_DMA_REQ_MAX as it is not part of the ABI;
Patch(2/3):
 - A more detailed description of `dma-cells`;
 - Add the `dma_requests` constraint
Patch(3/3):
 - Drop loongson2_dmamux_map->shift;
 - Move of_parse_phandle() into loongson2_dmamux_route_allocate() avoid
   UAF;
 - Drop loongson2_dmamux->dma_np;
 - Check dma_requests;
 - Add devm_add_action_or_reset() instead of .remove();
 - Replace `metux()` with `spinlock()`, which has lower overhead;
 - Add loongson2_dmamux_route_free().

Link to V1:
https://lore.kernel.org/all/cover.1790068409.git.zhoubinbin@loongson.cn/

Binbin Zhou (2):
  dt-bindings: dma: Document DMA mux support for Loongson-2K0300
  dmaengine: loongson: Add Loongson-2K0300 APB DMA mux driver

 .../dma/loongson,ls2k0300-dmamux.yaml         |  72 ++++
 MAINTAINERS                                   |   3 +
 drivers/dma/loongson/Makefile                 |   2 +-
 drivers/dma/loongson/loongson2-apb-dmamux.c   | 404 ++++++++++++++++++
 .../dt-bindings/dma/loongson,ls2k-dmamux.h    |  53 +++
 5 files changed, 533 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/devicetree/bindings/dma/loongson,ls2k0300-dmamux.yaml
 create mode 100644 drivers/dma/loongson/loongson2-apb-dmamux.c
 create mode 100644 include/dt-bindings/dma/loongson,ls2k-dmamux.h


base-commit: aff5e6a77fc69a7c490246465940d18422d7c631
-- 
2.52.0


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-26 16:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-26  4:33 [PATCH v3 0/2] Add Loongson-2K0300 APB DMA mux support Binbin Zhou
2026-10-26  4:33 ` [PATCH v3 1/2] dt-bindings: dma: Document DMA mux support for Loongson-2K0300 Binbin Zhou
2026-10-26 16:40   ` Frank Li
2026-10-26  4:33 ` [PATCH v3 2/2] dmaengine: loongson: Add Loongson-2K0300 APB DMA mux driver Binbin Zhou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox