Re: [PATCH v3] dt-bindings: mailbox: Convert mtk-gce to DT schema

From: Krzysztof Kozlowski
Date: Mon Sep 19 2022 - 07:10:20 EST


On 19/09/2022 10:13, AngeloGioacchino Del Regno wrote:
> Convert the mtk-gce mailbox binding to DT schema format.
>

Mention any deviations from conversion in the commit msg.

> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
> ---
>
> Changes in v3:
> - Removed '|' from description
> - Removed mbox client examples
> - Squashed patch dt-bindings: arm: mediatek:
> mmsys: Reference to mediatek,gce-mailbox.yaml
>
> Changes in v2:
> - Changed mtk-gce.txt references to new yaml file
>
>
> A previous attempt for this was made at [1], but it was changing
> the way of getting clocks (by name for all).
> Keeping clock-names not required for the multi-gce case makes this
> binding simpler, hence I chose to abandon the change at [1] and go
> for this one instead.
>
> Any Reviewed-by or Acked-by tag was dropped, as this conversion was
> completely redone from scratch and differs from [1] for the
> aforementioned reasons.
>
> [1]: https://lore.kernel.org/all/20220524151512.247435-1-angelogioacchino.delregno@xxxxxxxxxxxxx/
>
> .../bindings/arm/mediatek/mediatek,mmsys.yaml | 3 +-
> .../mailbox/mediatek,gce-mailbox.yaml | 80 ++++++++++++++++++
> .../devicetree/bindings/mailbox/mtk-gce.txt | 82 -------------------
> 3 files changed, 82 insertions(+), 83 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> delete mode 100644 Documentation/devicetree/bindings/mailbox/mtk-gce.txt
>
> diff --git a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> index 6ad023eec193..85e6f4f621fc 100644
> --- a/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> +++ b/Documentation/devicetree/bindings/arm/mediatek/mediatek,mmsys.yaml
> @@ -52,7 +52,8 @@ properties:
> description:
> Using mailbox to communicate with GCE, it should have this
> property and list of phandle, mailbox specifiers. See
> - Documentation/devicetree/bindings/mailbox/mtk-gce.txt for details.
> + Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> + for details.
> $ref: /schemas/types.yaml#/definitions/phandle-array
>
> mediatek,gce-client-reg:
> diff --git a/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> new file mode 100644
> index 000000000000..fff8fd2e984a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mailbox/mediatek,gce-mailbox.yaml
> @@ -0,0 +1,80 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/mailbox/mediatek,gce-mailbox.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Mediatek Global Command Engine Mailbox
> +
> +maintainers:
> + - Houlong Wei <houlong.wei@xxxxxxxxxxxx>
> +
> +description:
> + The Global Command Engine (GCE) is used to help read/write registers with
> + critical time limitation, such as updating display configuration during the
> + vblank. The GCE can be used to implement the Command Queue (CMDQ) driver.
> +
> +properties:
> + compatible:
> + enum:
> + - mediatek,mt6779-gce
> + - mediatek,mt8173-gce
> + - mediatek,mt8183-gce
> + - mediatek,mt8186-gce
> + - mediatek,mt8192-gce
> + - mediatek,mt8195-gce
> +
> + "#mbox-cells":
> + const: 2
> + description:
> + The first cell describes the Thread ID of the GCE,
> + the second cell describes the priority of the GCE thread
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + items:
> + - description: Global Command Engine clock
> +
> + clock-names:
> + items:
> + - const: gce
> +
> +required:
> + - compatible
> + - "#mbox-cells"
> + - reg
> + - interrupts
> + - clocks
> +
> +if:

Put it in allOf block

> + not:
> + properties:
> + compatible:
> + contains:
> + const: mediatek,mt8195-gce
> +then:
> + required:
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + # Example for a device client and for a MediaTek mutex client

I think comment is no longer relevant.

> + - |
> + #include <dt-bindings/clock/mt8173-clk.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> +
> + gce: mailbox@12120000 {
> + compatible = "mediatek,mt8173-gce";
> + reg = <0x10816000 0x1000>;

Didn't you have warnings here?

> + interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_LOW>;
> + #mbox-cells = <2>;
> + clocks = <&infracfg CLK_INFRA_GCE>;
> + clock-names = "gce";
> + };

Best regards,
Krzysztof