Re: [PATCH] dt-bindings: nvmem: sprd-efuse: convert to YAML

From: Krzysztof Kozlowski
Date: Sat Jul 13 2024 - 14:31:48 EST


On 13/07/2024 14:12, Stanislav Jakubek wrote:
> Convert the Spreadtrum eFuse bindings to DT schema. Since they are very
> similar, both of the existing Spreadtrum txt bindings were merged into
> one common binding document, named after the only in-tree user, SC2731.
>
> Signed-off-by: Stanislav Jakubek <stano.jakubek@xxxxxxxxx>
> ---
> .../bindings/nvmem/sc27xx-efuse.txt | 52 -----------
> .../bindings/nvmem/sprd,sc2731-efuse.yaml | 88 +++++++++++++++++++
> .../devicetree/bindings/nvmem/sprd-efuse.txt | 39 --------
> 3 files changed, 88 insertions(+), 91 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/nvmem/sc27xx-efuse.txt
> create mode 100644 Documentation/devicetree/bindings/nvmem/sprd,sc2731-efuse.yaml
> delete mode 100644 Documentation/devicetree/bindings/nvmem/sprd-efuse.txt
>
> diff --git a/Documentation/devicetree/bindings/nvmem/sc27xx-efuse.txt b/Documentation/devicetree/bindings/nvmem/sc27xx-efuse.txt
> deleted file mode 100644
> index 586c08286aa9..000000000000
> --- a/Documentation/devicetree/bindings/nvmem/sc27xx-efuse.txt
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -= Spreadtrum SC27XX PMIC eFuse device tree bindings =
> -
> -Required properties:
> -- compatible: Should be one of the following.
> - "sprd,sc2720-efuse"
> - "sprd,sc2721-efuse"
> - "sprd,sc2723-efuse"
> - "sprd,sc2730-efuse"
> - "sprd,sc2731-efuse"
> -- reg: Specify the address offset of efuse controller.
> -- hwlocks: Reference to a phandle of a hwlock provider node.
> -
> -= Data cells =
> -Are child nodes of eFuse, bindings of which as described in
> -bindings/nvmem/nvmem.txt
> -
> -Example:
> -
> - sc2731_pmic: pmic@0 {
> - compatible = "sprd,sc2731";
> - reg = <0>;
> - spi-max-frequency = <26000000>;
> - interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> - interrupt-controller;
> - #interrupt-cells = <2>;
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - efuse@380 {
> - compatible = "sprd,sc2731-efuse";
> - reg = <0x380>;
> - #address-cells = <1>;
> - #size-cells = <1>;
> - hwlocks = <&hwlock 12>;
> -
> - /* Data cells */
> - thermal_calib: calib@10 {
> - reg = <0x10 0x2>;
> - };
> - };
> - };
> -
> -= Data consumers =
> -Are device nodes which consume nvmem data cells.
> -
> -Example:
> -
> - thermal {
> - ...
> - nvmem-cells = <&thermal_calib>;
> - nvmem-cell-names = "calibration";
> - };
> diff --git a/Documentation/devicetree/bindings/nvmem/sprd,sc2731-efuse.yaml b/Documentation/devicetree/bindings/nvmem/sprd,sc2731-efuse.yaml
> new file mode 100644
> index 000000000000..98d1400991d7
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/nvmem/sprd,sc2731-efuse.yaml
> @@ -0,0 +1,88 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/nvmem/sprd,sc2731-efuse.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Spreadtrum eFuse
> +
> +maintainers:
> + - Orson Zhai <orsonzhai@xxxxxxxxx>
> + - Baolin Wang <baolin.wang7@xxxxxxxxx>
> + - Chunyan Zhang <zhang.lyra@xxxxxxxxx>
> +
> +properties:
> + compatible:
> + enum:
> + - sprd,sc2720-efuse
> + - sprd,sc2721-efuse
> + - sprd,sc2723-efuse
> + - sprd,sc2730-efuse
> + - sprd,sc2731-efuse
> + - sprd,ums312-efuse
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + const: enable
> +
> + hwlocks:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - hwlocks
> +
> +allOf:
> + - $ref: nvmem.yaml#
> + - $ref: nvmem-deprecated-cells.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: sprd,ums312-efuse
> + then:
> + required:
> + - clocks
> + - clock-names
> + else:
> + properties:
> + clocks: false
> + clock-names: false

Half of the binding is this "if:", so I would say they are not that
similar. I think it would be easier to read them if these were split
into two bindings.

Best regards,
Krzysztof