| /* 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 */ |