GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / arm / qcom,coresight-tpda.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 # Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
3 %YAML 1.2
4 ---
5 $id: http://devicetree.org/schemas/arm/qcom,coresight-tpda.yaml#
6 $schema: http://devicetree.org/meta-schemas/core.yaml#
7
8 title: Trace, Profiling and Diagnostics Aggregator - TPDA
9
10 description: |
11   TPDAs are responsible for packetization and timestamping of data sets
12   utilizing the MIPI STPv2 packet protocol. Pulling data sets from one or
13   more attached TPDM and pushing the resultant (packetized) data out a
14   master ATB interface. Performing an arbitrated ATB interleaving (funneling)
15   task for free-flowing data from TPDM (i.e. CMB and DSB data set flows).
16
17   There is no strict binding between TPDM and TPDA. TPDA can have multiple
18   TPDMs connect to it. But There must be only one TPDA in the path from the
19   TPDM source to TMC sink. TPDM can directly connect to TPDA's inport or
20   connect to funnel which will connect to TPDA's inport.
21
22   We can use the commands are similar to the below to validate TPDMs.
23   Enable coresight sink first.
24
25   echo 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink
26   echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source
27   echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test
28   echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test
29
30   The test data will be collected in the coresight sink which is enabled.
31   If rwp register of the sink is keeping updating when do integration_test
32   (by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM
33   to sink.
34
35 maintainers:
36   - Mao Jinlong <quic_jinlmao@quicinc.com>
37   - Tao Zhang <quic_taozha@quicinc.com>
38
39 # Need a custom select here or 'arm,primecell' will match on lots of nodes
40 select:
41   properties:
42     compatible:
43       contains:
44         enum:
45           - qcom,coresight-tpda
46   required:
47     - compatible
48
49 properties:
50   $nodename:
51     pattern: "^tpda(@[0-9a-f]+)$"
52   compatible:
53     items:
54       - const: qcom,coresight-tpda
55       - const: arm,primecell
56
57   reg:
58     minItems: 1
59     maxItems: 2
60
61   clocks:
62     maxItems: 1
63
64   clock-names:
65     items:
66       - const: apb_pclk
67
68   in-ports:
69     type: object
70     description: |
71       Input connections from TPDM to TPDA
72     $ref: /schemas/graph.yaml#/properties/ports
73
74   out-ports:
75     type: object
76     description: |
77       Output connections from the TPDA to legacy CoreSight trace bus.
78     $ref: /schemas/graph.yaml#/properties/ports
79
80     properties:
81       port:
82         description:
83           Output connection from the TPDA to legacy CoreSight Trace bus.
84         $ref: /schemas/graph.yaml#/properties/port
85
86 required:
87   - compatible
88   - reg
89   - clocks
90   - clock-names
91   - in-ports
92   - out-ports
93
94 additionalProperties: false
95
96 examples:
97   # minimum tpda definition.
98   - |
99     tpda@6004000 {
100        compatible = "qcom,coresight-tpda", "arm,primecell";
101        reg = <0x6004000 0x1000>;
102
103        clocks = <&aoss_qmp>;
104        clock-names = "apb_pclk";
105
106        in-ports {
107          #address-cells = <1>;
108          #size-cells = <0>;
109
110         port@0 {
111           reg = <0>;
112           tpda_qdss_0_in_tpdm_dcc: endpoint {
113             remote-endpoint =
114               <&tpdm_dcc_out_tpda_qdss_0>;
115             };
116         };
117       };
118
119        out-ports {
120          port {
121                  tpda_qdss_out_funnel_in0: endpoint {
122                     remote-endpoint =
123                     <&funnel_in0_in_tpda_qdss>;
124                   };
125           };
126        };
127     };
128
129 ...