summaryrefslogtreecommitdiff
path: root/drivers/hwmon/lm90.c
diff options
context:
space:
mode:
authorGuenter Roeck <linux@roeck-us.net>2024-05-28 13:42:42 -0700
committerGuenter Roeck <linux@roeck-us.net>2024-06-03 20:26:31 -0700
commitfcbb583f33af99e260aca2b5893b21ccf1021285 (patch)
tree763f9c01d496b4f13c5ac9ef55e58ae48e3b268d /drivers/hwmon/lm90.c
parent4ce6e8a859f0503d97aac6869bc3b1a24b15601d (diff)
hwmon: (lm90) Convert to use PEC support from hwmon core
Replace driver specific PEC handling code with hardware monitoring core functionality. Cc: Radu Sabau <radu.sabau@analog.com> Acked-by: Nuno Sa <nuno.sa@analog.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/lm90.c')
-rw-r--r--drivers/hwmon/lm90.c56
1 files changed, 2 insertions, 54 deletions
diff --git a/drivers/hwmon/lm90.c b/drivers/hwmon/lm90.c
index e0d7454a301c..40d9e21b528c 100644
--- a/drivers/hwmon/lm90.c
+++ b/drivers/hwmon/lm90.c
@@ -1270,42 +1270,6 @@ static int lm90_update_device(struct device *dev)
return 0;
}
-/* pec used for devices with PEC support */
-static ssize_t pec_show(struct device *dev, struct device_attribute *dummy,
- char *buf)
-{
- struct i2c_client *client = to_i2c_client(dev);
-
- return sprintf(buf, "%d\n", !!(client->flags & I2C_CLIENT_PEC));
-}
-
-static ssize_t pec_store(struct device *dev, struct device_attribute *dummy,
- const char *buf, size_t count)
-{
- struct i2c_client *client = to_i2c_client(dev);
- long val;
- int err;
-
- err = kstrtol(buf, 10, &val);
- if (err < 0)
- return err;
-
- switch (val) {
- case 0:
- client->flags &= ~I2C_CLIENT_PEC;
- break;
- case 1:
- client->flags |= I2C_CLIENT_PEC;
- break;
- default:
- return -EINVAL;
- }
-
- return count;
-}
-
-static DEVICE_ATTR_RW(pec);
-
static int lm90_temp_get_resolution(struct lm90_data *data, int index)
{
switch (index) {
@@ -2659,11 +2623,6 @@ static irqreturn_t lm90_irq_thread(int irq, void *dev_id)
return IRQ_NONE;
}
-static void lm90_remove_pec(void *dev)
-{
- device_remove_file(dev, &dev_attr_pec);
-}
-
static int lm90_probe_channel_from_dt(struct i2c_client *client,
struct device_node *child,
struct lm90_data *data)
@@ -2802,6 +2761,8 @@ static int lm90_probe(struct i2c_client *client)
data->chip_config[0] |= HWMON_C_UPDATE_INTERVAL;
if (data->flags & LM90_HAVE_FAULTQUEUE)
data->chip_config[0] |= HWMON_C_TEMP_SAMPLES;
+ if (data->flags & (LM90_HAVE_PEC | LM90_HAVE_PARTIAL_PEC))
+ data->chip_config[0] |= HWMON_C_PEC;
data->info[1] = &data->temp_info;
info = &data->temp_info;
@@ -2878,19 +2839,6 @@ static int lm90_probe(struct i2c_client *client)
return err;
}
- /*
- * The 'pec' attribute is attached to the i2c device and thus created
- * separately.
- */
- if (data->flags & (LM90_HAVE_PEC | LM90_HAVE_PARTIAL_PEC)) {
- err = device_create_file(dev, &dev_attr_pec);
- if (err)
- return err;
- err = devm_add_action_or_reset(dev, lm90_remove_pec, dev);
- if (err)
- return err;
- }
-
hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name,
data, &data->chip,
NULL);