Kernel driver lm75
==================

Supported chips:

  * National Semiconductor LM75

    Prefix: 'lm75'

    Addresses scanned: I2C 0x48 - 0x4f

    Datasheet: Publicly available at the National Semiconductor website

	       http://www.national.com/

  * National Semiconductor LM75A

    Prefix: 'lm75a'

    Addresses scanned: I2C 0x48 - 0x4f

    Datasheet: Publicly available at the National Semiconductor website

	       http://www.national.com/

  * Dallas Semiconductor (now Analog Devices) DS75, DS1775, DS7505

    Prefixes: 'ds75', 'ds1775', 'ds7505'

    Addresses scanned: none

    Datasheets:

	       https://www.analog.com/media/en/technical-documentation/data-sheets/DS75.pdf
	       https://www.analog.com/media/en/technical-documentation/data-sheets/DS1775.pdf
	       https://www.analog.com/media/en/technical-documentation/data-sheets/DS7505.pdf

  * Maxim MAX6625, MAX6626, MAX31725, MAX31726

    Prefixes: 'max6625', 'max6626', 'max31725', 'max31726'

    Addresses scanned: none

    Datasheets:

	       https://www.analog.com/media/en/technical-documentation/data-sheets/MAX6625-MAX6626.pdf
	       https://www.analog.com/media/en/technical-documentation/data-sheets/MAX31725-MAX31726.pdf

  * Microchip (TelCom) TCN75

    Prefix: 'tcn75'

    Addresses scanned: none

    Datasheet: Publicly available at the Microchip website

	       http://www.microchip.com/

  * Microchip MCP9800, MCP9801, MCP9802, MCP9803

    Prefix: 'mcp980x'

    Addresses scanned: none

    Datasheet: Publicly available at the Microchip website

	       http://www.microchip.com/

  * Analog Devices ADT75

    Prefix: 'adt75'

    Addresses scanned: none

    Datasheet: Publicly available at the Analog Devices website

	       https://www.analog.com/adt75

  * ST Microelectronics STDS75

    Prefix: 'stds75'

    Addresses scanned: none

    Datasheet: Publicly available at the ST website

	       http://www.st.com/internet/analog/product/121769.jsp

  * ST Microelectronics STLM75

    Prefix: 'stlm75'

    Addresses scanned: none

    Datasheet: Publicly available at the ST website

	       https://www.st.com/resource/en/datasheet/stlm75.pdf

  * Texas Instruments TMP100, TMP101, TMP105, TMP112, TMP75, TMP75B, TMP75C, TMP175, TMP275, TMP1075

    Prefixes: 'tmp100', 'tmp101', 'tmp105', 'tmp112', 'tmp175', 'tmp75', 'tmp75b', 'tmp75c', 'tmp275', 'tmp1075'

    Addresses scanned: none

    Datasheet: Publicly available at the Texas Instruments website

	       https://www.ti.com/product/tmp100

	       https://www.ti.com/product/tmp101

	       https://www.ti.com/product/tmp105

	       https://www.ti.com/product/tmp112

	       https://www.ti.com/product/tmp75

	       https://www.ti.com/product/tmp75b

	       https://www.ti.com/product/tmp75c

	       https://www.ti.com/product/tmp175

	       https://www.ti.com/product/tmp275

         https://www.ti.com/product/TMP1075

  * NXP LM75B, P3T1750, P3T1755, PCT2075

    Prefix: 'lm75b', 'p3t1750', 'p3t1755', 'pct2075'

    Addresses scanned: none

    Datasheet: Publicly available at the NXP website

               https://www.nxp.com/docs/en/data-sheet/LM75B.pdf

               https://www.nxp.com/docs/en/data-sheet/P3T1750DP.pdf

               https://www.nxp.com/docs/en/data-sheet/P3T1755.pdf

               https://www.nxp.com/docs/en/data-sheet/PCT2075.pdf

  * AMS OSRAM AS6200

    Prefix: 'as6200'

    Addresses scanned: none

    Datasheet: Publicly available at the AMS website

               https://ams.com/documents/20143/36005/AS6200_DS000449_4-00.pdf

Author: Frodo Looijaard <frodol@dds.nl>

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

The LM75 implements one temperature sensor. Limits can be set through the
Overtemperature Shutdown register and Hysteresis register. Each value can be
set and read to half-degree accuracy.
An alarm is issued (usually to a connected LM78) when the temperature
gets higher then the Overtemperature Shutdown value; it stays on until
the temperature falls below the Hysteresis value.
All temperatures are in degrees Celsius, and are guaranteed within a
range of -55 to +125 degrees.

The driver caches the values for a period varying between 1 second for the
slowest chips and 125 ms for the fastest chips; reading it more often
will do no harm, but will return 'old' values.

The original LM75 was typically used in combination with LM78-like chips
on PC motherboards, to measure the temperature of the processor(s). Clones
are now used in various embedded designs.

The LM75 is essentially an industry standard; there may be other
LM75 clones not listed here, with or without various enhancements,
that are supported. The clones are not detected by the driver, unless
they reproduce the exact register tricks of the original LM75, and must
therefore be instantiated explicitly. Higher resolution up to 16-bit
is supported by this driver, other specific enhancements are not.

The LM77 is not supported, contrary to what we pretended for a long time.
Both chips are simply not compatible, value encoding differs.

sysfs-Interface
---------------

The following list includes the sysfs attributes that the driver provides, their
permissions and a short description:

=============================== ======= ===========================================
Name                            Perm    Description
=============================== ======= ===========================================
temp1_input                     RO      Temperature input
temp1_label                     RO      Descriptive name for the sensor
temp1_max                       RW      Maximum temperature
temp1_max_hyst                  RW      Maximum hysteresis temperature
update_interval                 RW      Update conversions interval in milliseconds
=============================== ======= ===========================================
