public inbox for linux-crypto@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE
@ 2026-04-16 11:59 Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 01/13] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev,
	Manivannan Sadhasivam

When the kernel is booted without the 'clk_ignore_unused' and
'pd_ignore_unused' command‑line flags, votes for unused clocks and power
domains are dropped by the kernel post late_init and deferred probe
timeout. Depending on the relative timing between the ICE probe and the
kernel disabling the unused clocks and power domains occasional unclocked
register accesses or 'stuck' clocks are observed during QCOM‑ICE probe.
When the 'iface' clock is not voted on, unclocked register access would
be observed. On the other hand, if the associated power-domain for ICE
is not enabled, a 'stuck' clock is observed.

This patch series resolves both of these problems by adding explicit
power‑domain enablement and 'iface' clock‑vote handling to the QCOM‑ICE
driver.

The clock 'stuck' issue was first reported on Qualcomm RideSX4 (sa8775p)
platform: https://lore.kernel.org/all/ZZYTYsaNUuWQg3tR@x1/

Issue with unclocked ICE register access is easily reproducible on
on Qualcomm RB3Gen2 (kodiak) platform when 'clk_ignore_unused' is
not passed on the kernel command-line.

This patch series has been validated on: SM8650-MTP, RB3Gen2 and
Lemans-EVK.

Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
Changes in v5:
- Rebased onto linux-next tag next-20260415
- Added patches 12 and 13 to this series to ensure newly added eliza and milos
  DTS in v7.1 comply to the DT-binding introduced in this patch series.
- Fixed commit message of patch 1 to indicate eliza and milos DT support was
  added in kernel v7.1.
- Collected Reviewed-by and Tested-by tags from Kuldeep, Konrad, Krzysztof and
  Manivannan.  
- Link to v4: https://lore.kernel.org/r/20260323-qcom_ice_power_and_clk_vote-v4-0-e36044bbdfe9@oss.qualcomm.com

Changes in v4:
- Squashed commits 1 and 2 from v3 to form a single consolidated patch with
  an updated and more concise commit message that explains why the DT binding
  needs to be fixed and why the fix is necessary for this release cycle.
- Re-order the ICE driver source code patches to be positioned before the DTS
  patches.
- Collected Reviewed-by tags from Konrad for DTS patches which were missed in
  v3.
- Link to v3: https://lore.kernel.org/r/20260317-qcom_ice_power_and_clk_vote-v3-0-53371dbabd6a@oss.qualcomm.com

Changes in v3:
- Dropped "_clk" suffix from clock names in DT binding and sources and ensure
  ICE driver looks for these updated clock names.
- Updated commit message of DT binding change (Patch 1) to explicitly state
  that the change is preserving backward compatibility.
- Introduced new DT binding commit to ensure eliza and milos require the iface
  clock and power-domain.
- Check for IS_ERR() on devm_clk_get_optional_enabled(dev, "iface") return
  value.
- Minor beautification of dev_err() prints as suggested by Konrad.
- Rebased onto latest linux-next tag next-20260316.
- Link to v2: https://lore.kernel.org/r/20260310-qcom_ice_power_and_clk_vote-v2-0-b9c2a5471d9e@oss.qualcomm.com

Changes in v2:
- Updated the DT bindings and ICE driver source to ensure no ABI breaks are
  made in this patch series. A follow-up patch series will mark the clocks
  and power-domain as required to preserve bisectability.
- Added list of allowed clock-names to the DT-binding.
- Added Fixes tag to mark the original regressions and ensure back-porting
  for stable trees.
- Updated the commit messages to explicitly mention the problem of
  potential unclocked register access and stuck clocks during probe.
- Dropped explicit calls to pm_runtime_* APIs from ICE probe, suspend and
  resume.
- Link to v1: https://lore.kernel.org/r/20260123-qcom_ice_power_and_clk_vote-v1-0-e9059776f85c@qti.qualcomm.com

