mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-24 04:03:37 +00:00
regulator: ad5398: change enable bit name to improve readibility
The mask name AD5398_CURRENT_EN_MASK is misleading, as it implies that setting bit 16 of the AD5398 enables current flow. In fact, setting this bit prevents current flow, due to this bit being a software power down control. This bit is referred to as "soft power down" in the datasheet. As such, change the name of the bit and modify its use in the driver to make the regulator more intuitively usable. (When calling ad5398_enable, current will start flowing, and vice versa). Signed-off-by: Isaac Scott <isaac.scott@ideasonboard.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Link: https://patch.msgid.link/20250128173143.959600-2-isaac.scott@ideasonboard.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
2014c95afe
commit
19d022d67d
@ -15,7 +15,7 @@
|
||||
#include <linux/regulator/driver.h>
|
||||
#include <linux/regulator/machine.h>
|
||||
|
||||
#define AD5398_CURRENT_EN_MASK 0x8000
|
||||
#define AD5398_SW_POWER_DOWN BIT(16)
|
||||
|
||||
struct ad5398_chip_info {
|
||||
struct i2c_client *client;
|
||||
@ -113,7 +113,7 @@ static int ad5398_set_current_limit(struct regulator_dev *rdev, int min_uA, int
|
||||
|
||||
/* prepare register data */
|
||||
selector = (selector << chip->current_offset) & chip->current_mask;
|
||||
data = (unsigned short)selector | (data & AD5398_CURRENT_EN_MASK);
|
||||
data = (unsigned short)selector | (data & AD5398_SW_POWER_DOWN);
|
||||
|
||||
/* write the new current value back as well as enable bit */
|
||||
ret = ad5398_write_reg(client, data);
|
||||
@ -132,10 +132,10 @@ static int ad5398_is_enabled(struct regulator_dev *rdev)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (data & AD5398_CURRENT_EN_MASK)
|
||||
return 1;
|
||||
else
|
||||
if (data & AD5398_SW_POWER_DOWN)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ad5398_enable(struct regulator_dev *rdev)
|
||||
@ -149,10 +149,10 @@ static int ad5398_enable(struct regulator_dev *rdev)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (data & AD5398_CURRENT_EN_MASK)
|
||||
if (!(data & AD5398_SW_POWER_DOWN))
|
||||
return 0;
|
||||
|
||||
data |= AD5398_CURRENT_EN_MASK;
|
||||
data &= ~AD5398_SW_POWER_DOWN;
|
||||
|
||||
ret = ad5398_write_reg(client, data);
|
||||
|
||||
@ -170,10 +170,10 @@ static int ad5398_disable(struct regulator_dev *rdev)
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if (!(data & AD5398_CURRENT_EN_MASK))
|
||||
if (data & AD5398_SW_POWER_DOWN)
|
||||
return 0;
|
||||
|
||||
data &= ~AD5398_CURRENT_EN_MASK;
|
||||
data |= AD5398_SW_POWER_DOWN;
|
||||
|
||||
ret = ad5398_write_reg(client, data);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user