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