On 13/10/2023 12:14, Praveen Teja Kundanala wrote: > Convert the xlnx,zynqmp-nvmem.txt to yaml. > > Signed-off-by: Praveen Teja Kundanala <praveen.teja.kundanala@xxxxxxx> > --- > .../bindings/nvmem/xlnx,zynqmp-nvmem.txt | 46 --------------- > .../bindings/nvmem/xlnx,zynqmp-nvmem.yaml | 59 +++++++++++++++++++ > 2 files changed, 59 insertions(+), 46 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt > create mode 100644 Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.yaml > > diff --git a/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt b/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt > deleted file mode 100644 > index 4881561b3a02..000000000000 > --- a/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.txt > +++ /dev/null > @@ -1,46 +0,0 @@ > --------------------------------------------------------------------------- > -= Zynq UltraScale+ MPSoC nvmem firmware driver binding = > --------------------------------------------------------------------------- > -The nvmem_firmware node provides access to the hardware related data > -like soc revision, IDCODE... etc, By using the firmware interface. > - > -Required properties: > -- compatible: should be "xlnx,zynqmp-nvmem-fw" > - > -= Data cells = > -Are child nodes of silicon id, bindings of which as described in > -bindings/nvmem/nvmem.txt > - > -------- > - Example > -------- > -firmware { > - zynqmp_firmware: zynqmp-firmware { > - compatible = "xlnx,zynqmp-firmware"; > - method = "smc"; > - > - nvmem_firmware { > - compatible = "xlnx,zynqmp-nvmem-fw"; > - #address-cells = <1>; > - #size-cells = <1>; > - > - /* Data cells */ > - soc_revision: soc_revision { > - reg = <0x0 0x4>; > - }; > - }; > - }; > -}; > - > -= Data consumers = > -Are device nodes which consume nvmem data cells. > - > -For example: > - pcap { > - ... > - > - nvmem-cells = <&soc_revision>; > - nvmem-cell-names = "soc_revision"; > - > - ... > - }; > diff --git a/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.yaml b/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.yaml > new file mode 100644 > index 000000000000..e03ed8c32537 > --- /dev/null > +++ b/Documentation/devicetree/bindings/nvmem/xlnx,zynqmp-nvmem.yaml > @@ -0,0 +1,59 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/nvmem/xlnx,zynqmp-nvmem.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Zynq UltraScale+ MPSoC Non Volatile Memory interface > + > +description: | > + The ZynqMP MPSoC provides access to the hardware related data > + like SOC revision, IDCODE. > + > +maintainers: > + - Kalyani Akula <kalyani.akula@xxxxxxx> > + - Praveen Teja Kundanala <praveen.teja.kundanala@xxxxxxx> > + > +allOf: > + - $ref: "nvmem.yaml#" Drop quotes. > + > +properties: > + compatible: > + const: xlnx,zynqmp-nvmem-fw > + > + '#address-cells': > + const: 1 Drop > + > + '#size-cells': > + const: 1 Drop > + > +required: > + - compatible required: block goes after patternProperties: block > + > +patternProperties: > + "^soc_revision@0$": Why do you define individual memory cells? Is this part of a binding? IOW, OS/Linux requires this? > + type: object > + description: > + This node is used to read SOC version and IDCODE of ZynqMP. Read-only. > + > + properties: > + reg: > + maxItems: 1 > + > + required: > + - reg > + > +additionalProperties: false Instead: unevaluatedProperties: false > + > +examples: > + - | > + nvmem_firmware { Underscores are not allowed in node names. Node names should be generic. See also an explanation and list of examples (not exhaustive) in DT specification: https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation Look at other files for examples. > + compatible = "xlnx,zynqmp-nvmem-fw"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + /* Data cells */ > + soc_revision: soc_revision@0 { Drop unused label. No underscores in node names. Best regards, Krzysztof