diff options
Diffstat (limited to 'src/import/chips/ocmb/common/include/pmic_regs.H')
-rw-r--r-- | src/import/chips/ocmb/common/include/pmic_regs.H | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/import/chips/ocmb/common/include/pmic_regs.H b/src/import/chips/ocmb/common/include/pmic_regs.H index 4a6de40d4..f3010e727 100644 --- a/src/import/chips/ocmb/common/include/pmic_regs.H +++ b/src/import/chips/ocmb/common/include/pmic_regs.H @@ -22,3 +22,133 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ + +/// +/// @file pmic_regs.H +/// @brief PMIC Registers +/// +// *HWP HWP Owner: Mark Pizzutillo <mark.pizzutillo@ibm.com> +// *HWP HWP Backup: Louis Stermole <stermole@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 1 +// *HWP Consumed by: FSP:HB + +#ifndef __PMIC_REGS__ +#define __PMIC_REGS__ + +#include <lib/utils/pmic_consts.H> + +/// +/// @brief Registers for PMIC devices +/// @class pmicRegs +/// @tparam P pmic_product +/// +template<mss::pmic::product P> +struct pmicRegs; + +/// +/// @brief JEDEC Common Registers +/// @note These registers are not defined with any particular name other than RXX. +/// Their purposes and bit-mappings are outlined in any of the JEDEC compliant PMIC specs. +/// +template<> +struct pmicRegs<mss::pmic::product::JEDEC_COMPLIANT> +{ + static constexpr uint8_t BROADCAST = 0x0; + /* R00 - R03 RESERVED */ + static constexpr uint8_t R04 = 0x04; + static constexpr uint8_t R05 = 0x05; + static constexpr uint8_t R06 = 0x06; + /* R07 RESERVED */ + static constexpr uint8_t R08 = 0x08; + static constexpr uint8_t R09 = 0x09; + static constexpr uint8_t R0A = 0x0A; + static constexpr uint8_t R0B = 0x0B; + static constexpr uint8_t R0C = 0x0C; + static constexpr uint8_t R0D = 0x0D; + static constexpr uint8_t R0E = 0x0E; + static constexpr uint8_t R0F = 0x0F; + static constexpr uint8_t R10 = 0x10; + static constexpr uint8_t R11 = 0x11; + static constexpr uint8_t R12 = 0x12; + static constexpr uint8_t R13 = 0x13; + static constexpr uint8_t R14 = 0x14; + static constexpr uint8_t R15 = 0x15; + static constexpr uint8_t R16 = 0x16; + static constexpr uint8_t R17 = 0x17; + static constexpr uint8_t R18 = 0x18; + static constexpr uint8_t R19 = 0x19; + static constexpr uint8_t R1A = 0x1A; + static constexpr uint8_t R1B = 0x1B; + static constexpr uint8_t R1C = 0x1C; + static constexpr uint8_t R1D = 0x1D; + static constexpr uint8_t R1E = 0x1E; + static constexpr uint8_t R1F = 0x1F; + static constexpr uint8_t R20 = 0x20; + static constexpr uint8_t R21_SWA_VOLTAGE_SETTING = 0x21; + static constexpr uint8_t R22 = 0x22; + static constexpr uint8_t R23_SWB_VOLTAGE_SETTING = 0x23; + static constexpr uint8_t R24 = 0x24; + static constexpr uint8_t R25_SWC_VOLTAGE_SETTING = 0x25; + static constexpr uint8_t R26 = 0x26; + static constexpr uint8_t R27_SWD_VOLTAGE_SETTING = 0x27; + static constexpr uint8_t R28 = 0x28; + static constexpr uint8_t R29 = 0x29; + static constexpr uint8_t R2A = 0x2A; + static constexpr uint8_t R2B = 0x2B; + static constexpr uint8_t R2C = 0x2C; + static constexpr uint8_t R2D = 0x2D; + static constexpr uint8_t R2E = 0x2E; + static constexpr uint8_t R2F = 0x2F; + static constexpr uint8_t R30 = 0x30; + static constexpr uint8_t R31 = 0x31; + static constexpr uint8_t R32 = 0x32; + static constexpr uint8_t R33 = 0x33; + static constexpr uint8_t R34 = 0x34; + static constexpr uint8_t R35 = 0x35; + /* R36 RESERVED */ + static constexpr uint8_t R37_PASSWORD_LOWER_BYTE_0 = 0x37; + static constexpr uint8_t R38_PASSWORD_UPPER_BYTE_1 = 0x38; + static constexpr uint8_t R39_COMMAND_CODES = 0x39; + static constexpr uint8_t R3A = 0x3A; + static constexpr uint8_t R3B = 0x3B; + static constexpr uint8_t R3C_VENDOR_ID_BYTE_0 = 0x3C; + static constexpr uint8_t R3D_VENDOR_ID_BYTE_1 = 0x3D; + + /* ----- DIMM VENDOR REGION ----- */ + + /* R3E - R3F RESERVED */ + static constexpr uint8_t R40_POWER_ON_SEQUENCE_CONFIG_1 = 0x40; + static constexpr uint8_t R41_POWER_ON_SEQUENCE_CONFIG_2 = 0x41; + static constexpr uint8_t R42_POWER_ON_SEQUENCE_CONFIG_3 = 0x42; + static constexpr uint8_t R43_POWER_ON_SEQUENCE_CONFIG_4 = 0x43; + /* R44 RESERVED */ + static constexpr uint8_t R45_SWA_VOLTAGE_SETTING = 0x45; + static constexpr uint8_t R46 = 0x46; + static constexpr uint8_t R47_SWB_VOLTAGE_SETTING = 0x47; + static constexpr uint8_t R48 = 0x48; + static constexpr uint8_t R49_SWC_VOLTAGE_SETTING = 0x49; + static constexpr uint8_t R4A = 0x4A; + static constexpr uint8_t R4B_SWD_VOLTAGE_SETTING = 0x4B; + static constexpr uint8_t R4C = 0x4C; + static constexpr uint8_t R4D = 0x4D; + static constexpr uint8_t R4E = 0x4E; + static constexpr uint8_t R4F = 0x4F; + static constexpr uint8_t R50 = 0x50; + static constexpr uint8_t R51 = 0x51; + /* R52 - R57 RESERVED */ + static constexpr uint8_t R58_POWER_OFF_SEQUENCE_CONFIG_1 = 0x58; + static constexpr uint8_t R59_POWER_OFF_SEQUENCE_CONFIG_2 = 0x59; + static constexpr uint8_t R5A_POWER_OFF_SEQUENCE_CONFIG_3 = 0x5A; + static constexpr uint8_t R5B_POWER_OFF_SEQUENCE_CONFIG_4 = 0x5B; + /* R5C RESERVED */ + static constexpr uint8_t R5D = 0x5D; + static constexpr uint8_t R5E = 0x5E; + static constexpr uint8_t R5F_PRIMARY_INFERFACE_IO_TYPE = 0x5F; + /* R60 - R6C RESERVED */ + static constexpr uint8_t R6D = 0x6D; + static constexpr uint8_t R6E = 0x6E; + /* R6F RESERVED */ +}; + +#endif |