[PATCH 1/4] dt-bindings: arm: qcom,coresight-funnel: Add label for multi-ouput
Suzuki K Poulose
suzuki.poulose at arm.com
Fri Mar 22 02:42:54 PDT 2024
On 22/03/2024 07:02, Tingwei Zhang wrote:
> On 3/21/2024 10:42 PM, Rob Herring wrote:
>> On Thu, Mar 21, 2024 at 04:32:04PM +0800, Tao Zhang wrote:
>>> Add new property "label" to label the source corresponding to the
>>> output connection. When the funnel supports multi-output, this
>>> property needs to be introduced to mark which source component a
>>> certain output connection corresponds to.
>>>
>>> Signed-off-by: Tao Zhang <quic_taozha at quicinc.com>
>>> ---
>>> .../arm/arm,coresight-dynamic-funnel.yaml | 34 ++++++++++++++++---
>>> 1 file changed, 30 insertions(+), 4 deletions(-)
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>>> index 44a1041cb0fc..cde62c286d29 100644
>>> ---
>>> a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>>> +++
>>> b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>>> @@ -66,13 +66,39 @@ properties:
>>> $ref: /schemas/graph.yaml#/properties/port
>>> out-ports:
>>> - $ref: /schemas/graph.yaml#/properties/ports
>>> - additionalProperties: false
>>> -
>>> + type: object
>>> properties:
>>> + "#address-cells":
>>> + const: 1
>>> +
>>> + "#size-cells":
>>> + const: 0
>>> +
>>> port:
>>> + type: object
>>> +
>>> + patternProperties:
>>> + '^port(@[0-7])?$':
>>> + type: object
>>> description: Output connection to CoreSight Trace bus
>>> - $ref: /schemas/graph.yaml#/properties/port
>>
>> Nope, now you have no constraints on port node properties. Please look
>> at how other bindings are done to add properties on endpoint node.
>>
> Thanks for pointing this out, Rob. Shall we ref port-base and
> endpoint-base then add new properties on endpoint? In this way, the
> redundant code from port schema is not required.
>>> +
>>> + patternProperties:
>>> + "^endpoint(@[0-9a-f]+)?$":
>>> + type: object
>>> + properties:
>>> + remote-endpoint:
>>> + description: |
>>> + phandle to an 'endpoint' subnode of a remote
>>> device node.
>>> + $ref: /schemas/types.yaml#/definitions/phandle
>>
>> Don't need this.
>>
>>> + label:
>>> + description: Label the source corresponding to the
>>> output connection
>>> + $ref: /schemas/types.yaml#/definitions/string
>>
>> label already has a type.
>>
>> As this node is an output, aren't you labeling what the destination is,
>> not the "source"?
>>
>> Why can't you look at the remote connection to identify what it is?
>>
> This funnel can route data stream from different trace source to
> different output ports. This lable property is added to describe which
> source is routed to this output port.
>
> For example, the graph is as below. Funnel3 routes trace data from TPDM0
> to output[0] and output[0] of funnel3 is connected to input[0] of TPDA0.
Funnel3 and Funnel4 are really Replicators ! How are they Funnels ?
Again, my question still stands. Are Funnel(Replicator-renamed)3/4 and
Funnel 0/1/2 programmable ?
Suzuki
> While Funnels routes trace data from TPDM1 to output[1] which connects
> to input[1] of TPDA0. Hope that clarifies this a little bit.
>
> |---------| |---------| |---------| |---------| |---------|
> | TPDM0 | | TPDM1 | | TPDM2 | | TPDM3 | | TPDM4 |
> |---------| |---------| |---------| |---------| |---------|
> | | | | |
> | | | | |
> | | | | |
> |-----| |-----| |-----| |-----| |
> | | | | |
> | | | | |
> [0]| |[1] [0]| |[1] |
> \-------------/ \-------------/ \------------/
> \ FUNNEL0 / \ FUNNEL1 / \ FUNNEL2 /
> ----------- ----------- -----------
> | | |
> \-------------/ \-------------/ |
> \ FUNNEL3 / \ FUNNEL4 / |
> ----------- ----------- |
> | | | |
> [0]| |[1] [0]| |[1] |
> | |---------- | | |
> | | | | |
> |-------| | |------- | | |--------- |
> | | | | |
> | | | | |
> [0]| |[1] |[2] |[3] |[4]
> \ ---------------------------------------------------/
> \ TPDA0 /
> \ /
> ------------------------------------------------
>
>>
>>> + oneOf:
>>> + - required:
>>> + - port
>>> + - required:
>>> + - "#address-cells"
>>> + - "#size-cells"
>>
>> The common schema that you removed handles this.
>>
>> Rob
>
More information about the linux-arm-kernel
mailing list