]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
gpio/omap: restore OE only after setting the output level
authorNishanth Menon <nm@ti.com>
Mon, 29 Aug 2011 13:24:50 +0000 (18:54 +0530)
committerTarun Kanti DebBarma <tarun.kanti@ti.com>
Mon, 6 Feb 2012 11:27:29 +0000 (16:57 +0530)
Setup the dataout register before restoring OE. This is to make
sure that we have valid data in dataout register which would be
made available in output pins as soon as OE is enabled. Else,
there is risk of unknown data getting out into gpio pins.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@ti.com>
Reviewed-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
drivers/gpio/gpio-omap.c

index 41265e823b23a7908782ee002490557352e3a2b6..e0fd2e4b2b9cc83cdbf590ce2a79afacecfc0232 100644 (file)
@@ -1355,7 +1355,6 @@ static void omap_gpio_restore_context(struct gpio_bank *bank)
        __raw_writel(bank->context.wake_en,
                                bank->base + bank->regs->wkup_en);
        __raw_writel(bank->context.ctrl, bank->base + bank->regs->ctrl);
-       __raw_writel(bank->context.oe, bank->base + bank->regs->direction);
        __raw_writel(bank->context.leveldetect0,
                                bank->base + bank->regs->leveldetect0);
        __raw_writel(bank->context.leveldetect1,
@@ -1365,6 +1364,8 @@ static void omap_gpio_restore_context(struct gpio_bank *bank)
        __raw_writel(bank->context.fallingdetect,
                                bank->base + bank->regs->fallingdetect);
        __raw_writel(bank->context.dataout, bank->base + bank->regs->dataout);
+       __raw_writel(bank->context.oe, bank->base + bank->regs->direction);
+
        if (bank->dbck_enable_mask) {
                __raw_writel(bank->context.debounce, bank->base +
                                        bank->regs->debounce);