]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
hwmon: (ntc_thermistor): add support for B57891S0103 from Epcos
authorPeter Rosin <peda@axentia.se>
Sat, 17 Nov 2018 12:13:00 +0000 (12:13 +0000)
committerGuenter Roeck <linux@roeck-us.net>
Sun, 16 Dec 2018 23:13:19 +0000 (15:13 -0800)
More of the same...

Signed-off-by: Peter Rosin <peda@axentia.se>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
drivers/hwmon/Kconfig
drivers/hwmon/ntc_thermistor.c
include/linux/platform_data/ntc_thermistor.h

index 6c3e331ff44c2915b5da27d04c5718777f955aff..fe1e75051fd8fa5d6062ce24752f54fa10003342 100644 (file)
@@ -1218,7 +1218,8 @@ config SENSORS_NTC_THERMISTOR
 
          Currently, this driver supports
          NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, NCP15WL333,
-         NCP03WF104 and NCP15XH103 from Murata and B57330V2103 from EPCOS.
+         NCP03WF104 and NCP15XH103 from Murata and B57330V2103 and
+         B57891S0103 from EPCOS.
 
          This driver can also be built as a module. If so, the module
          will be called ntc-thermistor.
index c52d07c6b49f9b539e17143275add565ad45e4b7..e0c6b2f244a6d2e63b4e0edda5bc97dbcb7f69ec 100644 (file)
@@ -55,6 +55,7 @@ static const struct platform_device_id ntc_thermistor_id[] = {
        { "b57330v2103", TYPE_B57330V2103},
        { "ncp03wf104", TYPE_NCPXXWF104 },
        { "ncp15xh103", TYPE_NCPXXXH103 },
+       { "b57891s0103", TYPE_B57891S0103 },
        { },
 };
 
@@ -212,8 +213,8 @@ static const struct ntc_compensation ncpXXxh103[] = {
 };
 
 /*
- * The following compensation table is from the specification of EPCOS NTC
- * Thermistors Datasheet
+ * The following compensation tables are from the specifications in EPCOS NTC
+ * Thermistors Datasheets
  */
 static const struct ntc_compensation b57330v2103[] = {
        { .temp_c       = -40, .ohm     = 190030 },
@@ -252,6 +253,52 @@ static const struct ntc_compensation b57330v2103[] = {
        { .temp_c       = 125, .ohm     = 531 },
 };
 
+static const struct ntc_compensation b57891s0103[] = {
+       { .temp_c       = -55.0, .ohm   = 878900 },
+       { .temp_c       = -50.0, .ohm   = 617590 },
+       { .temp_c       = -45.0, .ohm   = 439340 },
+       { .temp_c       = -40.0, .ohm   = 316180 },
+       { .temp_c       = -35.0, .ohm   = 230060 },
+       { .temp_c       = -30.0, .ohm   = 169150 },
+       { .temp_c       = -25.0, .ohm   = 125550 },
+       { .temp_c       = -20.0, .ohm   = 94143 },
+       { .temp_c       = -15.0, .ohm   = 71172 },
+       { .temp_c       = -10.0, .ohm   = 54308 },
+       { .temp_c       = -5.0, .ohm    = 41505 },
+       { .temp_c       = 0.0, .ohm     = 32014 },
+       { .temp_c       = 5.0, .ohm     = 25011 },
+       { .temp_c       = 10.0, .ohm    = 19691 },
+       { .temp_c       = 15.0, .ohm    = 15618 },
+       { .temp_c       = 20.0, .ohm    = 12474 },
+       { .temp_c       = 25.0, .ohm    = 10000 },
+       { .temp_c       = 30.0, .ohm    = 8080 },
+       { .temp_c       = 35.0, .ohm    = 6569 },
+       { .temp_c       = 40.0, .ohm    = 5372 },
+       { .temp_c       = 45.0, .ohm    = 4424 },
+       { .temp_c       = 50.0, .ohm    = 3661 },
+       { .temp_c       = 55.0, .ohm    = 3039 },
+       { .temp_c       = 60.0, .ohm    = 2536 },
+       { .temp_c       = 65.0, .ohm    = 2128 },
+       { .temp_c       = 70.0, .ohm    = 1794 },
+       { .temp_c       = 75.0, .ohm    = 1518 },
+       { .temp_c       = 80.0, .ohm    = 1290 },
+       { .temp_c       = 85.0, .ohm    = 1100 },
+       { .temp_c       = 90.0, .ohm    = 942 },
+       { .temp_c       = 95.0, .ohm    = 809 },
+       { .temp_c       = 100.0, .ohm   = 697 },
+       { .temp_c       = 105.0, .ohm   = 604 },
+       { .temp_c       = 110.0, .ohm   = 525 },
+       { .temp_c       = 115.0, .ohm   = 457 },
+       { .temp_c       = 120.0, .ohm   = 400 },
+       { .temp_c       = 125.0, .ohm   = 351 },
+       { .temp_c       = 130.0, .ohm   = 308 },
+       { .temp_c       = 135.0, .ohm   = 272 },
+       { .temp_c       = 140.0, .ohm   = 240 },
+       { .temp_c       = 145.0, .ohm   = 213 },
+       { .temp_c       = 150.0, .ohm   = 189 },
+       { .temp_c       = 155.0, .ohm   = 168 },
+};
+
 struct ntc_data {
        struct ntc_thermistor_platform_data *pdata;
        const struct ntc_compensation *comp;
@@ -296,6 +343,8 @@ static const struct of_device_id ntc_match[] = {
                .data = &ntc_thermistor_id[6] },
        { .compatible = "murata,ncp15xh103",
                .data = &ntc_thermistor_id[7] },
+       { .compatible = "epcos,b57891s0103",
+               .data = &ntc_thermistor_id[8] },
 
        /* Usage of vendor name "ntc" is deprecated */
        { .compatible = "ntc,ncp15wb473",
@@ -627,6 +676,10 @@ static int ntc_thermistor_probe(struct platform_device *pdev)
                data->comp = ncpXXxh103;
                data->n_comp = ARRAY_SIZE(ncpXXxh103);
                break;
+       case TYPE_B57891S0103:
+               data->comp = b57891s0103;
+               data->n_comp = ARRAY_SIZE(b57891s0103);
+               break;
        default:
                dev_err(dev, "Unknown device type: %lu(%s)\n",
                                pdev_id->driver_data, pdev_id->name);
index 698d0d59db761b3cae1d75d5b88a67603dc2c187..231a27c302ec525827b05cc6edf18211ca0e2688 100644 (file)
@@ -29,6 +29,7 @@ enum ntc_thermistor_type {
        TYPE_B57330V2103,
        TYPE_NCPXXWF104,
        TYPE_NCPXXXH103,
+       TYPE_B57891S0103,
 };
 
 struct ntc_thermistor_platform_data {