Following the same fashion with replicator DT binding, this patch is to
unify the DT binding for funnel to support static and dynamic modes;
finally we get the funnel DT binding as below:

Before patch:

  Static funnel, aka. non-configurable funnel:
    Not supported;

  Dynamic funnel, aka. configurable funnel:
    "arm,coresight-funnel", "arm,primecell";

After patch:

  Static funnel:
    "arm,coresight-static-funnel";

  Dynamic funnel:
    "arm,coresight-dynamic-funnel", "arm,primecell";
    "arm,coresight-funnel", "arm,primecell"; (obsolete)

At the end of this patch, it gives an example for static funnel DT
binding, and updates the dynamic funnel example.

Cc: Mathieu Poirier <mathieu.poir...@linaro.org>
Cc: Suzuki K Poulose <suzuki.poul...@arm.com>
Cc: Wanglai Shi <shiwang...@hisilicon.com>
Signed-off-by: Leo Yan <leo....@linaro.org>
---
 .../devicetree/bindings/arm/coresight.txt     | 53 +++++++++++++++++--
 1 file changed, 48 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/arm/coresight.txt 
b/Documentation/devicetree/bindings/arm/coresight.txt
index d02d160fa8ac..8a88ddebc1a2 100644
--- a/Documentation/devicetree/bindings/arm/coresight.txt
+++ b/Documentation/devicetree/bindings/arm/coresight.txt
@@ -8,7 +8,8 @@ through the intermediate links connecting the source to the 
currently selected
 sink. Each CoreSight component device should use these properties to describe
 its hardware characteristcs.
 
-* Required properties for all components *except* non-configurable replicators:
+* Required properties for all components *except* non-configurable replicators
+  and non-configurable funnels:
 
        * compatible: These have to be supplemented with "arm,primecell" as
          drivers are using the AMBA bus interface.  Possible values include:
@@ -24,8 +25,10 @@ its hardware characteristcs.
                  discovered at boot time when the device is probed.
                        "arm,coresight-tmc", "arm,primecell";
 
-               - Trace Funnel:
-                       "arm,coresight-funnel", "arm,primecell";
+               - Trace Programmable Funnel:
+                       "arm,coresight-dynamic-funnel", "arm,primecell";
+                       "arm,coresight-funnel", "arm,primecell"; (OBSOLETE. For
+                               backward compatibility and will be removed)
 
                - Embedded Trace Macrocell (version 3.x) and
                                        Program Flow Trace Macrocell:
@@ -65,7 +68,7 @@ its hardware characteristcs.
          "stm-stimulus-base", each corresponding to the areas defined in "reg".
 
 * Required properties for devices that don't show up on the AMBA bus, such as
-  non-configurable replicators:
+  non-configurable replicators and non-configurable funnels:
 
        * compatible: Currently supported value is (note the absence of the
          AMBA markee):
@@ -74,6 +77,9 @@ its hardware characteristcs.
                        "arm,coresight-replicator"; (OBSOLETE. For backward
                                compatibility and will be removed)
 
+               - Coresight Non-configurable Funnel:
+                       "arm,coresight-static-funnel";
+
        * port or ports: see "Graph bindings for Coresight" below.
 
 * Optional properties for ETM/PTMs:
@@ -203,8 +209,45 @@ Example:
                };
        };
 
+       funnel {
+               /*
+                * non-configurable funnel don't show up on the AMBA
+                * bus.  As such no need to add "arm,primecell".
+                */
+               compatible = "arm,coresight-static-funnel";
+               clocks = <&crg_ctrl HI3660_PCLK>;
+               clock-names = "apb_pclk";
+
+               out-ports {
+                       port {
+                               combo_funnel_out: endpoint {
+                                       remote-endpoint = <&top_funnel_in>;
+                               };
+                       };
+               };
+
+               in-ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       port@0 {
+                               reg = <0>;
+                               combo_funnel_in0: endpoint {
+                                       remote-endpoint = <&cluster0_etf_out>;
+                               };
+                       };
+
+                       port@1 {
+                               reg = <1>;
+                               combo_funnel_in1: endpoint {
+                                       remote-endpoint = <&cluster1_etf_out>;
+                               };
+                       };
+               };
+       };
+
        funnel@20040000 {
-               compatible = "arm,coresight-funnel", "arm,primecell";
+               compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
                reg = <0 0x20040000 0 0x1000>;
 
                clocks = <&oscclk6a>;
-- 
2.17.1

Reply via email to