Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-06-05 Thread Manikandan
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 
> > > 
> > > 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(>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(>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 

Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-06-05 Thread Guenter Roeck
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 
> > 
> > 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(>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(>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)) {
> > > @@ 

Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-06-05 Thread Manikandan
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 
> 
> 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(>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(>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] |= 

Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Vijay Khemka


On 5/29/20, 11:56 AM, "Guenter Roeck"  wrote:

On 5/29/20 10:57 AM, Vijay Khemka wrote:
> 
> 
> On 5/29/20, 5:47 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 

> 
> 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(>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
> 
> 
> 




Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Guenter Roeck
On 5/29/20 10:57 AM, Vijay Khemka wrote:
> 
> 
> On 5/29/20, 5:47 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 
> 
> 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(>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
> 
> 
> 



Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Guenter Roeck
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(>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;
>>>
>>
> 




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Vijay Khemka


On 5/29/20, 5:47 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 

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(>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





Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Patrick Williams
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(>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


signature.asc
Description: PGP signature


Re: [PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Guenter Roeck
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 

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(>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(>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;
> 



[PATCH v2] hwmon:(adm1275) Enable adm1278 ADM1278_TEMP1_EN

2020-05-29 Thread Manikandan Elumalai
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 

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(>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