xref: /openbmc/linux/Documentation/devicetree/bindings/dma/ti/k3-udma.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1d3cd299bSPeter Ujfalusi# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2cc465fa2SPeter Ujfalusi# Copyright (C) 2019 Texas Instruments Incorporated
3cc465fa2SPeter Ujfalusi# Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
4d3cd299bSPeter Ujfalusi%YAML 1.2
5d3cd299bSPeter Ujfalusi---
6d3cd299bSPeter Ujfalusi$id: http://devicetree.org/schemas/dma/ti/k3-udma.yaml#
7d3cd299bSPeter Ujfalusi$schema: http://devicetree.org/meta-schemas/core.yaml#
8d3cd299bSPeter Ujfalusi
9a612130cSKrzysztof Kozlowskititle: Texas Instruments K3 NAVSS Unified DMA
10d3cd299bSPeter Ujfalusi
11d3cd299bSPeter Ujfalusimaintainers:
12cc465fa2SPeter Ujfalusi  - Peter Ujfalusi <peter.ujfalusi@gmail.com>
13d3cd299bSPeter Ujfalusi
14d3cd299bSPeter Ujfalusidescription: |
15d3cd299bSPeter Ujfalusi  The UDMA-P is intended to perform similar (but significantly upgraded)
16d3cd299bSPeter Ujfalusi  functions as the packet-oriented DMA used on previous SoC devices. The UDMA-P
17d3cd299bSPeter Ujfalusi  module supports the transmission and reception of various packet types.
18d3cd299bSPeter Ujfalusi  The UDMA-P architecture facilitates the segmentation and reassembly of SoC DMA
19d3cd299bSPeter Ujfalusi  data structure compliant packets to/from smaller data blocks that are natively
20d3cd299bSPeter Ujfalusi  compatible with the specific requirements of each connected peripheral.
21d3cd299bSPeter Ujfalusi  Multiple Tx and Rx channels are provided within the DMA which allow multiple
22d3cd299bSPeter Ujfalusi  segmentation or reassembly operations to be ongoing. The DMA controller
23d3cd299bSPeter Ujfalusi  maintains state information for each of the channels which allows packet
24d3cd299bSPeter Ujfalusi  segmentation and reassembly operations to be time division multiplexed between
25d3cd299bSPeter Ujfalusi  channels in order to share the underlying DMA hardware. An external DMA
26d3cd299bSPeter Ujfalusi  scheduler is used to control the ordering and rate at which this multiplexing
27d3cd299bSPeter Ujfalusi  occurs for Transmit operations. The ordering and rate of Receive operations
28d3cd299bSPeter Ujfalusi  is indirectly controlled by the order in which blocks are pushed into the DMA
29d3cd299bSPeter Ujfalusi  on the Rx PSI-L interface.
30d3cd299bSPeter Ujfalusi
31d3cd299bSPeter Ujfalusi  The UDMA-P also supports acting as both a UTC and UDMA-C for its internal
32d3cd299bSPeter Ujfalusi  channels. Channels in the UDMA-P can be configured to be either Packet-Based
33d3cd299bSPeter Ujfalusi  or Third-Party channels on a channel by channel basis.
34d3cd299bSPeter Ujfalusi
35d3cd299bSPeter Ujfalusi  All transfers within NAVSS is done between PSI-L source and destination
36d3cd299bSPeter Ujfalusi  threads.
37d3cd299bSPeter Ujfalusi  The peripherals serviced by UDMA can be PSI-L native (sa2ul, cpsw, etc) or
38d3cd299bSPeter Ujfalusi  legacy, non PSI-L native peripherals. In the later case a special, small PDMA
39d3cd299bSPeter Ujfalusi  is tasked to act as a bridge between the PSI-L fabric and the legacy
40d3cd299bSPeter Ujfalusi  peripheral.
41d3cd299bSPeter Ujfalusi
42d3cd299bSPeter Ujfalusi  PDMAs can be configured via UDMAP peer registers to match with the
43d3cd299bSPeter Ujfalusi  configuration of the legacy peripheral.
44d3cd299bSPeter Ujfalusi
45d3cd299bSPeter UjfalusiallOf:
46*894abe0dSRob Herring  - $ref: ../dma-controller.yaml#
4756f9168fSRob Herring  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
48d3cd299bSPeter Ujfalusi
49d3cd299bSPeter Ujfalusiproperties:
50d3cd299bSPeter Ujfalusi  "#dma-cells":
518c8b07cbSPeter Ujfalusi    minimum: 1
528c8b07cbSPeter Ujfalusi    maximum: 2
53d3cd299bSPeter Ujfalusi    description: |
54d3cd299bSPeter Ujfalusi      The cell is the PSI-L  thread ID of the remote (to UDMAP) end.
55d3cd299bSPeter Ujfalusi      Valid ranges for thread ID depends on the data movement direction:
56d3cd299bSPeter Ujfalusi      for source thread IDs (rx): 0 - 0x7fff
57d3cd299bSPeter Ujfalusi      for destination thread IDs (tx): 0x8000 - 0xffff
58d3cd299bSPeter Ujfalusi
59d3cd299bSPeter Ujfalusi      Please refer to the device documentation for the PSI-L thread map and also
60d3cd299bSPeter Ujfalusi      the PSI-L peripheral chapter for the correct thread ID.
61d3cd299bSPeter Ujfalusi
628c8b07cbSPeter Ujfalusi      When #dma-cells is 2, the second parameter is the channel ATYPE.
638c8b07cbSPeter Ujfalusi
64d3cd299bSPeter Ujfalusi  compatible:
65d3cd299bSPeter Ujfalusi    enum:
66d3cd299bSPeter Ujfalusi      - ti,am654-navss-main-udmap
67d3cd299bSPeter Ujfalusi      - ti,am654-navss-mcu-udmap
68d3cd299bSPeter Ujfalusi      - ti,j721e-navss-main-udmap
69d3cd299bSPeter Ujfalusi      - ti,j721e-navss-mcu-udmap
70d3cd299bSPeter Ujfalusi
71d3cd299bSPeter Ujfalusi  reg:
72d3cd299bSPeter Ujfalusi    maxItems: 3
73d3cd299bSPeter Ujfalusi
74d3cd299bSPeter Ujfalusi  reg-names:
75d3cd299bSPeter Ujfalusi    items:
76d3cd299bSPeter Ujfalusi      - const: gcfg
77d3cd299bSPeter Ujfalusi      - const: rchanrt
78d3cd299bSPeter Ujfalusi      - const: tchanrt
79d3cd299bSPeter Ujfalusi
80d3cd299bSPeter Ujfalusi  msi-parent: true
81d3cd299bSPeter Ujfalusi
82d3cd299bSPeter Ujfalusi  ti,ringacc:
83d3cd299bSPeter Ujfalusi    description: phandle to the ring accelerator node
843d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/phandle
85d3cd299bSPeter Ujfalusi
86d3cd299bSPeter Ujfalusi  ti,sci-rm-range-tchan:
87d3cd299bSPeter Ujfalusi    description: |
88d3cd299bSPeter Ujfalusi      Array of UDMA tchan resource subtypes for resource allocation for this
89d3cd299bSPeter Ujfalusi      host
903d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
91d3cd299bSPeter Ujfalusi    minItems: 1
92d3cd299bSPeter Ujfalusi    # Should be enough
93d3cd299bSPeter Ujfalusi    maxItems: 255
94d3cd299bSPeter Ujfalusi
95d3cd299bSPeter Ujfalusi  ti,sci-rm-range-rchan:
96d3cd299bSPeter Ujfalusi    description: |
97d3cd299bSPeter Ujfalusi      Array of UDMA rchan resource subtypes for resource allocation for this
98d3cd299bSPeter Ujfalusi      host
993d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
100d3cd299bSPeter Ujfalusi    minItems: 1
101d3cd299bSPeter Ujfalusi    # Should be enough
102d3cd299bSPeter Ujfalusi    maxItems: 255
103d3cd299bSPeter Ujfalusi
104d3cd299bSPeter Ujfalusi  ti,sci-rm-range-rflow:
105d3cd299bSPeter Ujfalusi    description: |
106d3cd299bSPeter Ujfalusi      Array of UDMA rflow resource subtypes for resource allocation for this
107d3cd299bSPeter Ujfalusi      host
1083d21a460SRob Herring    $ref: /schemas/types.yaml#/definitions/uint32-array
109d3cd299bSPeter Ujfalusi    minItems: 1
110d3cd299bSPeter Ujfalusi    # Should be enough
111d3cd299bSPeter Ujfalusi    maxItems: 255
112d3cd299bSPeter Ujfalusi
113d3cd299bSPeter Ujfalusirequired:
114d3cd299bSPeter Ujfalusi  - compatible
115d3cd299bSPeter Ujfalusi  - "#dma-cells"
116d3cd299bSPeter Ujfalusi  - reg
117d3cd299bSPeter Ujfalusi  - reg-names
118d3cd299bSPeter Ujfalusi  - msi-parent
119d3cd299bSPeter Ujfalusi  - ti,sci
120d3cd299bSPeter Ujfalusi  - ti,sci-dev-id
121d3cd299bSPeter Ujfalusi  - ti,ringacc
122d3cd299bSPeter Ujfalusi  - ti,sci-rm-range-tchan
123d3cd299bSPeter Ujfalusi  - ti,sci-rm-range-rchan
124d3cd299bSPeter Ujfalusi  - ti,sci-rm-range-rflow
125d3cd299bSPeter Ujfalusi
1268c8b07cbSPeter Ujfalusiif:
1278c8b07cbSPeter Ujfalusi  properties:
1288c8b07cbSPeter Ujfalusi    "#dma-cells":
1298c8b07cbSPeter Ujfalusi      const: 2
1308c8b07cbSPeter Ujfalusithen:
1318c8b07cbSPeter Ujfalusi  properties:
1328c8b07cbSPeter Ujfalusi    ti,udma-atype:
1338c8b07cbSPeter Ujfalusi      description: ATYPE value which should be used by non slave channels
1343d21a460SRob Herring      $ref: /schemas/types.yaml#/definitions/uint32
1358c8b07cbSPeter Ujfalusi
1368c8b07cbSPeter Ujfalusi  required:
1378c8b07cbSPeter Ujfalusi    - ti,udma-atype
1388c8b07cbSPeter Ujfalusi
1396fdc6e23SRob HerringunevaluatedProperties: false
1406fdc6e23SRob Herring
141d3cd299bSPeter Ujfalusiexamples:
142d3cd299bSPeter Ujfalusi  - |+
143d3cd299bSPeter Ujfalusi    cbass_main {
144d3cd299bSPeter Ujfalusi        #address-cells = <2>;
145d3cd299bSPeter Ujfalusi        #size-cells = <2>;
146d3cd299bSPeter Ujfalusi
147d3cd299bSPeter Ujfalusi        cbass_main_navss: navss@30800000 {
148d3cd299bSPeter Ujfalusi            compatible = "simple-mfd";
149d3cd299bSPeter Ujfalusi            #address-cells = <2>;
150d3cd299bSPeter Ujfalusi            #size-cells = <2>;
151d3cd299bSPeter Ujfalusi            dma-coherent;
152d3cd299bSPeter Ujfalusi            dma-ranges;
15351a21e0eSRob Herring            ranges = <0x0 0x30800000 0x0 0x30800000 0x0 0x05000000>;
154d3cd299bSPeter Ujfalusi
155d3cd299bSPeter Ujfalusi            ti,sci-dev-id = <118>;
156d3cd299bSPeter Ujfalusi
157d3cd299bSPeter Ujfalusi            main_udmap: dma-controller@31150000 {
158d3cd299bSPeter Ujfalusi                compatible = "ti,am654-navss-main-udmap";
159d3cd299bSPeter Ujfalusi                reg = <0x0 0x31150000 0x0 0x100>,
160d3cd299bSPeter Ujfalusi                      <0x0 0x34000000 0x0 0x100000>,
161d3cd299bSPeter Ujfalusi                      <0x0 0x35000000 0x0 0x100000>;
162d3cd299bSPeter Ujfalusi                reg-names = "gcfg", "rchanrt", "tchanrt";
163d3cd299bSPeter Ujfalusi                #dma-cells = <1>;
164d3cd299bSPeter Ujfalusi
165d3cd299bSPeter Ujfalusi                ti,ringacc = <&ringacc>;
166d3cd299bSPeter Ujfalusi
167d3cd299bSPeter Ujfalusi                msi-parent = <&inta_main_udmass>;
168d3cd299bSPeter Ujfalusi
169d3cd299bSPeter Ujfalusi                ti,sci = <&dmsc>;
170d3cd299bSPeter Ujfalusi                ti,sci-dev-id = <188>;
171d3cd299bSPeter Ujfalusi
172d3cd299bSPeter Ujfalusi                ti,sci-rm-range-tchan = <0x1>, /* TX_HCHAN */
173d3cd299bSPeter Ujfalusi                                        <0x2>; /* TX_CHAN */
174d3cd299bSPeter Ujfalusi                ti,sci-rm-range-rchan = <0x4>, /* RX_HCHAN */
175d3cd299bSPeter Ujfalusi                                        <0x5>; /* RX_CHAN */
176d3cd299bSPeter Ujfalusi                ti,sci-rm-range-rflow = <0x6>; /* GP RFLOW */
177d3cd299bSPeter Ujfalusi            };
178d3cd299bSPeter Ujfalusi        };
179d3cd299bSPeter Ujfalusi    };
180