iio:adc:cpcap-adc: Drop of_match_ptr protection and use device_get_match_data

Part of a slow effort to avoid OF specific code in IIO.

Whilst the main advantages of this are not likely to be seen in this
particular driver (ACPI support via PRP0001) the change proposed
does make things a bit more maintainable and also ensures that
this particular (now) anti-patern is less likely to be cut and
paste into new drivers.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
This commit is contained in:
Jonathan Cameron 2020-06-28 13:36:39 +01:00
parent 4b7dddb21a
commit 29788fd607

View File

@ -15,9 +15,9 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/of.h> #include <linux/mod_devicetable.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/property.h>
#include <linux/regmap.h> #include <linux/regmap.h>
#include <linux/iio/buffer.h> #include <linux/iio/buffer.h>
@ -955,22 +955,10 @@ MODULE_DEVICE_TABLE(of, cpcap_adc_id_table);
static int cpcap_adc_probe(struct platform_device *pdev) static int cpcap_adc_probe(struct platform_device *pdev)
{ {
const struct of_device_id *match;
struct cpcap_adc *ddata; struct cpcap_adc *ddata;
struct iio_dev *indio_dev; struct iio_dev *indio_dev;
int error; int error;
match = of_match_device(of_match_ptr(cpcap_adc_id_table),
&pdev->dev);
if (!match)
return -EINVAL;
if (!match->data) {
dev_err(&pdev->dev, "no configuration data found\n");
return -ENODEV;
}
indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*ddata)); indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*ddata));
if (!indio_dev) { if (!indio_dev) {
dev_err(&pdev->dev, "failed to allocate iio device\n"); dev_err(&pdev->dev, "failed to allocate iio device\n");
@ -978,7 +966,9 @@ static int cpcap_adc_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
} }
ddata = iio_priv(indio_dev); ddata = iio_priv(indio_dev);
ddata->ato = match->data; ddata->ato = device_get_match_data(&pdev->dev);
if (!ddata->ato)
return -ENODEV;
ddata->dev = &pdev->dev; ddata->dev = &pdev->dev;
mutex_init(&ddata->lock); mutex_init(&ddata->lock);
@ -1027,7 +1017,7 @@ static int cpcap_adc_probe(struct platform_device *pdev)
static struct platform_driver cpcap_adc_driver = { static struct platform_driver cpcap_adc_driver = {
.driver = { .driver = {
.name = "cpcap_adc", .name = "cpcap_adc",
.of_match_table = of_match_ptr(cpcap_adc_id_table), .of_match_table = cpcap_adc_id_table,
}, },
.probe = cpcap_adc_probe, .probe = cpcap_adc_probe,
}; };