xref: /freebsd/sys/contrib/device-tree/Bindings/arm/qcom,coresight-tpdm.yaml (revision 01950c46b8155250f64374fb72fc11faa44bf099)
1aa1a8ff2SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2cb7aa33aSEmmanuel Vadot# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
3cb7aa33aSEmmanuel Vadot%YAML 1.2
4cb7aa33aSEmmanuel Vadot---
5cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/qcom,coresight-tpdm.yaml#
6cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7cb7aa33aSEmmanuel Vadot
8cb7aa33aSEmmanuel Vadottitle: Trace, Profiling and Diagnostics Monitor - TPDM
9cb7aa33aSEmmanuel Vadot
10cb7aa33aSEmmanuel Vadotdescription: |
11cb7aa33aSEmmanuel Vadot  The TPDM or Monitor serves as data collection component for various dataset
12cb7aa33aSEmmanuel Vadot  types specified in the QPMDA spec. It covers Implementation defined ((ImplDef),
13cb7aa33aSEmmanuel Vadot  Basic Counts (BC), Tenure Counts (TC), Continuous Multi-Bit (CMB), and Discrete
14cb7aa33aSEmmanuel Vadot  Single Bit (DSB). It performs data collection in the data producing clock
15cb7aa33aSEmmanuel Vadot  domain and transfers it to the data collection time domain, generally ATB
16cb7aa33aSEmmanuel Vadot  clock domain.
17cb7aa33aSEmmanuel Vadot
18cb7aa33aSEmmanuel Vadot  The primary use case of the TPDM is to collect data from different data
19cb7aa33aSEmmanuel Vadot  sources and send it to a TPDA for packetization, timestamping, and funneling.
20cb7aa33aSEmmanuel Vadot
21cb7aa33aSEmmanuel Vadotmaintainers:
22cb7aa33aSEmmanuel Vadot  - Mao Jinlong <quic_jinlmao@quicinc.com>
23cb7aa33aSEmmanuel Vadot  - Tao Zhang <quic_taozha@quicinc.com>
24cb7aa33aSEmmanuel Vadot
25cb7aa33aSEmmanuel Vadot# Need a custom select here or 'arm,primecell' will match on lots of nodes
26cb7aa33aSEmmanuel Vadotselect:
27cb7aa33aSEmmanuel Vadot  properties:
28cb7aa33aSEmmanuel Vadot    compatible:
29cb7aa33aSEmmanuel Vadot      contains:
30cb7aa33aSEmmanuel Vadot        enum:
31cb7aa33aSEmmanuel Vadot          - qcom,coresight-tpdm
32cb7aa33aSEmmanuel Vadot  required:
33cb7aa33aSEmmanuel Vadot    - compatible
34cb7aa33aSEmmanuel Vadot
35cb7aa33aSEmmanuel Vadotproperties:
36cb7aa33aSEmmanuel Vadot  $nodename:
37cb7aa33aSEmmanuel Vadot    pattern: "^tpdm(@[0-9a-f]+)$"
38cb7aa33aSEmmanuel Vadot  compatible:
39cb7aa33aSEmmanuel Vadot    items:
40cb7aa33aSEmmanuel Vadot      - const: qcom,coresight-tpdm
41cb7aa33aSEmmanuel Vadot      - const: arm,primecell
42cb7aa33aSEmmanuel Vadot
43cb7aa33aSEmmanuel Vadot  reg:
44cb7aa33aSEmmanuel Vadot    minItems: 1
45cb7aa33aSEmmanuel Vadot    maxItems: 2
46cb7aa33aSEmmanuel Vadot
47*01950c46SEmmanuel Vadot  qcom,dsb-element-bits:
488d13bc63SEmmanuel Vadot    description:
498d13bc63SEmmanuel Vadot      Specifies the DSB(Discrete Single Bit) element size supported by
508d13bc63SEmmanuel Vadot      the monitor. The associated aggregator will read this size before it
518d13bc63SEmmanuel Vadot      is enabled. DSB element size currently only supports 32-bit and 64-bit.
528d13bc63SEmmanuel Vadot    enum: [32, 64]
538d13bc63SEmmanuel Vadot
54*01950c46SEmmanuel Vadot  qcom,cmb-element-bits:
55*01950c46SEmmanuel Vadot    description:
56*01950c46SEmmanuel Vadot      Specifies the CMB(Continuous Multi-Bit) element size supported by
57*01950c46SEmmanuel Vadot      the monitor. The associated aggregator will read this size before it
58*01950c46SEmmanuel Vadot      is enabled. CMB element size currently only supports 8-bit, 32-bit
59*01950c46SEmmanuel Vadot      and 64-bit.
60*01950c46SEmmanuel Vadot    enum: [8, 32, 64]
61*01950c46SEmmanuel Vadot
628d13bc63SEmmanuel Vadot  qcom,dsb-msrs-num:
638d13bc63SEmmanuel Vadot    description:
648d13bc63SEmmanuel Vadot      Specifies the number of DSB(Discrete Single Bit) MSR(mux select register)
658d13bc63SEmmanuel Vadot      registers supported by the monitor. If this property is not configured
668d13bc63SEmmanuel Vadot      or set to 0, it means this DSB TPDM doesn't support MSR.
678d13bc63SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
688d13bc63SEmmanuel Vadot    minimum: 0
698d13bc63SEmmanuel Vadot    maximum: 32
708d13bc63SEmmanuel Vadot
71*01950c46SEmmanuel Vadot  qcom,cmb-msrs-num:
72*01950c46SEmmanuel Vadot    description:
73*01950c46SEmmanuel Vadot      Specifies the number of CMB MSR(mux select register) registers supported
74*01950c46SEmmanuel Vadot      by the monitor. If this property is not configured or set to 0, it means
75*01950c46SEmmanuel Vadot      this TPDM doesn't support CMB MSR.
76*01950c46SEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
77*01950c46SEmmanuel Vadot    minimum: 0
78*01950c46SEmmanuel Vadot    maximum: 32
79*01950c46SEmmanuel Vadot
80cb7aa33aSEmmanuel Vadot  clocks:
81cb7aa33aSEmmanuel Vadot    maxItems: 1
82cb7aa33aSEmmanuel Vadot
83cb7aa33aSEmmanuel Vadot  clock-names:
84cb7aa33aSEmmanuel Vadot    items:
85cb7aa33aSEmmanuel Vadot      - const: apb_pclk
86cb7aa33aSEmmanuel Vadot
87cb7aa33aSEmmanuel Vadot  out-ports:
88cb7aa33aSEmmanuel Vadot    description: |
89cb7aa33aSEmmanuel Vadot      Output connections from the TPDM to coresight funnel/TPDA.
90cb7aa33aSEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
91cb7aa33aSEmmanuel Vadot
92cb7aa33aSEmmanuel Vadot    properties:
93cb7aa33aSEmmanuel Vadot      port:
94cb7aa33aSEmmanuel Vadot        description: Output connection from the TPDM to coresight
95cb7aa33aSEmmanuel Vadot            funnel/TPDA.
96cb7aa33aSEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
97cb7aa33aSEmmanuel Vadot
98cb7aa33aSEmmanuel Vadotrequired:
99cb7aa33aSEmmanuel Vadot  - compatible
100cb7aa33aSEmmanuel Vadot  - reg
101cb7aa33aSEmmanuel Vadot  - clocks
102cb7aa33aSEmmanuel Vadot  - clock-names
103cb7aa33aSEmmanuel Vadot
104cb7aa33aSEmmanuel VadotadditionalProperties: false
105cb7aa33aSEmmanuel Vadot
106cb7aa33aSEmmanuel Vadotexamples:
107cb7aa33aSEmmanuel Vadot  # minimum TPDM definition. TPDM connect to coresight TPDA.
108cb7aa33aSEmmanuel Vadot  - |
109cb7aa33aSEmmanuel Vadot    tpdm@684c000 {
110cb7aa33aSEmmanuel Vadot      compatible = "qcom,coresight-tpdm", "arm,primecell";
111cb7aa33aSEmmanuel Vadot      reg = <0x0684c000 0x1000>;
112cb7aa33aSEmmanuel Vadot
113*01950c46SEmmanuel Vadot      qcom,dsb-element-bits = <32>;
1148d13bc63SEmmanuel Vadot      qcom,dsb-msrs-num = <16>;
1158d13bc63SEmmanuel Vadot
116cb7aa33aSEmmanuel Vadot      clocks = <&aoss_qmp>;
117cb7aa33aSEmmanuel Vadot      clock-names = "apb_pclk";
118cb7aa33aSEmmanuel Vadot
119cb7aa33aSEmmanuel Vadot      out-ports {
120cb7aa33aSEmmanuel Vadot        port {
121cb7aa33aSEmmanuel Vadot          tpdm_prng_out_tpda_qdss: endpoint {
122cb7aa33aSEmmanuel Vadot            remote-endpoint =
123cb7aa33aSEmmanuel Vadot              <&tpda_qdss_in_tpdm_prng>;
124cb7aa33aSEmmanuel Vadot          };
125cb7aa33aSEmmanuel Vadot        };
126cb7aa33aSEmmanuel Vadot      };
127cb7aa33aSEmmanuel Vadot    };
128cb7aa33aSEmmanuel Vadot
129*01950c46SEmmanuel Vadot    tpdm@6c29000 {
130*01950c46SEmmanuel Vadot      compatible = "qcom,coresight-tpdm", "arm,primecell";
131*01950c46SEmmanuel Vadot      reg = <0x06c29000 0x1000>;
132*01950c46SEmmanuel Vadot
133*01950c46SEmmanuel Vadot      qcom,cmb-element-bits = <64>;
134*01950c46SEmmanuel Vadot      qcom,cmb-msrs-num = <32>;
135*01950c46SEmmanuel Vadot
136*01950c46SEmmanuel Vadot      clocks = <&aoss_qmp>;
137*01950c46SEmmanuel Vadot      clock-names = "apb_pclk";
138*01950c46SEmmanuel Vadot
139*01950c46SEmmanuel Vadot      out-ports {
140*01950c46SEmmanuel Vadot        port {
141*01950c46SEmmanuel Vadot          tpdm_ipcc_out_funnel_center: endpoint {
142*01950c46SEmmanuel Vadot            remote-endpoint = <&funnel_center_in_tpdm_ipcc>;
143*01950c46SEmmanuel Vadot          };
144*01950c46SEmmanuel Vadot        };
145*01950c46SEmmanuel Vadot      };
146*01950c46SEmmanuel Vadot    };
147cb7aa33aSEmmanuel Vadot...
148