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    minItems: 1
45    maxItems: 2
46
47  qcom,dsb-element-size:
48    description:
49      Specifies the DSB(Discrete Single Bit) element size supported by
50      the monitor. The associated aggregator will read this size before it
51      is enabled. DSB element size currently only supports 32-bit and 64-bit.
52    $ref: /schemas/types.yaml#/definitions/uint8
53    enum: [32, 64]
54
55  qcom,dsb-msrs-num:
56    description:
57      Specifies the number of DSB(Discrete Single Bit) MSR(mux select register)
58      registers supported by the monitor. If this property is not configured
59      or set to 0, it means this DSB TPDM doesn't support MSR.
60    $ref: /schemas/types.yaml#/definitions/uint32
61    minimum: 0
62    maximum: 32
63
64  clocks:
65    maxItems: 1
66
67  clock-names:
68    items:
69      - const: apb_pclk
70
71  out-ports:
72    description: |
73      Output connections from the TPDM to coresight funnel/TPDA.
74    $ref: /schemas/graph.yaml#/properties/ports
75
76    properties:
77      port:
78        description: Output connection from the TPDM to coresight
79            funnel/TPDA.
80        $ref: /schemas/graph.yaml#/properties/port
81
82required:
83  - compatible
84  - reg
85  - clocks
86  - clock-names
87
88additionalProperties: false
89
90examples:
91  # minimum TPDM definition. TPDM connect to coresight TPDA.
92  - |
93    tpdm@684c000 {
94      compatible = "qcom,coresight-tpdm", "arm,primecell";
95      reg = <0x0684c000 0x1000>;
96
97      qcom,dsb-element-size = /bits/ 8 <32>;
98      qcom,dsb-msrs-num = <16>;
99
100      clocks = <&aoss_qmp>;
101      clock-names = "apb_pclk";
102
103      out-ports {
104        port {
105          tpdm_prng_out_tpda_qdss: endpoint {
106            remote-endpoint =
107              <&tpda_qdss_in_tpdm_prng>;
108          };
109        };
110      };
111    };
112
113...
114