hwmon (dme1737): fix voltage scaling
Subsystems (2)
PATCH 3/3 hwmon (dme1737): fix voltage scaling
This patch fixes a voltage scaling issue for the sch311x device.
Signed-off-by Juerg Haefliger <juergh at gmail.com>
This patch fixes a voltage scaling issue for the sch311x device.
Signed-off-by Juerg Haefliger <juergh at gmail.com>
drivers/hwmon/dme1737.c +21 -11
@@ -181,6 +181,7 @@int valid;/* !=0 if following fields are valid */ unsigned long last_update;/* in jiffies */ unsigned long last_vbat;/* in jiffies */ +enum chips type;u8 vid;u8 pwm_rr_en;
@@ -215,20 +216,27 @@ };/* Nominal voltage values */ -static const int IN_NOMINAL [] = {5000 ,2250 ,3300 ,5000 ,12000 ,3300 ,3300 }; +static const int IN_NOMINAL_DME1737 [] = {5000 ,2250 ,3300 ,5000 ,12000 ,3300 , +3300 }; +static const int IN_NOMINAL_SCH311x[] = {2500 ,1500 ,3300 ,5000 ,12000 ,3300 , +3300 }; +#define IN_NOMINAL (ix, type) (((type) == dme1737) ? \ + IN_NOMINAL_DME1737[(ix)] : \ + IN_NOMINAL_SCH311x[(ix)])/* Voltage input * Voltage inputs have 16 bits resolution, limit values have 8 bits * resolution. */ -static inline int IN_FROM_REG (int reg,int ix,int res) +static inline int IN_FROM_REG (int reg,int ix,int res,int type) { -return (reg *IN_NOMINAL [ix] + (3 << (res -3 ))) / (3 << (res -2 )); +return (reg *IN_NOMINAL (ix, type) + (3 << (res -3 ))) / + (3 << (res -2 )); } -static inline int IN_TO_REG (int val,int ix) +static inline int IN_TO_REG (int val,int ix,int type) { -return SENSORS_LIMIT ((val *192 +IN_NOMINAL [ix] /2 ) / -IN_NOMINAL [ix],0 ,255 ); +return SENSORS_LIMIT ((val *192 +IN_NOMINAL (ix, type) /2 ) / +IN_NOMINAL (ix, type),0 ,255 ); }/* Temperature input
@@ -727,13 +735,13 @@switch (fn) {case SYS_IN_INPUT : - res =IN_FROM_REG (data->in[ix], ix,16 ); + res =IN_FROM_REG (data->in[ix], ix,16 , data->type);break ;case SYS_IN_MIN : - res =IN_FROM_REG (data->in_min[ix], ix,8 ); + res =IN_FROM_REG (data->in_min[ix], ix,8 , data->type);break ;case SYS_IN_MAX : - res =IN_FROM_REG (data->in_max[ix], ix,8 ); + res =IN_FROM_REG (data->in_max[ix], ix,8 , data->type);break ;case SYS_IN_ALARM : res = (data->alarms >>DME1737_BIT_ALARM_IN [ix]) &0x01 ;
@@ -760,12 +768,12 @@mutex_lock (&data->update_lock);switch (fn) {case SYS_IN_MIN : - data->in_min[ix] =IN_TO_REG (val, ix); + data->in_min[ix] =IN_TO_REG (val, ix, data->type);dme1737_write (client,DME1737_REG_IN_MIN (ix), data->in_min[ix]);break ;case SYS_IN_MAX : - data->in_max[ix] =IN_TO_REG (val, ix); + data->in_max[ix] =IN_TO_REG (val, ix, data->type);dme1737_write (client,DME1737_REG_IN_MAX (ix), data->in_max[ix]);break ;
@@ -2167,6 +2175,7 @@ kind = dme1737; name ="dme1737" ; + data->type = kind;/* Fill in the remaining client fields and put it into the global * list */
@@ -2359,6 +2368,7 @@ err = -ENODEV ; goto exit_kfree; } + data->type =-1 ;/* Fill in the remaining client fields and initialize the mutex */ strlcpy (client->name,"sch311x" ,I2C_NAME_SIZE );
_______________________________________________
lm-sensors mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Hi Juerg,
Quoted 3 lines · Juerg Haefliger
This patch fixes a voltage scaling issue for the sch311x device.
Signed-off-by Juerg Haefliger <juergh at gmail.com>
Reviewed, looks OK to me.
Acked-by Jean Delvare <[email protected]>
Signature · 6 lines
Jean Delvare _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors
Hi:
Quoted 10 lines · Jean Delvare
Hi Juerg,
Quoted 3 lines · Juerg Haefliger
This patch fixes a voltage scaling issue for the sch311x device.
Signed-off-by Juerg Haefliger <juergh at gmail.com>Reviewed, looks OK to me.
Acked-by Jean Delvare <[email protected]>
Applied to hwmon-2.6.git/testing, thanks.
Signature · 8 lines
Mark M. Hoffman [email protected] _______________________________________________ lm-sensors mailing list [email protected] http://lists.lm-sensors.org/mailman/listinfo/lm-sensors