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 <[email protected]>
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;
+ }
/* 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 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 <[email protected]>
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;
> >
>
--
Patrick Williams
On 5/29/20, 5:47 AM, "Manikandan Elumalai" <[email protected]> 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 <[email protected]>
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" <[email protected]> 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 <[email protected]>
>
> 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" <[email protected] on behalf of [email protected]> wrote:
On 5/29/20 10:57 AM, Vijay Khemka wrote:
>
>
> On 5/29/20, 5:47 AM, "Manikandan Elumalai" <[email protected]> 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 <[email protected]>
>
> 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 <[email protected]>
>
> 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 <[email protected]>
> >
> > 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 <[email protected]>
> > >
> > > 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;
> > > >
> > >