---
Harshal Dev (13):
      dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
      soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
      arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node
      arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
      arm64: dts: qcom: monaco: Add power-domain and iface clk for ice node
      arm64: dts: qcom: sc7180: Add power-domain and iface clk for ice node
      arm64: dts: qcom: kodiak: Add power-domain and iface clk for ice node
      arm64: dts: qcom: sm8450: Add power-domain and iface clk for ice node
      arm64: dts: qcom: sm8550: Add power-domain and iface clk for ice node
      arm64: dts: qcom: sm8650: Add power-domain and iface clk for ice node
      arm64: dts: qcom: sm8750: Add power-domain and iface clk for ice node
      arm64: dts: qcom: milos: Add power-domain and iface clk for ice node
      arm64: dts: qcom: eliza: Add power-domain and iface clk for ice node

 .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
 arch/arm64/boot/dts/qcom/eliza.dtsi                |  6 +++-
 arch/arm64/boot/dts/qcom/kaanapali.dtsi            |  6 +++-
 arch/arm64/boot/dts/qcom/kodiak.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/lemans.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/milos.dtsi                |  6 +++-
 arch/arm64/boot/dts/qcom/monaco.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/sc7180.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/sm8450.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/sm8550.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/sm8650.dtsi               |  6 +++-
 arch/arm64/boot/dts/qcom/sm8750.dtsi               |  6 +++-
 drivers/soc/qcom/ice.c                             | 17 +++++++++--
 13 files changed, 104 insertions(+), 14 deletions(-)
---
base-commit: 936c21068d7ade00325e40d82bfd2f3f29d9f659
change-id: 20260120-qcom_ice_power_and_clk_vote-769704f5036a

Best regards,
-- 
Harshal Dev <harshal.dev@oss.qualcomm.com>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v5 01/13] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 02/13] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

The DT bindings for inline-crypto engine do not specify the UFS_PHY_GDSC
power-domain and iface clock. Without enabling the iface clock and the
associated power-domain the ICE hardware cannot function correctly and
leads to unclocked hardware accesses being observed during probe.

Fix the DT bindings for inline-crypto engine to require the UFS_PHY_GDSC
power-domain and iface clock for new devices (Eliza and Milos) introduced
in the current release (7.1) with yet-to-stabilize ABI, while preserving
backward compatibility for older devices.

Fixes: 618195a7ac3df ("dt-bindings: crypto: qcom,inline-crypto-engine: Document the Eliza ICE")
Fixes: 85faec1e85555 ("dt-bindings: crypto: qcom,inline-crypto-engine: document the Milos ICE")
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 .../bindings/crypto/qcom,inline-crypto-engine.yaml | 35 +++++++++++++++++++++-
 1 file changed, 34 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
index 876bf90ed96e..ccb6b8dd8e11 100644
--- a/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
+++ b/Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
@@ -30,6 +30,16 @@ properties:
     maxItems: 1
 
   clocks:
+    minItems: 1
+    maxItems: 2
+
+  clock-names:
+    minItems: 1
+    items:
+      - const: core
+      - const: iface
+
+  power-domains:
     maxItems: 1
 
   operating-points-v2: true
@@ -44,6 +54,25 @@ required:
 
 additionalProperties: false
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - qcom,eliza-inline-crypto-engine
+              - qcom,milos-inline-crypto-engine
+
+    then:
+      required:
+        - power-domains
+        - clock-names
+      properties:
+        clocks:
+          minItems: 2
+        clock-names:
+          minItems: 2
+
 examples:
   - |
     #include <dt-bindings/clock/qcom,sm8550-gcc.h>
@@ -52,7 +81,11 @@ examples:
       compatible = "qcom,sm8550-inline-crypto-engine",
                    "qcom,inline-crypto-engine";
       reg = <0x01d88000 0x8000>;
-      clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+      clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+               <&gcc GCC_UFS_PHY_AHB_CLK>;
+      clock-names = "core",
+                    "iface";
+      power-domains = <&gcc UFS_PHY_GDSC>;
 
       operating-points-v2 = <&ice_opp_table>;
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 02/13] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 01/13] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 03/13] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev,
	Manivannan Sadhasivam

Since Qualcomm inline-crypto engine (ICE) is now a dedicated driver
de-coupled from the QCOM UFS driver, it explicitly votes for its required
clocks during probe. For scenarios where the 'clk_ignore_unused' flag is
not passed on the kernel command line, to avoid potential unclocked ICE
hardware register access during probe the ICE driver should additionally
vote on the 'iface' clock.
Also update the suspend and resume callbacks to handle un-voting and voting
on the 'iface' clock.

