|
@@ -170,7 +170,6 @@ enum chips { lm90, adm1032, lm99, lm86, max6657, max6659, adt7461, max6680,
|
|
|
#define LM90_FLAG_ADT7461_EXT (1 << 0) /* ADT7461 extended mode */
|
|
|
/* Device features */
|
|
|
#define LM90_HAVE_OFFSET (1 << 1) /* temperature offset register */
|
|
|
-#define LM90_HAVE_LOCAL_EXT (1 << 2) /* extended local temperature */
|
|
|
#define LM90_HAVE_REM_LIMIT_EXT (1 << 3) /* extended remote limit */
|
|
|
#define LM90_HAVE_EMERGENCY (1 << 4) /* 3rd upper (emergency) limit */
|
|
|
#define LM90_HAVE_EMERGENCY_ALARM (1 << 5)/* emergency alarm */
|
|
@@ -214,8 +213,7 @@ struct lm90_params {
|
|
|
u16 alert_alarms; /* Which alarm bits trigger ALERT# */
|
|
|
/* Upper 8 bits for max6695/96 */
|
|
|
u8 max_convrate; /* Maximum conversion rate register value */
|
|
|
- u8 reg_local_ext; /* Local extension register if
|
|
|
- LM90_HAVE_LOCAL_EXT is set*/
|
|
|
+ u8 reg_local_ext; /* Extended local temp register (optional) */
|
|
|
};
|
|
|
|
|
|
static const struct lm90_params lm90_params[] = {
|
|
@@ -247,19 +245,17 @@ static const struct lm90_params lm90_params[] = {
|
|
|
.max_convrate = 9,
|
|
|
},
|
|
|
[max6646] = {
|
|
|
- .flags = LM90_HAVE_LOCAL_EXT,
|
|
|
.alert_alarms = 0x7c,
|
|
|
.max_convrate = 6,
|
|
|
.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
|
|
|
},
|
|
|
[max6657] = {
|
|
|
- .flags = LM90_HAVE_LOCAL_EXT,
|
|
|
.alert_alarms = 0x7c,
|
|
|
.max_convrate = 8,
|
|
|
.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
|
|
|
},
|
|
|
[max6659] = {
|
|
|
- .flags = LM90_HAVE_LOCAL_EXT | LM90_HAVE_EMERGENCY,
|
|
|
+ .flags = LM90_HAVE_EMERGENCY,
|
|
|
.alert_alarms = 0x7c,
|
|
|
.max_convrate = 8,
|
|
|
.reg_local_ext = MAX6657_REG_R_LOCAL_TEMPL,
|
|
@@ -270,7 +266,7 @@ static const struct lm90_params lm90_params[] = {
|
|
|
.max_convrate = 7,
|
|
|
},
|
|
|
[max6696] = {
|
|
|
- .flags = LM90_HAVE_LOCAL_EXT | LM90_HAVE_EMERGENCY
|
|
|
+ .flags = LM90_HAVE_EMERGENCY
|
|
|
| LM90_HAVE_EMERGENCY_ALARM | LM90_HAVE_TEMP3,
|
|
|
.alert_alarms = 0x187c,
|
|
|
.max_convrate = 6,
|
|
@@ -282,8 +278,7 @@ static const struct lm90_params lm90_params[] = {
|
|
|
.max_convrate = 8,
|
|
|
},
|
|
|
[sa56004] = {
|
|
|
- .flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT
|
|
|
- | LM90_HAVE_LOCAL_EXT,
|
|
|
+ .flags = LM90_HAVE_OFFSET | LM90_HAVE_REM_LIMIT_EXT,
|
|
|
.alert_alarms = 0x7b,
|
|
|
.max_convrate = 9,
|
|
|
.reg_local_ext = SA56004_REG_R_LOCAL_TEMPL,
|
|
@@ -476,7 +471,7 @@ static struct lm90_data *lm90_update_device(struct device *dev)
|
|
|
lm90_read_reg(client, LM90_REG_R_REMOTE_CRIT, &data->temp8[3]);
|
|
|
lm90_read_reg(client, LM90_REG_R_TCRIT_HYST, &data->temp_hyst);
|
|
|
|
|
|
- if (data->flags & LM90_HAVE_LOCAL_EXT) {
|
|
|
+ if (data->reg_local_ext) {
|
|
|
lm90_read16(client, LM90_REG_R_LOCAL_TEMP,
|
|
|
data->reg_local_ext,
|
|
|
&data->temp11[4]);
|
|
@@ -1397,15 +1392,11 @@ static int lm90_probe(struct i2c_client *new_client,
|
|
|
|
|
|
/* Set chip capabilities */
|
|
|
data->flags = lm90_params[data->kind].flags;
|
|
|
+ data->reg_local_ext = lm90_params[data->kind].reg_local_ext;
|
|
|
|
|
|
/* Set maximum conversion rate */
|
|
|
data->max_convrate = lm90_params[data->kind].max_convrate;
|
|
|
|
|
|
- if (data->flags & LM90_HAVE_LOCAL_EXT) {
|
|
|
- data->reg_local_ext = lm90_params[data->kind].reg_local_ext;
|
|
|
- WARN_ON(data->reg_local_ext == 0);
|
|
|
- }
|
|
|
-
|
|
|
/* Initialize the LM90 chip */
|
|
|
lm90_init_client(new_client);
|
|
|
|