Re: [PATCH v2 2/8] dt-bindings: phy: phy-rockchip-inno-usb2: add rk3568 documentation

From: Rob Herring
Date: Tue Aug 17 2021 - 17:44:05 EST


On Tue, Aug 17, 2021 at 06:52:15PM +0200, Johan Jonker wrote:
> Hi Peter,
>
> Some comments. Have a look if it's useful.
>
> On 8/12/21 10:41 PM, Peter Geis wrote:
> > The rk3568 usb2phy node is a standalone node with a single muxed
> > interrupt.
> > Add documentation for it to phy-rockchip-inno-usb2.
> >
> > Signed-off-by: Peter Geis <pgwipeout@xxxxxxxxx>
> > ---
> > .../bindings/phy/phy-rockchip-inno-usb2.yaml | 31 ++++++++++++++++---
> > 1 file changed, 27 insertions(+), 4 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml b/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml
> > index 5bebd86bf8b6..d2a749c3f9a3 100644
> > --- a/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml
> > +++ b/Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml
> > @@ -18,6 +18,7 @@ properties:
> > - rockchip,rk3328-usb2phy
> > - rockchip,rk3366-usb2phy
> > - rockchip,rk3399-usb2phy
> > + - rockchip,rk3568-usb2phy
> > - rockchip,rv1108-usb2phy
> >
> > reg:
> > @@ -50,6 +51,9 @@ properties:
> > description:
> > Phandle to the extcon device providing the cable state for the otg phy.
> >
>
> > + interrupts:
> > + description: Muxed interrupt for both ports
> > +
>
> This allows every Rockchip SoC dtsi to add an interrupt here.
> You have only restricted the requirements.
> The goal is to restrict things and filter bogus properties.
> If it was done because it doesn't compile, maybe could you try/test/use
> something like the rockchip-io-domain.yaml $defs format.

Don't use $defs unless there's more than 1 copy needed of something. If
it happens to bypass some checks, it's only a matter of time til I fix
that.

This may be better solved with another schema file rather than a long
if/then schema. It's a judgement call.

>
> ===
>
> unevaluatedProperties: false
>
> allOf:
> - $ref: "#/$defs/rk3568"
>
> $defs:
> rk3568:
> if:
> properties:
> compatible:
> contains:
> const: rockchip,rk3568-usb2phy
>
> then:
> properties:
> interrupts:
> maxItems: 1
>
> required:
> - interrupts
>
> else:
> properties:
> host-port:
> properties:
> interrupts:
> description: host linestate interrupt
>
> interrupt-names:
> const: linestate
>
> required:
> - interrupts
> - interrupt-names
>
> otg-port:
> properties:
>
> interrupts:
> minItems: 1
> maxItems: 3
>
> interrupt-names:
> oneOf:
> - const: linestate
> - const: otg-mux
> - items:
> - const: otg-bvalid
> - const: otg-id
> - const: linestate
>
> required:
> - interrupts
> - interrupt-names
>
> > rockchip,usbgrf:
> > $ref: /schemas/types.yaml#/definitions/phandle
> > description:
> > @@ -78,8 +82,6 @@ properties:
> >
> > required:
> > - "#phy-cells"
>
> > - - interrupts
> > - - interrupt-names
>
> Also remove them as properties in this part when a separate $defs is used.
>
> >
> > otg-port:
> > type: object
> > @@ -109,8 +111,6 @@ properties:
> >
> > required:
> > - "#phy-cells"
>
> > - - interrupts
> > - - interrupt-names
>
> dito
>
> >
> > required:
> > - compatible
> > @@ -120,6 +120,29 @@ required:
> > - host-port
> > - otg-port
> >
> > +allOf:
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + const: rockchip,rk3568-usb2phy
>
> > + then:
>
> Test "if then else" alignment with yamllint

yamllint is not going to help there. What's needed is a meta-schema that
adds the dependencies.

>
> > + properties:
> > + interrupts:
> > + maxItems: 1
> > + required:
> > + - interrupts
>
> > + else:
>
> alignment
>
> > + properties:
> > + host-port:
> > + required:
> > + - interrupts
> > + - interrupt-names
> > + otg-port:
> > + required:
> > + - interrupts
> > + - interrupt-names
> > +
>
> > additionalProperties: false
>
> additionalProperties does workn't with allOf: - $ref. Use
> unevaluatedProperties.
>
> >
> > examples:
> >
>