aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/rtc/rtc-at91sam9.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c
index 74a9ca0bbeb4..38a26931b659 100644
--- a/drivers/rtc/rtc-at91sam9.c
+++ b/drivers/rtc/rtc-at91sam9.c
@@ -306,18 +306,11 @@ static const struct rtc_class_ops at91_rtc_ops = {
306 */ 306 */
307static int at91_rtc_probe(struct platform_device *pdev) 307static int at91_rtc_probe(struct platform_device *pdev)
308{ 308{
309 struct resource *r, *r_gpbr; 309 struct resource *r;
310 struct sam9_rtc *rtc; 310 struct sam9_rtc *rtc;
311 int ret, irq; 311 int ret, irq;
312 u32 mr; 312 u32 mr;
313 313
314 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
315 r_gpbr = platform_get_resource(pdev, IORESOURCE_MEM, 1);
316 if (!r || !r_gpbr) {
317 dev_err(&pdev->dev, "need 2 ressources\n");
318 return -ENODEV;
319 }
320
321 irq = platform_get_irq(pdev, 0); 314 irq = platform_get_irq(pdev, 0);
322 if (irq < 0) { 315 if (irq < 0) {
323 dev_err(&pdev->dev, "failed to get interrupt resource\n"); 316 dev_err(&pdev->dev, "failed to get interrupt resource\n");
@@ -335,18 +328,16 @@ static int at91_rtc_probe(struct platform_device *pdev)
335 device_init_wakeup(&pdev->dev, 1); 328 device_init_wakeup(&pdev->dev, 1);
336 329
337 platform_set_drvdata(pdev, rtc); 330 platform_set_drvdata(pdev, rtc);
338 rtc->rtt = devm_ioremap(&pdev->dev, r->start, resource_size(r));
339 if (!rtc->rtt) {
340 dev_err(&pdev->dev, "failed to map registers, aborting.\n");
341 return -ENOMEM;
342 }
343 331
344 rtc->gpbr = devm_ioremap(&pdev->dev, r_gpbr->start, 332 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
345 resource_size(r_gpbr)); 333 rtc->rtt = devm_ioremap_resource(&pdev->dev, r);
346 if (!rtc->gpbr) { 334 if (IS_ERR(rtc->rtt))
347 dev_err(&pdev->dev, "failed to map gpbr registers, aborting.\n"); 335 return PTR_ERR(rtc->rtt);
348 return -ENOMEM; 336
349 } 337 r = platform_get_resource(pdev, IORESOURCE_MEM, 1);
338 rtc->gpbr = devm_ioremap_resource(&pdev->dev, r);
339 if (IS_ERR(rtc->gpbr))
340 return PTR_ERR(rtc->rtt);
350 341
351 mr = rtt_readl(rtc, MR); 342 mr = rtt_readl(rtc, MR);
352 343