~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/dma/ti/k3-bcdma.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2 # Copyright (C) 2020 Texas Instruments Incorporated
  3 # Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
  4 %YAML 1.2
  5 ---
  6 $id: http://devicetree.org/schemas/dma/ti/k3-bcdma.yaml#
  7 $schema: http://devicetree.org/meta-schemas/core.yaml#
  8 
  9 title: Texas Instruments K3 DMSS BCDMA
 10 
 11 maintainers:
 12   - Peter Ujfalusi <peter.ujfalusi@gmail.com>
 13 
 14 description: |
 15   The Block Copy DMA (BCDMA) is intended to perform similar functions as the TR
 16   mode channels of K3 UDMA-P.
 17   BCDMA includes block copy channels and Split channels.
 18 
 19   Block copy channels mainly used for memory to memory transfers, but with
 20   optional triggers a block copy channel can service peripherals by accessing
 21   directly to memory mapped registers or area.
 22 
 23   Split channels can be used to service PSI-L based peripherals.
 24   The peripherals can be PSI-L native or legacy, non PSI-L native peripherals
 25   with PDMAs. PDMA is tasked to act as a bridge between the PSI-L fabric and the
 26   legacy peripheral.
 27 
 28   PDMAs can be configured via BCDMA split channel's peer registers to match with
 29   the configuration of the legacy peripheral.
 30 
 31 properties:
 32   compatible:
 33     enum:
 34       - ti,am62a-dmss-bcdma-csirx
 35       - ti,am64-dmss-bcdma
 36       - ti,j721s2-dmss-bcdma-csi
 37 
 38   reg:
 39     minItems: 3
 40     maxItems: 9
 41 
 42   reg-names:
 43     minItems: 3
 44     maxItems: 9
 45 
 46   "#dma-cells":
 47     const: 3
 48     description: |
 49       cell 1: type of the BCDMA channel to be used to service the peripheral:
 50         0 - split channel
 51         1 - block copy channel using global trigger 1
 52         2 - block copy channel using global trigger 2
 53         3 - block copy channel using local trigger
 54 
 55       cell 2: parameter for the channel:
 56         if cell 1 is 0 (split channel):
 57           PSI-L thread ID of the remote (to BCDMA) end.
 58           Valid ranges for thread ID depends on the data movement direction:
 59           for source thread IDs (rx): 0 - 0x7fff
 60           for destination thread IDs (tx): 0x8000 - 0xffff
 61 
 62           Please refer to the device documentation for the PSI-L thread map and
 63           also the PSI-L peripheral chapter for the correct thread ID.
 64         if cell 1 is 1 or 2 (block copy channel using global trigger):
 65           Unused, ignored
 66 
 67           The trigger must be configured for the channel externally to BCDMA,
 68           channels using global triggers should not be requested directly, but
 69           via DMA event router.
 70         if cell 1 is 3 (block copy channel using local trigger):
 71           bchan number of the locally triggered channel
 72 
 73       cell 3: ASEL value for the channel
 74 
 75   msi-parent: true
 76 
 77   power-domains:
 78     description:
 79       Power domain if available
 80     maxItems: 1
 81 
 82   ti,asel:
 83     $ref: /schemas/types.yaml#/definitions/uint32
 84     description: ASEL value for non slave channels
 85 
 86   ti,sci-rm-range-bchan:
 87     $ref: /schemas/types.yaml#/definitions/uint32-array
 88     description: |
 89       Array of BCDMA block-copy channel resource subtypes for resource
 90       allocation for this host
 91     minItems: 1
 92     # Should be enough
 93     maxItems: 255
 94     items:
 95       maximum: 0x3f
 96 
 97   ti,sci-rm-range-tchan:
 98     $ref: /schemas/types.yaml#/definitions/uint32-array
 99     description: |
