]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
gpio/omap: make non-wakeup GPIO part of pdata
authorCharulatha V <charu@ti.com>
Thu, 5 May 2011 11:34:12 +0000 (17:04 +0530)
committerTarun Kanti DebBarma <tarun.kanti@ti.com>
Mon, 6 Feb 2012 08:43:41 +0000 (14:13 +0530)
Non-wakeup GPIOs are available only in OMAP2. Avoid cpu_is checks by making
non_wakeup_gpios as part of pdata.

Signed-off-by: Charulatha V <charu@ti.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-omap2/gpio.c
arch/arm/plat-omap/include/plat/gpio.h
drivers/gpio/gpio-omap.c

index f84db8ff207f21f20635fcdba5d7dddc2ee855d6..1d60fffccb32cd59b37f7b71e6229b9645c4ef00 100644 (file)
@@ -65,6 +65,14 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)
 
        switch (oh->class->rev) {
        case 0:
+               if (id == 1)
+                       /* non-wakeup GPIO pins for OMAP2 Bank1 */
+                       pdata->non_wakeup_gpios = 0xe203ffc0;
+               else if (id == 2)
+                       /* non-wakeup GPIO pins for OMAP2 Bank2 */
+                       pdata->non_wakeup_gpios = 0x08700040;
+               /* fall through */
+
        case 1:
                pdata->bank_type = METHOD_GPIO_24XX;
                pdata->regs->revision = OMAP24XX_GPIO_REVISION;
index c1ddc5a3de2a9c79062784ca7c73794bcf2e1999..49ec751f630ed779c3037938a98301fb6aa809bb 100644 (file)
@@ -199,6 +199,7 @@ struct omap_gpio_platform_data {
        int bank_stride;        /* Only needed for omap1 MPUIO */
        bool dbck_flag;         /* dbck required or not - True for OMAP3&4 */
        bool loses_context;     /* whether the bank would ever lose context */
+       u32 non_wakeup_gpios;
 
        struct omap_gpio_reg_offs *regs;
 
index a1a3b9dca178ecea49081259d91fca4bf1092b8f..2eed159d964e67b2bfd2285f66bf20e3e28bbee8 100644 (file)
@@ -1021,13 +1021,6 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
 
                        /* Initialize interface clk ungated, module enabled */
                        __raw_writel(0, bank->base + OMAP24XX_GPIO_CTRL);
-               } else if (cpu_is_omap24xx()) {
-                       static const u32 non_wakeup_gpios[] = {
-                               0xe203ffc0, 0x08700040
-                       };
-                       if (bank->id < ARRAY_SIZE(non_wakeup_gpios))
-                               bank->non_wakeup_gpios =
-                                               non_wakeup_gpios[bank->id];
                }
        } else if (cpu_class_is_omap1()) {
                if (bank_is_mpuio(bank)) {
@@ -1180,6 +1173,7 @@ static int __devinit omap_gpio_probe(struct platform_device *pdev)
        bank->dbck_flag = pdata->dbck_flag;
        bank->stride = pdata->bank_stride;
        bank->width = pdata->bank_width;
+       bank->non_wakeup_gpios = pdata->non_wakeup_gpios;
        bank->loses_context = pdata->loses_context;
        bank->get_context_loss_count = pdata->get_context_loss_count;
        bank->regs = pdata->regs;