- struct lm78_data *data = i2c_get_clientdata(client);
- int vid;
-
- /* Reset all except Watchdog values and last conversion values
- This sets fan-divs to 2, among others */
- lm78_write_value(client, LM78_REG_CONFIG, 0x80);
-
- vid = lm78_read_value(client, LM78_REG_VID_FANDIV) & 0x0f;
- if (data->type == lm79)
- vid |=
- (lm78_read_value(client, LM78_REG_CHIPID) & 0x01) << 4;
- else
- vid |= 0x10;
- vid = VID_FROM_REG(vid);
-
- lm78_write_value(client, LM78_REG_IN_MIN(0),
- IN_TO_REG(LM78_INIT_IN_MIN_0(vid)));
- lm78_write_value(client, LM78_REG_IN_MAX(0),
- IN_TO_REG(LM78_INIT_IN_MAX_0(vid)));
- lm78_write_value(client, LM78_REG_IN_MIN(1),
- IN_TO_REG(LM78_INIT_IN_MIN_1(vid)));
- lm78_write_value(client, LM78_REG_IN_MAX(1),
- IN_TO_REG(LM78_INIT_IN_MAX_1(vid)));
- lm78_write_value(client, LM78_REG_IN_MIN(2),
- IN_TO_REG(LM78_INIT_IN_MIN_2));
- lm78_write_value(client, LM78_REG_IN_MAX(2),
- IN_TO_REG(LM78_INIT_IN_MAX_2));
- lm78_write_value(client, LM78_REG_IN_MIN(3),
- IN_TO_REG(LM78_INIT_IN_MIN_3));
- lm78_write_value(client, LM78_REG_IN_MAX(3),
- IN_TO_REG(LM78_INIT_IN_MAX_3));
- lm78_write_value(client, LM78_REG_IN_MIN(4),
- IN_TO_REG(LM78_INIT_IN_MIN_4));
- lm78_write_value(client, LM78_REG_IN_MAX(4),
- IN_TO_REG(LM78_INIT_IN_MAX_4));
- lm78_write_value(client, LM78_REG_IN_MIN(5),
- IN_TO_REG(LM78_INIT_IN_MIN_5));
- lm78_write_value(client, LM78_REG_IN_MAX(5),
- IN_TO_REG(LM78_INIT_IN_MAX_5));
- lm78_write_value(client, LM78_REG_IN_MIN(6),
- IN_TO_REG(LM78_INIT_IN_MIN_6));
- lm78_write_value(client, LM78_REG_IN_MAX(6),
- IN_TO_REG(LM78_INIT_IN_MAX_6));
- lm78_write_value(client, LM78_REG_FAN_MIN(0),
- FAN_TO_REG(LM78_INIT_FAN_MIN_1, 2));
- lm78_write_value(client, LM78_REG_FAN_MIN(1),
- FAN_TO_REG(LM78_INIT_FAN_MIN_2, 2));
- lm78_write_value(client, LM78_REG_FAN_MIN(2),
- FAN_TO_REG(LM78_INIT_FAN_MIN_3, 2));
- lm78_write_value(client, LM78_REG_TEMP_OVER,
- TEMP_TO_REG(LM78_INIT_TEMP_OVER));
- lm78_write_value(client, LM78_REG_TEMP_HYST,
- TEMP_TO_REG(LM78_INIT_TEMP_HYST));