Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 # Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
0003 %YAML 1.2
0004 ---
0005 $id: "http://devicetree.org/schemas/soc/ti/k3-ringacc.yaml#"
0006 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0007 
0008 title: Texas Instruments K3 NavigatorSS Ring Accelerator
0009 
0010 maintainers:
0011   - Santosh Shilimkar <ssantosh@kernel.org>
0012   - Grygorii Strashko <grygorii.strashko@ti.com>
0013 
0014 description: |
0015   The Ring Accelerator (RA) is a machine which converts read/write accesses
0016   from/to a constant address into corresponding read/write accesses from/to a
0017   circular data structure in memory. The RA eliminates the need for each DMA
0018   controller which needs to access ring elements from having to know the current
0019   state of the ring (base address, current offset). The DMA controller
0020   performs a read or write access to a specific address range (which maps to the
0021   source interface on the RA) and the RA replaces the address for the transaction
0022   with a new address which corresponds to the head or tail element of the ring
0023   (head for reads, tail for writes).
0024 
0025   The Ring Accelerator is a hardware module that is responsible for accelerating
0026   management of the packet queues. The K3 SoCs can have more than one RA instances
0027 
0028 properties:
0029   compatible:
0030     items:
0031       - const: ti,am654-navss-ringacc
0032 
0033   reg:
0034     items:
0035       - description: real time registers regions
0036       - description: fifos registers regions
0037       - description: proxy gcfg registers regions
0038       - description: proxy target registers regions
0039 
0040   reg-names:
0041     items:
0042       - const: rt
0043       - const: fifos
0044       - const: proxy_gcfg
0045       - const: proxy_target
0046 
0047   msi-parent: true
0048 
0049   ti,num-rings:
0050     $ref: /schemas/types.yaml#/definitions/uint32
0051     description: Number of rings supported by RA
0052 
0053   ti,sci-rm-range-gp-rings:
0054     $ref: /schemas/types.yaml#/definitions/uint32
0055     description: TI-SCI RM subtype for GP ring range
0056 
0057   ti,sci:
0058     $ref: /schemas/types.yaml#/definitions/phandle-array
0059     description: phandle on TI-SCI compatible System controller node
0060 
0061   ti,sci-dev-id:
0062     $ref: /schemas/types.yaml#/definitions/uint32
0063     description: TI-SCI device id of the ring accelerator
0064 
0065 required:
0066   - compatible
0067   - reg
0068   - reg-names
0069   - msi-parent
0070   - ti,num-rings
0071   - ti,sci-rm-range-gp-rings
0072   - ti,sci
0073   - ti,sci-dev-id
0074 
0075 additionalProperties: false
0076 
0077 examples:
0078   - |
0079     bus {
0080         #address-cells = <2>;
0081         #size-cells = <2>;
0082 
0083         ringacc: ringacc@3c000000 {
0084             compatible = "ti,am654-navss-ringacc";
0085             reg = <0x0 0x3c000000 0x0 0x400000>,
0086                   <0x0 0x38000000 0x0 0x400000>,
0087                   <0x0 0x31120000 0x0 0x100>,
0088                   <0x0 0x33000000 0x0 0x40000>;
0089             reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target";
0090             ti,num-rings = <818>;
0091             ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
0092             ti,sci = <&dmsc>;
0093             ti,sci-dev-id = <187>;
0094             msi-parent = <&inta_main_udmass>;
0095         };
0096     };