From: Mathieu Poirier <mathieu.poir...@linaro.org>

Support for the 2 PTMs, 3 ETMs, funnel, TPIU and replicator
connected to the ETB are included.  Proper handling of the
ITM and the replicator linked to it along with the CTIs
and SWO are not included.

Signed-off-by: Mathieu Poirier <mathieu.poir...@linaro.org>
---
 arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 174 +++++++++++++++++++++++++++++
 1 file changed, 174 insertions(+)

diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts 
b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
index 15f98cb..390f2bb 100644
--- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
+++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts
@@ -334,6 +334,180 @@
                };
        };
 
+       etb: etb@20010000 {
+               compatible = "arm,coresight-etb", "arm,primecell";
+               reg = <0 0x20010000 0 0x1000>;
+
+               coresight-default-sink;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       etb_in_port: endpoint@0 {
+                               slave-mode;
+                               remote-endpoint = <&funnel_out_port0>;
+                       };
+               };
+       };
+
+       tpiu: tpiu@20030000 {
+               compatible = "arm,coresight-tpiu", "arm,primecell";
+               reg = <0 0x20030000 0 0x1000>;
+
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       tpiu_in_port: endpoint@0 {
+                               slave-mode;
+                               remote-endpoint = <&funnel_out_port1>;
+                       };
+               };
+       };
+
+       funnel {
+               compatible = "arm,coresight-funnel", "arm,primecell";
+               reg = <0 0x20040000 0 0x1000>;
+
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* The funnel is connected to a replicator - since
+                        * replicators are hardwired we simply treat the
+                        * funnel as a multiple-in and multiple out component.
+                        * The following two ports really belong to the
+                        * repicator but configured as par of the funnel.
+                        */
+
+                       /* replicator port */
+                       port@0 {
+                               reg = <0>;
+                               funnel_out_port0: endpoint {
+                                       remote-endpoint = <&etb_in_port>;
+                               };
+                       };
+
+                       /* replicator port */
+                       port@1 {
+                               reg = <1>;
+                               funnel_out_port1: endpoint {
+                                       remote-endpoint = <&tpiu_in_port>;
+                               };
+                       };
+                       /* funnel ports */
+                       port@2 {
+                               reg = <0>;
+                               funnel_in_port0: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&ptm0_out_port>;
+                               };
+                       };
+
+                       port@3 {
+                               reg = <1>;
+                               funnel_in_port1: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&ptm1_out_port>;
+                               };
+                       };
+
+                       port@4 {
+                               reg = <2>;
+                               funnel_in_port2: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etm0_out_port>;
+                               };
+                       };
+
+                       port@5 {
+                               reg = <4>;
+                               funnel_in_port4: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etm1_out_port>;
+                               };
+                       };
+
+                       port@6 {
+                               reg = <5>;
+                               funnel_in_port5: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etm2_out_port>;
+                               };
+                       };
+                };
+       };
+
+       ptm0: ptm@2201c000 {
+               compatible = "arm,coresight-etm", "arm,primecell";
+               reg = <0 0x2201c000 0 0x1000>;
+
+               cpu = <&cpu0>;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       ptm0_out_port: endpoint {
+                               remote-endpoint = <&funnel_in_port0>;
+                       };
+               };
+       };
+
+       ptm1: ptm@2201d000 {
+               compatible = "arm,coresight-etm", "arm,primecell";
+               reg = <0 0x2201d000 0 0x1000>;
+
+               cpu = <&cpu1>;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       ptm1_out_port: endpoint {
+                               remote-endpoint = <&funnel_in_port1>;
+                       };
+               };
+       };
+
+       etm0: etm@2203c000 {
+               compatible = "arm,coresight-etm", "arm,primecell";
+               reg = <0 0x2203c000 0 0x1000>;
+
+               cpu = <&cpu2>;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       etm0_out_port: endpoint {
+                               remote-endpoint = <&funnel_in_port2>;
+                       };
+               };
+       };
+
+       etm1: etm@2203d000 {
+               compatible = "arm,coresight-etm", "arm,primecell";
+               reg = <0 0x2203d000 0 0x1000>;
+
+               cpu = <&cpu3>;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       etm1_out_port: endpoint {
+                               remote-endpoint = <&funnel_in_port4>;
+                       };
+               };
+       };
+
+       etm2: etm@2203e000 {
+               compatible = "arm,coresight-etm", "arm,primecell";
+               reg = <0 0x2203e000 0 0x1000>;
+
+               cpu = <&cpu4>;
+               clocks = <&oscclk6a>;
+               clock-names = "apb_pclk";
+               port {
+                       etm2_out_port: endpoint {
+                               remote-endpoint = <&funnel_in_port5>;
+                       };
+               };
+       };
+
        smb {
                compatible = "simple-bus";
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to