Lines Matching +full:device +full:- +full:id
1 // SPDX-License-Identifier: GPL-2.0
3 #include <linux/device.h>
12 static void devm_clk_release(struct device *dev, void *res) in devm_clk_release()
16 if (state->exit) in devm_clk_release()
17 state->exit(state->clk); in devm_clk_release()
19 clk_put(state->clk); in devm_clk_release()
22 static struct clk *__devm_clk_get(struct device *dev, const char *id, in __devm_clk_get() argument
23 struct clk *(*get)(struct device *dev, const char *id), in __devm_clk_get() argument
33 return ERR_PTR(-ENOMEM); in __devm_clk_get()
35 clk = get(dev, id); in __devm_clk_get()
47 state->clk = clk; in __devm_clk_get()
48 state->exit = exit; in __devm_clk_get()
63 struct clk *devm_clk_get(struct device *dev, const char *id) in devm_clk_get() argument
65 return __devm_clk_get(dev, id, clk_get, NULL, NULL); in devm_clk_get()
69 struct clk *devm_clk_get_prepared(struct device *dev, const char *id) in devm_clk_get_prepared() argument
71 return __devm_clk_get(dev, id, clk_get, clk_prepare, clk_unprepare); in devm_clk_get_prepared()
75 struct clk *devm_clk_get_enabled(struct device *dev, const char *id) in devm_clk_get_enabled() argument
77 return __devm_clk_get(dev, id, clk_get, in devm_clk_get_enabled()
82 struct clk *devm_clk_get_optional(struct device *dev, const char *id) in devm_clk_get_optional() argument
84 return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL); in devm_clk_get_optional()
88 struct clk *devm_clk_get_optional_prepared(struct device *dev, const char *id) in devm_clk_get_optional_prepared() argument
90 return __devm_clk_get(dev, id, clk_get_optional, in devm_clk_get_optional_prepared()
95 struct clk *devm_clk_get_optional_enabled(struct device *dev, const char *id) in devm_clk_get_optional_enabled() argument
97 return __devm_clk_get(dev, id, clk_get_optional, in devm_clk_get_optional_enabled()
107 static void devm_clk_bulk_release(struct device *dev, void *res) in devm_clk_bulk_release()
111 clk_bulk_put(devres->num_clks, devres->clks); in devm_clk_bulk_release()
114 static int __devm_clk_bulk_get(struct device *dev, int num_clks, in __devm_clk_bulk_get()
123 return -ENOMEM; in __devm_clk_bulk_get()
130 devres->clks = clks; in __devm_clk_bulk_get()
131 devres->num_clks = num_clks; in __devm_clk_bulk_get()
140 int __must_check devm_clk_bulk_get(struct device *dev, int num_clks, in devm_clk_bulk_get()
147 int __must_check devm_clk_bulk_get_optional(struct device *dev, int num_clks, in devm_clk_bulk_get_optional()
154 static void devm_clk_bulk_release_all(struct device *dev, void *res) in devm_clk_bulk_release_all()
158 clk_bulk_put_all(devres->num_clks, devres->clks); in devm_clk_bulk_release_all()
161 int __must_check devm_clk_bulk_get_all(struct device *dev, in devm_clk_bulk_get_all()
170 return -ENOMEM; in devm_clk_bulk_get_all()
172 ret = clk_bulk_get_all(dev, &devres->clks); in devm_clk_bulk_get_all()
174 *clks = devres->clks; in devm_clk_bulk_get_all()
175 devres->num_clks = ret; in devm_clk_bulk_get_all()
185 static int devm_clk_match(struct device *dev, void *res, void *data) in devm_clk_match()
195 void devm_clk_put(struct device *dev, struct clk *clk) in devm_clk_put()
205 struct clk *devm_get_clk_from_child(struct device *dev, in devm_get_clk_from_child()
212 return ERR_PTR(-ENOMEM); in devm_get_clk_from_child()