1
0
Fork 0

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>
hifive-unleashed-5.1
Guenter Roeck 2011-07-29 23:05:25 -07:00
parent 044cd3a574
commit 3a2805e845
1 changed files with 12 additions and 0 deletions

View File

@ -161,6 +161,17 @@ static int lm25066_write_word_data(struct i2c_client *client, int page, int reg,
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,
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->write_word_data = lm25066_write_word_data;
info->write_byte = lm25066_write_byte;
switch (id->driver_data) {
case lm25066: