On 07/08/2024 07:57, Xu Yang wrote: > 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. I know it passes, I am asking whether it actually works. Is the $ref actually effective? Is it properly applied? Best regards, Krzysztof