summaryrefslogtreecommitdiffstats
path: root/Documentation/devicetree/bindings/timestamp/nvidia,tegra194-hte.yaml
blob: 456797967adc39b7ce4318f78f1896bed6dad26c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timestamp/nvidia,tegra194-hte.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Tegra on chip generic hardware timestamping engine (HTE) provider

maintainers:
  - Dipen Patel <dipenp@nvidia.com>

description:
  Tegra SoC has two instances of generic hardware timestamping engines (GTE)
  known as GTE GPIO and GTE IRQ, which can monitor subset of GPIO and on chip
  IRQ lines for the state change respectively, upon detection it will record
  timestamp (taken from system counter) in its internal hardware FIFO. It has
  a bitmap array arranged in 32bit slices where each bit represent signal/line
  to enable or disable for the hardware timestamping. The GTE GPIO monitors
  GPIO lines from the AON (always on) GPIO controller.

properties:
  compatible:
    enum:
      - nvidia,tegra194-gte-aon
      - nvidia,tegra194-gte-lic
      - nvidia,tegra234-gte-aon
      - nvidia,tegra234-gte-lic

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  nvidia,int-threshold:
    $ref: /schemas/types.yaml#/definitions/uint32
    description:
      HTE device generates its interrupt based on this u32 FIFO threshold
      value. The recommended value is 1.
    minimum: 1
    maximum: 256

  nvidia,slices:
    $ref: /schemas/types.yaml#/definitions/uint32
    deprecated: true
    description:
      HTE lines are arranged in 32 bit slice where each bit represents different
      line/signal that it can enable/configure for the timestamp. It is u32
      property and the value depends on the HTE instance in the chip. The AON
      GTE instances for both Tegra194 and Tegra234 has 3 slices. The Tegra194
      LIC instance has 11 slices and Tegra234 LIC has 17 slices.
    enum: [3, 11, 17]

  nvidia,gpio-controller:
    $ref: /schemas/types.yaml#/definitions/phandle
    description:
      The phandle to AON gpio controller instance. This is required to handle
      namespace conversion between GPIO and GTE.

  '#timestamp-cells':
    description:
      This represents number of line id arguments as specified by the
      consumers. For the GTE IRQ, this is IRQ number as mentioned in the
      SoC technical reference manual. For the GTE GPIO, its value is same as
      mentioned in the nvidia GPIO device tree binding document.
    const: 1

required:
  - compatible
  - reg
  - interrupts
  - "#timestamp-cells"

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra194-gte-aon
              - nvidia,tegra234-gte-aon
    then:
      properties:
        nvidia,slices:
          const: 3

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra194-gte-lic
    then:
      properties:
        nvidia,slices:
          const: 11

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra234-gte-lic
    then:
      properties:
        nvidia,slices:
          const: 17

  - if:
      properties:
        compatible:
          contains:
            enum:
              - nvidia,tegra234-gte-aon
    then:
      required:
        - nvidia,gpio-controller

additionalProperties: false

examples:
  - |
    tegra_hte_aon: timestamp@c1e0000 {
              compatible = "nvidia,tegra194-gte-aon";
              reg = <0xc1e0000 0x10000>;
              interrupts = <0 13 0x4>;
              nvidia,int-threshold = <1>;
              #timestamp-cells = <1>;
    };

  - |
    tegra_hte_lic: timestamp@3aa0000 {
              compatible = "nvidia,tegra194-gte-lic";
              reg = <0x3aa0000 0x10000>;
              interrupts = <0 11 0x4>;
              nvidia,int-threshold = <1>;
              #timestamp-cells = <1>;
    };

...