From: "Ivan T. Ivanov" <[email protected]>

Add initial set of CoreSight components found on Qualcomm apq8064 based
platforms, including the IFC6410 board.

Signed-off-by: Ivan T. Ivanov <[email protected]>
Acked-by: Mathieu Poirier <[email protected]>
Signed-off-by: Georgi Djakov <[email protected]>
---
Changes since v2 (https://lkml.org/lkml/2016/11/21/522)
 * Rebase to linux-next

Changes since v1 (https://lkml.org/lkml/2016/11/17/474)
 * Moved everything into the SoC dtsi file as suggested by Stephen Boyd.
 * Updated commit message.
 * Got Ack from Mathieu.

 arch/arm/boot/dts/qcom-apq8064.dtsi | 189 +++++++++++++++++++++++++++++++++++-
 1 file changed, 185 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/qcom-apq8064.dtsi 
b/arch/arm/boot/dts/qcom-apq8064.dtsi
index 407a4610f4a7..4b77075ef731 100644
--- a/arch/arm/boot/dts/qcom-apq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-apq8064.dtsi
@@ -28,7 +28,7 @@
                #address-cells = <1>;
                #size-cells = <0>;
 
-               cpu@0 {
+               CPU0: cpu@0 {
                        compatible = "qcom,krait";
                        enable-method = "qcom,kpss-acc-v1";
                        device_type = "cpu";
@@ -39,7 +39,7 @@
                        cpu-idle-states = <&CPU_SPC>;
                };
 
-               cpu@1 {
+               CPU1: cpu@1 {
                        compatible = "qcom,krait";
                        enable-method = "qcom,kpss-acc-v1";
                        device_type = "cpu";
@@ -50,7 +50,7 @@
                        cpu-idle-states = <&CPU_SPC>;
                };
 
-               cpu@2 {
+               CPU2: cpu@2 {
                        compatible = "qcom,krait";
                        enable-method = "qcom,kpss-acc-v1";
                        device_type = "cpu";
@@ -61,7 +61,7 @@
                        cpu-idle-states = <&CPU_SPC>;
                };
 
-               cpu@3 {
+               CPU3: cpu@3 {
                        compatible = "qcom,krait";
                        enable-method = "qcom,kpss-acc-v1";
                        device_type = "cpu";
@@ -1420,6 +1420,187 @@
                                };
                        };
                };
+
+               etb@1a01000 {
+                       compatible = "coresight-etb10", "arm,primecell";
+                       reg = <0x1a01000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       port {
+                               etb_in: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&replicator_out0>;
+                               };
+                       };
+               };
+
+               tpiu@1a03000 {
+                       compatible = "arm,coresight-tpiu", "arm,primecell";
+                       reg = <0x1a03000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       port {
+                               tpiu_in: endpoint {
+                                       slave-mode;
+                                       remote-endpoint = <&replicator_out1>;
+                               };
+                       };
+               };
+
+               replicator {
+                       compatible = "arm,coresight-replicator";
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               port@0 {
+                                       reg = <0>;
+                                       replicator_out0: endpoint {
+                                               remote-endpoint = <&etb_in>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       replicator_out1: endpoint {
+                                               remote-endpoint = <&tpiu_in>;
+                                       };
+                               };
+                               port@2 {
+                                       reg = <0>;
+                                       replicator_in: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&funnel_out>;
+                                       };
+                               };
+                       };
+               };
+
+               funnel@1a04000 {
+                       compatible = "arm,coresight-funnel", "arm,primecell";
+                       reg = <0x1a04000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       ports {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+
+                               /*
+                                * Not described input ports:
+                                * 2 - connected to STM component
+                                * 3 - not-connected
+                                * 6 - not-connected
+                                * 7 - not-connected
+                                */
+                               port@0 {
+                                       reg = <0>;
+                                       funnel_in0: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etm0_out>;
+                                       };
+                               };
+                               port@1 {
+                                       reg = <1>;
+                                       funnel_in1: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etm1_out>;
+                                       };
+                               };
+                               port@4 {
+                                       reg = <4>;
+                                       funnel_in4: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etm2_out>;
+                                       };
+                               };
+                               port@5 {
+                                       reg = <5>;
+                                       funnel_in5: endpoint {
+                                               slave-mode;
+                                               remote-endpoint = <&etm3_out>;
+                                       };
+                               };
+                               port@8 {
+                                       reg = <0>;
+                                       funnel_out: endpoint {
+                                               remote-endpoint = 
<&replicator_in>;
+                                       };
+                               };
+                       };
+               };
+
+               etm@1a1c000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1c000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       cpu = <&CPU0>;
+
+                       port {
+                               etm0_out: endpoint {
+                                       remote-endpoint = <&funnel_in0>;
+                               };
+                       };
+               };
+
+               etm@1a1d000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1d000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       cpu = <&CPU1>;
+
+                       port {
+                               etm1_out: endpoint {
+                                       remote-endpoint = <&funnel_in1>;
+                               };
+                       };
+               };
+
+               etm@1a1e000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1e000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       cpu = <&CPU2>;
+
+                       port {
+                               etm2_out: endpoint {
+                                       remote-endpoint = <&funnel_in4>;
+                               };
+                       };
+               };
+
+               etm@1a1f000 {
+                       compatible = "arm,coresight-etm3x", "arm,primecell";
+                       reg = <0x1a1f000 0x1000>;
+
+                       clocks = <&rpmcc RPM_QDSS_CLK>;
+                       clock-names = "apb_pclk";
+
+                       cpu = <&CPU3>;
+
+                       port {
+                               etm3_out: endpoint {
+                                       remote-endpoint = <&funnel_in5>;
+                               };
+                       };
+               };
        };
 };
 #include "qcom-apq8064-pins.dtsi"

Reply via email to