]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
mfd: ab8500-core: Allow the possibility to dump all AB8500 registers
authorMian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com>
Fri, 27 Jan 2012 10:35:41 +0000 (11:35 +0100)
committerLee Jones <lee.jones@linaro.org>
Mon, 4 Feb 2013 08:31:46 +0000 (08:31 +0000)
Implement an API so that a user may dump all AB8500 registers
via debugfs file access.

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/ab8500-core.c
drivers/mfd/ab8500-debugfs.c
include/linux/mfd/abx500/ab8500.h

index e1650badd106da6e3992b219e77fdc35e20ad1c8..d228697f5d9b80c7acb921fed2918251c19cc2a8 100644 (file)
@@ -319,6 +319,7 @@ static struct abx500_ops ab8500_ops = {
        .mask_and_set_register = ab8500_mask_and_set_register,
        .event_registers_startup_state_get = NULL,
        .startup_irq_enabled = NULL,
+       .dump_all_banks = ab8500_dump_all_banks,
 };
 
 static void ab8500_irq_lock(struct irq_data *data)
index cd3cee814fb763bba3cf161e9181cf2597aaa5fc..af6f774e658a303d76f5a81a1fb6dac5c3f705b1 100644 (file)
@@ -581,6 +581,19 @@ static int ab8500_print_all_banks(struct seq_file *s, void *p)
        return 0;
 }
 
+/* Dump registers to kernel log */
+void ab8500_dump_all_banks(struct device *dev)
+{
+       unsigned int i;
+
+       printk(KERN_INFO"ab8500 register values:\n");
+
+       for (i = 1; i < AB8500_NUM_BANKS; i++) {
+               printk(KERN_INFO" bank %u:\n", i);
+               ab8500_registers_print(dev, i, NULL);
+       }
+}
+
 static int ab8500_all_banks_open(struct inode *inode, struct file *file)
 {
        struct seq_file *s;
index 5251bca56326ebe50de20f250dd2da73b3ea6317..dbec7b00ea839a0516ce7a3855f873fa2e3a2410 100644 (file)
@@ -345,4 +345,10 @@ static inline int is_ab8500_2p0(struct ab8500 *ab)
        return (is_ab8500(ab) && (ab->chip_id == AB8500_CUT2P0));
 }
 
+#ifdef CONFIG_AB8500_DEBUG
+void ab8500_dump_all_banks(struct device *dev);
+#else
+static inline void ab8500_dump_all_banks(struct device *dev) {}
+#endif
+
 #endif /* MFD_AB8500_H */