Lines Matching +full:target +full:- +full:supply
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * devres.c -- Voltage/Current Regulator framework devres implementation.
29 return ERR_PTR(-ENOMEM); in _devm_regulator_get()
43 * devm_regulator_get - Resource managed regulator_get()
44 * @dev: device to supply
45 * @id: supply name or regulator ID.
58 * devm_regulator_get_exclusive - Resource managed regulator_get_exclusive()
59 * @dev: device to supply
60 * @id: supply name or regulator ID.
101 * devm_regulator_get_enable_optional - Resource managed regulator get and enable
102 * @dev: device to supply
103 * @id: supply name or regulator ID.
105 * Get and enable regulator for duration of the device life-time.
117 * devm_regulator_get_enable - Resource managed regulator get and enable
118 * @dev: device to supply
119 * @id: supply name or regulator ID.
121 * Get and enable regulator for duration of the device life-time.
133 * devm_regulator_get_optional - Resource managed regulator_get_optional()
134 * @dev: device to supply
135 * @id: supply name or regulator ID.
149 * devm_regulator_get_enable_read_voltage - Resource managed regulator get and
151 * @dev: device to supply
152 * @id: supply name or regulator ID.
154 * Get and enable regulator for duration of the device life-time.
163 * In cases where the supply is not strictly required, callers can check for
164 * -ENODEV error and handle it accordingly.
176 * then letting regulator_get_voltage() fail with -EINVAL. This way, the in devm_regulator_get_enable_read_voltage()
177 * caller can handle the -ENODEV negative error number if needed instead in devm_regulator_get_enable_read_voltage()
178 * of the ambiguous -EINVAL. in devm_regulator_get_enable_read_voltage()
218 * devm_regulator_put - Resource managed regulator_put()
229 rc = devres_release(regulator->dev, devm_regulator_release, in devm_regulator_put()
245 regulator_bulk_free(devres->num_consumers, devres->consumers); in devm_regulator_bulk_release()
258 return -ENOMEM; in _devm_regulator_bulk_get()
262 devres->consumers = consumers; in _devm_regulator_bulk_get()
263 devres->num_consumers = num_consumers; in _devm_regulator_bulk_get()
273 * devm_regulator_bulk_get - managed get multiple regulator consumers
275 * @dev: device to supply
295 * devm_regulator_bulk_get_exclusive - managed exclusive get of multiple
298 * @dev: device to supply
318 * devm_regulator_bulk_get_const - devm_regulator_bulk_get() w/ const data
320 * @dev: device to supply
338 return -ENOMEM; in devm_regulator_bulk_get_const()
348 struct regulator_bulk_data *target = data; in devm_regulator_bulk_match() local
356 return match->consumers == target; in devm_regulator_bulk_match()
360 * devm_regulator_bulk_put - Resource managed regulator_bulk_put()
372 rc = devres_release(regulator->dev, devm_regulator_bulk_release, in devm_regulator_bulk_put()
384 for (i = 0; i < devres->num_consumers; i++) in devm_regulator_bulk_disable()
385 regulator_disable(devres->consumers[i].consumer); in devm_regulator_bulk_disable()
389 * devm_regulator_bulk_get_enable - managed get'n enable multiple regulators
391 * @dev: device to supply
393 * @id: list of supply names or regulator IDs
412 return -ENOMEM; in devm_regulator_bulk_get_enable()
414 devres->consumers = devm_kcalloc(dev, num_consumers, sizeof(*consumers), in devm_regulator_bulk_get_enable()
416 consumers = devres->consumers; in devm_regulator_bulk_get_enable()
418 return -ENOMEM; in devm_regulator_bulk_get_enable()
420 devres->num_consumers = num_consumers; in devm_regulator_bulk_get_enable()
423 consumers[i].supply = id[i]; in devm_regulator_bulk_get_enable()
440 while (--i >= 0) in devm_regulator_bulk_get_enable()
455 * devm_regulator_register - Resource managed regulator_register()
456 * @dev: device to supply
474 return ERR_PTR(-ENOMEM); in devm_regulator_register()
497 struct regulator_supply_alias_match *target = data; in devm_regulator_match_supply_alias() local
499 return match->dev == target->dev && strcmp(match->id, target->id) == 0; in devm_regulator_match_supply_alias()
506 regulator_unregister_supply_alias(match->dev, match->id); in devm_regulator_destroy_supply_alias()
510 * devm_regulator_register_supply_alias - Resource managed
513 * @dev: device to supply
514 * @id: supply name or regulator ID
515 * @alias_dev: device that should be used to lookup the supply
516 * @alias_id: supply name or regulator ID that should be used to lookup the
517 * supply
519 * The supply alias will automatically be unregistered when the source
533 return -ENOMEM; in devm_regulator_register_supply_alias()
535 match->dev = dev; in devm_regulator_register_supply_alias()
536 match->id = id; in devm_regulator_register_supply_alias()
566 * devm_regulator_bulk_register_supply_alias - Managed register
569 * @dev: device to supply
570 * @id: list of supply names or regulator IDs
571 * @alias_dev: device that should be used to lookup the supply
572 * @alias_id: list of supply names or regulator IDs that should be used to
573 * lookup the supply
578 * This helper function allows drivers to register several supply
605 "Failed to create supply alias %s,%s -> %s,%s\n", in devm_regulator_bulk_register_supply_alias()
608 while (--i >= 0) in devm_regulator_bulk_register_supply_alias()
624 struct regulator_notifier_match *target = data; in devm_regulator_match_notifier() local
626 return match->regulator == target->regulator && match->nb == target->nb; in devm_regulator_match_notifier()
633 regulator_unregister_notifier(match->regulator, match->nb); in devm_regulator_destroy_notifier()
637 * devm_regulator_register_notifier - Resource managed
656 return -ENOMEM; in devm_regulator_register_notifier()
658 match->regulator = regulator; in devm_regulator_register_notifier()
659 match->nb = nb; in devm_regulator_register_notifier()
667 devres_add(regulator->dev, match); in devm_regulator_register_notifier()
674 * devm_regulator_unregister_notifier - Resource managed
693 rc = devres_release(regulator->dev, devm_regulator_destroy_notifier, in devm_regulator_unregister_notifier()
706 * devm_regulator_irq_helper - resource managed registration of IRQ based
716 * When IRQ is re-enabled these errors will be cleared
760 return ERR_PTR(-ENOMEM); in _devm_of_regulator_get()
774 * devm_of_regulator_get - Resource managed of_regulator_get()
777 * @id: supply name or regulator ID.
791 * devm_of_regulator_get_optional - Resource managed of_regulator_get_optional()
794 * @id: supply name or regulator ID.