gpio: stm32_gpio: Use clrsetbits_le32() at appropriate places
authorAxel Lin <axel.lin@ingics.com>
Sun, 26 Apr 2015 02:32:36 +0000 (10:32 +0800)
committerTom Rini <trini@konsulko.com>
Fri, 8 May 2015 21:24:17 +0000 (17:24 -0400)
Use clrsetbits_le32() to replace clrbits_le32() + setbits_le32().

Signed-off-by: Axel Lin <axel.lin@ingics.com>
drivers/gpio/stm32_gpio.c

index d3497e96757a70ffd315cbfae5516fc69c0ca3dc..6d6fdb0b0184d389434f0409201171d4f8201755 100644 (file)
@@ -69,22 +69,14 @@ int stm32_gpio_config(const struct stm32_gpio_dsc *dsc,
        setbits_le32(&STM32_RCC->ahb1enr, 1 << dsc->port);
 
        i = (dsc->pin & 0x07) * 4;
-       clrbits_le32(&gpio_regs->afr[dsc->pin >> 3], (0xF << i));
-       setbits_le32(&gpio_regs->afr[dsc->pin >> 3], ctl->af << i);
+       clrsetbits_le32(&gpio_regs->afr[dsc->pin >> 3], 0xF << i, ctl->af << i);
 
        i = dsc->pin * 2;
 
-       clrbits_le32(&gpio_regs->moder, (0x3 << i));
-       setbits_le32(&gpio_regs->moder, ctl->mode << i);
-
-       clrbits_le32(&gpio_regs->otyper, (0x3 << i));
-       setbits_le32(&gpio_regs->otyper, ctl->otype << i);
-
-       clrbits_le32(&gpio_regs->ospeedr, (0x3 << i));
-       setbits_le32(&gpio_regs->ospeedr, ctl->speed << i);
-
-       clrbits_le32(&gpio_regs->pupdr, (0x3 << i));
-       setbits_le32(&gpio_regs->pupdr, ctl->pupd << i);
+       clrsetbits_le32(&gpio_regs->moder, 0x3 << i, ctl->mode << i);
+       clrsetbits_le32(&gpio_regs->otyper, 0x3 << i, ctl->otype << i);
+       clrsetbits_le32(&gpio_regs->ospeedr, 0x3 << i, ctl->speed << i);
+       clrsetbits_le32(&gpio_regs->pupdr, 0x3 << i, ctl->pupd << i);
 
        rv = 0;
 out: