GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / arm / arm,coresight-tmc.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/arm/arm,coresight-tmc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Arm CoreSight Trace Memory Controller
8
9 maintainers:
10   - Mathieu Poirier <mathieu.poirier@linaro.org>
11   - Mike Leach <mike.leach@linaro.org>
12   - Leo Yan <leo.yan@linaro.org>
13   - Suzuki K Poulose <suzuki.poulose@arm.com>
14
15 description: |
16   CoreSight components are compliant with the ARM CoreSight architecture
17   specification and can be connected in various topologies to suit a particular
18   SoCs tracing needs. These trace components can generally be classified as
19   sinks, links and sources. Trace data produced by one or more sources flows
20   through the intermediate links connecting the source to the currently selected
21   sink.
22
23   Trace Memory Controller is used for Embedded Trace Buffer(ETB), Embedded Trace
24   FIFO(ETF) and Embedded Trace Router(ETR) configurations. The configuration
25   mode (ETB, ETF, ETR) is discovered at boot time when the device is probed.
26
27 # Need a custom select here or 'arm,primecell' will match on lots of nodes
28 select:
29   properties:
30     compatible:
31       contains:
32         const: arm,coresight-tmc
33   required:
34     - compatible
35
36 allOf:
37   - $ref: /schemas/arm/primecell.yaml#
38
39 properties:
40   compatible:
41     items:
42       - const: arm,coresight-tmc
43       - const: arm,primecell
44
45   reg:
46     maxItems: 1
47
48   clocks:
49     minItems: 1
50     maxItems: 2
51
52   clock-names:
53     minItems: 1
54     items:
55       - const: apb_pclk
56       - const: atclk
57
58   iommus:
59     maxItems: 1
60
61   power-domains:
62     maxItems: 1
63
64   arm,buffer-size:
65     $ref: /schemas/types.yaml#/definitions/uint32
66     deprecated: true
67     description:
68       Size of contiguous buffer space for TMC ETR (embedded trace router). The
69       buffer size can be configured dynamically via buffer_size property in
70       sysfs instead.
71
72   arm,scatter-gather:
73     type: boolean
74     description:
75       Indicates that the TMC-ETR can safely use the SG mode on this system.
76
77   arm,max-burst-size:
78     description:
79       The maximum burst size initiated by TMC on the AXI master interface. The
80       burst size can be in the range [0..15], the setting supports one data
81       transfer per burst up to a maximum of 16 data transfers per burst.
82     $ref: /schemas/types.yaml#/definitions/uint32
83     maximum: 15
84
85   in-ports:
86     $ref: /schemas/graph.yaml#/properties/ports
87     additionalProperties: false
88
89     properties:
90       port:
91         description: Input connection from the CoreSight Trace bus.
92         $ref: /schemas/graph.yaml#/properties/port
93
94   out-ports:
95     $ref: /schemas/graph.yaml#/properties/ports
96     additionalProperties: false
97
98     properties:
99       port:
100         description: AXI or ATB Master output connection. Used for ETR
101           and ETF configurations.
102         $ref: /schemas/graph.yaml#/properties/port
103
104 required:
105   - compatible
106   - reg
107   - clocks
108   - clock-names
109   - in-ports
110
111 unevaluatedProperties: false
112
113 examples:
114   - |
115     etr@20070000 {
116         compatible = "arm,coresight-tmc", "arm,primecell";
117         reg = <0x20070000 0x1000>;
118
119         clocks = <&oscclk6a>;
120         clock-names = "apb_pclk";
121         in-ports {
122             port {
123                 etr_in_port: endpoint {
124                     remote-endpoint = <&replicator2_out_port0>;
125                 };
126             };
127         };
128
129         out-ports {
130             port {
131                 etr_out_port: endpoint {
132                     remote-endpoint = <&catu_in_port>;
133                 };
134             };
135         };
136     };
137 ...