serial: max310x: Make use of device properties
authorAndy Shevchenko <andy.shevchenko@gmail.com>
Wed, 7 Oct 2020 08:46:34 +0000 (11:46 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 28 Oct 2020 12:31:32 +0000 (13:31 +0100)
Device property API allows to gather device resources from different sources,
such as ACPI. Convert the drivers to unleash the power of device property API.

Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201007084635.594991-1-andy.shevchenko@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/max310x.c

index 21130af..f25b951 100644 (file)
@@ -15,8 +15,8 @@
 #include <linux/device.h>
 #include <linux/gpio/driver.h>
 #include <linux/module.h>
-#include <linux/of.h>
-#include <linux/of_device.h>
+#include <linux/mod_devicetable.h>
+#include <linux/property.h>
 #include <linux/regmap.h>
 #include <linux/serial_core.h>
 #include <linux/serial.h>
@@ -267,7 +267,7 @@ struct max310x_one {
        container_of(_port, struct max310x_one, port)
 
 struct max310x_port {
-       struct max310x_devtype  *devtype;
+       const struct max310x_devtype *devtype;
        struct regmap           *regmap;
        struct clk              *clk;
 #ifdef CONFIG_GPIOLIB
@@ -1269,7 +1269,7 @@ static int max310x_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
 }
 #endif
 
-static int max310x_probe(struct device *dev, struct max310x_devtype *devtype,
+static int max310x_probe(struct device *dev, const struct max310x_devtype *devtype,
                         struct regmap *regmap, int irq)
 {
        int i, ret, fmin, fmax, freq, uartclk;
@@ -1478,7 +1478,7 @@ static struct regmap_config regcfg = {
 #ifdef CONFIG_SPI_MASTER
 static int max310x_spi_probe(struct spi_device *spi)
 {
-       struct max310x_devtype *devtype;
+       const struct max310x_devtype *devtype;
        struct regmap *regmap;
        int ret;
 
@@ -1490,18 +1490,9 @@ static int max310x_spi_probe(struct spi_device *spi)
        if (ret)
                return ret;
 
-       if (spi->dev.of_node) {
-               const struct of_device_id *of_id =
-                       of_match_device(max310x_dt_ids, &spi->dev);
-               if (!of_id)
-                       return -ENODEV;
-
-               devtype = (struct max310x_devtype *)of_id->data;
-       } else {
-               const struct spi_device_id *id_entry = spi_get_device_id(spi);
-
-               devtype = (struct max310x_devtype *)id_entry->driver_data;
-       }
+       devtype = device_get_match_data(&spi->dev);
+       if (!devtype)
+               devtype = (struct max310x_devtype *)spi_get_device_id(spi)->driver_data;
 
        regcfg.max_register = devtype->nr * 0x20 - 1;
        regmap = devm_regmap_init_spi(spi, &regcfg);
@@ -1526,7 +1517,7 @@ MODULE_DEVICE_TABLE(spi, max310x_id_table);
 static struct spi_driver max310x_spi_driver = {
        .driver = {
                .name           = MAX310X_NAME,
-               .of_match_table = of_match_ptr(max310x_dt_ids),
+               .of_match_table = max310x_dt_ids,
                .pm             = &max310x_pm_ops,
        },
        .probe          = max310x_spi_probe,