diff options
Diffstat (limited to 'drivers/gpio')
-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 f212d236f908..501ca3d6a49e 100644 --- a/drivers/gpio/gpio-omap.c +++ b/drivers/gpio/gpio-omap.c | |||
@@ -984,19 +984,17 @@ static int gpio_2irq(struct gpio_chip *chip, unsigned offset) | |||
984 | 984 | ||
985 | static void __init omap_gpio_show_rev(struct gpio_bank *bank) | 985 | static void __init omap_gpio_show_rev(struct gpio_bank *bank) |
986 | { | 986 | { |
987 | static bool called; | ||
987 | u32 rev; | 988 | u32 rev; |
988 | 989 | ||
989 | if (cpu_is_omap16xx() && !(bank->method != METHOD_MPUIO)) | 990 | if (called || bank->regs->revision == USHRT_MAX) |
990 | rev = __raw_readw(bank->base + OMAP1610_GPIO_REVISION); | ||
991 | else if (cpu_is_omap24xx() || cpu_is_omap34xx()) | ||
992 | rev = __raw_readl(bank->base + OMAP24XX_GPIO_REVISION); | ||
993 | else if (cpu_is_omap44xx()) | ||
994 | rev = __raw_readl(bank->base + OMAP4_GPIO_REVISION); | ||
995 | else | ||
996 | return; | 991 | return; |
997 | 992 | ||
998 | printk(KERN_INFO "OMAP GPIO hardware version %d.%d\n", | 993 | rev = __raw_readw(bank->base + bank->regs->revision); |
994 | pr_info("OMAP GPIO hardware version %d.%d\n", | ||
999 | (rev >> 4) & 0x0f, rev & 0x0f); | 995 | (rev >> 4) & 0x0f, rev & 0x0f); |
996 | |||
997 | called = true; | ||
1000 | } | 998 | } |
1001 | 999 | ||
1002 | /* This lock class tells lockdep that GPIO irqs are in a different | 1000 | /* This lock class tells lockdep that GPIO irqs are in a different |