xref: /linux/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml (revision d8d2b1f81530988abe2e2bfaceec1c5d30b9a0b4)
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/arm/arm,coresight-dynamic-funnel.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Arm CoreSight Programmable Trace Bus Funnel
8
9maintainers:
10  - Mathieu Poirier <mathieu.poirier@linaro.org>
11  - Mike Leach <mike.leach@linaro.org>
12  - Leo Yan <leo.yan@linaro.org>
13  - Suzuki K Poulose <suzuki.poulose@arm.com>
14
15description: |
16  CoreSight components are compliant with the ARM CoreSight architecture
17  specification and can be connected in various topologies to suit a particular
18  SoCs tracing needs. These trace components can generally be classified as
19  sinks, links and sources. Trace data produced by one or more sources flows
20  through the intermediate links connecting the source to the currently selected
21  sink.
22
23  The Coresight funnel merges 2-8 trace sources into a single trace
24  stream with programmable enable and priority of input ports.
25
26# Need a custom select here or 'arm,primecell' will match on lots of nodes
27select:
28  properties:
29    compatible:
30      contains:
31        const: arm,coresight-dynamic-funnel
32  required:
33    - compatible
34
35allOf:
36  - $ref: /schemas/arm/primecell.yaml#
37
38properties:
39  compatible:
40    items:
41      - const: arm,coresight-dynamic-funnel
42      - const: arm,primecell
43
44  reg:
45    maxItems: 1
46
47  clocks:
48    minItems: 1
49    maxItems: 2
50
51  clock-names:
52    minItems: 1
53    items:
54      - const: apb_pclk
55      - const: atclk
56
57  power-domains:
58    maxItems: 1
59
60  label:
61    description:
62      Description of a coresight device.
63
64  in-ports:
65    $ref: /schemas/graph.yaml#/properties/ports
66
67    patternProperties:
68      '^port(@[0-7])?$':
69        description: Input connections from CoreSight Trace bus
70        $ref: /schemas/graph.yaml#/properties/port
71
72  out-ports:
73    $ref: /schemas/graph.yaml#/properties/ports
74    additionalProperties: false
75
76    properties:
77      port:
78        description: Output connection to CoreSight Trace bus
79        $ref: /schemas/graph.yaml#/properties/port
80
81required:
82  - compatible
83  - reg
84  - clocks
85  - clock-names
86  - in-ports
87  - out-ports
88
89unevaluatedProperties: false
90
91examples:
92  - |
93    funnel@20040000 {
94        compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
95        reg = <0x20040000 0x1000>;
96
97        clocks = <&oscclk6a>;
98        clock-names = "apb_pclk";
99        out-ports {
100            port {
101                funnel_out_port0: endpoint {
102                    remote-endpoint = <&replicator_in_port0>;
103                };
104            };
105        };
106
107        in-ports {
108            #address-cells = <1>;
109            #size-cells = <0>;
110
111            port@0 {
112                reg = <0>;
113                funnel_in_port0: endpoint {
114                    remote-endpoint = <&ptm0_out_port>;
115                };
116            };
117
118            port@1 {
119                reg = <1>;
120                funnel_in_port1: endpoint {
121                    remote-endpoint = <&ptm1_out_port>;
122                };
123            };
124
125            port@2 {
126                reg = <2>;
127                funnel_in_port2: endpoint {
128                    remote-endpoint = <&etm0_out_port>;
129                };
130            };
131        };
132    };
133...
134