Re: [PATCH v3 2/2] dt-bindings: arm: Add device-name in the coresight components

From: Rob Herring
Date: Fri Feb 02 2024 - 14:38:19 EST


On Wed, Jan 31, 2024 at 12:26:26AM -0800, Mao Jinlong wrote:
> Current name of coresight component's folder consists of prefix of
> the device and the id in the device list. When run 'ls' command,
> we can get the register address of the device. Take CTI for example,
> if we want to set the config for modem CTI, but we can't know which
> CTI is modem CTI from all current information.
>
> cti_sys0 -> ../../../devices/platform/soc@0/138f0000.cti/cti_sys0
> cti_sys1 -> ../../../devices/platform/soc@0/13900000.cti/cti_sys1
>
> Add device-name in device tree which can provide a better description
> of the coresight device. It can provide the info like the system or
> HW it belongs to.
>
> Signed-off-by: Mao Jinlong <quic_jinlmao@xxxxxxxxxxx>
> ---
> .../devicetree/bindings/arm/arm,coresight-catu.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-cpu-debug.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-cti.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-dummy-sink.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-dummy-source.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-dynamic-funnel.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-dynamic-replicator.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-etb10.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-etm.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-static-funnel.yaml | 6 ++++++
> .../bindings/arm/arm,coresight-static-replicator.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-stm.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-tmc.yaml | 6 ++++++
> .../devicetree/bindings/arm/arm,coresight-tpiu.yaml | 6 ++++++
> .../devicetree/bindings/arm/qcom,coresight-tpda.yaml | 6 ++++++
> .../devicetree/bindings/arm/qcom,coresight-tpdm.yaml | 6 ++++++

Why do you need a name on everything? Funnels and replicators, for
example, aren't a source of data, but just connected to things that are.
ETM is tightly coupled to a CPU and you have a link to it. You have
graph links to show connections. Limit this to where you actually need
it.

> 16 files changed, 96 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> index 2bae06eed693..a4d20aad0c70 100644
> --- a/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-catu.yaml
> @@ -44,6 +44,12 @@ properties:
> - const: arm,coresight-catu
> - const: arm,primecell
>
> + device-name:

This is too generic of a name. Make is something closer to how it is
used or what it is for. Naming sysfs devices is not how it is used.
That's just an intermediate step.

> + $ref: /schemas/types.yaml#/definitions/string
> + description:
> + Define the name which can describe what kind of HW or system the
> + device is for.
> +
> reg:
> maxItems: 1
>
> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> index 0a6bc03ebe00..6094cc9cb834 100644
> --- a/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-cpu-debug.yaml
> @@ -39,6 +39,12 @@ properties:
> - const: arm,coresight-cpu-debug
> - const: arm,primecell
>
> + device-name:
> + $ref: /schemas/types.yaml#/definitions/string

If you are redefining the type multiple times, there's a problem in the
structure of the schemas. Really, that's true for anything duplicated in
the kernel.

Rob