aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
diff options
context:
space:
mode:
authorAndreas Fenkart <afenkart@gmail.com>2014-05-29 04:28:01 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2014-07-09 05:26:04 -0400
commitbb0635f0b4d2bad44d315344527cfa2cd91f0f4f (patch)
tree68a049d7b5ea3214a67ba106101a356b58dbd447 /drivers/mmc
parent2cd3a2a54656f9c480b1c7272fc07635d575841b (diff)
mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state
Add SDIO IRQ entries to debugfs entry. Note that PSTATE shows current state of data lines, incl. SDIO IRQ pending Signed-off-by: Andreas Fenkart <afenkart@gmail.com> Acked-by: Balaji T K <balajitk@ti.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/omap_hsmmc.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 9446010a5dd9..ad3a2acd3664 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -56,6 +56,7 @@
56#define OMAP_HSMMC_RSP54 0x0118 56#define OMAP_HSMMC_RSP54 0x0118
57#define OMAP_HSMMC_RSP76 0x011C 57#define OMAP_HSMMC_RSP76 0x011C
58#define OMAP_HSMMC_DATA 0x0120 58#define OMAP_HSMMC_DATA 0x0120
59#define OMAP_HSMMC_PSTATE 0x0124
59#define OMAP_HSMMC_HCTL 0x0128 60#define OMAP_HSMMC_HCTL 0x0128
60#define OMAP_HSMMC_SYSCTL 0x012C 61#define OMAP_HSMMC_SYSCTL 0x012C
61#define OMAP_HSMMC_STAT 0x0130 62#define OMAP_HSMMC_STAT 0x0130
@@ -1815,13 +1816,23 @@ static int omap_hsmmc_regs_show(struct seq_file *s, void *data)
1815 struct mmc_host *mmc = s->private; 1816 struct mmc_host *mmc = s->private;
1816 struct omap_hsmmc_host *host = mmc_priv(mmc); 1817 struct omap_hsmmc_host *host = mmc_priv(mmc);
1817 1818
1818 seq_printf(s, "mmc%d:\n ctx_loss:\t%d\n\nregs:\n", 1819 seq_printf(s, "mmc%d:\n", mmc->index);
1819 mmc->index, host->context_loss); 1820 seq_printf(s, "sdio irq mode\t%s\n",
1821 (mmc->caps & MMC_CAP_SDIO_IRQ) ? "interrupt" : "polling");
1820 1822
1821 pm_runtime_get_sync(host->dev); 1823 if (mmc->caps & MMC_CAP_SDIO_IRQ) {
1824 seq_printf(s, "sdio irq \t%s\n",
1825 (host->flags & HSMMC_SDIO_IRQ_ENABLED) ? "enabled"
1826 : "disabled");
1827 }
1828 seq_printf(s, "ctx_loss:\t%d\n", host->context_loss);
1822 1829
1830 pm_runtime_get_sync(host->dev);
1831 seq_puts(s, "\nregs:\n");
1823 seq_printf(s, "CON:\t\t0x%08x\n", 1832 seq_printf(s, "CON:\t\t0x%08x\n",
1824 OMAP_HSMMC_READ(host->base, CON)); 1833 OMAP_HSMMC_READ(host->base, CON));
1834 seq_printf(s, "PSTATE:\t\t0x%08x\n",
1835 OMAP_HSMMC_READ(host->base, PSTATE));
1825 seq_printf(s, "HCTL:\t\t0x%08x\n", 1836 seq_printf(s, "HCTL:\t\t0x%08x\n",
1826 OMAP_HSMMC_READ(host->base, HCTL)); 1837 OMAP_HSMMC_READ(host->base, HCTL));
1827 seq_printf(s, "SYSCTL:\t\t0x%08x\n", 1838 seq_printf(s, "SYSCTL:\t\t0x%08x\n",