diff options
| -rw-r--r-- | Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt | 10 | ||||
| -rw-r--r-- | arch/arm/boot/dts/twl4030.dtsi | 4 | ||||
| -rw-r--r-- | drivers/watchdog/da9055_wdt.c | 17 | ||||
| -rw-r--r-- | drivers/watchdog/omap_wdt.c | 1 | ||||
| -rw-r--r-- | drivers/watchdog/twl4030_wdt.c | 11 |
5 files changed, 29 insertions, 14 deletions
diff --git a/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt new file mode 100644 index 000000000000..80a37193c0b8 --- /dev/null +++ b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | Device tree bindings for twl4030-wdt driver (TWL4030 watchdog) | ||
| 2 | |||
| 3 | Required properties: | ||
| 4 | compatible = "ti,twl4030-wdt"; | ||
| 5 | |||
| 6 | Example: | ||
| 7 | |||
| 8 | watchdog { | ||
| 9 | compatible = "ti,twl4030-wdt"; | ||
| 10 | }; | ||
diff --git a/arch/arm/boot/dts/twl4030.dtsi b/arch/arm/boot/dts/twl4030.dtsi index 63411b036932..ed0bc9546837 100644 --- a/arch/arm/boot/dts/twl4030.dtsi +++ b/arch/arm/boot/dts/twl4030.dtsi | |||
| @@ -19,6 +19,10 @@ | |||
| 19 | interrupts = <11>; | 19 | interrupts = <11>; |
| 20 | }; | 20 | }; |
| 21 | 21 | ||
| 22 | watchdog { | ||
| 23 | compatible = "ti,twl4030-wdt"; | ||
| 24 | }; | ||
| 25 | |||
| 22 | vdac: regulator-vdac { | 26 | vdac: regulator-vdac { |
| 23 | compatible = "ti,twl4030-vdac"; | 27 | compatible = "ti,twl4030-vdac"; |
| 24 | regulator-min-microvolt = <1800000>; | 28 | regulator-min-microvolt = <1800000>; |
diff --git a/drivers/watchdog/da9055_wdt.c b/drivers/watchdog/da9055_wdt.c index 709ea1aefebb..f5ad10546fc9 100644 --- a/drivers/watchdog/da9055_wdt.c +++ b/drivers/watchdog/da9055_wdt.c | |||
| @@ -72,20 +72,21 @@ static int da9055_wdt_set_timeout(struct watchdog_device *wdt_dev, | |||
| 72 | DA9055_TWDSCALE_MASK, | 72 | DA9055_TWDSCALE_MASK, |
| 73 | da9055_wdt_maps[i].reg_val << | 73 | da9055_wdt_maps[i].reg_val << |
| 74 | DA9055_TWDSCALE_SHIFT); | 74 | DA9055_TWDSCALE_SHIFT); |
| 75 | if (ret < 0) | 75 | if (ret < 0) { |
| 76 | dev_err(da9055->dev, | 76 | dev_err(da9055->dev, |
| 77 | "Failed to update timescale bit, %d\n", ret); | 77 | "Failed to update timescale bit, %d\n", ret); |
| 78 | return ret; | ||
| 79 | } | ||
| 78 | 80 | ||
| 79 | wdt_dev->timeout = timeout; | 81 | wdt_dev->timeout = timeout; |
| 80 | 82 | ||
| 81 | return ret; | 83 | return 0; |
| 82 | } | 84 | } |
| 83 | 85 | ||
| 84 | static int da9055_wdt_ping(struct watchdog_device *wdt_dev) | 86 | static int da9055_wdt_ping(struct watchdog_device *wdt_dev) |
| 85 | { | 87 | { |
| 86 | struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev); | 88 | struct da9055_wdt_data *driver_data = watchdog_get_drvdata(wdt_dev); |
| 87 | struct da9055 *da9055 = driver_data->da9055; | 89 | struct da9055 *da9055 = driver_data->da9055; |
| 88 | int ret; | ||
| 89 | 90 | ||
| 90 | /* | 91 | /* |
| 91 | * We have a minimum time for watchdog window called TWDMIN. A write | 92 | * We have a minimum time for watchdog window called TWDMIN. A write |
| @@ -94,18 +95,12 @@ static int da9055_wdt_ping(struct watchdog_device *wdt_dev) | |||
| 94 | mdelay(DA9055_TWDMIN); | 95 | mdelay(DA9055_TWDMIN); |
| 95 | 96 | ||
| 96 | /* Reset the watchdog timer */ | 97 | /* Reset the watchdog timer */ |
| 97 | ret = da9055_reg_update(da9055, DA9055_REG_CONTROL_E, | 98 | return da9055_reg_update(da9055, DA9055_REG_CONTROL_E, |
| 98 | DA9055_WATCHDOG_MASK, 1); | 99 | DA9055_WATCHDOG_MASK, 1); |
| 99 | |||
| 100 | return ret; | ||
| 101 | } | 100 | } |
| 102 | 101 | ||
| 103 | static void da9055_wdt_release_resources(struct kref *r) | 102 | static void da9055_wdt_release_resources(struct kref *r) |
| 104 | { | 103 | { |
| 105 | struct da9055_wdt_data *driver_data = | ||
| 106 | container_of(r, struct da9055_wdt_data, kref); | ||
| 107 | |||
| 108 | kfree(driver_data); | ||
| 109 | } | 104 | } |
| 110 | 105 | ||
| 111 | static void da9055_wdt_ref(struct watchdog_device *wdt_dev) | 106 | static void da9055_wdt_ref(struct watchdog_device *wdt_dev) |
diff --git a/drivers/watchdog/omap_wdt.c b/drivers/watchdog/omap_wdt.c index 34ed61ea02b4..b0e541d022e6 100644 --- a/drivers/watchdog/omap_wdt.c +++ b/drivers/watchdog/omap_wdt.c | |||
| @@ -296,7 +296,6 @@ static int omap_wdt_remove(struct platform_device *pdev) | |||
| 296 | { | 296 | { |
| 297 | struct watchdog_device *wdog = platform_get_drvdata(pdev); | 297 | struct watchdog_device *wdog = platform_get_drvdata(pdev); |
| 298 | struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); | 298 | struct omap_wdt_dev *wdev = watchdog_get_drvdata(wdog); |
| 299 | struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | ||
| 300 | 299 | ||
| 301 | pm_runtime_disable(wdev->dev); | 300 | pm_runtime_disable(wdev->dev); |
| 302 | watchdog_unregister_device(wdog); | 301 | watchdog_unregister_device(wdog); |
diff --git a/drivers/watchdog/twl4030_wdt.c b/drivers/watchdog/twl4030_wdt.c index 81918cf8993b..0f03106f7516 100644 --- a/drivers/watchdog/twl4030_wdt.c +++ b/drivers/watchdog/twl4030_wdt.c | |||
| @@ -131,14 +131,21 @@ static int twl4030_wdt_resume(struct platform_device *pdev) | |||
| 131 | #define twl4030_wdt_resume NULL | 131 | #define twl4030_wdt_resume NULL |
| 132 | #endif | 132 | #endif |
| 133 | 133 | ||
| 134 | static const struct of_device_id twl_wdt_of_match[] = { | ||
| 135 | { .compatible = "ti,twl4030-wdt", }, | ||
| 136 | { }, | ||
| 137 | }; | ||
| 138 | MODULE_DEVICE_TABLE(of, twl_wdt_of_match); | ||
| 139 | |||
| 134 | static struct platform_driver twl4030_wdt_driver = { | 140 | static struct platform_driver twl4030_wdt_driver = { |
| 135 | .probe = twl4030_wdt_probe, | 141 | .probe = twl4030_wdt_probe, |
| 136 | .remove = twl4030_wdt_remove, | 142 | .remove = twl4030_wdt_remove, |
| 137 | .suspend = twl4030_wdt_suspend, | 143 | .suspend = twl4030_wdt_suspend, |
| 138 | .resume = twl4030_wdt_resume, | 144 | .resume = twl4030_wdt_resume, |
| 139 | .driver = { | 145 | .driver = { |
| 140 | .owner = THIS_MODULE, | 146 | .owner = THIS_MODULE, |
| 141 | .name = "twl4030_wdt", | 147 | .name = "twl4030_wdt", |
| 148 | .of_match_table = twl_wdt_of_match, | ||
| 142 | }, | 149 | }, |
| 143 | }; | 150 | }; |
| 144 | 151 | ||
