diff mbox series

dt-bindings: soc: qcom: convert GLINK binding to yaml

Message ID 20220424101637.20721-1-david@ixit.cz (mailing list archive)
State Changes Requested
Headers show
Series dt-bindings: soc: qcom: convert GLINK binding to yaml | expand

Commit Message

David Heidelberg April 24, 2022, 10:16 a.m. UTC
Convert Qualcomm GLINK binding to the yaml format.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
v1:
 - remove quotes around qcom,intent
 - use additionalProperties

 .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
 .../bindings/soc/qcom/qcom,glink.yaml         | 103 ++++++++++++++++++
 2 files changed, 103 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

Comments

Krzysztof Kozlowski April 24, 2022, 1:36 p.m. UTC | #1
On 24/04/2022 12:16, David Heidelberg wrote:
> Convert Qualcomm GLINK binding to the yaml format.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> v1:
>  - remove quotes around qcom,intent
>  - use additionalProperties

Thank you for your patch. There is something to discuss/improve.

> 
>  .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
>  .../bindings/soc/qcom/qcom,glink.yaml         | 103 ++++++++++++++++++
>  2 files changed, 103 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..12ccc875ff0f
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
> @@ -0,0 +1,103 @@
> +# 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

Drop all this "should specify" and similar. It's making description
unnecessary long and complicated. This is therefore "Name of subsystem
this edge corresponds to".

> +
> +  interrupts:
> +    description: >

No need for '>'.

> +      should specify the IRQ used by the remote processor to
> +      signal this processor about communication related events
> +    maxItems: 1
> +
> +  mboxes:
> +    description: >

The same.

> +      reference to the "rpm_hlos" mailbox in APCS, as described
> +      in mailbox/mailbox.txt

Skip the path (entire last part of sentence).

> +
> +  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
> +
> +additionalProperties:

This is a bit confusing... why it's not part of properties? Looks like
mix-up schema and actually you miss proper additionalProperties.

> +  type: object

Eh? Object here? I don't think you tested your bindings. If you test,
you will notice several errors.

> +  properties:
> +    qcom,glink-channels:

These go to children.

> +      $ref: /schemas/types.yaml#/definitions/string

Isn't this a list of strings?

> +      description: >
> +        a list of channels tied to this function, used for matching
> +        the function to a set of virtual channels
> +
> +    qcom,intents:
> +      $ref: /schemas/types.yaml#/definitions/uint32-array

Should

> +      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

