18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci#ifndef __QCOM_CLK_KRAIT_H 48c2ecf20Sopenharmony_ci#define __QCOM_CLK_KRAIT_H 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci#include <linux/clk-provider.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cistruct krait_mux_clk { 98c2ecf20Sopenharmony_ci unsigned int *parent_map; 108c2ecf20Sopenharmony_ci u32 offset; 118c2ecf20Sopenharmony_ci u32 mask; 128c2ecf20Sopenharmony_ci u32 shift; 138c2ecf20Sopenharmony_ci u32 en_mask; 148c2ecf20Sopenharmony_ci bool lpl; 158c2ecf20Sopenharmony_ci u8 safe_sel; 168c2ecf20Sopenharmony_ci u8 old_index; 178c2ecf20Sopenharmony_ci bool reparent; 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci struct clk_hw hw; 208c2ecf20Sopenharmony_ci struct notifier_block clk_nb; 218c2ecf20Sopenharmony_ci}; 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_ci#define to_krait_mux_clk(_hw) container_of(_hw, struct krait_mux_clk, hw) 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ciextern const struct clk_ops krait_mux_clk_ops; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_cistruct krait_div2_clk { 288c2ecf20Sopenharmony_ci u32 offset; 298c2ecf20Sopenharmony_ci u8 width; 308c2ecf20Sopenharmony_ci u32 shift; 318c2ecf20Sopenharmony_ci bool lpl; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci struct clk_hw hw; 348c2ecf20Sopenharmony_ci}; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#define to_krait_div2_clk(_hw) container_of(_hw, struct krait_div2_clk, hw) 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ciextern const struct clk_ops krait_div2_clk_ops; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#endif 41