Lines Matching refs:nr

314 #define NCT6775_AUTO_TEMP(data, nr, p)	((data)->REG_AUTO_TEMP[nr] + (p))  argument
315 #define NCT6775_AUTO_PWM(data, nr, p) ((data)->REG_AUTO_PWM[nr] + (p)) argument
732 static inline long in_from_reg(u8 reg, u8 nr) in in_from_reg() argument
734 return DIV_ROUND_CLOSEST(reg * scale_in[nr], 100); in in_from_reg()
737 static inline u8 in_to_reg(u32 val, u8 nr) in in_to_reg() argument
739 return clamp_val(DIV_ROUND_CLOSEST(val * 100, scale_in[nr]), 0, 255); in in_to_reg()
905 u8 nr; member
936 .u.s.nr = _nr, \
1004 a2->nr = (*t)->u.s.nr + i; in nct6775_create_attr_group()
1141 static void nct6775_write_fan_div(struct nct6775_data *data, int nr) in nct6775_write_fan_div() argument
1145 switch (nr) { in nct6775_write_fan_div()
1169 static void nct6775_write_fan_div_common(struct nct6775_data *data, int nr) in nct6775_write_fan_div_common() argument
1172 nct6775_write_fan_div(data, nr); in nct6775_write_fan_div_common()
1240 struct nct6775_data *data, int nr, u16 reg) in nct6775_select_fan_div() argument
1242 u8 fan_div = data->fan_div[nr]; in nct6775_select_fan_div()
1258 if (fan_div != data->fan_div[nr]) { in nct6775_select_fan_div()
1260 nr + 1, div_from_reg(data->fan_div[nr]), in nct6775_select_fan_div()
1264 if (data->has_fan_min & (1 << nr)) { in nct6775_select_fan_div()
1265 fan_min = data->fan_min[nr]; in nct6775_select_fan_div()
1266 if (fan_div > data->fan_div[nr]) { in nct6775_select_fan_div()
1276 if (fan_min != data->fan_min[nr]) { in nct6775_select_fan_div()
1277 data->fan_min[nr] = fan_min; in nct6775_select_fan_div()
1278 nct6775_write_value(data, data->REG_FAN_MIN[nr], in nct6775_select_fan_div()
1282 data->fan_div[nr] = fan_div; in nct6775_select_fan_div()
1283 nct6775_write_fan_div_common(data, nr); in nct6775_select_fan_div()
1530 int nr = sattr->nr; in show_in_reg() local
1532 return sprintf(buf, "%ld\n", in_from_reg(data->in[nr][index], nr)); in show_in_reg()
1542 int nr = sattr->nr; in store_in_reg() local
1550 data->in[nr][index] = in_to_reg(val, nr); in store_in_reg()
1551 nct6775_write_value(data, data->REG_IN_MINMAX[index - 1][nr], in store_in_reg()
1552 data->in[nr][index]); in store_in_reg()
1562 int nr = data->ALARM_BITS[sattr->index]; in show_alarm() local
1565 (unsigned int)((data->alarms >> nr) & 0x01)); in show_alarm()
1571 int nr; in find_temp_source() local
1573 for (nr = 0; nr < count; nr++) { in find_temp_source()
1577 data->REG_TEMP_SOURCE[nr]) & 0x1f; in find_temp_source()
1579 return nr; in find_temp_source()
1590 int nr; in show_temp_alarm() local
1596 nr = find_temp_source(data, sattr->index, data->num_temp_alarms); in show_temp_alarm()
1597 if (nr >= 0) { in show_temp_alarm()
1598 int bit = data->ALARM_BITS[nr + TEMP_ALARM_BASE]; in show_temp_alarm()
1610 int nr = data->BEEP_BITS[sattr->index]; in show_beep() local
1613 (unsigned int)((data->beeps >> nr) & 0x01)); in show_beep()
1622 int nr = data->BEEP_BITS[sattr->index]; in store_beep() local
1623 int regindex = nr >> 3; in store_beep()
1635 data->beeps |= (1ULL << nr); in store_beep()
1637 data->beeps &= ~(1ULL << nr); in store_beep()
1650 int nr; in show_temp_beep() local
1657 nr = find_temp_source(data, sattr->index, data->num_temp_beeps); in show_temp_beep()
1658 if (nr >= 0) { in show_temp_beep()
1659 int bit = data->BEEP_BITS[nr + TEMP_ALARM_BASE]; in show_temp_beep()
1672 int nr, bit, regindex; in store_temp_beep() local
1682 nr = find_temp_source(data, sattr->index, data->num_temp_beeps); in store_temp_beep()
1683 if (nr < 0) in store_temp_beep()
1684 return nr; in store_temp_beep()
1686 bit = data->BEEP_BITS[nr + TEMP_ALARM_BASE]; in store_temp_beep()
1747 int nr = sattr->index; in show_fan() local
1749 return sprintf(buf, "%d\n", data->rpm[nr]); in show_fan()
1757 int nr = sattr->index; in show_fan_min() local
1760 data->fan_from_reg_min(data->fan_min[nr], in show_fan_min()
1761 data->fan_div[nr])); in show_fan_min()
1769 int nr = sattr->index; in show_fan_div() local
1771 return sprintf(buf, "%u\n", div_from_reg(data->fan_div[nr])); in show_fan_div()
1780 int nr = sattr->index; in store_fan_min() local
1801 data->fan_min[nr] = val; in store_fan_min()
1806 data->fan_min[nr] = 255; in store_fan_min()
1807 new_div = data->fan_div[nr]; /* No change */ in store_fan_min()
1808 dev_info(dev, "fan%u low limit and alarm disabled\n", nr + 1); in store_fan_min()
1817 data->fan_min[nr] = 254; in store_fan_min()
1821 nr + 1, val, data->fan_from_reg_min(254, 7)); in store_fan_min()
1827 data->fan_min[nr] = 1; in store_fan_min()
1831 nr + 1, val, data->fan_from_reg_min(1, 0)); in store_fan_min()
1843 data->fan_min[nr] = reg; in store_fan_min()
1851 if (new_div != data->fan_div[nr]) { in store_fan_min()
1853 nr + 1, div_from_reg(data->fan_div[nr]), in store_fan_min()
1855 data->fan_div[nr] = new_div; in store_fan_min()
1856 nct6775_write_fan_div_common(data, nr); in store_fan_min()
1862 nct6775_write_value(data, data->REG_FAN_MIN[nr], data->fan_min[nr]); in store_fan_min()
1884 int nr = sattr->index; in store_fan_pulses() local
1897 data->fan_pulses[nr] = val & 3; in store_fan_pulses()
1898 reg = nct6775_read_value(data, data->REG_FAN_PULSES[nr]); in store_fan_pulses()
1899 reg &= ~(0x03 << data->FAN_PULSE_SHIFT[nr]); in store_fan_pulses()
1900 reg |= (val & 3) << data->FAN_PULSE_SHIFT[nr]; in store_fan_pulses()
1901 nct6775_write_value(data, data->REG_FAN_PULSES[nr], reg); in store_fan_pulses()
1913 int nr = index % 6; /* attribute index */ in nct6775_fan_is_visible() local
1918 if (nr == 1 && data->ALARM_BITS[FAN_ALARM_BASE + fan] == -1) in nct6775_fan_is_visible()
1920 if (nr == 2 && data->BEEP_BITS[FAN_ALARM_BASE + fan] == -1) in nct6775_fan_is_visible()
1922 if (nr == 4 && !(data->has_fan_min & (1 << fan))) in nct6775_fan_is_visible()
1924 if (nr == 5 && data->kind != nct6775) in nct6775_fan_is_visible()
1967 int nr = sattr->index; in show_temp_label() local
1969 return sprintf(buf, "%s\n", data->temp_label[data->temp_src[nr]]); in show_temp_label()
1977 int nr = sattr->nr; in show_temp() local
1980 return sprintf(buf, "%d\n", LM75_TEMP_FROM_REG(data->temp[index][nr])); in show_temp()
1989 int nr = sattr->nr; in store_temp() local
1999 data->temp[index][nr] = LM75_TEMP_TO_REG(val); in store_temp()
2000 nct6775_write_temp(data, data->reg_temp[index][nr], in store_temp()
2001 data->temp[index][nr]); in store_temp()
2021 int nr = sattr->index; in store_temp_offset() local
2032 data->temp_offset[nr] = val; in store_temp_offset()
2033 nct6775_write_value(data, data->REG_TEMP_OFFSET[nr], val); in store_temp_offset()
2044 int nr = sattr->index; in show_temp_type() local
2046 return sprintf(buf, "%d\n", (int)data->temp_type[nr]); in show_temp_type()
2055 int nr = sattr->index; in store_temp_type() local
2069 data->temp_type[nr] = val; in store_temp_type()
2070 vbit = 0x02 << nr; in store_temp_type()
2071 dbit = data->DIODE_MASK << nr; in store_temp_type()
2098 int nr = index % 10; /* attribute index */ in nct6775_temp_is_visible() local
2103 if (nr == 2 && find_temp_source(data, temp, data->num_temp_alarms) < 0) in nct6775_temp_is_visible()
2106 if (nr == 3 && find_temp_source(data, temp, data->num_temp_beeps) < 0) in nct6775_temp_is_visible()
2109 if (nr == 4 && !data->reg_temp[1][temp]) /* max */ in nct6775_temp_is_visible()
2112 if (nr == 5 && !data->reg_temp[2][temp]) /* max_hyst */ in nct6775_temp_is_visible()
2115 if (nr == 6 && !data->reg_temp[3][temp]) /* crit */ in nct6775_temp_is_visible()
2118 if (nr == 7 && !data->reg_temp[4][temp]) /* lcrit */ in nct6775_temp_is_visible()
2122 if (nr > 7 && !(data->have_temp_fixed & (1 << temp))) in nct6775_temp_is_visible()
2186 int nr = sattr->index; in store_pwm_mode() local
2199 if (data->REG_PWM_MODE[nr] == 0) { in store_pwm_mode()
2206 data->pwm_mode[nr] = val; in store_pwm_mode()
2207 reg = nct6775_read_value(data, data->REG_PWM_MODE[nr]); in store_pwm_mode()
2208 reg &= ~data->PWM_MODE_MASK[nr]; in store_pwm_mode()
2210 reg |= data->PWM_MODE_MASK[nr]; in store_pwm_mode()
2211 nct6775_write_value(data, data->REG_PWM_MODE[nr], reg); in store_pwm_mode()
2221 int nr = sattr->nr; in show_pwm() local
2229 if (index == 0 && data->pwm_enable[nr] > manual) in show_pwm()
2230 pwm = nct6775_read_value(data, data->REG_PWM_READ[nr]); in show_pwm()
2232 pwm = data->pwm[index][nr]; in show_pwm()
2243 int nr = sattr->nr; in store_pwm() local
2246 int minval[7] = { 0, 1, 1, data->pwm[2][nr], 0, 0, 0 }; in store_pwm()
2248 = { 255, 255, data->pwm[3][nr] ? : 255, 255, 255, 255, 255 }; in store_pwm()
2258 data->pwm[index][nr] = val; in store_pwm()
2259 nct6775_write_value(data, data->REG_PWM[index][nr], val); in store_pwm()
2261 reg = nct6775_read_value(data, data->REG_TEMP_SEL[nr]); in store_pwm()
2265 nct6775_write_value(data, data->REG_TEMP_SEL[nr], reg); in store_pwm()
2272 static int check_trip_points(struct nct6775_data *data, int nr) in check_trip_points() argument
2277 if (data->auto_temp[nr][i] > data->auto_temp[nr][i + 1]) in check_trip_points()
2281 if (data->auto_pwm[nr][i] > data->auto_pwm[nr][i + 1]) in check_trip_points()
2285 if (data->auto_pwm[nr][data->auto_pwm_num]) { in check_trip_points()
2286 if (data->auto_temp[nr][data->auto_pwm_num - 1] > in check_trip_points()
2287 data->auto_temp[nr][data->auto_pwm_num] || in check_trip_points()
2288 data->auto_pwm[nr][data->auto_pwm_num - 1] > in check_trip_points()
2289 data->auto_pwm[nr][data->auto_pwm_num]) in check_trip_points()
2295 static void pwm_update_registers(struct nct6775_data *data, int nr) in pwm_update_registers() argument
2299 switch (data->pwm_enable[nr]) { in pwm_update_registers()
2304 reg = nct6775_read_value(data, data->REG_FAN_MODE[nr]); in pwm_update_registers()
2306 (data->target_speed_tolerance[nr] & data->tolerance_mask); in pwm_update_registers()
2307 nct6775_write_value(data, data->REG_FAN_MODE[nr], reg); in pwm_update_registers()
2308 nct6775_write_value(data, data->REG_TARGET[nr], in pwm_update_registers()
2309 data->target_speed[nr] & 0xff); in pwm_update_registers()
2311 reg = (data->target_speed[nr] >> 8) & 0x0f; in pwm_update_registers()
2312 reg |= (data->target_speed_tolerance[nr] & 0x38) << 1; in pwm_update_registers()
2314 data->REG_TOLERANCE_H[nr], in pwm_update_registers()
2319 nct6775_write_value(data, data->REG_TARGET[nr], in pwm_update_registers()
2320 data->target_temp[nr]); in pwm_update_registers()
2323 reg = nct6775_read_value(data, data->REG_FAN_MODE[nr]); in pwm_update_registers()
2325 data->temp_tolerance[0][nr]; in pwm_update_registers()
2326 nct6775_write_value(data, data->REG_FAN_MODE[nr], reg); in pwm_update_registers()
2346 int nr = sattr->index; in store_pwm_enable() local
2361 if (val == sf4 && check_trip_points(data, nr)) { in store_pwm_enable()
2368 data->pwm_enable[nr] = val; in store_pwm_enable()
2373 data->pwm[0][nr] = 255; in store_pwm_enable()
2374 nct6775_write_value(data, data->REG_PWM[0][nr], 255); in store_pwm_enable()
2376 pwm_update_registers(data, nr); in store_pwm_enable()
2377 reg = nct6775_read_value(data, data->REG_FAN_MODE[nr]); in store_pwm_enable()
2380 nct6775_write_value(data, data->REG_FAN_MODE[nr], reg); in store_pwm_enable()
2418 int nr = sattr->index; in store_pwm_temp_sel() local
2432 data->pwm_temp_sel[nr] = src; in store_pwm_temp_sel()
2433 reg = nct6775_read_value(data, data->REG_TEMP_SEL[nr]); in store_pwm_temp_sel()
2436 nct6775_write_value(data, data->REG_TEMP_SEL[nr], reg); in store_pwm_temp_sel()
2460 int nr = sattr->index; in store_pwm_weight_temp_sel() local
2476 data->pwm_weight_temp_sel[nr] = src; in store_pwm_weight_temp_sel()
2477 reg = nct6775_read_value(data, data->REG_WEIGHT_TEMP_SEL[nr]); in store_pwm_weight_temp_sel()
2480 nct6775_write_value(data, data->REG_WEIGHT_TEMP_SEL[nr], reg); in store_pwm_weight_temp_sel()
2482 data->pwm_weight_temp_sel[nr] = 0; in store_pwm_weight_temp_sel()
2483 reg = nct6775_read_value(data, data->REG_WEIGHT_TEMP_SEL[nr]); in store_pwm_weight_temp_sel()
2485 nct6775_write_value(data, data->REG_WEIGHT_TEMP_SEL[nr], reg); in store_pwm_weight_temp_sel()
2507 int nr = sattr->index; in store_target_temp() local
2519 data->target_temp[nr] = val; in store_target_temp()
2520 pwm_update_registers(data, nr); in store_target_temp()
2530 int nr = sattr->index; in show_target_speed() local
2533 fan_from_reg16(data->target_speed[nr], in show_target_speed()
2534 data->fan_div[nr])); in show_target_speed()
2543 int nr = sattr->index; in store_target_speed() local
2553 speed = fan_to_reg(val, data->fan_div[nr]); in store_target_speed()
2556 data->target_speed[nr] = speed; in store_target_speed()
2557 pwm_update_registers(data, nr); in store_target_speed()
2568 int nr = sattr->nr; in show_temp_tolerance() local
2571 return sprintf(buf, "%d\n", data->temp_tolerance[index][nr] * 1000); in show_temp_tolerance()
2580 int nr = sattr->nr; in store_temp_tolerance() local
2593 data->temp_tolerance[index][nr] = val; in store_temp_tolerance()
2595 pwm_update_registers(data, nr); in store_temp_tolerance()
2598 data->REG_CRITICAL_TEMP_TOLERANCE[nr], in store_temp_tolerance()
2615 int nr = sattr->index; in show_speed_tolerance() local
2616 int low = data->target_speed[nr] - data->target_speed_tolerance[nr]; in show_speed_tolerance()
2617 int high = data->target_speed[nr] + data->target_speed_tolerance[nr]; in show_speed_tolerance()
2627 tolerance = (fan_from_reg16(low, data->fan_div[nr]) in show_speed_tolerance()
2628 - fan_from_reg16(high, data->fan_div[nr])) / 2; in show_speed_tolerance()
2639 int nr = sattr->index; in store_speed_tolerance() local
2648 high = fan_from_reg16(data->target_speed[nr], in store_speed_tolerance()
2649 data->fan_div[nr]) + val; in store_speed_tolerance()
2650 low = fan_from_reg16(data->target_speed[nr], in store_speed_tolerance()
2651 data->fan_div[nr]) - val; in store_speed_tolerance()
2657 val = (fan_to_reg(low, data->fan_div[nr]) - in store_speed_tolerance()
2658 fan_to_reg(high, data->fan_div[nr])) / 2; in store_speed_tolerance()
2664 data->target_speed_tolerance[nr] = val; in store_speed_tolerance()
2665 pwm_update_registers(data, nr); in store_speed_tolerance()
2691 int nr = sattr->nr; in show_weight_temp() local
2694 return sprintf(buf, "%d\n", data->weight_temp[index][nr] * 1000); in show_weight_temp()
2703 int nr = sattr->nr; in store_weight_temp() local
2715 data->weight_temp[index][nr] = val; in store_weight_temp()
2716 nct6775_write_value(data, data->REG_WEIGHT_TEMP[index][nr], val); in store_weight_temp()
2739 int nr = sattr->nr; in show_fan_time() local
2743 step_time_from_reg(data->fan_time[index][nr], in show_fan_time()
2744 data->pwm_mode[nr])); in show_fan_time()
2753 int nr = sattr->nr; in store_fan_time() local
2762 val = step_time_to_reg(val, data->pwm_mode[nr]); in store_fan_time()
2764 data->fan_time[index][nr] = val; in store_fan_time()
2765 nct6775_write_value(data, data->REG_FAN_TIME[index][nr], val); in store_fan_time()
2776 return sprintf(buf, "%d\n", data->auto_pwm[sattr->nr][sattr->index]); in show_auto_pwm()
2785 int nr = sattr->nr; in store_auto_pwm() local
2805 data->auto_pwm[nr][point] = val; in store_auto_pwm()
2808 NCT6775_AUTO_PWM(data, nr, point), in store_auto_pwm()
2809 data->auto_pwm[nr][point]); in store_auto_pwm()
2815 NCT6775_REG_CRITICAL_ENAB[nr]); in store_auto_pwm()
2820 nct6775_write_value(data, NCT6775_REG_CRITICAL_ENAB[nr], in store_auto_pwm()
2829 nct6775_write_value(data, data->REG_CRITICAL_PWM[nr], in store_auto_pwm()
2832 data->REG_CRITICAL_PWM_ENABLE[nr]); in store_auto_pwm()
2838 data->REG_CRITICAL_PWM_ENABLE[nr], in store_auto_pwm()
2852 int nr = sattr->nr; in show_auto_temp() local
2859 return sprintf(buf, "%d\n", data->auto_temp[nr][point] * 1000); in show_auto_temp()
2868 int nr = sattr->nr; in store_auto_temp() local
2880 data->auto_temp[nr][point] = DIV_ROUND_CLOSEST(val, 1000); in store_auto_temp()
2883 NCT6775_AUTO_TEMP(data, nr, point), in store_auto_temp()
2884 data->auto_temp[nr][point]); in store_auto_temp()
2886 nct6775_write_value(data, data->REG_CRITICAL_TEMP[nr], in store_auto_temp()
2887 data->auto_temp[nr][point]); in store_auto_temp()
2899 int nr = index % 36; /* attribute index */ in nct6775_pwm_is_visible() local
2904 if ((nr >= 14 && nr <= 18) || nr == 21) /* weight */ in nct6775_pwm_is_visible()
2907 if (nr == 19 && data->REG_PWM[3] == NULL) /* pwm_max */ in nct6775_pwm_is_visible()
2909 if (nr == 20 && data->REG_PWM[4] == NULL) /* pwm_step */ in nct6775_pwm_is_visible()
2911 if (nr == 21 && data->REG_PWM[6] == NULL) /* weight_duty_base */ in nct6775_pwm_is_visible()
2914 if (nr >= 22 && nr <= 35) { /* auto point */ in nct6775_pwm_is_visible()
2915 int api = (nr - 22) / 2; /* auto point index */ in nct6775_pwm_is_visible()
3049 int nr = to_sensor_dev_attr(attr)->index - INTRUSION_ALARM_BASE; in clear_caseopen() local
3071 reg = superio_inb(data->sioreg, NCT6775_REG_CR_CASEOPEN_CLR[nr]); in clear_caseopen()
3072 reg |= NCT6775_CR_CASEOPEN_CLR_MASK[nr]; in clear_caseopen()
3073 superio_outb(data->sioreg, NCT6775_REG_CR_CASEOPEN_CLR[nr], reg); in clear_caseopen()
3074 reg &= ~NCT6775_CR_CASEOPEN_CLR_MASK[nr]; in clear_caseopen()
3075 superio_outb(data->sioreg, NCT6775_REG_CR_CASEOPEN_CLR[nr], reg); in clear_caseopen()