nvidia,tegra194-hte.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2. %YAML 1.2
  3. ---
  4. $id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml#
  5. $schema: http://devicetree.org/meta-schemas/core.yaml#
  6. title: Tegra on chip generic hardware timestamping engine (HTE) provider
  7. maintainers:
  8. - Dipen Patel <dipenp@nvidia.com>
  9. description:
  10. Tegra SoC has two instances of generic hardware timestamping engines (GTE)
  11. known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip
  12. IRQ lines for the state change respectively, upon detection it will record
  13. timestamp (taken from system counter) in its internal hardware FIFO. It has
  14. a bitmap array arranged in 32bit slices where each bit represent signal/line
  15. to enable or disable for the hardware timestamping. The GTE GPIO monitors
  16. GPIO lines from the AON (always on) GPIO controller.
  17. properties:
  18. compatible:
  19. enum:
  20. - nvidia,tegra194-gte-aon
  21. - nvidia,tegra194-gte-lic
  22. - nvidia,tegra234-gte-aon
  23. - nvidia,tegra234-gte-lic
  24. reg:
  25. maxItems: 1
  26. interrupts:
  27. maxItems: 1
  28. nvidia,int-threshold:
  29. $ref: /schemas/types.yaml#/definitions/uint32
  30. description:
  31. HTE device generates its interrupt based on this u32 FIFO threshold
  32. value. The recommended value is 1.
  33. minimum: 1
  34. maximum: 256
  35. nvidia,slices:
  36. $ref: /schemas/types.yaml#/definitions/uint32
  37. deprecated: true
  38. description:
  39. HTE lines are arranged in 32 bit slice where each bit represents different
  40. line/signal that it can enable/configure for the timestamp. It is u32
  41. property and the value depends on the HTE instance in the chip. The AON
  42. GTE instances for both Tegra194 and Tegra234 has 3 slices. The Tegra194
  43. LIC instance has 11 slices and Tegra234 LIC has 17 slices.
  44. enum: [3, 11, 17]
  45. nvidia,gpio-controller:
  46. $ref: /schemas/types.yaml#/definitions/phandle
  47. description:
  48. The phandle to AON gpio controller instance. This is required to handle
  49. namespace conversion between GPIO and GTE.
  50. '#timestamp-cells':
  51. description:
  52. This represents number of line id arguments as specified by the
  53. consumers. For the GTE IRQ, this is IRQ number as mentioned in the
  54. SoC technical reference manual. For the GTE GPIO, its value is same as
  55. mentioned in the nvidia GPIO device tree binding document.
  56. const: 1
  57. required:
  58. - compatible
  59. - reg
  60. - interrupts
  61. - "#timestamp-cells"
  62. allOf:
  63. - if:
  64. properties:
  65. compatible:
  66. contains:
  67. enum:
  68. - nvidia,tegra194-gte-aon
  69. - nvidia,tegra234-gte-aon
  70. then:
  71. properties:
  72. nvidia,slices:
  73. const: 3
  74. - if:
  75. properties:
  76. compatible:
  77. contains:
  78. enum:
  79. - nvidia,tegra194-gte-lic
  80. then:
  81. properties:
  82. nvidia,slices:
  83. const: 11
  84. - if:
  85. properties:
  86. compatible:
  87. contains:
  88. enum:
  89. - nvidia,tegra234-gte-lic
  90. then:
  91. properties:
  92. nvidia,slices:
  93. const: 17
  94. - if:
  95. properties:
  96. compatible:
  97. contains:
  98. enum:
  99. - nvidia,tegra234-gte-aon
  100. then:
  101. required:
  102. - nvidia,gpio-controller
  103. additionalProperties: false
  104. examples:
  105. - |
  106. tegra_hte_aon: timestamp@c1e0000 {
  107. compatible = "nvidia,tegra194-gte-aon";
  108. reg = <0xc1e0000 0x10000>;
  109. interrupts = <0 13 0x4>;
  110. nvidia,int-threshold = <1>;
  111. #timestamp-cells = <1>;
  112. };
  113. - |
  114. tegra_hte_lic: timestamp@3aa0000 {
  115. compatible = "nvidia,tegra194-gte-lic";
  116. reg = <0x3aa0000 0x10000>;
  117. interrupts = <0 11 0x4>;
  118. nvidia,int-threshold = <1>;
  119. #timestamp-cells = <1>;
  120. };
  121. ...