Commit 0f18f728 authored by Erwan Le Ray's avatar Erwan Le Ray Committed by Alexandre Torgue
Browse files

ARM: dts: stm32: add DMA configuration to UART nodes on stm32mp151



Add DMA configuration in stm32mp15x uart nodes by selecting dma direct
mode and alternate REQ/ACK dma protocol for uart.

DMA direct mode allows to bypass DMA FIFO. Each DMA request immediately
initiates a transfer from/to the memory. This allows USART to get data
transferred, even when the transfer ends before the DMA FIFO completion.

Default REQ/ACK DMA protocol consists in maintaining ACK signal up to the
removal of REQuest and the transfer completion.
In case of alternative REQ/ACK protocol, ACK de-assertion does not wait the
removal of the REQuest, but only the transfer completion.
Due to a possible DMA stream lock when transferring data to/from STM32
USART/UART, select this alternative protocol in STM32 USART/UART nodes.

Signed-off-by: default avatarValentin Caron <valentin.caron@foss.st.com>
Signed-off-by: default avatarErwan Le Ray <erwan.leray@foss.st.com>
Signed-off-by: default avatarAlexandre Torgue <alexandre.torgue@foss.st.com>
parent 7a5faaee
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -455,6 +455,9 @@ usart2: serial@4000e000 {
			interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc USART2_K>;
			wakeup-source;
			dmas = <&dmamux1 43 0x400 0x15>,
			       <&dmamux1 44 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -464,6 +467,9 @@ usart3: serial@4000f000 {
			interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc USART3_K>;
			wakeup-source;
			dmas = <&dmamux1 45 0x400 0x15>,
			       <&dmamux1 46 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -473,6 +479,9 @@ uart4: serial@40010000 {
			interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc UART4_K>;
			wakeup-source;
			dmas = <&dmamux1 63 0x400 0x15>,
			       <&dmamux1 64 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -482,6 +491,9 @@ uart5: serial@40011000 {
			interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc UART5_K>;
			wakeup-source;
			dmas = <&dmamux1 65 0x400 0x15>,
			       <&dmamux1 66 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -588,6 +600,9 @@ uart7: serial@40018000 {
			interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc UART7_K>;
			wakeup-source;
			dmas = <&dmamux1 79 0x400 0x15>,
			       <&dmamux1 80 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -597,6 +612,9 @@ uart8: serial@40019000 {
			interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc UART8_K>;
			wakeup-source;
			dmas = <&dmamux1 81 0x400 0x15>,
			       <&dmamux1 82 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};

@@ -678,6 +696,9 @@ usart6: serial@44003000 {
			interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&rcc USART6_K>;
			wakeup-source;
			dmas = <&dmamux1 71 0x400 0x15>,
			       <&dmamux1 72 0x400 0x11>;
			dma-names = "rx", "tx";
			status = "disabled";
		};