1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #include <amdblocks/cpu.h>
7 /* Value defined in Serial VID Interface 3.0 spec (#56413, NDA only) */
8 #define SERIAL_VID_3_DECODE_MICROVOLTS 5000
9 #define SERIAL_VID_3_BASE_MICROVOLTS 245000L
11 uint32_t get_uvolts_from_vid(uint16_t core_vid
)
13 if (core_vid
== 0x00) {
14 /* Voltage off for VID code 0x00 */
17 return SERIAL_VID_3_BASE_MICROVOLTS
+
18 (SERIAL_VID_3_DECODE_MICROVOLTS
* core_vid
);
22 uint32_t get_pstate_core_uvolts(union pstate_msr pstate_reg
)
24 return get_uvolts_from_vid(pstate_reg
.cpu_vid_0_7
| pstate_reg
.cpu_vid_8
<< 8);