* David Brownell <david-b@xxxxxxxxxxx> [080416 09:58]: > On Wednesday 16 April 2008, Hiroshi DOYU wrote: > > omap:~# tree -d /sys/kernel/clock/omap_32k_fck/ > > /sys/kernel/clock/omap_32k_fck/ > > |-- gpt10_fck > > |-- gpt11_fck > > |-- gpt1_fck > > |-- per_32k_alwon_fck > > | |-- gpio3_fck > > | |-- gpio4_fck > > | |-- gpio5_fck > > | `-- gpio6_fck > > |-- ts_fck > > `-- wkup_32k_fck > > `-- gpio1_fck > > > > 11 directories > > > > omap:~# tree /sys/kernel/clock/omap_32k_fck/gpt10_fck > > /sys/kernel/clock/omap_32k_fck/gpt10_fck > > |-- flags > > |-- rate > > `-- usecount > > Does this need to be in sysfs? I'd think debugfs would be > more appropriate ... that information isn't needed for normal > operation. > > Appended is a small patch I've been carrying around. This > doesn't move the clocks info from procfs to debugfs, but > that'd be an easy patch. (Probably needs minor updates given > the recent clocktree changes, but it still applies. The > coupling to the device tree is a bit weak, and I'd think > displaying power domains would be useful too.) Yeah, debugfs would be best. And that /proc/clocks entry will disappear once that's available (it's currently only in l-o tree). Tony > - Dave > > ============ CUT HERE > Make /proc/omap_clocks show the clock hierarchy through indentation, > and the ids for devices (like i2c and spi; but oddly not uart, gpt, > mcbsp, or wdt) with multiple instances. > > Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx> > --- > arch/arm/plat-omap/clock.c | 23 ++++++++++++++++++++--- > 1 file changed, 20 insertions(+), 3 deletions(-) > > --- a/arch/arm/plat-omap/clock.c 2007-11-23 18:29:46.000000000 -0800 > +++ b/arch/arm/plat-omap/clock.c 2007-11-23 18:45:44.000000000 -0800 > @@ -465,13 +465,30 @@ static void omap_ck_stop(struct seq_file > { > } > > -int omap_ck_show(struct seq_file *m, void *v) > +/* show clock hierarchy */ > +static void omap_cktree_show(struct seq_file *m, unsigned n, struct clk *p) > { > struct clk *cp; > > - list_for_each_entry(cp, &clocks, node) > - seq_printf(m,"%s %ld %d\n", cp->name, cp->rate, cp->usecount); > + if (p) { > + seq_printf(m, "%*s%-*s %9ld Hz, use %2d", > + n, "", 30 - n, p->name, > + p->rate, p->usecount); > + if (p->id) > + seq_printf(m, " (id %d)", p->id); > + seq_printf(m, "\n"); > + n += 2; > + } > > + list_for_each_entry(cp, &clocks, node) { > + if (cp->parent == p) > + omap_cktree_show(m, n, cp); > + } > +} > + > +static int omap_ck_show(struct seq_file *m, void *v) > +{ > + omap_cktree_show(m, 0, NULL); > return 0; > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-omap" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html