[PATCH v2 1/2] dt-bindings: phy: qcom,sc8280xp-qmp-usb3-uni: Add SA8255P USB PHY
From: Mattijs Korpershoek
Date: Thu Jul 09 2026 - 10:55:48 EST
SA8255p platform abstracts resources such as clocks, interconnect and
GPIO pins configuration in Firmware. SCMI power protocol is used to
request resource configurations.
Two power domains can be requested: usb_transfer and usb_core.
usb_transfer controls clocks and interconnects and usb_core controls
the GDSC, resets and TLMM (GPIOs)
Add compatible string for Qualcomm QMP Super Speed (SS) UNI PHY found
in SA8255P.
Add conditionals to make some properties (clocks, resets, supplies)
optional for SA8255P while keeping them required for all other platforms.
Finally, also add a new example to illustrate a firmware-managed node.
Signed-off-by: Mattijs Korpershoek <mkorpershoek@xxxxxxxxxx>
---
.../phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml | 92 +++++++++++++++++++---
1 file changed, 83 insertions(+), 9 deletions(-)
diff --git a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
index 01342823e57f..80b04b7f7584 100644
--- a/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
+++ b/Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-usb3-uni-phy.yaml
@@ -26,6 +26,7 @@ properties:
- qcom,msm8996-qmp-usb3-phy
- qcom,qcs8300-qmp-usb3-uni-phy
- qcom,qdu1000-qmp-usb3-uni-phy
+ - qcom,sa8255p-qmp-usb3-uni-phy
- qcom,sa8775p-qmp-usb3-uni-phy
- qcom,sc8180x-qmp-usb3-uni-phy
- qcom,sc8280xp-qmp-usb3-uni-phy
@@ -54,7 +55,13 @@ properties:
maxItems: 5
power-domains:
- maxItems: 1
+ minItems: 1
+ maxItems: 2
+
+ power-domain-names:
+ items:
+ - const: usb_transfer
+ - const: usb_core
resets:
maxItems: 2
@@ -82,14 +89,6 @@ properties:
required:
- compatible
- reg
- - clocks
- - clock-names
- - resets
- - reset-names
- - vdda-phy-supply
- - vdda-pll-supply
- - "#clock-cells"
- - clock-output-names
- "#phy-cells"
allOf:
@@ -188,6 +187,66 @@ allOf:
properties:
refgen-supply: false
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,glymur-qmp-usb3-uni-phy
+ - qcom,ipq5424-qmp-usb3-phy
+ - qcom,ipq6018-qmp-usb3-phy
+ - qcom,ipq8074-qmp-usb3-phy
+ - qcom,ipq9574-qmp-usb3-phy
+ - qcom,msm8996-qmp-usb3-phy
+ - qcom,qcs8300-qmp-usb3-uni-phy
+ - qcom,qdu1000-qmp-usb3-uni-phy
+ - qcom,sa8775p-qmp-usb3-uni-phy
+ - qcom,sc8180x-qmp-usb3-uni-phy
+ - qcom,sc8280xp-qmp-usb3-uni-phy
+ - qcom,sdm845-qmp-usb3-uni-phy
+ - qcom,sdx55-qmp-usb3-uni-phy
+ - qcom,sdx65-qmp-usb3-uni-phy
+ - qcom,sdx75-qmp-usb3-uni-phy
+ - qcom,sm8150-qmp-usb3-uni-phy
+ - qcom,sm8250-qmp-usb3-uni-phy
+ - qcom,sm8350-qmp-usb3-uni-phy
+ - qcom,x1e80100-qmp-usb3-uni-phy
+ then:
+ properties:
+ power-domains:
+ maxItems: 1
+ required:
+ - clocks
+ - clock-names
+ - resets
+ - reset-names
+ - vdda-phy-supply
+ - vdda-pll-supply
+ - "#clock-cells"
+ - clock-output-names
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sa8255p-qmp-usb3-uni-phy
+ then:
+ properties:
+ clocks: false
+ clock-names: false
+ resets: false
+ reset-names: false
+ vdda-phy-supply: false
+ vdda-pll-supply: false
+ "#clock-cells": false
+ clock-output-names: false
+ power-domains:
+ minItems: 2
+ required:
+ - power-domains
+ - power-domain-names
+
additionalProperties: false
examples:
@@ -219,3 +278,18 @@ examples:
#phy-cells = <0>;
};
+
+ - |
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ phy@88e8000 {
+ compatible = "qcom,sa8255p-qmp-usb3-uni-phy";
+ reg = <0x0 0x088e8000 0x0 0x2000>;
+ #phy-cells = <0>;
+
+ power-domains = <&scmi12_pd 2>, <&scmi12_pd 3>;
+ power-domain-names = "usb_transfer", "usb_core";
+ };
+ };
--
2.54.0