On 06/08/2024 18:11, Frank Li wrote: > On Tue, Aug 06, 2024 at 10:29:47AM +0200, Krzysztof Kozlowski wrote: >> On 06/08/2024 07:06, Xu Yang wrote: >>> The usb phy in i.MX95 is compatible with i.MX8MP's, this will add a >>> compatible "fsl,imx95-usb-phy" for i.MX95. Also change reg maxItems >>> to 2 since i.MX95 needs another regmap to control Type-C Assist (TCA) >>> block. Since i.MX95 usb phy is able to switch SS lanes, this will also >>> add orientation-switch and port property to the file. >>> >>> Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> >>> >>> --- >>> Changes in v2: >>> - replace minItems with description in reg property >>> - remove orientation-switch and port >>> - refer to usb-switch.yaml >>> - use unevaluatedProperties >>> --- >>> .../bindings/phy/fsl,imx8mq-usb-phy.yaml | 42 ++++++++++++++++--- >>> 1 file changed, 37 insertions(+), 5 deletions(-) >>> >>> diff --git a/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml b/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml >>> index dc3a3f709fea..6d6d211883ae 100644 >>> --- a/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml >>> +++ b/Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.yaml >>> @@ -11,12 +11,17 @@ maintainers: >>> >>> properties: >>> compatible: >>> - enum: >>> - - fsl,imx8mq-usb-phy >>> - - fsl,imx8mp-usb-phy >>> + oneOf: >>> + - enum: >>> + - fsl,imx8mq-usb-phy >>> + - fsl,imx8mp-usb-phy >>> + - items: >>> + - const: fsl,imx95-usb-phy >>> + - const: fsl,imx8mp-usb-phy >>> >>> reg: >>> - maxItems: 1 >>> + minItems: 1 >>> + maxItems: 2 >>> >>> "#phy-cells": >>> const: 0 >>> @@ -89,7 +94,34 @@ required: >>> - clocks >>> - clock-names >>> >>> -additionalProperties: false >>> +allOf: >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + enum: >>> + - fsl,imx95-usb-phy >>> + then: >>> + properties: >>> + reg: >>> + items: >>> + - description: USB PHY Control range >>> + - description: USB PHY TCA Block range >>> + else: >>> + properties: >>> + reg: >>> + maxItems: 1 >>> + >>> + - if: >>> + properties: >>> + compatible: >>> + contains: >>> + enum: >>> + - fsl,imx95-usb-phy >>> + then: >>> + $ref: /schemas/usb/usb-switch.yaml# >> >> ref should be rather in top-level. You can always disallow certain >> properties for devices, if they are really not applicable. > > There are some "required" in usb-switch.yaml, > > oneOf: > - required: > - port > - required: > - ports > > If put on the top, it may cause DTB check warning for other compatible > strings, which have not support usb-switch. Hm, indeed, that's unusual case to have such different devices in one schema. Did you test that above $ref in if: actually works? Best regards, Krzysztof