Lines Matching refs:hw

18 	struct clk_hw hw;  member
32 #define to_flexgen(_hw) container_of(_hw, struct flexgen, hw)
34 static int flexgen_enable(struct clk_hw *hw) in flexgen_enable() argument
36 struct flexgen *flexgen = to_flexgen(hw); in flexgen_enable()
37 struct clk_hw *pgate_hw = &flexgen->pgate.hw; in flexgen_enable()
38 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_enable()
40 __clk_hw_set_clk(pgate_hw, hw); in flexgen_enable()
41 __clk_hw_set_clk(fgate_hw, hw); in flexgen_enable()
47 pr_debug("%s: flexgen output enabled\n", __clk_get_name(hw->clk)); in flexgen_enable()
51 static void flexgen_disable(struct clk_hw *hw) in flexgen_disable() argument
53 struct flexgen *flexgen = to_flexgen(hw); in flexgen_disable()
54 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_disable()
57 __clk_hw_set_clk(fgate_hw, hw); in flexgen_disable()
61 pr_debug("%s: flexgen output disabled\n", __clk_get_name(hw->clk)); in flexgen_disable()
64 static int flexgen_is_enabled(struct clk_hw *hw) in flexgen_is_enabled() argument
66 struct flexgen *flexgen = to_flexgen(hw); in flexgen_is_enabled()
67 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_is_enabled()
69 __clk_hw_set_clk(fgate_hw, hw); in flexgen_is_enabled()
77 static u8 flexgen_get_parent(struct clk_hw *hw) in flexgen_get_parent() argument
79 struct flexgen *flexgen = to_flexgen(hw); in flexgen_get_parent()
80 struct clk_hw *mux_hw = &flexgen->mux.hw; in flexgen_get_parent()
82 __clk_hw_set_clk(mux_hw, hw); in flexgen_get_parent()
87 static int flexgen_set_parent(struct clk_hw *hw, u8 index) in flexgen_set_parent() argument
89 struct flexgen *flexgen = to_flexgen(hw); in flexgen_set_parent()
90 struct clk_hw *mux_hw = &flexgen->mux.hw; in flexgen_set_parent()
92 __clk_hw_set_clk(mux_hw, hw); in flexgen_set_parent()
103 static long flexgen_round_rate(struct clk_hw *hw, unsigned long rate, in flexgen_round_rate() argument
111 if (__clk_get_flags(hw->clk) & CLK_SET_RATE_PARENT) { in flexgen_round_rate()
119 unsigned long flexgen_recalc_rate(struct clk_hw *hw, in flexgen_recalc_rate() argument
122 struct flexgen *flexgen = to_flexgen(hw); in flexgen_recalc_rate()
123 struct clk_hw *pdiv_hw = &flexgen->pdiv.hw; in flexgen_recalc_rate()
124 struct clk_hw *fdiv_hw = &flexgen->fdiv.hw; in flexgen_recalc_rate()
127 __clk_hw_set_clk(pdiv_hw, hw); in flexgen_recalc_rate()
128 __clk_hw_set_clk(fdiv_hw, hw); in flexgen_recalc_rate()
135 static int flexgen_set_rate(struct clk_hw *hw, unsigned long rate, in flexgen_set_rate() argument
138 struct flexgen *flexgen = to_flexgen(hw); in flexgen_set_rate()
139 struct clk_hw *pdiv_hw = &flexgen->pdiv.hw; in flexgen_set_rate()
140 struct clk_hw *fdiv_hw = &flexgen->fdiv.hw; in flexgen_set_rate()
144 __clk_hw_set_clk(pdiv_hw, hw); in flexgen_set_rate()
145 __clk_hw_set_clk(fdiv_hw, hw); in flexgen_set_rate()
229 fgxbar->hw.init = &init; in clk_register_flexgen()
231 clk = clk_register(NULL, &fgxbar->hw); in clk_register_flexgen()