linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] clkdev: add debugfs support
@ 2011-04-12  1:32 Jean-Christophe PLAGNIOL-VILLARD
  2011-04-12  6:55 ` Uwe Kleine-König
  0 siblings, 1 reply; 3+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2011-04-12  1:32 UTC (permalink / raw)
  To: linux-arm-kernel

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@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

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-04-12 10:17 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-12  1:32 [PATCH] clkdev: add debugfs support Jean-Christophe PLAGNIOL-VILLARD
2011-04-12  6:55 ` Uwe Kleine-König
2011-04-12 10:17   ` Jean-Christophe PLAGNIOL-VILLARD

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).