android_kernel_xiaomi_sm8350/drivers/mmc
Philip Langdale e45a1bd20f mmc: Add support for mmc v4 wide-bus modes
This change adds support for the mmc4 4-bit wide-bus mode.

The mmc4 spec defines 8-bit and 4-bit transfer modes. As we do not support
any 8-bit hardware, this patch only adds support for the 4-bit mode, but
it can easily be built upon when the time comes.

The 4-bit mode is electrically compatible with SD's 4-bit mode but the
procedure for turning it on is different. This patch implements only
the essential parts of the procedure as defined by the spec. Two additional
steps are recommended but not compulsory. I am documenting them here so
that there's a record.

1) A bus-test mechanism is implemented using dedicated mmc commands which allow
for testing the functionality of the data bus at the electrical level. This is
pretty paranoid and they way the commands work is not compatible with the mmc
subsystem (they don't set valid CRC values).

2) MMC v4 cards can indicate they would like to draw more than the default
amount of current in wide-bus modes. We currently will never switch the card
into a higher draw mode. Supposedly, allowing the card to draw more current
will let it perform better, but the specs seem to indicate that the card will
function correctly without the mode change. Empirical testing supports this
interpretation.

Signed-off-by: Philip Langdale <philipl@overt.org>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
2006-12-01 18:22:44 +01:00
..
at91_mci.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
au1xmmc.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
au1xmmc.h
imxmmc.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
imxmmc.h [ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1 2006-04-02 19:27:07 +01:00
Kconfig trivial change for mmc/Kconfig: MMC_PXA does not mean only PXA255 2006-12-01 18:06:36 +01:00
Makefile [PATCH] mmc: driver for TI FlashMedia card reader - Kconfig/Makefile 2006-10-04 07:55:14 -07:00
mmc_block.c [PATCH] mmc: multi sector write transfers 2006-10-06 08:53:41 -07:00
mmc_queue.c mmc: remove kernel_thread() 2006-12-01 17:56:46 +01:00
mmc_queue.h mmc: remove kernel_thread() 2006-12-01 17:56:46 +01:00
mmc_sysfs.c [PATCH] mmc: use own work queue 2006-10-04 07:55:15 -07:00
mmc.c mmc: Add support for mmc v4 wide-bus modes 2006-12-01 18:22:44 +01:00
mmc.h [PATCH] mmc: use own work queue 2006-10-04 07:55:15 -07:00
mmci.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
mmci.h
omap.c Make general code cleanups 2006-12-01 18:02:03 +01:00
pxamci.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
pxamci.h
sdhci.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
sdhci.h [PATCH] mmc (mainly): add "or later" clause to licence statement. 2006-10-01 00:39:23 -07:00
tifm_sd.c [PATCH] missing includes of io.h 2006-10-24 22:01:11 -07:00
wbsd.c mmc: constify mmc_host_ops vectors 2006-12-01 17:58:53 +01:00
wbsd.h [PATCH] mmc (mainly): add "or later" clause to licence statement. 2006-10-01 00:39:23 -07:00