1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #ifndef __QCOM_CLK_HFPLL_H__ 4 #define __QCOM_CLK_HFPLL_H__ 5 6 #include <linux/clk-provider.h> 7 #include <linux/spinlock.h> 8 #include "clk-regmap.h" 9 10 struct hfpll_data { 11 u32 mode_reg; 12 u32 l_reg; 13 u32 m_reg; 14 u32 n_reg; 15 u32 user_reg; 16 u32 droop_reg; 17 u32 config_reg; 18 u32 status_reg; 19 u8 lock_bit; 20 21 u32 l_val; 22 u32 droop_val; 23 u32 config_val; 24 u32 user_val; 25 u32 user_vco_mask; 26 unsigned long low_vco_max_rate; 27 28 unsigned long min_rate; 29 unsigned long max_rate; 30 }; 31 32 struct clk_hfpll { 33 struct hfpll_data const *d; 34 int init_done; 35 36 struct clk_regmap clkr; 37 spinlock_t lock; 38 }; 39 40 #define to_clk_hfpll(_hw) \ 41 container_of(to_clk_regmap(_hw), struct clk_hfpll, clkr) 42 43 extern const struct clk_ops clk_ops_hfpll; 44 45 #endif 46