Fixes: 2afbf43a4aec6 ("soc: qcom: Make the Qualcomm UFS/SDCC ICE a dedicated driver")
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 drivers/soc/qcom/ice.c | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/soc/qcom/ice.c b/drivers/soc/qcom/ice.c
index b203bc685cad..bf4ab2d9e5c0 100644
--- a/drivers/soc/qcom/ice.c
+++ b/drivers/soc/qcom/ice.c
@@ -108,6 +108,7 @@ struct qcom_ice {
 	void __iomem *base;
 
 	struct clk *core_clk;
+	struct clk *iface_clk;
 	bool use_hwkm;
 	bool hwkm_init_complete;
 	u8 hwkm_version;
@@ -312,8 +313,13 @@ int qcom_ice_resume(struct qcom_ice *ice)
 
 	err = clk_prepare_enable(ice->core_clk);
 	if (err) {
-		dev_err(dev, "failed to enable core clock (%d)\n",
-			err);
+		dev_err(dev, "Failed to enable core clock: %d\n", err);
+		return err;
+	}
+
+	err = clk_prepare_enable(ice->iface_clk);
+	if (err) {
+		dev_err(dev, "Failed to enable iface clock: %d\n", err);
 		return err;
 	}
 	qcom_ice_hwkm_init(ice);
@@ -323,6 +329,7 @@ EXPORT_SYMBOL_GPL(qcom_ice_resume);
 
 int qcom_ice_suspend(struct qcom_ice *ice)
 {
+	clk_disable_unprepare(ice->iface_clk);
 	clk_disable_unprepare(ice->core_clk);
 	ice->hwkm_init_complete = false;
 
@@ -579,11 +586,17 @@ static struct qcom_ice *qcom_ice_create(struct device *dev,
 	engine->core_clk = devm_clk_get_optional_enabled(dev, "ice_core_clk");
 	if (!engine->core_clk)
 		engine->core_clk = devm_clk_get_optional_enabled(dev, "ice");
+	if (!engine->core_clk)
+		engine->core_clk = devm_clk_get_optional_enabled(dev, "core");
 	if (!engine->core_clk)
 		engine->core_clk = devm_clk_get_enabled(dev, NULL);
 	if (IS_ERR(engine->core_clk))
 		return ERR_CAST(engine->core_clk);
 
+	engine->iface_clk = devm_clk_get_optional_enabled(dev, "iface");
+	if (IS_ERR(engine->iface_clk))
+		return ERR_CAST(engine->iface_clk);
+
 	if (!qcom_ice_check_supported(engine))
 		return ERR_PTR(-EOPNOTSUPP);
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 03/13] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 01/13] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 02/13] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 04/13] arm64: dts: qcom: lemans: " Harshal Dev
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
kaanapali.

