summaryrefslogtreecommitdiff
path: root/drivers/mfd
diff options
context:
space:
mode:
authorJonas Aaberg <jonas.aberg@stericsson.com>2011-12-14 10:19:59 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 10:59:31 +0200
commit34ce3c349c77e721d1ac0de047eaa4d61682cce0 (patch)
tree3827a2fb1d5e39f7eae90ae020ee20e0c47eb69e /drivers/mfd
parentde732c95ae819baa0d1bb90c659e70150b7c1d56 (diff)
ARM: ux500: prcmu-debug: display interrupt types
Adds a debugfs entry named prcmu/interrupts that displays the different kinds of prcmu interrupts. It shows a summary of how many calls to the different mailboxes and for mailbox0 the different events. ST-Ericsson Linux next: - ST-Ericsson ID: 370799 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I049e85c23a8344bf317043f3a532ce764d5e3b39 Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/42475
Diffstat (limited to 'drivers/mfd')
-rw-r--r--drivers/mfd/db5500-prcmu.c5
-rw-r--r--drivers/mfd/db8500-prcmu.c8
2 files changed, 13 insertions, 0 deletions
diff --git a/drivers/mfd/db5500-prcmu.c b/drivers/mfd/db5500-prcmu.c
index feb1ad1a328..b106632d03c 100644
--- a/drivers/mfd/db5500-prcmu.c
+++ b/drivers/mfd/db5500-prcmu.c
@@ -1929,6 +1929,10 @@ static bool read_mailbox_0(void)
else
ev = readl(PRCM_ACK_MB0_WAKEUP_0_DBB);
+ prcmu_debug_register_mbox0_event(ev,
+ (mb0_transfer.req.dbb_irqs |
+ mb0_transfer.req.dbb_wakeups));
+
ev &= mb0_transfer.req.dbb_irqs;
for (n = 0; n < NUM_DB5500_PRCMU_WAKEUPS; n++) {
@@ -2124,6 +2128,7 @@ static irqreturn_t prcmu_irq_handler(int irq, void *data)
bits -= MBOX_BIT(n);
if (read_mailbox[n]())
r = IRQ_WAKE_THREAD;
+ prcmu_debug_register_interrupt(n);
}
}
return r;
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c
index 3435126de97..48eaa0763a0 100644
--- a/drivers/mfd/db8500-prcmu.c
+++ b/drivers/mfd/db8500-prcmu.c
@@ -2436,6 +2436,13 @@ static bool read_mailbox_0(void)
if (ev & WAKEUP_BIT_SYSCLK_OK)
complete(&mb3_transfer.sysclk_work);
+ prcmu_debug_register_mbox0_event(ev,
+ (mb0_transfer.req.dbb_irqs |
+ mb0_transfer.req.dbb_wakeups |
+ WAKEUP_BIT_AC_WAKE_ACK |
+ WAKEUP_BIT_AC_SLEEP_ACK |
+ WAKEUP_BIT_SYSCLK_OK));
+
ev &= mb0_transfer.req.dbb_irqs;
for (n = 0; n < NUM_PRCMU_WAKEUPS; n++) {
@@ -2560,6 +2567,7 @@ static irqreturn_t prcmu_irq_handler(int irq, void *data)
bits -= MBOX_BIT(n);
if (read_mailbox[n]())
r = IRQ_WAKE_THREAD;
+ prcmu_debug_register_interrupt(n);
}
}
return r;