* [PATCH] arm64: dts: qcom: lemans: Enable the Inline Crypto Engine for SDHC
@ 2026-11-09 8:59 Abhinaba Rakshit
2026-11-09 9:11 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Abhinaba Rakshit @ 2026-11-09 8:59 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Abel Vesa, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel, Abhinaba Rakshit
Add an ICE node to LeMans SoC description and enable it by adding a
phandle to the SDHC node.
Signed-off-by: Abhinaba Rakshit <abhinaba.rakshit@oss.qualcomm.com>
---
This patchseries enables Inline Crypto Engine for LeMans platform
for SDHC storage.
Testing:
* dtbs_check.
* Validated on LeMans-evk with custom Mezzanine board for SDHC support.
Dependencies
============
[1] Enable ICE clock scaling
https://lore.kernel.org/all/20260824-enable-ice-clock-scaling-v12-0-09271f583dc6@oss.qualcomm.com/
---
arch/arm64/boot/dts/qcom/lemans.dtsi | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 1fdb72fa5518446ba2ea582e8362e86bba75c379..dfd41b613523fb85eb122488e0562447f7228e61 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -4327,6 +4327,8 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
qcom,dll-config = <0x0007642c>;
qcom,ddr-config = <0x80040868>;
+ qcom,ice = <&sdhc_ice>;
+
status = "disabled";
sdhc_opp_table: opp-table {
@@ -4348,6 +4350,33 @@ opp-384000000 {
};
};
+ sdhc_ice: crypto@87c8000 {
+ compatible = "qcom,sa8775p-inline-crypto-engine",
+ "qcom,inline-crypto-engine";
+ reg = <0x0 0x087c8000 0x0 0x18000>;
+ clocks = <&gcc GCC_SDCC1_ICE_CORE_CLK>,
+ <&gcc GCC_SDCC1_AHB_CLK>;
+ clock-names = "core",
+ "iface";
+ power-domains = <&rpmhpd SA8775P_CX>;
+
+ operating-points-v2 = <&ice_mmc_opp_table>;
+
+ ice_mmc_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-150000000 {
+ opp-hz = /bits/ 64 <150000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-300000000 {
+ opp-hz = /bits/ 64 <300000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ };
+ };
+ };
+
usb_0_hsphy: phy@88e4000 {
compatible = "qcom,sa8775p-usb-hs-phy",
"qcom,usb-snps-hs-5nm-phy";
---
base-commit: ddfe51b0a0f5dc9e415cc2c8ad8db17532dd426b
change-id: 20261109-enable-ice-sdcc-for-lemans-9ee375987009
Best regards,
--
Abhinaba Rakshit <abhinaba.rakshit@oss.qualcomm.com>
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] arm64: dts: qcom: lemans: Enable the Inline Crypto Engine for SDHC
2026-11-09 8:59 [PATCH] arm64: dts: qcom: lemans: Enable the Inline Crypto Engine for SDHC Abhinaba Rakshit
@ 2026-11-09 9:11 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-11-09 9:11 UTC (permalink / raw)
To: Abhinaba Rakshit; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential
issue to consider:
- [High] arm64: dts: qcom: lemans: sdhc missing cqhci reg and
supports-cqe for ICE
--
commit 62d5171c9cf52cc6dbe10886df2218e5f14f803c
Author: Abhinaba Rakshit <abhinaba.rakshit@oss.qualcomm.com>
arm64: dts: qcom: lemans: Enable the Inline Crypto Engine for SDHC
This commit adds the sdhc_ice node to lemans.dtsi and references it from
the sdhc node via qcom,ice.
> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
> index 1fdb72fa55184..dfd41b613523f 100644
> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi
> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
> @@ -4327,6 +4327,8 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> qcom,dll-config = <0x0007642c>;
> qcom,ddr-config = <0x80040868>;
>
> + qcom,ice = <&sdhc_ice>;
[Severity: High]
Does the sdhc node also need the cqhci register range, reg-names = "hc",
"cqhci", and supports-cqe for sdhc_ice to be used?
sdhci_msm_probe() only calls sdhci_msm_cqe_add_host() ->
sdhci_msm_ice_init() when supports-cqe is present, and
sdhci_msm_cqe_add_host() first calls cqhci_pltfm_init(), which requires a
"cqhci" memory resource:
drivers/mmc/host/sdhci-msm.c:sdhci_msm_probe() {
...
if (of_property_read_bool(node, "supports-cqe"))
ret = sdhci_msm_cqe_add_host(host, pdev);
else
ret = sdhci_add_host(host);
...
}
Because the sdhc node only defines reg = <0x0 0x087c4000 0x0 0x1000>
without supports-cqe or the cqhci region at 0x087c5000,
sdhci_msm_ice_init() is never called: inline crypto remains disabled,
and GCC_SDCC1_ICE_CORE_CLK and GCC_SDCC1_AHB_CLK enabled by
qcom_ice_probe() are never gated during runtime suspend. Adding
supports-cqe on a board DT without the cqhci reg entry also causes
cqhci_pltfm_init() to fail sdhci_msm_probe() with -EINVAL.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261109-enable-ice-sdcc-for-lemans-v1-1-1f25debeea49@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-11-09 9:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-09 8:59 [PATCH] arm64: dts: qcom: lemans: Enable the Inline Crypto Engine for SDHC Abhinaba Rakshit
2026-11-09 9:11 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox