# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/qcom/qcom,coresight-static-tpdm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Trace, Profiling and Diagnostics Monitor - TPDM

description:
  The TPDM or Monitor serves as data collection component for various dataset
  types specified in the QPMDA spec. It covers Implementation defined ((ImplDef),
  Basic Counts (BC), Tenure Counts (TC), Continuous Multi-Bit (CMB), and Discrete
  Single Bit (DSB). It performs data collection in the data producing clock
  domain and transfers it to the data collection time domain, generally ATB
  clock domain.

  The primary use case of the TPDM is to collect data from different data
  sources and send it to a TPDA for packetization, timestamping, and funneling.

maintainers:
  - Yuanfang Zhang <quic_yuanfang@quicinc.com>

properties:
  compatible:
    items:
      - const: qcom,coresight-static-tpdm

  out-ports:
    description: |
      Output connections from the TPDM to coresight funnel/TPDA.
    $ref: /schemas/graph.yaml#/properties/ports
    additionalProperties: false

    properties:
      port:
        description: Output connection from the TPDM to coresight
            funnel/TPDA.
        $ref: /schemas/graph.yaml#/properties/port

required:
  - compatible

additionalProperties: false

examples:
  - |
    tpdm-llm {
      compatible = "qcom,coresight-static-tpdm";

      out-ports {
        port {
          tpdm_prng_out_tpda_qdss: endpoint {
            remote-endpoint =
              <&tpda_qdss_in_tpdm_prng>;
          };
        };
      };
    };
