All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh+dt@kernel.org>
To: David Heidelberg <david@ixit.cz>
Cc: Andy Gross <agross@kernel.org>,
	Bjorn Andersson <bjorn.andersson@linaro.org>,
	~okias/devicetree@lists.sr.ht,
	linux-arm-msm <linux-arm-msm@vger.kernel.org>,
	devicetree@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] RFC: dt-bindings: soc: qcom: convert GLINK binding to yaml
Date: Tue, 21 Dec 2021 09:19:40 -0400	[thread overview]
Message-ID: <CAL_JsqKRAnBOtk_tsXp6BqMOexB+Sz1dZOT6c_uzf-Vbuu_SRg@mail.gmail.com> (raw)
In-Reply-To: <20211218213556.42061-1-david@ixit.cz>

On Sat, Dec 18, 2021 at 5:36 PM David Heidelberg <david@ixit.cz> wrote:
>
> Convert Qualcomm GLINK binding to the yaml syntax.
>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
>  .../bindings/soc/qcom/qcom,glink.yaml         | 106 ++++++++++++++++++
>  2 files changed, 106 insertions(+), 94 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
>  create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
> deleted file mode 100644
> index 1214192847ac..000000000000
> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt
> +++ /dev/null
> @@ -1,94 +0,0 @@
> -Qualcomm GLINK edge binding
> -
> -This binding describes a Qualcomm GLINK edge, a fifo based mechanism for
> -communication between subsystem-pairs on various Qualcomm platforms. Two types
> -of edges can be described by the binding; the GLINK RPM edge and a SMEM based
> -edge.
> -
> -- compatible:
> -       Usage: required for glink-rpm
> -       Value type: <stringlist>
> -       Definition: must be "qcom,glink-rpm"
> -
> -- label:
> -       Usage: optional
> -       Value type: <string>
> -       Definition: should specify the subsystem name this edge corresponds to.
> -
> -- interrupts:
> -       Usage: required
> -       Value type: <prop-encoded-array>
> -       Definition: should specify the IRQ used by the remote processor to
> -                   signal this processor about communication related events
> -
> -- qcom,remote-pid:
> -       Usage: required for glink-smem
> -       Value type: <u32>
> -       Definition: specifies the identifier of the remote endpoint of this edge
> -
> -- qcom,rpm-msg-ram:
> -       Usage: required for glink-rpm
> -       Value type: <prop-encoded-array>
> -       Definition: handle to RPM message memory resource
> -
> -- mboxes:
> -       Usage: required
> -       Value type: <prop-encoded-array>
> -       Definition: reference to the "rpm_hlos" mailbox in APCS, as described
> -                   in mailbox/mailbox.txt
> -
> -= GLINK DEVICES
> -Each subnode of the GLINK node represent function tied to a virtual
> -communication channel. The name of the nodes are not important. The properties
> -of these nodes are defined by the individual bindings for the specific function
> -- but must contain the following property:
> -
> -- qcom,glink-channels:
> -       Usage: required
> -       Value type: <stringlist>
> -       Definition: a list of channels tied to this function, used for matching
> -                   the function to a set of virtual channels
> -
> -- qcom,intents:
> -       Usage: optional
> -       Value type: <prop-encoded-array>
> -       Definition: a list of size,amount pairs describing what intents should
> -                   be preallocated for this virtual channel. This can be used
> -                   to tweak the default intents available for the channel to
> -                   meet expectations of the remote.
> -
> -= EXAMPLE
> -The following example represents the GLINK RPM node on a MSM8996 device, with
> -the function for the "rpm_request" channel defined, which is used for
> -regulators and root clocks.
> -
> -       apcs_glb: mailbox@9820000 {
> -               compatible = "qcom,msm8996-apcs-hmss-global";
> -               reg = <0x9820000 0x1000>;
> -
> -               #mbox-cells = <1>;
> -       };
> -
> -       rpm_msg_ram: memory@68000 {
> -               compatible = "qcom,rpm-msg-ram";
> -               reg = <0x68000 0x6000>;
> -       };
> -
> -       rpm-glink {
> -               compatible = "qcom,glink-rpm";
> -
> -               interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
> -
> -               qcom,rpm-msg-ram = <&rpm_msg_ram>;
> -
> -               mboxes = <&apcs_glb 0>;
> -
> -               rpm-requests {
> -                       compatible = "qcom,rpm-msm8996";
> -                       qcom,glink-channels = "rpm_requests";
> -
> -                       qcom,intents = <0x400 5
> -                                       0x800 1>;
> -                       ...
> -               };
> -       };
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
> new file mode 100644
> index 000000000000..11a7c845ea0a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
> @@ -0,0 +1,106 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/soc/qcom/qcom,glink.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Qualcomm GLINK edge
> +
> +description: |
> +  Qualcomm GLINK edge, a fifo based mechanism for communication between
> +  subsystem-pairs on various Qualcomm platforms. Two types of edges can be
> +  described by the binding; the GLINK RPM edge and a SMEM based.
> +
> +maintainers:
> +  - Bjorn Andersson <bjorn.andersson@linaro.org>
> +
> +properties:
> +  $nodename:
> +    pattern: "^(rpm-)?glink(-edge)?$"
> +
> +  compatible:
> +    const: qcom,glink-rpm
> +
> +  label:
> +    $ref: /schemas/types.yaml#/definitions/string
> +    description: should specify the subsystem name this edge corresponds to
> +
> +  interrupts:
> +    description: >
> +      should specify the IRQ used by the remote processor to
> +      signal this processor about communication related events
> +    maxItems: 1
> +
> +  mboxes:
> +    description: >
> +      reference to the "rpm_hlos" mailbox in APCS, as described
> +      in mailbox/mailbox.txt
> +
> +  qcom,remote-pid:
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    description: specifies the identifier of the remote endpoint of this edge
> +
> +  qcom,rpm-msg-ram:
> +    $ref: /schemas/types.yaml#/definitions/phandle
> +    description: RPM message memory resource
> +
> +patternProperties:
> +  ".*":

This doesn't work because it will match everything including the above
properties. You can use additionalProperties or unevaluatedProperties
instead.

> +    type: object
> +    properties:
> +      qcom,glink-channels:
> +        $ref: /schemas/types.yaml#/definitions/string
> +        description: >
> +          a list of channels tied to this function, used for matching
> +          the function to a set of virtual channels
> +
> +      'qcom,intents':

Don't need quotes.

> +        $ref: /schemas/types.yaml#/definitions/uint32-array
> +        description: >
> +          a list of size, amount pairs describing what intents should
> +          be preallocated for this virtual channel. This can be used
> +          to tweak the default intents available for the channel to
> +          meet expectations of the remote
> +
> +    required:
> +      - qcom,glink-channels
> +
> +    additionalProperties: true

However, if the child nodes are the above properties plus other device
specific properties as this indicates, then you need to split this to
a separate schema file for those device specific schemas to reference.
Otherwise, unevaluatedProperties can't see all the properties for the
child node.

Rob

      parent reply	other threads:[~2021-12-21 13:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-18 21:35 [PATCH] RFC: dt-bindings: soc: qcom: convert GLINK binding to yaml David Heidelberg
2021-12-19 21:57 ` Rob Herring
2021-12-21 13:19 ` Rob Herring [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAL_JsqKRAnBOtk_tsXp6BqMOexB+Sz1dZOT6c_uzf-Vbuu_SRg@mail.gmail.com \
    --to=robh+dt@kernel.org \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=david@ixit.cz \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=~okias/devicetree@lists.sr.ht \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.