Skip to content

Commit a8e9ef4

Browse files
committed
pmdomain: Merge tag regulator-devm-of-get into next
Merge the tag regulator-devm-of-get from git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator into next. This introduces devm_of_regulator_get without the _optional suffix, since that is more sensible for the Rockchip usecase. Signed-off-by: Ulf Hansson <[email protected]>
2 parents c432bdc + 0dffacb commit a8e9ef4

File tree

3 files changed

+44
-0
lines changed

3 files changed

+44
-0
lines changed

drivers/regulator/devres.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,23 @@ static struct regulator *_devm_of_regulator_get(struct device *dev, struct devic
771771
return regulator;
772772
}
773773

774+
/**
775+
* devm_of_regulator_get - Resource managed of_regulator_get()
776+
* @dev: device used for dev_printk() messages and resource lifetime management
777+
* @node: device node for regulator "consumer"
778+
* @id: supply name or regulator ID.
779+
*
780+
* Managed of_regulator_get(). Regulators returned from this
781+
* function are automatically regulator_put() on driver detach. See
782+
* of_regulator_get() for more information.
783+
*/
784+
struct regulator *devm_of_regulator_get(struct device *dev, struct device_node *node,
785+
const char *id)
786+
{
787+
return _devm_of_regulator_get(dev, node, id, NORMAL_GET);
788+
}
789+
EXPORT_SYMBOL_GPL(devm_of_regulator_get);
790+
774791
/**
775792
* devm_of_regulator_get_optional - Resource managed of_regulator_get_optional()
776793
* @dev: device used for dev_printk() messages and resource lifetime management

drivers/regulator/of_regulator.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,27 @@ struct regulator *_of_regulator_get(struct device *dev, struct device_node *node
697697
return _regulator_get_common(r, dev, id, get_type);
698698
}
699699

700+
/**
701+
* of_regulator_get - get regulator via device tree lookup
702+
* @dev: device used for dev_printk() messages
703+
* @node: device node for regulator "consumer"
704+
* @id: Supply name
705+
*
706+
* Return: pointer to struct regulator corresponding to the regulator producer,
707+
* or PTR_ERR() encoded error number.
708+
*
709+
* This is intended for use by consumers that want to get a regulator
710+
* supply directly from a device node. This will _not_ consider supply
711+
* aliases. See regulator_dev_lookup().
712+
*/
713+
struct regulator *of_regulator_get(struct device *dev,
714+
struct device_node *node,
715+
const char *id)
716+
{
717+
return _of_regulator_get(dev, node, id, NORMAL_GET);
718+
}
719+
EXPORT_SYMBOL_GPL(of_regulator_get);
720+
700721
/**
701722
* of_regulator_get_optional - get optional regulator via device tree lookup
702723
* @dev: device used for dev_printk() messages

include/linux/regulator/consumer.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -677,6 +677,12 @@ regulator_is_equal(struct regulator *reg1, struct regulator *reg2)
677677
#endif
678678

679679
#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_REGULATOR)
680+
struct regulator *__must_check of_regulator_get(struct device *dev,
681+
struct device_node *node,
682+
const char *id);
683+
struct regulator *__must_check devm_of_regulator_get(struct device *dev,
684+
struct device_node *node,
685+
const char *id);
680686
struct regulator *__must_check of_regulator_get_optional(struct device *dev,
681687
struct device_node *node,
682688
const char *id);

0 commit comments

Comments
 (0)