From: "Aakarsh Jain" <aakarsh.jain@samsung.com>
To: "'Krzysztof Kozlowski'" <krzysztof.kozlowski@linaro.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-media@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<devicetree@vger.kernel.org>
Cc: <m.szyprowski@samsung.com>, <andrzej.hajda@intel.com>,
<mchehab@kernel.org>, <hverkuil-cisco@xs4all.nl>,
<ezequiel@vanguardiasur.com.ar>, <jernej.skrabec@gmail.com>,
<benjamin.gaignard@collabora.com>,
<krzysztof.kozlowski+dt@linaro.org>,
<stanimir.varbanov@linaro.org>, <dillon.minfei@gmail.com>,
<david.plowman@raspberrypi.com>, <mark.rutland@arm.com>,
<robh+dt@kernel.org>, <krzk+dt@kernel.org>, <andi@etezian.org>,
<alim.akhtar@samsung.com>, <aswani.reddy@samsung.com>,
<pankaj.dubey@samsung.com>
Subject: RE: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings to json-schema
Date: Thu, 9 Mar 2023 11:08:01 +0530 [thread overview]
Message-ID: <000001d95249$52adea80$f809bf80$@samsung.com> (raw)
In-Reply-To:
> -----Original Message-----
> From: Aakarsh Jain [mailto:aakarsh.jain@samsung.com]
> Sent: 02 March 2023 20:49
> To: 'Krzysztof Kozlowski' <krzysztof.kozlowski@linaro.org>; 'linux-arm-
> kernel@lists.infradead.org' <linux-arm-kernel@lists.infradead.org>; 'linux-
> media@vger.kernel.org' <linux-media@vger.kernel.org>; 'linux-
> kernel@vger.kernel.org' <linux-kernel@vger.kernel.org>;
> 'devicetree@vger.kernel.org' <devicetree@vger.kernel.org>
> Cc: 'm.szyprowski@samsung.com' <m.szyprowski@samsung.com>;
> 'andrzej.hajda@intel.com' <andrzej.hajda@intel.com>;
> 'mchehab@kernel.org' <mchehab@kernel.org>; 'hverkuil-cisco@xs4all.nl'
> <hverkuil-cisco@xs4all.nl>; 'ezequiel@vanguardiasur.com.ar'
> <ezequiel@vanguardiasur.com.ar>; 'jernej.skrabec@gmail.com'
> <jernej.skrabec@gmail.com>; 'benjamin.gaignard@collabora.com'
> <benjamin.gaignard@collabora.com>; 'krzysztof.kozlowski+dt@linaro.org'
> <krzysztof.kozlowski+dt@linaro.org>; 'stanimir.varbanov@linaro.org'
> <stanimir.varbanov@linaro.org>; 'dillon.minfei@gmail.com'
> <dillon.minfei@gmail.com>; 'david.plowman@raspberrypi.com'
> <david.plowman@raspberrypi.com>; 'mark.rutland@arm.com'
> <mark.rutland@arm.com>; 'robh+dt@kernel.org' <robh+dt@kernel.org>;
> 'krzk+dt@kernel.org' <krzk+dt@kernel.org>; 'andi@etezian.org'
> <andi@etezian.org>; 'alim.akhtar@samsung.com'
> <alim.akhtar@samsung.com>; 'aswani.reddy@samsung.com'
> <aswani.reddy@samsung.com>; 'pankaj.dubey@samsung.com'
> <pankaj.dubey@samsung.com>
> Subject: RE: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings to json-
> schema
>
>
>
> > -----Original Message-----
> > From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org]
> > Sent: 02 March 2023 14:07
> > To: Aakarsh Jain <aakarsh.jain@samsung.com>; linux-arm-
> > kernel@lists.infradead.org; linux-media@vger.kernel.org; linux-
> > kernel@vger.kernel.org; devicetree@vger.kernel.org
> > Cc: m.szyprowski@samsung.com; andrzej.hajda@intel.com;
> > mchehab@kernel.org; hverkuil-cisco@xs4all.nl;
> > ezequiel@vanguardiasur.com.ar; jernej.skrabec@gmail.com;
> > benjamin.gaignard@collabora.com; krzysztof.kozlowski+dt@linaro.org;
> > stanimir.varbanov@linaro.org; dillon.minfei@gmail.com;
> > david.plowman@raspberrypi.com; mark.rutland@arm.com;
> > robh+dt@kernel.org; krzk+dt@kernel.org; andi@etezian.org;
> > alim.akhtar@samsung.com; aswani.reddy@samsung.com;
> > pankaj.dubey@samsung.com
> > Subject: Re: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings
> > to json- schema
> >
> > On 01/03/2023 04:51, Aakarsh Jain wrote:
> > > Convert s5p-mfc bindings to DT schema format using json-schema.
> > >
> > > Signed-off-by: Aakarsh Jain <aakarsh.jain@samsung.com>
> > > ---
> > > changes since v5:
> > > kept compatible strings under enum
> > > sorted compatible strings
> > > added iommu maxItems:2
> > > Added indentation with 4 spaces in dts example
> > >
> > > changes since v4:
> > > Removed items from oneOf section
> > > dropped black line
> > > defined the iommus names items as
> > > items:
> > > -const left
> > > -const right
> > >
> > > changes since v3:
> > > fixed dt-schema warnings and errors while running make dtbs_check
> > > and make dt_binding_check for ARMv7 Since, obsolete properties are
> > > not part
> > of dt-node so we are not including these properties in dt-schema.
> > >
> > > changes since v2:
> > > changed Commit message from Adds to Convert Removed text "This file
> > > has moved to samsung,s5p-mfc.yaml" from s5p-mfc.txt fixed dt-schema
> > > warnings and errors while running make dtbs_check and make
> > > dt_binding_check
> > >
> > > changes since v1:
> > > fixed dt-schema warnings and errors while running make dtbs_check
> > > and make dt_binding_check Removed description.
> > > Listed items.
> > > Added allOf:if:then for restricting two items to specific compatible
> > >
> > > This patch is independent from the previous MFC v12 patch series for
> > > HW3
> > support.
> > >
> > > .../devicetree/bindings/media/s5p-mfc.txt | 78 ---------
> > > .../bindings/media/samsung,s5p-mfc.yaml | 151
> > ++++++++++++++++++
> > > 2 files changed, 151 insertions(+), 78 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 8eb90c043d5d..e69de29bb2d1 100644
> > > --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
> > > +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
> > > @@ -1,78 +0,0 @@
> > > -* 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,exynos3250-mfc", "samsung,mfc-v7" for MFC v7
> > > - present in Exynos3250 SoC
> > > - (d) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC
> > > - (e) "samsung,mfc-v8" for MFC v8 present in Exynos5800 SoC
> > > - (f) "samsung,exynos5433-mfc" for MFC v8 present in Exynos5433 SoC
> > > - (g) "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
> > > -
> > > -
> > > -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>;
> > > -};
> > > diff --git
> > > a/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml
> > > b/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml
> > > index 000000000000..da48d0493cdd
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/samsung,s5p-
> mfc.yaml
> > > @@ -0,0 +1,151 @@
> > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2
> > > +---
> > > +$id:
> > > +https://protect2.fireeye.com/v1/url?k=d24ef7e4-8dd5cefd-d24f7cab-
> > 000b
> > > +abff3793-d3511b88da8176a3&q=1&e=3ebd99e2-81bd-4303-988b-
> > 085ab2449cc1&
> > >
> >
> +u=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fmedia%2Fsamsung%2Cs
> > 5p-mfc.y
> > > +aml%23
> > > +$schema:
> > > +https://protect2.fireeye.com/v1/url?k=5aeac908-0571f011-5aeb4247-
> > 000b
> > > +abff3793-01e9fec8ce4d48cc&q=1&e=3ebd99e2-81bd-4303-988b-
> > 085ab2449cc1&
> > > +u=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23
> > > +
> > > +title: Samsung Exynos Multi Format Codec (MFC)
> > > +
> > > +maintainers:
> > > + - Marek Szyprowski <m.szyprowski@samsung.com>
> > > + - Aakarsh Jain <aakarsh.jain@samsung.com>
> > > +
> > > +description:
> > > + Multi Format Codec (MFC) is the IP present in Samsung SoCs which
> > > + supports high resolution decoding and encoding functionalities.
> > > +
> > > +properties:
> > > + compatible:
> > > + oneOf:
> > > + - enum:
> > > + - samsung,exynos5433-mfc # Exynos5433
> > > + - samsung,mfc-v5 # Exynos4
> > > + - samsung,mfc-v6 # Exynos5
> > > + - samsung,mfc-v7 # Exynos5420
> > > + - samsung,mfc-v8 # Exynos5800
> > > + - samsung,mfc-v10 # Exynos7880
> > > + - items:
> > > + - enum:
> > > + - samsung,exynos3250-mfc # Exynos3250
> > > + - const: samsung,mfc-v7 # Fall back for Exynos3250
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + clocks:
> > > + minItems: 1
> > > + maxItems: 3
> > > +
> > > + clock-names:
> > > + minItems: 1
> > > + maxItems: 3
> > > +
> > > + interrupts:
> > > + maxItems: 1
> > > +
> > > + iommus:
> > > + minItems: 1
> > > + maxItems: 2
> > > +
> > > + iommu-names:
> > > + items:
> > > + - const: left
> > > + - const: right
> >
> > That's confusing now... The iommu-names above says it requires two
> > iommus, but your iommus property says one item is enough. You need
> > here
> > minItems: 1... but then why one IOMMU (for such variants) is always
> "left"?
> > Probably then the meaning of first IOMMU changes, right? If that's
> > correct, then I propose to leave it as minItems:1/maxItems:2 without
> > defining the items here and...
> >
> Agreed. That’s why I initially kept as minItems:1/maxItems:2. Will keep it
> now as it is.
> iommu-names:
> minItems: 1
> maxItems: 2
> > > +
> > > + power-domains:
> > > + maxItems: 1
> > > +
> > > + memory-region:
> > > + minItems: 1
> > > + maxItems: 2
> > > +
> > > +required:
> > > + - compatible
> > > + - reg
> > > + - clocks
> > > + - clock-names
> > > + - interrupts
> > > +
> > > +additionalProperties: false
> > > +
> > > +allOf:
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v5
> > > + - samsung,exynos3250-mfc
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 2
> > > + clock-names:
> > > + items:
> > > + - const: mfc
> > > + - const: sclk_mfc
> >
> > iommus:
> > maxItems: 1
> > iommu-names: false
> >
> I am getting compilation errors with above property set and its breaking the
> bindings.
> If we see these two nodes in dtsi files.
> mfc: codec@13400000 {
> compatible = "samsung,mfc-v5"; ..
> iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
> iommu-names = "left", "right"; } And
> mfc: codec@13400000 {
> compatible = "samsung,exynos3250-mfc", "samsung,mfc-v7";
> reg = <0x13400000 0x10000>; ...
> iommus = <&sysmmu_mfc>;
> };
> There is no iommu-names property for compatible "samsung,exynos3250-
> mfc, samsung,mfc-v7", that’s why I kept
> iommus:
> minItems: 1
> maxItems: 2
> I would even go with below if you agree?
> iommus:
> minItems: 1
> maxItems: 2
> iommus-names: false
>
Hi Krzysztof,
Any suggestions here?
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v6
> > > + - samsung,mfc-v8
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 1
> > > + clock-names:
> > > + items:
> > > + - const: mfc
> > > + iommus:
> > > + maxItems: 2
> >
> > ... and here:
> > iommu-names:
> > items:
> > - const: left
> > - const: right
> >
> Agreed.
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,exynos5433-mfc
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 3
> > > + clock-names:
> > > + items:
> > > + - const: pclk
> > > + - const: aclk
> > > + - const: aclk_xiu
> > > + iommus:
> > > + maxItems: 2
> >
> > the same here
> >
> Agreed.
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v7
> > > + then:
> > > + properties:
> > > + clocks:
> > > + minItems: 1
> > > + maxItems: 2
> >
> > iommus:
> > maxItems: 1
> > iommu-names: false
> same explanation as above. Would prefer to go with
> iommus:
> minItems: 1
> maxItems: 2
> iommus-names: false
> >
> >
> > Best regards,
> > Krzysztof
>
> Thanks for the review.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: "Aakarsh Jain" <aakarsh.jain@samsung.com>
To: "'Krzysztof Kozlowski'" <krzysztof.kozlowski@linaro.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-media@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<devicetree@vger.kernel.org>
Cc: <m.szyprowski@samsung.com>, <andrzej.hajda@intel.com>,
<mchehab@kernel.org>, <hverkuil-cisco@xs4all.nl>,
<ezequiel@vanguardiasur.com.ar>, <jernej.skrabec@gmail.com>,
<benjamin.gaignard@collabora.com>,
<krzysztof.kozlowski+dt@linaro.org>,
<stanimir.varbanov@linaro.org>, <dillon.minfei@gmail.com>,
<david.plowman@raspberrypi.com>, <mark.rutland@arm.com>,
<robh+dt@kernel.org>, <krzk+dt@kernel.org>, <andi@etezian.org>,
<alim.akhtar@samsung.com>, <aswani.reddy@samsung.com>,
<pankaj.dubey@samsung.com>
Subject: RE: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings to json-schema
Date: Thu, 9 Mar 2023 11:08:01 +0530 [thread overview]
Message-ID: <000001d95249$52adea80$f809bf80$@samsung.com> (raw)
In-Reply-To:
> -----Original Message-----
> From: Aakarsh Jain [mailto:aakarsh.jain@samsung.com]
> Sent: 02 March 2023 20:49
> To: 'Krzysztof Kozlowski' <krzysztof.kozlowski@linaro.org>; 'linux-arm-
> kernel@lists.infradead.org' <linux-arm-kernel@lists.infradead.org>; 'linux-
> media@vger.kernel.org' <linux-media@vger.kernel.org>; 'linux-
> kernel@vger.kernel.org' <linux-kernel@vger.kernel.org>;
> 'devicetree@vger.kernel.org' <devicetree@vger.kernel.org>
> Cc: 'm.szyprowski@samsung.com' <m.szyprowski@samsung.com>;
> 'andrzej.hajda@intel.com' <andrzej.hajda@intel.com>;
> 'mchehab@kernel.org' <mchehab@kernel.org>; 'hverkuil-cisco@xs4all.nl'
> <hverkuil-cisco@xs4all.nl>; 'ezequiel@vanguardiasur.com.ar'
> <ezequiel@vanguardiasur.com.ar>; 'jernej.skrabec@gmail.com'
> <jernej.skrabec@gmail.com>; 'benjamin.gaignard@collabora.com'
> <benjamin.gaignard@collabora.com>; 'krzysztof.kozlowski+dt@linaro.org'
> <krzysztof.kozlowski+dt@linaro.org>; 'stanimir.varbanov@linaro.org'
> <stanimir.varbanov@linaro.org>; 'dillon.minfei@gmail.com'
> <dillon.minfei@gmail.com>; 'david.plowman@raspberrypi.com'
> <david.plowman@raspberrypi.com>; 'mark.rutland@arm.com'
> <mark.rutland@arm.com>; 'robh+dt@kernel.org' <robh+dt@kernel.org>;
> 'krzk+dt@kernel.org' <krzk+dt@kernel.org>; 'andi@etezian.org'
> <andi@etezian.org>; 'alim.akhtar@samsung.com'
> <alim.akhtar@samsung.com>; 'aswani.reddy@samsung.com'
> <aswani.reddy@samsung.com>; 'pankaj.dubey@samsung.com'
> <pankaj.dubey@samsung.com>
> Subject: RE: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings to json-
> schema
>
>
>
> > -----Original Message-----
> > From: Krzysztof Kozlowski [mailto:krzysztof.kozlowski@linaro.org]
> > Sent: 02 March 2023 14:07
> > To: Aakarsh Jain <aakarsh.jain@samsung.com>; linux-arm-
> > kernel@lists.infradead.org; linux-media@vger.kernel.org; linux-
> > kernel@vger.kernel.org; devicetree@vger.kernel.org
> > Cc: m.szyprowski@samsung.com; andrzej.hajda@intel.com;
> > mchehab@kernel.org; hverkuil-cisco@xs4all.nl;
> > ezequiel@vanguardiasur.com.ar; jernej.skrabec@gmail.com;
> > benjamin.gaignard@collabora.com; krzysztof.kozlowski+dt@linaro.org;
> > stanimir.varbanov@linaro.org; dillon.minfei@gmail.com;
> > david.plowman@raspberrypi.com; mark.rutland@arm.com;
> > robh+dt@kernel.org; krzk+dt@kernel.org; andi@etezian.org;
> > alim.akhtar@samsung.com; aswani.reddy@samsung.com;
> > pankaj.dubey@samsung.com
> > Subject: Re: [Patch v6] dt-bindings: media: s5p-mfc: convert bindings
> > to json- schema
> >
> > On 01/03/2023 04:51, Aakarsh Jain wrote:
> > > Convert s5p-mfc bindings to DT schema format using json-schema.
> > >
> > > Signed-off-by: Aakarsh Jain <aakarsh.jain@samsung.com>
> > > ---
> > > changes since v5:
> > > kept compatible strings under enum
> > > sorted compatible strings
> > > added iommu maxItems:2
> > > Added indentation with 4 spaces in dts example
> > >
> > > changes since v4:
> > > Removed items from oneOf section
> > > dropped black line
> > > defined the iommus names items as
> > > items:
> > > -const left
> > > -const right
> > >
> > > changes since v3:
> > > fixed dt-schema warnings and errors while running make dtbs_check
> > > and make dt_binding_check for ARMv7 Since, obsolete properties are
> > > not part
> > of dt-node so we are not including these properties in dt-schema.
> > >
> > > changes since v2:
> > > changed Commit message from Adds to Convert Removed text "This file
> > > has moved to samsung,s5p-mfc.yaml" from s5p-mfc.txt fixed dt-schema
> > > warnings and errors while running make dtbs_check and make
> > > dt_binding_check
> > >
> > > changes since v1:
> > > fixed dt-schema warnings and errors while running make dtbs_check
> > > and make dt_binding_check Removed description.
> > > Listed items.
> > > Added allOf:if:then for restricting two items to specific compatible
> > >
> > > This patch is independent from the previous MFC v12 patch series for
> > > HW3
> > support.
> > >
> > > .../devicetree/bindings/media/s5p-mfc.txt | 78 ---------
> > > .../bindings/media/samsung,s5p-mfc.yaml | 151
> > ++++++++++++++++++
> > > 2 files changed, 151 insertions(+), 78 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 8eb90c043d5d..e69de29bb2d1 100644
> > > --- a/Documentation/devicetree/bindings/media/s5p-mfc.txt
> > > +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
> > > @@ -1,78 +0,0 @@
> > > -* 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,exynos3250-mfc", "samsung,mfc-v7" for MFC v7
> > > - present in Exynos3250 SoC
> > > - (d) "samsung,mfc-v7" for MFC v7 present in Exynos5420 SoC
> > > - (e) "samsung,mfc-v8" for MFC v8 present in Exynos5800 SoC
> > > - (f) "samsung,exynos5433-mfc" for MFC v8 present in Exynos5433 SoC
> > > - (g) "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
> > > -
> > > -
> > > -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>;
> > > -};
> > > diff --git
> > > a/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml
> > > b/Documentation/devicetree/bindings/media/samsung,s5p-mfc.yaml
> > > index 000000000000..da48d0493cdd
> > > --- /dev/null
> > > +++ b/Documentation/devicetree/bindings/media/samsung,s5p-
> mfc.yaml
> > > @@ -0,0 +1,151 @@
> > > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2
> > > +---
> > > +$id:
> > > +https://protect2.fireeye.com/v1/url?k=d24ef7e4-8dd5cefd-d24f7cab-
> > 000b
> > > +abff3793-d3511b88da8176a3&q=1&e=3ebd99e2-81bd-4303-988b-
> > 085ab2449cc1&
> > >
> >
> +u=http%3A%2F%2Fdevicetree.org%2Fschemas%2Fmedia%2Fsamsung%2Cs
> > 5p-mfc.y
> > > +aml%23
> > > +$schema:
> > > +https://protect2.fireeye.com/v1/url?k=5aeac908-0571f011-5aeb4247-
> > 000b
> > > +abff3793-01e9fec8ce4d48cc&q=1&e=3ebd99e2-81bd-4303-988b-
> > 085ab2449cc1&
> > > +u=http%3A%2F%2Fdevicetree.org%2Fmeta-schemas%2Fcore.yaml%23
> > > +
> > > +title: Samsung Exynos Multi Format Codec (MFC)
> > > +
> > > +maintainers:
> > > + - Marek Szyprowski <m.szyprowski@samsung.com>
> > > + - Aakarsh Jain <aakarsh.jain@samsung.com>
> > > +
> > > +description:
> > > + Multi Format Codec (MFC) is the IP present in Samsung SoCs which
> > > + supports high resolution decoding and encoding functionalities.
> > > +
> > > +properties:
> > > + compatible:
> > > + oneOf:
> > > + - enum:
> > > + - samsung,exynos5433-mfc # Exynos5433
> > > + - samsung,mfc-v5 # Exynos4
> > > + - samsung,mfc-v6 # Exynos5
> > > + - samsung,mfc-v7 # Exynos5420
> > > + - samsung,mfc-v8 # Exynos5800
> > > + - samsung,mfc-v10 # Exynos7880
> > > + - items:
> > > + - enum:
> > > + - samsung,exynos3250-mfc # Exynos3250
> > > + - const: samsung,mfc-v7 # Fall back for Exynos3250
> > > +
> > > + reg:
> > > + maxItems: 1
> > > +
> > > + clocks:
> > > + minItems: 1
> > > + maxItems: 3
> > > +
> > > + clock-names:
> > > + minItems: 1
> > > + maxItems: 3
> > > +
> > > + interrupts:
> > > + maxItems: 1
> > > +
> > > + iommus:
> > > + minItems: 1
> > > + maxItems: 2
> > > +
> > > + iommu-names:
> > > + items:
> > > + - const: left
> > > + - const: right
> >
> > That's confusing now... The iommu-names above says it requires two
> > iommus, but your iommus property says one item is enough. You need
> > here
> > minItems: 1... but then why one IOMMU (for such variants) is always
> "left"?
> > Probably then the meaning of first IOMMU changes, right? If that's
> > correct, then I propose to leave it as minItems:1/maxItems:2 without
> > defining the items here and...
> >
> Agreed. That’s why I initially kept as minItems:1/maxItems:2. Will keep it
> now as it is.
> iommu-names:
> minItems: 1
> maxItems: 2
> > > +
> > > + power-domains:
> > > + maxItems: 1
> > > +
> > > + memory-region:
> > > + minItems: 1
> > > + maxItems: 2
> > > +
> > > +required:
> > > + - compatible
> > > + - reg
> > > + - clocks
> > > + - clock-names
> > > + - interrupts
> > > +
> > > +additionalProperties: false
> > > +
> > > +allOf:
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v5
> > > + - samsung,exynos3250-mfc
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 2
> > > + clock-names:
> > > + items:
> > > + - const: mfc
> > > + - const: sclk_mfc
> >
> > iommus:
> > maxItems: 1
> > iommu-names: false
> >
> I am getting compilation errors with above property set and its breaking the
> bindings.
> If we see these two nodes in dtsi files.
> mfc: codec@13400000 {
> compatible = "samsung,mfc-v5"; ..
> iommus = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
> iommu-names = "left", "right"; } And
> mfc: codec@13400000 {
> compatible = "samsung,exynos3250-mfc", "samsung,mfc-v7";
> reg = <0x13400000 0x10000>; ...
> iommus = <&sysmmu_mfc>;
> };
> There is no iommu-names property for compatible "samsung,exynos3250-
> mfc, samsung,mfc-v7", that’s why I kept
> iommus:
> minItems: 1
> maxItems: 2
> I would even go with below if you agree?
> iommus:
> minItems: 1
> maxItems: 2
> iommus-names: false
>
Hi Krzysztof,
Any suggestions here?
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v6
> > > + - samsung,mfc-v8
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 1
> > > + clock-names:
> > > + items:
> > > + - const: mfc
> > > + iommus:
> > > + maxItems: 2
> >
> > ... and here:
> > iommu-names:
> > items:
> > - const: left
> > - const: right
> >
> Agreed.
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,exynos5433-mfc
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 3
> > > + clock-names:
> > > + items:
> > > + - const: pclk
> > > + - const: aclk
> > > + - const: aclk_xiu
> > > + iommus:
> > > + maxItems: 2
> >
> > the same here
> >
> Agreed.
> > > +
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - samsung,mfc-v7
> > > + then:
> > > + properties:
> > > + clocks:
> > > + minItems: 1
> > > + maxItems: 2
> >
> > iommus:
> > maxItems: 1
> > iommu-names: false
> same explanation as above. Would prefer to go with
> iommus:
> minItems: 1
> maxItems: 2
> iommus-names: false
> >
> >
> > Best regards,
> > Krzysztof
>
> Thanks for the review.
next prev parent reply other threads:[~2023-03-09 6:25 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230301035153epcas5p40f576188a9a69835c1050135219a3720@epcas5p4.samsung.com>
2023-03-01 3:51 ` [Patch v6] dt-bindings: media: s5p-mfc: convert bindings to json-schema Aakarsh Jain
2023-03-01 3:51 ` Aakarsh Jain
2023-03-02 8:37 ` Krzysztof Kozlowski
2023-03-02 8:37 ` Krzysztof Kozlowski
2023-03-02 15:18 ` Aakarsh Jain
2023-03-02 15:18 ` Aakarsh Jain
2023-03-09 6:45 ` Krzysztof Kozlowski
2023-03-09 6:45 ` Krzysztof Kozlowski
2023-03-09 7:22 ` Aakarsh Jain
2023-03-09 7:22 ` Aakarsh Jain
2023-03-09 8:10 ` Krzysztof Kozlowski
2023-03-09 8:10 ` Krzysztof Kozlowski
2023-03-09 8:48 ` Aakarsh Jain
2023-03-09 8:48 ` Aakarsh Jain
2023-03-10 9:08 ` Krzysztof Kozlowski
2023-03-10 9:08 ` Krzysztof Kozlowski
2023-03-13 3:56 ` Aakarsh Jain
2023-03-13 3:56 ` Aakarsh Jain
2023-03-13 6:44 ` Krzysztof Kozlowski
2023-03-13 6:44 ` Krzysztof Kozlowski
2023-03-09 5:38 ` Aakarsh Jain [this message]
2023-03-09 5:38 ` Aakarsh Jain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='000001d95249$52adea80$f809bf80$@samsung.com' \
--to=aakarsh.jain@samsung.com \
--cc=alim.akhtar@samsung.com \
--cc=andi@etezian.org \
--cc=andrzej.hajda@intel.com \
--cc=aswani.reddy@samsung.com \
--cc=benjamin.gaignard@collabora.com \
--cc=david.plowman@raspberrypi.com \
--cc=devicetree@vger.kernel.org \
--cc=dillon.minfei@gmail.com \
--cc=ezequiel@vanguardiasur.com.ar \
--cc=hverkuil-cisco@xs4all.nl \
--cc=jernej.skrabec@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=mark.rutland@arm.com \
--cc=mchehab@kernel.org \
--cc=pankaj.dubey@samsung.com \
--cc=robh+dt@kernel.org \
--cc=stanimir.varbanov@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.