arm64: dts: juno: add CoreSight support for Juno r1/r2 variants
authorMike Leach <mike.leach@linaro.org>
Wed, 11 Jan 2017 20:44:08 +0000 (20:44 +0000)
committerSudeep Holla <sudeep.holla@arm.com>
Wed, 18 Jan 2017 11:14:23 +0000 (11:14 +0000)
The CoreSight support added for Juno is valid for only Juno r0.
The Juno r1 and r2 variants have additional components and alternative
connection routes between trace source and sinks.

This patch builds on top of the existing r0 support and extends it to
Juno r1/r2 variants.

Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mike Leach <mike.leach@linaro.org>
[sudeep.holla@arm.com: minor changelog update and major reorganisation of
the common coresight components back into juno-base.dtsi to avoid
duplication, also renamed funnel node names]
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi [new file with mode: 0644]
arch/arm64/boot/dts/arm/juno-r1.dts
arch/arm64/boot/dts/arm/juno-r2.dts

diff --git a/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi b/arch/arm64/boot/dts/arm/juno-cs-r1r2.dtsi
new file mode 100644 (file)
index 0000000..aa03050
--- /dev/null
@@ -0,0 +1,100 @@
+/ {
+       funnel@20130000 { /* cssys1 */
+               compatible = "arm,coresight-funnel", "arm,primecell";
+               reg = <0 0x20130000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* output port */
+                       port@0 {
+                               reg = <0>;
+                               csys1_funnel_out_port: endpoint {
+                                       remote-endpoint = <&etf1_in_port>;
+                               };
+                       };
+
+                       /* input port */
+                       port@1 {
+                               reg = <0>;
+                               csys1_funnel_in_port0: endpoint {
+                                       slave-mode;
+                               };
+                       };
+
+               };
+       };
+
+       etf@20140000 { /* etf1 */
+               compatible = "arm,coresight-tmc", "arm,primecell";
+               reg = <0 0x20140000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* input port */
+                       port@0 {
+                               reg = <0>;
+                               etf1_in_port: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&csys1_funnel_out_port>;
+                               };
+                       };
+
+                       /* output port */
+                       port@1 {
+                               reg = <0>;
+                               etf1_out_port: endpoint {
+                                       remote-endpoint = <&csys2_funnel_in_port1>;
+                               };
+                       };
+               };
+       };
+
+       funnel@20150000 { /* cssys2 */
+               compatible = "arm,coresight-funnel", "arm,primecell";
+               reg = <0 0x20150000 0 0x1000>;
+
+               clocks = <&soc_smc50mhz>;
+               clock-names = "apb_pclk";
+               power-domains = <&scpi_devpd 0>;
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       /* output port */
+                       port@0 {
+                               reg = <0>;
+                               csys2_funnel_out_port: endpoint {
+                                       remote-endpoint = <&replicator_in_port0>;
+                               };
+                       };
+
+                       /* input ports */
+                       port@1 {
+                               reg = <0>;
+                               csys2_funnel_in_port0: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etf0_out_port>;
+                               };
+                       };
+
+                       port@2 {
+                               reg = <1>;
+                               csys2_funnel_in_port1: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&etf1_out_port>;
+                               };
+                       };
+
+               };
+       };
+};
index b883a8afb6f46bf7f5e28fea219705053ebf9477..aef138aa5765ea0e2f823d517653d42ac9ae40e9 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include "juno-base.dtsi"
+#include "juno-cs-r1r2.dtsi"
 
 / {
        model = "ARM Juno development board (r1)";
 &gpu1_thermal_zone {
        status = "okay";
 };
+
+&etf0_out_port {
+       remote-endpoint = <&csys2_funnel_in_port0>;
+};
+
+&replicator_in_port0 {
+       remote-endpoint = <&csys2_funnel_out_port>;
+};
index cfd8150bf30ac4c106696925e7332c27e7f2fc11..827da7c92607ef4735c9d896b2b6a59c70bab112 100644 (file)
@@ -10,6 +10,7 @@
 
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include "juno-base.dtsi"
+#include "juno-cs-r1r2.dtsi"
 
 / {
        model = "ARM Juno development board (r2)";
 &gpu1_thermal_zone {
        status = "okay";
 };
+
+&etf0_out_port {
+       remote-endpoint = <&csys2_funnel_in_port0>;
+};
+
+&replicator_in_port0 {
+       remote-endpoint = <&csys2_funnel_out_port>;
+};