And finally the patch for lib/chips.c that goes along with the patches for lm85.c and lib/chips.h, adding in fan control for the lm85 in kernel 2.6.X Again, feedback appreciated. Justin Thiessen --------------- jthiessen at penguincomputing.com http://www.penguincomputing.com --- lib/chips.c 2004-09-29 09:27:35.000000000 -0700 +++ lib_lm85_fancontrol/chips.c 2004-09-29 09:25:41.000000000 -0700 @@ -3271,33 +3271,33 @@ { SENSORS_LM85_PWM3_SPINUP, "pwm3_spinup", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(1), 1 }, - { SENSORS_LM85_PWM1_MIN, "pwm1_min", SENSORS_LM85_PWM1, + { SENSORS_LM85_PWM1_AUTO_PWM_MIN, "pwm1_auto_pwm_min", SENSORS_LM85_PWM1, NOMAP, RW, - LM85_SYSCTL_PWM_CFG1, VALUE(2), 1 }, - { SENSORS_LM85_PWM2_MIN, "pwm2_min", SENSORS_LM85_PWM2, + LM85_SYSCTL_PWM_CFG1, VALUE(2), 0 }, + { SENSORS_LM85_PWM2_AUTO_PWM_MIN, "pwm2_auto_pwm_min", SENSORS_LM85_PWM2, NOMAP, RW, - LM85_SYSCTL_PWM_CFG2, VALUE(2), 1 }, - { SENSORS_LM85_PWM3_MIN, "pwm3_min", SENSORS_LM85_PWM3, + LM85_SYSCTL_PWM_CFG2, VALUE(2), 0 }, + { SENSORS_LM85_PWM3_AUTO_PWM_MIN, "pwm3_auto_pwm_min", SENSORS_LM85_PWM3, NOMAP, RW, - LM85_SYSCTL_PWM_CFG3, VALUE(2), 1 }, - { SENSORS_LM85_PWM1_FREQ, "pwm1_freq", SENSORS_LM85_PWM1, + LM85_SYSCTL_PWM_CFG3, VALUE(2), 0 }, + { SENSORS_LM85_PWM1_AUTO_PWM_FREQ, "pwm1_auto_pwm_freq", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_CFG1, VALUE(3), 1 }, - { SENSORS_LM85_PWM2_FREQ, "pwm2_freq", SENSORS_LM85_PWM2, + { SENSORS_LM85_PWM2_AUTO_PWM_FREQ, "pwm2_auto_pwm_freq", SENSORS_LM85_PWM2, NOMAP, RW, LM85_SYSCTL_PWM_CFG2, VALUE(3), 1 }, - { SENSORS_LM85_PWM3_FREQ, "pwm3_freq", SENSORS_LM85_PWM3, + { SENSORS_LM85_PWM3_AUTO_PWM_FREQ, "pwm3_auto_pwm_freq", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(3), 1 }, - { SENSORS_LM85_PWM1_MIN_CTL, "pwm1_min_ctl", SENSORS_LM85_PWM1, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG1, VALUE(4), 1 }, - { SENSORS_LM85_PWM2_MIN_CTL, "pwm2_min_ctl", SENSORS_LM85_PWM2, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG2, VALUE(4), 1 }, - { SENSORS_LM85_PWM3_MIN_CTL, "pwm3_min_ctl", SENSORS_LM85_PWM3, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG3, VALUE(4), 1 }, + { SENSORS_LM85_PWM1_AUTO_PWM_MINCTL, "pwm1_auto_pwm_minctl", + SENSORS_LM85_PWM1, NOMAP, RW, + LM85_SYSCTL_PWM_CFG1, VALUE(4), 0 }, + { SENSORS_LM85_PWM2_AUTO_PWM_MINCTL, "pwm2_auto_pwm_minctl", + SENSORS_LM85_PWM2, NOMAP, RW, + LM85_SYSCTL_PWM_CFG2, VALUE(4), 0 }, + { SENSORS_LM85_PWM3_AUTO_PWM_MINCTL, "pwm3_auto_pwm_minctl", + SENSORS_LM85_PWM3, NOMAP, RW, + LM85_SYSCTL_PWM_CFG3, VALUE(4), 0 }, { SENSORS_LM85_PWM1_INVERT, "pwm1_invert", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_CFG1, VALUE(5), 0 }, @@ -3307,52 +3307,51 @@ { SENSORS_LM85_PWM3_INVERT, "pwm3_invert", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(5), 0 }, - { SENSORS_LM85_PWM1_ZONE, "pwm1_zone", SENSORS_LM85_PWM1, - NOMAP, RW, + { SENSORS_LM85_PWM1_AUTO_CHANNELS, "pwm1_auto_channels", + SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_ZONE1, VALUE(1), 0 }, - { SENSORS_LM85_PWM2_ZONE, "pwm2_zone", SENSORS_LM85_PWM2, - NOMAP, RW, + { SENSORS_LM85_PWM2_AUTO_CHANNELS, "pwm2_auto_channels", + SENSORS_LM85_PWM2, NOMAP, RW, LM85_SYSCTL_PWM_ZONE2, VALUE(1), 0 }, - { SENSORS_LM85_PWM3_ZONE, "pwm3_zone", SENSORS_LM85_PWM3, - NOMAP, RW, + { SENSORS_LM85_PWM3_AUTO_CHANNELS, "pwm3_auto_channels", + SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_ZONE3, VALUE(1), 0 }, - { SENSORS_LM85_ZONE1_LIMIT, "zone1_limit", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(1), 1 }, - { SENSORS_LM85_ZONE2_LIMIT, "zone2_limit", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(1), 1 }, - { SENSORS_LM85_ZONE3_LIMIT, "zone3_limit", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(1), 1 }, - { SENSORS_LM85_ZONE1_HYST, "zone1_hyst", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(2), 1 }, - { SENSORS_LM85_ZONE2_HYST, "zone2_hyst", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(2), 1 }, - { SENSORS_LM85_ZONE3_HYST, "zone3_hyst", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(2), 1 }, - { SENSORS_LM85_ZONE1_RANGE, "zone1_range", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(3), 1 }, - { SENSORS_LM85_ZONE2_RANGE, "zone2_range", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(3), 1 }, - { SENSORS_LM85_ZONE3_RANGE, "zone3_range", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(3), 1 }, - { SENSORS_LM85_ZONE1_CRITICAL, "zone1_critical", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(4), 1 }, - { SENSORS_LM85_ZONE2_CRITICAL, "zone2_critical", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(4), 1 }, - { SENSORS_LM85_ZONE3_CRITICAL, "zone3_critical", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(4), 1 }, - + { SENSORS_LM85_TEMP1_AUTO_TEMP_MIN, "temp1_auto_temp_min", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(1), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_MIN, "temp2_auto_temp_min", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(1), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_MIN, "temp3_auto_temp_min", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(1), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_OFF, "temp1_auto_temp_off", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(2), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_OFF, "temp2_auto_temp_off", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(2), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_OFF, "temp3_auto_temp_off", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(2), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_MAX, "temp1_auto_temp_max", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(3), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_MAX, "temp2_auto_temp_max", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(3), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_MAX, "temp3_auto_temp_max", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(3), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_CRIT, "temp1_auto_temp_crit", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(4), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_CRIT, "temp2_auto_temp_crit", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(4), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_CRIT, "temp3_auto_temp_crit", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(4), 3 }, { SENSORS_LM85_PWM1_SPINUP_CTL, "pwm1_spinup_ctl", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_SPINUP_CTL, VALUE(1), 0 }, @@ -3371,13 +3370,13 @@ { SENSORS_LM85_FAN3_TACH_MODE, "fan3_tach_mode", SENSORS_LM85_FAN3, NOMAP, RW, LM85_SYSCTL_TACH_MODE, VALUE(3), 0 }, - { SENSORS_LM85_ZONE1_SMOOTH, "zone1_smooth", SENSORS_LM85_TEMP1, + { SENSORS_LM85_TEMP1_AUTO_TEMP_SMOOTH, "zone1_smooth", SENSORS_LM85_TEMP1, NOMAP, RW, LM85_SYSCTL_SMOOTH1, VALUE(1), 1 }, - { SENSORS_LM85_ZONE2_SMOOTH, "zone2_smooth", SENSORS_LM85_TEMP2, + { SENSORS_LM85_TEMP2_AUTO_TEMP_SMOOTH, "zone2_smooth", SENSORS_LM85_TEMP2, NOMAP, RW, LM85_SYSCTL_SMOOTH2, VALUE(1), 1 }, - { SENSORS_LM85_ZONE3_SMOOTH, "zone3_smooth", SENSORS_LM85_TEMP3, + { SENSORS_LM85_TEMP3_AUTO_TEMP_SMOOTH, "zone3_smooth", SENSORS_LM85_TEMP3, NOMAP, RW, LM85_SYSCTL_SMOOTH3, VALUE(1), 1 }, { 0 } @@ -3477,33 +3476,33 @@ { SENSORS_LM85_PWM3_SPINUP, "pwm3_spinup", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(1), 1 }, - { SENSORS_LM85_PWM1_MIN, "pwm1_min", SENSORS_LM85_PWM1, + { SENSORS_LM85_PWM1_AUTO_PWM_MIN, "pwm1_auto_pwm_min", SENSORS_LM85_PWM1, NOMAP, RW, - LM85_SYSCTL_PWM_CFG1, VALUE(2), 1 }, - { SENSORS_LM85_PWM2_MIN, "pwm2_min", SENSORS_LM85_PWM2, + LM85_SYSCTL_PWM_CFG1, VALUE(2), 0 }, + { SENSORS_LM85_PWM2_AUTO_PWM_MIN, "pwm2_auto_pwm_min", SENSORS_LM85_PWM2, NOMAP, RW, - LM85_SYSCTL_PWM_CFG2, VALUE(2), 1 }, - { SENSORS_LM85_PWM3_MIN, "pwm3_min", SENSORS_LM85_PWM3, + LM85_SYSCTL_PWM_CFG2, VALUE(2), 0 }, + { SENSORS_LM85_PWM3_AUTO_PWM_MIN, "pwm3_auto_pwm_min", SENSORS_LM85_PWM3, NOMAP, RW, - LM85_SYSCTL_PWM_CFG3, VALUE(2), 1 }, - { SENSORS_LM85_PWM1_FREQ, "pwm1_freq", SENSORS_LM85_PWM1, + LM85_SYSCTL_PWM_CFG3, VALUE(2), 0 }, + { SENSORS_LM85_PWM1_AUTO_PWM_FREQ, "pwm1_auto_pwm_freq", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_CFG1, VALUE(3), 1 }, - { SENSORS_LM85_PWM2_FREQ, "pwm2_freq", SENSORS_LM85_PWM2, + { SENSORS_LM85_PWM2_AUTO_PWM_FREQ, "pwm2_auto_pwm_freq", SENSORS_LM85_PWM2, NOMAP, RW, LM85_SYSCTL_PWM_CFG2, VALUE(3), 1 }, - { SENSORS_LM85_PWM3_FREQ, "pwm3_freq", SENSORS_LM85_PWM3, + { SENSORS_LM85_PWM3_AUTO_PWM_FREQ, "pwm3_auto_pwm_freq", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(3), 1 }, - { SENSORS_LM85_PWM1_MIN_CTL, "pwm1_min_ctl", SENSORS_LM85_PWM1, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG1, VALUE(4), 1 }, - { SENSORS_LM85_PWM2_MIN_CTL, "pwm2_min_ctl", SENSORS_LM85_PWM2, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG2, VALUE(4), 1 }, - { SENSORS_LM85_PWM3_MIN_CTL, "pwm3_min_ctl", SENSORS_LM85_PWM3, - NOMAP, RW, - LM85_SYSCTL_PWM_CFG3, VALUE(4), 1 }, + { SENSORS_LM85_PWM1_AUTO_PWM_MINCTL, "pwm1_auto_pwm_minctl", + SENSORS_LM85_PWM1, NOMAP, RW, + LM85_SYSCTL_PWM_CFG1, VALUE(4), 0 }, + { SENSORS_LM85_PWM2_AUTO_PWM_MINCTL, "pwm2_auto_pwm_minctl", + SENSORS_LM85_PWM2, NOMAP, RW, + LM85_SYSCTL_PWM_CFG2, VALUE(4), 0 }, + { SENSORS_LM85_PWM3_AUTO_PWM_MINCTL, "pwm3_auto_pwm_minctl", + SENSORS_LM85_PWM3, NOMAP, RW, + LM85_SYSCTL_PWM_CFG3, VALUE(4), 0 }, { SENSORS_LM85_PWM1_INVERT, "pwm1_invert", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_CFG1, VALUE(5), 0 }, @@ -3513,52 +3512,51 @@ { SENSORS_LM85_PWM3_INVERT, "pwm3_invert", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_CFG3, VALUE(5), 0 }, - { SENSORS_LM85_PWM1_ZONE, "pwm1_zone", SENSORS_LM85_PWM1, + { SENSORS_LM85_PWM1_AUTO_CHANNELS, "pwm1_auto_channels", SENSORS_LM85_PWM1, NOMAP, RW, LM85_SYSCTL_PWM_ZONE1, VALUE(1), 0 }, - { SENSORS_LM85_PWM2_ZONE, "pwm2_zone", SENSORS_LM85_PWM2, + { SENSORS_LM85_PWM2_AUTO_CHANNELS, "pwm2_auto_channels", SENSORS_LM85_PWM2, NOMAP, RW, LM85_SYSCTL_PWM_ZONE2, VALUE(1), 0 }, - { SENSORS_LM85_PWM3_ZONE, "pwm3_zone", SENSORS_LM85_PWM3, + { SENSORS_LM85_PWM3_AUTO_CHANNELS, "pwm3_auto_channels", SENSORS_LM85_PWM3, NOMAP, RW, LM85_SYSCTL_PWM_ZONE3, VALUE(1), 0 }, - { SENSORS_LM85_ZONE1_LIMIT, "zone1_limit", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(1), 1 }, - { SENSORS_LM85_ZONE2_LIMIT, "zone2_limit", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(1), 1 }, - { SENSORS_LM85_ZONE3_LIMIT, "zone3_limit", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(1), 1 }, - { SENSORS_LM85_ZONE1_HYST, "zone1_hyst", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(2), 1 }, - { SENSORS_LM85_ZONE2_HYST, "zone2_hyst", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(2), 1 }, - { SENSORS_LM85_ZONE3_HYST, "zone3_hyst", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(2), 1 }, - { SENSORS_LM85_ZONE1_RANGE, "zone1_range", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(3), 1 }, - { SENSORS_LM85_ZONE2_RANGE, "zone2_range", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(3), 1 }, - { SENSORS_LM85_ZONE3_RANGE, "zone3_range", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(3), 1 }, - { SENSORS_LM85_ZONE1_CRITICAL, "zone1_critical", SENSORS_LM85_TEMP1, - NOMAP, RW, - LM85_SYSCTL_ZONE1, VALUE(4), 1 }, - { SENSORS_LM85_ZONE2_CRITICAL, "zone2_critical", SENSORS_LM85_TEMP2, - NOMAP, RW, - LM85_SYSCTL_ZONE2, VALUE(4), 1 }, - { SENSORS_LM85_ZONE3_CRITICAL, "zone3_critical", SENSORS_LM85_TEMP3, - NOMAP, RW, - LM85_SYSCTL_ZONE3, VALUE(4), 1 }, - + { SENSORS_LM85_TEMP1_AUTO_TEMP_MIN, "temp1_auto_temp_min", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(1), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_MIN, "temp2_auto_temp_min", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(1), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_MIN, "temp3_auto_temp_min", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(1), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_OFF, "temp1_auto_temp_off", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(2), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_OFF, "temp2_auto_temp_off", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(2), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_OFF, "temp3_auto_temp_off", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(2), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_MAX, "temp1_auto_temp_max", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(3), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_MAX, "temp2_auto_temp_max", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(3), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_MAX, "temp3_auto_temp_max", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(3), 3 }, + { SENSORS_LM85_TEMP1_AUTO_TEMP_CRIT, "temp1_auto_temp_crit", + SENSORS_LM85_TEMP1, NOMAP, RW, + LM85_SYSCTL_ZONE1, VALUE(4), 3 }, + { SENSORS_LM85_TEMP2_AUTO_TEMP_CRIT, "temp2_auto_temp_crit", + SENSORS_LM85_TEMP2, NOMAP, RW, + LM85_SYSCTL_ZONE2, VALUE(4), 3 }, + { SENSORS_LM85_TEMP3_AUTO_TEMP_CRIT, "temp3_auto_temp_crit", + SENSORS_LM85_TEMP3, NOMAP, RW, + LM85_SYSCTL_ZONE3, VALUE(4), 3 }, { SENSORS_ADM1027_FAN1_TACH_MODE, "fan1_tach_mode", SENSORS_LM85_FAN1, NOMAP, RW, ADM1027_SYSCTL_TACH_MODE, VALUE(1), 0 },