[PATCH] clkdev: add debugfs support
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Mon Apr 11 21:32:59 EDT 2011
create a file in /sys/kernel/debug/clkdev
with the list of lookup with the con_id, dev_id and the clock rate
as this
dev_id con_id rate
(null) clk32k 32768 Hz
(null) main 16367660 Hz
(null) plla 199919178 Hz
(null) mck 99959589 Hz
at91_mci.0 mci_clk 99959589 Hz
at91_mci.1 mci_clk 99959589 Hz
atmel_spi.0 spi_clk 99959589 Hz
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
drivers/clk/clkdev.c | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/drivers/clk/clkdev.c b/drivers/clk/clkdev.c
index 0fc0a79..5c3a6fb 100644
--- a/drivers/clk/clkdev.c
+++ b/drivers/clk/clkdev.c
@@ -19,6 +19,8 @@
#include <linux/mutex.h>
#include <linux/clk.h>
#include <linux/clkdev.h>
+#include <linux/debugfs.h>
+#include <linux/seq_file.h>
static LIST_HEAD(clocks);
static DEFINE_MUTEX(clocks_mutex);
@@ -174,3 +176,41 @@ void clkdev_drop(struct clk_lookup *cl)
kfree(cl);
}
EXPORT_SYMBOL(clkdev_drop);
+
+#ifdef CONFIG_DEBUG_FS
+static int clkdev_clk_show(struct seq_file *s, void *unused)
+{
+ struct clk_lookup *p;
+
+ seq_printf(s, "%-20s %-20s rate\n", "dev_id", "con_id");
+
+ list_for_each_entry(p, &clocks, node) {
+
+ seq_printf(s, "%-20s %-20s %9ld Hz\n",
+ p->dev_id, p->con_id, clk_get_rate(p->clk));
+ }
+ return 0;
+}
+
+static int clkdev_clk_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, clkdev_clk_show, NULL);
+}
+
+static const struct file_operations clkdev_clk_operations = {
+ .open = clkdev_clk_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static int __init clkdev_clk_debugfs_init(void)
+{
+ /* /sys/kernel/debug/clkdev */
+ (void) debugfs_create_file("clkdev", S_IFREG | S_IRUGO, NULL, NULL,
+ &clkdev_clk_operations);
+
+ return 0;
+}
+postcore_initcall(clkdev_clk_debugfs_init);
+#endif
--
1.7.4.1
More information about the linux-arm-kernel
mailing list