hwmon: (ntc_thermistor) Add support for ncpXXwf104
authorBeomho Seo <beomho.seo@samsung.com>
Thu, 30 Apr 2015 04:07:43 +0000 (13:07 +0900)
committerGuenter Roeck <linux@roeck-us.net>
Mon, 1 Jun 2015 05:58:36 +0000 (22:58 -0700)
This patch adds support for the ntc thermistor NCPXXWF104 series.

Cc: Jean Delvare <jdelvare@suse.de>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Documentation/devicetree/bindings/hwmon/ntc_thermistor.txt
Documentation/hwmon/ntc_thermistor
drivers/hwmon/Kconfig
drivers/hwmon/ntc_thermistor.c
include/linux/platform_data/ntc_thermistor.h

index fcca8e744f41f9c4692b3b8915d120dcbd0f0768..a04a80f9cc706030677f398736b990665490525b 100644 (file)
@@ -9,6 +9,7 @@ Requires node properties:
        "murata,ncp21wb473"
        "murata,ncp03wb473"
        "murata,ncp15wl333"
+       "murata,ncp03wf104"
 
 /* Usage of vendor name "ntc" is deprecated */
 <DEPRECATED>   "ntc,ncp15wb473"
index c5e05e2900a3250ed7f0884c15a82d72154bf65e..1d4cc847c6fe6a9cc53ec39b36961bc94c78ad17 100644 (file)
@@ -2,8 +2,10 @@ Kernel driver ntc_thermistor
 =================
 
 Supported thermistors from Murata:
-* Murata NTC Thermistors NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, NCP15WL333
-  Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473', 'ncp15wl333'
+* Murata NTC Thermistors NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473,
+  NCP15WL333, NCP03WF104
+  Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473',
+  'ncp15wl333', 'ncp03wf104'
   Datasheet: Publicly available at Murata
 
 Supported thermistors from EPCOS:
index 25d9e72627e9df97cb607de8038d2310d28c214b..4542ffc5468af0d41af939685fc6956562e65df0 100644 (file)
@@ -1106,8 +1106,8 @@ config SENSORS_NTC_THERMISTOR
          send notifications about the temperature.
 
          Currently, this driver supports
-         NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, and NCP15WL333
-         from Murata and B57330V2103 from EPCOS.
+         NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, NCP15WL333,
+         and NCP03WF104 from Murata and B57330V2103 from EPCOS.
 
          This driver can also be built as a module.  If so, the module
          will be called ntc-thermistor.
index 68800115876bf65867c187498902d0de6dcae687..fca92912269ef3b7b15ef3971bbabd7c1c0ae74c 100644 (file)
@@ -53,6 +53,7 @@ static const struct platform_device_id ntc_thermistor_id[] = {
        { "ncp03wb473", TYPE_NCPXXWB473 },
        { "ncp15wl333", TYPE_NCPXXWL333 },
        { "b57330v2103", TYPE_B57330V2103},
+       { "ncp03wf104", TYPE_NCPXXWF104 },
        { },
 };
 
@@ -135,6 +136,43 @@ static const struct ntc_compensation ncpXXwl333[] = {
        { .temp_c       = 125, .ohm     = 707 },
 };
 
+static const struct ntc_compensation ncpXXwf104[] = {
+       { .temp_c       = -40, .ohm     = 4397119 },
+       { .temp_c       = -35, .ohm     = 3088599 },
+       { .temp_c       = -30, .ohm     = 2197225 },
+       { .temp_c       = -25, .ohm     = 1581881 },
+       { .temp_c       = -20, .ohm     = 1151037 },
+       { .temp_c       = -15, .ohm     = 846579 },
+       { .temp_c       = -10, .ohm     = 628988 },
+       { .temp_c       = -5, .ohm      = 471632 },
+       { .temp_c       = 0, .ohm       = 357012 },
+       { .temp_c       = 5, .ohm       = 272500 },
+       { .temp_c       = 10, .ohm      = 209710 },
+       { .temp_c       = 15, .ohm      = 162651 },
+       { .temp_c       = 20, .ohm      = 127080 },
+       { .temp_c       = 25, .ohm      = 100000 },
+       { .temp_c       = 30, .ohm      = 79222 },
+       { .temp_c       = 35, .ohm      = 63167 },
+       { .temp_c       = 40, .ohm      = 50677 },
+       { .temp_c       = 45, .ohm      = 40904 },
+       { .temp_c       = 50, .ohm      = 33195 },
+       { .temp_c       = 55, .ohm      = 27091 },
+       { .temp_c       = 60, .ohm      = 22224 },
+       { .temp_c       = 65, .ohm      = 18323 },
+       { .temp_c       = 70, .ohm      = 15184 },
+       { .temp_c       = 75, .ohm      = 12635 },
+       { .temp_c       = 80, .ohm      = 10566 },
+       { .temp_c       = 85, .ohm      = 8873 },
+       { .temp_c       = 90, .ohm      = 7481 },
+       { .temp_c       = 95, .ohm      = 6337 },
+       { .temp_c       = 100, .ohm     = 5384 },
+       { .temp_c       = 105, .ohm     = 4594 },
+       { .temp_c       = 110, .ohm     = 3934 },
+       { .temp_c       = 115, .ohm     = 3380 },
+       { .temp_c       = 120, .ohm     = 2916 },
+       { .temp_c       = 125, .ohm     = 2522 },
+};
+
 /*
  * The following compensation table is from the specification of EPCOS NTC
  * Thermistors Datasheet
@@ -219,6 +257,8 @@ static const struct of_device_id ntc_match[] = {
                .data = &ntc_thermistor_id[4] },
        { .compatible = "epcos,b57330v2103",
                .data = &ntc_thermistor_id[5]},
+       { .compatible = "murata,ncp03wf104",
+               .data = &ntc_thermistor_id[6] },
 
        /* Usage of vendor name "ntc" is deprecated */
        { .compatible = "ntc,ncp15wb473",
@@ -567,6 +607,10 @@ static int ntc_thermistor_probe(struct platform_device *pdev)
                data->comp = b57330v2103;
                data->n_comp = ARRAY_SIZE(b57330v2103);
                break;
+       case TYPE_NCPXXWF104:
+               data->comp = ncpXXwf104;
+               data->n_comp = ARRAY_SIZE(ncpXXwf104);
+               break;
        default:
                dev_err(&pdev->dev, "Unknown device type: %lu(%s)\n",
                                pdev_id->driver_data, pdev_id->name);
index 0a6de4ca4930bdded25056c7d4cc36bbf0a172d0..aed170588b747c05a50eedfda9cdb5e7ea48bc86 100644 (file)
@@ -27,6 +27,7 @@ enum ntc_thermistor_type {
        TYPE_NCPXXWB473,
        TYPE_NCPXXWL333,
        TYPE_B57330V2103,
+       TYPE_NCPXXWF104,
 };
 
 struct ntc_thermistor_platform_data {