On Fri, Oct 13, 2023 at 03:44:47PM +0530, 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#" > + > +properties: > + compatible: > + const: xlnx,zynqmp-nvmem-fw > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 1 > + > +required: > + - compatible > + > +patternProperties: > + "^soc_revision@0$": Fixed string, not a pattern. dtschema will now flag this. Thanks for the test case. ;) > + type: object Needs 'additionalProperties' or... > + description: > + This node is used to read SOC version and IDCODE of ZynqMP. Read-only. > + > + properties: > + reg: > + maxItems: 1 > + > + required: > + - reg fixed-cell.yaml (via nvmem.yaml) already says this, so this can all be dropped. Except that this[1] just landed, so you will need to adapt to it. Though there is an issue that fixed-cell.yaml doesn't restrict the allowed properties, so that needs to happen somewhere... Not sure what the fix is. Hopefully fixed-cell.yaml can just be changed to 'additionalProperties: false', but need to see if other properties are in use. Rob [1] https://lore.kernel.org/all/169667333484.74178.7121029453685069845.b4-ty@xxxxxxxxxx/