xref: /linux/Documentation/devicetree/bindings/arm/qcom,coresight-ctcu.yaml (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1*166df2a1SJie Gan# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*166df2a1SJie Gan%YAML 1.2
3*166df2a1SJie Gan---
4*166df2a1SJie Gan$id: http://devicetree.org/schemas/arm/qcom,coresight-ctcu.yaml#
5*166df2a1SJie Gan$schema: http://devicetree.org/meta-schemas/core.yaml#
6*166df2a1SJie Gan
7*166df2a1SJie Gantitle: CoreSight TMC Control Unit
8*166df2a1SJie Gan
9*166df2a1SJie Ganmaintainers:
10*166df2a1SJie Gan  - Yuanfang Zhang <quic_yuanfang@quicinc.com>
11*166df2a1SJie Gan  - Mao Jinlong <quic_jinlmao@quicinc.com>
12*166df2a1SJie Gan  - Jie Gan <quic_jiegan@quicinc.com>
13*166df2a1SJie Gan
14*166df2a1SJie Gandescription: |
15*166df2a1SJie Gan  The Trace Memory Controller(TMC) is used for Embedded Trace Buffer(ETB),
16*166df2a1SJie Gan  Embedded Trace FIFO(ETF) and Embedded Trace Router(ETR) configurations.
17*166df2a1SJie Gan  The configuration mode (ETB, ETF, ETR) is discovered at boot time when
18*166df2a1SJie Gan  the device is probed.
19*166df2a1SJie Gan
20*166df2a1SJie Gan  The Coresight TMC Control unit controls various Coresight behaviors.
21*166df2a1SJie Gan  It works as a helper device when connected to TMC ETR device.
22*166df2a1SJie Gan  It is responsible for controlling the data filter function based on
23*166df2a1SJie Gan  the source device's Trace ID for TMC ETR device. The trace data with
24*166df2a1SJie Gan  that Trace id can get into ETR's buffer while other trace data gets
25*166df2a1SJie Gan  ignored.
26*166df2a1SJie Gan
27*166df2a1SJie Ganproperties:
28*166df2a1SJie Gan  compatible:
29*166df2a1SJie Gan    enum:
30*166df2a1SJie Gan      - qcom,sa8775p-ctcu
31*166df2a1SJie Gan
32*166df2a1SJie Gan  reg:
33*166df2a1SJie Gan    maxItems: 1
34*166df2a1SJie Gan
35*166df2a1SJie Gan  clocks:
36*166df2a1SJie Gan    maxItems: 1
37*166df2a1SJie Gan
38*166df2a1SJie Gan  clock-names:
39*166df2a1SJie Gan    items:
40*166df2a1SJie Gan      - const: apb
41*166df2a1SJie Gan
42*166df2a1SJie Gan  in-ports:
43*166df2a1SJie Gan    $ref: /schemas/graph.yaml#/properties/ports
44*166df2a1SJie Gan
45*166df2a1SJie Gan    patternProperties:
46*166df2a1SJie Gan      '^port(@[0-1])?$':
47*166df2a1SJie Gan        description: Input connections from CoreSight Trace bus
48*166df2a1SJie Gan        $ref: /schemas/graph.yaml#/properties/port
49*166df2a1SJie Gan
50*166df2a1SJie Ganrequired:
51*166df2a1SJie Gan  - compatible
52*166df2a1SJie Gan  - reg
53*166df2a1SJie Gan  - in-ports
54*166df2a1SJie Gan
55*166df2a1SJie GanadditionalProperties: false
56*166df2a1SJie Gan
57*166df2a1SJie Ganexamples:
58*166df2a1SJie Gan  - |
59*166df2a1SJie Gan    ctcu@1001000 {
60*166df2a1SJie Gan        compatible = "qcom,sa8775p-ctcu";
61*166df2a1SJie Gan        reg = <0x1001000 0x1000>;
62*166df2a1SJie Gan
63*166df2a1SJie Gan        clocks = <&aoss_qmp>;
64*166df2a1SJie Gan        clock-names = "apb";
65*166df2a1SJie Gan
66*166df2a1SJie Gan        in-ports {
67*166df2a1SJie Gan            #address-cells = <1>;
68*166df2a1SJie Gan            #size-cells = <0>;
69*166df2a1SJie Gan
70*166df2a1SJie Gan            port@0 {
71*166df2a1SJie Gan                reg = <0>;
72*166df2a1SJie Gan                ctcu_in_port0: endpoint {
73*166df2a1SJie Gan                    remote-endpoint = <&etr0_out_port>;
74*166df2a1SJie Gan                };
75*166df2a1SJie Gan            };
76*166df2a1SJie Gan
77*166df2a1SJie Gan            port@1 {
78*166df2a1SJie Gan                reg = <1>;
79*166df2a1SJie Gan                ctcu_in_port1: endpoint {
80*166df2a1SJie Gan                    remote-endpoint = <&etr1_out_port>;
81*166df2a1SJie Gan                };
82*166df2a1SJie Gan            };
83*166df2a1SJie Gan        };
84*166df2a1SJie Gan    };
85