* [PATCH 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
2026-02-27 10:50 [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Monish Chunara
@ 2026-02-27 10:50 ` Monish Chunara
2026-02-27 20:05 ` Dmitry Baryshkov
2026-02-27 10:50 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
` (2 subsequent siblings)
3 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-02-27 10:50 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, dmitry.baryshkov,
mani
Cc: linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat, 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 5d2df4305d1c..680f0edf4356 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -4742,7 +4742,6 @@ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
qcom,dll-config = <0x000f64ee>;
qcom,ddr-config = <0x80040868>;
- supports-cqe;
dma-coherent;
status = "disabled";
diff --git a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
index c04e0ad53eec..b0bec20eed34 100644
--- a/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
+++ b/arch/arm64/boot/dts/qcom/qcs8300-ride.dts
@@ -428,6 +428,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] 16+ messages in thread* Re: [PATCH 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT
2026-02-27 10:50 ` [PATCH 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
@ 2026-02-27 20:05 ` Dmitry Baryshkov
0 siblings, 0 replies; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-02-27 20:05 UTC (permalink / raw)
To: Monish Chunara
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Fri, Feb 27, 2026 at 04:20:53PM +0530, Monish Chunara wrote:
> 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(-)
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-02-27 10:50 [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Monish Chunara
2026-02-27 10:50 ` [PATCH 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
@ 2026-02-27 10:50 ` Monish Chunara
2026-02-27 20:03 ` Dmitry Baryshkov
2026-02-27 10:50 ` [PATCH 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
2026-02-27 20:05 ` [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Dmitry Baryshkov
3 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-02-27 10:50 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, dmitry.baryshkov,
mani
Cc: linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat, 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 317af937d038..c86242a1631d 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
--- /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-dummy {
+ 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] 16+ messages in thread* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-02-27 10:50 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
@ 2026-02-27 20:03 ` Dmitry Baryshkov
2026-03-02 14:24 ` Monish Chunara
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-02-27 20:03 UTC (permalink / raw)
To: Monish Chunara
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Fri, Feb 27, 2026 at 04:20:54PM +0530, Monish Chunara wrote:
> 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 317af937d038..c86242a1631d 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
> dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
> --- /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-dummy {
No dummy regulators, please.
> + 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 {
Why? Is it specific to the device or to the chip? In the latter case,
please define a separate table in the monaco.dtsi and switch to it here.
> + 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
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-02-27 20:03 ` Dmitry Baryshkov
@ 2026-03-02 14:24 ` Monish Chunara
2026-03-23 14:15 ` Konrad Dybcio
0 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-03-02 14:24 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Fri, Feb 27, 2026 at 10:03:10PM +0200, Dmitry Baryshkov wrote:
> On Fri, Feb 27, 2026 at 04:20:54PM +0530, Monish Chunara wrote:
> > 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 317af937d038..c86242a1631d 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
> > dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
> > --- /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-dummy {
>
> No dummy regulators, please.
ACK, these will be renamed as per the schematic. Since these are direct supplies
on hardware, used fixed-regulator configuration.
>
> > + 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 {
>
> Why? Is it specific to the device or to the chip? In the latter case,
> please define a separate table in the monaco.dtsi and switch to it here.
>
As per the previous review, it was suggested to use an existing table. But yes,
this is specific to the Host controller and the corresponding voltage corners on
the chip and can be defined as a separate entity for SD card use-case.
> > + 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
> >
>
> --
> With best wishes
> Dmitry
Regards,
Monish
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-03-02 14:24 ` Monish Chunara
@ 2026-03-23 14:15 ` Konrad Dybcio
2026-06-16 12:30 ` Monish Chunara
0 siblings, 1 reply; 16+ messages in thread
From: Konrad Dybcio @ 2026-03-23 14:15 UTC (permalink / raw)
To: Monish Chunara, Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On 3/2/26 3:24 PM, Monish Chunara wrote:
> On Fri, Feb 27, 2026 at 10:03:10PM +0200, Dmitry Baryshkov wrote:
>> On Fri, Feb 27, 2026 at 04:20:54PM +0530, Monish Chunara wrote:
>>> 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 317af937d038..c86242a1631d 100644
>>> --- a/arch/arm64/boot/dts/qcom/Makefile
>>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>>> @@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
>>> dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
>>> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
>>> --- /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-dummy {
>>
>> No dummy regulators, please.
>
> ACK, these will be renamed as per the schematic. Since these are direct supplies
> on hardware, used fixed-regulator configuration.
>
>>
>>> + 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 {
>>
>> Why? Is it specific to the device or to the chip? In the latter case,
>> please define a separate table in the monaco.dtsi and switch to it here.
>>
>
> As per the previous review, it was suggested to use an existing table. But yes,
> this is specific to the Host controller and the corresponding voltage corners on
> the chip and can be defined as a separate entity for SD card use-case.
The SDC programming guide I have access to does not seem to have bene
updated for any recent chips. Are you sure these different corners are
*actually* valid? The clock-side documentation doesn't mention that
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-03-23 14:15 ` Konrad Dybcio
@ 2026-06-16 12:30 ` Monish Chunara
2026-06-16 13:01 ` Konrad Dybcio
0 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-06-16 12:30 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Dmitry Baryshkov, andersson, konradybcio, robh, krzk+dt, conor+dt,
mani, linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Mon, Mar 23, 2026 at 03:15:09PM +0100, Konrad Dybcio wrote:
> On 3/2/26 3:24 PM, Monish Chunara wrote:
> > On Fri, Feb 27, 2026 at 10:03:10PM +0200, Dmitry Baryshkov wrote:
> >> On Fri, Feb 27, 2026 at 04:20:54PM +0530, Monish Chunara wrote:
> >>> 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 317af937d038..c86242a1631d 100644
> >>> --- a/arch/arm64/boot/dts/qcom/Makefile
> >>> +++ b/arch/arm64/boot/dts/qcom/Makefile
> >>> @@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
> >>> dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
> >>> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
> >>> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
> >>> --- /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-dummy {
> >>
> >> No dummy regulators, please.
> >
> > ACK, these will be renamed as per the schematic. Since these are direct supplies
> > on hardware, used fixed-regulator configuration.
> >
> >>
> >>> + 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 {
> >>
> >> Why? Is it specific to the device or to the chip? In the latter case,
> >> please define a separate table in the monaco.dtsi and switch to it here.
> >>
> >
> > As per the previous review, it was suggested to use an existing table. But yes,
> > this is specific to the Host controller and the corresponding voltage corners on
> > the chip and can be defined as a separate entity for SD card use-case.
>
> The SDC programming guide I have access to does not seem to have bene
> updated for any recent chips. Are you sure these different corners are
> *actually* valid? The clock-side documentation doesn't mention that
>
There seems a gap in the clock documentation. This is being communicated to the
corresponding stakeholders. However, the corners mentioned are as per the
reference platform and will be updated in the subsequent series based on the
updates from the clock-plan PoC as required.
Regards,
Monish
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay
2026-06-16 12:30 ` Monish Chunara
@ 2026-06-16 13:01 ` Konrad Dybcio
0 siblings, 0 replies; 16+ messages in thread
From: Konrad Dybcio @ 2026-06-16 13:01 UTC (permalink / raw)
To: Monish Chunara
Cc: Dmitry Baryshkov, andersson, konradybcio, robh, krzk+dt, conor+dt,
mani, linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On 6/16/26 2:30 PM, Monish Chunara wrote:
> On Mon, Mar 23, 2026 at 03:15:09PM +0100, Konrad Dybcio wrote:
>> On 3/2/26 3:24 PM, Monish Chunara wrote:
>>> On Fri, Feb 27, 2026 at 10:03:10PM +0200, Dmitry Baryshkov wrote:
>>>> On Fri, Feb 27, 2026 at 04:20:54PM +0530, Monish Chunara wrote:
>>>>> 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 317af937d038..c86242a1631d 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/Makefile
>>>>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>>>>> @@ -46,6 +46,10 @@ lemans-evk-el2-dtbs := lemans-evk.dtb lemans-el2.dtbo
>>>>> dtb-$(CONFIG_ARCH_QCOM) += lemans-evk-el2.dtb
>>>>> dtb-$(CONFIG_ARCH_QCOM) += milos-fairphone-fp6.dtb
>>>>> dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..a0bc5c47d40b
>>>>> --- /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-dummy {
>>>>
>>>> No dummy regulators, please.
>>>
>>> ACK, these will be renamed as per the schematic. Since these are direct supplies
>>> on hardware, used fixed-regulator configuration.
>>>
>>>>
>>>>> + 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 {
>>>>
>>>> Why? Is it specific to the device or to the chip? In the latter case,
>>>> please define a separate table in the monaco.dtsi and switch to it here.
>>>>
>>>
>>> As per the previous review, it was suggested to use an existing table. But yes,
>>> this is specific to the Host controller and the corresponding voltage corners on
>>> the chip and can be defined as a separate entity for SD card use-case.
>>
>> The SDC programming guide I have access to does not seem to have bene
>> updated for any recent chips. Are you sure these different corners are
>> *actually* valid? The clock-side documentation doesn't mention that
>>
>
> There seems a gap in the clock documentation. This is being communicated to the
> corresponding stakeholders. However, the corners mentioned are as per the
> reference platform and will be updated in the subsequent series based on the
> updates from the clock-plan PoC as required.
Thanks for chasing this down
Konrad
^ permalink raw reply [flat|nested] 16+ messages in thread
* [PATCH 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC via overlay
2026-02-27 10:50 [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Monish Chunara
2026-02-27 10:50 ` [PATCH 1/3] arm64: dts: qcom: monaco: Move eMMC CQE support from SoC to board DT Monish Chunara
2026-02-27 10:50 ` [PATCH 2/3] arm64: dts: qcom: monaco-evk: Enable SDHCI for SD Card via overlay Monish Chunara
@ 2026-02-27 10:50 ` Monish Chunara
2026-02-27 20:05 ` [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Dmitry Baryshkov
3 siblings, 0 replies; 16+ messages in thread
From: Monish Chunara @ 2026-02-27 10:50 UTC (permalink / raw)
To: andersson, konradybcio, robh, krzk+dt, conor+dt, dmitry.baryshkov,
mani
Cc: linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat, Monish Chunara
Enable the SDHCI controller for eMMC functionality on the Monaco EVK
using a device tree overlay. Configure the corresponding VCC regulator
parameters to support the eMMC interface.
Additionally, disable the UFS controller node. The VCC regulator is
shared between the UFS and eMMC subsystems; leaving UFS enabled while
operating eMMC results in power leakage on the shared rail.
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 | 46 +++++++++++++++++++
2 files changed, 49 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 c86242a1631d..1660ed89fecb 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -50,6 +50,9 @@ dtb-$(CONFIG_ARCH_QCOM) += monaco-evk.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..1ced916247c1
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso
@@ -0,0 +1,46 @@
+// 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";
+};
+
+&ufs_mem_hc {
+ status = "disabled";
+};
+
+&vreg_l8a {
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-02-27 10:50 [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Monish Chunara
` (2 preceding siblings ...)
2026-02-27 10:50 ` [PATCH 3/3] arm64: dts: qcom: monaco-evk: Add SDHCI support for eMMC " Monish Chunara
@ 2026-02-27 20:05 ` Dmitry Baryshkov
2026-03-02 14:37 ` Monish Chunara
3 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-02-27 20:05 UTC (permalink / raw)
To: Monish Chunara
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> This series enables SDHCI storage support for both SD Card and eMMC on the
> Qualcomm Monaco EVK platform.
>
> The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> cases. Previously, the common SoC dtsi unconditionally enabled the
> 'supports-cqe' property. This causes regression for SD cards, resulting
> in timeouts and initialization failures during the probe sequence, as
> the driver attempts to enable Command Queueing (CQE) logic incompatible
> with the SD protocol.
>
> To resolve this and enable full storage support, this series:
>
> 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> now only enabled in the specific eMMC configuration where it is
> supported.
> 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> 3. Adds a device tree overlay to enable eMMC support. This configuration
> also explicitly disables the UFS controller to prevent power leakage,
> as the VCC regulator is shared between the UFS and eMMC rails on this
> platform.
>
> 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
You are adding two overlays. But what does it mean? Does EVK has no uSD
/ eMMC at all, having both attachable via some kind of mezzanine? Is one
of them attachable? Or are both cases present onboard with the correct
one being selected by the DIP switch?
>
> arch/arm64/boot/dts/qcom/Makefile | 7 ++
> arch/arm64/boot/dts/qcom/monaco-evk-emmc.dtso | 46 ++++++++++++
> .../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, 126 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
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-02-27 20:05 ` [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support Dmitry Baryshkov
@ 2026-03-02 14:37 ` Monish Chunara
2026-03-02 14:47 ` Dmitry Baryshkov
0 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-03-02 14:37 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Fri, Feb 27, 2026 at 10:05:32PM +0200, Dmitry Baryshkov wrote:
> On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> > This series enables SDHCI storage support for both SD Card and eMMC on the
> > Qualcomm Monaco EVK platform.
> >
> > The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> > cases. Previously, the common SoC dtsi unconditionally enabled the
> > 'supports-cqe' property. This causes regression for SD cards, resulting
> > in timeouts and initialization failures during the probe sequence, as
> > the driver attempts to enable Command Queueing (CQE) logic incompatible
> > with the SD protocol.
> >
> > To resolve this and enable full storage support, this series:
> >
> > 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> > now only enabled in the specific eMMC configuration where it is
> > supported.
> > 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> > 3. Adds a device tree overlay to enable eMMC support. This configuration
> > also explicitly disables the UFS controller to prevent power leakage,
> > as the VCC regulator is shared between the UFS and eMMC rails on this
> > platform.
> >
> > 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
>
> You are adding two overlays. But what does it mean? Does EVK has no uSD
> / eMMC at all, having both attachable via some kind of mezzanine? Is one
> of them attachable? Or are both cases present onboard with the correct
> one being selected by the DIP switch?
>
The monaco EVK has both storage devices present onboard and the desired one is
selected via a DIP switch. The overlay selection logic would be based on a
fitImage metadata entry that gets populated at UEFI level by determining the
currently selected storage device (eMMC/SD) on the device.
Hence, this approach becomes robust to enable the user for using either of the
two mediums, without any additional requirement of reflashing any images.
Regards,
Monish
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-03-02 14:37 ` Monish Chunara
@ 2026-03-02 14:47 ` Dmitry Baryshkov
2026-03-02 15:05 ` Monish Chunara
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-02 14:47 UTC (permalink / raw)
To: Monish Chunara
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Mon, Mar 02, 2026 at 08:07:23PM +0530, Monish Chunara wrote:
> On Fri, Feb 27, 2026 at 10:05:32PM +0200, Dmitry Baryshkov wrote:
> > On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> > > This series enables SDHCI storage support for both SD Card and eMMC on the
> > > Qualcomm Monaco EVK platform.
> > >
> > > The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> > > cases. Previously, the common SoC dtsi unconditionally enabled the
> > > 'supports-cqe' property. This causes regression for SD cards, resulting
> > > in timeouts and initialization failures during the probe sequence, as
> > > the driver attempts to enable Command Queueing (CQE) logic incompatible
> > > with the SD protocol.
> > >
> > > To resolve this and enable full storage support, this series:
> > >
> > > 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> > > now only enabled in the specific eMMC configuration where it is
> > > supported.
> > > 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> > > 3. Adds a device tree overlay to enable eMMC support. This configuration
> > > also explicitly disables the UFS controller to prevent power leakage,
> > > as the VCC regulator is shared between the UFS and eMMC rails on this
> > > platform.
> > >
> > > 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
> >
> > You are adding two overlays. But what does it mean? Does EVK has no uSD
> > / eMMC at all, having both attachable via some kind of mezzanine? Is one
> > of them attachable? Or are both cases present onboard with the correct
> > one being selected by the DIP switch?
> >
>
> The monaco EVK has both storage devices present onboard and the desired one is
> selected via a DIP switch. The overlay selection logic would be based on a
> fitImage metadata entry that gets populated at UEFI level by determining the
> currently selected storage device (eMMC/SD) on the device.
>
> Hence, this approach becomes robust to enable the user for using either of the
> two mediums, without any additional requirement of reflashing any images.
You are answering a different question :-)
Let me formulate my question as a review comment:
- identify the default DIP switch position
- squash corresponding dtso into the dts
- leave only the default dts and non-default dtso to be applied by UEFI
if necessary.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-03-02 14:47 ` Dmitry Baryshkov
@ 2026-03-02 15:05 ` Monish Chunara
2026-03-05 4:51 ` Dmitry Baryshkov
0 siblings, 1 reply; 16+ messages in thread
From: Monish Chunara @ 2026-03-02 15:05 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Mon, Mar 02, 2026 at 04:47:41PM +0200, Dmitry Baryshkov wrote:
> On Mon, Mar 02, 2026 at 08:07:23PM +0530, Monish Chunara wrote:
> > On Fri, Feb 27, 2026 at 10:05:32PM +0200, Dmitry Baryshkov wrote:
> > > On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> > > > This series enables SDHCI storage support for both SD Card and eMMC on the
> > > > Qualcomm Monaco EVK platform.
> > > >
> > > > The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> > > > cases. Previously, the common SoC dtsi unconditionally enabled the
> > > > 'supports-cqe' property. This causes regression for SD cards, resulting
> > > > in timeouts and initialization failures during the probe sequence, as
> > > > the driver attempts to enable Command Queueing (CQE) logic incompatible
> > > > with the SD protocol.
> > > >
> > > > To resolve this and enable full storage support, this series:
> > > >
> > > > 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> > > > now only enabled in the specific eMMC configuration where it is
> > > > supported.
> > > > 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> > > > 3. Adds a device tree overlay to enable eMMC support. This configuration
> > > > also explicitly disables the UFS controller to prevent power leakage,
> > > > as the VCC regulator is shared between the UFS and eMMC rails on this
> > > > platform.
> > > >
> > > > 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
> > >
> > > You are adding two overlays. But what does it mean? Does EVK has no uSD
> > > / eMMC at all, having both attachable via some kind of mezzanine? Is one
> > > of them attachable? Or are both cases present onboard with the correct
> > > one being selected by the DIP switch?
> > >
> >
> > The monaco EVK has both storage devices present onboard and the desired one is
> > selected via a DIP switch. The overlay selection logic would be based on a
> > fitImage metadata entry that gets populated at UEFI level by determining the
> > currently selected storage device (eMMC/SD) on the device.
> >
> > Hence, this approach becomes robust to enable the user for using either of the
> > two mediums, without any additional requirement of reflashing any images.
>
> You are answering a different question :-)
>
> Let me formulate my question as a review comment:
> - identify the default DIP switch position
> - squash corresponding dtso into the dts
> - leave only the default dts and non-default dtso to be applied by UEFI
> if necessary.
>
Thanks for clarifying.
Default switch position is on eMMC on Monaco EVK. But as mentioned in the other
thread, there are a few boolean (flag) properties like 'no-sd', that conflicts
with SD card use case and cannot be deleted in an overlay file as
/delete-property/ cannot be used. Also cd-gpio and regulators used for SD card
would be redundant for eMMC.
And similarly 'no-mmc' added by default would be inappropriate for eMMC. This
being the reason, two separate overlays were added.
Regards,
Monish
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-03-02 15:05 ` Monish Chunara
@ 2026-03-05 4:51 ` Dmitry Baryshkov
2026-06-16 12:32 ` Monish Chunara
0 siblings, 1 reply; 16+ messages in thread
From: Dmitry Baryshkov @ 2026-03-05 4:51 UTC (permalink / raw)
To: Monish Chunara
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Mon, Mar 02, 2026 at 08:35:06PM +0530, Monish Chunara wrote:
> On Mon, Mar 02, 2026 at 04:47:41PM +0200, Dmitry Baryshkov wrote:
> > On Mon, Mar 02, 2026 at 08:07:23PM +0530, Monish Chunara wrote:
> > > On Fri, Feb 27, 2026 at 10:05:32PM +0200, Dmitry Baryshkov wrote:
> > > > On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> > > > > This series enables SDHCI storage support for both SD Card and eMMC on the
> > > > > Qualcomm Monaco EVK platform.
> > > > >
> > > > > The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> > > > > cases. Previously, the common SoC dtsi unconditionally enabled the
> > > > > 'supports-cqe' property. This causes regression for SD cards, resulting
> > > > > in timeouts and initialization failures during the probe sequence, as
> > > > > the driver attempts to enable Command Queueing (CQE) logic incompatible
> > > > > with the SD protocol.
> > > > >
> > > > > To resolve this and enable full storage support, this series:
> > > > >
> > > > > 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> > > > > now only enabled in the specific eMMC configuration where it is
> > > > > supported.
> > > > > 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> > > > > 3. Adds a device tree overlay to enable eMMC support. This configuration
> > > > > also explicitly disables the UFS controller to prevent power leakage,
> > > > > as the VCC regulator is shared between the UFS and eMMC rails on this
> > > > > platform.
> > > > >
> > > > > 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
> > > >
> > > > You are adding two overlays. But what does it mean? Does EVK has no uSD
> > > > / eMMC at all, having both attachable via some kind of mezzanine? Is one
> > > > of them attachable? Or are both cases present onboard with the correct
> > > > one being selected by the DIP switch?
> > > >
> > >
> > > The monaco EVK has both storage devices present onboard and the desired one is
> > > selected via a DIP switch. The overlay selection logic would be based on a
> > > fitImage metadata entry that gets populated at UEFI level by determining the
> > > currently selected storage device (eMMC/SD) on the device.
> > >
> > > Hence, this approach becomes robust to enable the user for using either of the
> > > two mediums, without any additional requirement of reflashing any images.
> >
> > You are answering a different question :-)
> >
> > Let me formulate my question as a review comment:
> > - identify the default DIP switch position
> > - squash corresponding dtso into the dts
> > - leave only the default dts and non-default dtso to be applied by UEFI
> > if necessary.
> >
>
> Thanks for clarifying.
>
> Default switch position is on eMMC on Monaco EVK. But as mentioned in the other
> thread, there are a few boolean (flag) properties like 'no-sd', that conflicts
> with SD card use case and cannot be deleted in an overlay file as
> /delete-property/ cannot be used. Also cd-gpio and regulators used for SD card
> would be redundant for eMMC.
>
> And similarly 'no-mmc' added by default would be inappropriate for eMMC. This
> being the reason, two separate overlays were added.
This only means one thing to me: UEFI mechanism needs to be changed from
applying the dtso into directly modifying the FDT in the DT_FIXUP protocol.
There are three options which needs to be removed this way:
- supported-cqe
- non-removable
- no-sd
>
> Regards,
> Monish
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH 0/3] arm64: dts: qcom: monaco: Enable SDHCI storage support
2026-03-05 4:51 ` Dmitry Baryshkov
@ 2026-06-16 12:32 ` Monish Chunara
0 siblings, 0 replies; 16+ messages in thread
From: Monish Chunara @ 2026-06-16 12:32 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, mani,
linux-arm-msm, devicetree, linux-kernel, sarthak.garg,
pradeep.pragallapati, nitin.rawat
On Thu, Mar 05, 2026 at 06:51:09AM +0200, Dmitry Baryshkov wrote:
> On Mon, Mar 02, 2026 at 08:35:06PM +0530, Monish Chunara wrote:
> > On Mon, Mar 02, 2026 at 04:47:41PM +0200, Dmitry Baryshkov wrote:
> > > On Mon, Mar 02, 2026 at 08:07:23PM +0530, Monish Chunara wrote:
> > > > On Fri, Feb 27, 2026 at 10:05:32PM +0200, Dmitry Baryshkov wrote:
> > > > > On Fri, Feb 27, 2026 at 04:20:52PM +0530, Monish Chunara wrote:
> > > > > > This series enables SDHCI storage support for both SD Card and eMMC on the
> > > > > > Qualcomm Monaco EVK platform.
> > > > > >
> > > > > > The Monaco SoC shares the SDHCI controller between SD Card and eMMC use
> > > > > > cases. Previously, the common SoC dtsi unconditionally enabled the
> > > > > > 'supports-cqe' property. This causes regression for SD cards, resulting
> > > > > > in timeouts and initialization failures during the probe sequence, as
> > > > > > the driver attempts to enable Command Queueing (CQE) logic incompatible
> > > > > > with the SD protocol.
> > > > > >
> > > > > > To resolve this and enable full storage support, this series:
> > > > > >
> > > > > > 1. Moves the 'supports-cqe' property out of the common SoC dtsi. It is
> > > > > > now only enabled in the specific eMMC configuration where it is
> > > > > > supported.
> > > > > > 2. Adds a device tree overlay to enable SD Card support (SDR/DDR modes).
> > > > > > 3. Adds a device tree overlay to enable eMMC support. This configuration
> > > > > > also explicitly disables the UFS controller to prevent power leakage,
> > > > > > as the VCC regulator is shared between the UFS and eMMC rails on this
> > > > > > platform.
> > > > > >
> > > > > > 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
> > > > >
> > > > > You are adding two overlays. But what does it mean? Does EVK has no uSD
> > > > > / eMMC at all, having both attachable via some kind of mezzanine? Is one
> > > > > of them attachable? Or are both cases present onboard with the correct
> > > > > one being selected by the DIP switch?
> > > > >
> > > >
> > > > The monaco EVK has both storage devices present onboard and the desired one is
> > > > selected via a DIP switch. The overlay selection logic would be based on a
> > > > fitImage metadata entry that gets populated at UEFI level by determining the
> > > > currently selected storage device (eMMC/SD) on the device.
> > > >
> > > > Hence, this approach becomes robust to enable the user for using either of the
> > > > two mediums, without any additional requirement of reflashing any images.
> > >
> > > You are answering a different question :-)
> > >
> > > Let me formulate my question as a review comment:
> > > - identify the default DIP switch position
> > > - squash corresponding dtso into the dts
> > > - leave only the default dts and non-default dtso to be applied by UEFI
> > > if necessary.
> > >
> >
> > Thanks for clarifying.
> >
> > Default switch position is on eMMC on Monaco EVK. But as mentioned in the other
> > thread, there are a few boolean (flag) properties like 'no-sd', that conflicts
> > with SD card use case and cannot be deleted in an overlay file as
> > /delete-property/ cannot be used. Also cd-gpio and regulators used for SD card
> > would be redundant for eMMC.
> >
> > And similarly 'no-mmc' added by default would be inappropriate for eMMC. This
> > being the reason, two separate overlays were added.
>
> This only means one thing to me: UEFI mechanism needs to be changed from
> applying the dtso into directly modifying the FDT in the DT_FIXUP protocol.
>
> There are three options which needs to be removed this way:
> - supported-cqe
> - non-removable
> - no-sd
>
As per latest discussions and the approach finalized, will be updated in the V2
series, such that the default scenario is honoured and no-sd-no-emmc case is
also avoided.
Thanks for the detailed discussion and suggestions.
Thanks and Regards,
Monish
^ permalink raw reply [flat|nested] 16+ messages in thread