linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 08/26] mfd: abx500-core: Provide an API to dump all ABx500 registers
Date: Tue, 15 Jan 2013 12:55:48 +0000	[thread overview]
Message-ID: <1358254566-12419-9-git-send-email-lee.jones@linaro.org> (raw)
In-Reply-To: <1358254566-12419-1-git-send-email-lee.jones@linaro.org>

From: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>

Some drivers can detect subsystem failures e.g. shared memory driver
can detect modem sub system failures. It would be helpful in analyzing
these failures if AB register dump is available at that point. This
patch adds the API for the drivers to dump AB registers in the kernel
log.

Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>
Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
---
 drivers/mfd/abx500-core.c  |   16 ++++++++++++++++
 include/linux/mfd/abx500.h |    2 ++
 2 files changed, 18 insertions(+)

diff --git a/drivers/mfd/abx500-core.c b/drivers/mfd/abx500-core.c
index 7ce65f4..9818afb 100644
--- a/drivers/mfd/abx500-core.c
+++ b/drivers/mfd/abx500-core.c
@@ -153,6 +153,22 @@ int abx500_startup_irq_enabled(struct device *dev, unsigned int irq)
 }
 EXPORT_SYMBOL(abx500_startup_irq_enabled);
 
+void abx500_dump_all_banks(void)
+{
+	struct abx500_ops *ops;
+	struct device dummy_child = {0};
+	struct abx500_device_entry *dev_entry;
+
+	list_for_each_entry(dev_entry, &abx500_list, list) {
+		dummy_child.parent = dev_entry->dev;
+		ops = &dev_entry->ops;
+
+		if ((ops != NULL) && (ops->dump_all_banks != NULL))
+			ops->dump_all_banks(&dummy_child);
+	}
+}
+EXPORT_SYMBOL(abx500_dump_all_banks);
+
 MODULE_AUTHOR("Mattias Wallin <mattias.wallin@stericsson.com>");
 MODULE_DESCRIPTION("ABX500 core driver");
 MODULE_LICENSE("GPL");
