Lines Matching refs:simple

34 static int dwc3_of_simple_clk_init(struct dwc3_of_simple *simple, int count)  in dwc3_of_simple_clk_init()  argument
36 struct device *dev = simple->dev; in dwc3_of_simple_clk_init()
40 simple->num_clocks = count; in dwc3_of_simple_clk_init()
45 simple->clks = devm_kcalloc(dev, simple->num_clocks, in dwc3_of_simple_clk_init()
47 if (!simple->clks) in dwc3_of_simple_clk_init()
50 for (i = 0; i < simple->num_clocks; i++) { in dwc3_of_simple_clk_init()
57 clk_disable_unprepare(simple->clks[i]); in dwc3_of_simple_clk_init()
58 clk_put(simple->clks[i]); in dwc3_of_simple_clk_init()
66 clk_disable_unprepare(simple->clks[i]); in dwc3_of_simple_clk_init()
67 clk_put(simple->clks[i]); in dwc3_of_simple_clk_init()
74 simple->clks[i] = clk; in dwc3_of_simple_clk_init()
82 struct dwc3_of_simple *simple; in dwc3_of_simple_probe() local
90 simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL); in dwc3_of_simple_probe()
91 if (!simple) in dwc3_of_simple_probe()
94 platform_set_drvdata(pdev, simple); in dwc3_of_simple_probe()
95 simple->dev = dev; in dwc3_of_simple_probe()
102 simple->need_reset = true; in dwc3_of_simple_probe()
107 simple->pulse_resets = true; in dwc3_of_simple_probe()
110 simple->resets = of_reset_control_array_get(np, shared_resets, true); in dwc3_of_simple_probe()
111 if (IS_ERR(simple->resets)) { in dwc3_of_simple_probe()
112 ret = PTR_ERR(simple->resets); in dwc3_of_simple_probe()
117 if (simple->pulse_resets) { in dwc3_of_simple_probe()
118 ret = reset_control_reset(simple->resets); in dwc3_of_simple_probe()
122 ret = reset_control_deassert(simple->resets); in dwc3_of_simple_probe()
127 ret = dwc3_of_simple_clk_init(simple, of_count_phandle_with_args(np, in dwc3_of_simple_probe()
134 for (i = 0; i < simple->num_clocks; i++) { in dwc3_of_simple_probe()
135 clk_disable_unprepare(simple->clks[i]); in dwc3_of_simple_probe()
136 clk_put(simple->clks[i]); in dwc3_of_simple_probe()
149 if (!simple->pulse_resets) in dwc3_of_simple_probe()
150 reset_control_assert(simple->resets); in dwc3_of_simple_probe()
153 reset_control_put(simple->resets); in dwc3_of_simple_probe()
159 struct dwc3_of_simple *simple = platform_get_drvdata(pdev); in dwc3_of_simple_remove() local
165 for (i = 0; i < simple->num_clocks; i++) { in dwc3_of_simple_remove()
166 clk_disable_unprepare(simple->clks[i]); in dwc3_of_simple_remove()
167 clk_put(simple->clks[i]); in dwc3_of_simple_remove()
169 simple->num_clocks = 0; in dwc3_of_simple_remove()
171 if (!simple->pulse_resets) in dwc3_of_simple_remove()
172 reset_control_assert(simple->resets); in dwc3_of_simple_remove()
174 reset_control_put(simple->resets); in dwc3_of_simple_remove()
185 struct dwc3_of_simple *simple = dev_get_drvdata(dev); in dwc3_of_simple_runtime_suspend() local
188 for (i = 0; i < simple->num_clocks; i++) in dwc3_of_simple_runtime_suspend()
189 clk_disable(simple->clks[i]); in dwc3_of_simple_runtime_suspend()
196 struct dwc3_of_simple *simple = dev_get_drvdata(dev); in dwc3_of_simple_runtime_resume() local
200 for (i = 0; i < simple->num_clocks; i++) { in dwc3_of_simple_runtime_resume()
201 ret = clk_enable(simple->clks[i]); in dwc3_of_simple_runtime_resume()
204 clk_disable(simple->clks[i]); in dwc3_of_simple_runtime_resume()
214 struct dwc3_of_simple *simple = dev_get_drvdata(dev); in dwc3_of_simple_suspend() local
216 if (simple->need_reset) in dwc3_of_simple_suspend()
217 reset_control_assert(simple->resets); in dwc3_of_simple_suspend()
224 struct dwc3_of_simple *simple = dev_get_drvdata(dev); in dwc3_of_simple_resume() local
226 if (simple->need_reset) in dwc3_of_simple_resume()
227 reset_control_deassert(simple->resets); in dwc3_of_simple_resume()