[v2,1/3] media: dt-bindings: media: mediatek: vcodec: Fix clock num not correctly
Commit Message
mt8195 and mt8192 have different clock numbers, can't write 'clocks' and
'clock-names' with const value.
Move 'assigned-clocks' and 'assigned-clock-parents' to parent node.
Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
---
.../media/mediatek,vcodec-subdev-decoder.yaml | 119 +++++++++++-------
1 file changed, 72 insertions(+), 47 deletions(-)
Comments
On Thu, Nov 10, 2022 at 06:28:32PM +0800, Yunfei Dong wrote:
> mt8195 and mt8192 have different clock numbers, can't write 'clocks' and
> 'clock-names' with const value.
Not a compatible change. Explain why that is okay if it is.
>
> Move 'assigned-clocks' and 'assigned-clock-parents' to parent node.
>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
> .../media/mediatek,vcodec-subdev-decoder.yaml | 119 +++++++++++-------
> 1 file changed, 72 insertions(+), 47 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
> index c4f20acdc1f8..794012853834 100644
> --- a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
> +++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-decoder.yaml
> @@ -89,23 +89,33 @@ properties:
>
> ranges: true
>
> + clocks:
> + minItems: 1
> + maxItems: 5
> +
> + clock-names:
> + minItems: 1
> + maxItems: 5
Why do both the parent and child have clocks?
> +
> + assigned-clocks:
> + maxItems: 1
> +
> + assigned-clock-parents:
> + maxItems: 1
You can just drop assigned-clock properties. They are allowed in any
node with 'clocks'.
> +
> # Required child node:
> patternProperties:
> - '^vcodec-lat@[0-9a-f]+$':
> + '^vcodec-lat-soc@[0-9a-f]+$':
> type: object
>
> properties:
> compatible:
> enum:
> - - mediatek,mtk-vcodec-lat
> - mediatek,mtk-vcodec-lat-soc
>
> reg:
> maxItems: 1
>
> - interrupts:
> - maxItems: 1
> -
Dropping interrupts? Not explained in the commit msg (why?).
> iommus:
> minItems: 1
> maxItems: 32
> @@ -114,22 +124,55 @@ patternProperties:
> Refer to bindings/iommu/mediatek,iommu.yaml.
>
> clocks:
> + minItems: 1
> maxItems: 5
>
> clock-names:
> - items:
> - - const: sel
> - - const: soc-vdec
> - - const: soc-lat
> - - const: vdec
> - - const: top
> + minItems: 1
> + maxItems: 5
We had names defined and now we don't. That's a step backwards.
>
> - assigned-clocks:
> + power-domains:
Adding power-domains?
Rob
Hi Rob,
Thanks for your comments.
On Wed, 2022-11-16 at 11:29 -0600, Rob Herring wrote:
> On Thu, Nov 10, 2022 at 06:28:32PM +0800, Yunfei Dong wrote:
> > mt8195 and mt8192 have different clock numbers, can't write
> > 'clocks' and
> > 'clock-names' with const value.
>
> Not a compatible change. Explain why that is okay if it is.
>
This change is used for mt8195 platform for some architecture changed.
Need to separate vcodec-lat with vcodec-lat-soc into different child
node.
At the same time, vcodec-lat-soc don't have interrupt, but having power
domain and clks.
> >
> > Move 'assigned-clocks' and 'assigned-clock-parents' to parent node.
> >
> > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> > ---
> > .../media/mediatek,vcodec-subdev-decoder.yaml | 119 +++++++++++---
> > ----
> > 1 file changed, 72 insertions(+), 47 deletions(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-
> > decoder.yaml
> > b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-
> > decoder.yaml
> > index c4f20acdc1f8..794012853834 100644
> > --- a/Documentation/devicetree/bindings/media/mediatek,vcodec-
> > subdev-decoder.yaml
> > +++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-
> > subdev-decoder.yaml
> > @@ -89,23 +89,33 @@ properties:
> >
> > ranges: true
> >
> > + clocks:
> > + minItems: 1
> > + maxItems: 5
> > +
> > + clock-names:
> > + minItems: 1
> > + maxItems: 5
>
> Why do both the parent and child have clocks?
>
If move assigned-clock-parents to child node, need to add 'ssigned-
clock-parents' and 'assigned-clocks' for each child node. Only need to
add one in parent node, child node no need to add if add 'ssigned-
clock-parents' and 'assigned-clocks' in parent node.
Adding 'assigned-clock-parents' and 'assigned-clocks' need to add
'clocks' and 'clock-names', or will check fail.
> > +
> > + assigned-clocks:
> > + maxItems: 1
> > +
> > + assigned-clock-parents:
> > + maxItems: 1
>
> You can just drop assigned-clock properties. They are allowed in any
> node with 'clocks'.
>
Only need to add one in parent node, or need to add for each child
node.
> > +
> > # Required child node:
> > patternProperties:
> > - '^vcodec-lat@[0-9a-f]+$':
> > + '^vcodec-lat-soc@[0-9a-f]+$':
> > type: object
> >
> > properties:
> > compatible:
> > enum:
> > - - mediatek,mtk-vcodec-lat
> > - mediatek,mtk-vcodec-lat-soc
> >
> > reg:
> > maxItems: 1
> >
> > - interrupts:
> > - maxItems: 1
> > -
>
> Dropping interrupts? Not explained in the commit msg (why?).
>
vcodec-lat-soc no need interrupts, will add detail commit message in
next patch.
> > iommus:
> > minItems: 1
> > maxItems: 32
> > @@ -114,22 +124,55 @@ patternProperties:
> > Refer to bindings/iommu/mediatek,iommu.yaml.
> >
> > clocks:
> > + minItems: 1
> > maxItems: 5
> >
> > clock-names:
> > - items:
> > - - const: sel
> > - - const: soc-vdec
> > - - const: soc-lat
> > - - const: vdec
> > - - const: top
> > + minItems: 1
> > + maxItems: 5
>
> We had names defined and now we don't. That's a step backwards.
>
Mt8195/mt8192/mt8186/mt8188 have different clock number and clock
names, so change it like this, do you have any other suggestion?
> >
> > - assigned-clocks:
> > + power-domains:
>
> Adding power-domains?
Vcodec-lat-soc need power domain and add one new child node vcodec-lat-
soc.
Best Regards,
Yunfei Dong
>
> Rob
Hi Rob,
Sorry to disturb you.
Could you please help to check the comments in last mail when you are
free?
Best Regards,
Yunfei Dong
On Thu, 2022-11-17 at 10:16 +0800, yunfei.dong wrote:
> Hi Rob,
>
> Thanks for your comments.
> On Wed, 2022-11-16 at 11:29 -0600, Rob Herring wrote:
> > On Thu, Nov 10, 2022 at 06:28:32PM +0800, Yunfei Dong wrote:
> > > mt8195 and mt8192 have different clock numbers, can't write
> > > 'clocks' and
> > > 'clock-names' with const value.
> >
> > Not a compatible change. Explain why that is okay if it is.
> >
>
> This change is used for mt8195 platform for some architecture
> changed.
> Need to separate vcodec-lat with vcodec-lat-soc into different child
> node.
>
> At the same time, vcodec-lat-soc don't have interrupt, but having
> power
> domain and clks.
> > >
> > > Move 'assigned-clocks' and 'assigned-clock-parents' to parent
> > > node.
> > >
> > > Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> > > ---
> > > .../media/mediatek,vcodec-subdev-decoder.yaml | 119 +++++++++++-
> > > --
> > > ----
> > > 1 file changed, 72 insertions(+), 47 deletions(-)
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-
> > > decoder.yaml
> > > b/Documentation/devicetree/bindings/media/mediatek,vcodec-subdev-
> > > decoder.yaml
> > > index c4f20acdc1f8..794012853834 100644
> > > --- a/Documentation/devicetree/bindings/media/mediatek,vcodec-
> > > subdev-decoder.yaml
> > > +++ b/Documentation/devicetree/bindings/media/mediatek,vcodec-
> > > subdev-decoder.yaml
> > > @@ -89,23 +89,33 @@ properties:
> > >
> > > ranges: true
> > >
> > > + clocks:
> > > + minItems: 1
> > > + maxItems: 5
> > > +
> > > + clock-names:
> > > + minItems: 1
> > > + maxItems: 5
> >
> > Why do both the parent and child have clocks?
> >
>
> If move assigned-clock-parents to child node, need to add 'ssigned-
> clock-parents' and 'assigned-clocks' for each child node. Only need
> to
> add one in parent node, child node no need to add if add 'ssigned-
> clock-parents' and 'assigned-clocks' in parent node.
>
> Adding 'assigned-clock-parents' and 'assigned-clocks' need to add
> 'clocks' and 'clock-names', or will check fail.
> > > +
> > > + assigned-clocks:
> > > + maxItems: 1
> > > +
> > > + assigned-clock-parents:
> > > + maxItems: 1
> >
> > You can just drop assigned-clock properties. They are allowed in
> > any
> > node with 'clocks'.
> >
>
> Only need to add one in parent node, or need to add for each child
> node.
> > > +
> > > # Required child node:
> > > patternProperties:
> > > - '^vcodec-lat@[0-9a-f]+$':
> > > + '^vcodec-lat-soc@[0-9a-f]+$':
> > > type: object
> > >
> > > properties:
> > > compatible:
> > > enum:
> > > - - mediatek,mtk-vcodec-lat
> > > - mediatek,mtk-vcodec-lat-soc
> > >
> > > reg:
> > > maxItems: 1
> > >
> > > - interrupts:
> > > - maxItems: 1
> > > -
> >
> > Dropping interrupts? Not explained in the commit msg (why?).
> >
>
> vcodec-lat-soc no need interrupts, will add detail commit message in
> next patch.
> > > iommus:
> > > minItems: 1
> > > maxItems: 32
> > > @@ -114,22 +124,55 @@ patternProperties:
> > > Refer to bindings/iommu/mediatek,iommu.yaml.
> > >
> > > clocks:
> > > + minItems: 1
> > > maxItems: 5
> > >
> > > clock-names:
> > > - items:
> > > - - const: sel
> > > - - const: soc-vdec
> > > - - const: soc-lat
> > > - - const: vdec
> > > - - const: top
> > > + minItems: 1
> > > + maxItems: 5
> >
> > We had names defined and now we don't. That's a step backwards.
> >
>
> Mt8195/mt8192/mt8186/mt8188 have different clock number and clock
> names, so change it like this, do you have any other suggestion?
> > >
> > > - assigned-clocks:
> > > + power-domains:
> >
> > Adding power-domains?
>
> Vcodec-lat-soc need power domain and add one new child node vcodec-
> lat-
> soc.
>
> Best Regards,
> Yunfei Dong
> >
> > Rob
@@ -89,23 +89,33 @@ properties:
ranges: true
+ clocks:
+ minItems: 1
+ maxItems: 5
+
+ clock-names:
+ minItems: 1
+ maxItems: 5
+
+ assigned-clocks:
+ maxItems: 1
+
+ assigned-clock-parents:
+ maxItems: 1
+
# Required child node:
patternProperties:
- '^vcodec-lat@[0-9a-f]+$':
+ '^vcodec-lat-soc@[0-9a-f]+$':
type: object
properties:
compatible:
enum:
- - mediatek,mtk-vcodec-lat
- mediatek,mtk-vcodec-lat-soc
reg:
maxItems: 1
- interrupts:
- maxItems: 1
-
iommus:
minItems: 1
maxItems: 32
@@ -114,22 +124,55 @@ patternProperties:
Refer to bindings/iommu/mediatek,iommu.yaml.
clocks:
+ minItems: 1
maxItems: 5
clock-names:
- items:
- - const: sel
- - const: soc-vdec
- - const: soc-lat
- - const: vdec
- - const: top
+ minItems: 1
+ maxItems: 5
- assigned-clocks:
+ power-domains:
maxItems: 1
- assigned-clock-parents:
+ required:
+ - compatible
+ - reg
+ - iommus
+ - clocks
+ - clock-names
+ - power-domains
+
+ additionalProperties: false
+
+ '^vcodec-lat@[0-9a-f]+$':
+ type: object
+
+ properties:
+ compatible:
+ enum:
+ - mediatek,mtk-vcodec-lat
+
+ reg:
+ maxItems: 1
+
+ interrupts:
maxItems: 1
+ iommus:
+ minItems: 1
+ maxItems: 32
+ description: |
+ List of the hardware port in respective IOMMU block for current Socs.
+ Refer to bindings/iommu/mediatek,iommu.yaml.
+
+ clocks:
+ minItems: 1
+ maxItems: 5
+
+ clock-names:
+ minItems: 1
+ maxItems: 5
+
power-domains:
maxItems: 1
@@ -139,8 +182,6 @@ patternProperties:
- iommus
- clocks
- clock-names
- - assigned-clocks
- - assigned-clock-parents
- power-domains
additionalProperties: false
@@ -166,15 +207,12 @@ patternProperties:
Refer to bindings/iommu/mediatek,iommu.yaml.
clocks:
+ minItems: 1
maxItems: 5
clock-names:
- items:
- - const: sel
- - const: soc-vdec
- - const: soc-lat
- - const: vdec
- - const: top
+ minItems: 1
+ maxItems: 5
assigned-clocks:
maxItems: 1
@@ -188,12 +226,9 @@ patternProperties:
required:
- compatible
- reg
- - interrupts
- iommus
- clocks
- clock-names
- - assigned-clocks
- - assigned-clock-parents
- power-domains
additionalProperties: false
@@ -205,17 +240,10 @@ required:
- mediatek,scp
- dma-ranges
- ranges
-
-if:
- properties:
- compatible:
- contains:
- enum:
- - mediatek,mtk-vcodec-lat
-
-then:
- required:
- - interrupts
+ - clocks
+ - clock-names
+ - assigned-clocks
+ - assigned-clock-parents
additionalProperties: false
@@ -241,6 +269,11 @@ examples:
#size-cells = <2>;
ranges = <0 0 0 0x16000000 0 0x40000>;
reg = <0 0x16000000 0 0x1000>; /* VDEC_SYS */
+ clocks = <&topckgen CLK_TOP_VDEC_SEL>,
+ <&topckgen CLK_TOP_MAINPLL_D4>;
+ clock-names = "sel", "top";
+ assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
+ assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
vcodec-lat@10000 {
compatible = "mediatek,mtk-vcodec-lat";
reg = <0 0x10000 0 0x800>;
@@ -253,14 +286,10 @@ examples:
<&iommu0 M4U_PORT_L5_VDEC_LAT0_WDMA_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_LAT0_RG_CTRL_DMA_EXT>,
<&iommu0 M4U_PORT_L5_VDEC_UFO_ENC_EXT>;
- clocks = <&topckgen CLK_TOP_VDEC_SEL>,
- <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
+ clocks = <&vdecsys_soc CLK_VDEC_SOC_VDEC>,
<&vdecsys_soc CLK_VDEC_SOC_LAT>,
- <&vdecsys_soc CLK_VDEC_SOC_LARB1>,
- <&topckgen CLK_TOP_MAINPLL_D4>;
+ <&vdecsys_soc CLK_VDEC_SOC_LARB1>;
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
- assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
- assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC>;
};
@@ -279,14 +308,10 @@ examples:
<&iommu0 M4U_PORT_L4_VDEC_VLD2_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_AVC_MV_EXT>,
<&iommu0 M4U_PORT_L4_VDEC_RG_CTRL_DMA_EXT>;
- clocks = <&topckgen CLK_TOP_VDEC_SEL>,
- <&vdecsys CLK_VDEC_VDEC>,
+ clocks = <&vdecsys CLK_VDEC_VDEC>,
<&vdecsys CLK_VDEC_LAT>,
- <&vdecsys CLK_VDEC_LARB1>,
- <&topckgen CLK_TOP_MAINPLL_D4>;
+ <&vdecsys CLK_VDEC_LARB1>;
clock-names = "sel", "soc-vdec", "soc-lat", "vdec", "top";
- assigned-clocks = <&topckgen CLK_TOP_VDEC_SEL>;
- assigned-clock-parents = <&topckgen CLK_TOP_MAINPLL_D4>;
power-domains = <&spm MT8192_POWER_DOMAIN_VDEC2>;
};
};