Lines Matching refs:nr
46 #define F75375_REG_VOLT(nr) (0x10 + (nr))
47 #define F75375_REG_VOLT_HIGH(nr) (0x20 + (nr) * 2)
48 #define F75375_REG_VOLT_LOW(nr) (0x21 + (nr) * 2)
50 #define F75375_REG_TEMP(nr) (0x14 + (nr))
51 #define F75387_REG_TEMP11_LSB(nr) (0x1a + (nr))
52 #define F75375_REG_TEMP_HIGH(nr) (0x28 + (nr) * 2)
53 #define F75375_REG_TEMP_HYST(nr) (0x29 + (nr) * 2)
55 #define F75375_REG_FAN(nr) (0x16 + (nr) * 2)
56 #define F75375_REG_FAN_MIN(nr) (0x2C + (nr) * 2)
57 #define F75375_REG_FAN_FULL(nr) (0x70 + (nr) * 0x10)
58 #define F75375_REG_FAN_PWM_DUTY(nr) (0x76 + (nr) * 0x10)
59 #define F75375_REG_FAN_PWM_CLOCK(nr) (0x7D + (nr) * 0x10)
61 #define F75375_REG_FAN_EXP(nr) (0x74 + (nr) * 0x10)
62 #define F75375_REG_FAN_B_TEMP(nr, step) ((0xA0 + (nr) * 0x10) + (step))
63 #define F75375_REG_FAN_B_SPEED(nr, step) \
64 ((0xA5 + (nr) * 0x10) + (step) * 2)
71 #define F75375_FAN_CTRL_LINEAR(nr) (4 + nr)
72 #define F75387_FAN_CTRL_LINEAR(nr) (1 + ((nr) * 4))
73 #define FAN_CTRL_MODE(nr) (4 + ((nr) * 2))
74 #define F75387_FAN_DUTY_MODE(nr) (2 + ((nr) * 4))
75 #define F75387_FAN_MANU_MODE(nr) ((nr) * 4)
166 static void f75375_write_pwm(struct i2c_client *client, int nr)
170 f75375_write16(client, F75375_REG_FAN_EXP(nr), data->pwm[nr]);
172 f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
173 data->pwm[nr]);
180 int nr;
187 for (nr = 0; nr < 2; nr++) {
188 data->temp_high[nr] =
189 f75375_read8(client, F75375_REG_TEMP_HIGH(nr));
190 data->temp_max_hyst[nr] =
191 f75375_read8(client, F75375_REG_TEMP_HYST(nr));
192 data->fan_max[nr] =
193 f75375_read16(client, F75375_REG_FAN_FULL(nr));
194 data->fan_min[nr] =
195 f75375_read16(client, F75375_REG_FAN_MIN(nr));
196 data->fan_target[nr] =
197 f75375_read16(client, F75375_REG_FAN_EXP(nr));
199 for (nr = 0; nr < 4; nr++) {
200 data->in_max[nr] =
201 f75375_read8(client, F75375_REG_VOLT_HIGH(nr));
202 data->in_min[nr] =
203 f75375_read8(client, F75375_REG_VOLT_LOW(nr));
212 for (nr = 0; nr < 2; nr++) {
213 data->pwm[nr] = f75375_read8(client,
214 F75375_REG_FAN_PWM_DUTY(nr));
216 data->temp11[nr] =
217 f75375_read8(client, F75375_REG_TEMP(nr)) << 8;
220 data->temp11[nr] |=
222 F75387_REG_TEMP11_LSB(nr));
223 data->fan[nr] =
224 f75375_read16(client, F75375_REG_FAN(nr));
226 for (nr = 0; nr < 4; nr++)
227 data->in[nr] =
228 f75375_read8(client, F75375_REG_VOLT(nr));
287 int nr = to_sensor_dev_attr(attr)->index;
298 data->fan_min[nr] = rpm_to_reg(val);
299 f75375_write16(client, F75375_REG_FAN_MIN(nr), data->fan_min[nr]);
307 int nr = to_sensor_dev_attr(attr)->index;
317 if (auto_mode_enabled(data->pwm_enable[nr]))
319 if (data->kind == f75387 && duty_mode_enabled(data->pwm_enable[nr]))
323 data->fan_target[nr] = rpm_to_reg(val);
324 f75375_write16(client, F75375_REG_FAN_EXP(nr), data->fan_target[nr]);
332 int nr = to_sensor_dev_attr(attr)->index;
342 if (auto_mode_enabled(data->pwm_enable[nr]) ||
343 !duty_mode_enabled(data->pwm_enable[nr]))
347 data->pwm[nr] = clamp_val(val, 0, 255);
348 f75375_write_pwm(client, nr);
356 int nr = to_sensor_dev_attr(attr)->index;
358 return sprintf(buf, "%d\n", data->pwm_enable[nr]);
361 static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val)
372 if (duty_mode_enabled(data->pwm_enable[nr]) !=
376 fanmode &= ~(1 << F75387_FAN_DUTY_MODE(nr));
377 fanmode &= ~(1 << F75387_FAN_MANU_MODE(nr));
380 fanmode |= (1 << F75387_FAN_MANU_MODE(nr));
381 fanmode |= (1 << F75387_FAN_DUTY_MODE(nr));
382 data->pwm[nr] = 255;
385 fanmode |= (1 << F75387_FAN_MANU_MODE(nr));
386 fanmode |= (1 << F75387_FAN_DUTY_MODE(nr));
391 fanmode |= (1 << F75387_FAN_MANU_MODE(nr));
394 fanmode |= (1 << F75387_FAN_DUTY_MODE(nr));
399 fanmode &= ~(3 << FAN_CTRL_MODE(nr));
402 fanmode |= (3 << FAN_CTRL_MODE(nr));
403 data->pwm[nr] = 255;
406 fanmode |= (3 << FAN_CTRL_MODE(nr));
409 fanmode |= (1 << FAN_CTRL_MODE(nr));
419 data->pwm_enable[nr] = val;
421 f75375_write_pwm(client, nr);
428 int nr = to_sensor_dev_attr(attr)->index;
439 err = set_pwm_enable_direct(client, nr, val);
447 int nr = to_sensor_dev_attr(attr)->index;
469 ctrl = F75387_FAN_CTRL_LINEAR(nr);
472 ctrl = F75375_FAN_CTRL_LINEAR(nr);
483 data->pwm_mode[nr] = val;
491 int nr = to_sensor_dev_attr(attr)->index;
493 return sprintf(buf, "%d\n", data->pwm[nr]);
499 int nr = to_sensor_dev_attr(attr)->index;
501 return sprintf(buf, "%d\n", data->pwm_mode[nr]);
510 int nr = to_sensor_dev_attr(attr)->index;
512 return sprintf(buf, "%d\n", VOLT_FROM_REG(data->in[nr]));
518 int nr = to_sensor_dev_attr(attr)->index;
520 return sprintf(buf, "%d\n", VOLT_FROM_REG(data->in_max[nr]));
526 int nr = to_sensor_dev_attr(attr)->index;
528 return sprintf(buf, "%d\n", VOLT_FROM_REG(data->in_min[nr]));
534 int nr = to_sensor_dev_attr(attr)->index;
546 data->in_max[nr] = val;
547 f75375_write8(client, F75375_REG_VOLT_HIGH(nr), data->in_max[nr]);
555 int nr = to_sensor_dev_attr(attr)->index;
567 data->in_min[nr] = val;
568 f75375_write8(client, F75375_REG_VOLT_LOW(nr), data->in_min[nr]);
579 int nr = to_sensor_dev_attr(attr)->index;
581 return sprintf(buf, "%d\n", TEMP11_FROM_REG(data->temp11[nr]));
587 int nr = to_sensor_dev_attr(attr)->index;
589 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp_high[nr]));
595 int nr = to_sensor_dev_attr(attr)->index;
597 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp_max_hyst[nr]));
603 int nr = to_sensor_dev_attr(attr)->index;
615 data->temp_high[nr] = val;
616 f75375_write8(client, F75375_REG_TEMP_HIGH(nr), data->temp_high[nr]);
624 int nr = to_sensor_dev_attr(attr)->index;
636 data->temp_max_hyst[nr] = val;
637 f75375_write8(client, F75375_REG_TEMP_HYST(nr),
638 data->temp_max_hyst[nr]);
647 int nr = to_sensor_dev_attr(attr)->index;\
649 return sprintf(buf, "%d\n", rpm_from_reg(data->thing[nr])); \
755 int nr;
759 int nr;
763 for (nr = 0; nr < 2; nr++) {
767 if (!(mode & (1 << F75387_FAN_CTRL_LINEAR(nr))))
768 data->pwm_mode[nr] = 1;
770 manu = ((mode >> F75387_FAN_MANU_MODE(nr)) & 1);
771 duty = ((mode >> F75387_FAN_DUTY_MODE(nr)) & 1);
774 data->pwm_enable[nr] = 4;
777 data->pwm_enable[nr] = 3;
780 data->pwm_enable[nr] = 2;
783 data->pwm_enable[nr] = 1;
785 if (!(conf & (1 << F75375_FAN_CTRL_LINEAR(nr))))
786 data->pwm_mode[nr] = 1;
788 switch ((mode >> FAN_CTRL_MODE(nr)) & 3) {
790 data->pwm_enable[nr] = 3;
793 data->pwm_enable[nr] = 2;
796 data->pwm_enable[nr] = 1;
806 for (nr = 0; nr < 2; nr++) {
807 if (auto_mode_enabled(f75375s_pdata->pwm_enable[nr]) ||
808 !duty_mode_enabled(f75375s_pdata->pwm_enable[nr]))
810 data->pwm[nr] = clamp_val(f75375s_pdata->pwm[nr], 0, 255);
811 f75375_write_pwm(client, nr);