On Mon, Feb 01, 2021 at 03:22:17PM -0600, Matthew Barth wrote:
> There was an issue in how the tach feedbacks of dual rotor fans were
> reported during any change in fan speeds with revision "A" of the
> MAX31785. When the fan speeds would transition to a new target speed,
> the rotor not wired to the TACH input when TACHSEL = 0 would report a
> speed of 0 until the new target was reached. This has been fixed,
> resulting in a revision "B" update where the MFR_REVISION of "B" is
> 0x3061.
> 
> Signed-off-by: Matthew Barth <[email protected]>

Applied.

Thanks,
Guenter

> ---
> ChangeLog v1->v2:
> - Check for expected "max31785b" when MAX31785 single tach only found
> ---
>  drivers/hwmon/pmbus/max31785.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/hwmon/pmbus/max31785.c b/drivers/hwmon/pmbus/max31785.c
> index e5a9f4019cd5..30954c89e312 100644
> --- a/drivers/hwmon/pmbus/max31785.c
> +++ b/drivers/hwmon/pmbus/max31785.c
> @@ -17,6 +17,7 @@ enum max31785_regs {
>  
>  #define MAX31785                     0x3030
>  #define MAX31785A                    0x3040
> +#define MAX31785B                    0x3061
>  
>  #define MFR_FAN_CONFIG_DUAL_TACH     BIT(12)
>  
> @@ -350,12 +351,14 @@ static int max31785_probe(struct i2c_client *client)
>       if (ret < 0)
>               return ret;
>  
> -     if (ret == MAX31785A) {
> +     if (ret == MAX31785A || ret == MAX31785B) {
>               dual_tach = true;
>       } else if (ret == MAX31785) {
> -             if (!strcmp("max31785a", client->name))
> -                     dev_warn(dev, "Expected max3175a, found max31785: 
> cannot provide secondary tachometer readings\n");
> +             if (!strcmp("max31785a", client->name) ||
> +                 !strcmp("max31785b", client->name))
> +                     dev_warn(dev, "Expected max31785a/b, found max31785: 
> cannot provide secondary tachometer readings\n");
>       } else {
> +             dev_err(dev, "Unrecognized MAX31785 revision: %x\n", ret);
>               return -ENODEV;
>       }
>  
> @@ -371,6 +374,7 @@ static int max31785_probe(struct i2c_client *client)
>  static const struct i2c_device_id max31785_id[] = {
>       { "max31785", 0 },
>       { "max31785a", 0 },
> +     { "max31785b", 0 },
>       { },
>  };
>  
> @@ -379,6 +383,7 @@ MODULE_DEVICE_TABLE(i2c, max31785_id);
>  static const struct of_device_id max31785_of_match[] = {
>       { .compatible = "maxim,max31785" },
>       { .compatible = "maxim,max31785a" },
> +     { .compatible = "maxim,max31785b" },
>       { },
>  };
>  

Reply via email to