From: Sriram Dash <sriram.dash@oss.qualcomm.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Wesley Cheng <quic_wcheng@quicinc.com>,
Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Cc: jack.pham@oss.qualcomm.com, faisal.hassan@oss.qualcomm.com,
krishna.kurapati@oss.qualcomm.com, andersson@kernel.org,
linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Sriram Dash <sriram.dash@oss.qualcomm.com>,
Konrad Dybcio <konradybcio@kernel.org>
Subject: [PATCH 1/2] dt-bindings: usb: qcom,snps-dwc3: Add support for firmware-managed resources
Date: Thu, 27 Nov 2025 16:01:44 +0530 [thread overview]
Message-ID: <20251127-controller_scmi_upstream-v1-1-38bcca513c28@oss.qualcomm.com> (raw)
In-Reply-To: <20251127-controller_scmi_upstream-v1-0-38bcca513c28@oss.qualcomm.com>
On Qualcomm automotive SoC sa8255p, platform resources like clocks,
interconnect, resets, regulators and GDSC are configured remotely by
firmware.
PM OPP is used to abstract these resources in firmware and SCMI perf
protocol is used to request resource operations by using runtime PM
framework APIs such as pm_runtime_get/put_sync to signal firmware
for managing resources accordingly for respective perf levels.
"qcom,snps-dwc3-fw-managed" compatible helps determine if
the device's resources are managed by firmware.
Additionally, it makes the power-domains property mandatory
and excludes the clocks property for the controller.
Signed-off-by: Sriram Dash <sriram.dash@oss.qualcomm.com>
---
.../devicetree/bindings/usb/qcom,snps-dwc3.yaml | 173 +++++++++++++--------
1 file changed, 111 insertions(+), 62 deletions(-)
diff --git a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
index 8cee7c5582f2..d2d1b42fbb07 100644
--- a/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
+++ b/Documentation/devicetree/bindings/usb/qcom,snps-dwc3.yaml
@@ -12,68 +12,65 @@ maintainers:
description:
Describes the Qualcomm USB block, based on Synopsys DWC3.
-select:
- properties:
- compatible:
- contains:
- const: qcom,snps-dwc3
- required:
- - compatible
-
properties:
compatible:
- items:
- - enum:
- - qcom,glymur-dwc3
- - qcom,glymur-dwc3-mp
- - qcom,ipq4019-dwc3
- - qcom,ipq5018-dwc3
- - qcom,ipq5332-dwc3
- - qcom,ipq5424-dwc3
- - qcom,ipq6018-dwc3
- - qcom,ipq8064-dwc3
- - qcom,ipq8074-dwc3
- - qcom,ipq9574-dwc3
- - qcom,kaanapali-dwc3
- - qcom,milos-dwc3
- - qcom,msm8953-dwc3
- - qcom,msm8994-dwc3
- - qcom,msm8996-dwc3
- - qcom,msm8998-dwc3
- - qcom,qcm2290-dwc3
- - qcom,qcs404-dwc3
- - qcom,qcs615-dwc3
- - qcom,qcs8300-dwc3
- - qcom,qdu1000-dwc3
- - qcom,sa8775p-dwc3
- - qcom,sar2130p-dwc3
- - qcom,sc7180-dwc3
- - qcom,sc7280-dwc3
- - qcom,sc8180x-dwc3
- - qcom,sc8180x-dwc3-mp
- - qcom,sc8280xp-dwc3
- - qcom,sc8280xp-dwc3-mp
- - qcom,sdm660-dwc3
- - qcom,sdm670-dwc3
- - qcom,sdm845-dwc3
- - qcom,sdx55-dwc3
- - qcom,sdx65-dwc3
- - qcom,sdx75-dwc3
- - qcom,sm4250-dwc3
- - qcom,sm6115-dwc3
- - qcom,sm6125-dwc3
- - qcom,sm6350-dwc3
- - qcom,sm6375-dwc3
- - qcom,sm8150-dwc3
- - qcom,sm8250-dwc3
- - qcom,sm8350-dwc3
- - qcom,sm8450-dwc3
- - qcom,sm8550-dwc3
- - qcom,sm8650-dwc3
- - qcom,sm8750-dwc3
- - qcom,x1e80100-dwc3
- - qcom,x1e80100-dwc3-mp
- - const: qcom,snps-dwc3
+ oneOf:
+ - items:
+ - enum:
+ - qcom,glymur-dwc3
+ - qcom,glymur-dwc3-mp
+ - qcom,ipq4019-dwc3
+ - qcom,ipq5018-dwc3
+ - qcom,ipq5332-dwc3
+ - qcom,ipq5424-dwc3
+ - qcom,ipq6018-dwc3
+ - qcom,ipq8064-dwc3
+ - qcom,ipq8074-dwc3
+ - qcom,ipq9574-dwc3
+ - qcom,kaanapali-dwc3
+ - qcom,milos-dwc3
+ - qcom,msm8953-dwc3
+ - qcom,msm8994-dwc3
+ - qcom,msm8996-dwc3
+ - qcom,msm8998-dwc3
+ - qcom,qcm2290-dwc3
+ - qcom,qcs404-dwc3
+ - qcom,qcs615-dwc3
+ - qcom,qcs8300-dwc3
+ - qcom,qdu1000-dwc3
+ - qcom,sa8775p-dwc3
+ - qcom,sar2130p-dwc3
+ - qcom,sc7180-dwc3
+ - qcom,sc7280-dwc3
+ - qcom,sc8180x-dwc3
+ - qcom,sc8180x-dwc3-mp
+ - qcom,sc8280xp-dwc3
+ - qcom,sc8280xp-dwc3-mp
+ - qcom,sdm660-dwc3
+ - qcom,sdm670-dwc3
+ - qcom,sdm845-dwc3
+ - qcom,sdx55-dwc3
+ - qcom,sdx65-dwc3
+ - qcom,sdx75-dwc3
+ - qcom,sm4250-dwc3
+ - qcom,sm6115-dwc3
+ - qcom,sm6125-dwc3
+ - qcom,sm6350-dwc3
+ - qcom,sm6375-dwc3
+ - qcom,sm8150-dwc3
+ - qcom,sm8250-dwc3
+ - qcom,sm8350-dwc3
+ - qcom,sm8450-dwc3
+ - qcom,sm8550-dwc3
+ - qcom,sm8650-dwc3
+ - qcom,sm8750-dwc3
+ - qcom,x1e80100-dwc3
+ - qcom,x1e80100-dwc3-mp
+ - const: qcom,snps-dwc3
+ - items:
+ - enum:
+ - qcom,sa8255p-dwc3
+ - const: qcom,snps-dwc3-fw-managed
reg:
maxItems: 1
@@ -158,13 +155,31 @@ properties:
required:
- compatible
- reg
- - clocks
- - clock-names
- interrupts
- interrupt-names
allOf:
- $ref: snps,dwc3-common.yaml#
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,snps-dwc3
+ then:
+ required:
+ - clocks
+ - clock-names
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,snps-dwc3-fw-managed
+ then:
+ required:
+ - power-domains
+
- if:
properties:
compatible:
@@ -513,6 +528,7 @@ allOf:
- qcom,qcs615-dwc3
- qcom,qcs8300-dwc3
- qcom,qdu1000-dwc3
+ - qcom,sa8255p-dwc3
- qcom,sa8775p-dwc3
- qcom,sc7180-dwc3
- qcom,sc7280-dwc3
@@ -657,4 +673,37 @@ examples:
phy-names = "usb2-phy", "usb3-phy";
};
};
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/interrupt-controller/irq.h>
+ soc {
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ usb@a600000 {
+ compatible = "qcom,sa8255p-dwc3", "qcom,snps-dwc3-fw-managed";
+ reg = <0x0 0x0a800000 0x0 0x10000>;
+
+ interrupts-extended = <&intc GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
+ <&intc GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
+ <&pdc 8 IRQ_TYPE_EDGE_BOTH>,
+ <&pdc 7 IRQ_TYPE_EDGE_BOTH>,
+ <&pdc 13 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "dwc_usb3",
+ "pwr_event",
+ "hs_phy_irq",
+ "dp_hs_phy_irq",
+ "dm_hs_phy_irq",
+ "ss_phy_irq";
+
+ power-domains = <&scmi1_dvfs 0>;
+
+ iommus = <&apps_smmu 0x0a0 0x0>;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_enblslpm_quirk;
+ phys = <&usb_1_hsphy>, <&usb_1_qmpphy>;
+ phy-names = "usb2-phy", "usb3-phy";
+ };
+ };
...
--
2.34.1
next prev parent reply other threads:[~2025-11-27 10:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-27 10:31 [PATCH 0/2] usb: dwc3: qcom: Add support for firmware-managed resources Sriram Dash
2025-11-27 10:31 ` Sriram Dash [this message]
2025-11-27 11:29 ` [PATCH 1/2] dt-bindings: usb: qcom,snps-dwc3: " Rob Herring (Arm)
2025-11-27 12:13 ` Krzysztof Kozlowski
2025-11-27 13:56 ` Krzysztof Kozlowski
2025-12-01 11:35 ` Sriram Dash
2025-11-27 10:31 ` [PATCH 2/2] usb: dwc3: qcom: Support firmware-managed resource states for power management Sriram Dash
2025-11-27 12:14 ` Krzysztof Kozlowski
2025-12-02 5:21 ` Bjorn Andersson
2025-12-02 6:37 ` Sriram Dash
2025-12-02 17:17 ` Bjorn Andersson
2025-12-09 8:48 ` Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251127-controller_scmi_upstream-v1-1-38bcca513c28@oss.qualcomm.com \
--to=sriram.dash@oss.qualcomm.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=faisal.hassan@oss.qualcomm.com \
--cc=gregkh@linuxfoundation.org \
--cc=jack.pham@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krishna.kurapati@oss.qualcomm.com \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=quic_wcheng@quicinc.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox