On Mon, 26 Sep 2022 12:11:15 +0200 Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > From: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > > [ Upstream commit 4efc1c614d334883cce09c38aa3fe74d3fb0bbf0 ] > > This allows use of the driver with other types of firmware such as ACPI > PRP0001 based probing. > > Also part of a general attempt to remove direct use of of_ specific > accessors from IIO. > > Added an include for mod_devicetable.h whilst here to cover the > struct of_device_id definition. I'd treat this a feature enabling rather than a fix. It's small however, so if someone has a sent a backport request I'm fine with it going in stable. If not, probably just unnecessary noise for stable. Jonathan > > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> > Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Cc: Kent Gustavsson <kent@xxxxxxxxxx> > Reviewed-by: Marcus Folkesson <marcus.folkesson@xxxxxxxxx> > Stable-dep-of: cfbd76d5c9c4 ("iio: adc: mcp3911: correct "microchip,device-addr" property") > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > --- > drivers/iio/adc/mcp3911.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/iio/adc/mcp3911.c b/drivers/iio/adc/mcp3911.c > index 4e2e8e819b1e..cd8b1bab9cf0 100644 > --- a/drivers/iio/adc/mcp3911.c > +++ b/drivers/iio/adc/mcp3911.c > @@ -10,6 +10,8 @@ > #include <linux/err.h> > #include <linux/iio/iio.h> > #include <linux/module.h> > +#include <linux/mod_devicetable.h> > +#include <linux/property.h> > #include <linux/regulator/consumer.h> > #include <linux/spi/spi.h> > > @@ -209,12 +211,13 @@ static const struct iio_info mcp3911_info = { > .write_raw = mcp3911_write_raw, > }; > > -static int mcp3911_config(struct mcp3911 *adc, struct device_node *of_node) > +static int mcp3911_config(struct mcp3911 *adc) > { > + struct device *dev = &adc->spi->dev; > u32 configreg; > int ret; > > - of_property_read_u32(of_node, "device-addr", &adc->dev_addr); > + device_property_read_u32(dev, "device-addr", &adc->dev_addr); > if (adc->dev_addr > 3) { > dev_err(&adc->spi->dev, > "invalid device address (%i). Must be in range 0-3.\n", > @@ -298,7 +301,7 @@ static int mcp3911_probe(struct spi_device *spi) > } > } > > - ret = mcp3911_config(adc, spi->dev.of_node); > + ret = mcp3911_config(adc); > if (ret) > goto clk_disable; >