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

title: Arm CoreSight Programmable 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 funnel merges 2-8 trace sources into a single trace
  stream with programmable enable and priority of input ports.

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

allOf:
  - $ref: /schemas/arm/primecell.yaml#

properties:
  compatible:
    items:
      - const: arm,coresight-dynamic-funnel
      - const: arm,primecell

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    items:
      - const: apb_pclk
      - const: atclk

  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
  - reg
  - clocks
  - clock-names
  - in-ports
  - out-ports

unevaluatedProperties: false

examples:
  - |
    funnel@20040000 {
        compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
        reg = <0x20040000 0x1000>;

        clocks = <&oscclk6a>;
        clock-names = "apb_pclk";
        out-ports {
            port {
                funnel_out_port0: endpoint {
                    remote-endpoint = <&replicator_in_port0>;
                };
            };
        };

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

            port@0 {
                reg = <0>;
                funnel_in_port0: endpoint {
                    remote-endpoint = <&ptm0_out_port>;
                };
            };

            port@1 {
                reg = <1>;
                funnel_in_port1: endpoint {
                    remote-endpoint = <&ptm1_out_port>;
                };
            };

            port@2 {
                reg = <2>;
                funnel_in_port2: endpoint {
                    remote-endpoint = <&etm0_out_port>;
                };
            };
        };
    };
...
