misc: at25: Make driver OF independent again
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 25 Nov 2021 21:27:27 +0000 (23:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Dec 2021 13:25:22 +0000 (14:25 +0100)
The commit f60e7074902a ("misc: at25: Make use of device property API")
made a good job by enabling the driver for non-OF platforms, but the
recent commit 604288bc6196 ("nvmem: eeprom: at25: fix type compiler warnings")
brought that back.

Restore greatness of the driver once again.

Fixes: eab61fb1cc2e ("nvmem: eeprom: at25: fram discovery simplification")
Fixes: fd307a4ad332 ("nvmem: prepare basics for FRAM support")
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211125212729.86585-2-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/eeprom/at25.c

index 6323254..57599ea 100644 (file)
@@ -17,8 +17,6 @@
 #include <linux/spi/spi.h>
 #include <linux/spi/eeprom.h>
 #include <linux/property.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
 #include <linux/math.h>
 
 /*
@@ -381,13 +379,14 @@ static int at25_probe(struct spi_device *spi)
        int                     sr;
        u8 id[FM25_ID_LEN];
        u8 sernum[FM25_SN_LEN];
+       bool is_fram;
        int i;
-       const struct of_device_id *match;
-       bool is_fram = 0;
 
-       match = of_match_device(of_match_ptr(at25_of_match), &spi->dev);
-       if (match && !strcmp(match->compatible, "cypress,fm25"))
-               is_fram = 1;
+       err = device_property_match_string(&spi->dev, "compatible", "cypress,fm25");
+       if (err >= 0)
+               is_fram = true;
+       else
+               is_fram = false;
 
        /* Chip description */
        if (!spi->dev.platform_data) {