RDP433 can have NAND or eMMC based on a board level rework. Since the
same GPIOS are used for both the interfaces, only one of them can be
used. Add a new DTS file to disable NAND and enable eMMC.
Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
---
v4: Move sdhc properties to SoC dtsi.
Disable nand (that is enabled in ipq9574-rdp-common.dtsi) here as
the eMMC variant doesn't have NAND.
v3: As qpic_nand is disabled in ipq9574-rdp-common.dtsi, no need to disable
it here. Just enable eMMC.
---
arch/arm64/boot/dts/qcom/Makefile | 2 +-
.../boot/dts/qcom/ipq9574-rdp433-emmc.dts | 24 +++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 6f34d5ed331c..d5fe12ef4300 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -26,7 +26,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c1.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c2.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp418.dtb
-dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb
+dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb ipq9574-rdp433-emmc.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp449.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp453.dtb
dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
new file mode 100644
index 000000000000..9053838ef696
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
@@ -0,0 +1,24 @@
+// SPDX-License-Identifier: BSD-3-Clause-Clear
+/*
+ * IPQ9574 RDP433 (eMMC variant) board device tree source
+ *
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+
+#include "ipq9574-rdp-common.dtsi"
+#include "ipq9574-rdp433-common.dtsi"
+
+/ {
+ model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7 (eMMC)";
+ compatible = "qcom,ipq9574-ap-al02-c7-emmc", "qcom,ipq9574";
+};
+
+&qpic_nand {
+ status = "disabled";
+};
+
+&sdhc_1 {
+ status = "okay";
+};
--
2.34.1
On Mon, Feb 02, 2026 at 01:03:22PM +0530, Varadarajan Narayanan wrote:
> RDP433 can have NAND or eMMC based on a board level rework. Since the
> same GPIOS are used for both the interfaces, only one of them can be
> used. Add a new DTS file to disable NAND and enable eMMC.
>
> Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
> ---
> v4: Move sdhc properties to SoC dtsi.
> Disable nand (that is enabled in ipq9574-rdp-common.dtsi) here as
> the eMMC variant doesn't have NAND.
>
> v3: As qpic_nand is disabled in ipq9574-rdp-common.dtsi, no need to disable
> it here. Just enable eMMC.
> ---
> arch/arm64/boot/dts/qcom/Makefile | 2 +-
> .../boot/dts/qcom/ipq9574-rdp433-emmc.dts | 24 +++++++++++++++++++
> 2 files changed, 25 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index 6f34d5ed331c..d5fe12ef4300 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -26,7 +26,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c1.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c2.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp418.dtb
> -dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb ipq9574-rdp433-emmc.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp449.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp453.dtb
> dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
> diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> new file mode 100644
> index 000000000000..9053838ef696
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> @@ -0,0 +1,24 @@
> +// SPDX-License-Identifier: BSD-3-Clause-Clear
> +/*
> + * IPQ9574 RDP433 (eMMC variant) board device tree source
> + *
> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> + */
> +
> +/dts-v1/;
> +
> +#include "ipq9574-rdp-common.dtsi"
> +#include "ipq9574-rdp433-common.dtsi"
> +
> +/ {
> + model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7 (eMMC)";
> + compatible = "qcom,ipq9574-ap-al02-c7-emmc", "qcom,ipq9574";
> +};
> +
> +&qpic_nand {
> + status = "disabled";
> +};
I'd prefer you keep optional peripherals/buses disabled in the common
dtsi and enable them in respective dts, this generally gives cleaner
layers.
Was this done on purpose?
Regards,
Bjorn
> +
> +&sdhc_1 {
> + status = "okay";
> +};
> --
> 2.34.1
>
On Mon, Feb 02, 2026 at 08:04:41AM -0600, Bjorn Andersson wrote:
> On Mon, Feb 02, 2026 at 01:03:22PM +0530, Varadarajan Narayanan wrote:
> > RDP433 can have NAND or eMMC based on a board level rework. Since the
> > same GPIOS are used for both the interfaces, only one of them can be
> > used. Add a new DTS file to disable NAND and enable eMMC.
> >
> > Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
> > ---
> > v4: Move sdhc properties to SoC dtsi.
> > Disable nand (that is enabled in ipq9574-rdp-common.dtsi) here as
> > the eMMC variant doesn't have NAND.
> >
> > v3: As qpic_nand is disabled in ipq9574-rdp-common.dtsi, no need to disable
> > it here. Just enable eMMC.
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 2 +-
> > .../boot/dts/qcom/ipq9574-rdp433-emmc.dts | 24 +++++++++++++++++++
> > 2 files changed, 25 insertions(+), 1 deletion(-)
> > create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index 6f34d5ed331c..d5fe12ef4300 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -26,7 +26,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c1.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c2.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp418.dtb
> > -dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb
> > +dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb ipq9574-rdp433-emmc.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp449.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp453.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> > new file mode 100644
> > index 000000000000..9053838ef696
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> > @@ -0,0 +1,24 @@
> > +// SPDX-License-Identifier: BSD-3-Clause-Clear
> > +/*
> > + * IPQ9574 RDP433 (eMMC variant) board device tree source
> > + *
> > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include "ipq9574-rdp-common.dtsi"
> > +#include "ipq9574-rdp433-common.dtsi"
> > +
> > +/ {
> > + model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7 (eMMC)";
> > + compatible = "qcom,ipq9574-ap-al02-c7-emmc", "qcom,ipq9574";
> > +};
> > +
> > +&qpic_nand {
> > + status = "disabled";
> > +};
>
> I'd prefer you keep optional peripherals/buses disabled in the common
> dtsi and enable them in respective dts, this generally gives cleaner
> layers.
>
> Was this done on purpose?
Yes. Presently it qpic_nand is enabled in ipq9574-rdp-common.dtsi [1].
Since removing that will impact other boards that include
ipq9574-rdp-common.dtsi chose to disable it here.
If this is not ok, will disable it in ipq9574-rdp-common.dtsi and enable
qpic_nand in other board DT files that include ipq9574-rdp-common.dtsi.
Please let me know.
Thanks
Varada
1 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi#n182
On Tue, Feb 03, 2026 at 11:35:49AM +0530, Varadarajan Narayanan wrote:
> On Mon, Feb 02, 2026 at 08:04:41AM -0600, Bjorn Andersson wrote:
> > On Mon, Feb 02, 2026 at 01:03:22PM +0530, Varadarajan Narayanan wrote:
> > > RDP433 can have NAND or eMMC based on a board level rework. Since the
> > > same GPIOS are used for both the interfaces, only one of them can be
> > > used. Add a new DTS file to disable NAND and enable eMMC.
> > >
> > > Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
> > > ---
> > > v4: Move sdhc properties to SoC dtsi.
> > > Disable nand (that is enabled in ipq9574-rdp-common.dtsi) here as
> > > the eMMC variant doesn't have NAND.
> > >
> > > v3: As qpic_nand is disabled in ipq9574-rdp-common.dtsi, no need to disable
> > > it here. Just enable eMMC.
> > > ---
> > > arch/arm64/boot/dts/qcom/Makefile | 2 +-
> > > .../boot/dts/qcom/ipq9574-rdp433-emmc.dts | 24 +++++++++++++++++++
> > > 2 files changed, 25 insertions(+), 1 deletion(-)
> > > create mode 100644 arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > > index 6f34d5ed331c..d5fe12ef4300 100644
> > > --- a/arch/arm64/boot/dts/qcom/Makefile
> > > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > > @@ -26,7 +26,7 @@ dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c1.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c2.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp418.dtb
> > > -dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb
> > > +dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp433.dtb ipq9574-rdp433-emmc.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp449.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp453.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += ipq9574-rdp454.dtb
> > > diff --git a/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> > > new file mode 100644
> > > index 000000000000..9053838ef696
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/qcom/ipq9574-rdp433-emmc.dts
> > > @@ -0,0 +1,24 @@
> > > +// SPDX-License-Identifier: BSD-3-Clause-Clear
> > > +/*
> > > + * IPQ9574 RDP433 (eMMC variant) board device tree source
> > > + *
> > > + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
> > > + */
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include "ipq9574-rdp-common.dtsi"
> > > +#include "ipq9574-rdp433-common.dtsi"
> > > +
> > > +/ {
> > > + model = "Qualcomm Technologies, Inc. IPQ9574/AP-AL02-C7 (eMMC)";
> > > + compatible = "qcom,ipq9574-ap-al02-c7-emmc", "qcom,ipq9574";
> > > +};
> > > +
> > > +&qpic_nand {
> > > + status = "disabled";
> > > +};
> >
> > I'd prefer you keep optional peripherals/buses disabled in the common
> > dtsi and enable them in respective dts, this generally gives cleaner
> > layers.
> >
> > Was this done on purpose?
>
> Yes. Presently it qpic_nand is enabled in ipq9574-rdp-common.dtsi [1].
> Since removing that will impact other boards that include
> ipq9574-rdp-common.dtsi chose to disable it here.
>
This is not a concern. Don't be afraid of fixing adjacent things to make
the whole look better.
> If this is not ok, will disable it in ipq9574-rdp-common.dtsi and enable
> qpic_nand in other board DT files that include ipq9574-rdp-common.dtsi.
> Please let me know.
>
Please do.
Regards,
Bjorn
> Thanks
> Varada
>
> 1 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/ipq9574-rdp-common.dtsi#n182
© 2016 - 2026 Red Hat, Inc.