2
0
mirror of https://github.com/lm-sensors/lm-sensors synced 2025-08-31 14:25:39 +00:00

add support for VRM 10.0

git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2600 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Mark D. Studebaker
2004-06-19 17:07:40 +00:00
parent f52172bfbc
commit 09611e791d

View File

@@ -1,7 +1,7 @@
/*
sensors_vid.h - Part of lm_sensors, Linux kernel modules for hardware
monitoring
Copyright (c) 2002 Mark D. Studebaker <mdsxyz123@yahoo.com>
Copyright (c) 2002-2004 Mark D. Studebaker <mdsxyz123@yahoo.com>
With assistance from Trent Piepho <xyzzy@speakeasy.org>
This program is free software; you can redistribute it and/or modify
@@ -21,11 +21,12 @@
/*
This file contains common code for decoding VID pins.
This file is #included in various chip drivers in this directory.
This file is #included in various sensor chip drivers.
As the user is unlikely to load more than one driver which
includes this code we don't worry about the wasted space.
Reference: VRM x.y DC-DC Converter Design Guidelines,
available at http://developer.intel.com
References: VRM x.y DC-DC Converter Design Guidelines,
VRD 10.0 Design Guide,
available at http://developer.intel.com
*/
/*
@@ -44,7 +45,7 @@
*/
/*
Legal val values 00 - 1F.
Legal val values 00 - 1F except for VRD 10.0, 0x00-0x3f.
vrm is the Intel VRM document version.
Note: vrm version is scaled by 10 and the return value is scaled by 1000
to avoid floating point in the kernel.
@@ -54,8 +55,22 @@
static inline int vid_from_reg(int val, int vrm)
{
int vid;
switch(vrm) {
case 100: /* VRD 10.0 */
if((val & 0x1f) == 0x1f)
return 0;
if((val & 0x1f) <= 0x09 || val == 0x0a)
vid = 10875 - (val & 0x1f) * 250;
else
vid = 18625 - (val & 0x1f) * 250;
if(val & 0x20)
vid += 125;
vid /= 10; /* only return 3 dec. places for now */
return vid;
case 24: /* Opteron processor */
return(val == 0x1f ? 0 : 1550 - val * 25);