Thread (12 messages) 12 messages, 4 authors, 2014-02-14
STALE4516d

[PATCH] mmc: omap_hsmmc: Add support for Erratum 2.1.1.128 in device tree boot

From: Nishanth Menon <nm@ti.com>
Date: 2014-01-20 23:29:02
Also in: linux-arm-kernel, linux-mmc, linux-omap
Subsystem: multimedia card (mmc), secure digital (sd) and sdio subsystem, omap hs mmc support, open firmware and flattened device tree bindings, the rest · Maintainers: Ulf Hansson, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Linus Torvalds

When device is booted using devicetree, platforms impacted by
Erratum 2.1.1.128 is not detected easily in the mmc driver. This erratum
indicates that the module cannot do multi-block transfers.

Handle this by providing a boolean flag to indicate to driver that it is
working on a hardware with mentioned limitation.

Signed-off-by: Nishanth Menon <nm@ti.com>
---

This explains the logs I see:
OMAP3430 LDP (ES2.2):
	uImage only boot:  http://slexy.org/raw/s2YrbMAi7c 
	uImage+dtb concatenated boot: http://slexy.org/raw/s20qVg17T0 

With the following flag set, device is now able to consistently boot with
device tree supported uImage+dtb concat boot.

 .../devicetree/bindings/mmc/ti-omap-hsmmc.txt      |    2 ++
 drivers/mmc/host/omap_hsmmc.c                      |    3 +++
 2 files changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
index 8c8908a..ab36f8b 100644
--- a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
+++ b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt
@@ -26,6 +26,8 @@ specifier is required.
 dma-names: List of DMA request names. These strings correspond
 1:1 with the DMA specifiers listed in dmas. The string naming is
 to be "rx" and "tx" for RX and TX DMA requests, respectively.
+ti,erratum-2.1.1.128: boolean, for OMAP3430/OMAP35xx platforms with broken
+multiblock reads
 
 Examples:
 
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 014bfe5..f2d5940 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1730,6 +1730,9 @@ static struct omap_mmc_platform_data *of_get_hsmmc_pdata(struct device *dev)
 	if (of_find_property(np, "ti,dual-volt", NULL))
 		pdata->controller_flags |= OMAP_HSMMC_SUPPORTS_DUAL_VOLT;
 
+	if (of_find_property(np, "ti,erratum-2.1.1.128", NULL))
+		pdata->controller_flags |= OMAP_HSMMC_BROKEN_MULTIBLOCK_READ;
+
 	/* This driver only supports 1 slot */
 	pdata->nr_slots = 1;
 	pdata->slots[0].switch_pin = cd_gpio;
-- 
1.7.9.5
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help