[PATCH 01/15] watchdog: orion: Remove unneeded BRIDGE_CAUSE clear
From: Ezequiel Garcia <hidden>
Date: 2013-08-28 12:08:02
On Tue, Aug 27, 2013 at 04:25:32PM -0600, Jason Gunthorpe wrote:
On Tue, Aug 27, 2013 at 07:17:29PM -0300, Ezequiel Garcia wrote:quoted
The problem is: how do we handle the reset out enable in the watchdog driver, while removing the hard-coded register (and hence the mach-header) *at the same* time? Should we return to the previously proposed idea of putting that in the reg property? IOW: watchdog { reg = <timer control>, <rstout>; }; If we *must* access the rstout register from the watchdog driver, and we *cannot* have any mach-xxx headers to find base addresses, then the only valid solution is to pass this information from the DT.Makes sense to me..
Ok, good.
I think the need for strong ordering between the timer control and the rstout registers trumps other considerations.
Agreed.
Ditto for the interrupt, specify the interrupt in the DT, and request it in the driver. Ensure that the irq driver clears the cause register bit for an interrupt before attaching an irq (this is fairly standard irq practice).
Hm.. but in order to make this work, we need the bridge interrupt controller introduced by Sebastian, but not available in the "older" platforms (right?). So, in order to add support to Armada 370/XP watchdog (which was the initial goal of all of this) I think our sane option reduce to two: * Drop watchdog support on non-DT platforms and add support for A370/XP in the orion-wdt driver. I don't quite like the idea of dropping support on anything, so I can't say I'm thrilled by this idea. Or, * Support A370/AXP in a different and new armada-wdt driver. The differences between the SoC might be small, but maybe enough to justify a separate driver and avoid more problems. Ideas? -- Ezequiel Garc?a, Free Electrons Embedded Linux, Kernel and Android Engineering http://free-electrons.com