watchdog: wm831x_wdt: use devm_gpio_request_one()
authorJingoo Han <jg1.han@samsung.com>
Mon, 29 Apr 2013 09:31:20 +0000 (18:31 +0900)
committerWim Van Sebroeck <wim@iguana.be>
Thu, 11 Jul 2013 19:05:02 +0000 (21:05 +0200)
Use devm_gpio_request_one() to make cleanup paths simpler.
Also, GPIOF_DIR_OUT | GPIOF_INIT_LOW is replaced with
GPIOF_OUT_INIT_LOW.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
drivers/watchdog/wm831x_wdt.c

index 9dcb6d0822774a2737c7171600bff911cf799055..3348ddd618c7755bb852186403167df22064a307 100644 (file)
@@ -247,9 +247,10 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
                reg |= pdata->software << WM831X_WDOG_RST_SRC_SHIFT;
 
                if (pdata->update_gpio) {
-                       ret = gpio_request_one(pdata->update_gpio,
-                                              GPIOF_DIR_OUT | GPIOF_INIT_LOW,
-                                              "Watchdog update");
+                       ret = devm_gpio_request_one(&pdev->dev,
+                                               pdata->update_gpio,
+                                               GPIOF_OUT_INIT_LOW,
+                                               "Watchdog update");
                        if (ret < 0) {
                                dev_err(wm831x->dev,
                                        "Failed to request update GPIO: %d\n",
@@ -270,7 +271,7 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
                } else {
                        dev_err(wm831x->dev,
                                "Failed to unlock security key: %d\n", ret);
-                       goto err_gpio;
+                       goto err;
                }
        }
 
@@ -278,16 +279,13 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
        if (ret != 0) {
                dev_err(wm831x->dev, "watchdog_register_device() failed: %d\n",
                        ret);
-               goto err_gpio;
+               goto err;
        }
 
        dev_set_drvdata(&pdev->dev, driver_data);
 
        return 0;
 
-err_gpio:
-       if (driver_data->update_gpio)
-               gpio_free(driver_data->update_gpio);
 err:
        return ret;
 }
@@ -298,9 +296,6 @@ static int wm831x_wdt_remove(struct platform_device *pdev)
 
        watchdog_unregister_device(&driver_data->wdt);
 
-       if (driver_data->update_gpio)
-               gpio_free(driver_data->update_gpio);
-
        return 0;
 }