Thread (9 messages) 9 messages, 2 authors, 2014-11-05

[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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help