Fixes: 2eeb5767d53f4 ("arm64: dts: qcom: Introduce Kaanapali SoC")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/kaanapali.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index 7cc326aa1a1a..14e362a4899b 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -2538,7 +2538,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 04/13] arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (2 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 03/13] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-20  8:53   ` Bartosz Golaszewski
  2026-04-16 11:59 ` [PATCH v5 05/13] arm64: dts: qcom: monaco: " Harshal Dev
                   ` (8 subsequent siblings)
  12 siblings, 1 reply; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for lemans.

Fixes: 96272ba7103d4 ("arm64: dts: qcom: sa8775p: enable the inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/lemans.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index fe6e76351823..d83cad26a20f 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -2758,7 +2758,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sa8775p-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 05/13] arm64: dts: qcom: monaco: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (3 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 04/13] arm64: dts: qcom: lemans: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 06/13] arm64: dts: qcom: sc7180: " Harshal Dev
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
monaco.

Fixes: cc9d29aad876d ("arm64: dts: qcom: qcs8300: enable the inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/monaco.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 7b1d57460f1e..fa13210fc539 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -2737,7 +2737,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,qcs8300-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		crypto: crypto@1dfa000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 06/13] arm64: dts: qcom: sc7180: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (4 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 05/13] arm64: dts: qcom: monaco: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 07/13] arm64: dts: qcom: kodiak: " Harshal Dev
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sc7180.

Fixes: 858536d9dc946 ("arm64: dts: qcom: sc7180: Add UFS nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sc7180.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sc7180.dtsi b/arch/arm64/boot/dts/qcom/sc7180.dtsi
index a4b17564469e..94a699cc2688 100644
--- a/arch/arm64/boot/dts/qcom/sc7180.dtsi
+++ b/arch/arm64/boot/dts/qcom/sc7180.dtsi
@@ -1605,7 +1605,11 @@ ice: crypto@1d90000 {
 			compatible = "qcom,sc7180-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d90000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		ipa: ipa@1e40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 07/13] arm64: dts: qcom: kodiak: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (5 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 06/13] arm64: dts: qcom: sc7180: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 08/13] arm64: dts: qcom: sm8450: " Harshal Dev
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
kodiak.

Fixes: dfd5ee7b34bb7 ("arm64: dts: qcom: sc7280: Add inline crypto engine")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Tested-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/kodiak.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qcom/kodiak.dtsi
index 988ca5f7c8a0..55fc256501c5 100644
--- a/arch/arm64/boot/dts/qcom/kodiak.dtsi
+++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi
@@ -2579,7 +2579,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sc7280-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 08/13] arm64: dts: qcom: sm8450: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (6 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 07/13] arm64: dts: qcom: kodiak: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 09/13] arm64: dts: qcom: sm8550: " Harshal Dev
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8450.

Fixes: 86b0aef435851 ("arm64: dts: qcom: sm8450: Use standalone ICE node for UFS")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8450.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8450.dtsi b/arch/arm64/boot/dts/qcom/sm8450.dtsi
index 03bf30b53f28..9528baedf8ae 100644
--- a/arch/arm64/boot/dts/qcom/sm8450.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8450.dtsi
@@ -5374,7 +5374,11 @@ ice: crypto@1d88000 {
 			compatible = "qcom,sm8450-inline-crypto-engine",
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x8000>;
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 09/13] arm64: dts: qcom: sm8550: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (7 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 08/13] arm64: dts: qcom: sm8450: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 10/13] arm64: dts: qcom: sm8650: " Harshal Dev
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8550.

Fixes: b8630c48b43fc ("arm64: dts: qcom: sm8550: Add the Inline Crypto Engine node")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8550.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8550.dtsi b/arch/arm64/boot/dts/qcom/sm8550.dtsi
index 912525e9bca6..fe46a5d41fe0 100644
--- a/arch/arm64/boot/dts/qcom/sm8550.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8550.dtsi
@@ -2465,7 +2465,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 10/13] arm64: dts: qcom: sm8650: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (8 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 09/13] arm64: dts: qcom: sm8550: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 11/13] arm64: dts: qcom: sm8750: " Harshal Dev
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for sm8650.

Fixes: 10e0246712951 ("arm64: dts: qcom: sm8650: add interconnect dependent device nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8650.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8650.dtsi b/arch/arm64/boot/dts/qcom/sm8650.dtsi
index 1604bc8cff37..e2d98cf6adca 100644
--- a/arch/arm64/boot/dts/qcom/sm8650.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8650.dtsi
@@ -4081,7 +4081,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0 0x01d88000 0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 11/13] arm64: dts: qcom: sm8750: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (9 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 10/13] arm64: dts: qcom: sm8650: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 12/13] arm64: dts: qcom: milos: " Harshal Dev
  2026-04-16 11:59 ` [PATCH v5 13/13] arm64: dts: qcom: eliza: " Harshal Dev
  12 siblings, 0 replies; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
sm8750.

Fixes: b1dac789c650a ("arm64: dts: qcom: sm8750: Add ICE nodes")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/sm8750.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
index 18fb52c14acd..099d7fb82ae6 100644
--- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
@@ -2086,7 +2086,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		cryptobam: dma-controller@1dc4000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 12/13] arm64: dts: qcom: milos: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (10 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 11/13] arm64: dts: qcom: sm8750: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-21  9:27   ` Kuldeep Singh
  2026-04-16 11:59 ` [PATCH v5 13/13] arm64: dts: qcom: eliza: " Harshal Dev
  12 siblings, 1 reply; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the UFS_PHY_GDSC power domain is enabled. Specify both the
UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for milos.

Fixes: 04bb37433330e ("arm64: dts: qcom: milos: Add UFS nodes")
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/milos.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/milos.dtsi b/arch/arm64/boot/dts/qcom/milos.dtsi
index 4a64a98a434b..a6e463f3885d 100644
--- a/arch/arm64/boot/dts/qcom/milos.dtsi
+++ b/arch/arm64/boot/dts/qcom/milos.dtsi
@@ -1275,7 +1275,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v5 13/13] arm64: dts: qcom: eliza: Add power-domain and iface clk for ice node
  2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
                   ` (11 preceding siblings ...)
  2026-04-16 11:59 ` [PATCH v5 12/13] arm64: dts: qcom: milos: " Harshal Dev
@ 2026-04-16 11:59 ` Harshal Dev
  2026-04-21  9:38   ` Kuldeep Singh
  12 siblings, 1 reply; 17+ messages in thread
