k3-ringacc.yaml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. # Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/
  3. %YAML 1.2
  4. ---
  5. $id: http://devicetree.org/schemas/soc/ti/k3-ringacc.yaml#
  6. $schema: http://devicetree.org/meta-schemas/core.yaml#
  7. title: Texas Instruments K3 NavigatorSS Ring Accelerator
  8. maintainers:
  9. - Santosh Shilimkar <ssantosh@kernel.org>
  10. - Grygorii Strashko <grygorii.strashko@ti.com>
  11. description: |
  12. The Ring Accelerator (RA) is a machine which converts read/write accesses
  13. from/to a constant address into corresponding read/write accesses from/to a
  14. circular data structure in memory. The RA eliminates the need for each DMA
  15. controller which needs to access ring elements from having to know the current
  16. state of the ring (base address, current offset). The DMA controller
  17. performs a read or write access to a specific address range (which maps to the
  18. source interface on the RA) and the RA replaces the address for the transaction
  19. with a new address which corresponds to the head or tail element of the ring
  20. (head for reads, tail for writes).
  21. The Ring Accelerator is a hardware module that is responsible for accelerating
  22. management of the packet queues. The K3 SoCs can have more than one RA instances
  23. allOf:
  24. - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
  25. properties:
  26. compatible:
  27. items:
  28. - const: ti,am654-navss-ringacc
  29. reg:
  30. minItems: 4
  31. items:
  32. - description: real time registers regions
  33. - description: fifos registers regions
  34. - description: proxy gcfg registers regions
  35. - description: proxy target registers regions
  36. - description: configuration registers region
  37. reg-names:
  38. minItems: 4
  39. items:
  40. - const: rt
  41. - const: fifos
  42. - const: proxy_gcfg
  43. - const: proxy_target
  44. - const: cfg
  45. msi-parent: true
  46. ti,num-rings:
  47. $ref: /schemas/types.yaml#/definitions/uint32
  48. description: Number of rings supported by RA
  49. ti,sci-rm-range-gp-rings:
  50. $ref: /schemas/types.yaml#/definitions/uint32
  51. description: TI-SCI RM subtype for GP ring range
  52. required:
  53. - compatible
  54. - reg
  55. - reg-names
  56. - msi-parent
  57. - ti,num-rings
  58. - ti,sci-rm-range-gp-rings
  59. - ti,sci
  60. - ti,sci-dev-id
  61. unevaluatedProperties: false
  62. examples:
  63. - |
  64. bus {
  65. #address-cells = <2>;
  66. #size-cells = <2>;
  67. ringacc: ringacc@3c000000 {
  68. compatible = "ti,am654-navss-ringacc";
  69. reg = <0x0 0x3c000000 0x0 0x400000>,
  70. <0x0 0x38000000 0x0 0x400000>,
  71. <0x0 0x31120000 0x0 0x100>,
  72. <0x0 0x33000000 0x0 0x40000>,
  73. <0x0 0x31080000 0x0 0x40000>;
  74. reg-names = "rt", "fifos", "proxy_gcfg", "proxy_target", "cfg";
  75. ti,num-rings = <818>;
  76. ti,sci-rm-range-gp-rings = <0x2>; /* GP ring range */
  77. ti,sci = <&dmsc>;
  78. ti,sci-dev-id = <187>;
  79. msi-parent = <&inta_main_udmass>;
  80. };
  81. };