* [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
* [PATCH] clkdev: add debugfs support
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
0 siblings, 1 reply; 3+ messages in thread
From: Uwe Kleine-König @ 2011-04-12 6:55 UTC (permalink / raw)
To: linux-arm-kernel
Hello Jean-Christophe,
On Tue, Apr 12, 2011 at 03:32:59AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> 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));
s/%9ld/%9lu/ ?
According to include/linux/clk.h, the result of clk_get_rate is "only
valid once the clock source has been enabled". So it would be nice to
find out (and tell) if a clock is on or not.
> + }
> + 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);
I'd be a bit more conservative here and would only allow S_IRUSR.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] clkdev: add debugfs support
2011-04-12 6:55 ` Uwe Kleine-König
@ 2011-04-12 10:17 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 3+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2011-04-12 10:17 UTC (permalink / raw)
To: linux-arm-kernel
Hi Uwe,
On 08:55 Tue 12 Apr , Uwe Kleine-K?nig wrote:
> Hello Jean-Christophe,
>
> On Tue, Apr 12, 2011 at 03:32:59AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > 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));
> s/%9ld/%9lu/ ?
yeah
>
> According to include/linux/clk.h, the result of clk_get_rate is "only
> valid once the clock source has been enabled". So it would be nice to
> find out (and tell) if a clock is on or not.
it was my idea also at the begenning as we do on at91 but the current clk api
does not allow it
if we want it we need to update the clk API and implement it
>
> > + }
> > + 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);
> I'd be a bit more conservative here and would only allow S_IRUSR.
ok will take a look
Best Regards,
J.
^ permalink raw reply [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).