Commit 7a8c68c5 authored by Chris Packham's avatar Chris Packham Committed by Guenter Roeck
Browse files

hwmon: (pmbus/bpa-rs600) Don't use rated limits as warn limits



In the initial implementation a number of PMBUS_x_WARN_LIMITs were
mapped to MFR fields. This was incorrect as these MFR limits reflect the
rated limit as opposed to a limit which will generate warning. Instead
return -ENXIO like we were already doing for other WARN_LIMITs.

Subsequently these rated limits have been exposed generically as new
fields in the sysfs ABI so the values are still available.

Fixes: 15b2703e ("hwmon: (pmbus) Add driver for BluTek BPA-RS600")
Signed-off-by: default avatarChris Packham <chris.packham@alliedtelesis.co.nz>
Link: https://lore.kernel.org/r/20210812014000.26293-2-chris.packham@alliedtelesis.co.nz


Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 2aee7e67
Loading
Loading
Loading
Loading
+0 −25
Original line number Diff line number Diff line
@@ -12,15 +12,6 @@
#include <linux/pmbus.h>
#include "pmbus.h"

#define BPARS600_MFR_VIN_MIN	0xa0
#define BPARS600_MFR_VIN_MAX	0xa1
#define BPARS600_MFR_IIN_MAX	0xa2
#define BPARS600_MFR_PIN_MAX	0xa3
#define BPARS600_MFR_VOUT_MIN	0xa4
#define BPARS600_MFR_VOUT_MAX	0xa5
#define BPARS600_MFR_IOUT_MAX	0xa6
#define BPARS600_MFR_POUT_MAX	0xa7

enum chips { bpa_rs600, bpd_rs600 };

static int bpa_rs600_read_byte_data(struct i2c_client *client, int page, int reg)
@@ -83,29 +74,13 @@ static int bpa_rs600_read_word_data(struct i2c_client *client, int page, int pha

	switch (reg) {
	case PMBUS_VIN_UV_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MIN);
		break;
	case PMBUS_VIN_OV_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VIN_MAX);
		break;
	case PMBUS_VOUT_UV_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MIN);
		break;
	case PMBUS_VOUT_OV_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_VOUT_MAX);
		break;
	case PMBUS_IIN_OC_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IIN_MAX);
		break;
	case PMBUS_IOUT_OC_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_IOUT_MAX);
		break;
	case PMBUS_PIN_OP_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_PIN_MAX);
		break;
	case PMBUS_POUT_OP_WARN_LIMIT:
		ret = pmbus_read_word_data(client, 0, 0xff, BPARS600_MFR_POUT_MAX);
		break;
	case PMBUS_VIN_UV_FAULT_LIMIT:
	case PMBUS_VIN_OV_FAULT_LIMIT:
	case PMBUS_VOUT_UV_FAULT_LIMIT: