On Fri, Jun 01, 2018 at 02:16:05PM +0100, Suzuki K Poulose wrote: > The coresight drivers relied on default bindings for graph > in DT, while reusing the "reg" field of the "ports" to indicate > the actual hardware port number for the connections. However, > with the rules getting stricter w.r.t to the address mismatch > with the label, it is no longer possible to use the port address > field for the hardware port number. Hence, we add an explicit > property to denote the hardware port number, "coresight,hwid" > which must be specified for each "endpoint". > > Cc: Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> > Cc: Sudeep Holla <sudeep.holla@xxxxxxx> > Cc: Rob Herring <robh@xxxxxxxxxx> > Signed-off-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx> > --- > .../devicetree/bindings/arm/coresight.txt | 26 +++++++++--- > drivers/hwtracing/coresight/of_coresight.c | 46 ++++++++++++++++------ > 2 files changed, 54 insertions(+), 18 deletions(-) > > diff --git a/Documentation/devicetree/bindings/arm/coresight.txt b/Documentation/devicetree/bindings/arm/coresight.txt > index bd36e40..385581a 100644 > --- a/Documentation/devicetree/bindings/arm/coresight.txt > +++ b/Documentation/devicetree/bindings/arm/coresight.txt > @@ -104,7 +104,11 @@ properties to uniquely identify the connection details. > "slave-mode" > > * Hardware Port number at the component: > - - The hardware port number is assumed to be the address of the "port" component. > + - (Obsolete) The hardware port number is assumed to be the address of the "port" component. > + - Each "endpoint" must define the hardware port of the local end of the > + connection using the following property: > + "coresight,hwid" - 32bit integer, hardware port number at the local end. "coresight" is not a vendor and properties are in the form [<vendor>,]<prop-name>. > + > > > Example: > @@ -120,6 +124,7 @@ Example: > etb_in_port: endpoint@0 { There shouldn't be a unit address here because there is no reg property. > slave-mode; > remote-endpoint = <&replicator_out_port0>; > + coresight,hwid = <0>; It doesn't make sense for these to be in the endpoint. If you had multiple endpoints, then you would have to duplicate it. "ports" are a single data stream. "endpoints" are connections to that stream. So if you have a muxed (input) or fanout/1-to-many (output) connection, then you have multiple endpoints. The same applied to the slave-mode property, but that ship has sailed. No reason to continue that though. > }; > }; > }; > @@ -134,6 +139,7 @@ Example: > tpiu_in_port: endpoint@0 { > slave-mode; > remote-endpoint = <&replicator_out_port1>; > + coresight,hwid = <0>; > }; > }; > }; > @@ -154,6 +160,7 @@ Example: > reg = <0>; > replicator_out_port0: endpoint { > remote-endpoint = <&etb_in_port>; > + coresight,hwid = <0>; > }; > }; > > @@ -161,15 +168,17 @@ Example: > reg = <1>; > replicator_out_port1: endpoint { > remote-endpoint = <&tpiu_in_port>; > + coresight,hwid = <1>; > }; > }; > > /* replicator input port */ > port@2 { > - reg = <0>; > + reg = <1>; This will still get flagged as an error. reg must be 2 here. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html