Re: [PATCH 17/43] dt-bindings: phy: qcom,qmp-pcie: add missing child node schema

From: Johan Hovold
Date: Tue Jul 05 2022 - 07:51:49 EST


On Tue, Jul 05, 2022 at 12:18:37PM +0200, Krzysztof Kozlowski wrote:
> On 05/07/2022 11:42, Johan Hovold wrote:
> > Add the missing the description of the PHY-provider child node which was
> > ignored when converting to DT schema.
> >
> > Also fix up the incorrect description that claimed that one child node
> > per lane was required.
> >
> > Fixes: ccf51c1cedfd ("dt-bindings: phy: qcom,qmp: Convert QMP PHY bindings to yaml")
> > Signed-off-by: Johan Hovold <johan+linaro@xxxxxxxxxx>
> > ---
> > .../bindings/phy/qcom,qmp-pcie-phy.yaml | 88 ++++++++++++++++++-
> > 1 file changed, 85 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/phy/qcom,qmp-pcie-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,qmp-pcie-phy.yaml
> > index ff1577f68a00..5a1ebf874559 100644
> > --- a/Documentation/devicetree/bindings/phy/qcom,qmp-pcie-phy.yaml
> > +++ b/Documentation/devicetree/bindings/phy/qcom,qmp-pcie-phy.yaml
> > @@ -69,9 +69,37 @@ properties:

> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - qcom,sm8250-qmp-gen3x2-pcie-phy
> > + - qcom,sm8250-qmp-modem-pcie-phy
> > + - qcom,sm8450-qmp-gen4x2-pcie-phy
> > + then:
> > + patternProperties:
> > + "^phy@[0-9a-f]+$":
> > + properties:
> > + reg:
> > + items:
> > + - description: TX lane 1
> > + - description: RX lane 1
> > + - description: PCS
> > + - description: TX lane 2
> > + - description: RX lane 2
> > + - description: PCS_MISC
> > + else:
> > + patternProperties:
> > + "^phy@[0-9a-f]+$":
> > + properties:
> > + reg:
> > + minItems: 3
> > + maxItems: 4
> > + items:
> > + - description: TX
> > + - description: RX
> > + - description: PCS
> > + - description: PCS_MISC
> > + if:
>
> Do not include if within other if. Just split the entire section to its
> own if:.

That sounds like it would just obfuscate the logic. The else clause
specified 3-4 registers and the nested if determines which compatibles
use which by further narrowing the range.

If you move it out to the else: this would be really hard understand and
verify.

> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - qcom,ipq6018-qmp-pcie-phy
> > + - qcom,ipq8074-qmp-pcie-phy
> > + - qcom,msm8998-qmp-pcie-phy
> > + - qcom,sdm845-qhp-pcie-phy
> > + then:
> > + patternProperties:
> > + "^phy@[0-9a-f]+$":
> > + properties:
> > + reg:
> > + maxItems: 3
> > + else:
> > + patternProperties:
> > + "^phy@[0-9a-f]+$":
> > + properties:
> > + reg:
> > + minItems: 4

Johan