:orphan: .. _st_stm32_dmamux: st,stm32-dmamux ############### Vendor: :ref:`STMicroelectronics ` Description *********** These nodes are "dmamux" bus nodes. .. code-block:: none 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 4. features: NOT USED by dmamux exemple for stm32wb55x dmamux1: dmamux@40020800 { compatible = "st,stm32-dmamux"; ... dma-channels = <14>; dma-generators = <4>; dma-requests= <36>; status = "disabled"; label = "DMAMUX_1"; }; for client SPI of stm32wb55x spi1: spi@40013000 { compatible = "st,stm32-spi"; dmas = <&dmamux1 11 7 0x20440 0 &dmamux1 1 6 0x20480 0>; dma-names = "tx", "rx"; }; Properties ********** .. tabs:: .. group-tab:: Node specific properties Properties not inherited from the base binding file. .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``#dma-cells`` - ``int`` - .. code-block:: none Number of items to expect in a DMA specifier This property is **required**. Constant value: ``4`` * - ``dma-channels`` - ``int`` - .. code-block:: none Number of DMAMUX output request channels supported by the controller This property is **required**. * - ``dma-generators`` - ``int`` - .. code-block:: none Number of DMAMUX Request generator supported by the controller * - ``dma-requests`` - ``int`` - .. code-block:: none Number of DMAMUX Peripheral Request Line inputs supported by the controller This property is **required**. .. group-tab:: Deprecated node specific properties Deprecated properties not inherited from the base binding file. (None) .. group-tab:: Base properties Properties inherited from the base binding file, which defines common properties that may be set on many nodes. Not all of these may apply to the "st,stm32-dmamux" compatible. .. list-table:: :widths: 1 1 4 :header-rows: 1 * - Name - Type - Details * - ``reg`` - ``array`` - .. code-block:: none register space This property is **required**. See :ref:`dt-important-props` for more information. * - ``interrupts`` - ``array`` - .. code-block:: none interrupts for device This property is **required**. See :ref:`dt-important-props` for more information. * - ``label`` - ``string`` - .. code-block:: none Human readable string describing the device (used as device_get_binding() argument) This property is **required**. See :ref:`dt-important-props` for more information. * - ``status`` - ``string`` - .. code-block:: none indicates the operational status of a device Legal values: ``'ok'``, ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'`` See :ref:`dt-important-props` for more information. * - ``compatible`` - ``string-array`` - .. code-block:: none compatible strings This property is **required**. See :ref:`dt-important-props` for more information. * - ``reg-names`` - ``string-array`` - .. code-block:: none name of each register space * - ``interrupts-extended`` - ``compound`` - .. code-block:: none extended interrupt specifier for device * - ``interrupt-names`` - ``string-array`` - .. code-block:: none name of each interrupt * - ``interrupt-parent`` - ``phandle`` - .. code-block:: none phandle to interrupt controller node * - ``clocks`` - ``phandle-array`` - .. code-block:: none Clock gate information * - ``clock-names`` - ``string-array`` - .. code-block:: none name of each clock * - ``#address-cells`` - ``int`` - .. code-block:: none number of address cells in reg property * - ``#size-cells`` - ``int`` - .. code-block:: none number of size cells in reg property * - ``dmas`` - ``phandle-array`` - .. code-block:: none DMA channels specifiers * - ``dma-names`` - ``string-array`` - .. code-block:: none Provided names of DMA channel specifiers * - ``io-channels`` - ``phandle-array`` - .. code-block:: none IO channels specifiers * - ``io-channel-names`` - ``string-array`` - .. code-block:: none Provided names of IO channel specifiers Specifier cell names ******************** - dma cells: channel, slot, channel-config, features