min/max items. This looks like matrix, but it seems is not used that way. :(

> +
> +  required:
> +    - qcom,glink-channels
> +
> +  additionalProperties: false
> +
> +required:

compatible

> +  - interrupts
> +  - mboxes
> +  - qcom,smem

What's this?

> +  - qcom,local-pid

This is also something new. This does not look like proper bindings
conversion, or you copied some other bindings as template. You need to
really go through it and clean it up.

> +  - qcom,remote-pid

Isn't this conflicting with part below?

> +
> +anyOf:
> +  - required:
> +      - qcom,remote-pid
> +  - required:
> +      - qcom,rpm-msg-ram
> +
> +examples:
> +  # 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.
> +  - |
> +    rpm-glink {
> +        compatible = "qcom,glink-rpm";
> +
> +        interrupts = <0 168 1>;
> +
> +        qcom,rpm-msg-ram = <&rpm_msg_ram>;
> +

Remove unneeded blank lines between properties.

> +        mboxes = <&apcs_glb 0>;
> +
> +        rpm-requests {
> +            compatible = "qcom,rpm-msm8996";
> +            qcom,glink-channels = "rpm_requests";
> +
> +            qcom,intents = <0x400 5
> +                            0x800 1>;
> +        };
> +    };


Best regards,
Krzysztof
Rob Herring April 24, 2022, 1:47 p.m. UTC | #2
On Sun, 24 Apr 2022 12:16:37 +0200, David Heidelberg wrote:
> Convert Qualcomm GLINK binding to the yaml format.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> v1:
>  - remove quotes around qcom,intent
>  - use additionalProperties
> 
>  .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
>  .../bindings/soc/qcom/qcom,glink.yaml         | 103 ++++++++++++++++++
>  2 files changed, 103 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
> 

Running 'make dtbs_check' with the schema in this patch gives the
following warnings. Consider if they are expected or the schema is
incorrect. These may not be new warnings.

Note that it is not yet a requirement to have 0 warnings for dtbs_check.
This will change in the future.

Full log is available here: https://patchwork.ozlabs.org/patch/


rpm-glink: glink-channel: Additional properties are not allowed ('compatible', 'pms405-regulators', 'power-controller', 'clock-controller' were unexpected)
	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb

rpm-glink: glink-channel: Additional properties are not allowed ('compatible', 'regulators' were unexpected)
	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb

rpm-glink: glink-channel: Additional properties are not allowed ('pms405-regulators', 'clock-controller', 'power-controller', 'compatible' were unexpected)
	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb

rpm-glink: 'qcom,local-pid' is a required property
	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb

rpm-glink: 'qcom,remote-pid' is a required property
	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb

rpm-glink: 'qcom,smem' is a required property
	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'compatible', 'pmi8998-regulators', 'pm8998-regulators', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'compatible', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'pm660l-regulators', 'pm660-regulators', 'compatible', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'power-controller', 'pmi8998-regulators', 'pm8998-regulators', 'compatible' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'pm8998-regulators', 'power-controller', 'pmi8998-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'pmi8998-regulators', 'power-controller', 'pm8998-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'power-controller', 'pm660l-regulators', 'pm660-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'pm660-regulators', 'clock-controller', 'pm660l-regulators', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'pm660-regulators', 'pm660l-regulators', 'power-controller', 'clock-controller' were unexpected)
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'power-controller', 'qcom,rpmcc', 'pm8994-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'power-controller', 'qcom,rpmcc' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'qcom,rpmcc', 'pm8994-regulators', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'qcom,rpmcc', 'power-controller', 'pm8994-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pm660-regulators', 'pm660l-regulators', 'power-controller', 'compatible', 'clock-controller' were unexpected)
	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pm8994-regulators', 'compatible', 'qcom,rpmcc', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pm8994-regulators', 'qcom,rpmcc', 'compatible', 'pmi8994-regulators', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pm8998-regulators', 'compatible', 'clock-controller', 'power-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pmi8994-regulators', 'compatible', 'pm8994-regulators', 'power-controller', 'qcom,rpmcc' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('pmi8994-regulators', 'compatible', 'power-controller', 'qcom,rpmcc', 'pm8994-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'clock-controller', 'pm660l-regulators', 'pm660-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'clock-controller', 'pm8998-regulators', 'pmi8998-regulators' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'pm8994-regulators', 'qcom,rpmcc' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'clock-controller', 'compatible' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'compatible', 'clock-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'pmi8998-regulators', 'compatible', 'clock-controller' were unexpected)
	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb

rpm-glink: rpm-requests: Additional properties are not allowed ('qcom,rpmcc', 'pm8994-regulators', 'power-controller', 'compatible' were unexpected)
	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
