| /* SPDX-License-Identifier: GPL-2.0 */ |
| * Copyright (C) 2021 MediaTek Inc. |
| * Author: Chunfeng Yun <chunfeng.yun@mediatek.com> |
| #include <linux/bitfield.h> |
| static inline void mtk_phy_clear_bits(void __iomem *reg, u32 bits) |
| static inline void mtk_phy_set_bits(void __iomem *reg, u32 bits) |
| static inline void mtk_phy_update_bits(void __iomem *reg, u32 mask, u32 val) |
| /* field @mask shall be constant and continuous */ |
| #define mtk_phy_update_field(reg, mask, val) \ |
| BUILD_BUG_ON_MSG(!__builtin_constant_p(mask), "mask is not constant"); \ |
| mtk_phy_update_bits(reg, mask, FIELD_PREP(mask, val)); \ |