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 */