Unverified Commit c05d0b32 authored by Andreas Kemnade's avatar Andreas Kemnade Committed by Mark Brown
Browse files

regulator: sy7636a: fix lifecycle of power good gpio



Attach the power good gpio to the regulator device devres instead of the
parent device to fix problems if probe is run multiple times
(rmmod/insmod or some deferral).

Fixes: 8c485bed ("regulator: sy7636a: Initial commit")
Signed-off-by: default avatarAndreas Kemnade <akemnade@kernel.org>
Reviewed-by: default avatarAlistair Francis <alistair@alistair23.me>
Reviewed-by: default avatarPeng Fan <peng.fan@nxp.com>
Message-ID: <20250906-sy7636-rsrc-v1-2-e2886a9763a7@kernel.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b320789d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -83,9 +83,11 @@ static int sy7636a_regulator_probe(struct platform_device *pdev)
	if (!regmap)
		return -EPROBE_DEFER;

	gdp = devm_gpiod_get(pdev->dev.parent, "epd-pwr-good", GPIOD_IN);
	device_set_of_node_from_dev(&pdev->dev, pdev->dev.parent);

	gdp = devm_gpiod_get(&pdev->dev, "epd-pwr-good", GPIOD_IN);
	if (IS_ERR(gdp)) {
		dev_err(pdev->dev.parent, "Power good GPIO fault %ld\n", PTR_ERR(gdp));
		dev_err(&pdev->dev, "Power good GPIO fault %ld\n", PTR_ERR(gdp));
		return PTR_ERR(gdp);
	}

@@ -105,7 +107,6 @@ static int sy7636a_regulator_probe(struct platform_device *pdev)
	}

	config.dev = &pdev->dev;
	config.dev->of_node = pdev->dev.parent->of_node;
	config.regmap = regmap;

	rdev = devm_regulator_register(&pdev->dev, &desc, &config);