2009-03-11 13:13:58

by Wolfgang Mües

[permalink] [raw]
Subject: [PATCH 1/7] mmc_spi: allow setting of spi mode 3

From: Wolfgang Muees <[email protected]>

o allow the platform data structures to specify spi mode 3
(if there is a pullup on the clock line or the spi hardware
is not able to serve spi mode 0).

Signed-off-by: Wolfgang Muees <[email protected]>

---
This is one of a line of patches to enhance the usability of
the mmc spi host port driver from "don't work with most SD cards"
to "work with nearly all SD cards" (including those ugly cards
with non-byte-aligned responses).

diff -uprN 2_6_29_rc7_backported/drivers/mmc/host/mmc_spi.c 2_6_29_rc7_patch1_spi_mode_3/drivers/mmc/host/mmc_spi.c
--- 2_6_29_rc7_backported/drivers/mmc/host/mmc_spi.c 2009-03-04 02:05:22.000000000 +0100
+++ 2_6_29_rc7_patch1_spi_mode_3/drivers/mmc/host/mmc_spi.c 2009-03-11 12:58:47.000000000 +0100
@@ -1204,10 +1204,12 @@ static int mmc_spi_probe(struct spi_devi

/* MMC and SD specs only seem to care that sampling is on the
* rising edge ... meaning SPI modes 0 or 3. So either SPI mode
- * should be legit. We'll use mode 0 since it seems to be a
- * bit less troublesome on some hardware ... unclear why.
+ * should be legit. We'll use mode 0 since the steady state is 0,
+ * which is appropriate for hotplugging, unless the platform data
+ * specify mode 3 (if hardware is not compatible to mode 0).
*/
- spi->mode = SPI_MODE_0;
+ if (spi->mode != SPI_MODE_3)
+ spi->mode = SPI_MODE_0;
spi->bits_per_word = 8;

status = spi_setup(spi);

---
regards

i. A. Wolfgang M?es
--
Auerswald GmbH & Co. KG
Hardware Development
Telefon: +49 (0)5306 9219 0
Telefax: +49 (0)5306 9219 94
E-Mail: [email protected]
Web: http://www.auerswald.de
?
--------------------------------------------------------------
Auerswald GmbH & Co. KG, Vor den Grash?fen 1, 38162 Cremlingen
Registriert beim AG Braunschweig HRA 13289
p.h.G Auerswald Gesch?ftsf?hrungsges. mbH
Registriert beim AG Braunschweig HRB 7463
Gesch?ftsf?hrer: Dipl-Ing. Gerhard Auerswald


2009-03-11 20:04:56

by David Brownell

[permalink] [raw]
Subject: Re: [PATCH 1/7] mmc_spi: allow setting of spi mode 3

On Wednesday 11 March 2009, Wolfgang M?es wrote:
> From: Wolfgang Muees <[email protected]>
>
> o allow the platform data structures to specify spi mode 3
> (if there is a pullup on the clock line or the spi hardware
> is not able to serve spi mode 0).
>
> Signed-off-by: Wolfgang Muees <[email protected]>

Acked-by: David Brownell <[email protected]>


> ---
> This is one of a line of patches to enhance the usability of
> the mmc spi host port driver from "don't work with most SD cards"
> to "work with nearly all SD cards" (including those ugly cards
> with non-byte-aligned responses).



>
> diff -uprN 2_6_29_rc7_backported/drivers/mmc/host/mmc_spi.c 2_6_29_rc7_patch1_spi_mode_3/drivers/mmc/host/mmc_spi.c
> --- 2_6_29_rc7_backported/drivers/mmc/host/mmc_spi.c 2009-03-04 02:05:22.000000000 +0100
> +++ 2_6_29_rc7_patch1_spi_mode_3/drivers/mmc/host/mmc_spi.c 2009-03-11 12:58:47.000000000 +0100
> @@ -1204,10 +1204,12 @@ static int mmc_spi_probe(struct spi_devi
>
> /* MMC and SD specs only seem to care that sampling is on the
> * rising edge ... meaning SPI modes 0 or 3. So either SPI mode
> - * should be legit. We'll use mode 0 since it seems to be a
> - * bit less troublesome on some hardware ... unclear why.
> + * should be legit. We'll use mode 0 since the steady state is 0,
> + * which is appropriate for hotplugging, unless the platform data
> + * specify mode 3 (if hardware is not compatible to mode 0).
> */
> - spi->mode = SPI_MODE_0;
> + if (spi->mode != SPI_MODE_3)
> + spi->mode = SPI_MODE_0;
> spi->bits_per_word = 8;
>
> status = spi_setup(spi);
>
> ---
> regards
>
> i. A. Wolfgang M?es
> --
> Auerswald GmbH & Co. KG
> Hardware Development
> Telefon: +49 (0)5306 9219 0
> Telefax: +49 (0)5306 9219 94
> E-Mail: [email protected]
> Web: http://www.auerswald.de
> ?
> --------------------------------------------------------------
> Auerswald GmbH & Co. KG, Vor den Grash?fen 1, 38162 Cremlingen
> Registriert beim AG Braunschweig HRA 13289
> p.h.G Auerswald Gesch?ftsf?hrungsges. mbH
> Registriert beim AG Braunschweig HRB 7463
> Gesch?ftsf?hrer: Dipl-Ing. Gerhard Auerswald
>
>

2009-03-12 12:50:53

by Maxim Levitsky

[permalink] [raw]
Subject: Re: [PATCH 1/7] mmc_spi: allow setting of spi mode 3

Small question:

Do linux SDHCI driver support SD 4 wire mode?

Or it uses the SPI mode.


Best regards,
Maxim Levitsky

2009-03-15 11:20:33

by Pierre Ossman

[permalink] [raw]
Subject: Re: [PATCH 1/7] mmc_spi: allow setting of spi mode 3

On Thu, 12 Mar 2009 14:50:32 +0200
Maxim Levitsky <[email protected]> wrote:

> Small question:
>
> Do linux SDHCI driver support SD 4 wire mode?
>
> Or it uses the SPI mode.
>

I think you've managed to confuse yourself pretty good here. :)

This is a patch for the mmc_spi driver, which surprisingly enough is
for operating MMC/SD cards in SPI mode. ;)

The sdhci driver is completely unrelated (but yes, it supports 4-bit
mode).

Rgds
--
-- Pierre Ossman

WARNING: This correspondence is being monitored by the
Swedish government. Make sure your server uses encryption
for SMTP traffic and consider using PGP for end-to-end
encryption.


Attachments:
signature.asc (198.00 B)