# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
%YAML 1.2
---
$id: http://devicetree.org/schemas/arm/qcom,coresight-tpda.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Trace, Profiling and Diagnostics Aggregator - TPDA

description: |
  TPDAs are responsible for packetization and timestamping of data sets
  utilizing the MIPI STPv2 packet protocol. Pulling data sets from one or
  more attached TPDM and pushing the resultant (packetized) data out a
  master ATB interface. Performing an arbitrated ATB interleaving (funneling)
  task for free-flowing data from TPDM (i.e. CMB and DSB data set flows).

  There is no strict binding between TPDM and TPDA. TPDA can have multiple
  TPDMs connect to it. But There must be only one TPDA in the path from the
  TPDM source to TMC sink. TPDM can directly connect to TPDA's inport or
  connect to funnel which will connect to TPDA's inport.

  We can use the commands are similar to the below to validate TPDMs.
  Enable coresight sink first.

  echo 1 > /sys/bus/coresight/devices/tmc_etf0/enable_sink
  echo 1 > /sys/bus/coresight/devices/tpdm0/enable_source
  echo 1 > /sys/bus/coresight/devices/tpdm0/integration_test
  echo 2 > /sys/bus/coresight/devices/tpdm0/integration_test

  The test data will be collected in the coresight sink which is enabled.
  If rwp register of the sink is keeping updating when do integration_test
  (by cat tmc_etf0/mgmt/rwp), it means there is data generated from TPDM
  to sink.

maintainers:
  - Mao Jinlong <quic_jinlmao@quicinc.com>
  - Tao Zhang <quic_taozha@quicinc.com>

# Need a custom select here or 'arm,primecell' will match on lots of nodes
select:
  properties:
    compatible:
      contains:
        enum:
          - qcom,coresight-tpda
  required:
    - compatible

properties:
  $nodename:
    pattern: "^tpda(@[0-9a-f]+)$"
  compatible:
    items:
      - const: qcom,coresight-tpda
      - const: arm,primecell

  reg:
    minItems: 1
    maxItems: 2

  clocks:
    maxItems: 1

  clock-names:
    items:
      - const: apb_pclk

  in-ports:
    description: |
      Input connections from TPDM to TPDA
    $ref: /schemas/graph.yaml#/properties/ports

  out-ports:
    description: |
      Output connections from the TPDA to legacy CoreSight trace bus.
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port:
        description:
          Output connection from the TPDA to legacy CoreSight Trace bus.
        $ref: /schemas/graph.yaml#/properties/port

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - in-ports
  - out-ports

additionalProperties: false

examples:
  # minimum tpda definition.
  - |
    tpda@6004000 {
      compatible = "qcom,coresight-tpda", "arm,primecell";
      reg = <0x6004000 0x1000>;

      clocks = <&aoss_qmp>;
      clock-names = "apb_pclk";

      in-ports {
        #address-cells = <1>;
        #size-cells = <0>;

        port@0 {
          reg = <0>;
          tpda_qdss_0_in_tpdm_dcc: endpoint {
            remote-endpoint = <&tpdm_dcc_out_tpda_qdss_0>;
          };
        };
      };

      out-ports {
        port {
          tpda_qdss_out_funnel_in0: endpoint {
            remote-endpoint = <&funnel_in0_in_tpda_qdss>;
          };
        };
      };
    };

...
