mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
![Daniel Matyas](/assets/img/avatar_default.png)
MAX31827 is a low-power temperature switch with I2C interface. The device is a ±1°C accuracy from -40°C to +125°C (12 bits) local temperature switch and sensor with I2C/SM- Bus interface. The combination of small 6-bump wafer-lev- el package (WLP) and high accuracy makes this temper- ature sensor/switch ideal for a wide range of applications. Signed-off-by: Daniel Matyas <daniel.matyas@analog.com> Link: https://lore.kernel.org/r/20230524160131.14081-2-daniel.matyas@analog.com [groeck: Improved define alignment, return -EINVAL after bad user input, fixed up compatible statement] Signed-off-by: Guenter Roeck <linux@roeck-us.net>
90 lines
3.6 KiB
ReStructuredText
90 lines
3.6 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
Kernel driver max31827
|
|
======================
|
|
|
|
Supported chips:
|
|
|
|
* Maxim MAX31827
|
|
|
|
Prefix: 'max31827'
|
|
|
|
Addresses scanned: I2C 0x40 - 0x5f
|
|
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
|
|
* Maxim MAX31828
|
|
|
|
Prefix: 'max31828'
|
|
|
|
Addresses scanned: I2C 0x40 - 0x5f
|
|
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
|
|
* Maxim MAX31829
|
|
|
|
Prefix: 'max31829'
|
|
|
|
Addresses scanned: I2C 0x40 - 0x5f
|
|
|
|
Datasheet: Publicly available at the Analog Devices website
|
|
|
|
|
|
Authors:
|
|
- Daniel Matyas <daniel.matyas@analog.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The chips supported by this driver are quite similar. The only difference
|
|
between them is found in the default power-on behaviour of the chips. While the
|
|
MAX31827's fault queue is set to 1, the other two chip's fault queue is set to
|
|
4. Besides this, the MAX31829's alarm active state is high, while the other two
|
|
chip's alarms are active on low. It is important to note that the chips can be
|
|
configured to operate in the same manner with 1 write operation to the
|
|
configuration register. From here on, we will refer to all these chips as
|
|
MAX31827.
|
|
|
|
MAX31827 implements a temperature sensor with a 6 WLP packaging scheme. This
|
|
sensor measures the temperature of the chip itself.
|
|
|
|
MAX31827 has low and over temperature alarms with an effective value and a
|
|
hysteresis value: -40 and -30 degrees for under temperature alarm and +100 and
|
|
+90 degrees for over temperature alarm.
|
|
|
|
The alarm can be configured in comparator and interrupt mode. Currently only
|
|
comparator mode is implemented. In Comparator mode, the OT/UT status bits have a
|
|
value of 1 when the temperature rises above the TH value or falls below TL,
|
|
which is also subject to the Fault Queue selection. OT status returns to 0 when
|
|
the temperature drops below the TH_HYST value or when shutdown mode is entered.
|
|
Similarly, UT status returns to 0 when the temperature rises above TL_HYST value
|
|
or when shutdown mode is entered.
|
|
|
|
Putting the MAX31827 into shutdown mode also resets the OT/UT status bits. Note
|
|
that if the mode is changed while OT/UT status bits are set, an OT/UT status
|
|
reset may be required before it begins to behave normally. To prevent this,
|
|
it is recommended to perform a read of the configuration/status register to
|
|
clear the status bits before changing the operating mode.
|
|
|
|
The conversions can be manual with the one-shot functionality and automatic with
|
|
a set frequency. When powered on, the chip measures temperatures with 1 conv/s.
|
|
Enabling the device when it is already enabled has the side effect of setting
|
|
the conversion frequency to 1 conv/s. The conversion time varies depending on
|
|
the resolution. The conversion time doubles with every bit of increased
|
|
resolution. For 10 bit resolution 35ms are needed, while for 12 bit resolution
|
|
(default) 140ms. When chip is in shutdown mode and a read operation is
|
|
requested, one-shot is triggered, the device waits for 140 (conversion time) + 1
|
|
(error) ms, and only after that is the temperature value register read.
|
|
|
|
The LSB of the temperature values is 0.0625 degrees Celsius, but the values of
|
|
the temperatures are displayed in milli-degrees. This means, that some data is
|
|
lost. The step between 2 consecutive values is 62 or 63. This effect can be seen
|
|
in the writing of alarm values too. For positive numbers the user-input value
|
|
will always be rounded down to the nearest possible value, for negative numbers
|
|
the user-input will always be rounded up to the nearest possible value.
|
|
|
|
Notes
|
|
-----
|
|
|
|
Currently fault queue, alarm polarity and resolution cannot be modified.
|
|
PEC is not implemented either.
|