summaryrefslogtreecommitdiff
path: root/drivers/hwmon/sch56xx-common.h
diff options
context:
space:
mode:
authorArmin Wolf <W_Armin@gmx.de>2023-09-07 07:26:38 +0200
committerGuenter Roeck <linux@roeck-us.net>2023-10-27 07:27:24 -0700
commit10655bb6df25514e0ae8406637c3b4acbc812fe5 (patch)
tree2118a9d4f105587300f747d731ee7999da7681b1 /drivers/hwmon/sch56xx-common.h
parenta54fe61639d9f3b6765fee32edda7cfceb6d705a (diff)
hwmon: (sch5627) Add support for writing limit registers
After some testing on a Fujitsu Esprimo P720, it turned out that the limit registers are indeed writable and affect the fan control algorithm. This is supported by the datasheet, which says that the fan control functions are based on the limit and parameter registers. Since accessing those registers is very inefficient, the existing regmap cache is used to cache those registers values. Tested on a Fujitsu Esprimo P720. Signed-off-by: Armin Wolf <W_Armin@gmx.de> Link: https://lore.kernel.org/r/20230907052639.16491-5-W_Armin@gmx.de Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/sch56xx-common.h')
-rw-r--r--drivers/hwmon/sch56xx-common.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/hwmon/sch56xx-common.h b/drivers/hwmon/sch56xx-common.h
index 3fb1cddbf977..7479a549a026 100644
--- a/drivers/hwmon/sch56xx-common.h
+++ b/drivers/hwmon/sch56xx-common.h
@@ -11,6 +11,9 @@ struct sch56xx_watchdog_data;
struct regmap *devm_regmap_init_sch56xx(struct device *dev, struct mutex *lock, u16 addr,
const struct regmap_config *config);
+int sch56xx_regmap_read16(struct regmap *map, unsigned int reg, unsigned int *val);
+int sch56xx_regmap_write16(struct regmap *map, unsigned int reg, unsigned int val);
+
int sch56xx_read_virtual_reg(u16 addr, u16 reg);
int sch56xx_write_virtual_reg(u16 addr, u16 reg, u8 val);
int sch56xx_read_virtual_reg16(u16 addr, u16 reg);