summaryrefslogtreecommitdiff
path: root/include/dwmmc.h
diff options
context:
space:
mode:
authorHeiko Stuebner <heiko@sntech.de>2018-09-21 10:59:45 +0200
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>2018-10-02 09:35:09 +0200
commit05fa06b9606387ad4a65723d93a83b36a98d600b (patch)
tree47003edf45f9519a4d6026b51f5c45290a33f19a /include/dwmmc.h
parent2ba8bf207481cfb319f54a1bef67f6f068831a58 (diff)
mmc: dw_mmc: check fifo status with a timeout in fifo mode
While trying to enable the dw_mmc on rk3188 I managed to confuse and hang the dw_mmc controller into not delivering further data. The fifo state never became ready and the driver was iterating in the while loop reading 0-byte packets forever. So inspired by how other implementations handle this, check the fifo- state beforhand and add a timeout to catch any glaring fifo issues without hanging uboot altogether. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Diffstat (limited to 'include/dwmmc.h')
-rw-r--r--include/dwmmc.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/dwmmc.h b/include/dwmmc.h
index bc1d6e3abb..0f9d51b557 100644
--- a/include/dwmmc.h
+++ b/include/dwmmc.h
@@ -103,6 +103,8 @@
#define DWMCI_CTYPE_8BIT (1 << 16)
/* Status Register */
+#define DWMCI_FIFO_EMPTY (1 << 2)
+#define DWMCI_FIFO_FULL (1 << 3)
#define DWMCI_BUSY (1 << 9)
#define DWMCI_FIFO_MASK 0x1fff
#define DWMCI_FIFO_SHIFT 17