diff --git a/include/linux/mfd/abx500.h b/include/linux/mfd/abx500.h
index 5d5298d..2667af4 100644
--- a/include/linux/mfd/abx500.h
+++ b/include/linux/mfd/abx500.h
@@ -326,6 +326,7 @@ int abx500_mask_and_set_register_interruptible(struct device *dev, u8 bank,
 int abx500_get_chip_id(struct device *dev);
 int abx500_event_registers_startup_state_get(struct device *dev, u8 *event);
 int abx500_startup_irq_enabled(struct device *dev, unsigned int irq);
+void abx500_dump_all_banks(void);
 
 struct abx500_ops {
 	int (*get_chip_id) (struct device *);
@@ -336,6 +337,7 @@ struct abx500_ops {
 	int (*mask_and_set_register) (struct device *, u8, u8, u8, u8);
 	int (*event_registers_startup_state_get) (struct device *, u8 *);
 	int (*startup_irq_enabled) (struct device *, unsigned int);
+	void (*dump_all_banks) (struct device *);
 };
 
 int abx500_register_ops(struct device *core_dev, struct abx500_ops *ops);
-- 
1.7.9.5

  parent reply	other threads:[~2013-01-15 12:55 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-15 12:55 [PATCH 00/26] AB8500 MFD overhaul Lee Jones
2013-01-15 12:55 ` [PATCH 01/26] mfd: ab8500-sysctrl: Provide a platform specific pm_power_off() call-back Lee Jones
2013-01-15 12:55 ` [PATCH 02/26] mfd: ab8500-sysctrl: If a charger is present, reboot instead Lee Jones
2013-01-27 23:52   ` Samuel Ortiz
2013-01-28  8:44     ` Lee Jones
2013-01-15 12:55 ` [PATCH 03/26] mfd: ab8500-sysctrl: Only reboot into charging mode if battery type is known Lee Jones
2013-01-15 12:55 ` [PATCH 04/26] mfd: ab8500-sysctrl.c: Provide charging as reset reason Lee Jones
2013-01-15 12:55 ` [PATCH 05/26] mfd: ab8500-gpadc: Change to mdelay for greater resolution Lee Jones
2013-01-27 23:52   ` Samuel Ortiz
2013-01-28  8:43     ` Lee Jones
2013-01-15 12:55 ` [PATCH 06/26] mfd: ab8500-sysctrl: Provide configuration for SysClkReqRfClkBuf registers Lee Jones
2013-01-27 23:52   ` Samuel Ortiz
2013-01-28  8:38     ` Lee Jones
2013-02-03 17:02       ` Samuel Ortiz
2013-01-15 12:55 ` [PATCH 07/26] mfd: ab8500-sysctrl: export read/write symbols Lee Jones
2013-01-15 12:55 ` Lee Jones [this message]
2013-01-15 12:55 ` [PATCH 09/26] mfd: ab8500-debugfs: Provide a means for a user subscribe to IRQs Lee Jones
2013-01-27 23:52   ` Samuel Ortiz
2013-01-28  8:25     ` Lee Jones
2013-01-28 10:22     ` Lee Jones
2013-01-28 10:49       ` Samuel Ortiz
2013-01-28 11:34         ` Lee Jones
2013-02-03 17:01           ` Samuel Ortiz
2013-02-04  9:27             ` Lee Jones
2013-01-15 12:55 ` [PATCH 10/26] mfd: ab8500-debugfs: Wake-up device on debugfs IRQ Lee Jones
2013-01-27 23:53   ` Samuel Ortiz
2013-01-28  8:49     ` Lee Jones
2013-01-15 12:55 ` [PATCH 11/26] mfd: ab8500-debugfs: Keep count of IRQs in debugfs Lee Jones
2013-01-15 12:55 ` [PATCH 12/26] mfd: ab8500-debugfs: Use NULL to initialise remaining NULL pointer Lee Jones
2013-01-15 13:06   ` Mark Brown
2013-01-15 13:49     ` Lee Jones
2013-01-15 12:55 ` [PATCH 13/26] mfd: ab8500-debugfs: Formated access AB8500 registers from debugfs entry Lee Jones
2013-01-27 23:53   ` Samuel Ortiz
2013-01-28  8:47     ` Lee Jones
2013-01-15 12:55 ` [PATCH 14/26] mfd: ab8500-debugfs: Fix introduced compiler time warnings Lee Jones
2013-01-27 23:53   ` Samuel Ortiz
2013-01-28  8:45     ` Lee Jones
2013-01-15 12:55 ` [PATCH 15/26] mfd: ab8500-debugfs: Export all AB8500 ADCs as debugfs nodes Lee Jones
2013-01-15 12:55 ` [PATCH 16/26] mfd: ab8500-debugfs: Set the USB charging current to 300mA for ABV3 Lee Jones
2013-01-15 12:55 ` [PATCH 17/26] mfd: ab8500-debugfs: add debugfs node to read all registers Lee Jones
2013-01-15 12:55 ` [PATCH 18/26] mfd: ab8500-core: Allow the possibility to dump all AB8500 registers Lee Jones
2013-01-15 12:55 ` [PATCH 19/26] mfd: ab8500-debugfs: Allow number of IRQs to be provided more dynamically Lee Jones
2013-01-15 12:56 ` [PATCH 20/26] mfd ab8500-gpadc: Introduce new AB version detection Lee Jones
2013-01-15 12:56 ` [PATCH 21/26] mfd: ab8500-debugfs: Add interrupt debug Lee Jones
2013-01-15 12:56 ` [PATCH 22/26] mfd: ab8500-gpadc: Add runtime pm support Lee Jones
2013-01-15 12:56 ` [PATCH 23/26] mfd: ab8500-pwm: Enable support for AB8505 PWMLED blink Lee Jones
2013-01-27 23:53   ` Samuel Ortiz
2013-01-28  8:13     ` Lee Jones
2013-01-15 12:56 ` [PATCH 24/26] mfd: ab8500-debugfs: sizeof() mismatch bugfix Lee Jones
2013-01-15 12:56 ` [PATCH 25/26] mfd: ab8500-gpadc: Reduce conversion timeout Lee Jones
2013-01-27 23:53   ` Samuel Ortiz
2013-01-28  8:45     ` Lee Jones
2013-01-15 12:56 ` [PATCH 26/26] mfd: ab8500-gpadc: Use new ab8500_gpadc_get() with name parameter Lee Jones
2013-01-27 23:54   ` Samuel Ortiz
2013-01-28  8:11     ` Lee Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1358254566-12419-9-git-send-email-lee.jones@linaro.org \
    --to=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).