xref: /linux/Documentation/devicetree/bindings/arm/qcom,coresight-tpdm.yaml (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
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-tpdm.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Trace, Profiling and Diagnostics Monitor - TPDM
9
10description: |
11  The TPDM or Monitor serves as data collection component for various dataset
12  types specified in the QPMDA spec. It covers Implementation defined ((ImplDef),
13  Basic Counts (BC), Tenure Counts (TC), Continuous Multi-Bit (CMB), and Discrete
14  Single Bit (DSB). It performs data collection in the data producing clock
15  domain and transfers it to the data collection time domain, generally ATB
16  clock domain.
17
18  The primary use case of the TPDM is to collect data from different data
19  sources and send it to a TPDA for packetization, timestamping, and funneling.
20
21maintainers:
22  - Mao Jinlong <quic_jinlmao@quicinc.com>
23  - Tao Zhang <quic_taozha@quicinc.com>
24
25# Need a custom select here or 'arm,primecell' will match on lots of nodes
26select:
27  properties:
28    compatible:
29      contains:
30        enum:
31          - qcom,coresight-tpdm
32  required:
33    - compatible
34
35properties:
36  $nodename:
37    pattern: "^tpdm(@[0-9a-f]+)$"
38  compatible:
39    items:
40      - const: qcom,coresight-tpdm
41      - const: arm,primecell
42
43  reg:
44    maxItems: 1
45
46  qcom,dsb-element-bits:
47    description:
48      Specifies the DSB(Discrete Single Bit) element size supported by
49      the monitor. The associated aggregator will read this size before it
50      is enabled. DSB element size currently only supports 32-bit and 64-bit.
51    enum: [32, 64]
52
53  qcom,cmb-element-bits:
54    description:
55      Specifies the CMB(Continuous Multi-Bit) element size supported by
56      the monitor. The associated aggregator will read this size before it
57      is enabled. CMB element size currently only supports 8-bit, 32-bit
58      and 64-bit.
59    enum: [8, 32, 64]
60
61  qcom,dsb-msrs-num:
62    description:
63      Specifies the number of DSB(Discrete Single Bit) MSR(mux select register)
64      registers supported by the monitor. If this property is not configured
65      or set to 0, it means this DSB TPDM doesn't support MSR.
66    $ref: /schemas/types.yaml#/definitions/uint32
67    minimum: 0
68    maximum: 32
69
70  qcom,cmb-msrs-num:
71    description:
72      Specifies the number of CMB MSR(mux select register) registers supported
73      by the monitor. If this property is not configured or set to 0, it means
74      this TPDM doesn't support CMB MSR.
75    $ref: /schemas/types.yaml#/definitions/uint32
76    minimum: 0
77    maximum: 32
78
79  label:
80    description:
81      Description of a coresight device.
82
83  clocks:
84    maxItems: 1
85
86  clock-names:
87    items:
88      - const: apb_pclk
89
90  out-ports:
91    description: |
92      Output connections from the TPDM to coresight funnel/TPDA.
93    $ref: /schemas/graph.yaml#/properties/ports
94
95    properties:
96      port:
97        description: Output connection from the TPDM to coresight
98            funnel/TPDA.
99        $ref: /schemas/graph.yaml#/properties/port
100
101required:
102  - compatible
103  - reg
104  - clocks
105  - clock-names
106
107additionalProperties: false
108
109examples:
110  # minimum TPDM definition. TPDM connect to coresight TPDA.
111  - |
112    tpdm@684c000 {
113      compatible = "qcom,coresight-tpdm", "arm,primecell";
114      reg = <0x0684c000 0x1000>;
115
116      qcom,dsb-element-bits = <32>;
117      qcom,dsb-msrs-num = <16>;
118
119      clocks = <&aoss_qmp>;
120      clock-names = "apb_pclk";
121
122      out-ports {
123        port {
124          tpdm_prng_out_tpda_qdss: endpoint {
125            remote-endpoint =
126              <&tpda_qdss_in_tpdm_prng>;
127          };
128        };
129      };
130    };
131
132    tpdm@6c29000 {
133      compatible = "qcom,coresight-tpdm", "arm,primecell";
134      reg = <0x06c29000 0x1000>;
135
136      qcom,cmb-element-bits = <64>;
137      qcom,cmb-msrs-num = <32>;
138
139      clocks = <&aoss_qmp>;
140      clock-names = "apb_pclk";
141
142      out-ports {
143        port {
144          tpdm_ipcc_out_funnel_center: endpoint {
145            remote-endpoint = <&funnel_center_in_tpdm_ipcc>;
146          };
147        };
148      };
149    };
150...
151