mirror of
https://github.com/lm-sensors/lm-sensors.git
synced 2026-10-30 13:00:30 +00:00
remove initialization of limits in driver
git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2070 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
1 parent
41190cc718
commit
8cf5eaa5f1
6 files changed
-427
No files matched your search
@@ -193,51 +193,6 @@ static inline u8 FAN_TO_REG(long rpm, int div)
|
||||
#define PWM_TO_REG(val) (val)
|
||||
#define PWMENABLE_FROM_REG(nr, val) (((val) >> ((nr) + 3)) & 1)
|
||||
|
||||
/* Initial limits */
|
||||
#define MTP008_INIT_IN_0 (vid) /* VCore 1 */
|
||||
#define MTP008_INIT_IN_1 330 /* +3.3V */
|
||||
#define MTP008_INIT_IN_2 (1200 * 10 / 38) /* +12V */
|
||||
#define MTP008_INIT_IN_3 (vid) /* VCore 2 */
|
||||
#define MTP008_INIT_IN_5 ((11861 + 7 * (-1200)) / 36) /* -12V */
|
||||
#define MTP008_INIT_IN_6 150 /* Vtt */
|
||||
|
||||
#define MTP008_INIT_IN_PCT 10
|
||||
|
||||
#define MTP008_INIT_IN_MIN_0 (MTP008_INIT_IN_0 - \
|
||||
MTP008_INIT_IN_0 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_0 (MTP008_INIT_IN_0 + \
|
||||
MTP008_INIT_IN_0 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MIN_1 (MTP008_INIT_IN_1 - \
|
||||
MTP008_INIT_IN_1 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_1 (MTP008_INIT_IN_1 + \
|
||||
MTP008_INIT_IN_1 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MIN_2 (MTP008_INIT_IN_2 - \
|
||||
MTP008_INIT_IN_2 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_2 (MTP008_INIT_IN_2 + \
|
||||
MTP008_INIT_IN_2 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MIN_3 (MTP008_INIT_IN_3 - \
|
||||
MTP008_INIT_IN_3 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_3 (MTP008_INIT_IN_3 + \
|
||||
MTP008_INIT_IN_3 * MTP008_INIT_IN_PCT / 100)
|
||||
|
||||
#define MTP008_INIT_IN_MIN_5 (MTP008_INIT_IN_5 - \
|
||||
MTP008_INIT_IN_5 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_5 (MTP008_INIT_IN_5 + \
|
||||
MTP008_INIT_IN_5 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MIN_6 (MTP008_INIT_IN_6 - \
|
||||
MTP008_INIT_IN_6 * MTP008_INIT_IN_PCT / 100)
|
||||
#define MTP008_INIT_IN_MAX_6 (MTP008_INIT_IN_6 + \
|
||||
MTP008_INIT_IN_6 * MTP008_INIT_IN_PCT / 100)
|
||||
|
||||
#define MTP008_INIT_FAN_MIN_1 3000
|
||||
#define MTP008_INIT_FAN_MIN_2 3000
|
||||
#define MTP008_INIT_FAN_MIN_3 3000
|
||||
|
||||
#define MTP008_INIT_TEMP_OVER 700 /* 70 Celsius */
|
||||
#define MTP008_INIT_TEMP_HYST 500 /* 50 Celsius */
|
||||
#define MTP008_INIT_TEMP2_OVER 700 /* 70 Celsius */
|
||||
#define MTP008_INIT_TEMP2_HYST 500 /* 50 Celsius */
|
||||
|
||||
/*
|
||||
* For each registered MTP008, we need to keep some data in memory. The
|
||||
* structure itself is dynamically allocated, at the same time when a new
|
||||
@@ -551,7 +506,6 @@ static int mtp008_write_value(struct i2c_client *client, u8 reg, u8 value)
|
||||
/* Called when we have found a new MTP008. It should set limits, etc. */
|
||||
static void mtp008_init_client(struct i2c_client *client)
|
||||
{
|
||||
int vid;
|
||||
u8 save1, save2;
|
||||
struct mtp008_data *data;
|
||||
|
||||
@@ -570,65 +524,6 @@ static void mtp008_init_client(struct i2c_client *client)
|
||||
|
||||
mtp008_getsensortype(data, save2);
|
||||
|
||||
/*
|
||||
* Retrieve the VID setting (needed for the default limits).
|
||||
*/
|
||||
vid = mtp008_read_value(client, MTP008_REG_VID_FANDIV) & 0x0f;
|
||||
vid |= (mtp008_read_value(client, MTP008_REG_RESET_VID4) & 0x01) << 4;
|
||||
vid = VID_FROM_REG(vid);
|
||||
|
||||
/*
|
||||
* Set the default limits.
|
||||
*
|
||||
* Setting temp sensors is done as follows:
|
||||
*
|
||||
* Register 0x57: 0 0 0 0 x x x x
|
||||
* | \ / +-- AIN5/VT3
|
||||
* | +----- AIN4/VT2/PII
|
||||
* +-------- VT1/PII
|
||||
*/
|
||||
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(0),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_0));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(0),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_0));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(1),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_1));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(1),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_1));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(2),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_2));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(2),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_2));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(3),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_3));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(3),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_3));
|
||||
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(5),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_5));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(5),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_5));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(6),
|
||||
IN_TO_REG(MTP008_INIT_IN_MAX_6));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(6),
|
||||
IN_TO_REG(MTP008_INIT_IN_MIN_6));
|
||||
|
||||
mtp008_write_value(client, MTP008_REG_TEMP_MAX,
|
||||
TEMP_TO_REG(MTP008_INIT_TEMP_OVER));
|
||||
mtp008_write_value(client, MTP008_REG_TEMP_MIN,
|
||||
TEMP_TO_REG(MTP008_INIT_TEMP_HYST));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MAX(4),
|
||||
TEMP_TO_REG(MTP008_INIT_TEMP2_OVER));
|
||||
mtp008_write_value(client, MTP008_REG_IN_MIN(4),
|
||||
TEMP_TO_REG(MTP008_INIT_TEMP2_HYST));
|
||||
|
||||
mtp008_write_value(client, MTP008_REG_FAN_MIN(1),
|
||||
FAN_TO_REG(MTP008_INIT_FAN_MIN_1, 2));
|
||||
mtp008_write_value(client, MTP008_REG_FAN_MIN(2),
|
||||
FAN_TO_REG(MTP008_INIT_FAN_MIN_2, 2));
|
||||
mtp008_write_value(client, MTP008_REG_FAN_MIN(3),
|
||||
FAN_TO_REG(MTP008_INIT_FAN_MIN_3, 2));
|
||||
|
||||
/*
|
||||
* Start monitoring.
|
||||
|
||||
@@ -169,43 +169,6 @@ static inline u8 FAN_TO_REG(long rpm, int div)
|
||||
#define DIV_FROM_REG(val) (1 << (val))
|
||||
#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1)
|
||||
|
||||
/* Initial limits. To keep them sane, we use the 'standard' translation as
|
||||
specified in the SIS5595 sheet. Use the config file to set better limits. */
|
||||
#define SIS5595_INIT_IN_0 (((1200) * 10)/38)
|
||||
#define SIS5595_INIT_IN_1 (((500) * 100)/168)
|
||||
#define SIS5595_INIT_IN_2 330
|
||||
#define SIS5595_INIT_IN_3 250
|
||||
#define SIS5595_INIT_IN_4 250
|
||||
|
||||
#define SIS5595_INIT_IN_PERCENTAGE 10
|
||||
|
||||
#define SIS5595_INIT_IN_MIN_0 \
|
||||
(SIS5595_INIT_IN_0 - SIS5595_INIT_IN_0 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MAX_0 \
|
||||
(SIS5595_INIT_IN_0 + SIS5595_INIT_IN_0 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MIN_1 \
|
||||
(SIS5595_INIT_IN_1 - SIS5595_INIT_IN_1 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MAX_1 \
|
||||
(SIS5595_INIT_IN_1 + SIS5595_INIT_IN_1 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MIN_2 \
|
||||
(SIS5595_INIT_IN_2 - SIS5595_INIT_IN_2 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MAX_2 \
|
||||
(SIS5595_INIT_IN_2 + SIS5595_INIT_IN_2 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MIN_3 \
|
||||
(SIS5595_INIT_IN_3 - SIS5595_INIT_IN_3 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MAX_3 \
|
||||
(SIS5595_INIT_IN_3 + SIS5595_INIT_IN_3 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MIN_4 \
|
||||
(SIS5595_INIT_IN_4 - SIS5595_INIT_IN_4 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
#define SIS5595_INIT_IN_MAX_4 \
|
||||
(SIS5595_INIT_IN_4 + SIS5595_INIT_IN_4 * SIS5595_INIT_IN_PERCENTAGE / 100)
|
||||
|
||||
#define SIS5595_INIT_FAN_MIN_1 3000
|
||||
#define SIS5595_INIT_FAN_MIN_2 3000
|
||||
|
||||
#define SIS5595_INIT_TEMP_OVER 600
|
||||
#define SIS5595_INIT_TEMP_HYST 100
|
||||
|
||||
/* For the SIS5595, we need to keep some data in memory. That
|
||||
data is pointed to by sis5595_list[NR]->data. The structure itself is
|
||||
dynamically allocated, at the time when the new sis5595 client is
|
||||
@@ -542,38 +505,6 @@ static void sis5595_init_client(struct i2c_client *client)
|
||||
This sets fan-divs to 2, among others */
|
||||
sis5595_write_value(client, SIS5595_REG_CONFIG, 0x80);
|
||||
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MIN(0),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MIN_0));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MAX(0),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MAX_0));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MIN(1),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MIN_1));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MAX(1),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MAX_1));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MIN(2),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MIN_2));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MAX(2),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MAX_2));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MIN(3),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MIN_3));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MAX(3),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MAX_3));
|
||||
sis5595_write_value(client, SIS5595_REG_FAN_MIN(1),
|
||||
FAN_TO_REG(SIS5595_INIT_FAN_MIN_1, 2));
|
||||
sis5595_write_value(client, SIS5595_REG_FAN_MIN(2),
|
||||
FAN_TO_REG(SIS5595_INIT_FAN_MIN_2, 2));
|
||||
if(data->maxins == 4) {
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MIN(4),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MIN_4));
|
||||
sis5595_write_value(client, SIS5595_REG_IN_MAX(4),
|
||||
IN_TO_REG(SIS5595_INIT_IN_MAX_4));
|
||||
} else {
|
||||
sis5595_write_value(client, SIS5595_REG_TEMP_OVER,
|
||||
TEMP_TO_REG(SIS5595_INIT_TEMP_OVER));
|
||||
sis5595_write_value(client, SIS5595_REG_TEMP_HYST,
|
||||
TEMP_TO_REG(SIS5595_INIT_TEMP_HYST));
|
||||
}
|
||||
|
||||
/* Start monitoring */
|
||||
sis5595_write_value(client, SIS5595_REG_CONFIG,
|
||||
(sis5595_read_value(client, SIS5595_REG_CONFIG)
|
||||
|
||||
@@ -123,9 +123,6 @@ static inline u8 MIN_TO_REG(long rpm, int div)
|
||||
#define PWM_FROM_REG(val) ((((val) & 0x7f) * 1005) / 640)
|
||||
#define PWM_TO_REG(val) SENSORS_LIMIT((((val) * 645) / 1000), 0, 63)
|
||||
|
||||
#define SMSC47M1_INIT_FAN_MIN_1 3000
|
||||
#define SMSC47M1_INIT_FAN_MIN_2 3000
|
||||
|
||||
struct smsc47m1_data {
|
||||
struct semaphore lock;
|
||||
int sysctl_id;
|
||||
@@ -346,10 +343,6 @@ static void smsc47m1_init_client(struct i2c_client *client)
|
||||
/* configure pins for tach function */
|
||||
smsc47m1_write_value(client, SMSC47M1_REG_TPIN1, 0x05);
|
||||
smsc47m1_write_value(client, SMSC47M1_REG_TPIN2, 0x05);
|
||||
smsc47m1_write_value(client, SMSC47M1_REG_FAN_MIN(1),
|
||||
MIN_TO_REG(SMSC47M1_INIT_FAN_MIN_1, 2));
|
||||
smsc47m1_write_value(client, SMSC47M1_REG_FAN_MIN(2),
|
||||
MIN_TO_REG(SMSC47M1_INIT_FAN_MIN_2, 2));
|
||||
}
|
||||
|
||||
static void smsc47m1_update_client(struct i2c_client *client)
|
||||
|
||||
@@ -71,10 +71,6 @@ SENSORS_INSMOD_1(thmc50);
|
||||
#define TEMP_FROM_REG(val) ((val>127)?val - 0x0100:val)
|
||||
#define TEMP_TO_REG(val) ((val<0)?0x0100+val:val)
|
||||
|
||||
/* Initial values */
|
||||
#define THMC50_INIT_TEMP_OS 60
|
||||
#define THMC50_INIT_TEMP_HYST 50
|
||||
|
||||
/* Each client has this additional data */
|
||||
struct thmc50_data {
|
||||
int sysctl_id;
|
||||
@@ -308,11 +304,6 @@ static int thmc50_write_value(struct i2c_client *client, u8 reg, u16 value)
|
||||
|
||||
static void thmc50_init_client(struct i2c_client *client)
|
||||
{
|
||||
/* Initialize the THMC50 chip */
|
||||
thmc50_write_value(client, THMC50_REG_TEMP_OS,
|
||||
TEMP_TO_REG(THMC50_INIT_TEMP_OS));
|
||||
thmc50_write_value(client, THMC50_REG_TEMP_HYST,
|
||||
TEMP_TO_REG(THMC50_INIT_TEMP_HYST));
|
||||
thmc50_write_value(client, THMC50_REG_CONF, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -330,41 +330,6 @@ static inline long TEMP_FROM_REG10(u16 val)
|
||||
#define DIV_FROM_REG(val) (1 << (val))
|
||||
#define DIV_TO_REG(val) ((val)==8?3:(val)==4?2:(val)==1?0:1)
|
||||
|
||||
/* Initial limits */
|
||||
#define VIA686A_INIT_IN_0 200
|
||||
#define VIA686A_INIT_IN_1 250
|
||||
#define VIA686A_INIT_IN_2 330
|
||||
#define VIA686A_INIT_IN_3 500
|
||||
#define VIA686A_INIT_IN_4 1200
|
||||
|
||||
#define VIA686A_INIT_IN_PERCENTAGE 10
|
||||
|
||||
#define VIA686A_INIT_IN_MIN_0 (VIA686A_INIT_IN_0 - VIA686A_INIT_IN_0 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MAX_0 (VIA686A_INIT_IN_0 + VIA686A_INIT_IN_0 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MIN_1 (VIA686A_INIT_IN_1 - VIA686A_INIT_IN_1 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MAX_1 (VIA686A_INIT_IN_1 + VIA686A_INIT_IN_1 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MIN_2 (VIA686A_INIT_IN_2 - VIA686A_INIT_IN_2 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MAX_2 (VIA686A_INIT_IN_2 + VIA686A_INIT_IN_2 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MIN_3 (VIA686A_INIT_IN_3 - VIA686A_INIT_IN_3 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MAX_3 (VIA686A_INIT_IN_3 + VIA686A_INIT_IN_3 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MIN_4 (VIA686A_INIT_IN_4 - VIA686A_INIT_IN_4 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
#define VIA686A_INIT_IN_MAX_4 (VIA686A_INIT_IN_4 + VIA686A_INIT_IN_4 \
|
||||
* VIA686A_INIT_IN_PERCENTAGE / 100)
|
||||
|
||||
#define VIA686A_INIT_FAN_MIN 3000
|
||||
|
||||
#define VIA686A_INIT_TEMP_OVER 600
|
||||
#define VIA686A_INIT_TEMP_HYST 500
|
||||
|
||||
/* For the VIA686A, we need to keep some data in memory. That
|
||||
data is pointed to by via686a_list[NR]->data. The structure itself is
|
||||
dynamically allocated, at the same time when a new via686a client is
|
||||
@@ -637,37 +602,6 @@ static void via686a_init_client(struct i2c_client *client)
|
||||
clears in about 2-4 udelays and that isn't nearly enough. */
|
||||
udelay(50);
|
||||
|
||||
via686a_write_value(client, VIA686A_REG_IN_MIN(0),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MIN_0, 0));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MAX(0),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MAX_0, 0));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MIN(1),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MIN_1, 1));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MAX(1),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MAX_1, 1));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MIN(2),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MIN_2, 2));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MAX(2),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MAX_2, 2));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MIN(3),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MIN_3, 3));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MAX(3),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MAX_3, 3));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MIN(4),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MIN_4, 4));
|
||||
via686a_write_value(client, VIA686A_REG_IN_MAX(4),
|
||||
IN_TO_REG(VIA686A_INIT_IN_MAX_4, 4));
|
||||
via686a_write_value(client, VIA686A_REG_FAN_MIN(1),
|
||||
FAN_TO_REG(VIA686A_INIT_FAN_MIN, 2));
|
||||
via686a_write_value(client, VIA686A_REG_FAN_MIN(2),
|
||||
FAN_TO_REG(VIA686A_INIT_FAN_MIN, 2));
|
||||
for (i = 1; i <= 3; i++) {
|
||||
via686a_write_value(client, VIA686A_REG_TEMP_OVER(i),
|
||||
TEMP_TO_REG(VIA686A_INIT_TEMP_OVER));
|
||||
via686a_write_value(client, VIA686A_REG_TEMP_HYST(i),
|
||||
TEMP_TO_REG(VIA686A_INIT_TEMP_HYST));
|
||||
}
|
||||
|
||||
/* Start monitoring */
|
||||
via686a_write_value(client, VIA686A_REG_CONFIG, 0x01);
|
||||
|
||||
|
||||
@@ -245,104 +245,6 @@ static inline u8 DIV_TO_REG(long val)
|
||||
return ((u8) i);
|
||||
}
|
||||
|
||||
/* Initial limits */
|
||||
#define W83781D_INIT_IN_0 (vid==3500?280:vid/10)
|
||||
#define W83781D_INIT_IN_1 (vid==3500?280:vid/10)
|
||||
#define W83781D_INIT_IN_2 330
|
||||
#define W83781D_INIT_IN_3 (((500) * 100)/168)
|
||||
#define W83781D_INIT_IN_4 (((1200) * 10)/38)
|
||||
#define W83781D_INIT_IN_5 (((-1200) * -604)/2100)
|
||||
#define W83781D_INIT_IN_6 (((-500) * -604)/909)
|
||||
#define W83781D_INIT_IN_7 (((500) * 100)/168)
|
||||
#define W83781D_INIT_IN_8 300
|
||||
/* Initial limits for 782d/783s negative voltages */
|
||||
/* Note level shift. Change min/max below if you change these. */
|
||||
#define W83782D_INIT_IN_5 ((((-1200) + 1491) * 100)/514)
|
||||
#define W83782D_INIT_IN_6 ((( (-500) + 771) * 100)/314)
|
||||
|
||||
#define W83781D_INIT_IN_PERCENTAGE 10
|
||||
|
||||
#define W83781D_INIT_IN_MIN_0 \
|
||||
(W83781D_INIT_IN_0 - W83781D_INIT_IN_0 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_0 \
|
||||
(W83781D_INIT_IN_0 + W83781D_INIT_IN_0 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_1 \
|
||||
(W83781D_INIT_IN_1 - W83781D_INIT_IN_1 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_1 \
|
||||
(W83781D_INIT_IN_1 + W83781D_INIT_IN_1 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_2 \
|
||||
(W83781D_INIT_IN_2 - W83781D_INIT_IN_2 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_2 \
|
||||
(W83781D_INIT_IN_2 + W83781D_INIT_IN_2 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_3 \
|
||||
(W83781D_INIT_IN_3 - W83781D_INIT_IN_3 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_3 \
|
||||
(W83781D_INIT_IN_3 + W83781D_INIT_IN_3 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_4 \
|
||||
(W83781D_INIT_IN_4 - W83781D_INIT_IN_4 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_4 \
|
||||
(W83781D_INIT_IN_4 + W83781D_INIT_IN_4 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_5 \
|
||||
(W83781D_INIT_IN_5 - W83781D_INIT_IN_5 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_5 \
|
||||
(W83781D_INIT_IN_5 + W83781D_INIT_IN_5 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_6 \
|
||||
(W83781D_INIT_IN_6 - W83781D_INIT_IN_6 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_6 \
|
||||
(W83781D_INIT_IN_6 + W83781D_INIT_IN_6 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_7 \
|
||||
(W83781D_INIT_IN_7 - W83781D_INIT_IN_7 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_7 \
|
||||
(W83781D_INIT_IN_7 + W83781D_INIT_IN_7 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MIN_8 \
|
||||
(W83781D_INIT_IN_8 - W83781D_INIT_IN_8 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
#define W83781D_INIT_IN_MAX_8 \
|
||||
(W83781D_INIT_IN_8 + W83781D_INIT_IN_8 * W83781D_INIT_IN_PERCENTAGE \
|
||||
/ 100)
|
||||
/* Initial limits for 782d/783s negative voltages */
|
||||
/* These aren't direct multiples because of level shift */
|
||||
/* Beware going negative - check */
|
||||
#define W83782D_INIT_IN_MIN_5_TMP \
|
||||
(((-1200 * (100 + W83781D_INIT_IN_PERCENTAGE)) + (1491 * 100))/514)
|
||||
#define W83782D_INIT_IN_MIN_5 \
|
||||
((W83782D_INIT_IN_MIN_5_TMP > 0) ? W83782D_INIT_IN_MIN_5_TMP : 0)
|
||||
#define W83782D_INIT_IN_MAX_5 \
|
||||
(((-1200 * (100 - W83781D_INIT_IN_PERCENTAGE)) + (1491 * 100))/514)
|
||||
#define W83782D_INIT_IN_MIN_6_TMP \
|
||||
((( -500 * (100 + W83781D_INIT_IN_PERCENTAGE)) + (771 * 100))/314)
|
||||
#define W83782D_INIT_IN_MIN_6 \
|
||||
((W83782D_INIT_IN_MIN_6_TMP > 0) ? W83782D_INIT_IN_MIN_6_TMP : 0)
|
||||
#define W83782D_INIT_IN_MAX_6 \
|
||||
((( -500 * (100 - W83781D_INIT_IN_PERCENTAGE)) + (771 * 100))/314)
|
||||
|
||||
#define W83781D_INIT_FAN_MIN_1 3000
|
||||
#define W83781D_INIT_FAN_MIN_2 3000
|
||||
#define W83781D_INIT_FAN_MIN_3 3000
|
||||
|
||||
#define W83781D_INIT_TEMP_OVER 600
|
||||
#define W83781D_INIT_TEMP_HYST 1270 /* must be 127 for ALARM to work */
|
||||
#define W83781D_INIT_TEMP2_OVER 600
|
||||
#define W83781D_INIT_TEMP2_HYST 500
|
||||
#define W83781D_INIT_TEMP3_OVER 600
|
||||
#define W83781D_INIT_TEMP3_HYST 500
|
||||
|
||||
/* There are some complications in a module like this. First off, W83781D chips
|
||||
may be both present on the SMBus and the ISA bus, and we have to handle
|
||||
those cases separately at some places. Second, there might be several
|
||||
@@ -968,80 +870,7 @@ static void w83627hf_init_client(struct i2c_client *client)
|
||||
data->pwmenable[2] = 1;
|
||||
|
||||
if(init) {
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(0),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_0));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(0),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_0));
|
||||
if (type != w83697hf) {
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(1),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_1));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(1),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_1));
|
||||
}
|
||||
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(2),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_2));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(2),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_2));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(3),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_3));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(3),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_3));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(4),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_4));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(4),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_4));
|
||||
if (type != w83627thf) {
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(5),
|
||||
IN_TO_REG(W83782D_INIT_IN_MIN_5));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(5),
|
||||
IN_TO_REG(W83782D_INIT_IN_MAX_5));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(6),
|
||||
IN_TO_REG(W83782D_INIT_IN_MIN_6));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(6),
|
||||
IN_TO_REG(W83782D_INIT_IN_MAX_6));
|
||||
}
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(7),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_7));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(7),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_7));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MIN(8),
|
||||
IN_TO_REG(W83781D_INIT_IN_MIN_8));
|
||||
w83627hf_write_value(client, W83781D_REG_IN_MAX(8),
|
||||
IN_TO_REG(W83781D_INIT_IN_MAX_8));
|
||||
w83627hf_write_value(client, W83781D_REG_VBAT,
|
||||
(w83627hf_read_value(client, W83781D_REG_VBAT) | 0x01));
|
||||
w83627hf_write_value(client, W83781D_REG_FAN_MIN(1),
|
||||
FAN_TO_REG(W83781D_INIT_FAN_MIN_1, 2));
|
||||
w83627hf_write_value(client, W83781D_REG_FAN_MIN(2),
|
||||
FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2));
|
||||
if (type != w83697hf) {
|
||||
w83627hf_write_value(client, W83781D_REG_FAN_MIN(3),
|
||||
FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2));
|
||||
}
|
||||
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP_OVER,
|
||||
TEMP_TO_REG(W83781D_INIT_TEMP_OVER));
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP_HYST,
|
||||
TEMP_TO_REG(W83781D_INIT_TEMP_HYST));
|
||||
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP2_OVER,
|
||||
TEMP_ADD_TO_REG
|
||||
(W83781D_INIT_TEMP2_OVER));
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP2_HYST,
|
||||
TEMP_ADD_TO_REG
|
||||
(W83781D_INIT_TEMP2_HYST));
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP2_CONFIG, 0x00);
|
||||
|
||||
if (type != w83697hf) {
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP3_OVER,
|
||||
TEMP_ADD_TO_REG
|
||||
(W83781D_INIT_TEMP3_OVER));
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP3_HYST,
|
||||
TEMP_ADD_TO_REG
|
||||
(W83781D_INIT_TEMP3_HYST));
|
||||
w83627hf_write_value(client, W83781D_REG_TEMP3_CONFIG,
|
||||
0x00);
|
||||
/* enable PWM2 control (can't hurt since PWM reg
|
||||
should have been reset to 0xff) */
|
||||
w83627hf_write_value(client, W83781D_REG_PWMCLK12, 0x19);
|
||||
|
||||
Reference in new issue
Block a user