From: Harshal Dev @ 2026-04-16 11:59 UTC (permalink / raw)
  To: Herbert Xu, David S. Miller, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
	Manivannan Sadhasivam, cros-qcom-dts-watchers, Eric Biggers,
	Dmitry Baryshkov, Jingyi Wang, Tengfei Fan, Bartosz Golaszewski,
	David Wronek, Luca Weiss, Neil Armstrong, Melody Olvera,
	Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Harshal Dev

Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
for its own resources. Before accessing ICE hardware during probe, to
avoid potential unclocked register access issues (when clk_ignore_unused
is not passed on the kernel command line), in addition to the 'core' clock
the 'iface' clock should also be turned on by the driver. This can only be
done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
eliza.

Fixes: af20af39fc09b ("arm64: dts: qcom: Introduce Eliza Soc base dtsi")
Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
---
 arch/arm64/boot/dts/qcom/eliza.dtsi | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/eliza.dtsi b/arch/arm64/boot/dts/qcom/eliza.dtsi
index 4a7a0ac40ce6..7e97361a5dc5 100644
--- a/arch/arm64/boot/dts/qcom/eliza.dtsi
+++ b/arch/arm64/boot/dts/qcom/eliza.dtsi
@@ -843,7 +843,11 @@ ice: crypto@1d88000 {
 				     "qcom,inline-crypto-engine";
 			reg = <0x0 0x01d88000 0x0 0x18000>;
 
-			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
+			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
+				 <&gcc GCC_UFS_PHY_AHB_CLK>;
+			clock-names = "core",
+				      "iface";
+			power-domains = <&gcc GCC_UFS_PHY_GDSC>;
 		};
 
 		tcsr_mutex: hwlock@1f40000 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v5 04/13] arm64: dts: qcom: lemans: Add power-domain and iface clk for ice node
  2026-04-16 11:59 ` [PATCH v5 04/13] arm64: dts: qcom: lemans: " Harshal Dev
@ 2026-04-20  8:53   ` Bartosz Golaszewski
  0 siblings, 0 replies; 17+ messages in thread
From: Bartosz Golaszewski @ 2026-04-20  8:53 UTC (permalink / raw)
  To: Harshal Dev
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Kuldeep Singh, Krzysztof Kozlowski, Herbert Xu,
	David S. Miller, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Bjorn Andersson, Konrad Dybcio, Abel Vesa, Manivannan Sadhasivam,
	cros-qcom-dts-watchers, Eric Biggers, Dmitry Baryshkov,
	Jingyi Wang, Tengfei Fan, Bartosz Golaszewski, David Wronek,
	Luca Weiss, Neil Armstrong, Melody Olvera, Alexander Koskovich,
	Abel Vesa

On Thu, 16 Apr 2026 13:59:21 +0200, Harshal Dev
<harshal.dev@oss.qualcomm.com> said:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for lemans.
>
> Fixes: 96272ba7103d4 ("arm64: dts: qcom: sa8775p: enable the inline crypto engine")
> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>
> ---
>  arch/arm64/boot/dts/qcom/lemans.dtsi | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index fe6e76351823..d83cad26a20f 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -2758,7 +2758,11 @@ ice: crypto@1d88000 {
>  			compatible = "qcom,sa8775p-inline-crypto-engine",
>  				     "qcom,inline-crypto-engine";
>  			reg = <0x0 0x01d88000 0x0 0x18000>;
> -			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>;
> +			clocks = <&gcc GCC_UFS_PHY_ICE_CORE_CLK>,
> +				 <&gcc GCC_UFS_PHY_AHB_CLK>;
> +			clock-names = "core",
> +				      "iface";
> +			power-domains = <&gcc UFS_PHY_GDSC>;
>  		};
>
>  		cryptobam: dma-controller@1dc4000 {
>
> --
> 2.34.1
>
>

Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v5 12/13] arm64: dts: qcom: milos: Add power-domain and iface clk for ice node
  2026-04-16 11:59 ` [PATCH v5 12/13] arm64: dts: qcom: milos: " Harshal Dev
@ 2026-04-21  9:27   ` Kuldeep Singh
  0 siblings, 0 replies; 17+ messages in thread
From: Kuldeep Singh @ 2026-04-21  9:27 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski

