dt-bindings: phy: qcom,sc8280xp-qmp-pcie-phy: document PHY AUX clock on SM8[456]50...
authorNeil Armstrong <neil.armstrong@linaro.org>
Fri, 22 Mar 2024 09:42:38 +0000 (10:42 +0100)
committerVinod Koul <vkoul@kernel.org>
Fri, 5 Apr 2024 17:04:00 +0000 (22:34 +0530)
The PCIe Gen4x2 PHY found in the SM8[456]50 SoCs have a second clock named
"PHY_AUX_CLK" which is an input of the Global Clock Controller (GCC) which
is muxed & gated then returned to the PHY as an input.

Document the clock IDs to select the PIPE clock or the AUX clock,
also enforce a second clock-output-names and a #clock-cells value of 1
for the PCIe Gen4x2 PHY found in the SM8[456]50 SoCs.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20240322-topic-sm8x50-upstream-pcie-1-phy-aux-clk-v2-1-3ec0a966d52f@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Documentation/devicetree/bindings/phy/qcom,sc8280xp-qmp-pcie-phy.yaml
include/dt-bindings/phy/phy-qcom-qmp.h

index ba966a78a1283f5249a7c015c45d605845b85e41..14ac341b1577e40afd8a0609bc49e75866f65b71 100644 (file)
@@ -88,11 +88,11 @@ properties:
           - description: offset of PCIe 4-lane configuration register
           - description: offset of configuration bit for this PHY
 
-  "#clock-cells":
-    const: 0
+  "#clock-cells": true
 
   clock-output-names:
-    maxItems: 1
+    minItems: 1
+    maxItems: 2
 
   "#phy-cells":
     const: 0
@@ -213,6 +213,27 @@ allOf:
         reset-names:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,sm8450-qmp-gen4x2-pcie-phy
+              - qcom,sm8550-qmp-gen4x2-pcie-phy
+              - qcom,sm8650-qmp-gen4x2-pcie-phy
+    then:
+      properties:
+        clock-output-names:
+          minItems: 2
+        "#clock-cells":
+          const: 1
+    else:
+      properties:
+        clock-output-names:
+          maxItems: 1
+        "#clock-cells":
+          const: 0
+
 examples:
   - |
     #include <dt-bindings/clock/qcom,gcc-sc8280xp.h>
index 4edec4c5b22419188a65cb1309c26c664fb44d55..6b43ea9e005185f9047fbba3a73cdf8aa79798bc 100644 (file)
@@ -17,4 +17,8 @@
 #define QMP_USB43DP_USB3_PHY           0
 #define QMP_USB43DP_DP_PHY             1
 
+/* QMP PCIE PHYs */
+#define QMP_PCIE_PIPE_CLK              0
+#define QMP_PCIE_PHY_AUX_CLK           1
+
 #endif /* _DT_BINDINGS_PHY_QMP */