Unverified Commit 48bd226f authored by Linus Walleij's avatar Linus Walleij Committed by Mark Brown
Browse files

regulator: max8973: Let core handle GPIO descriptor



The probe path of this driver is a bit complex: sometimes the
GPIO descriptor is passed to the regulator core, sometimes
it is not.

To handle it in a simple way: stick with the devm_* resource
management and unhinge the GPIO descriptor devres handling
right before passing it to the regulator core, if we pass it
to the regulator core.

Fixes: e7d2be69 ("regulator: max8973: Pass descriptor instead of GPIO number")
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Reviewed-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Reviewed-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 891ddbc7
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -808,7 +808,13 @@ static int max8973_probe(struct i2c_client *client,
	config.of_node = client->dev.of_node;
	config.regmap = max->regmap;

	/* Register the regulators */
	/*
	 * Register the regulators
	 * Turn the GPIO descriptor over to the regulator core for
	 * lifecycle management if we pass an ena_gpiod.
	 */
	if (config.ena_gpiod)
		devm_gpiod_unhinge(&client->dev, config.ena_gpiod);
	rdev = devm_regulator_register(&client->dev, &max->desc, &config);
	if (IS_ERR(rdev)) {
		ret = PTR_ERR(rdev);