diff mbox series

[U-Boot,2/2] mmc: stm32: sdmmc2: add support for st, pin-ckinsdmmc_ckin

Message ID 1518020399-17059-3-git-send-email-patrice.chotard@st.com
State Accepted
Commit 167f2c90f6b4b0561db610fb24f9a5519e0baefd
Delegated to: Tom Rini
Headers show
Series stm32_sdmmc2 driver update | expand

Commit Message

Patrice CHOTARD Feb. 7, 2018, 4:19 p.m. UTC
From: Patrick Delaunay <patrick.delaunay@st.com>

This patch adds "st,pin-ckin" support to activate sdmmc_ckin feature.
When using an external driver (a voltage switch transceiver),
it's advised to select SDMMC_CKIN feedback clock input to sample
the received data.

Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
---
 drivers/mmc/stm32_sdmmc2.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Tom Rini March 14, 2018, 2:08 p.m. UTC | #1
On Wed, Feb 07, 2018 at 05:19:59PM +0100, patrice.chotard@st.com wrote:

> From: Patrick Delaunay <patrick.delaunay@st.com>
> 
> This patch adds "st,pin-ckin" support to activate sdmmc_ckin feature.
> When using an external driver (a voltage switch transceiver),
> it's advised to select SDMMC_CKIN feedback clock input to sample
> the received data.
> 
> Signed-off-by: Patrick Delaunay <patrick.delaunay@st.com>
> Signed-off-by: Patrice Chotard <patrice.chotard@st.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/drivers/mmc/stm32_sdmmc2.c b/drivers/mmc/stm32_sdmmc2.c
index 0fe6808e5dc8..05b421ddd112 100644
--- a/drivers/mmc/stm32_sdmmc2.c
+++ b/drivers/mmc/stm32_sdmmc2.c
@@ -72,7 +72,10 @@  struct stm32_sdmmc2_ctx {
 #define SDMMC_CLKCR_HWFC_EN		BIT(17)
 #define SDMMC_CLKCR_DDR			BIT(18)
 #define SDMMC_CLKCR_BUSSPEED		BIT(19)
-#define SDMMC_CLKCR_SELCLKRX		GENMASK(21, 20)
+#define SDMMC_CLKCR_SELCLKRX_MASK	GENMASK(21, 20)
+#define SDMMC_CLKCR_SELCLKRX_CK		0
+#define SDMMC_CLKCR_SELCLKRX_CKIN	BIT(20)
+#define SDMMC_CLKCR_SELCLKRX_FBCK	BIT(21)
 
 /* SDMMC_CMD register */
 #define SDMMC_CMD_CMDINDEX		GENMASK(5, 0)
@@ -535,6 +538,8 @@  static int stm32_sdmmc2_probe(struct udevice *dev)
 		priv->clk_reg_msk |= SDMMC_CLKCR_NEGEDGE;
 	if (dev_read_bool(dev, "st,dirpol"))
 		priv->pwr_reg_msk |= SDMMC_POWER_DIRPOL;
+	if (dev_read_bool(dev, "st,pin-ckin"))
+		priv->clk_reg_msk |= SDMMC_CLKCR_SELCLKRX_CKIN;
 
 	ret = clk_get_by_index(dev, 0, &priv->clk);
 	if (ret)