^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) #ifndef __QCOM_CLK_KRAIT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #define __QCOM_CLK_KRAIT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include <linux/clk-provider.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) struct krait_mux_clk {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) unsigned int *parent_map;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) u32 offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) u32 mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) u32 shift;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) u32 en_mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) bool lpl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) u8 safe_sel;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) u8 old_index;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) bool reparent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct clk_hw hw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct notifier_block clk_nb;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define to_krait_mux_clk(_hw) container_of(_hw, struct krait_mux_clk, hw)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) extern const struct clk_ops krait_mux_clk_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct krait_div2_clk {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) u32 offset;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) u8 width;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) u32 shift;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) bool lpl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct clk_hw hw;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) #define to_krait_div2_clk(_hw) container_of(_hw, struct krait_div2_clk, hw)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) extern const struct clk_ops krait_div2_clk_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) #endif