Thread (6 messages) 6 messages, 4 authors, 2010-06-22
STALE5874d

[PATCH V2] GPIO PL061: Adding Clk framework support

From: Linus Walleij <hidden>
Date: 2010-06-21 17:34:59

2010/6/21 Rabin Vincent [off-list ref]:
On Mon, Jun 21, 2010 at 12:27:43PM +0530, Viresh KUMAR wrote:
quoted
GPIO Clk is never enabled on Platforms, like: SPEAr, which are based upon clock
framework and use PL061 driver. This patch adds support for Clk enabling and
disabling as and when gpios are requested and freed.
[...]
quoted
+ ? ? chip->clk = clk_get(&dev->dev, NULL);
+ ? ? if (IS_ERR(chip->clk)) {
+ ? ? ? ? ? ? ret = PTR_ERR(chip->clk);
+ ? ? ? ? ? ? goto iounmap;
+ ? ? }
Have you verified that all platforms using this driver already have
clocks with the appropriate names? ? Otherwise this patch will break
those platforms.
The ARM Versatiles and RealViews are always clocked I think,
so clock support should be optional.

When I added a clock lookup to the PL08x block recently I used
a construct like this for an optional clock:

chip->clk = clk_get(&dev->dev, NULL);
if (IS_ERR(chip->clk)) {
       ret = PTR_ERR(chip->clk);
       if (ret == -ENOENT)
          /* No block clock in this platform */
          chip->clk = NULL;
       else
          goto iounmap;
}

This will work whenever clkdevice is used, since that
returns -ENOENT for nonexisting entries.

Then:

if (chip->clk)
  clk_enable(chip->clk);

etc

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help