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-replicator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Arm Coresight Programmable Trace Bus Replicator
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 replicator splits a single trace stream into two trace streams
24  for systems that have more than one trace sink component.
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-replicator
32  required:
33    - compatible
34
35allOf:
36  - $ref: /schemas/arm/primecell.yaml#
37
38properties:
39  compatible:
40    items:
41      - const: arm,coresight-dynamic-replicator
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  qcom,replicator-loses-context:
58    type: boolean
59    description:
60      Indicates that the replicator will lose register context when AMBA clock
61      is removed which is observed in some replicator designs.
62
63  in-ports:
64    $ref: /schemas/graph.yaml#/properties/ports
65    additionalProperties: false
66
67    properties:
68      port:
69        description: Input connection from CoreSight Trace bus
70        $ref: /schemas/graph.yaml#/properties/port
71
72  out-ports:
73    $ref: /schemas/graph.yaml#/properties/ports
74
75    patternProperties:
76      '^port(@[01])?$':
77        description: Output connections to CoreSight Trace bus
78        $ref: /schemas/graph.yaml#/properties/port
79
80required:
81  - compatible
82  - reg
83  - clocks
84  - clock-names
85  - in-ports
86  - out-ports
87
88unevaluatedProperties: false
89
90examples:
91  - |
92    replicator@20120000 {
93        compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
94        reg = <0x20120000 0x1000>;
95
96        clocks = <&soc_smc50mhz>;
97        clock-names = "apb_pclk";
98
99        out-ports {
100            #address-cells = <1>;
101            #size-cells = <0>;
102
103            /* replicator output ports */
104            port@0 {
105                reg = <0>;
106                replicator_out_port0: endpoint {
107                    remote-endpoint = <&tpiu_in_port>;
108                };
109            };
110
111            port@1 {
112                reg = <1>;
113                replicator_out_port1: endpoint {
114                    remote-endpoint = <&etr_in_port>;
115                };
116            };
117        };
118        in-ports {
119            port {
120                replicator_in_port0: endpoint {
121                    remote-endpoint = <&csys2_funnel_out_port>;
122                };
123            };
124        };
125    };
126...
127