diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2021-11-25 03:08:38 +0100 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2021-12-26 15:02:05 -0800 |
commit | 11a24ca7e34d968991a7d437b950d1924396bd81 (patch) | |
tree | 4d074cbb6c86a3c5712e13eaec69a238c67aa85a /drivers/hwmon | |
parent | bf4d843050af4fde7e8514b4b5ffe79874ee3936 (diff) | |
download | linux-stable-11a24ca7e34d968991a7d437b950d1924396bd81.tar.gz linux-stable-11a24ca7e34d968991a7d437b950d1924396bd81.tar.bz2 linux-stable-11a24ca7e34d968991a7d437b950d1924396bd81.zip |
hwmon: (ntc_thermistor) Merge platform data into driver
Platform data is supposed to be used with "board files",
device descriptions in C. Since the introduction of the
NTC driver in 2011, no such platforms have been submitted
to the Linux kernel, and their use is strongly discouraged
in favor of Device Tree, ACPI or as last resort software
firmware nodes.
Drop the external header and copy the platform data into
the driver file.
Cc: Peter Rosin <peda@axentia.se>
Cc: Chris Lesiak <chris.lesiak@licor.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20211125020841.3616359-2-linus.walleij@linaro.org
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/ntc_thermistor.c | 41 |
1 files changed, 36 insertions, 5 deletions
diff --git a/drivers/hwmon/ntc_thermistor.c b/drivers/hwmon/ntc_thermistor.c index cf26c44f2b88..034ef55d0706 100644 --- a/drivers/hwmon/ntc_thermistor.c +++ b/drivers/hwmon/ntc_thermistor.c @@ -14,12 +14,45 @@ #include <linux/of.h> #include <linux/of_device.h> #include <linux/fixp-arith.h> +#include <linux/iio/consumer.h> +#include <linux/hwmon.h> -#include <linux/platform_data/ntc_thermistor.h> +enum ntc_thermistor_type { + TYPE_B57330V2103, + TYPE_B57891S0103, + TYPE_NCPXXWB473, + TYPE_NCPXXWF104, + TYPE_NCPXXWL333, + TYPE_NCPXXXH103, +}; -#include <linux/iio/consumer.h> +struct ntc_thermistor_platform_data { + /* + * One (not both) of read_uV and read_ohm should be provided and only + * one of the two should be provided. + * Both functions should return negative value for an error case. + * + * pullup_uV, pullup_ohm, pulldown_ohm, and connect are required to use + * read_uV() + * + * How to setup pullup_ohm, pulldown_ohm, and connect is + * described at Documentation/hwmon/ntc_thermistor.rst + * + * pullup/down_ohm: 0 for infinite / not-connected + * + * chan: iio_channel pointer to communicate with the ADC which the + * thermistor is using for conversion of the analog values. + */ + int (*read_uv)(struct ntc_thermistor_platform_data *); + unsigned int pullup_uv; -#include <linux/hwmon.h> + unsigned int pullup_ohm; + unsigned int pulldown_ohm; + enum { NTC_CONNECTED_POSITIVE, NTC_CONNECTED_GROUND } connect; + struct iio_channel *chan; + + int (*read_ohm)(void); +}; struct ntc_compensation { int temp_c; @@ -651,8 +684,6 @@ static int ntc_thermistor_probe(struct platform_device *pdev) pdata = ntc_thermistor_parse_dt(dev); if (IS_ERR(pdata)) return PTR_ERR(pdata); - else if (pdata == NULL) - pdata = dev_get_platdata(dev); if (!pdata) { dev_err(dev, "No platform init data supplied.\n"); |