diff options
author | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2019-03-20 08:40:37 -0400 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@bootlin.com> | 2019-04-04 04:07:09 -0400 |
commit | 1a76a77c8800a50b98bd38b7b1ffec32fe107bc1 (patch) | |
tree | f26eb5bfee3345aa13784709ea715d64d2554101 | |
parent | beee05dfbead2331a3183dee8ddcf10066278355 (diff) |
rtc: at91sam9: drop platform_data support
ARCH_AT91 is DT only for a while, drop platform data support.
Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-rw-r--r-- | drivers/rtc/Kconfig | 2 | ||||
-rw-r--r-- | drivers/rtc/rtc-at91sam9.c | 44 |
2 files changed, 9 insertions, 37 deletions
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 805e4ace30ca..dc0d66e80038 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig | |||
@@ -1432,7 +1432,7 @@ config RTC_DRV_AT91RM9200 | |||
1432 | config RTC_DRV_AT91SAM9 | 1432 | config RTC_DRV_AT91SAM9 |
1433 | tristate "AT91SAM9 RTT as RTC" | 1433 | tristate "AT91SAM9 RTT as RTC" |
1434 | depends on ARCH_AT91 || COMPILE_TEST | 1434 | depends on ARCH_AT91 || COMPILE_TEST |
1435 | depends on HAS_IOMEM | 1435 | depends on OF && HAS_IOMEM |
1436 | select MFD_SYSCON | 1436 | select MFD_SYSCON |
1437 | help | 1437 | help |
1438 | Some AT91SAM9 SoCs provide an RTT (Real Time Timer) block which | 1438 | Some AT91SAM9 SoCs provide an RTT (Real Time Timer) block which |
diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c index 1d31c0ae6334..7ec114b59513 100644 --- a/drivers/rtc/rtc-at91sam9.c +++ b/drivers/rtc/rtc-at91sam9.c | |||
@@ -340,13 +340,6 @@ static const struct rtc_class_ops at91_rtc_ops = { | |||
340 | .alarm_irq_enable = at91_rtc_alarm_irq_enable, | 340 | .alarm_irq_enable = at91_rtc_alarm_irq_enable, |
341 | }; | 341 | }; |
342 | 342 | ||
343 | static const struct regmap_config gpbr_regmap_config = { | ||
344 | .name = "gpbr", | ||
345 | .reg_bits = 32, | ||
346 | .val_bits = 32, | ||
347 | .reg_stride = 4, | ||
348 | }; | ||
349 | |||
350 | /* | 343 | /* |
351 | * Initialize and install RTC driver | 344 | * Initialize and install RTC driver |
352 | */ | 345 | */ |
@@ -357,6 +350,7 @@ static int at91_rtc_probe(struct platform_device *pdev) | |||
357 | int ret, irq; | 350 | int ret, irq; |
358 | u32 mr; | 351 | u32 mr; |
359 | unsigned int sclk_rate; | 352 | unsigned int sclk_rate; |
353 | struct of_phandle_args args; | ||
360 | 354 | ||
361 | irq = platform_get_irq(pdev, 0); | 355 | irq = platform_get_irq(pdev, 0); |
362 | if (irq < 0) { | 356 | if (irq < 0) { |
@@ -382,34 +376,14 @@ static int at91_rtc_probe(struct platform_device *pdev) | |||
382 | if (IS_ERR(rtc->rtt)) | 376 | if (IS_ERR(rtc->rtt)) |
383 | return PTR_ERR(rtc->rtt); | 377 | return PTR_ERR(rtc->rtt); |
384 | 378 | ||
385 | if (!pdev->dev.of_node) { | 379 | ret = of_parse_phandle_with_fixed_args(pdev->dev.of_node, |
386 | /* | 380 | "atmel,rtt-rtc-time-reg", 1, 0, |
387 | * TODO: Remove this code chunk when removing non DT board | 381 | &args); |
388 | * support. Remember to remove the gpbr_regmap_config | 382 | if (ret) |
389 | * variable too. | 383 | return ret; |
390 | */ | ||
391 | void __iomem *gpbr; | ||
392 | |||
393 | r = platform_get_resource(pdev, IORESOURCE_MEM, 1); | ||
394 | gpbr = devm_ioremap_resource(&pdev->dev, r); | ||
395 | if (IS_ERR(gpbr)) | ||
396 | return PTR_ERR(gpbr); | ||
397 | |||
398 | rtc->gpbr = regmap_init_mmio(NULL, gpbr, | ||
399 | &gpbr_regmap_config); | ||
400 | } else { | ||
401 | struct of_phandle_args args; | ||
402 | |||
403 | ret = of_parse_phandle_with_fixed_args(pdev->dev.of_node, | ||
404 | "atmel,rtt-rtc-time-reg", 1, 0, | ||
405 | &args); | ||
406 | if (ret) | ||
407 | return ret; | ||
408 | |||
409 | rtc->gpbr = syscon_node_to_regmap(args.np); | ||
410 | rtc->gpbr_offset = args.args[0]; | ||
411 | } | ||
412 | 384 | ||
385 | rtc->gpbr = syscon_node_to_regmap(args.np); | ||
386 | rtc->gpbr_offset = args.args[0]; | ||
413 | if (IS_ERR(rtc->gpbr)) { | 387 | if (IS_ERR(rtc->gpbr)) { |
414 | dev_err(&pdev->dev, "failed to retrieve gpbr regmap, aborting.\n"); | 388 | dev_err(&pdev->dev, "failed to retrieve gpbr regmap, aborting.\n"); |
415 | return -ENOMEM; | 389 | return -ENOMEM; |
@@ -561,13 +535,11 @@ static int at91_rtc_resume(struct device *dev) | |||
561 | 535 | ||
562 | static SIMPLE_DEV_PM_OPS(at91_rtc_pm_ops, at91_rtc_suspend, at91_rtc_resume); | 536 | static SIMPLE_DEV_PM_OPS(at91_rtc_pm_ops, at91_rtc_suspend, at91_rtc_resume); |
563 | 537 | ||
564 | #ifdef CONFIG_OF | ||
565 | static const struct of_device_id at91_rtc_dt_ids[] = { | 538 | static const struct of_device_id at91_rtc_dt_ids[] = { |
566 | { .compatible = "atmel,at91sam9260-rtt" }, | 539 | { .compatible = "atmel,at91sam9260-rtt" }, |
567 | { /* sentinel */ } | 540 | { /* sentinel */ } |
568 | }; | 541 | }; |
569 | MODULE_DEVICE_TABLE(of, at91_rtc_dt_ids); | 542 | MODULE_DEVICE_TABLE(of, at91_rtc_dt_ids); |
570 | #endif | ||
571 | 543 | ||
572 | static struct platform_driver at91_rtc_driver = { | 544 | static struct platform_driver at91_rtc_driver = { |
573 | .probe = at91_rtc_probe, | 545 | .probe = at91_rtc_probe, |