MIPS: ath79: simplify ath79_gpio_function_* routines
authorGabor Juhos <juhosg@openwrt.org>
Tue, 29 Jan 2013 08:19:13 +0000 (08:19 +0000)
committerJohn Crispin <blogic@openwrt.org>
Sun, 17 Feb 2013 00:25:27 +0000 (01:25 +0100)
Make ath79_gpio_function_{en,dis}able to be wrappers
around ath79_gpio_function_setup.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4871/
Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/ath79/gpio.c

index 662a10ecd8e7fc3c418150b5f5db7d6d1805ca51..b7ed207e94a1e7e625af44b5c2de595e2b53fd10 100644 (file)
@@ -154,46 +154,28 @@ static void __iomem *ath79_gpio_get_function_reg(void)
        return ath79_gpio_base + reg;
 }
 
-void ath79_gpio_function_enable(u32 mask)
+void ath79_gpio_function_setup(u32 set, u32 clear)
 {
        void __iomem *reg = ath79_gpio_get_function_reg();
        unsigned long flags;
 
        spin_lock_irqsave(&ath79_gpio_lock, flags);
 
-       __raw_writel(__raw_readl(reg) | mask, reg);
+       __raw_writel((__raw_readl(reg) & ~clear) | set, reg);
        /* flush write */
        __raw_readl(reg);
 
        spin_unlock_irqrestore(&ath79_gpio_lock, flags);
 }
 
-void ath79_gpio_function_disable(u32 mask)
+void ath79_gpio_function_enable(u32 mask)
 {
-       void __iomem *reg = ath79_gpio_get_function_reg();
-       unsigned long flags;
-
-       spin_lock_irqsave(&ath79_gpio_lock, flags);
-
-       __raw_writel(__raw_readl(reg) & ~mask, reg);
-       /* flush write */
-       __raw_readl(reg);
-
-       spin_unlock_irqrestore(&ath79_gpio_lock, flags);
+       ath79_gpio_function_setup(mask, 0);
 }
 
-void ath79_gpio_function_setup(u32 set, u32 clear)
+void ath79_gpio_function_disable(u32 mask)
 {
-       void __iomem *reg = ath79_gpio_get_function_reg();
-       unsigned long flags;
-
-       spin_lock_irqsave(&ath79_gpio_lock, flags);
-
-       __raw_writel((__raw_readl(reg) & ~clear) | set, reg);
-       /* flush write */
-       __raw_readl(reg);
-
-       spin_unlock_irqrestore(&ath79_gpio_lock, flags);
+       ath79_gpio_function_setup(0, mask);
 }
 
 void __init ath79_gpio_init(void)