Lines Matching +full:device +full:- +full:id
2 * devres.c -- Voltage/Current Regulator framework devres implementation.
22 static void devm_regulator_release(struct device *dev, void *res) in devm_regulator_release()
27 static struct regulator *_devm_regulator_get(struct device *dev, const char *id, in _devm_regulator_get() argument
34 return ERR_PTR(-ENOMEM); in _devm_regulator_get()
36 regulator = _regulator_get(dev, id, get_type); in _devm_regulator_get()
48 * devm_regulator_get - Resource managed regulator_get()
49 * @dev: device for regulator "consumer"
50 * @id: Supply name or regulator ID.
56 struct regulator *devm_regulator_get(struct device *dev, const char *id) in devm_regulator_get() argument
58 return _devm_regulator_get(dev, id, NORMAL_GET); in devm_regulator_get()
63 * devm_regulator_get_exclusive - Resource managed regulator_get_exclusive()
64 * @dev: device for regulator "consumer"
65 * @id: Supply name or regulator ID.
71 struct regulator *devm_regulator_get_exclusive(struct device *dev, in devm_regulator_get_exclusive()
72 const char *id) in devm_regulator_get_exclusive() argument
74 return _devm_regulator_get(dev, id, EXCLUSIVE_GET); in devm_regulator_get_exclusive()
79 * devm_regulator_get_optional - Resource managed regulator_get_optional()
80 * @dev: device for regulator "consumer"
81 * @id: Supply name or regulator ID.
87 struct regulator *devm_regulator_get_optional(struct device *dev, in devm_regulator_get_optional()
88 const char *id) in devm_regulator_get_optional() argument
90 return _devm_regulator_get(dev, id, OPTIONAL_GET); in devm_regulator_get_optional()
94 static int devm_regulator_match(struct device *dev, void *res, void *data) in devm_regulator_match()
105 * devm_regulator_put - Resource managed regulator_put()
116 rc = devres_release(regulator->dev, devm_regulator_release, in devm_regulator_put()
128 static void devm_regulator_bulk_release(struct device *dev, void *res) in devm_regulator_bulk_release()
132 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release()
136 * devm_regulator_bulk_get - managed get multiple regulator consumers
138 * @dev: Device to supply
146 * automatically be freed when the device is unbound. If any of the
150 int devm_regulator_bulk_get(struct device *dev, int num_consumers, in devm_regulator_bulk_get()
159 return -ENOMEM; in devm_regulator_bulk_get()
163 devres->consumers = consumers; in devm_regulator_bulk_get()
164 devres->num_consumers = num_consumers; in devm_regulator_bulk_get()
174 static void devm_rdev_release(struct device *dev, void *res) in devm_rdev_release()
180 * devm_regulator_register - Resource managed regulator_register()
186 * error. The regulator will automatically be released when the device
189 struct regulator_dev *devm_regulator_register(struct device *dev, in devm_regulator_register()
198 return ERR_PTR(-ENOMEM); in devm_regulator_register()
212 static int devm_rdev_match(struct device *dev, void *res, void *data) in devm_rdev_match()
223 * devm_regulator_unregister - Resource managed regulator_unregister()
230 void devm_regulator_unregister(struct device *dev, struct regulator_dev *rdev) in devm_regulator_unregister()
241 struct device *dev;
242 const char *id; member
245 static int devm_regulator_match_supply_alias(struct device *dev, void *res, in devm_regulator_match_supply_alias()
251 return match->dev == target->dev && strcmp(match->id, target->id) == 0; in devm_regulator_match_supply_alias()
254 static void devm_regulator_destroy_supply_alias(struct device *dev, void *res) in devm_regulator_destroy_supply_alias()
258 regulator_unregister_supply_alias(match->dev, match->id); in devm_regulator_destroy_supply_alias()
262 * devm_regulator_register_supply_alias - Resource managed
265 * @dev: device that will be given as the regulator "consumer"
266 * @id: Supply name or regulator ID
267 * @alias_dev: device that should be used to lookup the supply
268 * @alias_id: Supply name or regulator ID that should be used to lookup the
272 * device is unbound.
274 int devm_regulator_register_supply_alias(struct device *dev, const char *id, in devm_regulator_register_supply_alias() argument
275 struct device *alias_dev, in devm_regulator_register_supply_alias()
285 return -ENOMEM; in devm_regulator_register_supply_alias()
287 match->dev = dev; in devm_regulator_register_supply_alias()
288 match->id = id; in devm_regulator_register_supply_alias()
290 ret = regulator_register_supply_alias(dev, id, alias_dev, alias_id); in devm_regulator_register_supply_alias()
303 * devm_regulator_unregister_supply_alias - Resource managed
306 * @dev: device that will be given as the regulator "consumer"
307 * @id: Supply name or regulator ID
314 void devm_regulator_unregister_supply_alias(struct device *dev, const char *id) in devm_regulator_unregister_supply_alias() argument
320 match.id = id; in devm_regulator_unregister_supply_alias()
330 * devm_regulator_bulk_register_supply_alias - Managed register
333 * @dev: device that will be given as the regulator "consumer"
334 * @id: List of supply names or regulator IDs
335 * @alias_dev: device that should be used to lookup the supply
344 * unregisters when the source device is unbound. If any of the
348 int devm_regulator_bulk_register_supply_alias(struct device *dev, in devm_regulator_bulk_register_supply_alias()
349 const char *const *id, in devm_regulator_bulk_register_supply_alias() argument
350 struct device *alias_dev, in devm_regulator_bulk_register_supply_alias()
358 ret = devm_regulator_register_supply_alias(dev, id[i], in devm_regulator_bulk_register_supply_alias()
369 "Failed to create supply alias %s,%s -> %s,%s\n", in devm_regulator_bulk_register_supply_alias()
370 id[i], dev_name(dev), alias_id[i], dev_name(alias_dev)); in devm_regulator_bulk_register_supply_alias()
372 while (--i >= 0) in devm_regulator_bulk_register_supply_alias()
373 devm_regulator_unregister_supply_alias(dev, id[i]); in devm_regulator_bulk_register_supply_alias()
380 * devm_regulator_bulk_unregister_supply_alias - Managed unregister
383 * @dev: device that will be given as the regulator "consumer"
384 * @id: List of supply names or regulator IDs
392 void devm_regulator_bulk_unregister_supply_alias(struct device *dev, in devm_regulator_bulk_unregister_supply_alias()
393 const char *const *id, in devm_regulator_bulk_unregister_supply_alias() argument
399 devm_regulator_unregister_supply_alias(dev, id[i]); in devm_regulator_bulk_unregister_supply_alias()
408 static int devm_regulator_match_notifier(struct device *dev, void *res, in devm_regulator_match_notifier()
414 return match->regulator == target->regulator && match->nb == target->nb; in devm_regulator_match_notifier()
417 static void devm_regulator_destroy_notifier(struct device *dev, void *res) in devm_regulator_destroy_notifier()
421 regulator_unregister_notifier(match->regulator, match->nb); in devm_regulator_destroy_notifier()
425 * devm_regulator_register_notifier - Resource managed
431 * The notifier will be registers under the consumer device and be
432 * automatically be unregistered when the source device is unbound.
444 return -ENOMEM; in devm_regulator_register_notifier()
446 match->regulator = regulator; in devm_regulator_register_notifier()
447 match->nb = nb; in devm_regulator_register_notifier()
455 devres_add(regulator->dev, match); in devm_regulator_register_notifier()
462 * devm_regulator_unregister_notifier - Resource managed
481 rc = devres_release(regulator->dev, devm_regulator_destroy_notifier, in devm_regulator_unregister_notifier()