Commit ed67f087 authored by Johannes Pointner's avatar Johannes Pointner Committed by Guenter Roeck

hwmon: (ntc_thermistor) Support B57330V2103 from EPCOS

This patch adds support for the ntc thermistor B57330V2103 from EPCOS.
Signed-off-by: default avatarJohannes Pointner <johannes.pointner@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 3ef0bb6f
...@@ -3,6 +3,7 @@ NTC Thermistor hwmon sensors ...@@ -3,6 +3,7 @@ NTC Thermistor hwmon sensors
Requires node properties: Requires node properties:
- "compatible" value : one of - "compatible" value : one of
"epcos,b57330v2103"
"murata,ncp15wb473" "murata,ncp15wb473"
"murata,ncp18wb473" "murata,ncp18wb473"
"murata,ncp21wb473" "murata,ncp21wb473"
......
...@@ -6,6 +6,11 @@ Supported thermistors from Murata: ...@@ -6,6 +6,11 @@ Supported thermistors from Murata:
Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473', 'ncp15wl333' Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473', 'ncp15wl333'
Datasheet: Publicly available at Murata Datasheet: Publicly available at Murata
Supported thermistors from EPCOS:
* EPCOS NTC Thermistors B57330V2103
Prefixes: b57330v2103
Datasheet: Publicly available at EPCOS
Other NTC thermistors can be supported simply by adding compensation Other NTC thermistors can be supported simply by adding compensation
tables; e.g., NCP15WL333 support is added by the table ncpXXwl333. tables; e.g., NCP15WL333 support is added by the table ncpXXwl333.
......
...@@ -1073,7 +1073,7 @@ config SENSORS_NTC_THERMISTOR ...@@ -1073,7 +1073,7 @@ config SENSORS_NTC_THERMISTOR
Currently, this driver supports Currently, this driver supports
NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, and NCP15WL333 NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, and NCP15WL333
from Murata. from Murata and B57330V2103 from EPCOS.
This driver can also be built as a module. If so, the module This driver can also be built as a module. If so, the module
will be called ntc-thermistor. will be called ntc-thermistor.
......
...@@ -51,6 +51,7 @@ static const struct platform_device_id ntc_thermistor_id[] = { ...@@ -51,6 +51,7 @@ static const struct platform_device_id ntc_thermistor_id[] = {
{ "ncp21wb473", TYPE_NCPXXWB473 }, { "ncp21wb473", TYPE_NCPXXWB473 },
{ "ncp03wb473", TYPE_NCPXXWB473 }, { "ncp03wb473", TYPE_NCPXXWB473 },
{ "ncp15wl333", TYPE_NCPXXWL333 }, { "ncp15wl333", TYPE_NCPXXWL333 },
{ "b57330v2103", TYPE_B57330V2103},
{ }, { },
}; };
...@@ -133,6 +134,47 @@ static const struct ntc_compensation ncpXXwl333[] = { ...@@ -133,6 +134,47 @@ static const struct ntc_compensation ncpXXwl333[] = {
{ .temp_c = 125, .ohm = 707 }, { .temp_c = 125, .ohm = 707 },
}; };
/*
* The following compensation table is from the specification of EPCOS NTC
* Thermistors Datasheet
*/
static const struct ntc_compensation b57330v2103[] = {
{ .temp_c = -40, .ohm = 190030 },
{ .temp_c = -35, .ohm = 145360 },
{ .temp_c = -30, .ohm = 112060 },
{ .temp_c = -25, .ohm = 87041 },
{ .temp_c = -20, .ohm = 68104 },
{ .temp_c = -15, .ohm = 53665 },
{ .temp_c = -10, .ohm = 42576 },
{ .temp_c = -5, .ohm = 34001 },
{ .temp_c = 0, .ohm = 27326 },
{ .temp_c = 5, .ohm = 22096 },
{ .temp_c = 10, .ohm = 17973 },
{ .temp_c = 15, .ohm = 14703 },
{ .temp_c = 20, .ohm = 12090 },
{ .temp_c = 25, .ohm = 10000 },
{ .temp_c = 30, .ohm = 8311 },
{ .temp_c = 35, .ohm = 6941 },
{ .temp_c = 40, .ohm = 5825 },
{ .temp_c = 45, .ohm = 4911 },
{ .temp_c = 50, .ohm = 4158 },
{ .temp_c = 55, .ohm = 3536 },
{ .temp_c = 60, .ohm = 3019 },
{ .temp_c = 65, .ohm = 2588 },
{ .temp_c = 70, .ohm = 2227 },
{ .temp_c = 75, .ohm = 1924 },
{ .temp_c = 80, .ohm = 1668 },
{ .temp_c = 85, .ohm = 1451 },
{ .temp_c = 90, .ohm = 1266 },
{ .temp_c = 95, .ohm = 1108 },
{ .temp_c = 100, .ohm = 973 },
{ .temp_c = 105, .ohm = 857 },
{ .temp_c = 110, .ohm = 757 },
{ .temp_c = 115, .ohm = 671 },
{ .temp_c = 120, .ohm = 596 },
{ .temp_c = 125, .ohm = 531 },
};
struct ntc_data { struct ntc_data {
struct device *hwmon_dev; struct device *hwmon_dev;
struct ntc_thermistor_platform_data *pdata; struct ntc_thermistor_platform_data *pdata;
...@@ -173,6 +215,8 @@ static const struct of_device_id ntc_match[] = { ...@@ -173,6 +215,8 @@ static const struct of_device_id ntc_match[] = {
.data = &ntc_thermistor_id[3] }, .data = &ntc_thermistor_id[3] },
{ .compatible = "murata,ncp15wl333", { .compatible = "murata,ncp15wl333",
.data = &ntc_thermistor_id[4] }, .data = &ntc_thermistor_id[4] },
{ .compatible = "epcos,b57330v2103",
.data = &ntc_thermistor_id[5]},
/* Usage of vendor name "ntc" is deprecated */ /* Usage of vendor name "ntc" is deprecated */
{ .compatible = "ntc,ncp15wb473", { .compatible = "ntc,ncp15wb473",
...@@ -490,6 +534,10 @@ static int ntc_thermistor_probe(struct platform_device *pdev) ...@@ -490,6 +534,10 @@ static int ntc_thermistor_probe(struct platform_device *pdev)
data->comp = ncpXXwl333; data->comp = ncpXXwl333;
data->n_comp = ARRAY_SIZE(ncpXXwl333); data->n_comp = ARRAY_SIZE(ncpXXwl333);
break; break;
case TYPE_B57330V2103:
data->comp = b57330v2103;
data->n_comp = ARRAY_SIZE(b57330v2103);
break;
default: default:
dev_err(&pdev->dev, "Unknown device type: %lu(%s)\n", dev_err(&pdev->dev, "Unknown device type: %lu(%s)\n",
pdev_id->driver_data, pdev_id->name); pdev_id->driver_data, pdev_id->name);
...@@ -546,7 +594,7 @@ static struct platform_driver ntc_thermistor_driver = { ...@@ -546,7 +594,7 @@ static struct platform_driver ntc_thermistor_driver = {
module_platform_driver(ntc_thermistor_driver); module_platform_driver(ntc_thermistor_driver);
MODULE_DESCRIPTION("NTC Thermistor Driver from Murata"); MODULE_DESCRIPTION("NTC Thermistor Driver");
MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>"); MODULE_AUTHOR("MyungJoo Ham <myungjoo.ham@samsung.com>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:ntc-thermistor"); MODULE_ALIAS("platform:ntc-thermistor");
...@@ -26,6 +26,7 @@ struct iio_channel; ...@@ -26,6 +26,7 @@ struct iio_channel;
enum ntc_thermistor_type { enum ntc_thermistor_type {
TYPE_NCPXXWB473, TYPE_NCPXXWB473,
TYPE_NCPXXWL333, TYPE_NCPXXWL333,
TYPE_B57330V2103,
}; };
struct ntc_thermistor_platform_data { struct ntc_thermistor_platform_data {
......
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