[PATCH linux dev-5.4 1/2] hwmon: (pmbus/ibm-cffps) Add another PSU CCIN to version detection

Guenter Roeck linux at roeck-us.net
Thu Apr 2 09:13:54 AEDT 2020


On 4/1/20 3:03 PM, Eddie James wrote:
> There is an additional CCIN for the IBM CFFPS that may be classifed as
> either version one or version two, based upon the rest of the bits of
> the CCIN. Add support for it in the version detection.
> 
> Signed-off-by: Eddie James <eajames at linux.ibm.com>
> Link: https://lore.kernel.org/r/1583948590-17220-1-git-send-email-eajames@linux.ibm.com
> Signed-off-by: Guenter Roeck <linux at roeck-us.net>

Those e-mails are confusing. Can you drop me from cc:, please ?

Guenter

> ---
>  drivers/hwmon/pmbus/ibm-cffps.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/pmbus/ibm-cffps.c b/drivers/hwmon/pmbus/ibm-cffps.c
> index 27593b723d74..7d3720665ad4 100644
> --- a/drivers/hwmon/pmbus/ibm-cffps.c
> +++ b/drivers/hwmon/pmbus/ibm-cffps.c
> @@ -33,9 +33,12 @@
>  #define CFFPS_INPUT_HISTORY_CMD			0xD6
>  #define CFFPS_INPUT_HISTORY_SIZE		100
>  
> +#define CFFPS_CCIN_REVISION			GENMASK(7, 0)
> +#define  CFFPS_CCIN_REVISION_LEGACY		 0xde
>  #define CFFPS_CCIN_VERSION			GENMASK(15, 8)
>  #define CFFPS_CCIN_VERSION_1			 0x2b
>  #define CFFPS_CCIN_VERSION_2			 0x2e
> +#define CFFPS_CCIN_VERSION_3			 0x51
>  
>  /* STATUS_MFR_SPECIFIC bits */
>  #define CFFPS_MFR_FAN_FAULT			BIT(0)
> @@ -489,11 +492,14 @@ static int ibm_cffps_probe(struct i2c_client *client,
>  		vs = (enum versions)id->driver_data;
>  
>  	if (vs == cffps_unknown) {
> +		u16 ccin_revision = 0;
>  		u16 ccin_version = CFFPS_CCIN_VERSION_1;
>  		int ccin = i2c_smbus_read_word_swapped(client, CFFPS_CCIN_CMD);
>  
> -		if (ccin > 0)
> +		if (ccin > 0) {
> +			ccin_revision = FIELD_GET(CFFPS_CCIN_REVISION, ccin);
>  			ccin_version = FIELD_GET(CFFPS_CCIN_VERSION, ccin);
> +		}
>  
>  		switch (ccin_version) {
>  		default:
> @@ -503,6 +509,12 @@ static int ibm_cffps_probe(struct i2c_client *client,
>  		case CFFPS_CCIN_VERSION_2:
>  			vs = cffps2;
>  			break;
> +		case CFFPS_CCIN_VERSION_3:
> +			if (ccin_revision == CFFPS_CCIN_REVISION_LEGACY)
> +				vs = cffps1;
> +			else
> +				vs = cffps2;
> +			break;
>  		}
>  
>  		/* Set the client name to include the version number. */
> 



More information about the openbmc mailing list