#include <linux/ata.h>
 #include <linux/libata.h>
 #include <linux/platform_device.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
 #include <linux/delay.h>
 #include <linux/dmaengine.h>
 #include <linux/ktime.h>
        return 0;
 }
 
+static const struct of_device_id ep93xx_pata_of_ids[] = {
+       { .compatible = "cirrus,ep9312-pata" },
+       {},
+};
+MODULE_DEVICE_TABLE(of, ep93xx_pata_of_ids);
+
 static struct platform_driver ep93xx_pata_platform_driver = {
        .driver = {
                .name = DRV_NAME,
+               .of_match_table = ep93xx_pata_of_ids,
        },
        .probe = ep93xx_pata_probe,
        .remove = ep93xx_pata_remove,