Re: [PATCH V10 01/10] dt-bindings: remoteproc: convert imx rproc bindings to json-schema
From: Rob Herring
Date: Wed Feb 10 2021 - 12:40:03 EST
On Mon, Feb 08, 2021 at 04:56:02PM +0800, peng.fan@xxxxxxxxxxx wrote:
> From: Peng Fan <peng.fan@xxxxxxx>
>
> Convert the imx rproc binding to DT schema format using json-schema.
>
> Signed-off-by: Peng Fan <peng.fan@xxxxxxx>
> ---
> .../bindings/remoteproc/fsl,imx-rproc.yaml | 59 +++++++++++++++++++
> .../bindings/remoteproc/imx-rproc.txt | 33 -----------
> 2 files changed, 59 insertions(+), 33 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> delete mode 100644 Documentation/devicetree/bindings/remoteproc/imx-rproc.txt
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> new file mode 100644
> index 000000000000..5e906fa6a39d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/fsl,imx-rproc.yaml
> @@ -0,0 +1,59 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: NXP iMX6SX/iMX7D Co-Processor Bindings
> +
> +description:
> + This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.
> +
> +maintainers:
> + - Peng Fan <peng.fan@xxxxxxx>
> +
> +properties:
> + compatible:
> + enum:
> + - fsl,imx7d-cm4
> + - fsl,imx6sx-cm4
> +
> + clocks:
> + maxItems: 1
> +
> + syscon:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + Phandle to syscon block which provide access to System Reset Controller
> +
> + memory-region:
> + description:
> + If present, a phandle for a reserved memory area that used for vdev buffer,
> + resource table, vring region and others used by remote processor.
You need to define what each one is as a schema. How does the driver
know which one is the vring region for example? Minimally, it's:
items:
- description: ...
- description: ...
- description: ...
But if what's present is variable, then it gets more complicated. If the
OS side doesn't need to know what each region is, then you can do just:
minItems: N
maxItems: M
Rob
> +
> +required:
> + - compatible
> + - clocks
> + - syscon
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/imx7d-clock.h>
> + m4_reserved_sysmem1: cm4@80000000 {
> + reg = <0x80000000 0x80000>;
> + };
> +
> + m4_reserved_sysmem2: cm4@81000000 {
> + reg = <0x81000000 0x80000>;
> + };
> +
> + imx7d-cm4 {
> + compatible = "fsl,imx7d-cm4";
> + memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
> + syscon = <&src>;
> + clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
> + };
> +
> +...
> diff --git a/Documentation/devicetree/bindings/remoteproc/imx-rproc.txt b/Documentation/devicetree/bindings/remoteproc/imx-rproc.txt
> deleted file mode 100644
> index fbcefd965dc4..000000000000
> --- a/Documentation/devicetree/bindings/remoteproc/imx-rproc.txt
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -NXP iMX6SX/iMX7D Co-Processor Bindings
> -----------------------------------------
> -
> -This binding provides support for ARM Cortex M4 Co-processor found on some
> -NXP iMX SoCs.
> -
> -Required properties:
> -- compatible Should be one of:
> - "fsl,imx7d-cm4"
> - "fsl,imx6sx-cm4"
> -- clocks Clock for co-processor (See: ../clock/clock-bindings.txt)
> -- syscon Phandle to syscon block which provide access to
> - System Reset Controller
> -
> -Optional properties:
> -- memory-region list of phandels to the reserved memory regions.
> - (See: ../reserved-memory/reserved-memory.txt)
> -
> -Example:
> - m4_reserved_sysmem1: cm4@80000000 {
> - reg = <0x80000000 0x80000>;
> - };
> -
> - m4_reserved_sysmem2: cm4@81000000 {
> - reg = <0x81000000 0x80000>;
> - };
> -
> - imx7d-cm4 {
> - compatible = "fsl,imx7d-cm4";
> - memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
> - syscon = <&src>;
> - clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
> - };
> --
> 2.30.0
>