From: Kevin Hilman <khilman@ti.com>
To: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: charu@ti.com
Subject: [PATCH 15/15] OMAP: GPIO: cleanup show revision, remove cpu_is checks, display only once
Date: Fri, 22 Apr 2011 16:02:07 -0700 [thread overview]
Message-ID: <1303513327-14532-16-git-send-email-khilman@ti.com> (raw)
In-Reply-To: <1303513327-14532-1-git-send-email-khilman@ti.com>
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 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.
Signed-off-by: Kevin Hilman <khilman@ti.com>
---
arch/arm/mach-omap1/gpio15xx.c | 2 ++
arch/arm/mach-omap1/gpio16xx.c | 2 ++
arch/arm/mach-omap1/gpio7xx.c | 2 ++
arch/arm/mach-omap2/gpio.c | 2 ++
arch/arm/plat-omap/gpio.c | 14 ++++++--------
arch/arm/plat-omap/include/plat/gpio.h | 1 +
6 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-omap1/gpio15xx.c b/arch/arm/mach-omap1/gpio15xx.c
index 9175624..6f77c36 100644
--- a/arch/arm/mach-omap1/gpio15xx.c
+++ b/arch/arm/mach-omap1/gpio15xx.c
@@ -35,6 +35,7 @@ static struct __initdata resource omap15xx_mpu_gpio_resources[] = {
};
static struct omap_gpio_reg_offs omap15xx_mpuio_regs = {
+ .revision = -1,
.direction = OMAP_MPUIO_IO_CNTL,
.datain = OMAP_MPUIO_INPUT_LATCH,
.dataout = OMAP_MPUIO_OUTPUT,
@@ -75,6 +76,7 @@ static struct __initdata resource omap15xx_gpio_resources[] = {
};
static struct omap_gpio_reg_offs omap15xx_gpio_regs = {
+ .revision = -1,
.direction = OMAP1510_GPIO_DIR_CONTROL,
.datain = OMAP1510_GPIO_DATA_INPUT,
.dataout = OMAP1510_GPIO_DATA_OUTPUT,
diff --git a/arch/arm/mach-omap1/gpio16xx.c b/arch/arm/mach-omap1/gpio16xx.c
index a6d4a71..6cbfc70 100644
--- a/arch/arm/mach-omap1/gpio16xx.c
+++ b/arch/arm/mach-omap1/gpio16xx.c
@@ -38,6 +38,7 @@ static struct __initdata resource omap16xx_mpu_gpio_resources[] = {
};
static struct omap_gpio_reg_offs omap16xx_mpuio_regs = {
+ .revision = -1,
.direction = OMAP_MPUIO_IO_CNTL,
.datain = OMAP_MPUIO_INPUT_LATCH,
.dataout = OMAP_MPUIO_OUTPUT,
@@ -78,6 +79,7 @@ static struct __initdata resource omap16xx_gpio1_resources[] = {
};
static struct omap_gpio_reg_offs omap16xx_gpio_regs = {
+ .revision = OMAP1610_GPIO_REVISION,
.direction = OMAP1610_GPIO_DIRECTION,
.set_dataout = OMAP1610_GPIO_SET_DATAOUT,
.clr_dataout = OMAP1610_GPIO_CLEAR_DATAOUT,
diff --git a/arch/arm/mach-omap1/gpio7xx.c b/arch/arm/mach-omap1/gpio7xx.c
index 880f3cb..293a22e 100644
--- a/arch/arm/mach-omap1/gpio7xx.c
+++ b/arch/arm/mach-omap1/gpio7xx.c
@@ -40,6 +40,7 @@ static struct __initdata resource omap7xx_mpu_gpio_resources[] = {
};
static struct omap_gpio_reg_offs omap7xx_mpuio_regs = {
+ .revision = -1,
.direction = OMAP_MPUIO_IO_CNTL / 2,
.datain = OMAP_MPUIO_INPUT_LATCH / 2,
.dataout = OMAP_MPUIO_OUTPUT / 2,
@@ -80,6 +81,7 @@ static struct __initdata resource omap7xx_gpio1_resources[] = {
};
static struct omap_gpio_reg_offs omap7xx_gpio_regs = {
+ .revision = -1,
.direction = OMAP7XX_GPIO_DIR_CONTROL,
.datain = OMAP7XX_GPIO_DATA_INPUT,
.dataout = OMAP7XX_GPIO_DATA_OUTPUT,
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c
index 316d930..9a46d77 100644
--- a/arch/arm/mach-omap2/gpio.c
+++ b/arch/arm/mach-omap2/gpio.c
@@ -71,6 +71,7 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
case 0:
case 1:
pdata->bank_type = METHOD_GPIO_24XX;
+ pdata->regs->revision = OMAP24XX_GPIO_REVISION;
pdata->regs->direction = OMAP24XX_GPIO_OE;
pdata->regs->datain = OMAP24XX_GPIO_DATAIN;
pdata->regs->dataout = OMAP24XX_GPIO_DATAOUT;
@@ -86,6 +87,7 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
break;
case 2:
pdata->bank_type = METHOD_GPIO_44XX;
+ pdata->regs->revision = OMAP4_GPIO_REVISION;
pdata->regs->direction = OMAP4_GPIO_OE;
pdata->regs->datain = OMAP4_GPIO_DATAIN;
pdata->regs->dataout = OMAP4_GPIO_DATAOUT;
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 17f29cc..f88616e 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -985,19 +985,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 == -1)
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
diff --git a/arch/arm/plat-omap/include/plat/gpio.h b/arch/arm/plat-omap/include/plat/gpio.h
index 7a3f067..91e8de3 100644
--- a/arch/arm/plat-omap/include/plat/gpio.h
+++ b/arch/arm/plat-omap/include/plat/gpio.h
@@ -175,6 +175,7 @@ struct omap_gpio_dev_attr {
};
struct omap_gpio_reg_offs {
+ u16 revision;
u16 direction;
u16 datain;
u16 dataout;
--
1.7.4
next prev parent reply other threads:[~2011-04-22 23:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-22 23:01 [PATCH 00/15] OMAP: GPIO: clean up: pass register offsets via pdata Kevin Hilman
2011-04-22 23:01 ` [PATCH 01/15] OMAP: GPIO: _clear_gpio_irqbank: fix flushing of posted write Kevin Hilman
2011-04-22 23:01 ` [PATCH 02/15] OMAP: GPIO: remove MPUIO handling from _clear_gpio_irqbank() Kevin Hilman
2011-04-25 13:48 ` Varadarajan, Charulatha
2011-05-03 16:27 ` Kevin Hilman
2011-04-22 23:01 ` [PATCH 03/15] OMAP: GPIO: move bank width into struct gpio_bank Kevin Hilman
2011-04-22 23:01 ` [PATCH 04/15] OMAP: GPIO: _get_gpio_irqbank_mask: replace hard-coded mask with bank->width Kevin Hilman
2011-04-22 23:01 ` [PATCH 05/15] OMAP: GPIO: replace get_gpio_index() by using bank width Kevin Hilman
2011-04-22 23:01 ` [PATCH 06/15] OMAP: GPIO: remove get_gpio_bank() Kevin Hilman
2011-04-22 23:01 ` [PATCH 07/15] OMAP: GPIO: move register offset defines into gpio.h Kevin Hilman
2011-04-22 23:02 ` [PATCH 08/15] OMAP: GPIO: consolidate direction, input, output, remove #ifdefs Kevin Hilman
2011-04-22 23:02 ` [PATCH 09/15] OMAP: GPIO: consolidate IRQ status handling, " Kevin Hilman
2011-04-26 12:43 ` Varadarajan, Charulatha
2011-04-22 23:02 ` [PATCH 10/15] OMAP: GPIO: conslidate enable/disable of GPIO IRQs, remove ifdefs Kevin Hilman
2011-04-26 12:33 ` Varadarajan, Charulatha
2011-04-22 23:02 ` [PATCH 11/15] OMAP: GPIO: convert MPUIO IRQ over to generic irq_chip Kevin Hilman
2011-04-26 12:02 ` Varadarajan, Charulatha
2011-04-22 23:02 ` [PATCH 12/15] OMAP: GPIO: remove useless gpio_valid() & check_gpio() checks Kevin Hilman
2011-04-22 23:02 ` [PATCH 13/15] OMAP: GPIO: cleanup _set_gpio_wakeup(), remove ifdefs Kevin Hilman
2011-04-26 14:44 ` Varadarajan, Charulatha
2011-05-03 16:35 ` Kevin Hilman
2011-04-22 23:02 ` [PATCH 14/15] OMAP: GPIO: debounce remove SoC specific registers, use pdata Kevin Hilman
2011-04-22 23:02 ` Kevin Hilman [this message]
2011-04-26 11:48 ` [PATCH 15/15] OMAP: GPIO: cleanup show revision, remove cpu_is checks, display only once Varadarajan, Charulatha
2011-05-03 16:38 ` Kevin Hilman
2011-05-03 23:59 ` Kevin Hilman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1303513327-14532-16-git-send-email-khilman@ti.com \
--to=khilman@ti.com \
--cc=charu@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox