2024-03-15 07:26:24

by Xu Yang

[permalink] [raw]
Subject: [PATCH v9 05/11] dt-bindings: usb: ci-hdrc-usb2-imx: add restrictions for reg, interrupts, clock and clock-names properties

Add restrictions for reg, interrupts, clock and clock-names properties
for imx Socs.

Signed-off-by: Xu Yang <[email protected]>

---
Changes in v4:
- new patch since v3's discussion
- split the reg, interrupts, clock and clock-names properties into
common part and device-specific
Changes in v5:
- keep common property unchanged
- make if-then more readable
- remove non imx part
Changes in v6:
- new patch based on ci-hdrc-usb2-imx.yaml
Changes in v7:
- no changes
Changes in v8:
- remove if:else:if:else:if:else block
Changes in v9:
- remove maxItems
- make clock-names if it's not needed
---
.../bindings/usb/chipidea,usb2-imx.yaml | 76 +++++++++++++++++++
1 file changed, 76 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/chipidea,usb2-imx.yaml b/Documentation/devicetree/bindings/usb/chipidea,usb2-imx.yaml
index cdbb224e9f68..e2eb60eaf6fe 100644
--- a/Documentation/devicetree/bindings/usb/chipidea,usb2-imx.yaml
+++ b/Documentation/devicetree/bindings/usb/chipidea,usb2-imx.yaml
@@ -49,6 +49,12 @@ properties:
- const: fsl,imx6ul-usb
- const: fsl,imx27-usb

+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
clocks:
minItems: 1
maxItems: 3
@@ -144,6 +150,76 @@ allOf:
- const: idle
- const: active

+ # imx27 Soc needs three clocks
+ - if:
+ properties:
+ compatible:
+ const: fsl,imx27-usb
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ clock-names:
+ items:
+ - const: ipg
+ - const: ahb
+ - const: per
+
+ # imx25 and imx35 Soc need three clocks
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx25-usb
+ - fsl,imx35-usb
+ then:
+ properties:
+ clocks:
+ minItems: 3
+ clock-names:
+ items:
+ - const: ipg
+ - const: ahb
+ - const: per
+
+ # imx7d Soc need one clock
+ - if:
+ properties:
+ compatible:
+ items:
+ - const: fsl,imx7d-usb
+ - const: fsl,imx27-usb
+ then:
+ properties:
+ clocks:
+ maxItems: 1
+ clock-names: false
+
+ # other Soc need one clock
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - fsl,imx23-usb
+ - fsl,imx28-usb
+ - fsl,imx50-usb
+ - fsl,imx51-usb
+ - fsl,imx53-usb
+ - fsl,imx6q-usb
+ - fsl,imx6sl-usb
+ - fsl,imx6sx-usb
+ - fsl,imx6ul-usb
+ - fsl,imx8mm-usb
+ - fsl,imx8mn-usb
+ - fsl,vf610-usb
+ then:
+ properties:
+ clocks:
+ maxItems: 1
+ clock-names: false
+
unevaluatedProperties: false

examples:
--
2.34.1



2024-03-17 19:55:39

by Rob Herring

[permalink] [raw]
Subject: Re: [PATCH v9 05/11] dt-bindings: usb: ci-hdrc-usb2-imx: add restrictions for reg, interrupts, clock and clock-names properties

On Fri, Mar 15, 2024 at 03:24:49PM +0800, Xu Yang wrote:
> Add restrictions for reg, interrupts, clock and clock-names properties
> for imx Socs.
>
> Signed-off-by: Xu Yang <[email protected]>
>
> ---

[...]

> + # imx7d Soc need one clock
> + - if:
> + properties:
> + compatible:
> + items:
> + - const: fsl,imx7d-usb
> + - const: fsl,imx27-usb
> + then:
> + properties:
> + clocks:
> + maxItems: 1
> + clock-names: false
> +
> + # other Soc need one clock
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - fsl,imx23-usb
> + - fsl,imx28-usb
> + - fsl,imx50-usb
> + - fsl,imx51-usb
> + - fsl,imx53-usb
> + - fsl,imx6q-usb
> + - fsl,imx6sl-usb
> + - fsl,imx6sx-usb
> + - fsl,imx6ul-usb
> + - fsl,imx8mm-usb
> + - fsl,imx8mn-usb
> + - fsl,vf610-usb

Can't you add 'fsl,imx7d-usb' here and drop the previous if/then?

With that,

Reviewed-by: Rob Herring <[email protected]>

> + then:
> + properties:
> + clocks:
> + maxItems: 1
> + clock-names: false
> +
> unevaluatedProperties: false
>
> examples:
> --
> 2.34.1
>

2024-03-18 03:41:53

by Xu Yang

[permalink] [raw]
Subject: RE: [EXT] Re: [PATCH v9 05/11] dt-bindings: usb: ci-hdrc-usb2-imx: add restrictions for reg, interrupts, clock and clock-names properties



>
> On Fri, Mar 15, 2024 at 03:24:49PM +0800, Xu Yang wrote:
> > Add restrictions for reg, interrupts, clock and clock-names properties
> > for imx Socs.
> >
> > Signed-off-by: Xu Yang <[email protected]>
> >
> > ---
>
> [...]
>
> > + # imx7d Soc need one clock
> > + - if:
> > + properties:
> > + compatible:
> > + items:
> > + - const: fsl,imx7d-usb
> > + - const: fsl,imx27-usb
> > + then:
> > + properties:
> > + clocks:
> > + maxItems: 1
> > + clock-names: false
> > +
> > + # other Soc need one clock
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - fsl,imx23-usb
> > + - fsl,imx28-usb
> > + - fsl,imx50-usb
> > + - fsl,imx51-usb
> > + - fsl,imx53-usb
> > + - fsl,imx6q-usb
> > + - fsl,imx6sl-usb
> > + - fsl,imx6sx-usb
> > + - fsl,imx6ul-usb
> > + - fsl,imx8mm-usb
> > + - fsl,imx8mn-usb
> > + - fsl,vf610-usb
>
> Can't you add 'fsl,imx7d-usb' here and drop the previous if/then?
>
> With that,

If I do this I need to remove 'fsl,imx7d-usb' again in patch 06/11.
(KK said I'd not better do that)
Because imx93 is compatible with imx7d in non-wakeup case, but
imx93 need one wakeup clock to support wakeup feature. Here 'contains'
'fsl,imx7d-usb' will include both imx7d and imx7d compliant socs.

Thanks,
Xu Yang

>
> Reviewed-by: Rob Herring <[email protected]>
>
> > + then:
> > + properties:
> > + clocks:
> > + maxItems: 1
> > + clock-names: false
> > +
> > unevaluatedProperties: false
> >
> > examples:
> > --
> > 2.34.1
> >