xref: /freebsd/sys/contrib/device-tree/Bindings/arm/arm,coresight-stm.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1b97ee269SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2b97ee269SEmmanuel Vadot%YAML 1.2
3b97ee269SEmmanuel Vadot---
4b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/arm,coresight-stm.yaml#
5b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6b97ee269SEmmanuel Vadot
7b97ee269SEmmanuel Vadottitle: Arm CoreSight System Trace MacroCell
8b97ee269SEmmanuel Vadot
9b97ee269SEmmanuel Vadotmaintainers:
10b97ee269SEmmanuel Vadot  - Mathieu Poirier <mathieu.poirier@linaro.org>
11b97ee269SEmmanuel Vadot  - Mike Leach <mike.leach@linaro.org>
12b97ee269SEmmanuel Vadot  - Leo Yan <leo.yan@linaro.org>
13b97ee269SEmmanuel Vadot  - Suzuki K Poulose <suzuki.poulose@arm.com>
14b97ee269SEmmanuel Vadot
15b97ee269SEmmanuel Vadotdescription: |
16b97ee269SEmmanuel Vadot  CoreSight components are compliant with the ARM CoreSight architecture
17b97ee269SEmmanuel Vadot  specification and can be connected in various topologies to suit a particular
18b97ee269SEmmanuel Vadot  SoCs tracing needs. These trace components can generally be classified as
19b97ee269SEmmanuel Vadot  sinks, links and sources. Trace data produced by one or more sources flows
20b97ee269SEmmanuel Vadot  through the intermediate links connecting the source to the currently selected
21b97ee269SEmmanuel Vadot  sink.
22b97ee269SEmmanuel Vadot
23b97ee269SEmmanuel Vadot  The STM is a trace source that is integrated into a CoreSight system, designed
24b97ee269SEmmanuel Vadot  primarily for high-bandwidth trace of instrumentation embedded into software.
25b97ee269SEmmanuel Vadot  This instrumentation is made up of memory-mapped writes to the STM Advanced
26b97ee269SEmmanuel Vadot  eXtensible Interface (AXI) slave, which carry information about the behavior
27b97ee269SEmmanuel Vadot  of the software.
28b97ee269SEmmanuel Vadot
29b97ee269SEmmanuel Vadotselect:
30b97ee269SEmmanuel Vadot  properties:
31b97ee269SEmmanuel Vadot    compatible:
32b97ee269SEmmanuel Vadot      contains:
33b97ee269SEmmanuel Vadot        const: arm,coresight-stm
34b97ee269SEmmanuel Vadot  required:
35b97ee269SEmmanuel Vadot    - compatible
36b97ee269SEmmanuel Vadot
37b97ee269SEmmanuel VadotallOf:
38b97ee269SEmmanuel Vadot  - $ref: /schemas/arm/primecell.yaml#
39b97ee269SEmmanuel Vadot
40b97ee269SEmmanuel Vadotproperties:
41b97ee269SEmmanuel Vadot  compatible:
42b97ee269SEmmanuel Vadot    items:
43b97ee269SEmmanuel Vadot      - const: arm,coresight-stm
44b97ee269SEmmanuel Vadot      - const: arm,primecell
45b97ee269SEmmanuel Vadot
46b97ee269SEmmanuel Vadot  reg:
47b97ee269SEmmanuel Vadot    maxItems: 2
48b97ee269SEmmanuel Vadot
49b97ee269SEmmanuel Vadot  reg-names:
50b97ee269SEmmanuel Vadot    items:
51b97ee269SEmmanuel Vadot      - const: stm-base
52b97ee269SEmmanuel Vadot      - const: stm-stimulus-base
53b97ee269SEmmanuel Vadot
54b97ee269SEmmanuel Vadot  clocks:
55b97ee269SEmmanuel Vadot    minItems: 1
56b97ee269SEmmanuel Vadot    maxItems: 2
57b97ee269SEmmanuel Vadot
58b97ee269SEmmanuel Vadot  clock-names:
59b97ee269SEmmanuel Vadot    minItems: 1
60b97ee269SEmmanuel Vadot    items:
61b97ee269SEmmanuel Vadot      - const: apb_pclk
62b97ee269SEmmanuel Vadot      - const: atclk
63b97ee269SEmmanuel Vadot
64*7ef62cebSEmmanuel Vadot  power-domains:
65*7ef62cebSEmmanuel Vadot    maxItems: 1
66*7ef62cebSEmmanuel Vadot
67b97ee269SEmmanuel Vadot  out-ports:
68b97ee269SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
69b97ee269SEmmanuel Vadot    additionalProperties: false
70b97ee269SEmmanuel Vadot
71b97ee269SEmmanuel Vadot    properties:
72b97ee269SEmmanuel Vadot      port:
73b97ee269SEmmanuel Vadot        description: Output connection to the CoreSight Trace bus.
74b97ee269SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
75b97ee269SEmmanuel Vadot
76b97ee269SEmmanuel Vadotrequired:
77b97ee269SEmmanuel Vadot  - compatible
78b97ee269SEmmanuel Vadot  - reg
79b97ee269SEmmanuel Vadot  - reg-names
80b97ee269SEmmanuel Vadot  - clocks
81b97ee269SEmmanuel Vadot  - clock-names
82b97ee269SEmmanuel Vadot  - out-ports
83b97ee269SEmmanuel Vadot
84b97ee269SEmmanuel VadotunevaluatedProperties: false
85b97ee269SEmmanuel Vadot
86b97ee269SEmmanuel Vadotexamples:
87b97ee269SEmmanuel Vadot  - |
88b97ee269SEmmanuel Vadot    stm@20100000 {
89b97ee269SEmmanuel Vadot        compatible = "arm,coresight-stm", "arm,primecell";
90b97ee269SEmmanuel Vadot        reg = <0x20100000 0x1000>,
91b97ee269SEmmanuel Vadot              <0x28000000 0x180000>;
92b97ee269SEmmanuel Vadot        reg-names = "stm-base", "stm-stimulus-base";
93b97ee269SEmmanuel Vadot
94b97ee269SEmmanuel Vadot        clocks = <&soc_smc50mhz>;
95b97ee269SEmmanuel Vadot        clock-names = "apb_pclk";
96b97ee269SEmmanuel Vadot        out-ports {
97b97ee269SEmmanuel Vadot            port {
98b97ee269SEmmanuel Vadot                stm_out_port: endpoint {
99b97ee269SEmmanuel Vadot                    remote-endpoint = <&main_funnel_in_port2>;
100b97ee269SEmmanuel Vadot                };
101b97ee269SEmmanuel Vadot            };
102b97ee269SEmmanuel Vadot        };
103b97ee269SEmmanuel Vadot    };
104b97ee269SEmmanuel Vadot...
105