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;
        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;