mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
iio: adc: rn5t618: Add iio map
Add iio map to allow power driver to read out values as a consumer. This approach does not block later addition of devicetree support which would be helpful if there is an in-kernel consumer for AIN0/1. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
3833423196
commit
1a844ddf06
@ -16,6 +16,8 @@
|
||||
#include <linux/completion.h>
|
||||
#include <linux/regmap.h>
|
||||
#include <linux/iio/iio.h>
|
||||
#include <linux/iio/driver.h>
|
||||
#include <linux/iio/machine.h>
|
||||
#include <linux/slab.h>
|
||||
|
||||
#define RN5T618_ADC_CONVERSION_TIMEOUT (msecs_to_jiffies(500))
|
||||
@ -189,6 +191,19 @@ static const struct iio_chan_spec rn5t618_adc_iio_channels[] = {
|
||||
RN5T618_ADC_CHANNEL(AIN0, IIO_VOLTAGE, "AIN0")
|
||||
};
|
||||
|
||||
static struct iio_map rn5t618_maps[] = {
|
||||
IIO_MAP("VADP", "rn5t618-power", "vadp"),
|
||||
IIO_MAP("VUSB", "rn5t618-power", "vusb"),
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
static void unregister_map(void *data)
|
||||
{
|
||||
struct iio_dev *iio_dev = (struct iio_dev *) data;
|
||||
|
||||
iio_map_array_unregister(iio_dev);
|
||||
}
|
||||
|
||||
static int rn5t618_adc_probe(struct platform_device *pdev)
|
||||
{
|
||||
int ret;
|
||||
@ -239,6 +254,14 @@ static int rn5t618_adc_probe(struct platform_device *pdev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = iio_map_array_register(iio_dev, rn5t618_maps);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
ret = devm_add_action_or_reset(adc->dev, unregister_map, iio_dev);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
return devm_iio_device_register(adc->dev, iio_dev);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user