On Wed, Aug 07, 2024 at 07:48:43AM +0200, Krzysztof Kozlowski wrote: > 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? Yes, it works and this yaml pass dt_binding_check and dtbs_check. Thanks, Xu Yang > > Best regards, > Krzysztof >