| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* |
| * Copyright (c) 2018 MediaTek Inc. |
| * Author: Owen Chen <owen.chen@mediatek.com> |
| */ |
| |
| #ifndef __DRV_CLK_MUX_H |
| #define __DRV_CLK_MUX_H |
| |
| #include <linux/clk-provider.h> |
| |
| struct mtk_clk_mux { |
| struct clk_hw hw; |
| struct regmap *regmap; |
| |
| const char *name; |
| |
| int mux_set_ofs; |
| int mux_clr_ofs; |
| int mux_ofs; |
| int upd_ofs; |
| |
| s8 mux_shift; |
| s8 mux_width; |
| s8 gate_shift; |
| s8 upd_shift; |
| |
| spinlock_t *lock; |
| }; |
| |
| extern const struct clk_ops mtk_mux_upd_ops; |
| extern const struct clk_ops mtk_mux_clr_set_upd_ops; |
| |
| struct clk *mtk_clk_register_mux(const struct mtk_mux *mux, |
| struct regmap *regmap, |
| spinlock_t *lock); |
| |
| #endif /* __DRV_CLK_MUX_H */ |