Commit 409c0b5b authored by Jean Delvare's avatar Jean Delvare Committed by Jean Delvare

hwmon: (lm63) LM64 has a dedicated pin for tachometer

On the LM64, the tachometer function has a dedicated pin and fan speed
monitoring is always enabled.
Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
Acked-by: default avatarGuenter Roeck <guenter.roeck@ericsson.com>
parent f496b2d4
...@@ -54,7 +54,10 @@ value for measuring the speed of the fan. It can measure fan speeds down to ...@@ -54,7 +54,10 @@ value for measuring the speed of the fan. It can measure fan speeds down to
Note that the pin used for fan monitoring is shared with an alert out Note that the pin used for fan monitoring is shared with an alert out
function. Depending on how the board designer wanted to use the chip, fan function. Depending on how the board designer wanted to use the chip, fan
speed monitoring will or will not be possible. The proper chip configuration speed monitoring will or will not be possible. The proper chip configuration
is left to the BIOS, and the driver will blindly trust it. is left to the BIOS, and the driver will blindly trust it. Only the original
LM63 suffers from this limitation, the LM64 and LM96163 have separate pins
for fan monitoring and alert out. On the LM64, monitoring is always enabled;
on the LM96163 it can be disabled.
A PWM output can be used to control the speed of the fan. The LM63 has two A PWM output can be used to control the speed of the fan. The LM63 has two
PWM modes: manual and automatic. Automatic mode is not fully implemented yet PWM modes: manual and automatic. Automatic mode is not fully implemented yet
......
...@@ -796,6 +796,9 @@ static void lm63_init_client(struct i2c_client *client) ...@@ -796,6 +796,9 @@ static void lm63_init_client(struct i2c_client *client)
i2c_smbus_write_byte_data(client, LM63_REG_CONFIG1, i2c_smbus_write_byte_data(client, LM63_REG_CONFIG1,
data->config); data->config);
} }
/* Tachometer is always enabled on LM64 */
if (data->kind == lm64)
data->config |= 0x04;
/* We may need pwm1_freq before ever updating the client data */ /* We may need pwm1_freq before ever updating the client data */
data->pwm1_freq = i2c_smbus_read_byte_data(client, LM63_REG_PWM_FREQ); data->pwm1_freq = i2c_smbus_read_byte_data(client, LM63_REG_PWM_FREQ);
...@@ -836,6 +839,7 @@ static void lm63_init_client(struct i2c_client *client) ...@@ -836,6 +839,7 @@ static void lm63_init_client(struct i2c_client *client)
} }
/* Show some debug info about the LM63 configuration */ /* Show some debug info about the LM63 configuration */
if (data->kind == lm63)
dev_dbg(&client->dev, "Alert/tach pin configured for %s\n", dev_dbg(&client->dev, "Alert/tach pin configured for %s\n",
(data->config & 0x04) ? "tachometer input" : (data->config & 0x04) ? "tachometer input" :
"alert output"); "alert output");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment