iio: addac: ad74413r: add spi_device_id table
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Tue, 15 Nov 2022 09:55:15 +0000 (10:55 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Wed, 23 Nov 2022 20:54:37 +0000 (20:54 +0000)
Silence the run-time warning

  SPI driver ad74413r has no spi_device_id for adi,ad74412r

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Link: https://lore.kernel.org/r/20221115095517.1008632-2-linux@rasmusvillemoes.dk
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/addac/ad74413r.c

index e0e130ba9d3ecbae2f82f9bed133925c460eab07..29b3a5775f2369b9781c0bd2922b14da8b7db266 100644 (file)
@@ -1305,6 +1305,15 @@ static int ad74413r_probe(struct spi_device *spi)
        st->spi = spi;
        st->dev = &spi->dev;
        st->chip_info = device_get_match_data(&spi->dev);
+       if (!st->chip_info) {
+               const struct spi_device_id *id = spi_get_device_id(spi);
+               if (id)
+                       st->chip_info =
+                               (struct ad74413r_chip_info *)id->driver_data;
+               if (!st->chip_info)
+                       return -EINVAL;
+       }
+
        mutex_init(&st->lock);
        init_completion(&st->adc_data_completion);
 
@@ -1457,12 +1466,20 @@ static const struct of_device_id ad74413r_dt_id[] = {
 };
 MODULE_DEVICE_TABLE(of, ad74413r_dt_id);
 
+static const struct spi_device_id ad74413r_spi_id[] = {
+       { .name = "ad74412r", .driver_data = (kernel_ulong_t)&ad74412r_chip_info_data },
+       { .name = "ad74413r", .driver_data = (kernel_ulong_t)&ad74413r_chip_info_data },
+       {}
+};
+MODULE_DEVICE_TABLE(spi, ad74413r_spi_id);
+
 static struct spi_driver ad74413r_driver = {
        .driver = {
                   .name = "ad74413r",
                   .of_match_table = ad74413r_dt_id,
        },
        .probe = ad74413r_probe,
+       .id_table = ad74413r_spi_id,
 };
 
 module_driver(ad74413r_driver,