Message ID | 20210703084224.31623-4-andreas@kemnade.info (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | mfd: rn5t618: Extend ADC support | expand |
On Sat, 3 Jul 2021 10:42:23 +0200 Andreas Kemnade <andreas@kemnade.info> wrote: > Add devicetree support to be able to easily get the channels > from another device. > > Signed-off-by: Andreas Kemnade <andreas@kemnade.info> > --- > drivers/iio/adc/rn5t618-adc.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/adc/rn5t618-adc.c b/drivers/iio/adc/rn5t618-adc.c > index 7010c4276947..feba19f91574 100644 > --- a/drivers/iio/adc/rn5t618-adc.c > +++ b/drivers/iio/adc/rn5t618-adc.c > @@ -12,6 +12,7 @@ > #include <linux/init.h> > #include <linux/module.h> > #include <linux/mfd/rn5t618.h> > +#include <linux/of_device.h> Why? mod_devicetable.h probably the one you want. > #include <linux/platform_device.h> > #include <linux/completion.h> > #include <linux/regmap.h> > @@ -218,6 +219,7 @@ static int rn5t618_adc_probe(struct platform_device *pdev) > init_completion(&adc->conv_completion); > > iio_dev->name = dev_name(&pdev->dev); > + iio_dev->dev.of_node = pdev->dev.of_node; That should (now) be set by the IIO core for you via the devm_iio_device_register() call below if it's not already set. > iio_dev->info = &rn5t618_adc_iio_info; > iio_dev->modes = INDIO_DIRECT_MODE; > iio_dev->channels = rn5t618_adc_iio_channels; > @@ -242,9 +244,19 @@ static int rn5t618_adc_probe(struct platform_device *pdev) > return devm_iio_device_register(adc->dev, iio_dev); > } > > +#ifdef CONFIG_OF > +static const struct of_device_id rn5t618_adc_of_match[] = { > + { .compatible = "ricoh,rc5t619-adc", }, > + { .compatible = "ricoh,rn5t618-adc", }, > + { }, > +}; > +MODULE_DEVICE_TABLE(of, rn5t618_adc_of_match); > +#endif > + > static struct platform_driver rn5t618_adc_driver = { > .driver = { > - .name = "rn5t618-adc", > + .name = "rn5t618-adc", > + .of_match_table = of_match_ptr(rn5t618_adc_of_match), Given cost of that table is totally trivial (and I'm trying to get rid of this pattern in IIO as it's noisy and adds little :) drop the of_match_ptr protection and the ifdefs above. > }, > .probe = rn5t618_adc_probe, > };
diff --git a/drivers/iio/adc/rn5t618-adc.c b/drivers/iio/adc/rn5t618-adc.c index 7010c4276947..feba19f91574 100644 --- a/drivers/iio/adc/rn5t618-adc.c +++ b/drivers/iio/adc/rn5t618-adc.c @@ -12,6 +12,7 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/mfd/rn5t618.h> +#include <linux/of_device.h> #include <linux/platform_device.h> #include <linux/completion.h> #include <linux/regmap.h> @@ -218,6 +219,7 @@ static int rn5t618_adc_probe(struct platform_device *pdev) init_completion(&adc->conv_completion); iio_dev->name = dev_name(&pdev->dev); + iio_dev->dev.of_node = pdev->dev.of_node; iio_dev->info = &rn5t618_adc_iio_info; iio_dev->modes = INDIO_DIRECT_MODE; iio_dev->channels = rn5t618_adc_iio_channels; @@ -242,9 +244,19 @@ static int rn5t618_adc_probe(struct platform_device *pdev) return devm_iio_device_register(adc->dev, iio_dev); } +#ifdef CONFIG_OF +static const struct of_device_id rn5t618_adc_of_match[] = { + { .compatible = "ricoh,rc5t619-adc", }, + { .compatible = "ricoh,rn5t618-adc", }, + { }, +}; +MODULE_DEVICE_TABLE(of, rn5t618_adc_of_match); +#endif + static struct platform_driver rn5t618_adc_driver = { .driver = { - .name = "rn5t618-adc", + .name = "rn5t618-adc", + .of_match_table = of_match_ptr(rn5t618_adc_of_match), }, .probe = rn5t618_adc_probe, };
Add devicetree support to be able to easily get the channels from another device. Signed-off-by: Andreas Kemnade <andreas@kemnade.info> --- drivers/iio/adc/rn5t618-adc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)