Lines Matching refs:ctrl
204 static struct clk_gating_ctrl *ctrl; variable
214 for (n = 0; n < ctrl->num_gates; n++) { in clk_gating_get_src()
216 to_clk_gate(__clk_get_hw(ctrl->gates[n])); in clk_gating_get_src()
218 return ctrl->gates[n]; in clk_gating_get_src()
225 ctrl->saved_reg = readl(ctrl->base); in mvebu_clk_gating_suspend()
231 writel(ctrl->saved_reg, ctrl->base); in mvebu_clk_gating_resume()
247 if (ctrl) { in mvebu_clk_gating_setup()
262 ctrl = kzalloc(sizeof(*ctrl), GFP_KERNEL); in mvebu_clk_gating_setup()
263 if (WARN_ON(!ctrl)) in mvebu_clk_gating_setup()
267 ctrl->lock = &ctrl_gating_lock; in mvebu_clk_gating_setup()
269 ctrl->base = base; in mvebu_clk_gating_setup()
275 ctrl->num_gates = n; in mvebu_clk_gating_setup()
276 ctrl->gates = kzalloc(ctrl->num_gates * sizeof(struct clk *), in mvebu_clk_gating_setup()
278 if (WARN_ON(!ctrl->gates)) in mvebu_clk_gating_setup()
281 for (n = 0; n < ctrl->num_gates; n++) { in mvebu_clk_gating_setup()
284 ctrl->gates[n] = clk_register_gate(NULL, desc[n].name, parent, in mvebu_clk_gating_setup()
286 0, ctrl->lock); in mvebu_clk_gating_setup()
287 WARN_ON(IS_ERR(ctrl->gates[n])); in mvebu_clk_gating_setup()
290 of_clk_add_provider(np, clk_gating_get_src, ctrl); in mvebu_clk_gating_setup()
296 kfree(ctrl); in mvebu_clk_gating_setup()