On Thu, Apr 28, 2022 at 04:40:38PM +0200, Mårten Lindahl wrote: > Several of the manuals for devices supported by this driver describes > the need for a minimum wait time before the chip is ready to receive > next command. > > This wait time is already implemented in the driver as a ltc_wait_ready > function with a driver defined wait time of 100 ms, and is considered > for specific devices before reading/writing data on the pmbus. > > Since this driver uses the default pmbus_regulator_ops for the enable/ > disable/is_enabled functions we should add a driver specific callback > for write_byte_data to prevent bypassing the wait time recommendations > for the following devices: ltc3880/ltc3882/ltc3883/ltc3884/ltc3886/ > ltc3887/ltc3889/ltm4664/ltm4675/ltm4676/ltm4677/ltm4678/ltm4680/ltm4686/ > ltm4700/ltc7880. > > Signed-off-by: Mårten Lindahl <marten.lindahl@xxxxxxxx> Applied. Thanks, Guenter > --- > drivers/hwmon/pmbus/ltc2978.c | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c > index 0127273883f0..531aa674a928 100644 > --- a/drivers/hwmon/pmbus/ltc2978.c > +++ b/drivers/hwmon/pmbus/ltc2978.c > @@ -196,6 +196,17 @@ static int ltc_read_byte_data(struct i2c_client *client, int page, int reg) > return pmbus_read_byte_data(client, page, reg); > } > > +static int ltc_write_byte_data(struct i2c_client *client, int page, int reg, u8 value) > +{ > + int ret; > + > + ret = ltc_wait_ready(client); > + if (ret < 0) > + return ret; > + > + return pmbus_write_byte_data(client, page, reg, value); > +} > + > static int ltc_write_byte(struct i2c_client *client, int page, u8 byte) > { > int ret; > @@ -681,6 +692,7 @@ static int ltc2978_probe(struct i2c_client *client) > info = &data->info; > info->write_word_data = ltc2978_write_word_data; > info->write_byte = ltc_write_byte; > + info->write_byte_data = ltc_write_byte_data; > info->read_word_data = ltc_read_word_data; > info->read_byte_data = ltc_read_byte_data; >