mmc: sdhci: use FIELD_GET/PREP for capabilities bit masks
[linux-2.6-microblaze.git] / drivers / mmc / host / sdhci-of-at91.c
index c79bff5..25f4e0f 100644 (file)
@@ -6,6 +6,7 @@
  *              2015 Ludovic Desroches <ludovic.desroches@atmel.com>
  */
 
+#include <linux/bitfield.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/err.h>
@@ -179,9 +180,9 @@ static int sdhci_at91_set_clks_presets(struct device *dev)
        clk_mul = gck_rate / clk_base_rate - 1;
 
        caps0 &= ~SDHCI_CLOCK_V3_BASE_MASK;
-       caps0 |= (clk_base << SDHCI_CLOCK_BASE_SHIFT) & SDHCI_CLOCK_V3_BASE_MASK;
+       caps0 |= FIELD_PREP(SDHCI_CLOCK_V3_BASE_MASK, clk_base);
        caps1 &= ~SDHCI_CLOCK_MUL_MASK;
-       caps1 |= (clk_mul << SDHCI_CLOCK_MUL_SHIFT) & SDHCI_CLOCK_MUL_MASK;
+       caps1 |= FIELD_PREP(SDHCI_CLOCK_MUL_MASK, clk_mul);
        /* Set capabilities in r/w mode. */
        writel(SDMMC_CACR_KEY | SDMMC_CACR_CAPWREN, host->ioaddr + SDMMC_CACR);
        writel(caps0, host->ioaddr + SDHCI_CAPABILITIES);