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