Merge tag 'md/3.19' of git://neil.brown.name/md
[cascardo/linux.git] / drivers / char / hw_random / atmel-rng.c
index 851bc7e..0bb0b21 100644 (file)
@@ -67,7 +67,7 @@ static int atmel_trng_probe(struct platform_device *pdev)
        if (IS_ERR(trng->clk))
                return PTR_ERR(trng->clk);
 
-       ret = clk_enable(trng->clk);
+       ret = clk_prepare_enable(trng->clk);
        if (ret)
                return ret;
 
@@ -95,7 +95,7 @@ static int atmel_trng_remove(struct platform_device *pdev)
        hwrng_unregister(&trng->rng);
 
        writel(TRNG_KEY, trng->base + TRNG_CR);
-       clk_disable(trng->clk);
+       clk_disable_unprepare(trng->clk);
 
        return 0;
 }
@@ -105,7 +105,7 @@ static int atmel_trng_suspend(struct device *dev)
 {
        struct atmel_trng *trng = dev_get_drvdata(dev);
 
-       clk_disable(trng->clk);
+       clk_disable_unprepare(trng->clk);
 
        return 0;
 }
@@ -114,7 +114,7 @@ static int atmel_trng_resume(struct device *dev)
 {
        struct atmel_trng *trng = dev_get_drvdata(dev);
 
-       return clk_enable(trng->clk);
+       return clk_prepare_enable(trng->clk);
 }
 
 static const struct dev_pm_ops atmel_trng_pm_ops = {
@@ -123,6 +123,12 @@ static const struct dev_pm_ops atmel_trng_pm_ops = {
 };
 #endif /* CONFIG_PM */
 
+static const struct of_device_id atmel_trng_dt_ids[] = {
+       { .compatible = "atmel,at91sam9g45-trng" },
+       { /* sentinel */ }
+};
+MODULE_DEVICE_TABLE(of, atmel_trng_dt_ids);
+
 static struct platform_driver atmel_trng_driver = {
        .probe          = atmel_trng_probe,
        .remove         = atmel_trng_remove,
@@ -132,6 +138,7 @@ static struct platform_driver atmel_trng_driver = {
 #ifdef CONFIG_PM
                .pm     = &atmel_trng_pm_ops,
 #endif /* CONFIG_PM */
+               .of_match_table = atmel_trng_dt_ids,
        },
 };