Commit bb134d2f authored by Jonathan Cameron's avatar Jonathan Cameron
Browse files

iio: adc: ad7292: Switch from of specific to fwnode property handling



This reduces the wrong of device tree only IIO drivers that might
be copied by converting over this simple case.
Makes use of the new _scoped() handling to automatically release
the fwnode_handle on early exit from the loop.

Cc: Nuno Sá <nuno.sa@analog.com>
Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240218172731.1023367-5-jic23@kernel.org


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent a6eaf02b
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -8,7 +8,8 @@
#include <linux/bitfield.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/mod_devicetable.h>
#include <linux/property.h>
#include <linux/regulator/consumer.h>
#include <linux/spi/spi.h>

@@ -260,7 +261,6 @@ static int ad7292_probe(struct spi_device *spi)
{
	struct ad7292_state *st;
	struct iio_dev *indio_dev;
	struct device_node *child;
	bool diff_channels = false;
	int ret;

@@ -305,13 +305,12 @@ static int ad7292_probe(struct spi_device *spi)
	indio_dev->modes = INDIO_DIRECT_MODE;
	indio_dev->info = &ad7292_info;

	for_each_available_child_of_node(spi->dev.of_node, child) {
		diff_channels = of_property_read_bool(child, "diff-channels");
		if (diff_channels) {
			of_node_put(child);
	device_for_each_child_node_scoped(&spi->dev, child) {
		diff_channels = fwnode_property_read_bool(child,
							  "diff-channels");
		if (diff_channels)
			break;
	}
	}

	if (diff_channels) {
		indio_dev->num_channels = ARRAY_SIZE(ad7292_channels_diff);