diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2022-05-31 17:23:53 +0300 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2022-06-14 11:53:08 +0100 |
commit | 3cc6a67b73fdf2bb42f52aff7efe0f73496527a3 (patch) | |
tree | 8ec8bd14223310e3fb2214ffcb173baa6887add8 | |
parent | 3b9b4357d5b241f4de08135c176b6da39fe82d6a (diff) | |
download | lwn-3cc6a67b73fdf2bb42f52aff7efe0f73496527a3.tar.gz lwn-3cc6a67b73fdf2bb42f52aff7efe0f73496527a3.zip |
iio: adc: vf610_adc: Make use of device properties
Convert the module to be property provider agnostic and allow
it to be used on non-OF platforms.
Add mod_devicetable.h include.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20220531142353.64925-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r-- | drivers/iio/adc/Kconfig | 1 | ||||
-rw-r--r-- | drivers/iio/adc/vf610_adc.c | 15 |
2 files changed, 6 insertions, 10 deletions
diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index 0050087b7537..b9e913e25a5d 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -1257,7 +1257,6 @@ config TWL6030_GPADC config VF610_ADC tristate "Freescale vf610 ADC driver" - depends on OF depends on HAS_IOMEM select IIO_BUFFER select IIO_TRIGGERED_BUFFER diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c index c84293efc129..c6b16cf6e367 100644 --- a/drivers/iio/adc/vf610_adc.c +++ b/drivers/iio/adc/vf610_adc.c @@ -5,7 +5,9 @@ * Copyright 2013 Freescale Semiconductor, Inc. */ +#include <linux/mod_devicetable.h> #include <linux/module.h> +#include <linux/property.h> #include <linux/platform_device.h> #include <linux/interrupt.h> #include <linux/delay.h> @@ -14,10 +16,7 @@ #include <linux/io.h> #include <linux/clk.h> #include <linux/completion.h> -#include <linux/of.h> -#include <linux/of_irq.h> #include <linux/regulator/consumer.h> -#include <linux/of_platform.h> #include <linux/err.h> #include <linux/iio/iio.h> @@ -799,6 +798,7 @@ MODULE_DEVICE_TABLE(of, vf610_adc_match); static int vf610_adc_probe(struct platform_device *pdev) { + struct device *dev = &pdev->dev; struct vf610_adc *info; struct iio_dev *indio_dev; int irq; @@ -846,13 +846,10 @@ static int vf610_adc_probe(struct platform_device *pdev) info->vref_uv = regulator_get_voltage(info->vref); - of_property_read_u32_array(pdev->dev.of_node, "fsl,adck-max-frequency", - info->max_adck_rate, 3); + device_property_read_u32_array(dev, "fsl,adck-max-frequency", info->max_adck_rate, 3); - ret = of_property_read_u32(pdev->dev.of_node, "min-sample-time", - &info->adc_feature.default_sample_time); - if (ret) - info->adc_feature.default_sample_time = DEFAULT_SAMPLE_TIME; + info->adc_feature.default_sample_time = DEFAULT_SAMPLE_TIME; + device_property_read_u32(dev, "min-sample-time", &info->adc_feature.default_sample_time); platform_set_drvdata(pdev, indio_dev); |