[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