aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_arasan_cf.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/pata_arasan_cf.c')
-rw-r--r--drivers/ata/pata_arasan_cf.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
index bfaa5cb1629a..26201ebef3ca 100644
--- a/drivers/ata/pata_arasan_cf.c
+++ b/drivers/ata/pata_arasan_cf.c
@@ -31,6 +31,7 @@
31#include <linux/kernel.h> 31#include <linux/kernel.h>
32#include <linux/libata.h> 32#include <linux/libata.h>
33#include <linux/module.h> 33#include <linux/module.h>
34#include <linux/of.h>
34#include <linux/pata_arasan_cf_data.h> 35#include <linux/pata_arasan_cf_data.h>
35#include <linux/platform_device.h> 36#include <linux/platform_device.h>
36#include <linux/pm.h> 37#include <linux/pm.h>
@@ -310,7 +311,7 @@ static int cf_init(struct arasan_cf_dev *acdev)
310 unsigned long flags; 311 unsigned long flags;
311 int ret = 0; 312 int ret = 0;
312 313
313 ret = clk_enable(acdev->clk); 314 ret = clk_prepare_enable(acdev->clk);
314 if (ret) { 315 if (ret) {
315 dev_dbg(acdev->host->dev, "clock enable failed"); 316 dev_dbg(acdev->host->dev, "clock enable failed");
316 return ret; 317 return ret;
@@ -340,7 +341,7 @@ static void cf_exit(struct arasan_cf_dev *acdev)
340 writel(readl(acdev->vbase + OP_MODE) & ~CFHOST_ENB, 341 writel(readl(acdev->vbase + OP_MODE) & ~CFHOST_ENB,
341 acdev->vbase + OP_MODE); 342 acdev->vbase + OP_MODE);
342 spin_unlock_irqrestore(&acdev->host->lock, flags); 343 spin_unlock_irqrestore(&acdev->host->lock, flags);
343 clk_disable(acdev->clk); 344 clk_disable_unprepare(acdev->clk);
344} 345}
345 346
346static void dma_callback(void *dev) 347static void dma_callback(void *dev)
@@ -935,6 +936,14 @@ static int arasan_cf_resume(struct device *dev)
935 936
936static SIMPLE_DEV_PM_OPS(arasan_cf_pm_ops, arasan_cf_suspend, arasan_cf_resume); 937static SIMPLE_DEV_PM_OPS(arasan_cf_pm_ops, arasan_cf_suspend, arasan_cf_resume);
937 938
939#ifdef CONFIG_OF
940static const struct of_device_id arasan_cf_id_table[] = {
941 { .compatible = "arasan,cf-spear1340" },
942 {}
943};
944MODULE_DEVICE_TABLE(of, arasan_cf_id_table);
945#endif
946
938static struct platform_driver arasan_cf_driver = { 947static struct platform_driver arasan_cf_driver = {
939 .probe = arasan_cf_probe, 948 .probe = arasan_cf_probe,
940 .remove = __devexit_p(arasan_cf_remove), 949 .remove = __devexit_p(arasan_cf_remove),
@@ -942,6 +951,7 @@ static struct platform_driver arasan_cf_driver = {
942 .name = DRIVER_NAME, 951 .name = DRIVER_NAME,
943 .owner = THIS_MODULE, 952 .owner = THIS_MODULE,
944 .pm = &arasan_cf_pm_ops, 953 .pm = &arasan_cf_pm_ops,
954 .of_match_table = of_match_ptr(arasan_cf_id_table),
945 }, 955 },
946}; 956};
947 957