100       Array of BCDMA split tx channel resource subtypes for resource allocation
101       for this host
102     minItems: 1
103     # Should be enough
104     maxItems: 255
105     items:
106       maximum: 0x3f
107 
108   ti,sci-rm-range-rchan:
109     $ref: /schemas/types.yaml#/definitions/uint32-array
110     description: |
111       Array of BCDMA split rx channel resource subtypes for resource allocation
112       for this host
113     minItems: 1
114     # Should be enough
115     maxItems: 255
116     items:
117       maximum: 0x3f
118 
119 required:
120   - compatible
121   - "#dma-cells"
122   - reg
123   - reg-names
124   - msi-parent
125   - ti,sci
126   - ti,sci-dev-id
127   - ti,sci-rm-range-rchan
128 
129 allOf:
130   - $ref: /schemas/dma/dma-controller.yaml#
131   - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
132 
133   - if:
134       properties:
135         compatible:
136           contains:
137             const: ti,am62a-dmss-bcdma-csirx
138     then:
139       properties:
140         ti,sci-rm-range-bchan: false
141         ti,sci-rm-range-tchan: false
142 
143         reg:
144           items:
145             - description: BCDMA Control /Status Registers region
146             - description: RX Channel Realtime Registers region
147             - description: Ring Realtime Registers region
148 
149         reg-names:
150           items:
151             - const: gcfg
152             - const: rchanrt
153             - const: ringrt
154 
155       required:
156         - power-domains
157 
158   - if:
159       properties:
160         compatible:
161           contains:
162             const: ti,am64-dmss-bcdma
163     then:
164       properties:
165         reg:
166           minItems: 5
167           items:
168             - description: BCDMA Control /Status Registers region
169             - description: Block Copy Channel Realtime Registers region
170             - description: RX Channel Realtime Registers region
171             - description: TX Channel Realtime Registers region
172             - description: Ring Realtime Registers region
173             - description: Ring Configuration Registers region
174             - description: TX Channel Configuration Registers region
175             - description: RX Channel Configuration Registers region
176             - description: Block Copy Channel Configuration Registers region
177 
178         reg-names:
179           minItems: 5
180           items:
181             - const: gcfg
182             - const: bchanrt
183             - const: rchanrt
184             - const: tchanrt
185             - const: ringrt
186             - const: ring
187             - const: tchan
188             - const: rchan
189             - const: bchan
190 
191       required:
192         - ti,sci-rm-range-bchan
193         - ti,sci-rm-range-tchan
194 
195   - if:
196       properties:
197         compatible:
198           contains:
199             const: ti,j721s2-dmss-bcdma-csi
200     then:
201       properties:
202         ti,sci-rm-range-bchan: false
203 
204         reg:
205           items:
206             - description: BCDMA Control /Status Registers region
207             - description: RX Channel Realtime Registers region
208             - description: TX Channel Realtime Registers region
209             - description: Ring Realtime Registers region
210 
211         reg-names:
212           items:
213             - const: gcfg
214             - const: rchanrt
215             - const: tchanrt
216             - const: ringrt
217 
218       required:
219         - ti,sci-rm-range-tchan
220 
221 unevaluatedProperties: false
222 
223 examples:
224   - |+
225     cbass_main {
226         #address-cells = <2>;
227         #size-cells = <2>;
228 
229         main_dmss {
230             compatible = "simple-mfd";
231             #address-cells = <2>;
232             #size-cells = <2>;
233             dma-ranges;
234             ranges;
235 
236             ti,sci-dev-id = <25>;
237 
238             main_bcdma: dma-controller@485c0100 {
239                 compatible = "ti,am64-dmss-bcdma";
240 
241                 reg = <0x0 0x485c0100 0x0 0x100>,
242                       <0x0 0x4c000000 0x0 0x20000>,
243                       <0x0 0x4a820000 0x0 0x20000>,
244                       <0x0 0x4aa40000 0x0 0x20000>,
245                       <0x0 0x4bc00000 0x0 0x100000>,
246                       <0x0 0x48600000 0x0 0x8000>,
247                       <0x0 0x484a4000 0x0 0x2000>,
248                       <0x0 0x484c2000 0x0 0x2000>,
249                       <0x0 0x48420000 0x0 0x2000>;
250                 reg-names = "gcfg", "bchanrt", "rchanrt", "tchanrt", "ringrt",
251                             "ring", "tchan", "rchan", "bchan";
252                 msi-parent = <&inta_main_dmss>;
253                 #dma-cells = <3>;
254 
255                 ti,sci = <&dmsc>;
256                 ti,sci-dev-id = <26>;
257 
258                 ti,sci-rm-range-bchan = <0x20>; /* BLOCK_COPY_CHAN */
259                 ti,sci-rm-range-rchan = <0x21>; /* SPLIT_TR_RX_CHAN */
260                 ti,sci-rm-range-tchan = <0x22>; /* SPLIT_TR_TX_CHAN */
261             };
262         };
263     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php