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

title: Arm CoreSight Static Trace Bus Funnel

maintainers:
  - Mathieu Poirier <mathieu.poirier@linaro.org>
  - Mike Leach <mike.leach@linaro.org>
  - Leo Yan <leo.yan@linaro.org>
  - Suzuki K Poulose <suzuki.poulose@arm.com>

description: |
  CoreSight components are compliant with the ARM CoreSight architecture
  specification and can be connected in various topologies to suit a particular
  SoCs tracing needs. These trace components can generally be classified as
  sinks, links and sources. Trace data produced by one or more sources flows
  through the intermediate links connecting the source to the currently selected
  sink.

  The Coresight static funnel merges 2-8 trace sources into a single trace
  stream.

properties:
  compatible:
    const: arm,coresight-static-funnel

  power-domains:
    maxItems: 1

  in-ports:
    $ref: /schemas/graph.yaml#/properties/ports

    patternProperties:
      '^port@[0-7]$':
        description: Input connections from CoreSight Trace bus
        $ref: /schemas/graph.yaml#/properties/port

  out-ports:
    $ref: /schemas/graph.yaml#/properties/ports
    additionalProperties: false

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

required:
  - compatible
  - in-ports
  - out-ports

additionalProperties: false

examples:
  - |
    funnel {
        /*
         * non-configurable replicators don't show up on the
         * AMBA bus.  As such no need to add "arm,primecell".
         */
        compatible = "arm,coresight-static-funnel";

        out-ports {
            port {
                combo_funnel_out: endpoint {
                    remote-endpoint = <&top_funnel_in>;
                };
            };
        };

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

            port@0 {
                reg = <0>;
                combo_funnel_in0: endpoint {
                    remote-endpoint = <&cluster0_etf_out>;
                };
            };

            port@1 {
                reg = <1>;
                combo_funnel_in1: endpoint {
                    remote-endpoint = <&cluster1_etf_out>;
                };
            };
        };
    };
...
