All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mmc: sdhci-esdhc-imx: Call mmc_pwrseq_alloc()
@ 2015-04-07  0:53 Fabio Estevam
  2015-04-08  9:52 ` Ulf Hansson
  0 siblings, 1 reply; 3+ messages in thread
From: Fabio Estevam @ 2015-04-07  0:53 UTC (permalink / raw)
  To: ulf.hansson; +Cc: linux-mmc, linux, kernel, otavio, Fabio Estevam

From: Fabio Estevam <fabio.estevam@freescale.com>

Currently it is not possible to use 'mmc-pwrseq-simple' property with
this driver because mmc_pwrseq_alloc() is never called.

Call mmc_pwrseq_alloc so that we enable the support for providing a
reset GPIO to the Wifi/BT chipset.

Tested on a imx6sl-warp board:

root@imx6sl-warp:~# hciattach /dev/ttymxc1 3wire
Device setup complete
root@imx6sl-warp:~# hciconfig hci0 up
root@imx6sl-warp:~# hciconfig
hci0:   Type: BR/EDR  Bus: UART
        BD Address: 2A:23:AA:6E:C7:A0  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING 
        RX bytes:795 acl:0 sco:0 events:29 errors:0
        TX bytes:613 acl:0 sco:0 commands:29 errors:0

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v1:
- Calling mmc_of_parse() breaks some boards due to bad card detect parsing.
Call only mmc_pwrseq_alloc() instead, which what we really need.

 drivers/mmc/host/sdhci-esdhc-imx.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 7ee8312..5bcabdc 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -31,6 +31,8 @@
 #include "sdhci-pltfm.h"
 #include "sdhci-esdhc.h"
 
+#include "../core/pwrseq.h"
+
 #define	ESDHC_CTRL_D3CD			0x08
 /* VENDOR SPEC register */
 #define ESDHC_VENDOR_SPEC		0xc0
@@ -1079,6 +1081,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 		host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
 	}
 
+	err = mmc_pwrseq_alloc(host->mmc);
+	if (err)
+		goto disable_clk;
+
 	err = sdhci_add_host(host);
 	if (err)
 		goto disable_clk;
-- 
1.9.1


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

* Re: [PATCH v2] mmc: sdhci-esdhc-imx: Call mmc_pwrseq_alloc()
  2015-04-07  0:53 [PATCH v2] mmc: sdhci-esdhc-imx: Call mmc_pwrseq_alloc() Fabio Estevam
@ 2015-04-08  9:52 ` Ulf Hansson
  2015-04-08 12:52   ` Fabio Estevam
  0 siblings, 1 reply; 3+ messages in thread
From: Ulf Hansson @ 2015-04-08  9:52 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-mmc, Russell King - ARM Linux, Sascha Hauer,
	Otavio Salvador, Fabio Estevam

On 7 April 2015 at 02:53, Fabio Estevam <festevam@gmail.com> wrote:
> From: Fabio Estevam <fabio.estevam@freescale.com>
>
> Currently it is not possible to use 'mmc-pwrseq-simple' property with
> this driver because mmc_pwrseq_alloc() is never called.
>
> Call mmc_pwrseq_alloc so that we enable the support for providing a
> reset GPIO to the Wifi/BT chipset.
>
> Tested on a imx6sl-warp board:
>
> root@imx6sl-warp:~# hciattach /dev/ttymxc1 3wire
> Device setup complete
> root@imx6sl-warp:~# hciconfig hci0 up
> root@imx6sl-warp:~# hciconfig
> hci0:   Type: BR/EDR  Bus: UART
>         BD Address: 2A:23:AA:6E:C7:A0  ACL MTU: 1021:8  SCO MTU: 64:1
>         UP RUNNING
>         RX bytes:795 acl:0 sco:0 events:29 errors:0
>         TX bytes:613 acl:0 sco:0 commands:29 errors:0
>
> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> ---
> Changes since v1:
> - Calling mmc_of_parse() breaks some boards due to bad card detect parsing.
> Call only mmc_pwrseq_alloc() instead, which what we really need.

Why can't we fix the card detect parsing instead?

>
>  drivers/mmc/host/sdhci-esdhc-imx.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 7ee8312..5bcabdc 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -31,6 +31,8 @@
>  #include "sdhci-pltfm.h"
>  #include "sdhci-esdhc.h"
>
> +#include "../core/pwrseq.h"

The pwrseq API was intentionally not exported. This is not the way to
include header files.

> +
>  #define        ESDHC_CTRL_D3CD                 0x08
>  /* VENDOR SPEC register */
>  #define ESDHC_VENDOR_SPEC              0xc0
> @@ -1079,6 +1081,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
>                 host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
>         }
>
> +       err = mmc_pwrseq_alloc(host->mmc);
> +       if (err)
> +               goto disable_clk;
> +
>         err = sdhci_add_host(host);
>         if (err)
>                 goto disable_clk;
> --
> 1.9.1
>

Kind regards
Uffe

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

* Re: [PATCH v2] mmc: sdhci-esdhc-imx: Call mmc_pwrseq_alloc()
  2015-04-08  9:52 ` Ulf Hansson
@ 2015-04-08 12:52   ` Fabio Estevam
  0 siblings, 0 replies; 3+ messages in thread
From: Fabio Estevam @ 2015-04-08 12:52 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: linux-mmc, Russell King - ARM Linux, Sascha Hauer,
	Otavio Salvador, Fabio Estevam

On Wed, Apr 8, 2015 at 6:52 AM, Ulf Hansson <ulf.hansson@linaro.org> wrote:

>> Changes since v1:
>> - Calling mmc_of_parse() breaks some boards due to bad card detect parsing.
>> Call only mmc_pwrseq_alloc() instead, which what we really need.
>
> Why can't we fix the card detect parsing instead?

That's a nicer approach indeed :-)

I have prepared a v3 and will submit it soon.

Thanks

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

end of thread, other threads:[~2015-04-08 12:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-07  0:53 [PATCH v2] mmc: sdhci-esdhc-imx: Call mmc_pwrseq_alloc() Fabio Estevam
2015-04-08  9:52 ` Ulf Hansson
2015-04-08 12:52   ` Fabio Estevam

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.