]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/mfd/arizona-spi.c
Merge remote-tracking branch 'spi/for-next'
[karo-tx-linux.git] / drivers / mfd / arizona-spi.c
index 03d62f7b47205cbd5c8db2bce120a8c5d124b84d..befbc89bfd3456c210d736d2ad295c646a2bd4fc 100644 (file)
@@ -27,7 +27,7 @@ static int arizona_spi_probe(struct spi_device *spi)
 {
        const struct spi_device_id *id = spi_get_device_id(spi);
        struct arizona *arizona;
-       const struct regmap_config *regmap_config;
+       const struct regmap_config *regmap_config = NULL;
        unsigned long type;
        int ret;
 
@@ -37,20 +37,23 @@ static int arizona_spi_probe(struct spi_device *spi)
                type = id->driver_data;
 
        switch (type) {
-#ifdef CONFIG_MFD_WM5102
        case WM5102:
-               regmap_config = &wm5102_spi_regmap;
+               if (IS_ENABLED(CONFIG_MFD_WM5102))
+                       regmap_config = &wm5102_spi_regmap;
                break;
-#endif
-#ifdef CONFIG_MFD_WM5110
        case WM5110:
        case WM8280:
-               regmap_config = &wm5110_spi_regmap;
+               if (IS_ENABLED(CONFIG_MFD_WM5110))
+                       regmap_config = &wm5110_spi_regmap;
                break;
-#endif
        default:
-               dev_err(&spi->dev, "Unknown device type %ld\n",
-                       id->driver_data);
+               dev_err(&spi->dev, "Unknown device type %ld\n", type);
+               return -EINVAL;
+       }
+
+       if (!regmap_config) {
+               dev_err(&spi->dev,
+                       "No kernel support for device type %ld\n", type);
                return -EINVAL;
        }
 
@@ -66,7 +69,7 @@ static int arizona_spi_probe(struct spi_device *spi)
                return ret;
        }
 
-       arizona->type = id->driver_data;
+       arizona->type = type;
        arizona->dev = &spi->dev;
        arizona->irq = spi->irq;