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
331 static inline int TEMP_HYST_FROM_REG(int reg, int ix) in TEMP_HYST_FROM_REG() argument
333 return (((ix == 1) ? reg : reg >> 4) & 0x0f) * 1000; in TEMP_HYST_FROM_REG()
336 static inline int TEMP_HYST_TO_REG(int temp, long hyst, int ix, int reg) in TEMP_HYST_TO_REG() argument
341 return (ix == 1) ? (reg & 0xf0) | hyst : (reg & 0x0f) | (hyst << 4); in TEMP_HYST_TO_REG()
509 static inline int PWM_RR_FROM_REG(int reg, int ix) in PWM_RR_FROM_REG() argument
511 int rr = (ix == 1) ? reg >> 4 : reg; in PWM_RR_FROM_REG()
516 static int PWM_RR_TO_REG(long val, int ix, int reg) in PWM_RR_TO_REG() argument
525 return (ix == 1) ? (reg & 0x8f) | (i << 4) : (reg & 0xf8) | i; in PWM_RR_TO_REG()
529 static inline int PWM_RR_EN_FROM_REG(int reg, int ix) in PWM_RR_EN_FROM_REG() argument
531 return PWM_RR_FROM_REG(reg, ix) ? 1 : 0; in PWM_RR_EN_FROM_REG()
534 static inline int PWM_RR_EN_TO_REG(long val, int ix, int reg) in PWM_RR_EN_TO_REG() argument
536 int en = (ix == 1) ? 0x80 : 0x08; in PWM_RR_EN_TO_REG()
546 static inline int PWM_OFF_FROM_REG(int reg, int ix) in PWM_OFF_FROM_REG() argument
548 return (reg >> (ix + 5)) & 0x01; in PWM_OFF_FROM_REG()
551 static inline int PWM_OFF_TO_REG(int val, int ix, int reg) in PWM_OFF_TO_REG() argument
553 return (reg & ~(1 << (ix + 5))) | ((val & 0x01) << (ix + 5)); in PWM_OFF_TO_REG()
610 int ix; in dme1737_update_device() local
630 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
636 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
638 data->in[ix] = dme1737_read(data, in dme1737_update_device()
639 DME1737_REG_IN(ix)) << 8; in dme1737_update_device()
640 data->in_min[ix] = dme1737_read(data, in dme1737_update_device()
641 DME1737_REG_IN_MIN(ix)); in dme1737_update_device()
642 data->in_max[ix] = dme1737_read(data, in dme1737_update_device()
643 DME1737_REG_IN_MAX(ix)); in dme1737_update_device()
647 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
655 data->temp[ix] = dme1737_read(data, in dme1737_update_device()
656 DME1737_REG_TEMP(ix)) << 8; in dme1737_update_device()
657 data->temp_min[ix] = dme1737_read(data, in dme1737_update_device()
658 DME1737_REG_TEMP_MIN(ix)); in dme1737_update_device()
659 data->temp_max[ix] = dme1737_read(data, in dme1737_update_device()
660 DME1737_REG_TEMP_MAX(ix)); in dme1737_update_device()
662 data->temp_offset[ix] = dme1737_read(data, in dme1737_update_device()
663 DME1737_REG_TEMP_OFFSET(ix)); in dme1737_update_device()
673 for (ix = 0; ix < ARRAY_SIZE(lsb); ix++) { in dme1737_update_device()
674 if (ix == 5 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
676 lsb[ix] = dme1737_read(data, in dme1737_update_device()
677 DME1737_REG_IN_TEMP_LSB(ix)); in dme1737_update_device()
679 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
680 if (ix == 7 && !(data->has_features & HAS_IN7)) in dme1737_update_device()
682 data->in[ix] |= (lsb[DME1737_REG_IN_LSB[ix]] << in dme1737_update_device()
683 DME1737_REG_IN_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
685 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
686 data->temp[ix] |= (lsb[DME1737_REG_TEMP_LSB[ix]] << in dme1737_update_device()
687 DME1737_REG_TEMP_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
691 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in dme1737_update_device()
696 if (!(data->has_features & HAS_FAN(ix))) in dme1737_update_device()
698 data->fan[ix] = dme1737_read(data, in dme1737_update_device()
699 DME1737_REG_FAN(ix)); in dme1737_update_device()
700 data->fan[ix] |= dme1737_read(data, in dme1737_update_device()
701 DME1737_REG_FAN(ix) + 1) << 8; in dme1737_update_device()
702 data->fan_min[ix] = dme1737_read(data, in dme1737_update_device()
703 DME1737_REG_FAN_MIN(ix)); in dme1737_update_device()
704 data->fan_min[ix] |= dme1737_read(data, in dme1737_update_device()
705 DME1737_REG_FAN_MIN(ix) + 1) << 8; in dme1737_update_device()
706 data->fan_opt[ix] = dme1737_read(data, in dme1737_update_device()
707 DME1737_REG_FAN_OPT(ix)); in dme1737_update_device()
709 if (ix > 3) { in dme1737_update_device()
710 data->fan_max[ix - 4] = dme1737_read(data, in dme1737_update_device()
711 DME1737_REG_FAN_MAX(ix)); in dme1737_update_device()
716 for (ix = 0; ix < ARRAY_SIZE(data->pwm); ix++) { in dme1737_update_device()
721 if (!(data->has_features & HAS_PWM(ix))) in dme1737_update_device()
723 data->pwm[ix] = dme1737_read(data, in dme1737_update_device()
724 DME1737_REG_PWM(ix)); in dme1737_update_device()
725 data->pwm_freq[ix] = dme1737_read(data, in dme1737_update_device()
726 DME1737_REG_PWM_FREQ(ix)); in dme1737_update_device()
728 if (ix < 3) { in dme1737_update_device()
729 data->pwm_config[ix] = dme1737_read(data, in dme1737_update_device()
730 DME1737_REG_PWM_CONFIG(ix)); in dme1737_update_device()
731 data->pwm_min[ix] = dme1737_read(data, in dme1737_update_device()
732 DME1737_REG_PWM_MIN(ix)); in dme1737_update_device()
735 for (ix = 0; ix < ARRAY_SIZE(data->pwm_rr); ix++) { in dme1737_update_device()
736 data->pwm_rr[ix] = dme1737_read(data, in dme1737_update_device()
737 DME1737_REG_PWM_RR(ix)); in dme1737_update_device()
741 for (ix = 0; ix < ARRAY_SIZE(data->zone_low); ix++) { in dme1737_update_device()
743 if ((ix == 2) && !(data->has_features & HAS_ZONE3)) in dme1737_update_device()
746 if ((ix == 1) && (data->type == sch5127)) { in dme1737_update_device()
752 data->zone_low[ix] = dme1737_read(data, in dme1737_update_device()
753 DME1737_REG_ZONE_LOW(ix)); in dme1737_update_device()
754 data->zone_abs[ix] = dme1737_read(data, in dme1737_update_device()
755 DME1737_REG_ZONE_ABS(ix)); in dme1737_update_device()
759 for (ix = 0; ix < ARRAY_SIZE(data->zone_hyst); ix++) { in dme1737_update_device()
760 data->zone_hyst[ix] = dme1737_read(data, in dme1737_update_device()
761 DME1737_REG_ZONE_HYST(ix)); in dme1737_update_device()
818 int ix = sensor_attr_2->index; in show_in() local
824 res = IN_FROM_REG(data->in[ix], data->in_nominal[ix], 16); in show_in()
827 res = IN_FROM_REG(data->in_min[ix], data->in_nominal[ix], 8); in show_in()
830 res = IN_FROM_REG(data->in_max[ix], data->in_nominal[ix], 8); in show_in()
833 res = (data->alarms >> DME1737_BIT_ALARM_IN[ix]) & 0x01; in show_in()
849 int ix = sensor_attr_2->index; in set_in() local
861 data->in_min[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
862 dme1737_write(data, DME1737_REG_IN_MIN(ix), in set_in()
863 data->in_min[ix]); in set_in()
866 data->in_max[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
867 dme1737_write(data, DME1737_REG_IN_MAX(ix), in set_in()
868 data->in_max[ix]); in set_in()
896 int ix = sensor_attr_2->index; in show_temp() local
902 res = TEMP_FROM_REG(data->temp[ix], 16); in show_temp()
905 res = TEMP_FROM_REG(data->temp_min[ix], 8); in show_temp()
908 res = TEMP_FROM_REG(data->temp_max[ix], 8); in show_temp()
911 res = TEMP_FROM_REG(data->temp_offset[ix], 8); in show_temp()
914 res = (data->alarms >> DME1737_BIT_ALARM_TEMP[ix]) & 0x01; in show_temp()
917 res = (((u16)data->temp[ix] & 0xff00) == 0x8000); in show_temp()
933 int ix = sensor_attr_2->index; in set_temp() local
945 data->temp_min[ix] = TEMP_TO_REG(val); in set_temp()
946 dme1737_write(data, DME1737_REG_TEMP_MIN(ix), in set_temp()
947 data->temp_min[ix]); in set_temp()
950 data->temp_max[ix] = TEMP_TO_REG(val); in set_temp()
951 dme1737_write(data, DME1737_REG_TEMP_MAX(ix), in set_temp()
952 data->temp_max[ix]); in set_temp()
955 data->temp_offset[ix] = TEMP_TO_REG(val); in set_temp()
956 dme1737_write(data, DME1737_REG_TEMP_OFFSET(ix), in set_temp()
957 data->temp_offset[ix]); in set_temp()
984 int ix = sensor_attr_2->index; in show_zone() local
991 if ((ix == 1) && (data->config2 & 0x02)) in show_zone()
994 res = 1 << ix; in show_zone()
997 res = TEMP_FROM_REG(data->zone_low[ix], 8) - in show_zone()
998 TEMP_HYST_FROM_REG(data->zone_hyst[ix == 2], ix); in show_zone()
1001 res = TEMP_FROM_REG(data->zone_low[ix], 8); in show_zone()
1005 res = TEMP_FROM_REG(data->zone_low[ix], 8) + in show_zone()
1006 TEMP_RANGE_FROM_REG(data->pwm_freq[ix]); in show_zone()
1009 res = TEMP_FROM_REG(data->zone_abs[ix], 8); in show_zone()
1025 int ix = sensor_attr_2->index; in set_zone() local
1040 data->zone_low[ix] = dme1737_read(data, in set_zone()
1041 DME1737_REG_ZONE_LOW(ix)); in set_zone()
1043 temp = TEMP_FROM_REG(data->zone_low[ix], 8); in set_zone()
1044 reg = dme1737_read(data, DME1737_REG_ZONE_HYST(ix == 2)); in set_zone()
1045 data->zone_hyst[ix == 2] = TEMP_HYST_TO_REG(temp, val, ix, reg); in set_zone()
1046 dme1737_write(data, DME1737_REG_ZONE_HYST(ix == 2), in set_zone()
1047 data->zone_hyst[ix == 2]); in set_zone()
1050 data->zone_low[ix] = TEMP_TO_REG(val); in set_zone()
1051 dme1737_write(data, DME1737_REG_ZONE_LOW(ix), in set_zone()
1052 data->zone_low[ix]); in set_zone()
1056 data->zone_low[ix] = dme1737_read(data, in set_zone()
1057 DME1737_REG_ZONE_LOW(ix)); in set_zone()
1062 temp = TEMP_FROM_REG(data->zone_low[ix], 8); in set_zone()
1064 reg = dme1737_read(data, DME1737_REG_PWM_FREQ(ix)); in set_zone()
1065 data->pwm_freq[ix] = TEMP_RANGE_TO_REG(val - temp, reg); in set_zone()
1066 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_zone()
1067 data->pwm_freq[ix]); in set_zone()
1070 data->zone_abs[ix] = TEMP_TO_REG(val); in set_zone()
1071 dme1737_write(data, DME1737_REG_ZONE_ABS(ix), in set_zone()
1072 data->zone_abs[ix]); in set_zone()
1099 int ix = sensor_attr_2->index; in show_fan() local
1105 res = FAN_FROM_REG(data->fan[ix], in show_fan()
1106 ix < 4 ? 0 : in show_fan()
1107 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1110 res = FAN_FROM_REG(data->fan_min[ix], in show_fan()
1111 ix < 4 ? 0 : in show_fan()
1112 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1116 res = FAN_MAX_FROM_REG(data->fan_max[ix - 4]); in show_fan()
1119 res = (data->alarms >> DME1737_BIT_ALARM_FAN[ix]) & 0x01; in show_fan()
1123 res = FAN_TYPE_FROM_REG(data->fan_opt[ix]); in show_fan()
1139 int ix = sensor_attr_2->index; in set_fan() local
1151 if (ix < 4) { in set_fan()
1152 data->fan_min[ix] = FAN_TO_REG(val, 0); in set_fan()
1155 data->fan_opt[ix] = dme1737_read(data, in set_fan()
1156 DME1737_REG_FAN_OPT(ix)); in set_fan()
1158 data->fan_min[ix] = FAN_TO_REG(val, in set_fan()
1159 FAN_TPC_FROM_REG(data->fan_opt[ix])); in set_fan()
1161 dme1737_write(data, DME1737_REG_FAN_MIN(ix), in set_fan()
1162 data->fan_min[ix] & 0xff); in set_fan()
1163 dme1737_write(data, DME1737_REG_FAN_MIN(ix) + 1, in set_fan()
1164 data->fan_min[ix] >> 8); in set_fan()
1168 data->fan_max[ix - 4] = FAN_MAX_TO_REG(val); in set_fan()
1169 dme1737_write(data, DME1737_REG_FAN_MAX(ix), in set_fan()
1170 data->fan_max[ix - 4]); in set_fan()
1181 data->fan_opt[ix] = FAN_TYPE_TO_REG(val, dme1737_read(data, in set_fan()
1182 DME1737_REG_FAN_OPT(ix))); in set_fan()
1183 dme1737_write(data, DME1737_REG_FAN_OPT(ix), in set_fan()
1184 data->fan_opt[ix]); in set_fan()
1215 int ix = sensor_attr_2->index; in show_pwm() local
1221 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 0) in show_pwm()
1224 res = data->pwm[ix]; in show_pwm()
1227 res = PWM_FREQ_FROM_REG(data->pwm_freq[ix]); in show_pwm()
1230 if (ix >= 3) in show_pwm()
1233 res = PWM_EN_FROM_REG(data->pwm_config[ix]); in show_pwm()
1237 res = PWM_RR_FROM_REG(data->pwm_rr[ix > 0], ix); in show_pwm()
1241 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) in show_pwm()
1242 res = PWM_ACZ_FROM_REG(data->pwm_config[ix]); in show_pwm()
1244 res = data->pwm_acz[ix]; in show_pwm()
1248 if (PWM_OFF_FROM_REG(data->pwm_rr[0], ix)) in show_pwm()
1249 res = data->pwm_min[ix]; in show_pwm()
1255 res = data->pwm_min[ix]; in show_pwm()
1278 int ix = sensor_attr_2->index; in set_pwm() local
1290 data->pwm[ix] = clamp_val(val, 0, 255); in set_pwm()
1291 dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]); in set_pwm()
1294 data->pwm_freq[ix] = PWM_FREQ_TO_REG(val, dme1737_read(data, in set_pwm()
1295 DME1737_REG_PWM_FREQ(ix))); in set_pwm()
1296 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_pwm()
1297 data->pwm_freq[ix]); in set_pwm()
1309 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1310 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1311 if (val == PWM_EN_FROM_REG(data->pwm_config[ix])) { in set_pwm()
1316 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1318 data->pwm_acz[ix] = PWM_ACZ_FROM_REG( in set_pwm()
1319 data->pwm_config[ix]); in set_pwm()
1321 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1322 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1323 data->pwm_rr_en &= ~(1 << ix); in set_pwm()
1324 if (PWM_RR_EN_FROM_REG(data->pwm_rr[ix > 0], ix)) { in set_pwm()
1325 data->pwm_rr_en |= (1 << ix); in set_pwm()
1326 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(0, ix, in set_pwm()
1327 data->pwm_rr[ix > 0]); in set_pwm()
1329 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1330 data->pwm_rr[ix > 0]); in set_pwm()
1337 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1340 data->pwm_config[ix] = PWM_EN_TO_REG(0, in set_pwm()
1341 data->pwm_config[ix]); in set_pwm()
1342 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1343 data->pwm_config[ix]); in set_pwm()
1347 data->pwm_config[ix] = PWM_EN_TO_REG(1, in set_pwm()
1348 data->pwm_config[ix]); in set_pwm()
1349 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1350 data->pwm_config[ix]); in set_pwm()
1352 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1357 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1363 data->pwm_config[ix] = PWM_ACZ_TO_REG( in set_pwm()
1364 data->pwm_acz[ix], in set_pwm()
1365 data->pwm_config[ix]); in set_pwm()
1366 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1367 data->pwm_config[ix]); in set_pwm()
1369 if (data->pwm_rr_en & (1 << ix)) { in set_pwm()
1370 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(1, ix, in set_pwm()
1372 DME1737_REG_PWM_RR(ix > 0))); in set_pwm()
1374 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1375 data->pwm_rr[ix > 0]); in set_pwm()
1383 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1384 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1385 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1386 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1389 data->pwm_rr[ix > 0] = PWM_RR_TO_REG(val, ix, in set_pwm()
1390 data->pwm_rr[ix > 0]); in set_pwm()
1396 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1397 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(val > 0, ix, in set_pwm()
1398 data->pwm_rr[ix > 0]); in set_pwm()
1400 dme1737_write(data, DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1401 data->pwm_rr[ix > 0]); in set_pwm()
1414 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1415 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1416 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1421 data->pwm_config[ix] = PWM_ACZ_TO_REG(val, in set_pwm()
1422 data->pwm_config[ix]); in set_pwm()
1423 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1424 data->pwm_config[ix]); in set_pwm()
1430 data->pwm_acz[ix] = val; in set_pwm()
1436 data->pwm_min[ix] = dme1737_read(data, in set_pwm()
1437 DME1737_REG_PWM_MIN(ix)); in set_pwm()
1444 if (val > ((data->pwm_min[ix] + 1) / 2)) { in set_pwm()
1445 data->pwm_rr[0] = PWM_OFF_TO_REG(1, ix, in set_pwm()
1449 data->pwm_rr[0] = PWM_OFF_TO_REG(0, ix, in set_pwm()
1458 data->pwm_min[ix] = clamp_val(val, 0, 255); in set_pwm()
1459 dme1737_write(data, DME1737_REG_PWM_MIN(ix), in set_pwm()
1460 data->pwm_min[ix]); in set_pwm()
1524 #define SENSOR_DEVICE_ATTR_IN(ix) \ argument
1525 static SENSOR_DEVICE_ATTR_2(in##ix##_input, S_IRUGO, \
1526 show_in, NULL, SYS_IN_INPUT, ix); \
1527 static SENSOR_DEVICE_ATTR_2(in##ix##_min, S_IRUGO | S_IWUSR, \
1528 show_in, set_in, SYS_IN_MIN, ix); \
1529 static SENSOR_DEVICE_ATTR_2(in##ix##_max, S_IRUGO | S_IWUSR, \
1530 show_in, set_in, SYS_IN_MAX, ix); \
1531 static SENSOR_DEVICE_ATTR_2(in##ix##_alarm, S_IRUGO, \
1532 show_in, NULL, SYS_IN_ALARM, ix)
1545 #define SENSOR_DEVICE_ATTR_TEMP(ix) \ argument
1546 static SENSOR_DEVICE_ATTR_2(temp##ix##_input, S_IRUGO, \
1547 show_temp, NULL, SYS_TEMP_INPUT, ix-1); \
1548 static SENSOR_DEVICE_ATTR_2(temp##ix##_min, S_IRUGO | S_IWUSR, \
1549 show_temp, set_temp, SYS_TEMP_MIN, ix-1); \
1550 static SENSOR_DEVICE_ATTR_2(temp##ix##_max, S_IRUGO | S_IWUSR, \
1551 show_temp, set_temp, SYS_TEMP_MAX, ix-1); \
1552 static SENSOR_DEVICE_ATTR_2(temp##ix##_offset, S_IRUGO, \
1553 show_temp, set_temp, SYS_TEMP_OFFSET, ix-1); \
1554 static SENSOR_DEVICE_ATTR_2(temp##ix##_alarm, S_IRUGO, \
1555 show_temp, NULL, SYS_TEMP_ALARM, ix-1); \
1556 static SENSOR_DEVICE_ATTR_2(temp##ix##_fault, S_IRUGO, \
1557 show_temp, NULL, SYS_TEMP_FAULT, ix-1)
1565 #define SENSOR_DEVICE_ATTR_ZONE(ix) \ argument
1566 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_channels_temp, S_IRUGO, \
1567 show_zone, NULL, SYS_ZONE_AUTO_CHANNELS_TEMP, ix-1); \
1568 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp_hyst, S_IRUGO, \
1569 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP_HYST, ix-1); \
1570 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp, S_IRUGO, \
1571 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP, ix-1); \
1572 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point2_temp, S_IRUGO, \
1573 show_zone, set_zone, SYS_ZONE_AUTO_POINT2_TEMP, ix-1); \
1574 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point3_temp, S_IRUGO, \
1575 show_zone, set_zone, SYS_ZONE_AUTO_POINT3_TEMP, ix-1)
1583 #define SENSOR_DEVICE_ATTR_FAN_1TO4(ix) \ argument
1584 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1585 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1586 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1587 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1588 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1589 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1590 static SENSOR_DEVICE_ATTR_2(fan##ix##_type, S_IRUGO | S_IWUSR, \
1591 show_fan, set_fan, SYS_FAN_TYPE, ix-1)
1600 #define SENSOR_DEVICE_ATTR_FAN_5TO6(ix) \ argument
1601 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1602 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1603 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1604 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1605 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1606 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1607 static SENSOR_DEVICE_ATTR_2(fan##ix##_max, S_IRUGO | S_IWUSR, \
1608 show_fan, set_fan, SYS_FAN_MAX, ix-1)
1615 #define SENSOR_DEVICE_ATTR_PWM_1TO3(ix) \ argument
1616 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1617 show_pwm, set_pwm, SYS_PWM, ix-1); \
1618 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1619 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1620 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1621 show_pwm, set_pwm, SYS_PWM_ENABLE, ix-1); \
1622 static SENSOR_DEVICE_ATTR_2(pwm##ix##_ramp_rate, S_IRUGO, \
1623 show_pwm, set_pwm, SYS_PWM_RAMP_RATE, ix-1); \
1624 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_channels_zone, S_IRUGO, \
1625 show_pwm, set_pwm, SYS_PWM_AUTO_CHANNELS_ZONE, ix-1); \
1626 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_pwm_min, S_IRUGO, \
1627 show_pwm, set_pwm, SYS_PWM_AUTO_PWM_MIN, ix-1); \
1628 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point1_pwm, S_IRUGO, \
1629 show_pwm, set_pwm, SYS_PWM_AUTO_POINT1_PWM, ix-1); \
1630 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point2_pwm, S_IRUGO, \
1631 show_pwm, NULL, SYS_PWM_AUTO_POINT2_PWM, ix-1)
1639 #define SENSOR_DEVICE_ATTR_PWM_5TO6(ix) \ argument
1640 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1641 show_pwm, set_pwm, SYS_PWM, ix-1); \
1642 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1643 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1644 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1645 show_pwm, NULL, SYS_PWM_ENABLE, ix-1)
2078 int ix; in dme1737_remove_files() local
2080 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_remove_files()
2081 if (data->has_features & HAS_FAN(ix)) { in dme1737_remove_files()
2083 &dme1737_fan_group[ix]); in dme1737_remove_files()
2087 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_remove_files()
2088 if (data->has_features & HAS_PWM(ix)) { in dme1737_remove_files()
2090 &dme1737_pwm_group[ix]); in dme1737_remove_files()
2091 if ((data->has_features & HAS_PWM_MIN) && ix < 3) { in dme1737_remove_files()
2093 dme1737_auto_pwm_min_attr[ix]); in dme1737_remove_files()
2117 int err, ix; in dme1737_create_files() local
2160 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_create_files()
2161 if (data->has_features & HAS_FAN(ix)) { in dme1737_create_files()
2163 &dme1737_fan_group[ix]); in dme1737_create_files()
2170 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_create_files()
2171 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2173 &dme1737_pwm_group[ix]); in dme1737_create_files()
2176 if ((data->has_features & HAS_PWM_MIN) && (ix < 3)) { in dme1737_create_files()
2178 dme1737_auto_pwm_min_attr[ix]); in dme1737_create_files()
2212 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_chmod_group); ix++) { in dme1737_create_files()
2213 if (data->has_features & HAS_PWM(ix)) { in dme1737_create_files()
2215 &dme1737_pwm_chmod_group[ix], in dme1737_create_files()
2218 ix < 3) { in dme1737_create_files()
2220 dme1737_auto_pwm_min_attr[ix], in dme1737_create_files()
2227 for (ix = 0; ix < 3; ix++) { in dme1737_create_files()
2228 if ((data->has_features & HAS_PWM(ix)) && in dme1737_create_files()
2229 (PWM_EN_FROM_REG(data->pwm_config[ix]) == 1)) { in dme1737_create_files()
2231 dme1737_pwm_chmod_attr[ix], in dme1737_create_files()
2249 int ix; in dme1737_init_device() local
2359 for (ix = 0; ix < 3; ix++) { in dme1737_init_device()
2360 data->pwm_config[ix] = dme1737_read(data, in dme1737_init_device()
2361 DME1737_REG_PWM_CONFIG(ix)); in dme1737_init_device()
2362 if ((data->has_features & HAS_PWM(ix)) && in dme1737_init_device()
2363 (PWM_EN_FROM_REG(data->pwm_config[ix]) == -1)) { in dme1737_init_device()
2366 ix + 1); in dme1737_init_device()
2367 data->pwm_config[ix] = PWM_EN_TO_REG(1, in dme1737_init_device()
2368 data->pwm_config[ix]); in dme1737_init_device()
2369 dme1737_write(data, DME1737_REG_PWM(ix), 0); in dme1737_init_device()
2371 DME1737_REG_PWM_CONFIG(ix), in dme1737_init_device()
2372 data->pwm_config[ix]); in dme1737_init_device()