Skip to content

Commit

Permalink
OMAP3: GPIO: disable GPIO debounce clocks on idle
Browse files Browse the repository at this point in the history
Ensure GPIO debounce clocks are disabled when idle.  Otherwise,
clocks will prevent PER powerdomain from entering retention.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
  • Loading branch information
Kevin Hilman committed May 12, 2010
1 parent 43ffcd9 commit 8865b9b
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arch/arm/plat-omap/gpio.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@ struct gpio_bank {
struct gpio_chip chip;
struct clk *dbck;
u32 mod_usage;
u32 dbck_enable_mask;
};

#define METHOD_MPUIO 0
Expand Down Expand Up @@ -647,6 +648,7 @@ void omap_set_gpio_debounce(int gpio, int enable)
goto done;

if (cpu_is_omap34xx() || cpu_is_omap44xx()) {
bank->dbck_enable_mask = val;
if (enable)
clk_enable(bank->dbck);
else
Expand Down Expand Up @@ -2054,6 +2056,9 @@ void omap2_gpio_prepare_for_idle(int power_state)
struct gpio_bank *bank = &gpio_bank[i];
u32 l1, l2;

if (bank->dbck_enable_mask)
clk_disable(bank->dbck);

if (power_state > PWRDM_POWER_OFF)
continue;

Expand Down Expand Up @@ -2118,6 +2123,9 @@ void omap2_gpio_resume_after_idle(void)
struct gpio_bank *bank = &gpio_bank[i];
u32 l, gen, gen0, gen1;

if (bank->dbck_enable_mask)
clk_enable(bank->dbck);

if (!workaround_enabled)
continue;

Expand Down

0 comments on commit 8865b9b

Please sign in to comment.