* [PATCH V2 0/3] arm64: dts: qcom: Monaco: Enable SDHCI storage support
@ 2026-06-16 13:03 Monish Chunara
2026-06-16 13:03 ` [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Monish Chunara @ 2026-06-16 13:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Sarthak Garg,
Pradeep Pragallapati, Nitin Rawat, Shiraz Hashim, Monish Chunara
Hello respected Maintainers,
This is v2 of the Monaco SDHCI storage support series.
V1 was sent here:
https://lore.kernel.org/all/20260227105055.2364348-1-monish.chunara@oss.qualcomm.com/
Compared to v1, this revision makes the storage split more explicit and keeps
the SoC description generic:
- Avoids using the reference to direct supplies as dummy
- Updates the eMMC overlay to remove the static UFS host disablement and
vreg_l8a voltage override, allowing DT-fixup to manage the UFS-eMMC mutual
exclusion dynamically for flexible UFS/eMMC configurations.
Validated on Qualcomm Monaco EVK with both SD card and eMMC modules.
Monish Chunara (3):
arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC via overlay
arch/arm64/boot/dts/qcom/Makefile | 7 ++
arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso | 37 ++++++++++
.../boot/dts/qcom/monaco-evk-sd-card.dtso | 72 +++++++++++++++++++
arch/arm64/boot/dts/qcom/monaco.dtsi | 1 -
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 1 +
5 files changed, 117 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
2026-06-16 13:03 [PATCH V2 0/3] arm64: dts: qcom: Monaco: Enable SDHCI storage support Monish Chunara
@ 2026-06-16 13:03 ` Monish Chunara
2026-06-16 13:14 ` sashiko-bot
2026-06-16 13:03 ` [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
2026-06-16 13:03 ` [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
2 siblings, 1 reply; 7+ messages in thread
From: Monish Chunara @ 2026-06-16 13:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Sarthak Garg,
Pradeep Pragallapati, Nitin Rawat, Shiraz Hashim, Monish Chunara
The Monaco SoC SDHC controller supports both eMMC and SD cards. However,
the 'supports-cqe' property (Command Queue Engine) is specific to eMMC
and conflicts with SD card operation.
Remove 'supports-cqe' from the SoC device tree to ensure compatibility
with SD cards. Simultaneously, add the property explicitly to the
qcs8300-ride board device tree, as this board uses the controller in
eMMC mode.
This ensures the SoC definition remains generic while enabling features
correctly at the board level.
Signed-off-by: Monish Chunara <monish.chunara@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco.dtsi | 1 -
arch/arm64/boot/dts/qcom/qcs8300-ride.dts | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index e4c8466f941b..e82cba350842 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -4832,7 +4832,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
qcom,dll-config = <0x000f64ee>;
qcom,ddr-config = <0x80040868>;
bus-width = <8>;
- supports-cqe;
dma-coherent;
mmc-ddr-1_8v;
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index e9a8553a8d82..3090eba0317a 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -719,6 +719,7 @@ &sdhc_1 {
vmmc-supply = <&vreg_l8a>;
vqmmc-supply = <&vreg_s4a>;
+ supports-cqe;
non-removable;
no-sd;
no-sdio;
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-06-16 13:03 [PATCH V2 0/3] arm64: dts: qcom: Monaco: Enable SDHCI storage support Monish Chunara
2026-06-16 13:03 ` [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
@ 2026-06-16 13:03 ` Monish Chunara
2026-06-16 13:15 ` sashiko-bot
2026-06-16 13:03 ` [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
2 siblings, 1 reply; 7+ messages in thread
From: Monish Chunara @ 2026-06-16 13:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Sarthak Garg,
Pradeep Pragallapati, Nitin Rawat, Shiraz Hashim, Monish Chunara
The monaco EVK board supports either eMMC or SD-card, but only one
can be active at a time.
Enable the SD Host Controller Interface (SDHCI) on the monaco EVK board
to support SD Card for storage via a device tree overlay. This allows
eMMC support to be enabled through a separate overlay when required.
Signed-off-by: Monish Chunara <monish.chunara@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 4 ++
.../boot/dts/qcom/monaco-evk-sd-card.dtso | 72 +++++++++++++++++++
2 files changed, 76 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f33c4e2f09c..3c5983bff00c 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -69,6 +69,10 @@ monaco-evk-el2-dtbs := monaco-evk.dtb monaco-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-el2.dtb
monaco-evk-ifp-mezzanine-dtbs := monaco-evk.dtb monaco-evk-ifp-mezzanine.dtbo
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-ifp-mezzanine.dtb
+
+monaco-evk-sd-card-dtbs := monaco-evk.dtb monaco-evk-sd-card.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-sd-card.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += msm8216-samsung-fortuna3g.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-acer-a1-724.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-alcatel-idol347.dtb
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
new file mode 100644
index 000000000000..bc4ea12587a2
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
@@ -0,0 +1,72 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ vmmc_sdc: regulator-mmc-sdc {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vmmc_sdc";
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <2950000>;
+ };
+
+ vreg_sdc: regulator-sdc {
+ compatible = "regulator-gpio";
+
+ regulator-name = "vreg_sdc";
+ regulator-type = "voltage";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2950000>;
+
+ gpios = <&expander1 7 GPIO_ACTIVE_HIGH>;
+ states = <1800000 1>, <2950000 0>;
+
+ startup-delay-us = <100>;
+ };
+};
+
+&sdhc_1 {
+ vmmc-supply = <&vmmc_sdc>;
+ vqmmc-supply = <&vreg_sdc>;
+
+ pinctrl-0 = <&sdc1_state_on>, <&sd_cd>;
+ pinctrl-1 = <&sdc1_state_off>, <&sd_cd>;
+ pinctrl-names = "default", "sleep";
+
+ cap-sd-highspeed;
+ no-1-8-v;
+
+ bus-width = <4>;
+ cd-gpios = <&tlmm 11 GPIO_ACTIVE_LOW>;
+ no-mmc;
+ no-sdio;
+
+ status = "okay";
+};
+
+&sdhc1_opp_table {
+ opp-100000000 {
+ opp-hz = /bits/ 64 <100000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-202000000 {
+ opp-hz = /bits/ 64 <202000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+};
+
+&tlmm {
+ sd_cd: sd-cd-state {
+ pins = "gpio11";
+ function = "gpio";
+ bias-pull-up;
+ };
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC via overlay
2026-06-16 13:03 [PATCH V2 0/3] arm64: dts: qcom: Monaco: Enable SDHCI storage support Monish Chunara
2026-06-16 13:03 ` [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
2026-06-16 13:03 ` [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
@ 2026-06-16 13:03 ` Monish Chunara
2026-06-16 13:13 ` sashiko-bot
2 siblings, 1 reply; 7+ messages in thread
From: Monish Chunara @ 2026-06-16 13:03 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Dmitry Baryshkov, Manivannan Sadhasivam
Cc: linux-arm-msm, devicetree, linux-kernel, Sarthak Garg,
Pradeep Pragallapati, Nitin Rawat, Shiraz Hashim, Monish Chunara
Enable the SDHCI controller for eMMC functionality on the Monaco EVK
using a device tree overlay.
Signed-off-by: Monish Chunara <monish.chunara@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/Makefile | 3 ++
arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso | 37 +++++++++++++++++++
2 files changed, 40 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 3c5983bff00c..e9a21c83001c 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -73,6 +73,9 @@ dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-ifp-mezzanine.dtb
monaco-evk-sd-card-dtbs := monaco-evk.dtb monaco-evk-sd-card.dtbo
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-sd-card.dtb
+monaco-evk-emmc-dtbs := monaco-evk.dtb monaco-evk-emmc.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += monaco-evk-emmc.dtb
+
dtb-$(CONFIG_ARCH_QCOM) += msm8216-samsung-fortuna3g.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-acer-a1-724.dtb
dtb-$(CONFIG_ARCH_QCOM) += msm8916-alcatel-idol347.dtb
diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
new file mode 100644
index 000000000000..cb2566ac6923
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+ vreg_s2s: regulator-vreg-s2s {
+ compatible = "regulator-fixed";
+ regulator-name = "regulator-s2s";
+
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ };
+};
+
+&sdhc_1 {
+ vmmc-supply = <&vreg_l8a>;
+ vqmmc-supply = <&vreg_s2s>;
+
+ supports-cqe;
+
+ pinctrl-0 = <&sdc1_state_on>;
+ pinctrl-1 = <&sdc1_state_off>;
+
+ pinctrl-names = "default", "sleep";
+
+ non-removable;
+
+ bus-width = <8>;
+ no-sd;
+ no-sdio;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC via overlay
2026-06-16 13:03 ` [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
@ 2026-06-16 13:13 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-06-16 13:13 UTC (permalink / raw)
To: Monish Chunara; +Cc: robh, devicetree, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [Medium] Device Tree resource duplication for the vreg_s2s regulator.
Pre-existing issues:
- [High] Incomplete base DT refactoring leaves mutually exclusive eMMC properties, breaking the SD card overlay.
--
commit 457596ee7fdadc67892c938f430cbd6d76fabaf4
Author: Monish Chunara <monish.chunara@oss.qualcomm.com>
arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC via overlay
Enable the SDHCI controller for eMMC functionality on the Monaco EVK
using a device tree overlay.
> diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
> new file mode 100644
> index 0000000000000..cb2566ac6923c
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
> @@ -0,0 +1,37 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +/ {
> + vreg_s2s: regulator-vreg-s2s {
> + compatible = "regulator-fixed";
> + regulator-name = "regulator-s2s";
> +
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + };
> +};
[Severity: Medium]
Does this create a duplicate regulator node?
The base device tree in arch/arm64/boot/dts/qcom/monaco-evk.dts already
provisions this exact 1.8V fixed regulator as vreg-s2s with the vreg_s2s
label:
arch/arm64/boot/dts/qcom/monaco-evk.dts:
vreg_s2s: vreg-s2s {
compatible = "regulator-fixed";
regulator-name = "vreg_s2s";
Since the node names differ, applying this overlay instantiates a duplicate
physical regulator node instead of referencing the existing one.
> +
> +&sdhc_1 {
> + vmmc-supply = <&vreg_l8a>;
> + vqmmc-supply = <&vreg_s2s>;
> +
> + supports-cqe;
> +
> + pinctrl-0 = <&sdc1_state_on>;
> + pinctrl-1 = <&sdc1_state_off>;
> +
> + pinctrl-names = "default", "sleep";
> +
> + non-removable;
> +
> + bus-width = <8>;
> + no-sd;
> + no-sdio;
> +
> + status = "okay";
> +};
[Severity: High]
This isn't a bug introduced by this patch, but this commit fails to address
it while supposedly completing the eMMC overlay separation.
The base device tree arch/arm64/boot/dts/qcom/monaco-evk.dts retains
hardcoded eMMC properties for sdhc_1:
arch/arm64/boot/dts/qcom/monaco-evk.dts:sdhc_1
no-sd;
no-sdio;
non-removable;
Because overlays cannot easily delete properties, applying the previously
merged SD card overlay arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
inherits no-sd from the base DT while appending its own no-mmc. This causes
the MMC core to skip probing entirely, rendering the SD card controller
non-functional.
Should the base DT be stripped of these media-specific properties to properly
implement mutually exclusive overlays?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260616130347.3096034-1-monish.chunara@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
2026-06-16 13:03 ` [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
@ 2026-06-16 13:14 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-06-16 13:14 UTC (permalink / raw)
To: Monish Chunara; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] Incomplete genericization of `sdhc_1` leaves conflicting eMMC-specific properties in the SoC DT, breaking SD card compatibility.
- [Medium] Removing the `supports-cqe` property from the SoC-level `monaco.dtsi` without explicitly adding it back to all eMMC-based boards causes a silent performance regression by disabling Command Queue Engine (CQE) support.
--
commit 05fd7920ab031fea94cd493a589a30892353cf08
Author: Monish Chunara <monish.chunara@oss.qualcomm.com>
arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
This commit removes the supports-cqe property from the generic Monaco SoC
device tree and moves it to the qcs8300-ride board device tree. The stated
goal is to allow SD card compatibility in the base SoC definition, since the
Command Queue Engine conflicts with SD card operation.
> diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
> index 7b1d57460f1e6..e5f316897706b 100644
> --- a/arch/arm64/boot/dts/qcom/monaco.dtsi
> +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
> @@ -4828,7 +4828,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> qcom,dll-config = <0x000f64ee>;
> qcom,ddr-config = <0x80040868>;
> bus-width = <8>;
> - supports-cqe;
[Severity: Medium]
Removing supports-cqe from the SoC DT without adding it back to all
eMMC-based boards appears to cause a performance regression by disabling the
Command Queue Engine for those boards.
For example, arch/arm64/boot/dts/qcom/monaco-monza-som.dtsi and
arch/arm64/boot/dts/qcom/monaco-evk.dts both configure sdhc_1 as an eMMC
device (using no-sd and non-removable). Since they rely on the SoC DT for
the supports-cqe property, won't omitting it from this patch silently degrade
their performance?
[Severity: High]
The commit message states the goal is to ensure the SoC definition remains
generic for SD card compatibility by removing supports-cqe. However, does
leaving the other eMMC-specific properties in the SoC DT defeat this purpose?
Properties like bus-width = <8>, mmc-hs400-1_8v, mmc-hs400-enhanced-strobe,
qcom,dll-config, and qcom,ddr-config remain in the base monaco.dtsi. Since
device tree overlays do not automatically delete base boolean properties or
override tuning parameters unless explicitly redefined, won't these
incorrectly inherit to SD card configurations and cause the MMC core to
misconfigure the interface?
Should these properties be moved to the eMMC-specific board files as well?
> dma-coherent;
>
> mmc-ddr-1_8v;
> diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> index e9a8553a8d821..3090eba0317ac 100644
> --- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> +++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
> @@ -719,6 +719,7 @@ &sdhc_1 {
> vmmc-supply = <&vreg_l8a>;
> vqmmc-supply = <&vreg_s4a>;
>
> + supports-cqe;
> non-removable;
> no-sd;
> no-sdio;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260616130347.3096034-1-monish.chunara@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-06-16 13:03 ` [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
@ 2026-06-16 13:15 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-06-16 13:15 UTC (permalink / raw)
To: Monish Chunara; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The device tree overlay fails to clear the inherited eMMC configuration (`no-sd`, `non-removable`) from the base DT, resulting in completely broken SD card support.
- [Medium] The overlay configures a 1.8V-capable regulator and UHS-I OPPs, but explicitly disables 1.8V signaling, rendering the UHS-I configuration unreachable dead code.
--
commit 5cd7b1bc67719c7d2577b7397199af1024203df8
Author: Monish Chunara <monish.chunara@oss.qualcomm.com>
arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
The monaco EVK board supports either eMMC or SD-card, but only one can be
active at a time. This commit enables the SDHCI on the monaco EVK board to
support SD Card storage via a device tree overlay, allowing eMMC to be
enabled via a separate overlay.
> diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso b/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
> new file mode 100644
> index 0000000000000..bc4ea12587a2e
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/monaco-evk-sd-card.dtso
[ ... ]
> +&sdhc_1 {
> + vmmc-supply = <&vmmc_sdc>;
> + vqmmc-supply = <&vreg_sdc>;
> +
> + pinctrl-0 = <&sdc1_state_on>, <&sd_cd>;
> + pinctrl-1 = <&sdc1_state_off>, <&sd_cd>;
> + pinctrl-names = "default", "sleep";
> +
> + cap-sd-highspeed;
> + no-1-8-v;
[Severity: Medium]
Will the no-1-8-v property prevent the UHS-I configuration from working?
The overlay configures a 1.8V-capable regulator (vreg_sdc) and adds
high-frequency OPPs (100MHz, 202MHz) to sdhc1_opp_table below, but explicitly
disabling 1.8V signaling forbids the MMC core from initiating the 1.8V
voltage switch.
This appears to limit the host to standard High Speed and makes the 1.8V
regulator state and UHS-I OPPs unreachable.
> +
> + bus-width = <4>;
> + cd-gpios = <&tlmm 11 GPIO_ACTIVE_LOW>;
> + no-mmc;
> + no-sdio;
[Severity: High]
Does this overlay properly clear the inherited eMMC configuration from the
base device tree?
The base device tree (monaco-evk.dts) configures &sdhc_1 with no-sd and
non-removable for default eMMC support. Since device tree overlays merge
properties, and this overlay doesn't use /delete-property/ for no-sd and
non-removable, the resulting node will have both no-sd and no-mmc
simultaneously.
Could this cause the MMC core to refuse to probe both SD and MMC cards?
> +
> + status = "okay";
> +};
> +
> +&sdhc1_opp_table {
> + opp-100000000 {
> + opp-hz = /bits/ 64 <100000000>;
> + required-opps = <&rpmhpd_opp_low_svs>;
> + };
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260616130347.3096034-1-monish.chunara@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-06-16 13:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-16 13:03 [PATCH V2 0/3] arm64: dts: qcom: Monaco: Enable SDHCI storage support Monish Chunara
2026-06-16 13:03 ` [PATCH V2 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
2026-06-16 13:14 ` sashiko-bot
2026-06-16 13:03 ` [PATCH V2 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
2026-06-16 13:15 ` sashiko-bot
2026-06-16 13:03 ` [PATCH V2 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
2026-06-16 13:13 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox