xref: /linux/Documentation/devicetree/bindings/soc/ti/k3-ringacc.yaml (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
119e3b58dSGrygorii Strashko# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
219e3b58dSGrygorii Strashko# Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
319e3b58dSGrygorii Strashko%YAML 1.2
419e3b58dSGrygorii Strashko---
5*45698208SRob Herring$id: http://devicetree.org/schemas/soc/ti/k3-ringacc.yaml#
6*45698208SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
719e3b58dSGrygorii Strashko
819e3b58dSGrygorii Strashkotitle: Texas Instruments K3 NavigatorSS Ring Accelerator
919e3b58dSGrygorii Strashko
1019e3b58dSGrygorii Strashkomaintainers:
1119e3b58dSGrygorii Strashko  - Santosh Shilimkar <ssantosh@kernel.org>
1219e3b58dSGrygorii Strashko  - Grygorii Strashko <grygorii.strashko@ti.com>
1319e3b58dSGrygorii Strashko
1419e3b58dSGrygorii Strashkodescription: |
1519e3b58dSGrygorii Strashko  The Ring Accelerator (RA) is a machine which converts read/write accesses
1619e3b58dSGrygorii Strashko  from/to a constant address into corresponding read/write accesses from/to a
1719e3b58dSGrygorii Strashko  circular data structure in memory. The RA eliminates the need for each DMA
1819e3b58dSGrygorii Strashko  controller which needs to access ring elements from having to know the current
1919e3b58dSGrygorii Strashko  state of the ring (base address, current offset). The DMA controller
2019e3b58dSGrygorii Strashko  performs a read or write access to a specific address range (which maps to the
2119e3b58dSGrygorii Strashko  source interface on the RA) and the RA replaces the address for the transaction
2219e3b58dSGrygorii Strashko  with a new address which corresponds to the head or tail element of the ring
2319e3b58dSGrygorii Strashko  (head for reads, tail for writes).
2419e3b58dSGrygorii Strashko
2519e3b58dSGrygorii Strashko  The Ring Accelerator is a hardware module that is responsible for accelerating
2619e3b58dSGrygorii Strashko  management of the packet queues. The K3 SoCs can have more than one RA instances
2719e3b58dSGrygorii Strashko
2856f9168fSRob HerringallOf:
2956f9168fSRob Herring  - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
3056f9168fSRob Herring
3119e3b58dSGrygorii Strashkoproperties:
3219e3b58dSGrygorii Strashko  compatible:
3319e3b58dSGrygorii Strashko    items:
3419e3b58dSGrygorii Strashko      - const: ti,am654-navss-ringacc
3519e3b58dSGrygorii Strashko
3619e3b58dSGrygorii Strashko  reg:
374f1e8699SVignesh Raghavendra    minItems: 4
3819e3b58dSGrygorii Strashko    items:
3919e3b58dSGrygorii Strashko      - description: real time registers regions
4019e3b58dSGrygorii Strashko      - description: fifos registers regions
4119e3b58dSGrygorii Strashko      - description: proxy gcfg registers regions
4219e3b58dSGrygorii Strashko      - description: proxy target registers regions
434f1e8699SVignesh Raghavendra      - description: configuration registers region
4419e3b58dSGrygorii Strashko
4519e3b58dSGrygorii Strashko  reg-names:
464f1e8699SVignesh Raghavendra    minItems: 4
4719e3b58dSGrygorii Strashko    items:
4819e3b58dSGrygorii Strashko      - const: rt
4919e3b58dSGrygorii Strashko      - const: fifos
5019e3b58dSGrygorii Strashko      - const: proxy_gcfg
5119e3b58dSGrygorii Strashko      - const: proxy_target
524f1e8699SVignesh Raghavendra      - const: cfg
5319e3b58dSGrygorii Strashko
5419e3b58dSGrygorii Strashko  msi-parent: true
5519e3b58dSGrygorii Strashko
5619e3b58dSGrygorii Strashko  ti,num-rings:
5719e3b58dSGrygorii Strashko    $ref: /schemas/types.yaml#/definitions/uint32
5819e3b58dSGrygorii Strashko    description: Number of rings supported by RA
5919e3b58dSGrygorii Strashko
6019e3b58dSGrygorii Strashko  ti,sci-rm-range-gp-rings:
6119e3b58dSGrygorii Strashko    $ref: /schemas/types.yaml#/definitions/uint32
6219e3b58dSGrygorii Strashko    description: TI-SCI RM subtype for GP ring range
6319e3b58dSGrygorii Strashko
6419e3b58dSGrygorii Strashkorequired:
6519e3b58dSGrygorii Strashko  - compatible
6619e3b58dSGrygorii Strashko  - reg
6719e3b58dSGrygorii Strashko  - reg-names
6819e3b58dSGrygorii Strashko  - msi-parent
6919e3b58dSGrygorii Strashko  - ti,num-rings
7019e3b58dSGrygorii Strashko  - ti,sci-rm-range-gp-rings
7119e3b58dSGrygorii Strashko  - ti,sci
7219e3b58dSGrygorii Strashko  - ti,sci-dev-id
7319e3b58dSGrygorii Strashko
7456f9168fSRob HerringunevaluatedProperties: false
7519e3b58dSGrygorii Strashko
7619e3b58dSGrygorii Strashkoexamples:
7719e3b58dSGrygorii Strashko  - |
7819e3b58dSGrygorii Strashko    bus {
7919e3b58dSGrygorii Strashko        #address-cells = <2>;
8019e3b58dSGrygorii Strashko        #size-cells = <2>;
8119e3b58dSGrygorii Strashko
8219e3b58dSGrygorii Strashko        ringacc: ringacc@3c000000 {
8319e3b58dSGrygorii Strashko            compatible = "ti,am654-navss-ringacc";
8419e3b58dSGrygorii Strashko            reg = <0x0 0x3c000000 0x0 0x400000>,
8519e3b58dSGrygorii Strashko                  <0x0 0x38000000 0x0 0x400000>,
8619e3b58dSGrygorii Strashko                  <0x0 0x31120000 0x0 0x100>,
874f1e8699SVignesh Raghavendra                  <0x0 0x33000000 0x0 0x40000>,
884f1e8699SVignesh Raghavendra                  <0x0 0x31080000 0x0 0x40000>;
894f1e8699SVignesh Raghavendra                  reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target", "cfg";
9019e3b58dSGrygorii Strashko            ti,num-rings = <818>;
9119e3b58dSGrygorii Strashko            ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
9219e3b58dSGrygorii Strashko            ti,sci = <&dmsc>;
9319e3b58dSGrygorii Strashko            ti,sci-dev-id = <187>;
9419e3b58dSGrygorii Strashko            msi-parent = <&inta_main_udmass>;
9519e3b58dSGrygorii Strashko        };
9619e3b58dSGrygorii Strashko    };
97