From: Patrice Chotard <patrice.chot...@st.com>

STM32F4 and STM32F7 MCUs has a SDIO controller that looks like
an ARM PL810.
This patch adds the STM32 variant so that mmci driver supports it.

Signed-off-by: Andrea Merello <andrea.mere...@gmail.com>
Signed-off-by: Patrice Chotard <patrice.chot...@st.com>
Reviewed-by: Linus Walleij <linus.wall...@linaro.org>
---

v3: _ none

v2: _ Replace "pl180" by "PL180" in commit message

 drivers/mmc/host/mmci.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 9918a5f..30c93c9 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -244,6 +244,23 @@ struct variant_data {
        .opendrain              = MCI_OD,
 };
 
+static struct variant_data variant_stm32 = {
+       .fifosize               = 32 * 4,
+       .fifohalfsize           = 8 * 4,
+       .clkreg                 = MCI_CLK_ENABLE,
+       .clkreg_enable          = MCI_ST_UX500_HWFCEN,
+       .clkreg_8bit_bus_enable = MCI_ST_8BIT_BUS,
+       .clkreg_neg_edge_enable = MCI_ST_UX500_NEG_EDGE,
+       .datalength_bits        = 24,
+       .datactrl_mask_sdio     = MCI_DPSM_ST_SDIOEN,
+       .st_sdio                = true,
+       .st_clkdiv              = true,
+       .pwrreg_powerup         = MCI_PWR_ON,
+       .f_max                  = 48000000,
+       .pwrreg_clkgate         = true,
+       .pwrreg_nopower         = true,
+};
+
 static struct variant_data variant_qcom = {
        .fifosize               = 16 * 4,
        .fifohalfsize           = 8 * 4,
@@ -2021,6 +2038,11 @@ static int mmci_runtime_resume(struct device *dev)
                .mask   = 0xf0ffffff,
                .data   = &variant_ux500v2,
        },
+       {
+               .id     = 0x00880180,
+               .mask   = 0x00ffffff,
+               .data   = &variant_stm32,
+       },
        /* Qualcomm variants */
        {
                .id     = 0x00051180,
-- 
1.9.1

Reply via email to