On Raspberry Pi 5 with mainline 6.18.x, the DT describes pinctrl states
for sdio1 (mmc@fff000) and sdio2 (mmc@1100000). If the pinctrl supplier
driver is unavailable or wedges during init, these MMC controllers remain
in deferred probe and the SD card is not detected (no /sys/class/mmc_host,
no /dev/mmcblk*).

Drop the pinctrl references for both MMC controllers in the RPi 5 board
DTs so the MMC hosts can probe without waiting on pinctrl states.

This is a workaround until the pinctrl-brcmstb-bcm2712 module stops hanging
the system (I cannot debug it - hard system hang, nothing over netconsole).

mozes@slackware.com
03-feb-2026

diff -urN linux-6.18.8.orig/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts linux-6.18.8/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts
--- linux-6.18.8.orig/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts	2026-01-30 09:32:28.000000000 +0000
+++ linux-6.18.8/arch/arm64/boot/dts/broadcom/bcm2712-d-rpi-5-b.dts	2026-02-02 14:00:50.697382622 +0000
@@ -35,3 +35,20 @@
 		"PMIC_SCL", // AON_SGPIO_04
 		"PMIC_SDA"; // AON_SGPIO_05
 };
+
+/*
+ * Workaround: allow MMC hosts to probe without pinctrl.
+ *
+ * If the pinctrl supplier is not available (or wedges during init), these
+ * controllers remain in deferred probe and the SD card never appears.
+ */
+&sdio1 {
+	/delete-property/ pinctrl-names;
+	/delete-property/ pinctrl-0;
+};
+
+&sdio2 {
+	/delete-property/ pinctrl-names;
+	/delete-property/ pinctrl-0;
+};
+
diff -urN linux-6.18.8.orig/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts linux-6.18.8/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts
--- linux-6.18.8.orig/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts	2026-01-30 09:32:28.000000000 +0000
+++ linux-6.18.8/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dts	2026-02-02 14:00:34.170268432 +0000
@@ -66,3 +66,21 @@
 &rp1_usb1 {
 	status = "okay";
 };
+
+
+/*
+ * Workaround: allow MMC hosts to probe without pinctrl.
+ *
+ * If the pinctrl supplier is not available (or wedges during init), these
+ * controllers remain in deferred probe and the SD card never appears.
+ */
+&sdio1 {
+	/delete-property/ pinctrl-names;
+	/delete-property/ pinctrl-0;
+};
+
+&sdio2 {
+	/delete-property/ pinctrl-names;
+	/delete-property/ pinctrl-0;
+};
+
