mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 06:31:58 +02:00
hwmon: (max31827) Update bits with shutdown_write()
Added 'mask' parameter to the shutdown_write() function. Now it can either write or update bits, depending on the value of mask. This is needed, because for alarms a write is necessary, but for resolution only the resolution bits should be updated. Signed-off-by: Daniel Matyas <daniel.matyas@analog.com> Link: https://lore.kernel.org/r/20231031182158.124608-3-daniel.matyas@analog.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
cbeb1d2acf
commit
8a0806df46
|
|
@ -81,7 +81,7 @@ static const struct regmap_config max31827_regmap = {
|
|||
};
|
||||
|
||||
static int shutdown_write(struct max31827_state *st, unsigned int reg,
|
||||
unsigned int val)
|
||||
unsigned int mask, unsigned int val)
|
||||
{
|
||||
unsigned int cfg;
|
||||
unsigned int cnv_rate;
|
||||
|
|
@ -98,7 +98,10 @@ static int shutdown_write(struct max31827_state *st, unsigned int reg,
|
|||
mutex_lock(&st->lock);
|
||||
|
||||
if (!st->enable) {
|
||||
ret = regmap_write(st->regmap, reg, val);
|
||||
if (!mask)
|
||||
ret = regmap_write(st->regmap, reg, val);
|
||||
else
|
||||
ret = regmap_update_bits(st->regmap, reg, mask, val);
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
|
|
@ -113,7 +116,11 @@ static int shutdown_write(struct max31827_state *st, unsigned int reg,
|
|||
if (ret)
|
||||
goto unlock;
|
||||
|
||||
ret = regmap_write(st->regmap, reg, val);
|
||||
if (!mask)
|
||||
ret = regmap_write(st->regmap, reg, val);
|
||||
else
|
||||
ret = regmap_update_bits(st->regmap, reg, mask, val);
|
||||
|
||||
if (ret)
|
||||
goto unlock;
|
||||
|
||||
|
|
@ -131,7 +138,7 @@ static int write_alarm_val(struct max31827_state *st, unsigned int reg,
|
|||
{
|
||||
val = MAX31827_M_DGR_TO_16_BIT(val);
|
||||
|
||||
return shutdown_write(st, reg, val);
|
||||
return shutdown_write(st, reg, 0, val);
|
||||
}
|
||||
|
||||
static umode_t max31827_is_visible(const void *state,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user