Kernel driver ntc_thermistor
=================

Supported thermistors:
* Murata NTC Thermistors NCP15WB473, NCP18WB473, NCP21WB473, NCP03WB473, NCP15WL333
  Prefixes: 'ncp15wb473', 'ncp18wb473', 'ncp21wb473', 'ncp03wb473', 'ncp15wl333'
  Datasheet: Publicly available at Murata

Other NTC thermistors can be supported simply by adding compensation
tables; e.g., NCP15WL333 support is added by the table ncpXXwl333.

Authors:
	MyungJoo Ham <myungjoo.ham@samsung.com>

Description
-----------

The NTC thermistor is a simple thermistor that requires users to provide the
resistance and lookup the corresponding compensation table to get the
temperature input.

The NTC driver provides lookup tables with a linear approximation function
and four circuit models with an option not to use any of the four models.

The four circuit models provided are:

	$: resister, [TH]: the thermistor

 1. connect = NTC_CONNECTED_POSITIVE, pullup_ohm > 0

   [pullup_uV]
       |    |
      [TH]  $ (pullup_ohm)
       |    |
       +----+-----------------------[read_uV]
       |
       $ (pulldown_ohm)
       |
      --- (ground)

 2. connect = NTC_CONNECTED_POSITIVE, pullup_ohm = 0 (not-connected)

   [pullup_uV]
       |
      [TH]
       |
       +----------------------------[read_uV]
       |
       $ (pulldown_ohm)
       |
      --- (ground)

 3. connect = NTC_CONNECTED_GROUND, pulldown_ohm > 0

   [pullup_uV]
       |
       $ (pullup_ohm)
       |
       +----+-----------------------[read_uV]
       |    |
      [TH]  $ (pulldown_ohm)
       |    |
      -------- (ground)

 4. connect = NTC_CONNECTED_GROUND, pulldown_ohm = 0 (not-connected)

   [pullup_uV]
       |
       $ (pullup_ohm)
       |
       +----------------------------[read_uV]
       |
      [TH]
       |
      --- (ground)

When one of the four circuit models is used, read_uV, pullup_uV, pullup_ohm,
pulldown_ohm, and connect should be provided. When none of the four models
are suitable or the user can get the resistance directly, the user should
provide read_ohm and _not_ provide the others.

Sysfs Interface
---------------
name		the mandatory global attribute, the thermistor name.

temp1_type	always 4 (thermistor)
		RO

temp1_input	measure the temperature and provide the measured value.
		(reading this file initiates the reading procedure.)
		RO

Note that each NTC thermistor has only _one_ thermistor; thus, only temp1 exists.
