|
@@ -306,18 +306,11 @@ static const struct rtc_class_ops at91_rtc_ops = {
|
|
|
*/
|
|
|
static int at91_rtc_probe(struct platform_device *pdev)
|
|
|
{
|
|
|
- struct resource *r, *r_gpbr;
|
|
|
+ struct resource *r;
|
|
|
struct sam9_rtc *rtc;
|
|
|
int ret, irq;
|
|
|
u32 mr;
|
|
|
|
|
|
- r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
- r_gpbr = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
|
|
- if (!r || !r_gpbr) {
|
|
|
- dev_err(&pdev->dev, "need 2 ressources\n");
|
|
|
- return -ENODEV;
|
|
|
- }
|
|
|
-
|
|
|
irq = platform_get_irq(pdev, 0);
|
|
|
if (irq < 0) {
|
|
|
dev_err(&pdev->dev, "failed to get interrupt resource\n");
|
|
@@ -335,18 +328,16 @@ static int at91_rtc_probe(struct platform_device *pdev)
|
|
|
device_init_wakeup(&pdev->dev, 1);
|
|
|
|
|
|
platform_set_drvdata(pdev, rtc);
|
|
|
- rtc->rtt = devm_ioremap(&pdev->dev, r->start, resource_size(r));
|
|
|
- if (!rtc->rtt) {
|
|
|
- dev_err(&pdev->dev, "failed to map registers, aborting.\n");
|
|
|
- return -ENOMEM;
|
|
|
- }
|
|
|
|
|
|
- rtc->gpbr = devm_ioremap(&pdev->dev, r_gpbr->start,
|
|
|
- resource_size(r_gpbr));
|
|
|
- if (!rtc->gpbr) {
|
|
|
- dev_err(&pdev->dev, "failed to map gpbr registers, aborting.\n");
|
|
|
- return -ENOMEM;
|
|
|
- }
|
|
|
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
|
|
+ rtc->rtt = devm_ioremap_resource(&pdev->dev, r);
|
|
|
+ if (IS_ERR(rtc->rtt))
|
|
|
+ return PTR_ERR(rtc->rtt);
|
|
|
+
|
|
|
+ r = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
|
|
+ rtc->gpbr = devm_ioremap_resource(&pdev->dev, r);
|
|
|
+ if (IS_ERR(rtc->gpbr))
|
|
|
+ return PTR_ERR(rtc->rtt);
|
|
|
|
|
|
mr = rtt_readl(rtc, MR);
|
|
|
|