#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>
 
 {
        struct ad7292_state *st;
        struct iio_dev *indio_dev;
-       struct device_node *child;
        bool diff_channels = false;
        int ret;
 
        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) {