Lines Matching refs:index
135 /* Macros to easily index the registers */
224 static void adt7475_read_pwm(struct i2c_client *client, int index);
340 (data->alarms >> sattr->index) & 1);
342 val = data->voltage[sattr->nr][sattr->index];
344 reg2volt(sattr->index, val, data->bypass_attn));
364 data->voltage[sattr->nr][sattr->index] =
365 volt2reg(sattr->index, val, data->bypass_attn);
367 if (sattr->index < ADT7475_VOLTAGE_COUNT) {
369 reg = VOLTAGE_MIN_REG(sattr->index);
371 reg = VOLTAGE_MAX_REG(sattr->index);
380 data->voltage[sattr->nr][sattr->index] >> 2);
399 out = data->temp[sattr->nr][sattr->index];
400 if (sattr->index != 1)
408 out = reg2temp(data, data->temp[THERM][sattr->index]) -
419 out = (s8)data->temp[sattr->nr][sattr->index];
428 out = (data->alarms >> (sattr->index + 4)) & 1;
433 out = !!(data->alarms & (sattr->index ? 0x8000 : 0x4000));
438 out = reg2temp(data, data->temp[sattr->nr][sattr->index]);
467 out = data->temp[OFFSET][sattr->index] = val / 1000;
470 out = data->temp[OFFSET][sattr->index] = val / 500;
481 data->temp[THERM][sattr->index] =
482 adt7475_read(TEMP_THERM_REG(sattr->index)) << 2;
485 temp = reg2temp(data, data->temp[THERM][sattr->index]);
489 if (sattr->index != 1) {
490 data->temp[HYSTERSIS][sattr->index] &= 0x0F;
491 data->temp[HYSTERSIS][sattr->index] |= (val & 0xF) << 4;
493 data->temp[HYSTERSIS][sattr->index] &= 0xF0;
494 data->temp[HYSTERSIS][sattr->index] |= (val & 0xF);
497 out = data->temp[HYSTERSIS][sattr->index];
501 data->temp[sattr->nr][sattr->index] = temp2reg(data, val);
507 out = (u8) (data->temp[sattr->nr][sattr->index] >> 2);
512 reg = TEMP_MIN_REG(sattr->index);
515 reg = TEMP_MAX_REG(sattr->index);
518 reg = TEMP_OFFSET_REG(sattr->index);
521 reg = TEMP_TMIN_REG(sattr->index);
524 reg = TEMP_THERM_REG(sattr->index);
527 if (sattr->index != 2)
553 switch (sattr->index) {
586 switch (sattr->index) {
644 out = (data->range[sattr->index] >> 4) & 0x0F;
645 val = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
667 data->temp[AUTOMIN][sattr->index] =
668 adt7475_read(TEMP_TMIN_REG(sattr->index)) << 2;
669 data->range[sattr->index] =
670 adt7475_read(TEMP_TRANGE_REG(sattr->index));
676 temp = reg2temp(data, data->temp[AUTOMIN][sattr->index]);
684 data->range[sattr->index] &= ~0xF0;
685 data->range[sattr->index] |= val << 4;
687 i2c_smbus_write_byte_data(client, TEMP_TRANGE_REG(sattr->index),
688 data->range[sattr->index]);
705 out = (data->alarms >> (sattr->index + 10)) & 1;
707 out = tach2rpm(data->tach[sattr->nr][sattr->index]);
726 data->tach[MIN][sattr->index] = rpm2tach(val);
728 adt7475_write_word(client, TACH_MIN_REG(sattr->index),
729 data->tach[MIN][sattr->index]);
744 return sprintf(buf, "%d\n", data->pwm[sattr->nr][sattr->index]);
756 return sprintf(buf, "%d\n", data->pwmchan[sattr->index]);
768 return sprintf(buf, "%d\n", data->pwmctl[sattr->index]);
789 data->pwm[CONTROL][sattr->index] =
790 adt7475_read(PWM_CONFIG_REG(sattr->index));
796 if (((data->pwm[CONTROL][sattr->index] >> 5) & 7) != 7) {
801 reg = PWM_REG(sattr->index);
805 reg = PWM_MIN_REG(sattr->index);
809 reg = PWM_MAX_REG(sattr->index);
813 data->pwm[sattr->nr][sattr->index] = clamp_val(val, 0, 0xFF);
815 data->pwm[sattr->nr][sattr->index]);
827 u8 mask = BIT(5 + sattr->index);
840 u8 mask = BIT(5 + sattr->index);
861 static int hw_set_pwm(struct i2c_client *client, int index,
904 data->pwmctl[index] = pwmctl;
905 data->pwmchan[index] = pwmchan;
907 data->pwm[CONTROL][index] &= ~0xE0;
908 data->pwm[CONTROL][index] |= (val & 7) << 5;
910 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
911 data->pwm[CONTROL][index]);
931 adt7475_read_pwm(client, sattr->index);
932 r = hw_set_pwm(client, sattr->index, data->pwmctl[sattr->index], val);
955 adt7475_read_pwm(client, sattr->index);
956 r = hw_set_pwm(client, sattr->index, val, data->pwmchan[sattr->index]);
978 idx = clamp_val(data->range[sattr->index] & 0xf, 0,
1001 data->range[sattr->index] =
1002 adt7475_read(TEMP_TRANGE_REG(sattr->index));
1003 data->range[sattr->index] &= ~0xf;
1004 data->range[sattr->index] |= out;
1006 i2c_smbus_write_byte_data(client, TEMP_TRANGE_REG(sattr->index),
1007 data->range[sattr->index]);
1838 static void adt7475_read_pwm(struct i2c_client *client, int index)
1843 data->pwm[CONTROL][index] = adt7475_read(PWM_CONFIG_REG(index));
1849 v = (data->pwm[CONTROL][index] >> 5) & 7;
1852 data->pwmctl[index] = 0;
1854 data->pwmctl[index] = 1;
1861 data->pwm[INPUT][index] = 0;
1862 data->pwm[CONTROL][index] &= ~0xE0;
1863 data->pwm[CONTROL][index] |= (7 << 5);
1865 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
1866 data->pwm[INPUT][index]);
1868 i2c_smbus_write_byte_data(client, PWM_CONFIG_REG(index),
1869 data->pwm[CONTROL][index]);
1871 data->pwmctl[index] = 1;
1873 data->pwmctl[index] = 2;
1877 data->pwmchan[index] = 1;
1880 data->pwmchan[index] = 2;
1883 data->pwmchan[index] = 4;
1886 data->pwmchan[index] = 6;
1889 data->pwmchan[index] = 7;