Lines Matching refs:nr
227 #define IT87_REG_PWM(nr) (0x15 + (nr)) argument
228 #define IT87_REG_PWM_DUTY(nr) (0x63 + (nr) * 8) argument
230 #define IT87_REG_VIN(nr) (0x20 + (nr)) argument
231 #define IT87_REG_TEMP(nr) (0x29 + (nr)) argument
233 #define IT87_REG_VIN_MAX(nr) (0x30 + (nr) * 2) argument
234 #define IT87_REG_VIN_MIN(nr) (0x31 + (nr) * 2) argument
235 #define IT87_REG_TEMP_HIGH(nr) (0x40 + (nr) * 2) argument
236 #define IT87_REG_TEMP_LOW(nr) (0x41 + (nr) * 2) argument
245 #define IT87_REG_AUTO_TEMP(nr, i) (0x60 + (nr) * 8 + (i)) argument
246 #define IT87_REG_AUTO_PWM(nr, i) (0x65 + (nr) * 8 + (i)) argument
397 #define has_temp_peci(data, nr) (((data)->features & FEAT_TEMP_PECI) && \ argument
398 ((data)->peci_mask & (1 << nr)))
399 #define has_temp_old_peci(data, nr) \ argument
401 ((data)->old_peci_mask & (1 << nr)))
476 static int adc_lsb(const struct it87_data *data, int nr) in adc_lsb() argument
479 if (data->in_scaled & (1 << nr)) in adc_lsb()
484 static u8 in_to_reg(const struct it87_data *data, int nr, long val) in in_to_reg() argument
486 val = DIV_ROUND_CLOSEST(val, adc_lsb(data, nr)); in in_to_reg()
490 static int in_from_reg(const struct it87_data *data, int nr, int val) in in_from_reg() argument
492 return val * adc_lsb(data, nr); in in_from_reg()
589 int nr = sattr->nr; in show_in() local
593 return sprintf(buf, "%d\n", in_from_reg(data, nr, data->in[nr][index])); in show_in()
600 int nr = sattr->nr; in set_in() local
610 data->in[nr][index] = in_to_reg(data, nr, val); in set_in()
612 index == 1 ? IT87_REG_VIN_MIN(nr) in set_in()
613 : IT87_REG_VIN_MAX(nr), in set_in()
614 data->in[nr][index]); in set_in()
675 int nr = sattr->nr; in show_temp() local
679 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->temp[nr][index])); in show_temp()
686 int nr = sattr->nr; in set_temp() local
700 reg = IT87_REG_TEMP_LOW(nr); in set_temp()
703 reg = IT87_REG_TEMP_HIGH(nr); in set_temp()
712 reg = IT87_REG_TEMP_OFFSET[nr]; in set_temp()
716 data->temp[nr][index] = TEMP_TO_REG(val); in set_temp()
717 it87_write_value(data, reg, data->temp[nr][index]); in set_temp()
748 int nr = sensor_attr->index; in show_temp_type() local
753 if ((has_temp_peci(data, nr) && (reg >> 6 == nr + 1)) in show_temp_type()
754 || (has_temp_old_peci(data, nr) && (extra & 0x80))) in show_temp_type()
756 if (reg & (1 << nr)) in show_temp_type()
758 if (reg & (8 << nr)) in show_temp_type()
767 int nr = sensor_attr->index; in set_temp_type() local
777 reg &= ~(1 << nr); in set_temp_type()
778 reg &= ~(8 << nr); in set_temp_type()
779 if (has_temp_peci(data, nr) && (reg >> 6 == nr + 1 || val == 6)) in set_temp_type()
782 if (has_temp_old_peci(data, nr) && ((extra & 0x80) || val == 6)) in set_temp_type()
791 reg |= 1 << nr; in set_temp_type()
793 reg |= 8 << nr; in set_temp_type()
794 else if (has_temp_peci(data, nr) && val == 6) in set_temp_type()
795 reg |= (nr + 1) << 6; in set_temp_type()
796 else if (has_temp_old_peci(data, nr) && val == 6) in set_temp_type()
805 if (has_temp_old_peci(data, nr)) in set_temp_type()
821 static int pwm_mode(const struct it87_data *data, int nr) in pwm_mode() argument
823 int ctrl = data->fan_main_ctrl & (1 << nr); in pwm_mode()
827 if (data->pwm_ctrl[nr] & 0x80) /* Automatic mode */ in pwm_mode()
837 int nr = sattr->nr; in show_fan() local
843 FAN16_FROM_REG(data->fan[nr][index]) : in show_fan()
844 FAN_FROM_REG(data->fan[nr][index], in show_fan()
845 DIV_FROM_REG(data->fan_div[nr])); in show_fan()
853 int nr = sensor_attr->index; in show_fan_div() local
856 return sprintf(buf, "%d\n", DIV_FROM_REG(data->fan_div[nr])); in show_fan_div()
862 int nr = sensor_attr->index; in show_pwm_enable() local
865 return sprintf(buf, "%d\n", pwm_mode(data, nr)); in show_pwm_enable()
871 int nr = sensor_attr->index; in show_pwm() local
875 pwm_from_reg(data, data->pwm_duty[nr])); in show_pwm()
893 int nr = sattr->nr; in set_fan() local
906 data->fan[nr][index] = FAN16_TO_REG(val); in set_fan()
907 it87_write_value(data, IT87_REG_FAN_MIN[nr], in set_fan()
908 data->fan[nr][index] & 0xff); in set_fan()
909 it87_write_value(data, IT87_REG_FANX_MIN[nr], in set_fan()
910 data->fan[nr][index] >> 8); in set_fan()
913 switch (nr) { in set_fan()
915 data->fan_div[nr] = reg & 0x07; in set_fan()
918 data->fan_div[nr] = (reg >> 3) & 0x07; in set_fan()
921 data->fan_div[nr] = (reg & 0x40) ? 3 : 1; in set_fan()
924 data->fan[nr][index] = in set_fan()
925 FAN_TO_REG(val, DIV_FROM_REG(data->fan_div[nr])); in set_fan()
926 it87_write_value(data, IT87_REG_FAN_MIN[nr], in set_fan()
927 data->fan[nr][index]); in set_fan()
938 int nr = sensor_attr->index; in set_fan_div() local
952 min = FAN_FROM_REG(data->fan[nr][1], DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
954 switch (nr) { in set_fan_div()
957 data->fan_div[nr] = DIV_TO_REG(val); in set_fan_div()
961 data->fan_div[nr] = 1; in set_fan_div()
963 data->fan_div[nr] = 3; in set_fan_div()
973 data->fan[nr][1] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
974 it87_write_value(data, IT87_REG_FAN_MIN[nr], data->fan[nr][1]); in set_fan_div()
981 static int check_trip_points(struct device *dev, int nr) in check_trip_points() argument
988 if (data->auto_temp[nr][i] > data->auto_temp[nr][i + 1]) in check_trip_points()
992 if (data->auto_pwm[nr][i] > data->auto_pwm[nr][i + 1]) in check_trip_points()
1009 int nr = sensor_attr->index; in set_pwm_enable() local
1019 if (check_trip_points(dev, nr) < 0) in set_pwm_enable()
1033 it87_write_value(data, IT87_REG_FAN_CTL, tmp | (1 << nr)); in set_pwm_enable()
1035 data->fan_main_ctrl &= ~(1 << nr); in set_pwm_enable()
1040 data->pwm_ctrl[nr] = has_newer_autopwm(data) ? in set_pwm_enable()
1041 data->pwm_temp_map[nr] : in set_pwm_enable()
1042 data->pwm_duty[nr]; in set_pwm_enable()
1044 data->pwm_ctrl[nr] = 0x80 | data->pwm_temp_map[nr]; in set_pwm_enable()
1045 it87_write_value(data, IT87_REG_PWM(nr), data->pwm_ctrl[nr]); in set_pwm_enable()
1049 data->fan_main_ctrl |= (1 << nr); in set_pwm_enable()
1062 int nr = sensor_attr->index; in set_pwm() local
1076 if (data->pwm_ctrl[nr] & 0x80) { in set_pwm()
1080 data->pwm_duty[nr] = pwm_to_reg(data, val); in set_pwm()
1081 it87_write_value(data, IT87_REG_PWM_DUTY(nr), in set_pwm()
1082 data->pwm_duty[nr]); in set_pwm()
1084 data->pwm_duty[nr] = pwm_to_reg(data, val); in set_pwm()
1089 if (!(data->pwm_ctrl[nr] & 0x80)) { in set_pwm()
1090 data->pwm_ctrl[nr] = data->pwm_duty[nr]; in set_pwm()
1091 it87_write_value(data, IT87_REG_PWM(nr), in set_pwm()
1092 data->pwm_ctrl[nr]); in set_pwm()
1129 int nr = sensor_attr->index; in show_pwm_temp_map() local
1134 if (data->pwm_temp_map[nr] < 3) in show_pwm_temp_map()
1135 map = 1 << data->pwm_temp_map[nr]; in show_pwm_temp_map()
1144 int nr = sensor_attr->index; in set_pwm_temp_map() local
1177 data->pwm_temp_map[nr] = reg; in set_pwm_temp_map()
1182 if (data->pwm_ctrl[nr] & 0x80) { in set_pwm_temp_map()
1183 data->pwm_ctrl[nr] = 0x80 | data->pwm_temp_map[nr]; in set_pwm_temp_map()
1184 it87_write_value(data, IT87_REG_PWM(nr), data->pwm_ctrl[nr]); in set_pwm_temp_map()
1196 int nr = sensor_attr->nr; in show_auto_pwm() local
1200 pwm_from_reg(data, data->auto_pwm[nr][point])); in show_auto_pwm()
1209 int nr = sensor_attr->nr; in set_auto_pwm() local
1217 data->auto_pwm[nr][point] = pwm_to_reg(data, val); in set_auto_pwm()
1218 it87_write_value(data, IT87_REG_AUTO_PWM(nr, point), in set_auto_pwm()
1219 data->auto_pwm[nr][point]); in set_auto_pwm()
1230 int nr = sensor_attr->nr; in show_auto_temp() local
1233 return sprintf(buf, "%d\n", TEMP_FROM_REG(data->auto_temp[nr][point])); in show_auto_temp()
1242 int nr = sensor_attr->nr; in set_auto_temp() local
1250 data->auto_temp[nr][point] = TEMP_TO_REG(val); in set_auto_temp()
1251 it87_write_value(data, IT87_REG_AUTO_TEMP(nr, point), in set_auto_temp()
1252 data->auto_temp[nr][point]); in set_auto_temp()
1517 int nr = to_sensor_dev_attr(attr)->index; in show_label() local
1519 return sprintf(buf, "%s\n", has_12mv_adc(data) ? labels_it8721[nr] in show_label()
1520 : labels[nr]); in show_label()
2610 static void it87_update_pwm_ctrl(struct it87_data *data, int nr) in it87_update_pwm_ctrl() argument
2612 data->pwm_ctrl[nr] = it87_read_value(data, IT87_REG_PWM(nr)); in it87_update_pwm_ctrl()
2614 data->pwm_temp_map[nr] = data->pwm_ctrl[nr] & 0x03; in it87_update_pwm_ctrl()
2615 data->pwm_duty[nr] = it87_read_value(data, in it87_update_pwm_ctrl()
2616 IT87_REG_PWM_DUTY(nr)); in it87_update_pwm_ctrl()
2618 if (data->pwm_ctrl[nr] & 0x80) /* Automatic mode */ in it87_update_pwm_ctrl()
2619 data->pwm_temp_map[nr] = data->pwm_ctrl[nr] & 0x03; in it87_update_pwm_ctrl()
2621 data->pwm_duty[nr] = data->pwm_ctrl[nr] & 0x7f; in it87_update_pwm_ctrl()
2628 data->auto_temp[nr][i] = it87_read_value(data, in it87_update_pwm_ctrl()
2629 IT87_REG_AUTO_TEMP(nr, i)); in it87_update_pwm_ctrl()
2631 data->auto_pwm[nr][i] = it87_read_value(data, in it87_update_pwm_ctrl()
2632 IT87_REG_AUTO_PWM(nr, i)); in it87_update_pwm_ctrl()