From b86777ddd36db752a0b4f610e3775fae260850eb Mon Sep 17 00:00:00 2001 From: Philip Edelbrock Date: Fri, 5 Feb 1999 07:47:13 +0000 Subject: [PATCH] (Phil) Changed voltage scalers to (slightly more?) sane values. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@193 7894878c-1315-0410-8ee3-d5d059ff63e0 --- kernel/chips/adm9240.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/kernel/chips/adm9240.c b/kernel/chips/adm9240.c index a6a0171a..26c41bac 100644 --- a/kernel/chips/adm9240.c +++ b/kernel/chips/adm9240.c @@ -561,6 +561,9 @@ void adm9240_update_client(struct i2c_client *client) void adm9240_in(struct i2c_client *client, int operation, int ctl_name, int *nrels_mag, long *results) { + + int scales[6]={250, 270, 330, 500, 1200, 270}; + struct adm9240_data *data = client->data; int nr = ctl_name - ADM9240_SYSCTL_IN0; @@ -568,17 +571,17 @@ void adm9240_in(struct i2c_client *client, int operation, int ctl_name, *nrels_mag = 2; else if (operation == SENSORS_PROC_REAL_READ) { adm9240_update_client(client); - results[0] = IN_FROM_REG(data->in_min[nr],nr); - results[1] = IN_FROM_REG(data->in_max[nr],nr); - results[2] = IN_FROM_REG(data->in[nr],nr); + results[0] = IN_FROM_REG(data->in_min[nr],nr) * scales[nr] / 192; + results[1] = IN_FROM_REG(data->in_max[nr],nr) * scales[nr] / 192; + results[2] = IN_FROM_REG(data->in[nr],nr) * scales[nr] / 192; *nrels_mag = 3; } else if (operation == SENSORS_PROC_REAL_WRITE) { if (*nrels_mag >= 1) { - data->in_min[nr] = IN_TO_REG(results[0],nr); + data->in_min[nr] = IN_TO_REG((results[0]*192)/scales[nr],nr); adm9240_write_value(client,ADM9240_REG_IN_MIN(nr),data->in_min[nr]); } if (*nrels_mag >= 2) { - data->in_max[nr] = IN_TO_REG(results[1],nr); + data->in_max[nr] = IN_TO_REG((results[1]*192)/scales[nr],nr); adm9240_write_value(client,ADM9240_REG_IN_MAX(nr),data->in_max[nr]); } }