phy: mediatek: add helpers to update bits of registers
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Sat, 18 Dec 2021 08:28:00 +0000 (16:28 +0800)
committerVinod Koul <vkoul@kernel.org>
Fri, 24 Dec 2021 04:36:37 +0000 (10:06 +0530)
Add three helpers mtk_phy_clear/set/update_bits() for registers operation

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/20211218082802.5256-3-chunfeng.yun@mediatek.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/mediatek/phy-mtk-io.h [new file with mode: 0644]

diff --git a/drivers/phy/mediatek/phy-mtk-io.h b/drivers/phy/mediatek/phy-mtk-io.h
new file mode 100644 (file)
index 0000000..500fcda
--- /dev/null
@@ -0,0 +1,38 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2021 MediaTek Inc.
+ *
+ * Author: Chunfeng Yun <chunfeng.yun@mediatek.com>
+ */
+
+#ifndef __PHY_MTK_H__
+#define __PHY_MTK_H__
+
+#include <linux/io.h>
+
+static inline void mtk_phy_clear_bits(void __iomem *reg, u32 bits)
+{
+       u32 tmp = readl(reg);
+
+       tmp &= ~bits;
+       writel(tmp, reg);
+}
+
+static inline void mtk_phy_set_bits(void __iomem *reg, u32 bits)
+{
+       u32 tmp = readl(reg);
+
+       tmp |= bits;
+       writel(tmp, reg);
+}
+
+static inline void mtk_phy_update_bits(void __iomem *reg, u32 mask, u32 val)
+{
+       u32 tmp = readl(reg);
+
+       tmp &= ~mask;
+       tmp |= val & mask;
+       writel(tmp, reg);
+}
+
+#endif