diff options
author | Kevin Hilman <khilman@ti.com> | 2011-04-22 14:37:16 -0700 |
---|---|---|
committer | Nishanth Menon <nm@ti.com> | 2011-07-14 11:53:23 -0700 |
commit | 34f748f543d257a1c9c9e47859f1676317241f2e (patch) | |
tree | e08fb74da76798d3ee06726432555505df3f70b0 /drivers/gpio/gpio-omap.c | |
parent | d5033b38ab02efabee030626c04e676a883d7ee5 (diff) | |
download | kernel_samsung_tuna-34f748f543d257a1c9c9e47859f1676317241f2e.zip kernel_samsung_tuna-34f748f543d257a1c9c9e47859f1676317241f2e.tar.gz kernel_samsung_tuna-34f748f543d257a1c9c9e47859f1676317241f2e.tar.bz2 |
GPIO: OMAP: cleanup show revision, remove cpu_is checks, display only once
Remove cpu_is_* checks from gpio_show_revision() by passing in the
revision address offset from platform data. SoCs with no revision
register (15xx, 7xx, and all MPUIOs) use -1 (actually, USHRT_MAX) to
signify no register.
While here, all GPIO banks are assumed to be the same revision, so fix
show_revision() to only show the revision for the first bank it finds.
This removes duplicate GPIO revision prints during boot.
Thanks to Charulatha V <charu@ti.com> for finding/fixing a few -1s
that were missed in the original patch.
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'drivers/gpio/gpio-omap.c')
-rw-r--r-- | drivers/gpio/gpio-omap.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c index e043b95..d52fb59 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c @@ -987,19 +987,17 @@ static int gpio_2irq(struct gpio_chip *chip, unsigned offset) static void __init omap_gpio_show_rev(struct gpio_bank *bank) { + static bool called; u32 rev; - if (cpu_is_omap16xx() && !(bank->method != METHOD_MPUIO)) - rev = __raw_readw(bank->base + OMAP1610_GPIO_REVISION); - else if (cpu_is_omap24xx() || cpu_is_omap34xx()) - rev = __raw_readl(bank->base + OMAP24XX_GPIO_REVISION); - else if (cpu_is_omap44xx()) - rev = __raw_readl(bank->base + OMAP4_GPIO_REVISION); - else + if (called || bank->regs->revision == USHRT_MAX) return; - printk(KERN_INFO "OMAP GPIO hardware version %d.%d\n", + rev = __raw_readw(bank->base + bank->regs->revision); + pr_info("OMAP GPIO hardware version %d.%d\n", (rev >> 4) & 0x0f, rev & 0x0f); + + called = true; } /* This lock class tells lockdep that GPIO irqs are in a different |