diff options
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-at91sam9.c | 29 |
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 | */ |
307 | static int at91_rtc_probe(struct platform_device *pdev) | 307 | static 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 | ||