[PATCH] mmc: mmci: stm32: add SDIO in-band interrupt mode

Linus Walleij linus.walleij at linaro.org
Fri Sep 1 07:10:23 PDT 2023


Hi Yann/Christophe,

thanks for your patch!

On Fri, Sep 1, 2023 at 2:08 PM Yann Gautier <yann.gautier at foss.st.com> wrote:

> From: Christophe Kerello <christophe.kerello at foss.st.com>
>
> Add the support of SDIO in-band interrupt mode for STM32 variant.
> It allows the SD I/O card to interrupt the host on SDMMC_D1 data line.
>
> Signed-off-by: Christophe Kerello <christophe.kerello at foss.st.com>
> Signed-off-by: Yann Gautier <yann.gautier at foss.st.com>
(...)
> +++ b/drivers/mmc/host/mmci.h
> @@ -332,6 +332,7 @@ enum mmci_busy_state {
>   * @opendrain: bitmask identifying the OPENDRAIN bit inside MMCIPOWER register
>   * @dma_lli: true if variant has dma link list feature.
>   * @stm32_idmabsize_mask: stm32 sdmmc idma buffer size.
> + * @use_sdio_irq: allow SD I/O card to interrupt the host

The documentation tag should be one line up (compare to the members...)

> @@ -376,6 +377,7 @@ struct variant_data {
>         u32                     start_err;
>         u32                     opendrain;
>         u8                      dma_lli:1;
> +       u8                      use_sdio_irq:1;

1. bool use_sdio_irq;

2. supports_sdio_irq is more to the point don't you think?
    Especially since it activates these two callbacks:

> +       void (*enable_sdio_irq)(struct mmci_host *host, int enable);
> +       void (*sdio_irq)(struct mmci_host *host, u32 status);

Further: all the Ux500 variants support this (bit 22) as well, so enable those
too in their vendor data. All I have is out-of-band signaling with an GPIO IRQ
on my Broadcom chips but I think it works (maybe Ulf has tested it in the
far past).

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list