10655bb6df
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>
26 lines
1.2 KiB
C
26 lines
1.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/***************************************************************************
|
|
* Copyright (C) 2010-2012 Hans de Goede <hdegoede@redhat.com> *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include <linux/mutex.h>
|
|
#include <linux/regmap.h>
|
|
|
|
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);
|
|
int sch56xx_read_virtual_reg12(u16 addr, u16 msb_reg, u16 lsn_reg,
|
|
int high_nibble);
|
|
|
|
void sch56xx_watchdog_register(struct device *parent, u16 addr, u32 revision,
|
|
struct mutex *io_lock, int check_enabled);
|
|
void sch56xx_watchdog_unregister(struct sch56xx_watchdog_data *data);
|