[prev in list] [next in list] [prev in thread] [next in thread]
List: lm-sensors
Subject: [lm-sensors] ASUS P5B DELUXE WiFi with Winbond W83627DHG
From: christian.mahr.ulm () arcor ! de (Christian Mahr)
Date: 2006-10-30 23:13:27
Message-ID: 200610310013.27367.christian.mahr.ulm () arcor ! de
[Download RAW message or body]
Hi David
a small note on fan control below.
Best regards
Christian
Am Sonntag, 29. Oktober 2006 21:33 schrieben Sie:
> >
> > How to do? Which values to echo in?
>
> There is documentation in the kernel source under
> linux/documentation/hwmon. Basically, set pwmN_enable to 1 for manual
> control, 2 for automatic "thermal cruise" or "SmartFan 1". In manual
> mode, echo "0" > pwmN stops the fan, and echo "255" > pwmN to run the
> fan at full speed.
>
I did some study of the documentation, assuming that the notes for either
w83792d or w83627hf do apply whatever sounds more likely - no precise info on \
w83627HDG ...
fan connections
For me, the relatationship between the 5 fan tacho reads and the 4 pwm-control ports \
are somewhat unclear to me: All "chassis" type fans I have installed (1,4,5) seem to \
be connected to pwm4 ? I cannot control them individually, they all move in sync.
pwm*enable
- I can read value "4" from pwm*_enable after having set "Silent" in Bios. Is this \
out of range? which values are allowe 0..3?
- When I try to set values, I can set "1" and "2" but neither "0" for "off" or "4" \
for "Thermal cruise" (whatever this is).
The driver prevents this. Please have a look to line 920 ff:
static ssize_t
store_pwm_enable(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct i2c_client *client = to_i2c_client(dev);
struct w83627ehf_data *data = i2c_get_clientdata(client);
struct sensor_device_attribute *sensor_attr = to_sensor_dev_attr(attr);
int nr = sensor_attr->index;
u32 val = simple_strtoul(buf, NULL, 10);
u16 reg;
if (!val || (val > 2)) /* only modes 1 and 2 are supported */
return -EINVAL;
mutex_lock(&data->update_lock);
reg = w83627ehf_read_value(client, W83627EHF_REG_PWM_ENABLE[nr]);
data->pwm_enable[nr] = val;
reg &= ~(0x03 << W83627EHF_PWM_ENABLE_SHIFT[nr]);
reg |= (val - 1) << W83627EHF_PWM_ENABLE_SHIFT[nr];
w83627ehf_write_value(client, W83627EHF_REG_PWM_ENABLE[nr], reg);
mutex_unlock(&data->update_lock);
return count;
}
Can you check in the data sheet for W83627DHG whether its correct to expand the range \
to 0..3 or whatever suitable? will the shift masks be still correct also for the \
W83627DHG ?
1=Manual mode
when I set pwm4_enable to 1 I can control all 3 fan speeds simultanously by "echo \
xx >pwm4" 2= Smartfan 1 mode
this brings the fans to such a low speed that the fan reading becomes jumping back \
and forth - fan registers showing erraneously either zero or 5000...15000 rpm I am \
still experimenting here, to lower the CPU temp (pwm-target?) to check \
pwm*-registers pwm*min_output: purpose seems unclear to me. seems to work as lower \
fan limit value in case of smartfan mode1. no function in manual mode. pwm*_stop_time \
: no idea pwm*_target : seems to compare to temp2_input when in smartfan 1 mode
pwm*_tolerance : hysteresis for pwm_target?
... my studies so far....
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20061031/a5b50538/attachment.html \
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic