Lines Matching defs:simple
3 * dwc3-of-simple.c - OF glue layer for simple integrations
35 struct dwc3_of_simple *simple;
41 simple = devm_kzalloc(dev, sizeof(*simple), GFP_KERNEL);
42 if (!simple)
45 platform_set_drvdata(pdev, simple);
46 simple->dev = dev;
53 simple->need_reset = true;
55 simple->resets = of_reset_control_array_get(np, false, true,
57 if (IS_ERR(simple->resets)) {
58 ret = PTR_ERR(simple->resets);
63 ret = reset_control_deassert(simple->resets);
67 ret = clk_bulk_get_all(simple->dev, &simple->clks);
71 simple->num_clocks = ret;
72 ret = clk_bulk_prepare_enable(simple->num_clocks, simple->clks);
87 clk_bulk_disable_unprepare(simple->num_clocks, simple->clks);
88 clk_bulk_put_all(simple->num_clocks, simple->clks);
91 reset_control_assert(simple->resets);
94 reset_control_put(simple->resets);
98 static void __dwc3_of_simple_teardown(struct dwc3_of_simple *simple)
100 of_platform_depopulate(simple->dev);
102 clk_bulk_disable_unprepare(simple->num_clocks, simple->clks);
103 clk_bulk_put_all(simple->num_clocks, simple->clks);
104 simple->num_clocks = 0;
106 reset_control_assert(simple->resets);
108 reset_control_put(simple->resets);
110 pm_runtime_disable(simple->dev);
111 pm_runtime_put_noidle(simple->dev);
112 pm_runtime_set_suspended(simple->dev);
117 struct dwc3_of_simple *simple = platform_get_drvdata(pdev);
119 __dwc3_of_simple_teardown(simple);
124 struct dwc3_of_simple *simple = platform_get_drvdata(pdev);
126 __dwc3_of_simple_teardown(simple);
131 struct dwc3_of_simple *simple = dev_get_drvdata(dev);
133 clk_bulk_disable(simple->num_clocks, simple->clks);
140 struct dwc3_of_simple *simple = dev_get_drvdata(dev);
142 return clk_bulk_enable(simple->num_clocks, simple->clks);
147 struct dwc3_of_simple *simple = dev_get_drvdata(dev);
149 if (simple->need_reset)
150 reset_control_assert(simple->resets);
157 struct dwc3_of_simple *simple = dev_get_drvdata(dev);
159 if (simple->need_reset)
160 reset_control_deassert(simple->resets);
186 .name = "dwc3-of-simple",