diff options
Diffstat (limited to 'drivers/char/hw_random/atmel-rng.c')
-rw-r--r-- | drivers/char/hw_random/atmel-rng.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/char/hw_random/atmel-rng.c b/drivers/char/hw_random/atmel-rng.c index 851bc7e20ad2..0bb0b2120a63 100644 --- a/drivers/char/hw_random/atmel-rng.c +++ b/drivers/char/hw_random/atmel-rng.c | |||
@@ -67,7 +67,7 @@ static int atmel_trng_probe(struct platform_device *pdev) | |||
67 | if (IS_ERR(trng->clk)) | 67 | if (IS_ERR(trng->clk)) |
68 | return PTR_ERR(trng->clk); | 68 | return PTR_ERR(trng->clk); |
69 | 69 | ||
70 | ret = clk_enable(trng->clk); | 70 | ret = clk_prepare_enable(trng->clk); |
71 | if (ret) | 71 | if (ret) |
72 | return ret; | 72 | return ret; |
73 | 73 | ||
@@ -95,7 +95,7 @@ static int atmel_trng_remove(struct platform_device *pdev) | |||
95 | hwrng_unregister(&trng->rng); | 95 | hwrng_unregister(&trng->rng); |
96 | 96 | ||
97 | writel(TRNG_KEY, trng->base + TRNG_CR); | 97 | writel(TRNG_KEY, trng->base + TRNG_CR); |
98 | clk_disable(trng->clk); | 98 | clk_disable_unprepare(trng->clk); |
99 | 99 | ||
100 | return 0; | 100 | return 0; |
101 | } | 101 | } |
@@ -105,7 +105,7 @@ static int atmel_trng_suspend(struct device *dev) | |||
105 | { | 105 | { |
106 | struct atmel_trng *trng = dev_get_drvdata(dev); | 106 | struct atmel_trng *trng = dev_get_drvdata(dev); |
107 | 107 | ||
108 | clk_disable(trng->clk); | 108 | clk_disable_unprepare(trng->clk); |
109 | 109 | ||
110 | return 0; | 110 | return 0; |
111 | } | 111 | } |
@@ -114,7 +114,7 @@ static int atmel_trng_resume(struct device *dev) | |||
114 | { | 114 | { |
115 | struct atmel_trng *trng = dev_get_drvdata(dev); | 115 | struct atmel_trng *trng = dev_get_drvdata(dev); |
116 | 116 | ||
117 | return clk_enable(trng->clk); | 117 | return clk_prepare_enable(trng->clk); |
118 | } | 118 | } |
119 | 119 | ||
120 | static const struct dev_pm_ops atmel_trng_pm_ops = { | 120 | static const struct dev_pm_ops atmel_trng_pm_ops = { |
@@ -123,6 +123,12 @@ static const struct dev_pm_ops atmel_trng_pm_ops = { | |||
123 | }; | 123 | }; |
124 | #endif /* CONFIG_PM */ | 124 | #endif /* CONFIG_PM */ |
125 | 125 | ||
126 | static const struct of_device_id atmel_trng_dt_ids[] = { | ||
127 | { .compatible = "atmel,at91sam9g45-trng" }, | ||
128 | { /* sentinel */ } | ||
129 | }; | ||
130 | MODULE_DEVICE_TABLE(of, atmel_trng_dt_ids); | ||
131 | |||
126 | static struct platform_driver atmel_trng_driver = { | 132 | static struct platform_driver atmel_trng_driver = { |
127 | .probe = atmel_trng_probe, | 133 | .probe = atmel_trng_probe, |
128 | .remove = atmel_trng_remove, | 134 | .remove = atmel_trng_remove, |
@@ -132,6 +138,7 @@ static struct platform_driver atmel_trng_driver = { | |||
132 | #ifdef CONFIG_PM | 138 | #ifdef CONFIG_PM |
133 | .pm = &atmel_trng_pm_ops, | 139 | .pm = &atmel_trng_pm_ops, |
134 | #endif /* CONFIG_PM */ | 140 | #endif /* CONFIG_PM */ |
141 | .of_match_table = atmel_trng_dt_ids, | ||
135 | }, | 142 | }, |
136 | }; | 143 | }; |
137 | 144 | ||