Re: [PATCH] hwmon: (pmbus) add missing definitions of pmbus registers

From: wujek dev
Date: Thu Apr 28 2022 - 21:04:22 EST



>
>
> On 4/28/22 06:46, Adam Wujek wrote:
>
> > Definitions are taken from the table 31 of the PMBUS specification
> > revision 1.3.1, 13 March 2015.
>
>
> Do you plan to do anything with those registers, or a subset of it ?
yes, some of PMBUS_MFR_SPECIFIC_*, but in a driver that will not be published in the near future.

Adam
>
> Guenter
>
> > Signed-off-by: Adam Wujek dev_public@xxxxxxxx
> > ---
> > drivers/hwmon/pmbus/pmbus.h | 145 ++++++++++++++++++++++++++++++++++++
> > 1 file changed, 145 insertions(+)
> >
> > diff --git a/drivers/hwmon/pmbus/pmbus.h b/drivers/hwmon/pmbus/pmbus.h
> > index e74b6ef070f3..902bb9cce950 100644
> > --- a/drivers/hwmon/pmbus/pmbus.h
> > +++ b/drivers/hwmon/pmbus/pmbus.h
> > @@ -21,11 +21,29 @@ enum pmbus_regs {
> > PMBUS_ON_OFF_CONFIG = 0x02,
> > PMBUS_CLEAR_FAULTS = 0x03,
> > PMBUS_PHASE = 0x04,
> > + PMBUS_PAGE_PLUS_WRITE = 0x05,
> > + PMBUS_PAGE_PLUS_READ = 0x06,
> > + PMBUS_ZONE_CONFIG = 0x07,
> > + PMBUS_ZONE_ACTIVE = 0x08,
> > +
> > + /* 0x09 - 0x0F are reserved */
> >
> > PMBUS_WRITE_PROTECT = 0x10,
> > + PMBUS_STORE_DEFAULT_ALL = 0x11,
> > + PMBUS_RESTORE_DEFAULT_ALL = 0x12,
> > + PMBUS_STORE_DEFAULT_CODE = 0x13,
> > + PMBUS_RESTORE_DEFAULT_CODE = 0x14,
> > + PMBUS_STORE_USER_ALL = 0x15,
> > + PMBUS_RESTORE_USER_ALL = 0x16,
> > + PMBUS_STORE_USER_CODE = 0x17,
> > + PMBUS_RESTORE_USER_CODE = 0x18,
> >
> > PMBUS_CAPABILITY = 0x19,
> > +
> > PMBUS_QUERY = 0x1A,
> > + PMBUS_SMBALERT_MASK = 0x1B,
> > +
> > + /* 0x1C - 0x1F are reserved */
> >
> > PMBUS_VOUT_MODE = 0x20,
> > PMBUS_VOUT_COMMAND = 0x21,
> > @@ -38,10 +56,22 @@ enum pmbus_regs {
> > PMBUS_VOUT_DROOP = 0x28,
> > PMBUS_VOUT_SCALE_LOOP = 0x29,
> > PMBUS_VOUT_SCALE_MONITOR = 0x2A,
> > + PMBUS_VOUT_MIN = 0x2B,
> > +
> > + /* 0x2C - 0x2F are reserved */
> >
> > PMBUS_COEFFICIENTS = 0x30,
> > PMBUS_POUT_MAX = 0x31,
> >
> > + PMBUS_MAX_DUTY = 0x32,
> > + PMBUS_FREQUENCY_SWITCH = 0x33,
> > + PMBUS_POWER_MODE = 0x34,
> > + PMBUS_VIN_ON = 0x35,
> > + PMBUS_VIN_OFF = 0x36,
> > + PMBUS_INTERLEAVE = 0x37,
> > + PMBUS_IOUT_CAL_GAIN = 0x38,
> > + PMBUS_IOUT_CAL_OFFSET = 0x39,
> > +
> > PMBUS_FAN_CONFIG_12 = 0x3A,
> > PMBUS_FAN_COMMAND_1 = 0x3B,
> > PMBUS_FAN_COMMAND_2 = 0x3C,
> > @@ -63,6 +93,9 @@ enum pmbus_regs {
> > PMBUS_IOUT_UC_FAULT_LIMIT = 0x4B,
> > PMBUS_IOUT_UC_FAULT_RESPONSE = 0x4C,
> >
> > + /* 0x4D is reserved /
> > + / 0x4E is reserved */
> > +
> > PMBUS_OT_FAULT_LIMIT = 0x4F,
> > PMBUS_OT_FAULT_RESPONSE = 0x50,
> > PMBUS_OT_WARN_LIMIT = 0x51,
> > @@ -74,14 +107,28 @@ enum pmbus_regs {
> > PMBUS_VIN_OV_WARN_LIMIT = 0x57,
> > PMBUS_VIN_UV_WARN_LIMIT = 0x58,
> > PMBUS_VIN_UV_FAULT_LIMIT = 0x59,
> > + PMBUS_VIN_UV_FAULT_RESPONSE = 0x5A,
> >
> > PMBUS_IIN_OC_FAULT_LIMIT = 0x5B,
> > PMBUS_IIN_OC_WARN_LIMIT = 0x5D,
> >
> > + PMBUS_POWER_GOOD_ON = 0x5E,
> > + PMBUS_POWER_GOOD_OFF = 0x5F,
> > + PMBUS_TON_DELAY = 0x60,
> > + PMBUS_TON_RISE = 0x61,
> > + PMBUS_TON_MAX_FAULT_LIMIT = 0x62,
> > + PMBUS_TON_MAX_FAULT_RESPONSE = 0x63,
> > + PMBUS_TOFF_DELAY = 0x64,
> > + PMBUS_TOFF_FALL = 0x65,
> > + PMBUS_TOFF_MAX_WARN_LIMIT = 0x66,
> > + /* 0x67 is reserved (Was Used In PMBUS Revision 1.0) */
> > PMBUS_POUT_OP_FAULT_LIMIT = 0x68,
> > + PMBUS_POUT_OP_FAULT_RESPONSE = 0x69,
> > PMBUS_POUT_OP_WARN_LIMIT = 0x6A,
> > PMBUS_PIN_OP_WARN_LIMIT = 0x6B,
> >
> > + /* 0x6C - 0x77 are reserved */
> > +
> > PMBUS_STATUS_BYTE = 0x78,
> > PMBUS_STATUS_WORD = 0x79,
> > PMBUS_STATUS_VOUT = 0x7A,
> > @@ -94,6 +141,11 @@ enum pmbus_regs {
> > PMBUS_STATUS_FAN_12 = 0x81,
> > PMBUS_STATUS_FAN_34 = 0x82,
> >
> > + PMBUS_READ_KWH_IN = 0x83,
> > + PMBUS_READ_KWH_OUT = 0x84,
> > + PMBUS_READ_KWH_CONFIG = 0x85,
> > + PMBUS_READ_EIN = 0x86,
> > + PMBUS_READ_EOUT = 0x87,
> > PMBUS_READ_VIN = 0x88,
> > PMBUS_READ_IIN = 0x89,
> > PMBUS_READ_VCAP = 0x8A,
> > @@ -118,6 +170,7 @@ enum pmbus_regs {
> > PMBUS_MFR_LOCATION = 0x9C,
> > PMBUS_MFR_DATE = 0x9D,
> > PMBUS_MFR_SERIAL = 0x9E,
> > + PMBUS_APP_PROFILE_SUPPORT = 0x9F,
> >
> > PMBUS_MFR_VIN_MIN = 0xA0,
> > PMBUS_MFR_VIN_MAX = 0xA1,
> > @@ -128,13 +181,105 @@ enum pmbus_regs {
> > PMBUS_MFR_IOUT_MAX = 0xA6,
> > PMBUS_MFR_POUT_MAX = 0xA7,
> >
> > + PMBUS_MFR_TAMBIENT_MAX = 0xA8,
> > + PMBUS_MFR_TAMBIENT_MIN = 0xA9,
> > + PMBUS_MFR_EFFICIENCY_LL = 0xAA,
> > + PMBUS_MFR_EFFICIENCY_HL = 0xAB,
> > + PMBUS_MFR_PIN_ACCURACY = 0xAC,
> > +
> > PMBUS_IC_DEVICE_ID = 0xAD,
> > PMBUS_IC_DEVICE_REV = 0xAE,
> >
> > + /* 0xAF is reserved */
> > +
> > + PMBUS_USER_DATA_00 = 0xB0,
> > + PMBUS_USER_DATA_01 = 0xB1,
> > + PMBUS_USER_DATA_02 = 0xB2,
> > + PMBUS_USER_DATA_03 = 0xB3,
> > + PMBUS_USER_DATA_04 = 0xB4,
> > + PMBUS_USER_DATA_05 = 0xB5,
> > + PMBUS_USER_DATA_06 = 0xB6,
> > + PMBUS_USER_DATA_07 = 0xB7,
> > + PMBUS_USER_DATA_08 = 0xB8,
> > + PMBUS_USER_DATA_09 = 0xB9,
> > + PMBUS_USER_DATA_10 = 0xBA,
> > + PMBUS_USER_DATA_11 = 0xBB,
> > + PMBUS_USER_DATA_12 = 0xBC,
> > + PMBUS_USER_DATA_13 = 0xBD,
> > + PMBUS_USER_DATA_14 = 0xBE,
> > + PMBUS_USER_DATA_15 = 0xBF,
> > +
> > PMBUS_MFR_MAX_TEMP_1 = 0xC0,
> > PMBUS_MFR_MAX_TEMP_2 = 0xC1,
> > PMBUS_MFR_MAX_TEMP_3 = 0xC2,
> >
> > + /* 0xC3 is reserved /
> > +
> > + PMBUS_MFR_SPECIFIC_C4 = 0xC4,
> > + PMBUS_MFR_SPECIFIC_C5 = 0xC5,
> > + PMBUS_MFR_SPECIFIC_C6 = 0xC6,
> > + PMBUS_MFR_SPECIFIC_C7 = 0xC7,
> > + PMBUS_MFR_SPECIFIC_C8 = 0xC8,
> > + PMBUS_MFR_SPECIFIC_C9 = 0xC9,
> > + PMBUS_MFR_SPECIFIC_CA = 0xCA,
> > + PMBUS_MFR_SPECIFIC_CB = 0xCB,
> > + PMBUS_MFR_SPECIFIC_CC = 0xCC,
> > + PMBUS_MFR_SPECIFIC_CD = 0xCD,
> > + PMBUS_MFR_SPECIFIC_CE = 0xCE,
> > + PMBUS_MFR_SPECIFIC_CF = 0xCF,
> > +
> > + PMBUS_MFR_SPECIFIC_D0 = 0xD0,
> > + PMBUS_MFR_SPECIFIC_D1 = 0xD1,
> > + PMBUS_MFR_SPECIFIC_D2 = 0xD2,
> > + PMBUS_MFR_SPECIFIC_D3 = 0xD3,
> > + PMBUS_MFR_SPECIFIC_D4 = 0xD4,
> > + PMBUS_MFR_SPECIFIC_D5 = 0xD5,
> > + PMBUS_MFR_SPECIFIC_D6 = 0xD6,
> > + PMBUS_MFR_SPECIFIC_D7 = 0xD7,
> > + PMBUS_MFR_SPECIFIC_D8 = 0xD8,
> > + PMBUS_MFR_SPECIFIC_D9 = 0xD9,
> > + PMBUS_MFR_SPECIFIC_DA = 0xDA,
> > + PMBUS_MFR_SPECIFIC_DB = 0xDB,
> > + PMBUS_MFR_SPECIFIC_DC = 0xDC,
> > + PMBUS_MFR_SPECIFIC_DD = 0xDD,
> > + PMBUS_MFR_SPECIFIC_DE = 0xDE,
> > + PMBUS_MFR_SPECIFIC_DF = 0xDF,
> > +
> > + PMBUS_MFR_SPECIFIC_E0 = 0xE0,
> > + PMBUS_MFR_SPECIFIC_E1 = 0xE1,
> > + PMBUS_MFR_SPECIFIC_E2 = 0xE2,
> > + PMBUS_MFR_SPECIFIC_E3 = 0xE3,
> > + PMBUS_MFR_SPECIFIC_E4 = 0xE4,
> > + PMBUS_MFR_SPECIFIC_E5 = 0xE5,
> > + PMBUS_MFR_SPECIFIC_E6 = 0xE6,
> > + PMBUS_MFR_SPECIFIC_E7 = 0xE7,
> > + PMBUS_MFR_SPECIFIC_E8 = 0xE8,
> > + PMBUS_MFR_SPECIFIC_E9 = 0xE9,
> > + PMBUS_MFR_SPECIFIC_EA = 0xEA,
> > + PMBUS_MFR_SPECIFIC_EB = 0xEB,
> > + PMBUS_MFR_SPECIFIC_EC = 0xEC,
> > + PMBUS_MFR_SPECIFIC_ED = 0xED,
> > + PMBUS_MFR_SPECIFIC_EE = 0xEE,
> > + PMBUS_MFR_SPECIFIC_EF = 0xEF,
> > +
> > + PMBUS_MFR_SPECIFIC_F0 = 0xF0,
> > + PMBUS_MFR_SPECIFIC_F1 = 0xF1,
> > + PMBUS_MFR_SPECIFIC_F2 = 0xF2,
> > + PMBUS_MFR_SPECIFIC_F3 = 0xF3,
> > + PMBUS_MFR_SPECIFIC_F4 = 0xF4,
> > + PMBUS_MFR_SPECIFIC_F5 = 0xF5,
> > + PMBUS_MFR_SPECIFIC_F6 = 0xF6,
> > + PMBUS_MFR_SPECIFIC_F7 = 0xF7,
> > + PMBUS_MFR_SPECIFIC_F8 = 0xF8,
> > + PMBUS_MFR_SPECIFIC_F9 = 0xF9,
> > + PMBUS_MFR_SPECIFIC_FA = 0xFA,
> > + PMBUS_MFR_SPECIFIC_FB = 0xFB,
> > + PMBUS_MFR_SPECIFIC_FC = 0xFC,
> > + PMBUS_MFR_SPECIFIC_FD = 0xFD,
> > +
> > + PMBUS_MFR_SPECIFIC_COMMAND_EXT = 0xFE,
> > + PMBUS_COMMAND_EXT = 0xFF,
> > +
> > /
> > * Virtual registers.
> > * Useful to support attributes which are not supported by standard PMBus
> > --
> > 2.25.1