On 16-04-2026 17:29, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the UFS_PHY_GDSC power domain is enabled. Specify both the
> UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for milos.
> 
> Fixes: 04bb37433330e ("arm64: dts: qcom: milos: Add UFS nodes")
> Signed-off-by: Harshal Dev <harshal.dev@oss.qualcomm.com>

Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v5 13/13] arm64: dts: qcom: eliza: Add power-domain and iface clk for ice node
  2026-04-16 11:59 ` [PATCH v5 13/13] arm64: dts: qcom: eliza: " Harshal Dev
@ 2026-04-21  9:38   ` Kuldeep Singh
  0 siblings, 0 replies; 17+ messages in thread
From: Kuldeep Singh @ 2026-04-21  9:38 UTC (permalink / raw)
  To: Harshal Dev, Herbert Xu, David S. Miller, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Bjorn Andersson, Konrad Dybcio,
	Abel Vesa, Manivannan Sadhasivam, cros-qcom-dts-watchers,
	Eric Biggers, Dmitry Baryshkov, Jingyi Wang, Tengfei Fan,
	Bartosz Golaszewski, David Wronek, Luca Weiss, Neil Armstrong,
	Melody Olvera, Alexander Koskovich, Abel Vesa
  Cc: Brian Masney, Neeraj Soni, Gaurav Kashyap, linux-arm-msm,
	linux-crypto, devicetree, linux-kernel, Krzysztof Kozlowski,
	Konrad Dybcio, Krzysztof Kozlowski

On 16-04-2026 17:29, Harshal Dev wrote:
> Qualcomm in-line crypto engine (ICE) platform driver specifies and votes
> for its own resources. Before accessing ICE hardware during probe, to
> avoid potential unclocked register access issues (when clk_ignore_unused
> is not passed on the kernel command line), in addition to the 'core' clock
> the 'iface' clock should also be turned on by the driver. This can only be
> done if the GCC_UFS_PHY_GDSC power domain is enabled. Specify both the
> GCC_UFS_PHY_GDSC power domain and the 'iface' clock in the ICE node for
> eliza.
> 
> Fixes: af20af39fc09b ("arm64: dts: qcom: Introduce Eliza Soc base dtsi")

On thing I noticed in entire patchseries,
https://docs.kernel.org/process/submitting-patches.html
"""
If your patch fixes a bug in a specific commit, e.g. you found an issue 
using git bisect, please use the ‘Fixes:’ tag with at least the first 12 
characters of the SHA-1 ID, and the one line summary. Do not split the 
tag across multiple lines, tags are exempt from the “wrap at 75 columns” 
rule in order to simplify parsing scripts. For example:

Fixes: 54a4f0239f2e ("KVM: MMU: make kvm_mmu_zap_page() return the 
number of pages it actually freed")
"""

Fixes tag need atleast 12 chars and I see other submissions specifying 
12 chars whereas this series specify 13 chars.
Not sure if there's some hard rule on this.

Other than that,
Reviewed-by: Kuldeep Singh <kuldeep.singh@oss.qualcomm.com>

-- 
Regards
Kuldeep


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2026-04-21  9:38 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-16 11:59 [PATCH v5 00/13] Add explicit clock vote and enable power-domain for QCOM-ICE Harshal Dev
2026-04-16 11:59 ` [PATCH v5 01/13] dt-bindings: crypto: qcom,ice: Fix missing power-domain and iface clk Harshal Dev
2026-04-16 11:59 ` [PATCH v5 02/13] soc: qcom: ice: Allow explicit votes on 'iface' clock for ICE Harshal Dev
2026-04-16 11:59 ` [PATCH v5 03/13] arm64: dts: qcom: kaanapali: Add power-domain and iface clk for ice node Harshal Dev
2026-04-16 11:59 ` [PATCH v5 04/13] arm64: dts: qcom: lemans: " Harshal Dev
2026-04-20  8:53   ` Bartosz Golaszewski
2026-04-16 11:59 ` [PATCH v5 05/13] arm64: dts: qcom: monaco: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 06/13] arm64: dts: qcom: sc7180: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 07/13] arm64: dts: qcom: kodiak: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 08/13] arm64: dts: qcom: sm8450: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 09/13] arm64: dts: qcom: sm8550: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 10/13] arm64: dts: qcom: sm8650: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 11/13] arm64: dts: qcom: sm8750: " Harshal Dev
2026-04-16 11:59 ` [PATCH v5 12/13] arm64: dts: qcom: milos: " Harshal Dev
2026-04-21  9:27   ` Kuldeep Singh
2026-04-16 11:59 ` [PATCH v5 13/13] arm64: dts: qcom: eliza: " Harshal Dev
2026-04-21  9:38   ` Kuldeep Singh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox