summaryrefslogtreecommitdiff
path: root/drivers/watchdog
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2016-01-03 15:11:57 -0800
committerWim Van Sebroeck <wim@iguana.be>2016-01-11 21:53:58 +0100
commit2c2f3080de7341f58a5d0e8ea31cc66dd369b8f4 (patch)
tree70efbf2d2dd51ff2624708522f0248ec9a25444a /drivers/watchdog
parentfaa584757b63aad42d19f1c6a6eac2c848618f83 (diff)
watchdog: ziirave: Use watchdog infrastructure to create sysfs attributes
The watchdog core now supports creating driver specific sysfs attributes when creating the watchdog device. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Diffstat (limited to 'drivers/watchdog')
-rw-r--r--drivers/watchdog/ziirave_wdt.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/watchdog/ziirave_wdt.c b/drivers/watchdog/ziirave_wdt.c
index b498fdcc231a..0c7cb7302cf0 100644
--- a/drivers/watchdog/ziirave_wdt.c
+++ b/drivers/watchdog/ziirave_wdt.c
@@ -207,10 +207,7 @@ static struct attribute *ziirave_wdt_attrs[] = {
&dev_attr_reset_reason.attr,
NULL
};
-
-static const struct attribute_group ziirave_wdt_sysfs_files = {
- .attrs = ziirave_wdt_attrs,
-};
+ATTRIBUTE_GROUPS(ziirave_wdt);
static int ziirave_wdt_init_duration(struct i2c_client *client)
{
@@ -260,6 +257,7 @@ static int ziirave_wdt_probe(struct i2c_client *client,
w_priv->wdd.min_timeout = ZIIRAVE_TIMEOUT_MIN;
w_priv->wdd.max_timeout = ZIIRAVE_TIMEOUT_MAX;
w_priv->wdd.parent = &client->dev;
+ w_priv->wdd.groups = ziirave_wdt_groups;
ret = watchdog_init_timeout(&w_priv->wdd, wdt_timeout, &client->dev);
if (ret) {
@@ -327,26 +325,14 @@ static int ziirave_wdt_probe(struct i2c_client *client,
return -ENODEV;
ret = watchdog_register_device(&w_priv->wdd);
- if (ret)
- return ret;
-
- ret = sysfs_create_group(&w_priv->wdd.dev->kobj,
- &ziirave_wdt_sysfs_files);
- if (ret) {
- watchdog_unregister_device(&w_priv->wdd);
- return ret;
- }
-
- return 0;
+ return ret;
}
static int ziirave_wdt_remove(struct i2c_client *client)
{
struct ziirave_wdt_data *w_priv = i2c_get_clientdata(client);
- sysfs_remove_group(&client->dev.kobj, &ziirave_wdt_sysfs_files);
-
watchdog_unregister_device(&w_priv->wdd);
return 0;