Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1390704 > unrolled thread

[PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback

Started byShawn Lin <shawn.lin@rock-chips.com>
First post2016-04-29 04:50 +0200
Last post2016-04-29 18:10 +0200
Articles 2 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback Shawn Lin <shawn.lin@rock-chips.com> - 2016-04-29 04:50 +0200
    Re: [PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe  callback Sören Brinkmann <soren.brinkmann@xilinx.com> - 2016-04-29 18:10 +0200

#1390704 — [PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback

FromShawn Lin <shawn.lin@rock-chips.com>
Date2016-04-29 04:50 +0200
Subject[PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback
Message-ID<rt6Fc-6Ps-9@gated-at.bofh.it>
Currently sdhci-arasan 5.1 can support enhanced strobe function,
and we now limit it just for "arasan,sdhci-5.1". Add
mmc-hs400-enhanced-strobe in DT to enable the function if we'r sure
our controller can support it.

Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

Changes in v2: None

 drivers/mmc/host/sdhci-of-arasan.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index 20b859e..a0e4536 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -25,7 +25,9 @@
 #include "sdhci-pltfm.h"
 
 #define SDHCI_ARASAN_CLK_CTRL_OFFSET	0x2c
+#define SDHCI_ARASAN_VENDOR_REGISTER	0x78
 
+#define VENDOR_ENHANCED_STROBE		BIT(0)
 #define CLK_CTRL_TIMEOUT_SHIFT		16
 #define CLK_CTRL_TIMEOUT_MASK		(0xf << CLK_CTRL_TIMEOUT_SHIFT)
 #define CLK_CTRL_TIMEOUT_MIN_EXP	13
@@ -73,6 +75,23 @@ static void sdhci_arasan_set_clock(struct sdhci_host *host, unsigned int clock)
 		phy_power_on(sdhci_arasan->phy);
 }
 
+static int sdhci_arasan_enhanced_strobe(struct mmc_host *mmc,
+					bool enable)
+{
+	u32 vendor;
+	struct sdhci_host *host = mmc_priv(mmc);
+
+	vendor = readl(host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
+	if (enable)
+		vendor |= VENDOR_ENHANCED_STROBE;
+	else
+		vendor &= (~VENDOR_ENHANCED_STROBE);
+
+	writel(vendor, host->ioaddr + SDHCI_ARASAN_VENDOR_REGISTER);
+
+	return 0;
+}
+
 static struct sdhci_ops sdhci_arasan_ops = {
 	.set_clock = sdhci_arasan_set_clock,
 	.get_max_clock = sdhci_pltfm_clk_get_max_clock,
@@ -239,6 +258,9 @@ static int sdhci_arasan_probe(struct platform_device *pdev)
 			dev_err(&pdev->dev, "phy_power_on err.\n");
 			goto err_phy_power;
 		}
+
+		host->mmc_host_ops.prepare_enhanced_strobe =
+					sdhci_arasan_enhanced_strobe;
 	}
 
 	ret = sdhci_add_host(host);
-- 
2.3.7

[toc] | [next] | [standalone]


#1391271 — Re: [PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback

FromSören Brinkmann <soren.brinkmann@xilinx.com>
Date2016-04-29 18:10 +0200
SubjectRe: [PATCH v2 6/6] mmc: sdhci-of-arasan: overwrite enhanced strobe callback
Message-ID<rtj9o-xI-7@gated-at.bofh.it>
In reply to#1390704
On Fri, 2016-04-29 at 10:48:34 +0800, Shawn Lin wrote:
> Currently sdhci-arasan 5.1 can support enhanced strobe function,
> and we now limit it just for "arasan,sdhci-5.1". Add
> mmc-hs400-enhanced-strobe in DT to enable the function if we'r sure
> our controller can support it.
> 
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
> ---
> 
> Changes in v2: None
> 
>  drivers/mmc/host/sdhci-of-arasan.c | 22 ++++++++++++++++++++++
>  1 file changed, 22 insertions(+)
> 
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index 20b859e..a0e4536 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -25,7 +25,9 @@
>  #include "sdhci-pltfm.h"
>  
>  #define SDHCI_ARASAN_CLK_CTRL_OFFSET	0x2c
> +#define SDHCI_ARASAN_VENDOR_REGISTER	0x78

Just as a note: This register doesn't seem to exist in the IP version
Zynq is using. So, as long as we exclude that version from accessing it,
things should be fine (IIUC, that is the case).

Acked-by: Sören Brinkmann <soren.brinkmann@xilinx.com>

	Sören

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web