Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 887ee434 authored by Beomho Seo's avatar Beomho Seo Committed by Guenter Roeck
Browse files

hwmon: (ntc_thermistor) Add support for ncpXXwf104



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: default avatarBeomho Seo <beomho.seo@samsung.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent c65b99f0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+4 −2
Original line number Diff line number Diff line
@@ -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:
+2 −2
Original line number Diff line number Diff line
@@ -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.
+44 −0
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ enum ntc_thermistor_type {
	TYPE_NCPXXWB473,
	TYPE_NCPXXWL333,
	TYPE_B57330V2103,
	TYPE_NCPXXWF104,
};

struct ntc_thermistor_platform_data {