lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20251127-controller_scmi_upstream-v1-1-38bcca513c28@oss.qualcomm.com>
Date: Thu, 27 Nov 2025 16:01:44 +0530
From: Sriram Dash <sriram.dash@....qualcomm.com>
To: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Rob Herring <robh@...nel.org>,
        Krzysztof Kozlowski <krzk+dt@...nel.org>,
        Conor Dooley <conor+dt@...nel.org>,
        Wesley Cheng <quic_wcheng@...cinc.com>,
        Thinh Nguyen <Thinh.Nguyen@...opsys.com>
Cc: jack.pham@....qualcomm.com, faisal.hassan@....qualcomm.com,
        krishna.kurapati@....qualcomm.com, andersson@...nel.org,
        linux-arm-msm@...r.kernel.org, linux-usb@...r.kernel.org,
        devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
        Sriram Dash <sriram.dash@....qualcomm.com>,
        Konrad Dybcio <konradybcio@...nel.org>
Subject: [PATCH 1/2] dt-bindings: usb: qcom,snps-dwc3: Add support for
 firmware-managed resources

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@....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@...0000 {
+            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


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