Merge remote-tracking branch 'net-next/master' into mac80211-next
[deliverable/linux.git] / 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 };
This page took 0.044834 seconds and 6 git commands to generate.