From: Peter Ujfalusi <peter.ujfalusi@ti.com>
To: <vkoul@kernel.org>, <robh+dt@kernel.org>, <nm@ti.com>,
<ssantosh@kernel.org>
Cc: <dan.j.williams@intel.com>, <dmaengine@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<grygorii.strashko@ti.com>, <lokeshvutla@ti.com>,
<t-kristo@ti.com>, <tony@atomide.com>
Subject: [PATCH 09/16] dt-bindings: dma: ti: Add document for K3 UDMA
Date: Mon, 6 May 2019 15:34:49 +0300 [thread overview]
Message-ID: <20190506123456.6777-10-peter.ujfalusi@ti.com> (raw)
In-Reply-To: <20190506123456.6777-1-peter.ujfalusi@ti.com>
New binding document for
Texas Instruments K3 NAVSS Unified DMA – Peripheral Root Complex (UDMA-P).
UDMA-P is introduced as part of the K3 architecture and can be found on
AM65x SoC.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
---
.../devicetree/bindings/dma/ti/k3-udma.txt | 134 ++++++++++++++++++
1 file changed, 134 insertions(+)
create mode 100644 Documentation/devicetree/bindings/dma/ti/k3-udma.txt
diff --git a/Documentation/devicetree/bindings/dma/ti/k3-udma.txt b/Documentation/devicetree/bindings/dma/ti/k3-udma.txt
new file mode 100644
index 000000000000..b221a5ea119c
--- /dev/null
+++ b/Documentation/devicetree/bindings/dma/ti/k3-udma.txt
@@ -0,0 +1,134 @@
+* Texas Instruments K3 NAVSS Unified DMA – Peripheral Root Complex (UDMA-P)
+
+The UDMA-P is intended to perform similar (but significantly upgraded) functions
+as the packet-oriented DMA used on previous SoC devices. The UDMA-P module
+supports the transmission and reception of various packet types. The UDMA-P is
+architected to facilitate the segmentation and reassembly of SoC DMA data
+structure compliant packets to/from smaller data blocks that are natively
+compatible with the specific requirements of each connected peripheral. Multiple
+Tx and Rx channels are provided within the DMA which allow multiple segmentation
+or reassembly operations to be ongoing. The DMA controller maintains state
+information for each of the channels which allows packet segmentation and
+reassembly operations to be time division multiplexed between channels in order
+to share the underlying DMA hardware. An external DMA scheduler is used to
+control the ordering and rate at which this multiplexing occurs for Transmit
+operations. The ordering and rate of Receive operations is indirectly controlled
+by the order in which blocks are pushed into the DMA on the Rx PSI-L interface.
+
+The UDMA-P also supports acting as both a UTC and UDMA-C for its internal
+channels. Channels in the UDMA-P can be configured to be either Packet-Based or
+Third-Party channels on a channel by channel basis.
+
+Required properties:
+--------------------
+- compatible: Should be
+ "ti,am654-navss-main-udmap" for am654 main NAVSS UDMAP
+ "ti,am654-navss-mcu-udmap" for am654 mcu NAVSS UDMAP
+- #dma-cells: Should be set to <3>.
+ - The first parameter is a phandle to the remote PSI-L
+ endpoint
+ - The second parameter is the thread offset within the
+ remote thread ID range
+ - The third parameter is the channel direction.
+- reg: Memory map of UDMAP
+- reg-names: "gcfg", "rchanrt", "tchanrt"
+- msi-parent: phandle for "ti,sci-inta" interrupt controller
+- ti,ringacc: phandle for the ring accelerator node
+- ti,psil-base: PSI-L thread ID base of the UDMAP channels
+- ti,sci: phandle on TI-SCI compatible System controller node
+- ti,sci-dev-id: TI-SCI device id
+- ti,sci-rm-range-tchan: UDMA tchan resource list in pairs of type and subtype
+- ti,sci-rm-range-rchan: UDMA rchan resource list in pairs of type and subtype
+- ti,sci-rm-range-rflow: UDMA rflow resource list in pairs of type and subtype
+
+For PSI-L thread management the parent NAVSS node must have:
+- ti,sci: phandle on TI-SCI compatible System controller node
+- ti,sci-dev-id: TI-SCI device id of the NAVSS instance
+
+Remote PSI-L endpoint
+
+Required properties:
+--------------------
+- ti,psil-base: PSI-L thread ID base of the endpoint
+
+Within the PSI-L endpoint node thread configuration subnodes must present with:
+ti,psil-configX naming convention, where X is the thread ID offset.
+
+Configuration node Required properties:
+--------------------
+- linux,udma-mode: Channel mode, can be:
+ - UDMA_PKT_MODE: for Packet mode channels (peripherals)
+ - UDMA_TR_MODE: for Third-Party mode
+
+Configuration node Optional properties:
+--------------------
+- statictr-type: In case the remote endpoint requires StaticTR
+ configuration:
+ - PSIL_STATIC_TR_XY: XY type of StaticTR
+ - PSIL_STATIC_TR_MCAN: MCAN type of StaticTR
+- ti,channel-tpl: Channel Throughput level:
+ 0 / or not present - normal channel
+ 1 - High Throughput channel
+- ti,needs-epib: If the endpoint require EPIB to be present in the
+ descriptor.
+- ti,psd-size: Size of the Protocol Specific Data section of the
+ descriptor.
+
+Example:
+
+main_navss: main_navss {
+ compatible = "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ dma-coherent;
+ dma-ranges;
+ ranges;
+
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <118>;
+
+ main_udmap: udmap@31150000 {
+ compatible = "ti,am654-navss-main-udmap";
+ reg = <0x0 0x31150000 0x0 0x100>,
+ <0x0 0x34000000 0x0 0x100000>,
+ <0x0 0x35000000 0x0 0x100000>;
+ reg-names = "gcfg", "rchanrt", "tchanrt";
+ #dma-cells = <3>;
+
+ ti,ringacc = <&ringacc>;
+ ti,psil-base = <0x1000>;
+
+ interrupt-parent = <&main_udmass_inta>;
+
+ ti,sci = <&dmsc>;
+ ti,sci-dev-id = <188>;
+
+ ti,sci-rm-range-tchan = <0x6 0x1>, /* TX_HCHAN */
+ <0x6 0x2>; /* TX_CHAN */
+ ti,sci-rm-range-rchan = <0x6 0x4>, /* RX_HCHAN */
+ <0x6 0x5>; /* RX_CHAN */
+ ti,sci-rm-range-rflow = <0x6 0x6>; /* GP RFLOW */
+ };
+};
+
+pdma0: pdma@2a41000 {
+ compatible = "ti,am654-pdma";
+ reg = <0x0 0x02A41000 0x0 0x400>;
+ reg-names = "eccaggr_cfg";
+
+ ti,psil-base = <0x4400>;
+
+ /* ti,psil-config0-2 */
+ UDMA_PDMA_TR_XY(0);
+ UDMA_PDMA_TR_XY(1);
+ UDMA_PDMA_TR_XY(2);
+};
+
+mcasp0: mcasp@02B00000 {
+...
+ /* tx: pdma0-0, rx: pdma0-0 */
+ dmas = <&main_udmap &pdma0 0 UDMA_DIR_TX>,
+ <&main_udmap &pdma0 0 UDMA_DIR_RX>;
+ dma-names = "tx", "rx";
+...
+};
--
Peter
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
next prev parent reply other threads:[~2019-05-06 12:36 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-06 12:34 [PATCH 00/16] dmaengine/soc/firmware: Add Texas Instruments UDMA support Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 01/16] firmware: ti_sci: Add resource management APIs for ringacc, psi-l and udma Peter Ujfalusi
2019-06-06 6:00 ` Lokesh Vutla
2019-06-06 12:04 ` Peter Ujfalusi
2019-06-10 9:18 ` [PATCH v1.1] " Peter Ujfalusi
2019-06-10 9:41 ` Lokesh Vutla
2019-06-11 17:36 ` Tero Kristo
2019-05-06 12:34 ` [PATCH 02/16] bindings: soc: ti: add documentation for k3 ringacc Peter Ujfalusi
2019-06-13 18:09 ` Rob Herring
2019-05-06 12:34 ` [PATCH 03/16] soc: ti: k3: add navss ringacc driver Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 04/16] dmaengine: doc: Add sections for per descriptor metadata support Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 05/16] dmaengine: Add metadata_ops for dma_async_tx_descriptor Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 06/16] dmaengine: Add support for reporting DMA cached data amount Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 07/16] dmaengine: Add function to request slave channel from a dma_device Peter Ujfalusi
2019-05-07 8:37 ` Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 08/16] dmaengine: ti: Add cppi5 header for UDMA Peter Ujfalusi
2019-05-06 12:34 ` Peter Ujfalusi [this message]
2019-06-13 18:16 ` [PATCH 09/16] dt-bindings: dma: ti: Add document for K3 UDMA Rob Herring
2019-06-13 20:33 ` Peter Ujfalusi
2019-06-14 13:20 ` Rob Herring
2019-06-14 13:43 ` Peter Ujfalusi
2019-06-19 14:04 ` Rob Herring
2019-06-20 9:56 ` Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 10/16] dmaengine: ti: New driver for K3 UDMA - split#1: defines, structs, io func Peter Ujfalusi
2019-06-13 18:43 ` Rob Herring
2019-06-13 20:40 ` Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 11/16] dmaengine: ti: New driver for K3 UDMA - split#2: probe/remove, xlate and filter_fn Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 12/16] dmaengine: ti: New driver for K3 UDMA - split#3: alloc/free chan_resources Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 13/16] dmaengine: ti: New driver for K3 UDMA - split#4: dma_device callbacks 1 Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 14/16] dmaengine: ti: New driver for K3 UDMA - split#5: dma_device callbacks 2 Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 15/16] dmaengine: ti: New driver for K3 UDMA - split#6: Kconfig and Makefile Peter Ujfalusi
2019-05-06 12:34 ` [PATCH 16/16] dmaengine: ti: k3-udma: Add glue layer for non DMAengine users Peter Ujfalusi
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=20190506123456.6777-10-peter.ujfalusi@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=dan.j.williams@intel.com \
--cc=devicetree@vger.kernel.org \
--cc=dmaengine@vger.kernel.org \
--cc=grygorii.strashko@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lokeshvutla@ti.com \
--cc=nm@ti.com \
--cc=robh+dt@kernel.org \
--cc=ssantosh@kernel.org \
--cc=t-kristo@ti.com \
--cc=tony@atomide.com \
--cc=vkoul@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).