devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Erwan Le Ray <erwan.leray@foss.st.com>
To: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Rob Herring <robh+dt@kernel.org>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Erwan Le Ray <erwan.leray@foss.st.com>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Marek Vasut <marex@denx.de>,
	Marcin Sloniewski <marcin.sloniewski@gmail.com>,
	Ahmad Fatoum <a.fatoum@pengutronix.de>,
	Jagan Teki <jagan@amarulasolutions.com>,
	<devicetree@vger.kernel.org>,
	<linux-stm32@st-md-mailman.stormreply.com>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>
Subject: [PATCH 01/16] ARM: dts: stm32: add DMA configuration to UART nodes on stm32mp151
Date: Thu, 3 Feb 2022 18:10:59 +0100	[thread overview]
Message-ID: <20220203171114.10888-2-erwan.leray@foss.st.com> (raw)
In-Reply-To: <20220203171114.10888-1-erwan.leray@foss.st.com>

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: Valentin Caron <valentin.caron@foss.st.com>
Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com>

diff --git a/arch/arm/boot/dts/stm32mp151.dtsi b/arch/arm/boot/dts/stm32mp151.dtsi
index 1cfc2f011e70..e86006ae137b 100644
--- a/arch/arm/boot/dts/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/stm32mp151.dtsi
@@ -455,6 +455,9 @@
 			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 @@
 			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 @@
 			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 @@
 			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 @@
 			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 @@
 			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 @@
 			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";
 		};
 
-- 
2.17.1


  reply	other threads:[~2022-02-03 17:13 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-03 17:10 [PATCH 00/16] STM32 configure UART nodes for DMA Erwan Le Ray
2022-02-03 17:10 ` Erwan Le Ray [this message]
2022-02-03 17:11 ` [PATCH 02/16] ARM: dts: stm32: keep uart4 behavior on stm32mp157c-ed1 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 03/16] ARM: dts: stm32: keep uart4 and uart7 behavior on stm32mp15xx-dkx Erwan Le Ray
2022-02-03 17:11 ` [PATCH 04/16] ARM: dts: stm32: keep uart4 behavior on icore-stm32mp1-ctouch2 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 05/16] ARM: dts: stm32: keep uart4 behavior on icore-stm32mp1-edimm2.2 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 06/16] ARM: dts: stm32: keep uart4 behavior on stm32mp157a-iot-box Erwan Le Ray
2022-02-03 17:11 ` [PATCH 07/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp1-microdev2.0-of7 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 08/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp1-microdev2.0 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 09/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp157a-stinger96 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 10/16] ARM: dts: stm32: keep uart4 behavior on stm32mp157c-lxa-mc1 Erwan Le Ray
2022-02-04 15:49   ` Ahmad Fatoum
2022-02-03 17:11 ` [PATCH 11/16] ARM: dts: stm32: keep uart4 behavior on stm32mp157c-odyssey Erwan Le Ray
2022-02-03 17:11 ` [PATCH 12/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-drc02 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 13/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-pdk2 Erwan Le Ray
2022-02-03 17:11 ` [PATCH 14/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcom-picoitx Erwan Le Ray
2022-02-03 17:11 ` [PATCH 15/16] ARM: dts: stm32: keep uart4 behavior on stm32mp15xx-dhcom-som Erwan Le Ray
2022-02-03 17:11 ` [PATCH 16/16] ARM: dts: stm32: keep uart nodes behavior on stm32mp15xx-dhcor-avenger96 Erwan Le Ray
2022-02-03 17:25   ` Marek Vasut
2022-02-03 17:25 ` [PATCH 00/16] STM32 configure UART nodes for DMA Ahmad Fatoum
2022-02-04 13:22   ` Alexandre TORGUE
2022-02-04 15:41     ` Erwan LE RAY
2022-02-04 15:47       ` Ahmad Fatoum
2022-11-08 11:59       ` Uwe Kleine-König
2022-11-08 15:28         ` Marek Vasut
2022-11-09 13:48           ` [Linux-stm32] " Amelie Delaunay
2022-11-21  8:48             ` Valentin CARON
2022-02-14 10:02 ` Alexandre TORGUE

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220203171114.10888-2-erwan.leray@foss.st.com \
    --to=erwan.leray@foss.st.com \
    --cc=a.fatoum@pengutronix.de \
    --cc=alexandre.torgue@foss.st.com \
    --cc=devicetree@vger.kernel.org \
    --cc=jagan@amarulasolutions.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=marcin.sloniewski@gmail.com \
    --cc=marex@denx.de \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).