/*
  * Copyright 2016 Broadcom
  */
+#include <linux/align.h>
 #include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/device.h>
 #include <linux/of_mdio.h>
 #include <linux/phy.h>
 #include <linux/platform_device.h>
+#include <linux/sizes.h>
 
 #define MDIO_RATE_ADJ_EXT_OFFSET       0x000
 #define MDIO_RATE_ADJ_INT_OFFSET       0x004
        md->base = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
        if (IS_ERR(md->base))
                return PTR_ERR(md->base);
-       if (res->start & 0xfff) {
+       if (!IS_ALIGNED(res->start, SZ_4K)) {
                /* For backward compatibility in case the
                 * base address is specified with an offset.
                 */
                dev_info(&pdev->dev, "fix base address in dt-blob\n");
-               res->start &= ~0xfff;
+               res->start = ALIGN_DOWN(res->start, SZ_4K);
                res->end = res->start + MDIO_REG_ADDR_SPACE_SIZE - 1;
        }