[PATCH 2/2] watchdog: at91rm9200 remove mach/ header dependency
From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-10-31 20:53:11
Also in:
linux-watchdog, lkml
From: arnd@arndb.de (Arnd Bergmann)
Date: 2014-10-31 20:53:11
Also in:
linux-watchdog, lkml
On Friday 31 October 2014 21:45:59 Alexandre Belloni wrote:
Remove the mach/ header dependency by including the necessary macros and taking the appropriate resources from the system timer. Also allow to compile both the at91rm920 and at91sam9 watchdog drivers at the same time. Signed-off-by: Alexandre Belloni <redacted>
Please list me in the changelog as well, either in free-form or as Suggested-by.
+static struct of_device_id at91rm9200_st_timer_ids[] = {
+ { .compatible = "atmel,at91rm9200-st" },
+ { /* sentinel */ }
+};
+
static int at91wdt_probe(struct platform_device *pdev)
{
+ struct resource *regs;
+ struct resource _regs;
int res;
if (at91wdt_miscdev.parent)
return -EBUSY;
at91wdt_miscdev.parent = &pdev->dev;
+ if (pdev->dev.of_node) {
+ struct device_node *np;
+
+ np = of_find_matching_node(NULL, at91rm9200_st_timer_ids);
+ if (!np)
+ return -ENXIO;
+ if (of_address_to_resource(np, 0, &_regs))
+ return -ENXIO;
+ regs = &_regs;
+ } else {
+ regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+ }What was wrong with my approach of binding the driver to the "atmel,at91rm9200-st" node? Arnd