Commit 2e9a41bb authored by Jagan Teki's avatar Jagan Teki Committed by Guenter Roeck

hwmon: (lm75) Add STLM75 support

The STLM75 is a high-precision digital CMOS temperature sensor
IC with a sigma-delta temperature-to-digital converter.

The configuration register mapping is similar to existing lm75
but the sample rate is 150ms(max).

Tested on real hardware and verified temperature readings are correct.
Signed-off-by: default avatarJagan Teki <jagan@amarulasolutions.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 48049e20
...@@ -42,6 +42,11 @@ Supported chips: ...@@ -42,6 +42,11 @@ Supported chips:
Addresses scanned: none Addresses scanned: none
Datasheet: Publicly available at the ST website Datasheet: Publicly available at the ST website
http://www.st.com/internet/analog/product/121769.jsp http://www.st.com/internet/analog/product/121769.jsp
* ST Microelectronics STLM75
Prefix: 'stlm75'
Addresses scanned: none
Datasheet: Publicly available at the ST website
https://www.st.com/resource/en/datasheet/stlm75.pdf
* Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, TMP75C, TMP175, TMP275 * Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, TMP75C, TMP175, TMP275
Prefixes: 'tmp100', 'tmp101', 'tmp105', 'tmp112', 'tmp175', 'tmp75', 'tmp75c', 'tmp275' Prefixes: 'tmp100', 'tmp101', 'tmp105', 'tmp112', 'tmp175', 'tmp75', 'tmp75c', 'tmp275'
Addresses scanned: none Addresses scanned: none
......
...@@ -1035,6 +1035,7 @@ config SENSORS_LM75 ...@@ -1035,6 +1035,7 @@ config SENSORS_LM75
- National Semiconductor LM75, LM75A - National Semiconductor LM75, LM75A
- NXP's LM75A - NXP's LM75A
- ST Microelectronics STDS75 - ST Microelectronics STDS75
- ST Microelectronics STLM75
- TelCom (now Microchip) TCN75 - TelCom (now Microchip) TCN75
- Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, - Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75,
TMP175, TMP275 TMP175, TMP275
......
...@@ -50,6 +50,7 @@ enum lm75_type { /* keep sorted in alphabetical order */ ...@@ -50,6 +50,7 @@ enum lm75_type { /* keep sorted in alphabetical order */
max31725, max31725,
mcp980x, mcp980x,
stds75, stds75,
stlm75,
tcn75, tcn75,
tmp100, tmp100,
tmp101, tmp101,
...@@ -316,6 +317,10 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id) ...@@ -316,6 +317,10 @@ lm75_probe(struct i2c_client *client, const struct i2c_device_id *id)
data->resolution = 11; data->resolution = 11;
data->sample_time = MSEC_PER_SEC; data->sample_time = MSEC_PER_SEC;
break; break;
case stlm75:
data->resolution = 9;
data->sample_time = MSEC_PER_SEC / 5;
break;
case ds7505: case ds7505:
set_mask |= 3 << 5; /* 12-bit mode */ set_mask |= 3 << 5; /* 12-bit mode */
data->resolution = 12; data->resolution = 12;
...@@ -424,6 +429,7 @@ static const struct i2c_device_id lm75_ids[] = { ...@@ -424,6 +429,7 @@ static const struct i2c_device_id lm75_ids[] = {
{ "max31726", max31725, }, { "max31726", max31725, },
{ "mcp980x", mcp980x, }, { "mcp980x", mcp980x, },
{ "stds75", stds75, }, { "stds75", stds75, },
{ "stlm75", stlm75, },
{ "tcn75", tcn75, }, { "tcn75", tcn75, },
{ "tmp100", tmp100, }, { "tmp100", tmp100, },
{ "tmp101", tmp101, }, { "tmp101", tmp101, },
...@@ -494,6 +500,10 @@ static const struct of_device_id lm75_of_match[] = { ...@@ -494,6 +500,10 @@ static const struct of_device_id lm75_of_match[] = {
.compatible = "st,stds75", .compatible = "st,stds75",
.data = (void *)stds75 .data = (void *)stds75
}, },
{
.compatible = "st,stlm75",
.data = (void *)stlm75
},
{ {
.compatible = "microchip,tcn75", .compatible = "microchip,tcn75",
.data = (void *)tcn75 .data = (void *)tcn75
......
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