# Copyright (c) 2019, STMicroelectronics # SPDX-License-Identifier: Apache-2.0 description: | STM32 DMAMUX controller The STM32 DMAMUX is a direct memory access multiplexer capable of supporting independent DMA channels. DMAMUX clients connected to the STM32 DMA ultiplexer must use a two-cell specifier for each dmamux channel: a phandle to the DMA multiplexer plus the following 2 integer cells: 1. channel: the mux channel from 0 to - 1 2. slot: the request line Multiplexer ID 3. channel-config: A 32bit mask specifying the DMA channel configuration which is device dependent: -bit 6-7 : Direction (see dma.h) 0x0: MEM to MEM 0x1: MEM to PERIPH 0x2: PERIPH to MEM 0x3: reserved for PERIPH to PERIPH -bit 9 : Peripheral Increment Address 0x0: no address increment between transfers 0x1: increment address between transfers -bit 10 : Memory Increment Address 0x0: no address increment between transfers 0x1: increment address between transfers -bit 11-12 : Peripheral data size 0x0: Byte (8 bits) 0x1: Half-word (16 bits) 0x2: Word (32 bits) 0x3: reserved -bit 13-14 : Memory data size 0x0: Byte (8 bits) 0x1: Half-word (16 bits) 0x2: Word (32 bits) 0x3: reserved -bit 15: Peripheral Increment Offset Size not USED for DMA V2 0x0: offset size is linked to the peripheral bus width 0x1: offset size is fixed to 4 (32-bit alignment) -bit 16-17 : Priority level 0x0: low 0x1: medium 0x2: high 0x3: very high example for stm32wb55x dmamux1: dmamux@40020800 { compatible = "st,stm32-dmamux"; ... dma-channels = <14>; dma-generators = <4>; dma-requests= <36>; status = "disabled"; }; for client SPI of stm32wb55x spi1: spi@40013000 { compatible = "st,stm32-spi"; dmas = <&dmamux1 11 7 0x20440 &dmamux1 1 6 0x20480>; dma-names = "tx", "rx"; }; compatible: "st,stm32-dmamux" include: dmamux-controller.yaml properties: reg: required: true "#dma-cells": const: 3 # Parameter syntax of stm32 follows the dma client dts syntax # in the Linux kernel declared in # https://git.kernel.org/pub/scm/linux/kernel/git/devicetree/devicetree-rebasing.git/plain/Bindings/dma/st,stm32-dmamux.yaml dma-cells: - channel - slot - channel-config