2022-04-28 14:54:02

by Adam Wujek

[permalink] [raw]
Subject: [PATCH] hwmon: (pmbus) add missing definitions of pmbus registers

Definitions are taken from the table 31 of the PMBUS specification
revision 1.3.1, 13 March 2015.

Signed-off-by: Adam Wujek <[email protected]>
---
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



2022-04-29 16:07:29

by Guenter Roeck

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

On 4/28/22 18:04, wujek dev wrote:
>
>>
>>
>> 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.
>

Adding defines just to add defines without using them only increases
source code size and compile time. Let's not do that. We can add
missing defines as they are needed.

Guenter

2022-04-30 06:49:57

by Guenter Roeck

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

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 ?

Guenter

> Signed-off-by: Adam Wujek <[email protected]>
> ---
> 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
>
>

2022-05-02 23:26:13

by Adam Wujek

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


>
>
> 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 [email protected]
> > ---
> > 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