spi: s3c64xx: introduce s3c64xx_spi_set_port_id()
authorTudor Ambarus <tudor.ambarus@linaro.org>
Fri, 16 Feb 2024 07:05:51 +0000 (07:05 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 5 Mar 2024 20:42:56 +0000 (20:42 +0000)
Prepare driver to get rid of the of alias ID dependency. Split the
port_id logic into a dedicated method.

Signed-off-by: Tudor Ambarus <tudor.ambarus@linaro.org>
Link: https://msgid.link/r/20240216070555.2483977-9-tudor.ambarus@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-s3c64xx.c

index ac47755beb02dc769c87692eb9e08abeb0c4cf41..40de325bd094a5239c1a26c4b67aff67da502f9a 100644 (file)
@@ -1200,6 +1200,27 @@ static inline const struct s3c64xx_spi_port_config *s3c64xx_spi_get_port_config(
        return (const struct s3c64xx_spi_port_config *)platform_get_device_id(pdev)->driver_data;
 }
 
+static int s3c64xx_spi_set_port_id(struct platform_device *pdev,
+                                  struct s3c64xx_spi_driver_data *sdd)
+{
+       int ret;
+
+       if (pdev->dev.of_node) {
+               ret = of_alias_get_id(pdev->dev.of_node, "spi");
+               if (ret < 0)
+                       return dev_err_probe(&pdev->dev, ret,
+                                            "Failed to get alias id\n");
+               sdd->port_id = ret;
+       } else {
+               if (pdev->id < 0)
+                       return dev_err_probe(&pdev->dev, -EINVAL,
+                                            "Negative platform ID is not allowed\n");
+               sdd->port_id = pdev->id;
+       }
+
+       return 0;
+}
+
 static void s3c64xx_spi_set_fifomask(struct s3c64xx_spi_driver_data *sdd)
 {
        const struct s3c64xx_spi_port_config *port_conf = sdd->port_conf;
@@ -1252,18 +1273,10 @@ static int s3c64xx_spi_probe(struct platform_device *pdev)
        sdd->host = host;
        sdd->cntrlr_info = sci;
        sdd->pdev = pdev;
-       if (pdev->dev.of_node) {
-               ret = of_alias_get_id(pdev->dev.of_node, "spi");
-               if (ret < 0)
-                       return dev_err_probe(&pdev->dev, ret,
-                                            "Failed to get alias id\n");
-               sdd->port_id = ret;
-       } else {
-               if (pdev->id < 0)
-                       return dev_err_probe(&pdev->dev, -EINVAL,
-                                            "Negative platform ID is not allowed\n");
-               sdd->port_id = pdev->id;
-       }
+
+       ret = s3c64xx_spi_set_port_id(pdev, sdd);
+       if (ret)
+               return ret;
 
        if (sdd->port_conf->fifo_depth)
                sdd->fifo_depth = sdd->port_conf->fifo_depth;