• Home
  • Raw
  • Download

Lines Matching +full:device +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * devres.c -- Voltage/Current Regulator framework devres implementation.
17 static void devm_regulator_release(struct device *dev, void *res) in devm_regulator_release()
22 static struct regulator *_devm_regulator_get(struct device *dev, const char *id, in _devm_regulator_get() argument
29 return ERR_PTR(-ENOMEM); in _devm_regulator_get()
31 regulator = _regulator_get(dev, id, get_type); in _devm_regulator_get()
43 * devm_regulator_get - Resource managed regulator_get()
44 * @dev: device to supply
45 * @id: supply name or regulator ID.
51 struct regulator *devm_regulator_get(struct device *dev, const char *id) in devm_regulator_get() argument
53 return _devm_regulator_get(dev, id, NORMAL_GET); in devm_regulator_get()
58 * devm_regulator_get_exclusive - Resource managed regulator_get_exclusive()
59 * @dev: device to supply
60 * @id: supply name or regulator ID.
66 struct regulator *devm_regulator_get_exclusive(struct device *dev, in devm_regulator_get_exclusive()
67 const char *id) in devm_regulator_get_exclusive() argument
69 return _devm_regulator_get(dev, id, EXCLUSIVE_GET); in devm_regulator_get_exclusive()
74 * devm_regulator_get_optional - Resource managed regulator_get_optional()
75 * @dev: device to supply
76 * @id: supply name or regulator ID.
82 struct regulator *devm_regulator_get_optional(struct device *dev, in devm_regulator_get_optional()
83 const char *id) in devm_regulator_get_optional() argument
85 return _devm_regulator_get(dev, id, OPTIONAL_GET); in devm_regulator_get_optional()
89 static int devm_regulator_match(struct device *dev, void *res, void *data) in devm_regulator_match()
100 * devm_regulator_put - Resource managed regulator_put()
111 rc = devres_release(regulator->dev, devm_regulator_release, in devm_regulator_put()
123 static void devm_regulator_bulk_release(struct device *dev, void *res) in devm_regulator_bulk_release()
127 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release()
131 * devm_regulator_bulk_get - managed get multiple regulator consumers
133 * @dev: device to supply
141 * automatically be freed when the device is unbound. If any of the
145 int devm_regulator_bulk_get(struct device *dev, int num_consumers, in devm_regulator_bulk_get()
154 return -ENOMEM; in devm_regulator_bulk_get()
158 devres->consumers = consumers; in devm_regulator_bulk_get()
159 devres->num_consumers = num_consumers; in devm_regulator_bulk_get()
169 static void devm_rdev_release(struct device *dev, void *res) in devm_rdev_release()
175 * devm_regulator_register - Resource managed regulator_register()
176 * @dev: device to supply
182 * error. The regulator will automatically be released when the device
185 struct regulator_dev *devm_regulator_register(struct device *dev, in devm_regulator_register()
194 return ERR_PTR(-ENOMEM); in devm_regulator_register()
208 static int devm_rdev_match(struct device *dev, void *res, void *data) in devm_rdev_match()
219 * devm_regulator_unregister - Resource managed regulator_unregister()
220 * @dev: device to supply
227 void devm_regulator_unregister(struct device *dev, struct regulator_dev *rdev) in devm_regulator_unregister()
238 struct device *dev;
239 const char *id; member
242 static int devm_regulator_match_supply_alias(struct device *dev, void *res, in devm_regulator_match_supply_alias()
248 return match->dev == target->dev && strcmp(match->id, target->id) == 0; in devm_regulator_match_supply_alias()
251 static void devm_regulator_destroy_supply_alias(struct device *dev, void *res) in devm_regulator_destroy_supply_alias()
255 regulator_unregister_supply_alias(match->dev, match->id); in devm_regulator_destroy_supply_alias()
259 * devm_regulator_register_supply_alias - Resource managed
262 * @dev: device to supply
263 * @id: supply name or regulator ID
264 * @alias_dev: device that should be used to lookup the supply
265 * @alias_id: supply name or regulator ID that should be used to lookup the
269 * device is unbound.
271 int devm_regulator_register_supply_alias(struct device *dev, const char *id, in devm_regulator_register_supply_alias() argument
272 struct device *alias_dev, in devm_regulator_register_supply_alias()
282 return -ENOMEM; in devm_regulator_register_supply_alias()
284 match->dev = dev; in devm_regulator_register_supply_alias()
285 match->id = id; in devm_regulator_register_supply_alias()
287 ret = regulator_register_supply_alias(dev, id, alias_dev, alias_id); in devm_regulator_register_supply_alias()
300 * devm_regulator_unregister_supply_alias - Resource managed
303 * @dev: device to supply
304 * @id: supply name or regulator ID
311 void devm_regulator_unregister_supply_alias(struct device *dev, const char *id) in devm_regulator_unregister_supply_alias() argument
317 match.id = id; in devm_regulator_unregister_supply_alias()
327 * devm_regulator_bulk_register_supply_alias - Managed register
330 * @dev: device to supply
331 * @id: list of supply names or regulator IDs
332 * @alias_dev: device that should be used to lookup the supply
341 * unregisters when the source device is unbound. If any of the
345 int devm_regulator_bulk_register_supply_alias(struct device *dev, in devm_regulator_bulk_register_supply_alias()
346 const char *const *id, in devm_regulator_bulk_register_supply_alias() argument
347 struct device *alias_dev, in devm_regulator_bulk_register_supply_alias()
355 ret = devm_regulator_register_supply_alias(dev, id[i], in devm_regulator_bulk_register_supply_alias()
366 "Failed to create supply alias %s,%s -> %s,%s\n", in devm_regulator_bulk_register_supply_alias()
367 id[i], dev_name(dev), alias_id[i], dev_name(alias_dev)); in devm_regulator_bulk_register_supply_alias()
369 while (--i >= 0) in devm_regulator_bulk_register_supply_alias()
370 devm_regulator_unregister_supply_alias(dev, id[i]); in devm_regulator_bulk_register_supply_alias()
377 * devm_regulator_bulk_unregister_supply_alias - Managed unregister
380 * @dev: device to supply
381 * @id: list of supply names or regulator IDs
389 void devm_regulator_bulk_unregister_supply_alias(struct device *dev, in devm_regulator_bulk_unregister_supply_alias()
390 const char *const *id, in devm_regulator_bulk_unregister_supply_alias() argument
396 devm_regulator_unregister_supply_alias(dev, id[i]); in devm_regulator_bulk_unregister_supply_alias()
405 static int devm_regulator_match_notifier(struct device *dev, void *res, in devm_regulator_match_notifier()
411 return match->regulator == target->regulator && match->nb == target->nb; in devm_regulator_match_notifier()
414 static void devm_regulator_destroy_notifier(struct device *dev, void *res) in devm_regulator_destroy_notifier()
418 regulator_unregister_notifier(match->regulator, match->nb); in devm_regulator_destroy_notifier()
422 * devm_regulator_register_notifier - Resource managed
428 * The notifier will be registers under the consumer device and be
429 * automatically be unregistered when the source device is unbound.
441 return -ENOMEM; in devm_regulator_register_notifier()
443 match->regulator = regulator; in devm_regulator_register_notifier()
444 match->nb = nb; in devm_regulator_register_notifier()
452 devres_add(regulator->dev, match); in devm_regulator_register_notifier()
459 * devm_regulator_unregister_notifier - Resource managed
478 rc = devres_release(regulator->dev, devm_regulator_destroy_notifier, in devm_regulator_unregister_notifier()