forked from Minki/linux
watchdog: wm831x_wdt: Remove GPIO handling
An attempt to convert the driver to using GPIO descriptors (see Link tag) was discouraged in favor of deleting the handling of the update GPIO altogehter since there are no in-tree users. This patch deletes the GPIO handling instead. Cc: Richard Fitzgerald <rf@opensource.cirrus.com> Cc: Charles Keepax <ckeepax@opensource.cirrus.com> Cc: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/linux-watchdog/20200210102209.289379-1-linus.walleij@linaro.org/ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com> Link: https://lore.kernel.org/r/20200229115046.57781-1-linus.walleij@linaro.org Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@linux-watchdog.org>
This commit is contained in:
parent
dca96e0117
commit
3f9d513331
@ -13,7 +13,6 @@
|
|||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/watchdog.h>
|
#include <linux/watchdog.h>
|
||||||
#include <linux/uaccess.h>
|
#include <linux/uaccess.h>
|
||||||
#include <linux/gpio.h>
|
|
||||||
|
|
||||||
#include <linux/mfd/wm831x/core.h>
|
#include <linux/mfd/wm831x/core.h>
|
||||||
#include <linux/mfd/wm831x/pdata.h>
|
#include <linux/mfd/wm831x/pdata.h>
|
||||||
@ -29,7 +28,6 @@ struct wm831x_wdt_drvdata {
|
|||||||
struct watchdog_device wdt;
|
struct watchdog_device wdt;
|
||||||
struct wm831x *wm831x;
|
struct wm831x *wm831x;
|
||||||
struct mutex lock;
|
struct mutex lock;
|
||||||
int update_gpio;
|
|
||||||
int update_state;
|
int update_state;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -103,14 +101,6 @@ static int wm831x_wdt_ping(struct watchdog_device *wdt_dev)
|
|||||||
|
|
||||||
mutex_lock(&driver_data->lock);
|
mutex_lock(&driver_data->lock);
|
||||||
|
|
||||||
if (driver_data->update_gpio) {
|
|
||||||
gpio_set_value_cansleep(driver_data->update_gpio,
|
|
||||||
driver_data->update_state);
|
|
||||||
driver_data->update_state = !driver_data->update_state;
|
|
||||||
ret = 0;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
reg = wm831x_reg_read(wm831x, WM831X_WATCHDOG);
|
reg = wm831x_reg_read(wm831x, WM831X_WATCHDOG);
|
||||||
|
|
||||||
if (!(reg & WM831X_WDOG_RST_SRC)) {
|
if (!(reg & WM831X_WDOG_RST_SRC)) {
|
||||||
@ -239,23 +229,6 @@ static int wm831x_wdt_probe(struct platform_device *pdev)
|
|||||||
reg |= pdata->secondary << WM831X_WDOG_SECACT_SHIFT;
|
reg |= pdata->secondary << WM831X_WDOG_SECACT_SHIFT;
|
||||||
reg |= pdata->software << WM831X_WDOG_RST_SRC_SHIFT;
|
reg |= pdata->software << WM831X_WDOG_RST_SRC_SHIFT;
|
||||||
|
|
||||||
if (pdata->update_gpio) {
|
|
||||||
ret = devm_gpio_request_one(dev, pdata->update_gpio,
|
|
||||||
GPIOF_OUT_INIT_LOW,
|
|
||||||
"Watchdog update");
|
|
||||||
if (ret < 0) {
|
|
||||||
dev_err(wm831x->dev,
|
|
||||||
"Failed to request update GPIO: %d\n",
|
|
||||||
ret);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
driver_data->update_gpio = pdata->update_gpio;
|
|
||||||
|
|
||||||
/* Make sure the watchdog takes hardware updates */
|
|
||||||
reg |= WM831X_WDOG_RST_SRC;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = wm831x_reg_unlock(wm831x);
|
ret = wm831x_reg_unlock(wm831x);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
ret = wm831x_reg_write(wm831x, WM831X_WATCHDOG, reg);
|
ret = wm831x_reg_write(wm831x, WM831X_WATCHDOG, reg);
|
||||||
|
@ -89,7 +89,6 @@ enum wm831x_watchdog_action {
|
|||||||
|
|
||||||
struct wm831x_watchdog_pdata {
|
struct wm831x_watchdog_pdata {
|
||||||
enum wm831x_watchdog_action primary, secondary;
|
enum wm831x_watchdog_action primary, secondary;
|
||||||
int update_gpio;
|
|
||||||
unsigned int software:1;
|
unsigned int software:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user