Merge tag 'trace-v5.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / include / linux / platform_data / ntc_thermistor.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * ntc_thermistor.h - NTC Thermistors
4  *
5  *  Copyright (C) 2010 Samsung Electronics
6  *  MyungJoo Ham <myungjoo.ham@samsung.com>
7  */
8 #ifndef _LINUX_NTC_H
9 #define _LINUX_NTC_H
10
11 struct iio_channel;
12
13 enum ntc_thermistor_type {
14         TYPE_B57330V2103,
15         TYPE_B57891S0103,
16         TYPE_NCPXXWB473,
17         TYPE_NCPXXWF104,
18         TYPE_NCPXXWL333,
19         TYPE_NCPXXXH103,
20 };
21
22 struct ntc_thermistor_platform_data {
23         /*
24          * One (not both) of read_uV and read_ohm should be provided and only
25          * one of the two should be provided.
26          * Both functions should return negative value for an error case.
27          *
28          * pullup_uV, pullup_ohm, pulldown_ohm, and connect are required to use
29          * read_uV()
30          *
31          * How to setup pullup_ohm, pulldown_ohm, and connect is
32          * described at Documentation/hwmon/ntc_thermistor.rst
33          *
34          * pullup/down_ohm: 0 for infinite / not-connected
35          *
36          * chan: iio_channel pointer to communicate with the ADC which the
37          * thermistor is using for conversion of the analog values.
38          */
39         int (*read_uv)(struct ntc_thermistor_platform_data *);
40         unsigned int pullup_uv;
41
42         unsigned int pullup_ohm;
43         unsigned int pulldown_ohm;
44         enum { NTC_CONNECTED_POSITIVE, NTC_CONNECTED_GROUND } connect;
45         struct iio_channel *chan;
46
47         int (*read_ohm)(void);
48 };
49
50 #endif /* _LINUX_NTC_H */