Using Raspberry Pi CM4s target generate a warning: WARNING: bcm2835_mci fe340000.mmc@xxxxxxxxxxx: Unsupported width received: 3 mmc0: mci_send_ext_csd failed with -5 Adding the support of 8 bits bus width resolve the issue. Signed-off-by: Pierre-Olivier Huard <pierre-olivier.huard@xxxxxxxx> --- drivers/mci/mci-bcm2835.c | 7 +++++++ drivers/mci/mci-bcm2835.h | 1 + 2 files changed, 8 insertions(+) diff --git a/drivers/mci/mci-bcm2835.c b/drivers/mci/mci-bcm2835.c index 2b541e4c05..35cf0c4241 100644 --- a/drivers/mci/mci-bcm2835.c +++ b/drivers/mci/mci-bcm2835.c @@ -225,6 +225,13 @@ static void bcm2835_mci_set_ios(struct mci_host *mci, struct mci_ios *ios) SDHCI_HOST_CONTROL__POWER_CONTROL__BLOCK_GAP_CONTROL); switch (ios->bus_width) { + case MMC_BUS_WIDTH_8: + sdhci_write32(&host->sdhci, + SDHCI_HOST_CONTROL__POWER_CONTROL__BLOCK_GAP_CONTROL, + (current_val & ~CONTROL0_4DATA) | CONTROL0_8DATA); + host->bus_width = 2; + dev_dbg(host->hw_dev, "Changing bus width to 8\n"); + break; case MMC_BUS_WIDTH_4: sdhci_write32(&host->sdhci, SDHCI_HOST_CONTROL__POWER_CONTROL__BLOCK_GAP_CONTROL, diff --git a/drivers/mci/mci-bcm2835.h b/drivers/mci/mci-bcm2835.h index 608764c23d..71448642ad 100644 --- a/drivers/mci/mci-bcm2835.h +++ b/drivers/mci/mci-bcm2835.h @@ -10,6 +10,7 @@ #define CONTROL0_HISPEED (1 << 2) #define CONTROL0_4DATA (1 << 1) +#define CONTROL0_8DATA (1 << 5) #define CONTROL1_DATARST (1 << 26) #define CONTROL1_CMDRST (1 << 25) -- 2.43.0