On Wed, 13 Apr 2022 21:02:02 +0300 Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote: > Switch the IIO core to use firmware node handle instead of OF node. > This will allow to get label from firmware on non-OF systems. > > Note, this doesn't change of_iio_*() APIs for now. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Applied to the togreg branch of iio.git and pushed out as testing for 0-day to poke at this and see if we missed anything. Thanks, Jonathan > --- > drivers/iio/industrialio-core.c | 16 +++++++++------- > 1 file changed, 9 insertions(+), 7 deletions(-) > > diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c > index 2f48e9a97274..ffbe76806e07 100644 > --- a/drivers/iio/industrialio-core.c > +++ b/drivers/iio/industrialio-core.c > @@ -1893,20 +1893,22 @@ static const struct iio_buffer_setup_ops noop_ring_setup_ops; > int __iio_device_register(struct iio_dev *indio_dev, struct module *this_mod) > { > struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(indio_dev); > - const char *label; > + struct fwnode_handle *fwnode; > int ret; > > if (!indio_dev->info) > return -EINVAL; > > iio_dev_opaque->driver_module = this_mod; > - /* If the calling driver did not initialize of_node, do it here */ > - if (!indio_dev->dev.of_node && indio_dev->dev.parent) > - indio_dev->dev.of_node = indio_dev->dev.parent->of_node; > > - label = of_get_property(indio_dev->dev.of_node, "label", NULL); > - if (label) > - indio_dev->label = label; > + /* If the calling driver did not initialize firmware node, do it here */ > + if (dev_fwnode(&indio_dev->dev)) > + fwnode = dev_fwnode(&indio_dev->dev); > + else > + fwnode = dev_fwnode(indio_dev->dev.parent); > + device_set_node(&indio_dev->dev, fwnode); > + > + fwnode_property_read_string(fwnode, "label", &indio_dev->label); > > ret = iio_check_unique_scan_index(indio_dev); > if (ret < 0)