hwmon: (pmbus/lm25066) Ignore byte writes to non-zero pages
pmbus_clear_faults() attempts to clear faults on non-existing real pages. As a result, the command error bit in the status register is set, and faults are not really cleared. All byte writes to non-zero pages are requests to clear the status register on that page. Since non-zero pages are virtual and do not exist on the chip, there is nothing to do, and such requests have to be ignored. This fixes above problem. Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> Reviewed-by: Robert Coulson <robert.coulson@ericsson.com>
This commit is contained in:
parent
044cd3a574
commit
3a2805e845
1 changed files with 12 additions and 0 deletions
|
@ -161,6 +161,17 @@ static int lm25066_write_word_data(struct i2c_client *client, int page, int reg,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int lm25066_write_byte(struct i2c_client *client, int page, u8 value)
|
||||||
|
{
|
||||||
|
if (page > 1)
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (page == 0)
|
||||||
|
return pmbus_write_byte(client, 0, value);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int lm25066_probe(struct i2c_client *client,
|
static int lm25066_probe(struct i2c_client *client,
|
||||||
const struct i2c_device_id *id)
|
const struct i2c_device_id *id)
|
||||||
{
|
{
|
||||||
|
@ -204,6 +215,7 @@ static int lm25066_probe(struct i2c_client *client,
|
||||||
|
|
||||||
info->read_word_data = lm25066_read_word_data;
|
info->read_word_data = lm25066_read_word_data;
|
||||||
info->write_word_data = lm25066_write_word_data;
|
info->write_word_data = lm25066_write_word_data;
|
||||||
|
info->write_byte = lm25066_write_byte;
|
||||||
|
|
||||||
switch (id->driver_data) {
|
switch (id->driver_data) {
|
||||||
case lm25066:
|
case lm25066:
|
||||||
|
|
Loading…
Add table
Reference in a new issue