Message ID | 20200529124607.GA3469@cnn (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | [v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN | expand |
On 5/29/20 5:46 AM, Manikandan Elumalai wrote: > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> This is not valid. > > v2: > - Add Signed-off-by. > - Removed ADM1278_TEMP1_EN check. checkpatch reports: > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) #14: The adm1278 temperature sysfs attribute need it for one of the openbmc platform . CHECK: Alignment should match open parenthesis #45: FILE: drivers/hwmon/pmbus/adm1275.c:679: + ret = i2c_smbus_write_byte_data(client, + ADM1275_PMON_CONFIG, WARNING: suspect code indent for conditional statements (16, 16) #47: FILE: drivers/hwmon/pmbus/adm1275.c:681: + if (ret < 0) { + dev_err(&client->dev, ERROR: Missing Signed-off-by: line(s) total: 1 errors, 2 warnings, 1 checks, 33 lines checked Please follow published guidelines when submitting patches. > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > index 5caa37fb..ab5fceb 100644 > --- a/drivers/hwmon/pmbus/adm1275.c > +++ b/drivers/hwmon/pmbus/adm1275.c > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > tindex = 3; > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > + > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > + if (config < 0) > + return config; > + > + /* Enable TEMP1 by default */ > + config |= ADM1278_TEMP1_EN; > + ret = i2c_smbus_write_byte_data(client, > + ADM1275_PMON_CONFIG, > + config); > + if (ret < 0) { > + dev_err(&client->dev, > + "Failed to enable temperature config\n"); > + return -ENODEV; > + } This can be handled in a single operation, together with ADM1278_VOUT_EN below. There is no need for two separate write operations. Guenter > > /* Enable VOUT if not enabled (it is disabled by default) */ > if (!(config & ADM1278_VOUT_EN)) { > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > } > } > > - if (config & ADM1278_TEMP1_EN) > - info->func[0] |= > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > if (config & ADM1278_VIN_EN) > info->func[0] |= PMBUS_HAVE_VIN; > break; >
Hi Guenter, Thanks for the initial look at this. One question for you below... On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote: > On 5/29/20 5:46 AM, Manikandan Elumalai wrote: > > + /* Enable TEMP1 by default */ > > + config |= ADM1278_TEMP1_EN; > > + ret = i2c_smbus_write_byte_data(client, > > + ADM1275_PMON_CONFIG, > > + config); > > + if (ret < 0) { > > + dev_err(&client->dev, > > + "Failed to enable temperature config\n"); > > + return -ENODEV; > > + } > > This can be handled in a single operation, together with ADM1278_VOUT_EN > below. There is no need for two separate write operations. I don't know if you noticed here but the change ends up enabling TEMP1_EN in all cases. Is this acceptable? If not, do you have any preference on how it is selected for enablement? > > /* Enable VOUT if not enabled (it is disabled by default) */ > > if (!(config & ADM1278_VOUT_EN)) { > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > > } > > } > > > > - if (config & ADM1278_TEMP1_EN) > > - info->func[0] |= > > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > if (config & ADM1278_VIN_EN) > > info->func[0] |= PMBUS_HAVE_VIN; > > break; > > >
On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote: The adm1278 temperature sysfs attribute need it for one of the openbmc platform . This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> v2: - Add Signed-off-by. - Removed ADM1278_TEMP1_EN check. --- drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c index 5caa37fb..ab5fceb 100644 --- a/drivers/hwmon/pmbus/adm1275.c +++ b/drivers/hwmon/pmbus/adm1275.c @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, tindex = 3; info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; + + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); + if (config < 0) + return config; + + /* Enable TEMP1 by default */ + config |= ADM1278_TEMP1_EN; + ret = i2c_smbus_write_byte_data(client, + ADM1275_PMON_CONFIG, + config); + if (ret < 0) { + dev_err(&client->dev, + "Failed to enable temperature config\n"); + return -ENODEV; + } You don't need this above code removing check as below should be enough to populate sysfs entry you need. /* Enable VOUT if not enabled (it is disabled by default) */ if (!(config & ADM1278_VOUT_EN)) { @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, } } - if (config & ADM1278_TEMP1_EN) - info->func[0] |= - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; if (config & ADM1278_VIN_EN) info->func[0] |= PMBUS_HAVE_VIN; break; -- 2.7.4
On 5/29/20 10:42 AM, Patrick Williams wrote: > Hi Guenter, > > Thanks for the initial look at this. > > One question for you below... > > On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote: >> On 5/29/20 5:46 AM, Manikandan Elumalai wrote: >>> + /* Enable TEMP1 by default */ >>> + config |= ADM1278_TEMP1_EN; >>> + ret = i2c_smbus_write_byte_data(client, >>> + ADM1275_PMON_CONFIG, >>> + config); >>> + if (ret < 0) { >>> + dev_err(&client->dev, >>> + "Failed to enable temperature config\n"); >>> + return -ENODEV; >>> + } >> >> This can be handled in a single operation, together with ADM1278_VOUT_EN >> below. There is no need for two separate write operations. > > I don't know if you noticed here but the change ends up enabling > TEMP1_EN in all cases. Is this acceptable? If not, do you have any > preference on how it is selected for enablement? > I did. We are doing the same for output voltage already, so I am not that much concerned about it. If it is, we might consider adding _enable attribute support (see Documentation/hwmon/sysfs-interface.rst) to the PMBus core (presumably as virtual PMBus commands) and let the user enable/disable individual attributes as needed. What _should_ really be done, of course, is that the BIOS/ROMMON configures the chip as desired. Obviously that is not happening here. Guenter >>> /* Enable VOUT if not enabled (it is disabled by default) */ >>> if (!(config & ADM1278_VOUT_EN)) { >>> @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, >>> } >>> } >>> >>> - if (config & ADM1278_TEMP1_EN) >>> - info->func[0] |= >>> - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; >>> if (config & ADM1278_VIN_EN) >>> info->func[0] |= PMBUS_HAVE_VIN; >>> break; >>> >> >
On 5/29/20 10:57 AM, Vijay Khemka wrote: > > > On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote: > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> > > v2: > - Add Signed-off-by. > - Removed ADM1278_TEMP1_EN check. > --- > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > index 5caa37fb..ab5fceb 100644 > --- a/drivers/hwmon/pmbus/adm1275.c > +++ b/drivers/hwmon/pmbus/adm1275.c > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > tindex = 3; > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > + > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > + if (config < 0) > + return config; > + > + /* Enable TEMP1 by default */ > + config |= ADM1278_TEMP1_EN; > + ret = i2c_smbus_write_byte_data(client, > + ADM1275_PMON_CONFIG, > + config); > + if (ret < 0) { > + dev_err(&client->dev, > + "Failed to enable temperature config\n"); > + return -ENODEV; > + } > You don't need this above code removing check as below should be enough to > populate sysfs entry you need. > You mean you are only interested in having the attribute, even if it doesn't report anything useful because monitoring is disabled in the chip ? Sorry, I don't understand. Can you elaborate ? Thanks, Guenter > /* Enable VOUT if not enabled (it is disabled by default) */ > if (!(config & ADM1278_VOUT_EN)) { > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > } > } > > - if (config & ADM1278_TEMP1_EN) > - info->func[0] |= > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > if (config & ADM1278_VIN_EN) > info->func[0] |= PMBUS_HAVE_VIN; > break; > -- > 2.7.4 > > >
On 5/29/20, 11:56 AM, "Guenter Roeck" <groeck7@gmail.com on behalf of linux@roeck-us.net> wrote: On 5/29/20 10:57 AM, Vijay Khemka wrote: > > > On 5/29/20, 5:47 AM, "Manikandan Elumalai" <manikandan.hcl.ers.epl@gmail.com> wrote: > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> > > v2: > - Add Signed-off-by. > - Removed ADM1278_TEMP1_EN check. > --- > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > 1 file changed, 17 insertions(+), 4 deletions(-) > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > index 5caa37fb..ab5fceb 100644 > --- a/drivers/hwmon/pmbus/adm1275.c > +++ b/drivers/hwmon/pmbus/adm1275.c > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > tindex = 3; > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > + > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > + if (config < 0) > + return config; > + > + /* Enable TEMP1 by default */ > + config |= ADM1278_TEMP1_EN; > + ret = i2c_smbus_write_byte_data(client, > + ADM1275_PMON_CONFIG, > + config); > + if (ret < 0) { > + dev_err(&client->dev, > + "Failed to enable temperature config\n"); > + return -ENODEV; > + } > You don't need this above code removing check as below should be enough to > populate sysfs entry you need. > You mean you are only interested in having the attribute, even if it doesn't report anything useful because monitoring is disabled in the chip ? Sorry, I don't understand. Can you elaborate ? Sorry for misinterpretation, No I don't mean that. This should be fine. Thanks, Guenter > /* Enable VOUT if not enabled (it is disabled by default) */ > if (!(config & ADM1278_VOUT_EN)) { > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > } > } > > - if (config & ADM1278_TEMP1_EN) > - info->func[0] |= > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > if (config & ADM1278_VIN_EN) > info->func[0] |= PMBUS_HAVE_VIN; > break; > -- > 2.7.4 > > >
On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote: > On 5/29/20 5:46 AM, Manikandan Elumalai wrote: > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> > > This is not valid. > > > > > v2: > > - Add Signed-off-by. > > - Removed ADM1278_TEMP1_EN check. > > checkpatch reports: > > > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) > #14: > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > CHECK: Alignment should match open parenthesis > #45: FILE: drivers/hwmon/pmbus/adm1275.c:679: > + ret = i2c_smbus_write_byte_data(client, > + ADM1275_PMON_CONFIG, > > WARNING: suspect code indent for conditional statements (16, 16) > #47: FILE: drivers/hwmon/pmbus/adm1275.c:681: > + if (ret < 0) { > + dev_err(&client->dev, > > ERROR: Missing Signed-off-by: line(s) > > total: 1 errors, 2 warnings, 1 checks, 33 lines checked > > Please follow published guidelines when submitting patches. > > > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > > 1 file changed, 17 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > > index 5caa37fb..ab5fceb 100644 > > --- a/drivers/hwmon/pmbus/adm1275.c > > +++ b/drivers/hwmon/pmbus/adm1275.c > > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > > tindex = 3; > > > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > + > > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > > + if (config < 0) > > + return config; > > + > > + /* Enable TEMP1 by default */ > > + config |= ADM1278_TEMP1_EN; > > + ret = i2c_smbus_write_byte_data(client, > > + ADM1275_PMON_CONFIG, > > + config); > > + if (ret < 0) { > > + dev_err(&client->dev, > > + "Failed to enable temperature config\n"); > > + return -ENODEV; > > + } > > This can be handled in a single operation, together with ADM1278_VOUT_EN > below. There is no need for two separate write operations. > Thanks for review Guenter, Patrick and Vijay. Sorry for delay response. I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single operation and tested in platfrom . The changes given for quick look and will help if any misunderstand. --- a/drivers/hwmon/pmbus/adm1275.c +++ b/drivers/hwmon/pmbus/adm1275.c @@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client, tindex = 3; info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; /* Enable VOUT if not enabled (it is disabled by default) */ if (!(config & ADM1278_VOUT_EN)) { - config |= ADM1278_VOUT_EN; + config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN); ret = i2c_smbus_write_byte_data(client, ADM1275_PMON_CONFIG, config); @@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client, return -ENODEV; } } - - if (config & ADM1278_TEMP1_EN) - info->func[0] |= - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; if (config & ADM1278_VIN_EN) info->func[0] |= PMBUS_HAVE_VIN; break; > Guenter > > > > > /* Enable VOUT if not enabled (it is disabled by default) */ > > if (!(config & ADM1278_VOUT_EN)) { > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > > } > > } > > > > - if (config & ADM1278_TEMP1_EN) > > - info->func[0] |= > > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > if (config & ADM1278_VIN_EN) > > info->func[0] |= PMBUS_HAVE_VIN; > > break; > > >
On Fri, Jun 05, 2020 at 10:18:21PM +0530, Manikandan wrote: > On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote: > > On 5/29/20 5:46 AM, Manikandan Elumalai wrote: > > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > > > > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> > > > > This is not valid. > > > > > > > > v2: > > > - Add Signed-off-by. > > > - Removed ADM1278_TEMP1_EN check. > > > > checkpatch reports: > > > > > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) > > #14: > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > > > CHECK: Alignment should match open parenthesis > > #45: FILE: drivers/hwmon/pmbus/adm1275.c:679: > > + ret = i2c_smbus_write_byte_data(client, > > + ADM1275_PMON_CONFIG, > > > > WARNING: suspect code indent for conditional statements (16, 16) > > #47: FILE: drivers/hwmon/pmbus/adm1275.c:681: > > + if (ret < 0) { > > + dev_err(&client->dev, > > > > ERROR: Missing Signed-off-by: line(s) > > > > total: 1 errors, 2 warnings, 1 checks, 33 lines checked > > > > Please follow published guidelines when submitting patches. > > > > > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > > > 1 file changed, 17 insertions(+), 4 deletions(-) > > > > > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > > > index 5caa37fb..ab5fceb 100644 > > > --- a/drivers/hwmon/pmbus/adm1275.c > > > +++ b/drivers/hwmon/pmbus/adm1275.c > > > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > > > tindex = 3; > > > > > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > > > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > > > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > > > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > > + > > > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > > > + if (config < 0) > > > + return config; > > > + > > > + /* Enable TEMP1 by default */ > > > + config |= ADM1278_TEMP1_EN; > > > + ret = i2c_smbus_write_byte_data(client, > > > + ADM1275_PMON_CONFIG, > > > + config); > > > + if (ret < 0) { > > > + dev_err(&client->dev, > > > + "Failed to enable temperature config\n"); > > > + return -ENODEV; > > > + } > > > > This can be handled in a single operation, together with ADM1278_VOUT_EN > > below. There is no need for two separate write operations. > > > Thanks for review Guenter, Patrick and Vijay. > Sorry for delay response. > I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single > operation and tested in platfrom . > The changes given for quick look and will help if any misunderstand. > > --- a/drivers/hwmon/pmbus/adm1275.c > +++ b/drivers/hwmon/pmbus/adm1275.c > @@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client, > tindex = 3; > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > /* Enable VOUT if not enabled (it is disabled by default) */ > if (!(config & ADM1278_VOUT_EN)) { if (config & (ADM1278_VOUT_EN | ADM1278_TEMP1_EN) != ADM1278_VOUT_EN | ADM1278_TEMP1_EN) > - config |= ADM1278_VOUT_EN; > + config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN); ( ) is unnecessary here. > ret = i2c_smbus_write_byte_data(client, > ADM1275_PMON_CONFIG, > config); > @@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client, > return -ENODEV; > } > } > - > - if (config & ADM1278_TEMP1_EN) > - info->func[0] |= > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > if (config & ADM1278_VIN_EN) > info->func[0] |= PMBUS_HAVE_VIN; > break; > > Guenter > > > > > > > > /* Enable VOUT if not enabled (it is disabled by default) */ > > > if (!(config & ADM1278_VOUT_EN)) { > > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > > > } > > > } > > > > > > - if (config & ADM1278_TEMP1_EN) > > > - info->func[0] |= > > > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > > if (config & ADM1278_VIN_EN) > > > info->func[0] |= PMBUS_HAVE_VIN; > > > break; > > > > >
On Fri, Jun 05, 2020 at 11:04:51AM -0700, Guenter Roeck wrote: > On Fri, Jun 05, 2020 at 10:18:21PM +0530, Manikandan wrote: > > On Fri, May 29, 2020 at 10:30:16AM -0700, Guenter Roeck wrote: > > > On 5/29/20 5:46 AM, Manikandan Elumalai wrote: > > > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > > > This functionality is not enabled by default, so PMON_CONFIG needs to be modified in order to enable it. > > > > > > > > Signed-off-by : Manikandan Elumalai <manikandan.hcl.ers.epl@gmail.com> > > > > > > This is not valid. > > > > > > > > > > > v2: > > > > - Add Signed-off-by. > > > > - Removed ADM1278_TEMP1_EN check. > > > > > > checkpatch reports: > > > > > > > ---WARNING: Possible unwrapped commit description (prefer a maximum 75 chars per line) > > > #14: > > > The adm1278 temperature sysfs attribute need it for one of the openbmc platform . > > > > > > CHECK: Alignment should match open parenthesis > > > #45: FILE: drivers/hwmon/pmbus/adm1275.c:679: > > > + ret = i2c_smbus_write_byte_data(client, > > > + ADM1275_PMON_CONFIG, > > > > > > WARNING: suspect code indent for conditional statements (16, 16) > > > #47: FILE: drivers/hwmon/pmbus/adm1275.c:681: > > > + if (ret < 0) { > > > + dev_err(&client->dev, > > > > > > ERROR: Missing Signed-off-by: line(s) > > > > > > total: 1 errors, 2 warnings, 1 checks, 33 lines checked > > > > > > Please follow published guidelines when submitting patches. > > > > > > > drivers/hwmon/pmbus/adm1275.c | 21 +++++++++++++++++---- > > > > 1 file changed, 17 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c > > > > index 5caa37fb..ab5fceb 100644 > > > > --- a/drivers/hwmon/pmbus/adm1275.c > > > > +++ b/drivers/hwmon/pmbus/adm1275.c > > > > @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, > > > > tindex = 3; > > > > > > > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > > > > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > > > > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > > > > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > > > + > > > > + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); > > > > + if (config < 0) > > > > + return config; > > > > + > > > > + /* Enable TEMP1 by default */ > > > > + config |= ADM1278_TEMP1_EN; > > > > + ret = i2c_smbus_write_byte_data(client, > > > > + ADM1275_PMON_CONFIG, > > > > + config); > > > > + if (ret < 0) { > > > > + dev_err(&client->dev, > > > > + "Failed to enable temperature config\n"); > > > > + return -ENODEV; > > > > + } > > > > > > This can be handled in a single operation, together with ADM1278_VOUT_EN > > > below. There is no need for two separate write operations. > > > > > Thanks for review Guenter, Patrick and Vijay. > > Sorry for delay response. > > I have made changes to write ADM1278_VOUT_EN and ADM1278_TEMP1_EN in single > > operation and tested in platfrom . > > The changes given for quick look and will help if any misunderstand. > > > > --- a/drivers/hwmon/pmbus/adm1275.c > > +++ b/drivers/hwmon/pmbus/adm1275.c > > @@ -666,11 +666,11 @@ static int adm1275_probe(struct i2c_client *client, > > tindex = 3; > > > > info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | > > - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; > > + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | > > + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > > > /* Enable VOUT if not enabled (it is disabled by default) */ > > if (!(config & ADM1278_VOUT_EN)) { > > if (config & (ADM1278_VOUT_EN | ADM1278_TEMP1_EN) != > ADM1278_VOUT_EN | ADM1278_TEMP1_EN) > > > - config |= ADM1278_VOUT_EN; > > + config |= (ADM1278_VOUT_EN | ADM1278_TEMP1_EN); > > ( ) is unnecessary here. Thanks for quick review Guenter. I will submit all changes in v3. > > > ret = i2c_smbus_write_byte_data(client, > > ADM1275_PMON_CONFIG, > > config); > > @@ -680,10 +680,6 @@ static int adm1275_probe(struct i2c_client *client, > > return -ENODEV; > > } > > } > > - > > - if (config & ADM1278_TEMP1_EN) > > - info->func[0] |= > > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > if (config & ADM1278_VIN_EN) > > info->func[0] |= PMBUS_HAVE_VIN; > > break; > > > Guenter > > > > > > > > > > > /* Enable VOUT if not enabled (it is disabled by default) */ > > > > if (!(config & ADM1278_VOUT_EN)) { > > > > @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, > > > > } > > > > } > > > > > > > > - if (config & ADM1278_TEMP1_EN) > > > > - info->func[0] |= > > > > - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; > > > > if (config & ADM1278_VIN_EN) > > > > info->func[0] |= PMBUS_HAVE_VIN; > > > > break; > > > > > > >
diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c index 5caa37fb..ab5fceb 100644 --- a/drivers/hwmon/pmbus/adm1275.c +++ b/drivers/hwmon/pmbus/adm1275.c @@ -666,7 +666,23 @@ static int adm1275_probe(struct i2c_client *client, tindex = 3; info->func[0] |= PMBUS_HAVE_PIN | PMBUS_HAVE_STATUS_INPUT | - PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT; + PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT | + PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; + + config = i2c_smbus_read_byte_data(client, ADM1275_PMON_CONFIG); + if (config < 0) + return config; + + /* Enable TEMP1 by default */ + config |= ADM1278_TEMP1_EN; + ret = i2c_smbus_write_byte_data(client, + ADM1275_PMON_CONFIG, + config); + if (ret < 0) { + dev_err(&client->dev, + "Failed to enable temperature config\n"); + return -ENODEV; + } /* Enable VOUT if not enabled (it is disabled by default) */ if (!(config & ADM1278_VOUT_EN)) { @@ -681,9 +697,6 @@ static int adm1275_probe(struct i2c_client *client, } } - if (config & ADM1278_TEMP1_EN) - info->func[0] |= - PMBUS_HAVE_TEMP | PMBUS_HAVE_STATUS_TEMP; if (config & ADM1278_VIN_EN) info->func[0] |= PMBUS_HAVE_VIN; break;