]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regulator: bq257xx: Make OTG enable GPIO really optional
authorAlexey Charkov <alchark@flipper.net>
Tue, 31 Mar 2026 15:43:41 +0000 (19:43 +0400)
committerMark Brown <broonie@kernel.org>
Fri, 10 Apr 2026 10:52:40 +0000 (11:52 +0100)
The bindings describe the OTG enable GPIO as optional, but the driver
gets upset if it's not provided in the device tree.

Make the driver accept the absence of the GPIO, and just use register
writes to handle OTG mode in that case, skipping the error message for
-ENOENT.

Acked-by: Mark Brown <broonie@kernel.org>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Alexey Charkov <alchark@flipper.net>
Link: https://patch.msgid.link/20260331-bq25792-v6-4-0278fba33eb9@flipper.net
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/bq257xx-regulator.c

index fcc2cfd1454beeeb337d8c817c0254dccb7cffdd..09c466052c0487b346c9482c86ec68b310d0e479 100644 (file)
@@ -127,6 +127,12 @@ static void bq257xx_reg_dt_parse_gpio(struct platform_device *pdev)
        of_node_put(subchild);
 
        if (IS_ERR(pdata->otg_en_gpio)) {
+               if (PTR_ERR(pdata->otg_en_gpio) == -ENOENT) {
+                       /* No GPIO, will only use register writes for OTG */
+                       pdata->otg_en_gpio = NULL;
+                       return;
+               }
+
                dev_err(&pdev->dev, "Error getting enable gpio: %ld\n",
                        PTR_ERR(pdata->otg_en_gpio));
                return;