hwmon: (sch5627) Use bit macros when accessing the control register
authorArmin Wolf <W_Armin@gmx.de>
Thu, 7 Sep 2023 05:26:35 +0000 (07:26 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 20 Nov 2023 10:59:08 +0000 (11:59 +0100)
[ Upstream commit 7f0b28e0653f36b51542d25dd54ed312c397ecfc ]

Use bit macros then accessing SCH5627_REG_CTRL, so that people
do not need to look at the datasheet to find out what each bit
does.

Tested on a Fujitsu Esprimo P720.

Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Link: https://lore.kernel.org/r/20230907052639.16491-2-W_Armin@gmx.de
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Stable-dep-of: 7da8a6354360 ("hwmon: (sch5627) Disallow write access if virtual registers are locked")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/hwmon/sch5627.c

index 1bbda3b..0eefb8c 100644 (file)
@@ -6,6 +6,7 @@
 
 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
 
+#include <linux/bits.h>
 #include <linux/module.h>
 #include <linux/mod_devicetable.h>
 #include <linux/init.h>
@@ -32,6 +33,9 @@
 #define SCH5627_REG_PRIMARY_ID         0x3f
 #define SCH5627_REG_CTRL               0x40
 
+#define SCH5627_CTRL_START             BIT(0)
+#define SCH5627_CTRL_VBAT              BIT(4)
+
 #define SCH5627_NO_TEMPS               8
 #define SCH5627_NO_FANS                        4
 #define SCH5627_NO_IN                  5
@@ -147,7 +151,8 @@ static int sch5627_update_in(struct sch5627_data *data)
 
        /* Trigger a Vbat voltage measurement every 5 minutes */
        if (time_after(jiffies, data->last_battery + 300 * HZ)) {
-               sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, data->control | 0x10);
+               sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL,
+                                         data->control | SCH5627_CTRL_VBAT);
                data->last_battery = jiffies;
        }
 
@@ -483,14 +488,13 @@ static int sch5627_probe(struct platform_device *pdev)
                return val;
 
        data->control = val;
-       if (!(data->control & 0x01)) {
+       if (!(data->control & SCH5627_CTRL_START)) {
                pr_err("hardware monitoring not enabled\n");
                return -ENODEV;
        }
        /* Trigger a Vbat voltage measurement, so that we get a valid reading
           the first time we read Vbat */
-       sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL,
-                                 data->control | 0x10);
+       sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL, data->control | SCH5627_CTRL_VBAT);
        data->last_battery = jiffies;
 
        /*