mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-18 19:05:39 +00:00
regulator: lm363x: Let core handle GPIO descriptor
Use the gpiod_get() rather than the devm_* version so that the regulator core can handle the lifecycle of these descriptors. Fixes: b2d751b7f69b ("regulator: lm363x: Pass descriptor instead of GPIO number") Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
5e6f3ae5c1
commit
e8a33aa0e3
@ -224,13 +224,15 @@ static struct gpio_desc *lm363x_regulator_of_get_enable_gpio(struct device *dev,
|
||||
/*
|
||||
* Check LCM_EN1/2_GPIO is configured.
|
||||
* Those pins are used for enabling VPOS/VNEG LDOs.
|
||||
* Do not use devm* here: the regulator core takes over the
|
||||
* lifecycle management of the GPIO descriptor.
|
||||
*/
|
||||
switch (id) {
|
||||
case LM3632_LDO_POS:
|
||||
return devm_gpiod_get_index_optional(dev, "enable", 0,
|
||||
return gpiod_get_index_optional(dev, "enable", 0,
|
||||
GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE);
|
||||
case LM3632_LDO_NEG:
|
||||
return devm_gpiod_get_index_optional(dev, "enable", 1,
|
||||
return gpiod_get_index_optional(dev, "enable", 1,
|
||||
GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE);
|
||||
default:
|
||||
return NULL;
|
||||
@ -263,6 +265,8 @@ static int lm363x_regulator_probe(struct platform_device *pdev)
|
||||
LM3632_EXT_EN_MASK,
|
||||
LM3632_EXT_EN_MASK);
|
||||
if (ret) {
|
||||
if (gpiod)
|
||||
gpiod_put(gpiod);
|
||||
dev_err(dev, "External pin err: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user