@@ -77,9 +77,37 @@ properties:
patternProperties:
"^phy@[0-9a-f]+$":
type: object
- description:
- Each device node of QMP PHY is required to have as many child nodes as
- the number of lanes the PHY has.
+ description: Single PHY-provider child node.
+ properties:
+ reg:
+ minItems: 3
+ maxItems: 6
+
+ clocks:
+ items:
+ - description: PIPE clock
+
+ clock-names:
+ items:
+ - const: pipe0
+
+ "#clock-cells":
+ const: 0
+
+ clock-output-names: true
+
+ "#phy-cells":
+ const: 0
+
+ required:
+ - reg
+ - clocks
+ - clock-names
+ - "#clock-cells"
+ - clock-output-names
+ - "#phy-cells"
+
+ additionalProperties: false
required:
- compatible
@@ -270,6 +298,81 @@ allOf:
- const: phy_phy
- const: phy
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8998-qmp-usb3-phy
+ - qcom,sdm845-qmp-usb3-phy
+ - qcom,sm8150-qmp-usb3-phy
+ - qcom,sm8350-qmp-usb3-phy
+ - qcom,sm8450-qmp-usb3-phy
+ then:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ minItems: 5
+ maxItems: 6
+ items:
+ - description: TX lane 1
+ - description: RX lane 1
+ - description: PCS
+ - description: TX lane 2
+ - description: RX lane 2
+ - description: PCS_MISC
+ if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8998-qmp-usb3-phy
+ then:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ maxItems: 5
+ else:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ minItems: 6
+ else:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ minItems: 3
+ maxItems: 4
+ items:
+ - description: TX
+ - description: RX
+ - description: PCS
+ - description: PCS_MISC
+ if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8996-qmp-usb3-phy
+ - qcom,sm8250-qmp-usb3-uni-phy
+ - qcom,sm8350-qmp-usb3-uni-phy
+ then:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ maxItems: 3
+ else:
+ patternProperties:
+ "^phy@[0-9a-f]+$":
+ properties:
+ reg:
+ minItems: 4
+
examples:
- |
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
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@kernel.org> --- .../bindings/phy/qcom,qmp-usb-phy.yaml | 109 +++++++++++++++++- 1 file changed, 106 insertions(+), 3 deletions(-)