All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/2] dt-bindings: sdhci-fujitsu: document cmd-dat-delay property
@ 2017-11-06 11:40 Ard Biesheuvel
  2017-11-06 11:40 ` [PATCH v2 2/2] sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute Ard Biesheuvel
       [not found] ` <20171106114050.15169-1-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
  0 siblings, 2 replies; 4+ messages in thread
From: Ard Biesheuvel @ 2017-11-06 11:40 UTC (permalink / raw)
  To: ulf.hansson-QSEj5FYQhm4dnm+yROfE0A,
	robh+dt-DgEjT+Ai2ygdnm+yROfE0A, mark.rutland-5wv7dgnIgG8,
	adrian.hunter-ral2JQCrhuEAvxtiuMwx3w,
	linux-mmc-u79uwXL29TY76Z2rM5mHXA
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Ard Biesheuvel

Document a new boolean property of the sdhci-fujitsu binding that
indicates whether the CMD_DAT_DELAY bit needs to be set in the
F_SDH30_ESD_CONTROL register.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
index de2c53cff4f1..3ee9263adf73 100644
--- a/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
+++ b/Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt
@@ -15,6 +15,8 @@ Required properties:
 Optional properties:
 - vqmmc-supply: phandle to the regulator device tree node, mentioned
   as the VCCQ/VDD_IO supply in the eMMC/SD specs.
+- fujitsu,cmd-dat-delay-select: boolean property indicating that this host
+  requires the CMD_DAT_DELAY control to be enabled.
 
 Example:
 
-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute
  2017-11-06 11:40 [PATCH v2 1/2] dt-bindings: sdhci-fujitsu: document cmd-dat-delay property Ard Biesheuvel
@ 2017-11-06 11:40 ` Ard Biesheuvel
  2017-11-06 15:00   ` Ulf Hansson
       [not found] ` <20171106114050.15169-1-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
  1 sibling, 1 reply; 4+ messages in thread
From: Ard Biesheuvel @ 2017-11-06 11:40 UTC (permalink / raw)
  To: ulf.hansson, robh+dt, mark.rutland, adrian.hunter, linux-mmc
  Cc: devicetree, Ard Biesheuvel

The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
F_SDH30_ESD_CONTROL control register. So set this bit if the
DT node has the 'fujitsu,cmd-dat-delay-select' property.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 drivers/mmc/host/sdhci_f_sdh30.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
index 111b66f5439b..c5bf69ef7e40 100644
--- a/drivers/mmc/host/sdhci_f_sdh30.c
+++ b/drivers/mmc/host/sdhci_f_sdh30.c
@@ -13,6 +13,7 @@
 #include <linux/err.h>
 #include <linux/delay.h>
 #include <linux/module.h>
+#include <linux/property.h>
 #include <linux/clk.h>
 
 #include "sdhci-pltfm.h"
@@ -45,8 +46,9 @@
 struct f_sdhost_priv {
 	struct clk *clk_iface;
 	struct clk *clk;
-	u32 vendor_hs200;
 	struct device *dev;
+	u32 vendor_hs200;
+	bool enable_cmd_dat_delay;
 };
 
 static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host)
@@ -84,10 +86,19 @@ static unsigned int sdhci_f_sdh30_get_min_clock(struct sdhci_host *host)
 
 static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask)
 {
+	struct f_sdhost_priv *priv = sdhci_priv(host);
+	u32 ctl;
+
 	if (sdhci_readw(host, SDHCI_CLOCK_CONTROL) == 0)
 		sdhci_writew(host, 0xBC01, SDHCI_CLOCK_CONTROL);
 
 	sdhci_reset(host, mask);
+
+	if (priv->enable_cmd_dat_delay) {
+		ctl = sdhci_readl(host, F_SDH30_ESD_CONTROL);
+		ctl |= F_SDH30_CMD_DAT_DELAY;
+		sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL);
+	}
 }
 
 static const struct sdhci_ops sdhci_f_sdh30_ops = {
@@ -126,6 +137,11 @@ static int sdhci_f_sdh30_probe(struct platform_device *pdev)
 	host->quirks2 = SDHCI_QUIRK2_SUPPORT_SINGLE |
 			SDHCI_QUIRK2_TUNING_WORK_AROUND;
 
+	if (device_property_read_bool(dev, "fujitsu,cmd-dat-delay-select")) {
+		dev_info(dev, "Setting cmd-dat-delay\n");
+		priv->enable_cmd_dat_delay = true;
+	}
+
 	ret = mmc_of_parse(host->mmc);
 	if (ret)
 		goto err;
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: sdhci-fujitsu: document cmd-dat-delay property
       [not found] ` <20171106114050.15169-1-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2017-11-06 14:33   ` Rob Herring
  0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2017-11-06 14:33 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: Ulf Hansson, Mark Rutland, Adrian Hunter,
	linux-mmc-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

On Mon, Nov 6, 2017 at 5:40 AM, Ard Biesheuvel
<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote:
> Document a new boolean property of the sdhci-fujitsu binding that
> indicates whether the CMD_DAT_DELAY bit needs to be set in the
> F_SDH30_ESD_CONTROL register.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
> ---
>  Documentation/devicetree/bindings/mmc/sdhci-fujitsu.txt | 2 ++
>  1 file changed, 2 insertions(+)

Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 2/2] sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute
  2017-11-06 11:40 ` [PATCH v2 2/2] sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute Ard Biesheuvel
