Lines Matching refs:hw

19 	struct clk_hw hw;  member
33 #define to_flexgen(_hw) container_of(_hw, struct flexgen, hw)
35 static int flexgen_enable(struct clk_hw *hw) in flexgen_enable() argument
37 struct flexgen *flexgen = to_flexgen(hw); in flexgen_enable()
38 struct clk_hw *pgate_hw = &flexgen->pgate.hw; in flexgen_enable()
39 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_enable()
41 __clk_hw_set_clk(pgate_hw, hw); in flexgen_enable()
42 __clk_hw_set_clk(fgate_hw, hw); in flexgen_enable()
48 pr_debug("%s: flexgen output enabled\n", clk_hw_get_name(hw)); in flexgen_enable()
52 static void flexgen_disable(struct clk_hw *hw) in flexgen_disable() argument
54 struct flexgen *flexgen = to_flexgen(hw); in flexgen_disable()
55 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_disable()
58 __clk_hw_set_clk(fgate_hw, hw); in flexgen_disable()
62 pr_debug("%s: flexgen output disabled\n", clk_hw_get_name(hw)); in flexgen_disable()
65 static int flexgen_is_enabled(struct clk_hw *hw) in flexgen_is_enabled() argument
67 struct flexgen *flexgen = to_flexgen(hw); in flexgen_is_enabled()
68 struct clk_hw *fgate_hw = &flexgen->fgate.hw; in flexgen_is_enabled()
70 __clk_hw_set_clk(fgate_hw, hw); in flexgen_is_enabled()
78 static u8 flexgen_get_parent(struct clk_hw *hw) in flexgen_get_parent() argument
80 struct flexgen *flexgen = to_flexgen(hw); in flexgen_get_parent()
81 struct clk_hw *mux_hw = &flexgen->mux.hw; in flexgen_get_parent()
83 __clk_hw_set_clk(mux_hw, hw); in flexgen_get_parent()
88 static int flexgen_set_parent(struct clk_hw *hw, u8 index) in flexgen_set_parent() argument
90 struct flexgen *flexgen = to_flexgen(hw); in flexgen_set_parent()
91 struct clk_hw *mux_hw = &flexgen->mux.hw; in flexgen_set_parent()
93 __clk_hw_set_clk(mux_hw, hw); in flexgen_set_parent()
104 static long flexgen_round_rate(struct clk_hw *hw, unsigned long rate, in flexgen_round_rate() argument
112 if (clk_hw_get_flags(hw) & CLK_SET_RATE_PARENT) { in flexgen_round_rate()
120 static unsigned long flexgen_recalc_rate(struct clk_hw *hw, in flexgen_recalc_rate() argument
123 struct flexgen *flexgen = to_flexgen(hw); in flexgen_recalc_rate()
124 struct clk_hw *pdiv_hw = &flexgen->pdiv.hw; in flexgen_recalc_rate()
125 struct clk_hw *fdiv_hw = &flexgen->fdiv.hw; in flexgen_recalc_rate()
128 __clk_hw_set_clk(pdiv_hw, hw); in flexgen_recalc_rate()
129 __clk_hw_set_clk(fdiv_hw, hw); in flexgen_recalc_rate()
136 static int flexgen_set_rate(struct clk_hw *hw, unsigned long rate, in flexgen_set_rate() argument
139 struct flexgen *flexgen = to_flexgen(hw); in flexgen_set_rate()
140 struct clk_hw *pdiv_hw = &flexgen->pdiv.hw; in flexgen_set_rate()
141 struct clk_hw *fdiv_hw = &flexgen->fdiv.hw; in flexgen_set_rate()
145 __clk_hw_set_clk(pdiv_hw, hw); in flexgen_set_rate()
146 __clk_hw_set_clk(fdiv_hw, hw); in flexgen_set_rate()
230 fgxbar->hw.init = &init; in clk_register_flexgen()
232 clk = clk_register(NULL, &fgxbar->hw); in clk_register_flexgen()