On 07/09/2022 08:47, Smitha T Murthy wrote: > Adds DT schema for s5p-mfc in yaml format s/Adds/Convert/ (as convert to DT schema) Please mention here changes to original binding (I see at least adding iommus and dropping some properties). > > Signed-off-by: Aakarsh Jain <aakarsh.jain@xxxxxxxxxxx> > Signed-off-by: Smitha T Murthy <smitha.t@xxxxxxxxxxx> > --- > .../devicetree/bindings/media/s5p-mfc.txt | 77 +------------ > .../bindings/media/samsung,s5p-mfc.yaml | 109 ++++++++++++++++++ > 2 files changed, 110 insertions(+), 76 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml > > diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt b/Documentation/devicetree/bindings/media/s5p-mfc.txt > index aa54c8159d9f..0b7c4dd40095 100644 > --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt > +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt > @@ -1,76 +1 @@ > -* Samsung Multi Format Codec (MFC) > - > -Multi Format Codec (MFC) is the IP present in Samsung SoCs which > -supports high resolution decoding and encoding functionalities. > -The MFC device driver is a v4l2 driver which can encode/decode > -video raw/elementary streams and has support for all popular > -video codecs. > - > -Required properties: > - - compatible : value should be either one among the following > - (a) "samsung,mfc-v5" for MFC v5 present in Exynos4 SoCs > - (b) "samsung,mfc-v6" for MFC v6 present in Exynos5 SoCs > - (c) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC > - (d) "samsung,mfc-v8" for MFC v8 present in Exynos5800 SoC > - (e) "samsung,exynos5433-mfc" for MFC v8 present in Exynos5433 SoC > - (f) "samsung,mfc-v10" for MFC v10 present in Exynos7880 SoC > - > - - reg : Physical base address of the IP registers and length of memory > - mapped region. > - > - - interrupts : MFC interrupt number to the CPU. > - - clocks : from common clock binding: handle to mfc clock. > - - clock-names : from common clock binding: must contain "mfc", > - corresponding to entry in the clocks property. > - > -Optional properties: > - - power-domains : power-domain property defined with a phandle > - to respective power domain. > - - memory-region : from reserved memory binding: phandles to two reserved > - memory regions, first is for "left" mfc memory bus interfaces, > - second if for the "right" mfc memory bus, used when no SYSMMU > - support is available; used only by MFC v5 present in Exynos4 SoCs > - > -Obsolete properties: > - - samsung,mfc-r, samsung,mfc-l : support removed, please use memory-region > - property instead When did they become obsolete? Is it enough of time to remove them? > - > - > -Example: > -SoC specific DT entry: > - > -mfc: codec@13400000 { > - compatible = "samsung,mfc-v5"; > - reg = <0x13400000 0x10000>; > - interrupts = <0 94 0>; > - power-domains = <&pd_mfc>; > - clocks = <&clock 273>; > - clock-names = "mfc"; > -}; > - > -Reserved memory specific DT entry for given board (see reserved memory binding > -for more information): > - > -reserved-memory { > - #address-cells = <1>; > - #size-cells = <1>; > - ranges; > - > - mfc_left: region@51000000 { > - compatible = "shared-dma-pool"; > - no-map; > - reg = <0x51000000 0x800000>; > - }; > - > - mfc_right: region@43000000 { > - compatible = "shared-dma-pool"; > - no-map; > - reg = <0x43000000 0x800000>; > - }; > -}; > - > -Board specific DT entry: > - > -codec@13400000 { > - memory-region = <&mfc_left>, <&mfc_right>; > -}; > +This file has moved to samsung,s5p-mfc.yaml Just drop the TXT completely. Nothing references it. > diff --git a/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml b/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml > new file mode 100644 > index 000000000000..7cd26d4acbe4 > --- /dev/null > +++ b/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml > @@ -0,0 +1,109 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/media/samsung,s5p-mfc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Samsung Exynos Multi Format Codec (MFC) > + > +maintainers: > + - Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > + - Aakarsh Jain <aakarsh.jain@xxxxxxxxxxx> and maybe you as well? > + > +description: > + Multi Format Codec (MFC) is the IP present in Samsung SoCs which > + supports high resolution decoding and encoding functionalities. > + > +properties: > + compatible: > + enum: > + - samsung,mfc-v5 # Exynos4 > + - samsung,mfc-v6 # Exynos5 > + - samsung,mfc-v7 # Exynos5420 > + - samsung,mfc-v8 # Exynos5800 > + - samsung,exynos5433-mfc # Exynos5433 > + - samsung,mfc-v10 # Exynos7880 > + > + reg: > + maxItems: 1 > + > + clocks: > + minItems: 1 > + maxItems: 3 You need to list the items. If this varies per compatible, do it in AllOf. > + > + clock-names: > + minItems: 1 > + maxItems: 3 > + > + interrupts: > + maxItems: 1 > + > + iommus: > + maxItems: 2 > + > + iommu-names: > + maxItems: 2 You need to list the items. > + > + power-domains: > + maxItems: 1 > + > + memory-region: > + maxItems: 1 This misses the description and old binding allowed it only for MFCv5, not for others, right? > + > +allOf: > + - if: allOf goes after required section. > + properties: > + compatible: > + contains: > + enum: > + - samsung,mfc-v5 > + then: > + properties: > + memory-region: > + maxItems: 2 Does not look like you tested the bindings. Please run `make dt_binding_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). This won't work. Test it and you will see it. > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - interrupts > + > +additionalProperties: false > + > +examples: > + - | > + # SoC specific DT entry > + mfc: mfc@12880000 { > + compatible = "samsung,fsd-mfc"; Does not look like you tested the bindings. Please run `make dt_binding_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). > + reg = <0x0 0x12880000 0x0 0x10000>; > + interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; > + clock-names = "mfc"; > + clocks = <&clock_mfc MFC_MFC_IPCLKPORT_ACLK>; > + iommus = <&smmu_isp 0x1000 0x0>, <&smmu_isp 0x1400 0x0>; > + iommu-names = "left", "right"; > + power-domains = <&pd_mfc>; > + memory-region = <&mfc_left>, <&mfc_right>; > + }; > + > + - | > + # Reserved memory specific DT entry for given board > + # (see reserved memory binding for more information) > + reserved-memory { > + #address-cells = <1>; > + #size-cells = <1>; Drop this example, not really related to MFC. > + ranges; Best regards, Krzysztof