@ 2017-11-06 15:00   ` Ulf Hansson
  0 siblings, 0 replies; 4+ messages in thread
From: Ulf Hansson @ 2017-11-06 15:00 UTC (permalink / raw)
  To: Ard Biesheuvel
  Cc: Rob Herring, Mark Rutland, Adrian Hunter, linux-mmc, devicetree

On 6 November 2017 at 12:40, Ard Biesheuvel <ard.biesheuvel@linaro.org> wrote:
> The Socionext SynQuacer SoC inherits this IP from Fujitsu, but
> requires the F_SDH30_CMD_DAT_DELAY bit to be set in the
> F_SDH30_ESD_CONTROL control register. So set this bit if the
> DT node has the 'fujitsu,cmd-dat-delay-select' property.
>
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  drivers/mmc/host/sdhci_f_sdh30.c | 18 +++++++++++++++++-
>  1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
> index 111b66f5439b..c5bf69ef7e40 100644
> --- a/drivers/mmc/host/sdhci_f_sdh30.c
> +++ b/drivers/mmc/host/sdhci_f_sdh30.c
> @@ -13,6 +13,7 @@
>  #include <linux/err.h>
>  #include <linux/delay.h>
>  #include <linux/module.h>
> +#include <linux/property.h>
>  #include <linux/clk.h>
>
>  #include "sdhci-pltfm.h"
> @@ -45,8 +46,9 @@
>  struct f_sdhost_priv {
>         struct clk *clk_iface;
>         struct clk *clk;
> -       u32 vendor_hs200;
>         struct device *dev;
> +       u32 vendor_hs200;

No need to change the above.

> +       bool enable_cmd_dat_delay;
>  };
>
>  static void sdhci_f_sdh30_soft_voltage_switch(struct sdhci_host *host)
> @@ -84,10 +86,19 @@ static unsigned int sdhci_f_sdh30_get_min_clock(struct sdhci_host *host)
>
>  static void sdhci_f_sdh30_reset(struct sdhci_host *host, u8 mask)
>  {
> +       struct f_sdhost_priv *priv = sdhci_priv(host);
> +       u32 ctl;
> +
>         if (sdhci_readw(host, SDHCI_CLOCK_CONTROL) == 0)
>                 sdhci_writew(host, 0xBC01, SDHCI_CLOCK_CONTROL);
>
>         sdhci_reset(host, mask);
> +
> +       if (priv->enable_cmd_dat_delay) {
> +               ctl = sdhci_readl(host, F_SDH30_ESD_CONTROL);
> +               ctl |= F_SDH30_CMD_DAT_DELAY;
> +               sdhci_writel(host, ctl, F_SDH30_ESD_CONTROL);
> +       }
>  }
>
>  static const struct sdhci_ops sdhci_f_sdh30_ops = {
> @@ -126,6 +137,11 @@ static int sdhci_f_sdh30_probe(struct platform_device *pdev)
>         host->quirks2 = SDHCI_QUIRK2_SUPPORT_SINGLE |
>                         SDHCI_QUIRK2_TUNING_WORK_AROUND;
>
> +       if (device_property_read_bool(dev, "fujitsu,cmd-dat-delay-select")) {
> +               dev_info(dev, "Setting cmd-dat-delay\n");
> +               priv->enable_cmd_dat_delay = true;
> +       }

I don't think there is need to print something due to the parsing.
Let's instead simplify this with:

priv->enable_cmd_dat_delay = device_property_read_bool(dev,
"fujitsu,cmd-dat-delay-select");

> +
>         ret = mmc_of_parse(host->mmc);
>         if (ret)
>                 goto err;
> --
> 2.11.0
>

Kind regards
Uffe

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-11-06 15:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-06 11:40 [PATCH v2 1/2] dt-bindings: sdhci-fujitsu: document cmd-dat-delay property Ard Biesheuvel
2017-11-06 11:40 ` [PATCH v2 2/2] sdhci-fujitsu: add support for setting the CMD_DAT_DELAY attribute Ard Biesheuvel
2017-11-06 15:00   ` Ulf Hansson
     [not found] ` <20171106114050.15169-1-ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-11-06 14:33   ` [PATCH v2 1/2] dt-bindings: sdhci-fujitsu: document cmd-dat-delay property Rob Herring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.