Kernel driver ptc_thermistor
=================

Supported thermistors from TI:
* TMP6331DECR
  Configuration: voltage bias = 1.8V, series connected with a pull-up or pull-down resistor = 100K ohm.
  Prefix: 'tmp6331decr'
  Datasheet: Publicly available at TI

Other PTC thermistors or other configuration for the supported thermistors can be supported simply by adding compensation
tables.

Authors:
	Tang Lee <tanglee@google.com>

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

The PTC (Positive Temperature Coefficient) thermistor is a device
that requires users to provide the resistance and lookup the corresponding
compensation table to get the temperature input.

Unlike NTC thermistors which are simple resistors, current supported PTC thermistors (TMP63x)
are silicon-based devices. Therefore, the resistance-temperature relationship is dependent
on both the pull-up voltage and the connected resistance. A compensation table only supports
one configuration (eg. 1.8V pullup voltage with 100K pull ohm).

The PTC driver provides lookup tables with a linear approximation function
and two 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 = PTC_CONNECTED_POSITIVE

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

 2. connect = PTC_CONNECTED_GROUND

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

When one of the two circuit models is used, read_uV, pullup_uV, pull_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 PTC thermistor has only _one_ thermistor; thus, only temp1 exists.
