Lines Matching refs:ix
87 #define DME1737_REG_IN(ix) ((ix) < 5 ? 0x20 + (ix) : \ argument
88 (ix) < 7 ? 0x94 + (ix) : \
90 #define DME1737_REG_IN_MIN(ix) ((ix) < 5 ? 0x44 + (ix) * 2 \ argument
91 : 0x91 + (ix) * 2)
92 #define DME1737_REG_IN_MAX(ix) ((ix) < 5 ? 0x45 + (ix) * 2 \ argument
93 : 0x92 + (ix) * 2)
96 #define DME1737_REG_TEMP(ix) (0x25 + (ix)) argument
97 #define DME1737_REG_TEMP_MIN(ix) (0x4e + (ix) * 2) argument
98 #define DME1737_REG_TEMP_MAX(ix) (0x4f + (ix) * 2) argument
99 #define DME1737_REG_TEMP_OFFSET(ix) ((ix) == 0 ? 0x1f \ argument
100 : 0x1c + (ix))
112 #define DME1737_REG_IN_TEMP_LSB(ix) (0x84 + (ix)) argument
119 #define DME1737_REG_FAN(ix) ((ix) < 4 ? 0x28 + (ix) * 2 \ argument
120 : 0xa1 + (ix) * 2)
121 #define DME1737_REG_FAN_MIN(ix) ((ix) < 4 ? 0x54 + (ix) * 2 \ argument
122 : 0xa5 + (ix) * 2)
123 #define DME1737_REG_FAN_OPT(ix) ((ix) < 4 ? 0x90 + (ix) \ argument
124 : 0xb2 + (ix))
125 #define DME1737_REG_FAN_MAX(ix) (0xb4 + (ix)) /* only for fan[4-5] */ argument
128 #define DME1737_REG_PWM(ix) ((ix) < 3 ? 0x30 + (ix) \ argument
129 : 0xa1 + (ix))
130 #define DME1737_REG_PWM_CONFIG(ix) (0x5c + (ix)) /* only for pwm[0-2] */ argument
131 #define DME1737_REG_PWM_MIN(ix) (0x64 + (ix)) /* only for pwm[0-2] */ argument
132 #define DME1737_REG_PWM_FREQ(ix) ((ix) < 3 ? 0x5f + (ix) \ argument
133 : 0xa3 + (ix))
140 #define DME1737_REG_PWM_RR(ix) (0x62 + (ix)) /* only for pwm[0-2] */ argument
143 #define DME1737_REG_ZONE_LOW(ix) (0x67 + (ix)) argument
144 #define DME1737_REG_ZONE_ABS(ix) (0x6a + (ix)) argument
151 #define DME1737_REG_ZONE_HYST(ix) (0x6d + (ix)) argument
204 #define HAS_FAN(ix) (1 << ((ix) + 5)) /* bits 5-10 */ argument
205 #define HAS_PWM(ix) (1 << ((ix) + 11)) /* bits 11-16 */ argument
329 static inline int TEMP_HYST_FROM_REG(int reg, int ix) in TEMP_HYST_FROM_REG() argument
331 return (((ix == 1) ? reg : reg >> 4) & 0x0f) * 1000; in TEMP_HYST_FROM_REG()
334 static inline int TEMP_HYST_TO_REG(long val, int ix, int reg) in TEMP_HYST_TO_REG() argument
338 return (ix == 1) ? (reg & 0xf0) | hyst : (reg & 0x0f) | (hyst << 4); in TEMP_HYST_TO_REG()
506 static inline int PWM_RR_FROM_REG(int reg, int ix) in PWM_RR_FROM_REG() argument
508 int rr = (ix == 1) ? reg >> 4 : reg; in PWM_RR_FROM_REG()
513 static int PWM_RR_TO_REG(long val, int ix, int reg) in PWM_RR_TO_REG() argument
522 return (ix == 1) ? (reg & 0x8f) | (i << 4) : (reg & 0xf8) | i; in PWM_RR_TO_REG()
526 static inline int PWM_RR_EN_FROM_REG(int reg, int ix) in PWM_RR_EN_FROM_REG() argument
528 return PWM_RR_FROM_REG(reg, ix) ? 1 : 0; in PWM_RR_EN_FROM_REG()
531 static inline int PWM_RR_EN_TO_REG(long val, int ix, int reg) in PWM_RR_EN_TO_REG() argument
533 int en = (ix == 1) ? 0x80 : 0x08; in PWM_RR_EN_TO_REG()
543 static inline int PWM_OFF_FROM_REG(int reg, int ix) in PWM_OFF_FROM_REG() argument
545 return (reg >> (ix + 5)) & 0x01; in PWM_OFF_FROM_REG()
548 static inline int PWM_OFF_TO_REG(int val, int ix, int reg) in PWM_OFF_TO_REG() argument
550 return (reg & ~(1 << (ix + 5))) | ((val & 0x01) << (ix + 5)); in PWM_OFF_TO_REG()
607 int ix; in dme1737_update_device() local
627 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
633 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
635 data->in[ix] = dme1737_read(data, in dme1737_update_device()
636 DME1737_REG_IN(ix)) << 8; in dme1737_update_device()
637 data->in_min[ix] = dme1737_read(data, in dme1737_update_device()
638 DME1737_REG_IN_MIN(ix)); in dme1737_update_device()
639 data->in_max[ix] = dme1737_read(data, in dme1737_update_device()
640 DME1737_REG_IN_MAX(ix)); in dme1737_update_device()
644 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
652 data->temp[ix] = dme1737_read(data, in dme1737_update_device()
653 DME1737_REG_TEMP(ix)) << 8; in dme1737_update_device()
654 data->temp_min[ix] = dme1737_read(data, in dme1737_update_device()
655 DME1737_REG_TEMP_MIN(ix)); in dme1737_update_device()
656 data->temp_max[ix] = dme1737_read(data, in dme1737_update_device()
657 DME1737_REG_TEMP_MAX(ix)); in dme1737_update_device()
659 data->temp_offset[ix] = dme1737_read(data, in dme1737_update_device()
660 DME1737_REG_TEMP_OFFSET(ix)); in dme1737_update_device()
670 for (ix = 0; ix < ARRAY_SIZE(lsb); ix++) { in dme1737_update_device()
671 if (ix == 5 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
673 lsb[ix] = dme1737_read(data, in dme1737_update_device()
674 DME1737_REG_IN_TEMP_LSB(ix)); in dme1737_update_device()
676 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
677 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
679 data->in[ix] |= (lsb[DME1737_REG_IN_LSB[ix]] << in dme1737_update_device()
680 DME1737_REG_IN_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
682 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
683 data->temp[ix] |= (lsb[DME1737_REG_TEMP_LSB[ix]] << in dme1737_update_device()
684 DME1737_REG_TEMP_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
688 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in dme1737_update_device()
693 if (!(data->has_features & HAS_FAN(ix))) in dme1737_update_device()
695 data->fan[ix] = dme1737_read(data, in dme1737_update_device()
696 DME1737_REG_FAN(ix)); in dme1737_update_device()
697 data->fan[ix] |= dme1737_read(data, in dme1737_update_device()
698 DME1737_REG_FAN(ix) + 1) << 8; in dme1737_update_device()
699 data->fan_min[ix] = dme1737_read(data, in dme1737_update_device()
700 DME1737_REG_FAN_MIN(ix)); in dme1737_update_device()
701 data->fan_min[ix] |= dme1737_read(data, in dme1737_update_device()
702 DME1737_REG_FAN_MIN(ix) + 1) << 8; in dme1737_update_device()
703 data->fan_opt[ix] = dme1737_read(data, in dme1737_update_device()
704 DME1737_REG_FAN_OPT(ix)); in dme1737_update_device()
706 if (ix > 3) { in dme1737_update_device()
707 data->fan_max[ix - 4] = dme1737_read(data, in dme1737_update_device()
708 DME1737_REG_FAN_MAX(ix)); in dme1737_update_device()
713 for (ix = 0; ix < ARRAY_SIZE(data->pwm); ix++) { in dme1737_update_device()
718 if (!(data->has_features & HAS_PWM(ix))) in dme1737_update_device()
720 data->pwm[ix] = dme1737_read(data, in dme1737_update_device()
721 DME1737_REG_PWM(ix)); in dme1737_update_device()
722 data->pwm_freq[ix] = dme1737_read(data, in dme1737_update_device()
723 DME1737_REG_PWM_FREQ(ix)); in dme1737_update_device()
725 if (ix < 3) { in dme1737_update_device()
726 data->pwm_config[ix] = dme1737_read(data, in dme1737_update_device()
727 DME1737_REG_PWM_CONFIG(ix)); in dme1737_update_device()
728 data->pwm_min[ix] = dme1737_read(data, in dme1737_update_device()
729 DME1737_REG_PWM_MIN(ix)); in dme1737_update_device()
732 for (ix = 0; ix < ARRAY_SIZE(data->pwm_rr); ix++) { in dme1737_update_device()
733 data->pwm_rr[ix] = dme1737_read(data, in dme1737_update_device()
734 DME1737_REG_PWM_RR(ix)); in dme1737_update_device()
738 for (ix = 0; ix < ARRAY_SIZE(data->zone_low); ix++) { in dme1737_update_device()
740 if ((ix == 2) && !(data->has_features & HAS_ZONE3)) in dme1737_update_device()
743 if ((ix == 1) && (data->type == sch5127)) { in dme1737_update_device()
749 data->zone_low[ix] = dme1737_read(data, in dme1737_update_device()
750 DME1737_REG_ZONE_LOW(ix)); in dme1737_update_device()
751 data->zone_abs[ix] = dme1737_read(data, in dme1737_update_device()
752 DME1737_REG_ZONE_ABS(ix)); in dme1737_update_device()
756 for (ix = 0; ix < ARRAY_SIZE(data->zone_hyst); ix++) { in dme1737_update_device()
757 data->zone_hyst[ix] = dme1737_read(data, in dme1737_update_device()
758 DME1737_REG_ZONE_HYST(ix)); in dme1737_update_device()
815 int ix = sensor_attr_2->index; in show_in() local
821 res = IN_FROM_REG(data->in[ix], data->in_nominal[ix], 16); in show_in()
824 res = IN_FROM_REG(data->in_min[ix], data->in_nominal[ix], 8); in show_in()
827 res = IN_FROM_REG(data->in_max[ix], data->in_nominal[ix], 8); in show_in()
830 res = (data->alarms >> DME1737_BIT_ALARM_IN[ix]) & 0x01; in show_in()
846 int ix = sensor_attr_2->index; in set_in() local
858 data->in_min[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
859 dme1737_write(data, DME1737_REG_IN_MIN(ix), in set_in()
860 data->in_min[ix]); in set_in()
863 data->in_max[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
864 dme1737_write(data, DME1737_REG_IN_MAX(ix), in set_in()
865 data->in_max[ix]); in set_in()
893 int ix = sensor_attr_2->index; in show_temp() local
899 res = TEMP_FROM_REG(data->temp[ix], 16); in show_temp()
902 res = TEMP_FROM_REG(data->temp_min[ix], 8); in show_temp()
905 res = TEMP_FROM_REG(data->temp_max[ix], 8); in show_temp()
908 res = TEMP_FROM_REG(data->temp_offset[ix], 8); in show_temp()
911 res = (data->alarms >> DME1737_BIT_ALARM_TEMP[ix]) & 0x01; in show_temp()
914 res = (((u16)data->temp[ix] & 0xff00) == 0x8000); in show_temp()
930 int ix = sensor_attr_2->index; in set_temp() local
942 data->temp_min[ix] = TEMP_TO_REG(val); in set_temp()
943 dme1737_write(data, DME1737_REG_TEMP_MIN(ix), in set_temp()
944 data->temp_min[ix]); in set_temp()
947 data->temp_max[ix] = TEMP_TO_REG(val); in set_temp()
948 dme1737_write(data, DME1737_REG_TEMP_MAX(ix), in set_temp()
949 data->temp_max[ix]); in set_temp()
952 data->temp_offset[ix] = TEMP_TO_REG(val); in set_temp()
953 dme1737_write(data, DME1737_REG_TEMP_OFFSET(ix), in set_temp()
954 data->temp_offset[ix]); in set_temp()
981 int ix = sensor_attr_2->index; in show_zone() local
988 if ((ix == 1) && (data->config2 & 0x02)) in show_zone()
991 res = 1 << ix; in show_zone()
994 res = TEMP_FROM_REG(data->zone_low[ix], 8) - in show_zone()
995 TEMP_HYST_FROM_REG(data->zone_hyst[ix == 2], ix); in show_zone()
998 res = TEMP_FROM_REG(data->zone_low[ix], 8); in show_zone()
1002 res = TEMP_FROM_REG(data->zone_low[ix], 8) + in show_zone()
1003 TEMP_RANGE_FROM_REG(data->pwm_freq[ix]); in show_zone()
1006 res = TEMP_FROM_REG(data->zone_abs[ix], 8); in show_zone()
1022 int ix = sensor_attr_2->index; in set_zone() local
1035 data->zone_low[ix] = dme1737_read(data, in set_zone()
1036 DME1737_REG_ZONE_LOW(ix)); in set_zone()
1038 data->zone_hyst[ix == 2] = TEMP_HYST_TO_REG( in set_zone()
1039 TEMP_FROM_REG(data->zone_low[ix], 8) - in set_zone()
1040 val, ix, dme1737_read(data, in set_zone()
1041 DME1737_REG_ZONE_HYST(ix == 2))); in set_zone()
1042 dme1737_write(data, DME1737_REG_ZONE_HYST(ix == 2), in set_zone()
1043 data->zone_hyst[ix == 2]); in set_zone()
1046 data->zone_low[ix] = TEMP_TO_REG(val); in set_zone()
1047 dme1737_write(data, DME1737_REG_ZONE_LOW(ix), in set_zone()
1048 data->zone_low[ix]); in set_zone()
1052 data->zone_low[ix] = dme1737_read(data, in set_zone()
1053 DME1737_REG_ZONE_LOW(ix)); in set_zone()
1058 data->pwm_freq[ix] = TEMP_RANGE_TO_REG(val - in set_zone()
1059 TEMP_FROM_REG(data->zone_low[ix], 8), in set_zone()
1061 DME1737_REG_PWM_FREQ(ix))); in set_zone()
1062 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_zone()
1063 data->pwm_freq[ix]); in set_zone()
1066 data->zone_abs[ix] = TEMP_TO_REG(val); in set_zone()
1067 dme1737_write(data, DME1737_REG_ZONE_ABS(ix), in set_zone()
1068 data->zone_abs[ix]); in set_zone()
1095 int ix = sensor_attr_2->index; in show_fan() local
1101 res = FAN_FROM_REG(data->fan[ix], in show_fan()
1102 ix < 4 ? 0 : in show_fan()
1103 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1106 res = FAN_FROM_REG(data->fan_min[ix], in show_fan()
1107 ix < 4 ? 0 : in show_fan()
1108 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1112 res = FAN_MAX_FROM_REG(data->fan_max[ix - 4]); in show_fan()
1115 res = (data->alarms >> DME1737_BIT_ALARM_FAN[ix]) & 0x01; in show_fan()
1119 res = FAN_TYPE_FROM_REG(data->fan_opt[ix]); in show_fan()
1135 int ix = sensor_attr_2->index; in set_fan() local
1147 if (ix < 4) { in set_fan()
1148 data->fan_min[ix] = FAN_TO_REG(val, 0); in set_fan()
1151 data->fan_opt[ix] = dme1737_read(data, in set_fan()
1152 DME1737_REG_FAN_OPT(ix)); in set_fan()
1154 data->fan_min[ix] = FAN_TO_REG(val, in set_fan()
1155 FAN_TPC_FROM_REG(data->fan_opt[ix])); in set_fan()
1157 dme1737_write(data, DME1737_REG_FAN_MIN(ix), in set_fan()
1158 data->fan_min[ix] & 0xff); in set_fan()
1159 dme1737_write(data, DME1737_REG_FAN_MIN(ix) + 1, in set_fan()
1160 data->fan_min[ix] >> 8); in set_fan()
1164 data->fan_max[ix - 4] = FAN_MAX_TO_REG(val); in set_fan()
1165 dme1737_write(data, DME1737_REG_FAN_MAX(ix), in set_fan()
1166 data->fan_max[ix - 4]); in set_fan()
1177 data->fan_opt[ix] = FAN_TYPE_TO_REG(val, dme1737_read(data, in set_fan()
1178 DME1737_REG_FAN_OPT(ix))); in set_fan()
1179 dme1737_write(data, DME1737_REG_FAN_OPT(ix), in set_fan()
1180 data->fan_opt[ix]); in set_fan()
1211 int ix = sensor_attr_2->index; in show_pwm() local
1217 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 0) in show_pwm()
1220 res = data->pwm[ix]; in show_pwm()
1223 res = PWM_FREQ_FROM_REG(data->pwm_freq[ix]); in show_pwm()
1226 if (ix >= 3) in show_pwm()
1229 res = PWM_EN_FROM_REG(data->pwm_config[ix]); in show_pwm()
1233 res = PWM_RR_FROM_REG(data->pwm_rr[ix > 0], ix); in show_pwm()
1237 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) in show_pwm()
1238 res = PWM_ACZ_FROM_REG(data->pwm_config[ix]); in show_pwm()
1240 res = data->pwm_acz[ix]; in show_pwm()
1244 if (PWM_OFF_FROM_REG(data->pwm_rr[0], ix)) in show_pwm()
1245 res = data->pwm_min[ix]; in show_pwm()
1251 res = data->pwm_min[ix]; in show_pwm()
1274 int ix = sensor_attr_2->index; in set_pwm() local
1286 data->pwm[ix] = clamp_val(val, 0, 255); in set_pwm()
1287 dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]); in set_pwm()
1290 data->pwm_freq[ix] = PWM_FREQ_TO_REG(val, dme1737_read(data, in set_pwm()
1291 DME1737_REG_PWM_FREQ(ix))); in set_pwm()
1292 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_pwm()
1293 data->pwm_freq[ix]); in set_pwm()
1305 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1306 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1307 if (val == PWM_EN_FROM_REG(data->pwm_config[ix])) { in set_pwm()
1312 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1314 data->pwm_acz[ix] = PWM_ACZ_FROM_REG( in set_pwm()
1315 data->pwm_config[ix]); in set_pwm()
1317 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1318 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1319 data->pwm_rr_en &= ~(1 << ix); in set_pwm()
1320 if (PWM_RR_EN_FROM_REG(data->pwm_rr[ix > 0], ix)) { in set_pwm()
1321 data->pwm_rr_en |= (1 << ix); in set_pwm()
1322 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(0, ix, in set_pwm()
1323 data->pwm_rr[ix > 0]); in set_pwm()
1325 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1326 data->pwm_rr[ix > 0]); in set_pwm()
1333 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1336 data->pwm_config[ix] = PWM_EN_TO_REG(0, in set_pwm()
1337 data->pwm_config[ix]); in set_pwm()
1338 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1339 data->pwm_config[ix]); in set_pwm()
1343 data->pwm_config[ix] = PWM_EN_TO_REG(1, in set_pwm()
1344 data->pwm_config[ix]); in set_pwm()
1345 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1346 data->pwm_config[ix]); in set_pwm()
1348 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1353 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1359 data->pwm_config[ix] = PWM_ACZ_TO_REG( in set_pwm()
1360 data->pwm_acz[ix], in set_pwm()
1361 data->pwm_config[ix]); in set_pwm()
1362 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1363 data->pwm_config[ix]); in set_pwm()
1365 if (data->pwm_rr_en & (1 << ix)) { in set_pwm()
1366 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(1, ix, in set_pwm()
1368 DME1737_REG_PWM_RR(ix > 0))); in set_pwm()
1370 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1371 data->pwm_rr[ix > 0]); in set_pwm()
1379 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1380 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1381 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1382 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1385 data->pwm_rr[ix > 0] = PWM_RR_TO_REG(val, ix, in set_pwm()
1386 data->pwm_rr[ix > 0]); in set_pwm()
1392 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1393 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(val > 0, ix, in set_pwm()
1394 data->pwm_rr[ix > 0]); in set_pwm()
1396 dme1737_write(data, DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1397 data->pwm_rr[ix > 0]); in set_pwm()
1410 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1411 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1412 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1417 data->pwm_config[ix] = PWM_ACZ_TO_REG(val, in set_pwm()
1418 data->pwm_config[ix]); in set_pwm()
1419 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1420 data->pwm_config[ix]); in set_pwm()
1426 data->pwm_acz[ix] = val; in set_pwm()
1432 data->pwm_min[ix] = dme1737_read(data, in set_pwm()
1433 DME1737_REG_PWM_MIN(ix)); in set_pwm()
1440 if (val > ((data->pwm_min[ix] + 1) / 2)) { in set_pwm()
1441 data->pwm_rr[0] = PWM_OFF_TO_REG(1, ix, in set_pwm()
1445 data->pwm_rr[0] = PWM_OFF_TO_REG(0, ix, in set_pwm()
1454 data->pwm_min[ix] = clamp_val(val, 0, 255); in set_pwm()
1455 dme1737_write(data, DME1737_REG_PWM_MIN(ix), in set_pwm()
1456 data->pwm_min[ix]); in set_pwm()
1520 #define SENSOR_DEVICE_ATTR_IN(ix) \ argument
1521 static SENSOR_DEVICE_ATTR_2(in##ix##_input, S_IRUGO, \
1522 show_in, NULL, SYS_IN_INPUT, ix); \
1523 static SENSOR_DEVICE_ATTR_2(in##ix##_min, S_IRUGO | S_IWUSR, \
1524 show_in, set_in, SYS_IN_MIN, ix); \
1525 static SENSOR_DEVICE_ATTR_2(in##ix##_max, S_IRUGO | S_IWUSR, \
1526 show_in, set_in, SYS_IN_MAX, ix); \
1527 static SENSOR_DEVICE_ATTR_2(in##ix##_alarm, S_IRUGO, \
1528 show_in, NULL, SYS_IN_ALARM, ix)
1541 #define SENSOR_DEVICE_ATTR_TEMP(ix) \ argument
1542 static SENSOR_DEVICE_ATTR_2(temp##ix##_input, S_IRUGO, \
1543 show_temp, NULL, SYS_TEMP_INPUT, ix-1); \
1544 static SENSOR_DEVICE_ATTR_2(temp##ix##_min, S_IRUGO | S_IWUSR, \
1545 show_temp, set_temp, SYS_TEMP_MIN, ix-1); \
1546 static SENSOR_DEVICE_ATTR_2(temp##ix##_max, S_IRUGO | S_IWUSR, \
1547 show_temp, set_temp, SYS_TEMP_MAX, ix-1); \
1548 static SENSOR_DEVICE_ATTR_2(temp##ix##_offset, S_IRUGO, \
1549 show_temp, set_temp, SYS_TEMP_OFFSET, ix-1); \
1550 static SENSOR_DEVICE_ATTR_2(temp##ix##_alarm, S_IRUGO, \
1551 show_temp, NULL, SYS_TEMP_ALARM, ix-1); \
1552 static SENSOR_DEVICE_ATTR_2(temp##ix##_fault, S_IRUGO, \
1553 show_temp, NULL, SYS_TEMP_FAULT, ix-1)
1561 #define SENSOR_DEVICE_ATTR_ZONE(ix) \ argument
1562 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_channels_temp, S_IRUGO, \
1563 show_zone, NULL, SYS_ZONE_AUTO_CHANNELS_TEMP, ix-1); \
1564 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp_hyst, S_IRUGO, \
1565 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP_HYST, ix-1); \
1566 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp, S_IRUGO, \
1567 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP, ix-1); \
1568 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point2_temp, S_IRUGO, \
1569 show_zone, set_zone, SYS_ZONE_AUTO_POINT2_TEMP, ix-1); \
1570 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point3_temp, S_IRUGO, \
1571 show_zone, set_zone, SYS_ZONE_AUTO_POINT3_TEMP, ix-1)
1579 #define SENSOR_DEVICE_ATTR_FAN_1TO4(ix) \ argument
1580 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1581 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1582 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1583 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1584 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1585 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1586 static SENSOR_DEVICE_ATTR_2(fan##ix##_type, S_IRUGO | S_IWUSR, \
1587 show_fan, set_fan, SYS_FAN_TYPE, ix-1)
1596 #define SENSOR_DEVICE_ATTR_FAN_5TO6(ix) \ argument
1597 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1598 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1599 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1600 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1601 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1602 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1603 static SENSOR_DEVICE_ATTR_2(fan##ix##_max, S_IRUGO | S_IWUSR, \
1604 show_fan, set_fan, SYS_FAN_MAX, ix-1)
1611 #define SENSOR_DEVICE_ATTR_PWM_1TO3(ix) \ argument
1612 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1613 show_pwm, set_pwm, SYS_PWM, ix-1); \
1614 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1615 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1616 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1617 show_pwm, set_pwm, SYS_PWM_ENABLE, ix-1); \
1618 static SENSOR_DEVICE_ATTR_2(pwm##ix##_ramp_rate, S_IRUGO, \
1619 show_pwm, set_pwm, SYS_PWM_RAMP_RATE, ix-1); \
1620 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_channels_zone, S_IRUGO, \
1621 show_pwm, set_pwm, SYS_PWM_AUTO_CHANNELS_ZONE, ix-1); \
1622 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_pwm_min, S_IRUGO, \
1623 show_pwm, set_pwm, SYS_PWM_AUTO_PWM_MIN, ix-1); \
1624 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point1_pwm, S_IRUGO, \
1625 show_pwm, set_pwm, SYS_PWM_AUTO_POINT1_PWM, ix-1); \
1626 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point2_pwm, S_IRUGO, \
1627 show_pwm, NULL, SYS_PWM_AUTO_POINT2_PWM, ix-1)
1635 #define SENSOR_DEVICE_ATTR_PWM_5TO6(ix) \ argument
1636 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1637 show_pwm, set_pwm, SYS_PWM, ix-1); \
1638 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1639 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1640 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1641 show_pwm, NULL, SYS_PWM_ENABLE, ix-1)
2074 int ix; in dme1737_remove_files() local
2076 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_remove_files()
2077 if (data->has_features & HAS_FAN(ix)) { in dme1737_remove_files()
2079 &dme1737_fan_group[ix]); in dme1737_remove_files()
2083 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_remove_files()
2084 if (data->has_features & HAS_PWM(ix)) { in dme1737_remove_files()
2086 &dme1737_pwm_group[ix]); in dme1737_remove_files()
2087 if ((data->has_features & HAS_PWM_MIN) && ix < 3) { in dme1737_remove_files()
2089 dme1737_auto_pwm_min_attr[ix]); in dme1737_remove_files()
2113 int err, ix; in dme1737_create_files() local
2156 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_create_files()
2157 if (data->has_features & HAS_FAN(ix)) { in dme1737_create_files()
2159 &dme1737_fan_group[ix]); in dme1737_create_files()
2166 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_create_files()
2167 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2169 &dme1737_pwm_group[ix]); in dme1737_create_files()
2172 if ((data->has_features & HAS_PWM_MIN) && (ix < 3)) { in dme1737_create_files()
2174 dme1737_auto_pwm_min_attr[ix]); in dme1737_create_files()
2208 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_chmod_group); ix++) { in dme1737_create_files()
2209 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2211 &dme1737_pwm_chmod_group[ix], in dme1737_create_files()
2214 ix < 3) { in dme1737_create_files()
2216 dme1737_auto_pwm_min_attr[ix], in dme1737_create_files()
2223 for (ix = 0; ix < 3; ix++) { in dme1737_create_files()
2224 if ((data->has_features & HAS_PWM(ix)) && in dme1737_create_files()
2225 (PWM_EN_FROM_REG(data->pwm_config[ix]) == 1)) { in dme1737_create_files()
2227 dme1737_pwm_chmod_attr[ix], in dme1737_create_files()
2245 int ix; in dme1737_init_device() local
2355 for (ix = 0; ix < 3; ix++) { in dme1737_init_device()
2356 data->pwm_config[ix] = dme1737_read(data, in dme1737_init_device()
2357 DME1737_REG_PWM_CONFIG(ix)); in dme1737_init_device()
2358 if ((data->has_features & HAS_PWM(ix)) && in dme1737_init_device()
2359 (PWM_EN_FROM_REG(data->pwm_config[ix]) == -1)) { in dme1737_init_device()
2362 ix + 1); in dme1737_init_device()
2363 data->pwm_config[ix] = PWM_EN_TO_REG(1, in dme1737_init_device()
2364 data->pwm_config[ix]); in dme1737_init_device()
2365 dme1737_write(data, DME1737_REG_PWM(ix), 0); in dme1737_init_device()
2367 DME1737_REG_PWM_CONFIG(ix), in dme1737_init_device()
2368 data->pwm_config[ix]); in dme1737_init_device()