David Heidelberg April 24, 2022, 1:52 p.m. UTC | #3
Yeah, it seems there are several mistakes, I thought it was in better 
shape (4 months passed.. :( ).

About testing, currently I have limited ability since broken libfdt, 
which dt-schema use, doesn't work on new py3.10.

I'll send partly fixed version and get back to it, when I get more time 
and fixed environment for testing.

David

On 24/04/2022 15:36, Krzysztof Kozlowski wrote:
> On 24/04/2022 12:16, David Heidelberg wrote:
>> Convert Qualcomm GLINK binding to the yaml format.
>>
>> Signed-off-by: David Heidelberg <david@ixit.cz>
>> ---
>> v1:
>>   - remove quotes around qcom,intent
>>   - use additionalProperties
> Thank you for your patch. There is something to discuss/improve.
>
>>   .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
>>   .../bindings/soc/qcom/qcom,glink.yaml         | 103 ++++++++++++++++++
>>   2 files changed, 103 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..12ccc875ff0f
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
>> @@ -0,0 +1,103 @@
>> +# 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
> Drop all this "should specify" and similar. It's making description
> unnecessary long and complicated. This is therefore "Name of subsystem
> this edge corresponds to".
>
>> +
>> +  interrupts:
>> +    description: >
> No need for '>'.
>
>> +      should specify the IRQ used by the remote processor to
>> +      signal this processor about communication related events
>> +    maxItems: 1
>> +
>> +  mboxes:
>> +    description: >
> The same.
>
>> +      reference to the "rpm_hlos" mailbox in APCS, as described
>> +      in mailbox/mailbox.txt
> Skip the path (entire last part of sentence).
>
>> +
>> +  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
>> +
>> +additionalProperties:
> This is a bit confusing... why it's not part of properties? Looks like
> mix-up schema and actually you miss proper additionalProperties.
>
>> +  type: object
> Eh? Object here? I don't think you tested your bindings. If you test,
> you will notice several errors.
>
>> +  properties:
>> +    qcom,glink-channels:
> These go to children.
>
>> +      $ref: /schemas/types.yaml#/definitions/string
> Isn't this a list of strings?
>
>> +      description: >
>> +        a list of channels tied to this function, used for matching
>> +        the function to a set of virtual channels
>> +
>> +    qcom,intents:
>> +      $ref: /schemas/types.yaml#/definitions/uint32-array
> Should
>
>> +      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
> min/max items. This looks like matrix, but it seems is not used that way. :(
>
>> +
>> +  required:
>> +    - qcom,glink-channels
>> +
>> +  additionalProperties: false
>> +
>> +required:
> compatible
>
>> +  - interrupts
>> +  - mboxes
>> +  - qcom,smem
> What's this?
>
>> +  - qcom,local-pid
> This is also something new. This does not look like proper bindings
> conversion, or you copied some other bindings as template. You need to
> really go through it and clean it up.
>
>> +  - qcom,remote-pid
> Isn't this conflicting with part below?
>
>> +
>> +anyOf:
>> +  - required:
>> +      - qcom,remote-pid
>> +  - required:
>> +      - qcom,rpm-msg-ram
>> +
>> +examples:
>> +  # 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.
>> +  - |
>> +    rpm-glink {
>> +        compatible = "qcom,glink-rpm";
>> +
>> +        interrupts = <0 168 1>;
>> +
>> +        qcom,rpm-msg-ram = <&rpm_msg_ram>;
>> +
> Remove unneeded blank lines between properties.
>
>> +        mboxes = <&apcs_glb 0>;
>> +
>> +        rpm-requests {
>> +            compatible = "qcom,rpm-msm8996";
>> +            qcom,glink-channels = "rpm_requests";
>> +
>> +            qcom,intents = <0x400 5
>> +                            0x800 1>;
>> +        };
>> +    };
>
> Best regards,
> Krzysztof
Krzysztof Kozlowski April 24, 2022, 2:17 p.m. UTC | #4
On 24/04/2022 15:52, David Heidelberg wrote:
> Yeah, it seems there are several mistakes, I thought it was in better 
> shape (4 months passed.. :( ).
> 
> About testing, currently I have limited ability since broken libfdt, 
> which dt-schema use, doesn't work on new py3.10.
> 

One way would be to have older Python, install dtschema inside
virtualenv and remove system-wide dtschema. Or use a container.


Best regards,
Krzysztof
Rob Herring April 26, 2022, 10:21 p.m. UTC | #5
On Sun, Apr 24, 2022 at 03:52:37PM +0200, David Heidelberg wrote:
> Yeah, it seems there are several mistakes, I thought it was in better shape
> (4 months passed.. :( ).
> 
> About testing, currently I have limited ability since broken libfdt, which
> dt-schema use, doesn't work on new py3.10.

I'm on 3.10 now and don't see any issues. You need 'pylibfdt' from PyPI.

Rob
Rob Herring April 26, 2022, 10:23 p.m. UTC | #6
On Sun, Apr 24, 2022 at 08:47:53AM -0500, Rob Herring wrote:
> On Sun, 24 Apr 2022 12:16:37 +0200, David Heidelberg wrote:
> > Convert Qualcomm GLINK binding to the yaml format.
> > 
> > Signed-off-by: David Heidelberg <david@ixit.cz>
> > ---
> > v1:
> >  - remove quotes around qcom,intent
> >  - use additionalProperties
> > 
> >  .../bindings/soc/qcom/qcom,glink.txt          |  94 ----------------
> >  .../bindings/soc/qcom/qcom,glink.yaml         | 103 ++++++++++++++++++
> >  2 files changed, 103 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
> > 
> 
> Running 'make dtbs_check' with the schema in this patch gives the
> following warnings. Consider if they are expected or the schema is
> incorrect. These may not be new warnings.
> 
> Note that it is not yet a requirement to have 0 warnings for dtbs_check.
> This will change in the future.
> 
> Full log is available here: https://patchwork.ozlabs.org/patch/
> 

Seems like a lot of warnings. That's fine if you deem they are 
all/mostly valid and need to be fixed.

> 
> rpm-glink: glink-channel: Additional properties are not allowed ('compatible', 'pms405-regulators', 'power-controller', 'clock-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
> 
> rpm-glink: glink-channel: Additional properties are not allowed ('compatible', 'regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
> 
> rpm-glink: glink-channel: Additional properties are not allowed ('pms405-regulators', 'clock-controller', 'power-controller', 'compatible' were unexpected)
> 	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
> 
> rpm-glink: 'qcom,local-pid' is a required property
> 	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
> 	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
> 	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
> 	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
> 	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
> 	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb
> 
> rpm-glink: 'qcom,remote-pid' is a required property
> 	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
> 	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
> 	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
> 	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
> 	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
> 	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb
> 
> rpm-glink: 'qcom,smem' is a required property
> 	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
> 	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
> 	arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-1000.dtb
> 	arch/arm64/boot/dts/qcom/qcs404-evb-4000.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
> 	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
> 	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
> 	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'compatible', 'pmi8998-regulators', 'pm8998-regulators', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-fxtec-pro1.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'compatible', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'pm660l-regulators', 'pm660-regulators', 'compatible', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm660-xiaomi-lavender.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('clock-controller', 'power-controller', 'pmi8998-regulators', 'pm8998-regulators', 'compatible' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-dumpling.dtb
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'pm8998-regulators', 'power-controller', 'pmi8998-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'pmi8998-regulators', 'power-controller', 'pm8998-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-lilac.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'clock-controller', 'power-controller', 'pm660l-regulators', 'pm660-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-ganges-kirin.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'pm660-regulators', 'clock-controller', 'pm660l-regulators', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-discovery.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'pm660-regulators', 'pm660l-regulators', 'power-controller', 'clock-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-voyager.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'power-controller', 'qcom,rpmcc', 'pm8994-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-dora.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'power-controller', 'qcom,rpmcc' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-mtp.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'qcom,rpmcc', 'pm8994-regulators', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-kagura.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('compatible', 'qcom,rpmcc', 'power-controller', 'pm8994-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/apq8096-ifc6640.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pm660-regulators', 'pm660l-regulators', 'power-controller', 'compatible', 'clock-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm630-sony-xperia-nile-pioneer.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pm8994-regulators', 'compatible', 'qcom,rpmcc', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-dora.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pm8994-regulators', 'qcom,rpmcc', 'compatible', 'pmi8994-regulators', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/apq8096-db820c.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pm8998-regulators', 'compatible', 'clock-controller', 'power-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-lenovo-miix-630.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pmi8994-regulators', 'compatible', 'pm8994-regulators', 'power-controller', 'qcom,rpmcc' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-scorpio.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('pmi8994-regulators', 'compatible', 'power-controller', 'qcom,rpmcc', 'pm8994-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-xiaomi-gemini.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'clock-controller', 'pm660l-regulators', 'pm660-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'clock-controller', 'pm8998-regulators', 'pmi8998-regulators' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-mtp.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'compatible', 'pm8994-regulators', 'qcom,rpmcc' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-kagura.dtb
> 	arch/arm64/boot/dts/qcom/msm8996-pmi8996-sony-xperia-tone-keyaki.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'clock-controller', 'compatible' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-asus-novago-tp370ql.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'compatible', 'clock-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-hp-envy-x2.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('power-controller', 'pm8998-regulators', 'pmi8998-regulators', 'compatible', 'clock-controller' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtb
> 
> rpm-glink: rpm-requests: Additional properties are not allowed ('qcom,rpmcc', 'pm8994-regulators', 'power-controller', 'compatible' were unexpected)
> 	arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone-keyaki.dtb
>
diff mbox series

Patch

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..12ccc875ff0f
--- /dev/null
+++ b/Documentation/devicetree/bindings/soc/qcom/qcom,glink.yaml
@@ -0,0 +1,103 @@ 
+# 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
+
+additionalProperties:
+  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:
+      $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: false
+
+required:
+  - interrupts
+  - mboxes
+  - qcom,smem
+  - qcom,local-pid
+  - qcom,remote-pid
+
+anyOf:
+  - required:
+      - qcom,remote-pid
+  - required:
+      - qcom,rpm-msg-ram
+
+examples:
+  # 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.
+  - |
+    rpm-glink {
+        compatible = "qcom,glink-rpm";
+
+        interrupts = <0 168 1>;
+
+        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>;
+        };
+    };