|
@@ -354,11 +354,7 @@ static const struct attribute_group ds1621_group = {
|
|
|
.attrs = ds1621_attributes,
|
|
|
.is_visible = ds1621_attribute_visible
|
|
|
};
|
|
|
-
|
|
|
-static const struct attribute_group *ds1621_groups[] = {
|
|
|
- &ds1621_group,
|
|
|
- NULL
|
|
|
-};
|
|
|
+__ATTRIBUTE_GROUPS(ds1621);
|
|
|
|
|
|
static int ds1621_probe(struct i2c_client *client,
|
|
|
const struct i2c_device_id *id)
|
|
@@ -379,23 +375,12 @@ static int ds1621_probe(struct i2c_client *client,
|
|
|
/* Initialize the DS1621 chip */
|
|
|
ds1621_init_client(data, client);
|
|
|
|
|
|
- hwmon_dev = hwmon_device_register_with_groups(&client->dev,
|
|
|
- client->name, data,
|
|
|
- ds1621_groups);
|
|
|
+ hwmon_dev = devm_hwmon_device_register_with_groups(&client->dev,
|
|
|
+ client->name, data,
|
|
|
+ ds1621_groups);
|
|
|
if (IS_ERR(hwmon_dev))
|
|
|
return PTR_ERR(hwmon_dev);
|
|
|
|
|
|
- i2c_set_clientdata(client, hwmon_dev);
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static int ds1621_remove(struct i2c_client *client)
|
|
|
-{
|
|
|
- struct device *hwmon_dev = i2c_get_clientdata(client);
|
|
|
-
|
|
|
- hwmon_device_unregister(hwmon_dev);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -416,7 +401,6 @@ static struct i2c_driver ds1621_driver = {
|
|
|
.name = "ds1621",
|
|
|
},
|
|
|
.probe = ds1621_probe,
|
|
|
- .remove = ds1621_remove,
|
|
|
.id_table = ds1621_id,
|
|
|
};
|
|
|
|