[PATCH v2 1/5] dt-bindings: phy: imx8mq-usb: add compatible "fsl,imx95-usb-phy"

Xu Yang xu.yang_2 at nxp.com
Tue Aug 6 22:57:01 PDT 2024


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 at nxp.com>
> >>>
> >>> ---
> >>> 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
> 



More information about the linux-arm-kernel mailing list