On 30/03/2022 11:16, Kunihiko Hayashi wrote: > Hi Krzysztof, > > On 2022/03/30 17:13, Krzysztof Kozlowski wrote: >> On 30/03/2022 07:20, Kunihiko Hayashi wrote: >>> Instead of "oneOf:" choices, use "allOf:" and "if:" to define clock-names >>> and reset-names that can be taken by the compatible string. >>> >>> The order of clock-names and reset-names doesn't change here. >>> >>> Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@xxxxxxxxxxxxx> >>> --- >>> .../phy/socionext,uniphier-ahci-phy.yaml | 73 ++++++++++++------ >>> .../phy/socionext,uniphier-pcie-phy.yaml | 37 ++++++--- >>> .../phy/socionext,uniphier-usb3hs-phy.yaml | 75 +++++++++++++----- >>> .../phy/socionext,uniphier-usb3ss-phy.yaml | 77 ++++++++++++++----- >>> 4 files changed, 188 insertions(+), 74 deletions(-) >>> >>> diff --git >>> a/Documentation/devicetree/bindings/phy/socionext,uniphier-ahci-phy.yaml >>> b/Documentation/devicetree/bindings/phy/socionext,uniphier-ahci-phy.yaml >>> index 14f7579e7daa..61d9306e1852 100644 >>> --- >>> a/Documentation/devicetree/bindings/phy/socionext,uniphier-ahci-phy.yaml >>> +++ >>> b/Documentation/devicetree/bindings/phy/socionext,uniphier-ahci-phy.yaml >>> @@ -30,33 +30,62 @@ properties: >>> minItems: 1 >>> maxItems: 2 >>> >>> - clock-names: >>> - oneOf: >>> - - items: # for PXs2 >>> - - const: link >>> - - items: # for Pro4 >>> - - const: link >>> - - const: gio >>> - - items: # for others >>> - - const: link >>> - - const: phy >>> + clock-names: true >>> >>> resets: >>> minItems: 2 >>> maxItems: 6 >>> >>> - reset-names: >>> - oneOf: >>> - - items: # for Pro4 >>> - - const: link >>> - - const: gio >>> - - const: phy >>> - - const: pm >>> - - const: tx >>> - - const: rx >>> - - items: # for others >>> - - const: link >>> - - const: phy >>> + reset-names: true >>> + >>> +allOf: >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + const: socionext,uniphier-pro4-ahci-phy >>> + then: >>> + properties: >>> + clock-names: >>> + items: >>> + - const: link >>> + - const: gio >>> + reset-names: >>> + items: >>> + - const: link >>> + - const: gio >>> + - const: phy >>> + - const: pm >>> + - const: tx >>> + - const: rx >> >> Constrain also everywhere clocks and resets, so here should be: >> resets: >> minItems: 6 >> maxItems: 6 > > If I put the constraint here, it would conflict with the original one. > Should I also replace the original resets > > resets: > minItems: 2 > maxItems: 6 > > with "resets: true"? It should not conflict. Check the bindings for Samsung Exynos clock I sent you last time. In the main "properties" you put the widest constraints, like you have now (2-6). Then for each compatible you narrow it (2-2, 6-6). You can later test it by adding/removing clocks to check if constraints are properly working. Best regards, Krzysztof