Lines Matching refs:ix
84 #define DME1737_REG_IN(ix) ((ix) < 5 ? 0x20 + (ix) \ argument
85 : 0x94 + (ix))
86 #define DME1737_REG_IN_MIN(ix) ((ix) < 5 ? 0x44 + (ix) * 2 \ argument
87 : 0x91 + (ix) * 2)
88 #define DME1737_REG_IN_MAX(ix) ((ix) < 5 ? 0x45 + (ix) * 2 \ argument
89 : 0x92 + (ix) * 2)
92 #define DME1737_REG_TEMP(ix) (0x25 + (ix)) argument
93 #define DME1737_REG_TEMP_MIN(ix) (0x4e + (ix) * 2) argument
94 #define DME1737_REG_TEMP_MAX(ix) (0x4f + (ix) * 2) argument
95 #define DME1737_REG_TEMP_OFFSET(ix) ((ix) == 0 ? 0x1f \ argument
96 : 0x1c + (ix))
105 #define DME1737_REG_IN_TEMP_LSB(ix) (0x84 + (ix)) argument
112 #define DME1737_REG_FAN(ix) ((ix) < 4 ? 0x28 + (ix) * 2 \ argument
113 : 0xa1 + (ix) * 2)
114 #define DME1737_REG_FAN_MIN(ix) ((ix) < 4 ? 0x54 + (ix) * 2 \ argument
115 : 0xa5 + (ix) * 2)
116 #define DME1737_REG_FAN_OPT(ix) ((ix) < 4 ? 0x90 + (ix) \ argument
117 : 0xb2 + (ix))
118 #define DME1737_REG_FAN_MAX(ix) (0xb4 + (ix)) /* only for fan[4-5] */ argument
121 #define DME1737_REG_PWM(ix) ((ix) < 3 ? 0x30 + (ix) \ argument
122 : 0xa1 + (ix))
123 #define DME1737_REG_PWM_CONFIG(ix) (0x5c + (ix)) /* only for pwm[0-2] */ argument
124 #define DME1737_REG_PWM_MIN(ix) (0x64 + (ix)) /* only for pwm[0-2] */ argument
125 #define DME1737_REG_PWM_FREQ(ix) ((ix) < 3 ? 0x5f + (ix) \ argument
126 : 0xa3 + (ix))
131 #define DME1737_REG_PWM_RR(ix) (0x62 + (ix)) /* only for pwm[0-2] */ argument
134 #define DME1737_REG_ZONE_LOW(ix) (0x67 + (ix)) argument
135 #define DME1737_REG_ZONE_ABS(ix) (0x6a + (ix)) argument
140 #define DME1737_REG_ZONE_HYST(ix) (0x6d + (ix)) argument
290 static inline int TEMP_HYST_FROM_REG(int reg, int ix) in TEMP_HYST_FROM_REG() argument
292 return (((ix == 1) ? reg : reg >> 4) & 0x0f) * 1000; in TEMP_HYST_FROM_REG()
295 static inline int TEMP_HYST_TO_REG(int val, int ix, int reg) in TEMP_HYST_TO_REG() argument
299 return (ix == 1) ? (reg & 0xf0) | hyst : (reg & 0x0f) | (hyst << 4); in TEMP_HYST_TO_REG()
461 static inline int PWM_RR_FROM_REG(int reg, int ix) in PWM_RR_FROM_REG() argument
463 int rr = (ix == 1) ? reg >> 4 : reg; in PWM_RR_FROM_REG()
468 static int PWM_RR_TO_REG(int val, int ix, int reg) in PWM_RR_TO_REG() argument
478 return (ix == 1) ? (reg & 0x8f) | (i << 4) : (reg & 0xf8) | i; in PWM_RR_TO_REG()
482 static inline int PWM_RR_EN_FROM_REG(int reg, int ix) in PWM_RR_EN_FROM_REG() argument
484 return PWM_RR_FROM_REG(reg, ix) ? 1 : 0; in PWM_RR_EN_FROM_REG()
487 static inline int PWM_RR_EN_TO_REG(int val, int ix, int reg) in PWM_RR_EN_TO_REG() argument
489 int en = (ix == 1) ? 0x80 : 0x08; in PWM_RR_EN_TO_REG()
497 static inline int PWM_OFF_FROM_REG(int reg, int ix) in PWM_OFF_FROM_REG() argument
499 return (reg >> (ix + 5)) & 0x01; in PWM_OFF_FROM_REG()
502 static inline int PWM_OFF_TO_REG(int val, int ix, int reg) in PWM_OFF_TO_REG() argument
504 return (reg & ~(1 << (ix + 5))) | ((val & 0x01) << (ix + 5)); in PWM_OFF_TO_REG()
561 int ix; in dme1737_update_device() local
581 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
585 data->in[ix] = dme1737_read(data, in dme1737_update_device()
586 DME1737_REG_IN(ix)) << 8; in dme1737_update_device()
587 data->in_min[ix] = dme1737_read(data, in dme1737_update_device()
588 DME1737_REG_IN_MIN(ix)); in dme1737_update_device()
589 data->in_max[ix] = dme1737_read(data, in dme1737_update_device()
590 DME1737_REG_IN_MAX(ix)); in dme1737_update_device()
594 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
600 data->temp[ix] = dme1737_read(data, in dme1737_update_device()
601 DME1737_REG_TEMP(ix)) << 8; in dme1737_update_device()
602 data->temp_min[ix] = dme1737_read(data, in dme1737_update_device()
603 DME1737_REG_TEMP_MIN(ix)); in dme1737_update_device()
604 data->temp_max[ix] = dme1737_read(data, in dme1737_update_device()
605 DME1737_REG_TEMP_MAX(ix)); in dme1737_update_device()
607 data->temp_offset[ix] = dme1737_read(data, in dme1737_update_device()
608 DME1737_REG_TEMP_OFFSET(ix)); in dme1737_update_device()
616 for (ix = 0; ix < ARRAY_SIZE(lsb); ix++) { in dme1737_update_device()
617 lsb[ix] = dme1737_read(data, in dme1737_update_device()
618 DME1737_REG_IN_TEMP_LSB(ix)); in dme1737_update_device()
620 for (ix = 0; ix < ARRAY_SIZE(data->in); ix++) { in dme1737_update_device()
621 data->in[ix] |= (lsb[DME1737_REG_IN_LSB[ix]] << in dme1737_update_device()
622 DME1737_REG_IN_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
624 for (ix = 0; ix < ARRAY_SIZE(data->temp); ix++) { in dme1737_update_device()
625 data->temp[ix] |= (lsb[DME1737_REG_TEMP_LSB[ix]] << in dme1737_update_device()
626 DME1737_REG_TEMP_LSB_SHL[ix]) & 0xf0; in dme1737_update_device()
630 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in dme1737_update_device()
633 if (!(data->has_fan & (1 << ix))) { in dme1737_update_device()
636 data->fan[ix] = dme1737_read(data, in dme1737_update_device()
637 DME1737_REG_FAN(ix)); in dme1737_update_device()
638 data->fan[ix] |= dme1737_read(data, in dme1737_update_device()
639 DME1737_REG_FAN(ix) + 1) << 8; in dme1737_update_device()
640 data->fan_min[ix] = dme1737_read(data, in dme1737_update_device()
641 DME1737_REG_FAN_MIN(ix)); in dme1737_update_device()
642 data->fan_min[ix] |= dme1737_read(data, in dme1737_update_device()
643 DME1737_REG_FAN_MIN(ix) + 1) << 8; in dme1737_update_device()
644 data->fan_opt[ix] = dme1737_read(data, in dme1737_update_device()
645 DME1737_REG_FAN_OPT(ix)); in dme1737_update_device()
647 if (ix > 3) { in dme1737_update_device()
648 data->fan_max[ix - 4] = dme1737_read(data, in dme1737_update_device()
649 DME1737_REG_FAN_MAX(ix)); in dme1737_update_device()
654 for (ix = 0; ix < ARRAY_SIZE(data->pwm); ix++) { in dme1737_update_device()
657 if (!(data->has_pwm & (1 << ix))) { in dme1737_update_device()
660 data->pwm[ix] = dme1737_read(data, in dme1737_update_device()
661 DME1737_REG_PWM(ix)); in dme1737_update_device()
662 data->pwm_freq[ix] = dme1737_read(data, in dme1737_update_device()
663 DME1737_REG_PWM_FREQ(ix)); in dme1737_update_device()
665 if (ix < 3) { in dme1737_update_device()
666 data->pwm_config[ix] = dme1737_read(data, in dme1737_update_device()
667 DME1737_REG_PWM_CONFIG(ix)); in dme1737_update_device()
668 data->pwm_min[ix] = dme1737_read(data, in dme1737_update_device()
669 DME1737_REG_PWM_MIN(ix)); in dme1737_update_device()
672 for (ix = 0; ix < ARRAY_SIZE(data->pwm_rr); ix++) { in dme1737_update_device()
673 data->pwm_rr[ix] = dme1737_read(data, in dme1737_update_device()
674 DME1737_REG_PWM_RR(ix)); in dme1737_update_device()
678 for (ix = 0; ix < ARRAY_SIZE(data->zone_low); ix++) { in dme1737_update_device()
679 data->zone_low[ix] = dme1737_read(data, in dme1737_update_device()
680 DME1737_REG_ZONE_LOW(ix)); in dme1737_update_device()
681 data->zone_abs[ix] = dme1737_read(data, in dme1737_update_device()
682 DME1737_REG_ZONE_ABS(ix)); in dme1737_update_device()
685 for (ix = 0; ix < ARRAY_SIZE(data->zone_hyst); ix++) { in dme1737_update_device()
686 data->zone_hyst[ix] = dme1737_read(data, in dme1737_update_device()
687 DME1737_REG_ZONE_HYST(ix)); in dme1737_update_device()
746 int ix = sensor_attr_2->index; in show_in() local
752 res = IN_FROM_REG(data->in[ix], data->in_nominal[ix], 16); in show_in()
755 res = IN_FROM_REG(data->in_min[ix], data->in_nominal[ix], 8); in show_in()
758 res = IN_FROM_REG(data->in_max[ix], data->in_nominal[ix], 8); in show_in()
761 res = (data->alarms >> DME1737_BIT_ALARM_IN[ix]) & 0x01; in show_in()
777 int ix = sensor_attr_2->index; in set_in() local
784 data->in_min[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
785 dme1737_write(data, DME1737_REG_IN_MIN(ix), in set_in()
786 data->in_min[ix]); in set_in()
789 data->in_max[ix] = IN_TO_REG(val, data->in_nominal[ix]); in set_in()
790 dme1737_write(data, DME1737_REG_IN_MAX(ix), in set_in()
791 data->in_max[ix]); in set_in()
819 int ix = sensor_attr_2->index; in show_temp() local
825 res = TEMP_FROM_REG(data->temp[ix], 16); in show_temp()
828 res = TEMP_FROM_REG(data->temp_min[ix], 8); in show_temp()
831 res = TEMP_FROM_REG(data->temp_max[ix], 8); in show_temp()
834 res = TEMP_FROM_REG(data->temp_offset[ix], 8); in show_temp()
837 res = (data->alarms >> DME1737_BIT_ALARM_TEMP[ix]) & 0x01; in show_temp()
840 res = (((u16)data->temp[ix] & 0xff00) == 0x8000); in show_temp()
856 int ix = sensor_attr_2->index; in set_temp() local
863 data->temp_min[ix] = TEMP_TO_REG(val); in set_temp()
864 dme1737_write(data, DME1737_REG_TEMP_MIN(ix), in set_temp()
865 data->temp_min[ix]); in set_temp()
868 data->temp_max[ix] = TEMP_TO_REG(val); in set_temp()
869 dme1737_write(data, DME1737_REG_TEMP_MAX(ix), in set_temp()
870 data->temp_max[ix]); in set_temp()
873 data->temp_offset[ix] = TEMP_TO_REG(val); in set_temp()
874 dme1737_write(data, DME1737_REG_TEMP_OFFSET(ix), in set_temp()
875 data->temp_offset[ix]); in set_temp()
902 int ix = sensor_attr_2->index; in show_zone() local
909 if ((ix == 1) && (data->config2 & 0x02)) { in show_zone()
912 res = 1 << ix; in show_zone()
916 res = TEMP_FROM_REG(data->zone_low[ix], 8) - in show_zone()
917 TEMP_HYST_FROM_REG(data->zone_hyst[ix == 2], ix); in show_zone()
920 res = TEMP_FROM_REG(data->zone_low[ix], 8); in show_zone()
924 res = TEMP_FROM_REG(data->zone_low[ix], 8) + in show_zone()
925 TEMP_RANGE_FROM_REG(data->pwm_freq[ix]); in show_zone()
928 res = TEMP_FROM_REG(data->zone_abs[ix], 8); in show_zone()
944 int ix = sensor_attr_2->index; in set_zone() local
952 data->zone_low[ix] = dme1737_read(data, in set_zone()
953 DME1737_REG_ZONE_LOW(ix)); in set_zone()
955 data->zone_hyst[ix == 2] = TEMP_HYST_TO_REG( in set_zone()
956 TEMP_FROM_REG(data->zone_low[ix], 8) - in set_zone()
957 val, ix, dme1737_read(data, in set_zone()
958 DME1737_REG_ZONE_HYST(ix == 2))); in set_zone()
959 dme1737_write(data, DME1737_REG_ZONE_HYST(ix == 2), in set_zone()
960 data->zone_hyst[ix == 2]); in set_zone()
963 data->zone_low[ix] = TEMP_TO_REG(val); in set_zone()
964 dme1737_write(data, DME1737_REG_ZONE_LOW(ix), in set_zone()
965 data->zone_low[ix]); in set_zone()
969 data->zone_low[ix] = dme1737_read(data, in set_zone()
970 DME1737_REG_ZONE_LOW(ix)); in set_zone()
973 data->pwm_freq[ix] = TEMP_RANGE_TO_REG(val - in set_zone()
974 TEMP_FROM_REG(data->zone_low[ix], 8), in set_zone()
976 DME1737_REG_PWM_FREQ(ix))); in set_zone()
977 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_zone()
978 data->pwm_freq[ix]); in set_zone()
981 data->zone_abs[ix] = TEMP_TO_REG(val); in set_zone()
982 dme1737_write(data, DME1737_REG_ZONE_ABS(ix), in set_zone()
983 data->zone_abs[ix]); in set_zone()
1010 int ix = sensor_attr_2->index; in show_fan() local
1016 res = FAN_FROM_REG(data->fan[ix], in show_fan()
1017 ix < 4 ? 0 : in show_fan()
1018 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1021 res = FAN_FROM_REG(data->fan_min[ix], in show_fan()
1022 ix < 4 ? 0 : in show_fan()
1023 FAN_TPC_FROM_REG(data->fan_opt[ix])); in show_fan()
1027 res = FAN_MAX_FROM_REG(data->fan_max[ix - 4]); in show_fan()
1030 res = (data->alarms >> DME1737_BIT_ALARM_FAN[ix]) & 0x01; in show_fan()
1034 res = FAN_TYPE_FROM_REG(data->fan_opt[ix]); in show_fan()
1050 int ix = sensor_attr_2->index; in set_fan() local
1057 if (ix < 4) { in set_fan()
1058 data->fan_min[ix] = FAN_TO_REG(val, 0); in set_fan()
1061 data->fan_opt[ix] = dme1737_read(data, in set_fan()
1062 DME1737_REG_FAN_OPT(ix)); in set_fan()
1064 data->fan_min[ix] = FAN_TO_REG(val, in set_fan()
1065 FAN_TPC_FROM_REG(data->fan_opt[ix])); in set_fan()
1067 dme1737_write(data, DME1737_REG_FAN_MIN(ix), in set_fan()
1068 data->fan_min[ix] & 0xff); in set_fan()
1069 dme1737_write(data, DME1737_REG_FAN_MIN(ix) + 1, in set_fan()
1070 data->fan_min[ix] >> 8); in set_fan()
1074 data->fan_max[ix - 4] = FAN_MAX_TO_REG(val); in set_fan()
1075 dme1737_write(data, DME1737_REG_FAN_MAX(ix), in set_fan()
1076 data->fan_max[ix - 4]); in set_fan()
1087 data->fan_opt[ix] = FAN_TYPE_TO_REG(val, dme1737_read(data, in set_fan()
1088 DME1737_REG_FAN_OPT(ix))); in set_fan()
1089 dme1737_write(data, DME1737_REG_FAN_OPT(ix), in set_fan()
1090 data->fan_opt[ix]); in set_fan()
1121 int ix = sensor_attr_2->index; in show_pwm() local
1127 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 0) { in show_pwm()
1130 res = data->pwm[ix]; in show_pwm()
1134 res = PWM_FREQ_FROM_REG(data->pwm_freq[ix]); in show_pwm()
1137 if (ix > 3) { in show_pwm()
1140 res = PWM_EN_FROM_REG(data->pwm_config[ix]); in show_pwm()
1145 res = PWM_RR_FROM_REG(data->pwm_rr[ix > 0], ix); in show_pwm()
1149 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in show_pwm()
1150 res = PWM_ACZ_FROM_REG(data->pwm_config[ix]); in show_pwm()
1152 res = data->pwm_acz[ix]; in show_pwm()
1157 if (PWM_OFF_FROM_REG(data->pwm_rr[0], ix)) { in show_pwm()
1158 res = data->pwm_min[ix]; in show_pwm()
1165 res = data->pwm_min[ix]; in show_pwm()
1188 int ix = sensor_attr_2->index; in set_pwm() local
1195 data->pwm[ix] = SENSORS_LIMIT(val, 0, 255); in set_pwm()
1196 dme1737_write(data, DME1737_REG_PWM(ix), data->pwm[ix]); in set_pwm()
1199 data->pwm_freq[ix] = PWM_FREQ_TO_REG(val, dme1737_read(data, in set_pwm()
1200 DME1737_REG_PWM_FREQ(ix))); in set_pwm()
1201 dme1737_write(data, DME1737_REG_PWM_FREQ(ix), in set_pwm()
1202 data->pwm_freq[ix]); in set_pwm()
1214 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1215 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1216 if (val == PWM_EN_FROM_REG(data->pwm_config[ix])) { in set_pwm()
1221 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1223 data->pwm_acz[ix] = PWM_ACZ_FROM_REG( in set_pwm()
1224 data->pwm_config[ix]); in set_pwm()
1226 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1227 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1228 data->pwm_rr_en &= ~(1 << ix); in set_pwm()
1229 if (PWM_RR_EN_FROM_REG(data->pwm_rr[ix > 0], ix)) { in set_pwm()
1230 data->pwm_rr_en |= (1 << ix); in set_pwm()
1231 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(0, ix, in set_pwm()
1232 data->pwm_rr[ix > 0]); in set_pwm()
1234 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1235 data->pwm_rr[ix > 0]); in set_pwm()
1242 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1245 data->pwm_config[ix] = PWM_EN_TO_REG(0, in set_pwm()
1246 data->pwm_config[ix]); in set_pwm()
1247 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1248 data->pwm_config[ix]); in set_pwm()
1252 data->pwm_config[ix] = PWM_EN_TO_REG(1, in set_pwm()
1253 data->pwm_config[ix]); in set_pwm()
1254 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1255 data->pwm_config[ix]); in set_pwm()
1257 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1262 dme1737_chmod_file(dev, dme1737_pwm_chmod_attr[ix], in set_pwm()
1266 data->pwm_config[ix] = PWM_ACZ_TO_REG( in set_pwm()
1267 data->pwm_acz[ix], in set_pwm()
1268 data->pwm_config[ix]); in set_pwm()
1269 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1270 data->pwm_config[ix]); in set_pwm()
1272 if (data->pwm_rr_en & (1 << ix)) { in set_pwm()
1273 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(1, ix, in set_pwm()
1275 DME1737_REG_PWM_RR(ix > 0))); in set_pwm()
1277 DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1278 data->pwm_rr[ix > 0]); in set_pwm()
1286 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1287 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1288 data->pwm_rr[ix > 0] = dme1737_read(data, in set_pwm()
1289 DME1737_REG_PWM_RR(ix > 0)); in set_pwm()
1292 data->pwm_rr[ix > 0] = PWM_RR_TO_REG(val, ix, in set_pwm()
1293 data->pwm_rr[ix > 0]); in set_pwm()
1297 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1298 data->pwm_rr[ix > 0] = PWM_RR_EN_TO_REG(val > 0, ix, in set_pwm()
1299 data->pwm_rr[ix > 0]); in set_pwm()
1301 dme1737_write(data, DME1737_REG_PWM_RR(ix > 0), in set_pwm()
1302 data->pwm_rr[ix > 0]); in set_pwm()
1315 data->pwm_config[ix] = dme1737_read(data, in set_pwm()
1316 DME1737_REG_PWM_CONFIG(ix)); in set_pwm()
1317 if (PWM_EN_FROM_REG(data->pwm_config[ix]) == 2) { in set_pwm()
1320 data->pwm_config[ix] = PWM_ACZ_TO_REG(val, in set_pwm()
1321 data->pwm_config[ix]); in set_pwm()
1322 dme1737_write(data, DME1737_REG_PWM_CONFIG(ix), in set_pwm()
1323 data->pwm_config[ix]); in set_pwm()
1327 data->pwm_acz[ix] = val; in set_pwm()
1333 data->pwm_min[ix] = dme1737_read(data, in set_pwm()
1334 DME1737_REG_PWM_MIN(ix)); in set_pwm()
1339 if (val > ((data->pwm_min[ix] + 1) / 2)) { in set_pwm()
1340 data->pwm_rr[0] = PWM_OFF_TO_REG(1, ix, in set_pwm()
1344 data->pwm_rr[0] = PWM_OFF_TO_REG(0, ix, in set_pwm()
1353 data->pwm_min[ix] = SENSORS_LIMIT(val, 0, 255); in set_pwm()
1354 dme1737_write(data, DME1737_REG_PWM_MIN(ix), in set_pwm()
1355 data->pwm_min[ix]); in set_pwm()
1411 #define SENSOR_DEVICE_ATTR_IN(ix) \ argument
1412 static SENSOR_DEVICE_ATTR_2(in##ix##_input, S_IRUGO, \
1413 show_in, NULL, SYS_IN_INPUT, ix); \
1414 static SENSOR_DEVICE_ATTR_2(in##ix##_min, S_IRUGO | S_IWUSR, \
1415 show_in, set_in, SYS_IN_MIN, ix); \
1416 static SENSOR_DEVICE_ATTR_2(in##ix##_max, S_IRUGO | S_IWUSR, \
1417 show_in, set_in, SYS_IN_MAX, ix); \
1418 static SENSOR_DEVICE_ATTR_2(in##ix##_alarm, S_IRUGO, \
1419 show_in, NULL, SYS_IN_ALARM, ix)
1431 #define SENSOR_DEVICE_ATTR_TEMP(ix) \ argument
1432 static SENSOR_DEVICE_ATTR_2(temp##ix##_input, S_IRUGO, \
1433 show_temp, NULL, SYS_TEMP_INPUT, ix-1); \
1434 static SENSOR_DEVICE_ATTR_2(temp##ix##_min, S_IRUGO | S_IWUSR, \
1435 show_temp, set_temp, SYS_TEMP_MIN, ix-1); \
1436 static SENSOR_DEVICE_ATTR_2(temp##ix##_max, S_IRUGO | S_IWUSR, \
1437 show_temp, set_temp, SYS_TEMP_MAX, ix-1); \
1438 static SENSOR_DEVICE_ATTR_2(temp##ix##_offset, S_IRUGO, \
1439 show_temp, set_temp, SYS_TEMP_OFFSET, ix-1); \
1440 static SENSOR_DEVICE_ATTR_2(temp##ix##_alarm, S_IRUGO, \
1441 show_temp, NULL, SYS_TEMP_ALARM, ix-1); \
1442 static SENSOR_DEVICE_ATTR_2(temp##ix##_fault, S_IRUGO, \
1443 show_temp, NULL, SYS_TEMP_FAULT, ix-1)
1451 #define SENSOR_DEVICE_ATTR_ZONE(ix) \ argument
1452 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_channels_temp, S_IRUGO, \
1453 show_zone, NULL, SYS_ZONE_AUTO_CHANNELS_TEMP, ix-1); \
1454 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp_hyst, S_IRUGO, \
1455 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP_HYST, ix-1); \
1456 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point1_temp, S_IRUGO, \
1457 show_zone, set_zone, SYS_ZONE_AUTO_POINT1_TEMP, ix-1); \
1458 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point2_temp, S_IRUGO, \
1459 show_zone, set_zone, SYS_ZONE_AUTO_POINT2_TEMP, ix-1); \
1460 static SENSOR_DEVICE_ATTR_2(zone##ix##_auto_point3_temp, S_IRUGO, \
1461 show_zone, set_zone, SYS_ZONE_AUTO_POINT3_TEMP, ix-1)
1469 #define SENSOR_DEVICE_ATTR_FAN_1TO4(ix) \ argument
1470 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1471 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1472 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1473 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1474 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1475 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1476 static SENSOR_DEVICE_ATTR_2(fan##ix##_type, S_IRUGO | S_IWUSR, \
1477 show_fan, set_fan, SYS_FAN_TYPE, ix-1)
1486 #define SENSOR_DEVICE_ATTR_FAN_5TO6(ix) \ argument
1487 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1488 show_fan, NULL, SYS_FAN_INPUT, ix-1); \
1489 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1490 show_fan, set_fan, SYS_FAN_MIN, ix-1); \
1491 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1492 show_fan, NULL, SYS_FAN_ALARM, ix-1); \
1493 static SENSOR_DEVICE_ATTR_2(fan##ix##_max, S_IRUGO | S_IWUSR, \
1494 show_fan, set_fan, SYS_FAN_MAX, ix-1)
1501 #define SENSOR_DEVICE_ATTR_PWM_1TO3(ix) \ argument
1502 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1503 show_pwm, set_pwm, SYS_PWM, ix-1); \
1504 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1505 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1506 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1507 show_pwm, set_pwm, SYS_PWM_ENABLE, ix-1); \
1508 static SENSOR_DEVICE_ATTR_2(pwm##ix##_ramp_rate, S_IRUGO, \
1509 show_pwm, set_pwm, SYS_PWM_RAMP_RATE, ix-1); \
1510 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_channels_zone, S_IRUGO, \
1511 show_pwm, set_pwm, SYS_PWM_AUTO_CHANNELS_ZONE, ix-1); \
1512 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_pwm_min, S_IRUGO, \
1513 show_pwm, set_pwm, SYS_PWM_AUTO_PWM_MIN, ix-1); \
1514 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point1_pwm, S_IRUGO, \
1515 show_pwm, set_pwm, SYS_PWM_AUTO_POINT1_PWM, ix-1); \
1516 static SENSOR_DEVICE_ATTR_2(pwm##ix##_auto_point2_pwm, S_IRUGO, \
1517 show_pwm, NULL, SYS_PWM_AUTO_POINT2_PWM, ix-1)
1525 #define SENSOR_DEVICE_ATTR_PWM_5TO6(ix) \ argument
1526 static SENSOR_DEVICE_ATTR_2(pwm##ix, S_IRUGO, \
1527 show_pwm, set_pwm, SYS_PWM, ix-1); \
1528 static SENSOR_DEVICE_ATTR_2(pwm##ix##_freq, S_IRUGO, \
1529 show_pwm, set_pwm, SYS_PWM_FREQ, ix-1); \
1530 static SENSOR_DEVICE_ATTR_2(pwm##ix##_enable, S_IRUGO, \
1531 show_pwm, NULL, SYS_PWM_ENABLE, ix-1)
1882 int ix; in dme1737_remove_files() local
1884 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_remove_files()
1885 if (data->has_fan & (1 << ix)) { in dme1737_remove_files()
1887 &dme1737_fan_group[ix]); in dme1737_remove_files()
1891 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_remove_files()
1892 if (data->has_pwm & (1 << ix)) { in dme1737_remove_files()
1894 &dme1737_pwm_group[ix]); in dme1737_remove_files()
1895 if (data->type != sch5027 && ix < 3) { in dme1737_remove_files()
1897 dme1737_pwm_misc_attr[ix]); in dme1737_remove_files()
1916 int err, ix; in dme1737_create_files() local
1937 for (ix = 0; ix < ARRAY_SIZE(dme1737_fan_group); ix++) { in dme1737_create_files()
1938 if (data->has_fan & (1 << ix)) { in dme1737_create_files()
1940 &dme1737_fan_group[ix]))) { in dme1737_create_files()
1947 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_group); ix++) { in dme1737_create_files()
1948 if (data->has_pwm & (1 << ix)) { in dme1737_create_files()
1950 &dme1737_pwm_group[ix]))) { in dme1737_create_files()
1953 if (data->type != sch5027 && ix < 3 && in dme1737_create_files()
1955 dme1737_pwm_misc_attr[ix]))) { in dme1737_create_files()
1978 for (ix = 0; ix < ARRAY_SIZE(dme1737_pwm_chmod_group); ix++) { in dme1737_create_files()
1979 if (data->has_pwm & (1 << ix)) { in dme1737_create_files()
1981 &dme1737_pwm_chmod_group[ix], in dme1737_create_files()
1983 if (data->type != sch5027 && ix < 3) { in dme1737_create_files()
1985 dme1737_pwm_misc_attr[ix], in dme1737_create_files()
1992 for (ix = 0; ix < 3; ix++) { in dme1737_create_files()
1993 if ((data->has_pwm & (1 << ix)) && in dme1737_create_files()
1994 (PWM_EN_FROM_REG(data->pwm_config[ix]) == 1)) { in dme1737_create_files()
1996 dme1737_pwm_chmod_attr[ix], in dme1737_create_files()
2014 int ix; in dme1737_init_device() local
2107 for (ix = 0; ix < 3; ix++) { in dme1737_init_device()
2108 data->pwm_config[ix] = dme1737_read(data, in dme1737_init_device()
2109 DME1737_REG_PWM_CONFIG(ix)); in dme1737_init_device()
2110 if ((data->has_pwm & (1 << ix)) && in dme1737_init_device()
2111 (PWM_EN_FROM_REG(data->pwm_config[ix]) == -1)) { in dme1737_init_device()
2113 "manual mode.\n", ix + 1); in dme1737_init_device()
2114 data->pwm_config[ix] = PWM_EN_TO_REG(1, in dme1737_init_device()
2115 data->pwm_config[ix]); in dme1737_init_device()
2116 dme1737_write(data, DME1737_REG_PWM(ix), 0); in dme1737_init_device()
2118 DME1737_REG_PWM_CONFIG(ix), in dme1737_init_device()
2119 data->pwm_config[ix]); in dme1737_init_device()