Lines Matching refs:index
134 /* Macros to easily index the registers */
223 static void adt7475_read_pwm(struct i2c_client *client, int index);
339 (data->alarms >> sattr->index) & 1);
341 val = data->voltage[sattr->nr][sattr->index];
343 reg2volt(sattr->index, val, data->bypass_attn));
363 data->voltage[sattr->nr][sattr->index] =
364 volt2reg(sattr->index, val, data->bypass_attn);
366 if (sattr->index < ADT7475_VOLTAGE_COUNT) {
368 reg = VOLTAGE_MIN_REG(sattr->index);
370 reg = VOLTAGE_MAX_REG(sattr->index);
379 data->voltage[sattr->nr][sattr->index] >> 2);
398 out = data->temp[sattr->nr][sattr->index];
399 if (sattr->index != 1)
407 out = reg2temp(data, data->temp[THERM][sattr->index]) -
418 out = (s8)data->temp[sattr->nr][sattr->index];
427 out = (data->alarms >> (sattr->index + 4)) & 1;
432 out = !!(data->alarms & (sattr->index ? 0x8000 : 0x4000));
437 out = reg2temp(data, data->temp[sattr->nr][sattr->index]);
466 out = data->temp[OFFSET][sattr->index] = val / 1000;
469 out = data->temp[OFFSET][sattr->index] = val / 500;
480 data->temp[THERM][sattr->index] =
481 adt7475_read(TEMP_THERM_REG(sattr->index)) << 2;
484 temp = reg2temp(data, data->temp[THERM][sattr->index]);
488 if (sattr->index != 1) {
489 data->temp[HYSTERSIS][sattr->index] &= 0x0F;
490 data->temp[HYSTERSIS][sattr->index] |= (val & 0xF) << 4;
492 data->temp[HYSTERSIS][sattr->index] &= 0xF0;
493 data->temp[HYSTERSIS][sattr->index] |= (val & 0xF);
496 out = data->temp[HYSTERSIS][sattr->index];
500 data->temp[sattr->nr][sattr->index] = temp2reg(data, val);
506 out = (u8) (data->temp[sattr->nr][sattr->index] >> 2);
511 reg = TEMP_MIN_REG(sattr->index);
514 reg = TEMP_MAX_REG(sattr->index);
517 reg = TEMP_OFFSET_REG(sattr->index);
520 reg = TEMP_TMIN_REG(sattr->index);
523 reg = TEMP_THERM_REG(sattr->index);
526 if (sattr->index != 2)
552 switch (sattr->index) {
585 switch (sattr->index) {
643 out = (data->range[sattr->index] >> 4) & 0x0F;
644 val = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
666 data->temp[AUTOMIN][sattr->index] =
667 adt7475_read(TEMP_TMIN_REG(sattr->index)) << 2;
668 data->range[sattr->index] =
669 adt7475_read(TEMP_TRANGE_REG(sattr->index));
675 temp = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
683 data->range[sattr->index] &= ~0xF0;
684 data->range[sattr->index] |= val << 4;
686 i2c_smbus_write_byte_data(client, TEMP_TRANGE_REG(sattr->index),
687 data->range[sattr->index]);
704 out = (data->alarms >> (sattr->index + 10)) & 1;
706 out = tach2rpm(data->tach[sattr->nr][sattr->index]);
725 data->tach[MIN][sattr->index] = rpm2tach(val);
727 adt7475_write_word(client, TACH_MIN_REG(sattr->index),
728 data->tach[MIN][sattr->index]);
743 return sprintf(buf, "%d\n", data->pwm[sattr->nr][sattr->index]);
755 return sprintf(buf, "%d\n", data->pwmchan[sattr->index]);
767 return sprintf(buf, "%d\n", data->pwmctl[sattr->index]);
788 data->pwm[CONTROL][sattr->index] =
789 adt7475_read(PWM_CONFIG_REG(sattr->index));
795 if (((data->pwm[CONTROL][sattr->index] >> 5) & 7) != 7) {
800 reg = PWM_REG(sattr->index);
804 reg = PWM_MIN_REG(sattr->index);
808 reg = PWM_MAX_REG(sattr->index);
812 data->pwm[sattr->nr][sattr->index] = clamp_val(val, 0, 0xFF);
814 data->pwm[sattr->nr][sattr->index]);
826 u8 mask = BIT(5 + sattr->index);
839 u8 mask = BIT(5 + sattr->index);
860 static int hw_set_pwm(struct i2c_client *client, int index,
903 data->pwmctl[index] = pwmctl;
904 data->pwmchan[index] = pwmchan;
906 data->pwm[CONTROL][index] &= ~0xE0;
907 data->pwm[CONTROL][index] |= (val & 7) << 5;
909 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
910 data->pwm[CONTROL][index]);
930 adt7475_read_pwm(client, sattr->index);
931 r = hw_set_pwm(client, sattr->index, data->pwmctl[sattr->index], val);
954 adt7475_read_pwm(client, sattr->index);
955 r = hw_set_pwm(client, sattr->index, val, data->pwmchan[sattr->index]);
977 idx = clamp_val(data->range[sattr->index] & 0xf, 0,
1000 data->range[sattr->index] =
1001 adt7475_read(TEMP_TRANGE_REG(sattr->index));
1002 data->range[sattr->index] &= ~0xf;
1003 data->range[sattr->index] |= out;
1005 i2c_smbus_write_byte_data(client, TEMP_TRANGE_REG(sattr->index),
1006 data->range[sattr->index]);
1746 static void adt7475_read_pwm(struct i2c_client *client, int index)
1751 data->pwm[CONTROL][index] = adt7475_read(PWM_CONFIG_REG(index));
1757 v = (data->pwm[CONTROL][index] >> 5) & 7;
1760 data->pwmctl[index] = 0;
1762 data->pwmctl[index] = 1;
1769 data->pwm[INPUT][index] = 0;
1770 data->pwm[CONTROL][index] &= ~0xE0;
1771 data->pwm[CONTROL][index] |= (7 << 5);
1773 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
1774 data->pwm[INPUT][index]);
1776 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
1777 data->pwm[CONTROL][index]);
1779 data->pwmctl[index] = 1;
1781 data->pwmctl[index] = 2;
1785 data->pwmchan[index] = 1;
1788 data->pwmchan[index] = 2;
1791 data->pwmchan[index] = 4;
1794 data->pwmchan[index] = 6;
1797 data->pwmchan[index] = 7;