#include <linux/pci.h>
 #include <linux/platform_device.h>
 #include <linux/pm_runtime.h>
+#include <linux/property.h>
 #include <linux/slab.h>
 #include <linux/spi/pxa2xx_spi.h>
 #include <linux/spi/spi.h>
 pxa2xx_spi_init_pdata(struct platform_device *pdev)
 {
        struct pxa2xx_spi_controller *pdata;
-       struct acpi_device *adev;
        struct ssp_device *ssp;
        struct resource *res;
-       const struct acpi_device_id *adev_id = NULL;
        const struct pci_device_id *pcidev_id = NULL;
-       const struct of_device_id *of_id = NULL;
        enum pxa_ssp_type type;
+       const void *match;
 
-       adev = ACPI_COMPANION(&pdev->dev);
-
-       if (pdev->dev.of_node)
-               of_id = of_match_device(pdev->dev.driver->of_match_table,
-                                       &pdev->dev);
-       else if (dev_is_pci(pdev->dev.parent))
+       if (dev_is_pci(pdev->dev.parent))
                pcidev_id = pci_match_id(pxa2xx_spi_pci_compound_match,
                                         to_pci_dev(pdev->dev.parent));
-       else if (adev)
-               adev_id = acpi_match_device(pdev->dev.driver->acpi_match_table,
-                                           &pdev->dev);
-       else
-               return NULL;
 
-       if (adev_id)
-               type = (enum pxa_ssp_type)adev_id->driver_data;
+       match = device_get_match_data(&pdev->dev);
+       if (match)
+               type = (enum pxa_ssp_type)match;
        else if (pcidev_id)
                type = (enum pxa_ssp_type)pcidev_id->driver_data;
-       else if (of_id)
-               type = (enum pxa_ssp_type)of_id->data;
        else
                return NULL;
 
        ssp->dev = &pdev->dev;
        ssp->port_id = pxa2xx_spi_get_port_id(&pdev->dev);
 
-       pdata->is_slave = of_property_read_bool(pdev->dev.of_node, "spi-slave");
+       pdata->is_slave = device_property_read_bool(&pdev->dev, "spi-slave");
        pdata->num_chipselect = 1;
        pdata->enable_dma = true;
        pdata->dma_burst_size = 1;