Skip to content
Snippets Groups Projects
stm32-dmamux.txt 1.89 KiB
Newer Older
  • Learn to ignore specific revisions
  • STM32 DMA MUX (DMA request router)
    
    Required properties:
    - compatible:	"st,stm32h7-dmamux"
    - reg:		Memory map for accessing module
    - #dma-cells:	Should be set to <3>.
    		First parameter is request line number.
    		Second is DMA channel configuration
    		Third is Fifo threshold
    		For more details about the three cells, please see
    		stm32-dma.txt documentation binding file
    - dma-masters:	Phandle pointing to the DMA controllers.
    		Several controllers are allowed. Only "st,stm32-dma" DMA
    		compatible are supported.
    
    Optional properties:
    - dma-channels : Number of DMA requests supported.
    - dma-requests : Number of DMAMUX requests supported.
    - resets: Reference to a reset controller asserting the DMA controller
    - clocks: Input clock of the DMAMUX instance.
    
    Example:
    
    /* DMA controller 1 */
    dma1: dma-controller@40020000 {
    	compatible = "st,stm32-dma";
    	reg = <0x40020000 0x400>;
    	interrupts = <11>,
    		     <12>,
    		     <13>,
    		     <14>,
    		     <15>,
    		     <16>,
    		     <17>,
    		     <47>;
    	clocks = <&timer_clk>;
    	#dma-cells = <4>;
    	st,mem2mem;
    	resets = <&rcc 150>;
    	dma-channels = <8>;
    	dma-requests = <8>;
    };
    
    /* DMA controller 1 */
    dma2: dma@40020400 {
    	compatible = "st,stm32-dma";
    	reg = <0x40020400 0x400>;
    	interrupts = <56>,
    		     <57>,
    		     <58>,
    		     <59>,
    		     <60>,
    		     <68>,
    		     <69>,
    		     <70>;
    	clocks = <&timer_clk>;
    	#dma-cells = <4>;
    	st,mem2mem;
    	resets = <&rcc 150>;
    	dma-channels = <8>;
    	dma-requests = <8>;
    };
    
    /* DMA mux */
    dmamux1: dma-router@40020800 {
    	compatible = "st,stm32h7-dmamux";
    	reg = <0x40020800 0x3c>;
    	#dma-cells = <3>;
    	dma-requests = <128>;
    	dma-channels = <16>;
    	dma-masters = <&dma1 &dma2>;
    	clocks = <&timer_clk>;
    };
    
    /* DMA client */
    usart1: serial@40011000 {
    	compatible = "st,stm32-usart", "st,stm32-uart";
    	reg = <0x40011000 0x400>;
    	interrupts = <37>;
    	clocks = <&timer_clk>;
    	dmas = <&dmamux1 41 0x414 0>,
    	       <&dmamux1 42 0x414 0>;
    	dma-names = "rx", "tx";
    };