Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / devicetree / bindings / arm / coresight.txt
1 * CoreSight Components:
2
3 CoreSight components are compliant with the ARM CoreSight architecture
4 specification and can be connected in various topologies to suit a particular
5 SoCs tracing needs. These trace components can generally be classified as
6 sinks, links and sources. Trace data produced by one or more sources flows
7 through the intermediate links connecting the source to the currently selected
8 sink. Each CoreSight component device should use these properties to describe
9 its hardware characteristcs.
10
11 * Required properties for all components *except* non-configurable replicators:
12
13         * compatible: These have to be supplemented with "arm,primecell" as
14           drivers are using the AMBA bus interface.  Possible values include:
15                 - "arm,coresight-etb10", "arm,primecell";
16                 - "arm,coresight-tpiu", "arm,primecell";
17                 - "arm,coresight-tmc", "arm,primecell";
18                 - "arm,coresight-funnel", "arm,primecell";
19                 - "arm,coresight-etm3x", "arm,primecell";
20
21         * reg: physical base address and length of the register
22           set(s) of the component.
23
24         * clocks: the clock associated to this component.
25
26         * clock-names: the name of the clock as referenced by the code.
27           Since we are using the AMBA framework, the name should be
28           "apb_pclk".
29
30         * port or ports: The representation of the component's port
31           layout using the generic DT graph presentation found in
32           "bindings/graph.txt".
33
34 * Required properties for devices that don't show up on the AMBA bus, such as
35   non-configurable replicators:
36
37         * compatible: Currently supported value is (note the absence of the
38           AMBA markee):
39                 - "arm,coresight-replicator"
40
41         * port or ports: same as above.
42
43 * Optional properties for ETM/PTMs:
44
45         * arm,cp14: must be present if the system accesses ETM/PTM management
46           registers via co-processor 14.
47
48         * cpu: the cpu phandle this ETM/PTM is affined to. When omitted the
49           source is considered to belong to CPU0.
50
51 * Optional property for TMC:
52
53         * arm,buffer-size: size of contiguous buffer space for TMC ETR
54          (embedded trace router)
55
56
57 Example:
58
59 1. Sinks
60         etb@20010000 {
61                 compatible = "arm,coresight-etb10", "arm,primecell";
62                 reg = <0 0x20010000 0 0x1000>;
63
64                 clocks = <&oscclk6a>;
65                 clock-names = "apb_pclk";
66                 port {
67                         etb_in_port: endpoint@0 {
68                                 slave-mode;
69                                 remote-endpoint = <&replicator_out_port0>;
70                         };
71                 };
72         };
73
74         tpiu@20030000 {
75                 compatible = "arm,coresight-tpiu", "arm,primecell";
76                 reg = <0 0x20030000 0 0x1000>;
77
78                 clocks = <&oscclk6a>;
79                 clock-names = "apb_pclk";
80                 port {
81                         tpiu_in_port: endpoint@0 {
82                                 slave-mode;
83                                 remote-endpoint = <&replicator_out_port1>;
84                         };
85                 };
86         };
87
88 2. Links
89         replicator {
90                 /* non-configurable replicators don't show up on the
91                  * AMBA bus.  As such no need to add "arm,primecell".
92                  */
93                 compatible = "arm,coresight-replicator";
94
95                 ports {
96                         #address-cells = <1>;
97                         #size-cells = <0>;
98
99                         /* replicator output ports */
100                         port@0 {
101                                 reg = <0>;
102                                 replicator_out_port0: endpoint {
103                                         remote-endpoint = <&etb_in_port>;
104                                 };
105                         };
106
107                         port@1 {
108                                 reg = <1>;
109                                 replicator_out_port1: endpoint {
110                                         remote-endpoint = <&tpiu_in_port>;
111                                 };
112                         };
113
114                         /* replicator input port */
115                         port@2 {
116                                 reg = <0>;
117                                 replicator_in_port0: endpoint {
118                                         slave-mode;
119                                         remote-endpoint = <&funnel_out_port0>;
120                                 };
121                         };
122                 };
123         };
124
125         funnel@20040000 {
126                 compatible = "arm,coresight-funnel", "arm,primecell";
127                 reg = <0 0x20040000 0 0x1000>;
128
129                 clocks = <&oscclk6a>;
130                 clock-names = "apb_pclk";
131                 ports {
132                         #address-cells = <1>;
133                         #size-cells = <0>;
134
135                         /* funnel output port */
136                         port@0 {
137                                 reg = <0>;
138                                 funnel_out_port0: endpoint {
139                                         remote-endpoint =
140                                                         <&replicator_in_port0>;
141                                 };
142                         };
143
144                         /* funnel input ports */
145                         port@1 {
146                                 reg = <0>;
147                                 funnel_in_port0: endpoint {
148                                         slave-mode;
149                                         remote-endpoint = <&ptm0_out_port>;
150                                 };
151                         };
152
153                         port@2 {
154                                 reg = <1>;
155                                 funnel_in_port1: endpoint {
156                                         slave-mode;
157                                         remote-endpoint = <&ptm1_out_port>;
158                                 };
159                         };
160
161                         port@3 {
162                                 reg = <2>;
163                                 funnel_in_port2: endpoint {
164                                         slave-mode;
165                                         remote-endpoint = <&etm0_out_port>;
166                                 };
167                         };
168
169                 };
170         };
171
172 3. Sources
173         ptm@2201c000 {
174                 compatible = "arm,coresight-etm3x", "arm,primecell";
175                 reg = <0 0x2201c000 0 0x1000>;
176
177                 cpu = <&cpu0>;
178                 clocks = <&oscclk6a>;
179                 clock-names = "apb_pclk";
180                 port {
181                         ptm0_out_port: endpoint {
182                                 remote-endpoint = <&funnel_in_port0>;
183                         };
184                 };
185         };
186
187         ptm@2201d000 {
188                 compatible = "arm,coresight-etm3x", "arm,primecell";
189                 reg = <0 0x2201d000 0 0x1000>;
190
191                 cpu = <&cpu1>;
192                 clocks = <&oscclk6a>;
193                 clock-names = "apb_pclk";
194                 port {
195                         ptm1_out_port: endpoint {
196                                 remote-endpoint = <&funnel_in_port1>;
197                         };
198                 };
199         };