Subject: [PATCH 5/8] watchdog: bindings: Provide ST bindings for ST's LPC Watchdog device

From: [email-masked] (Lee Jones)
Date: Thu, 18 Dec 2014 09:04:04 +0000

We 
On Thu, 18 Dec 2014, Arnd Bergmann wrote:

> On Thursday 18 December 2014 08:13:34 Lee Jones wrote:
> > On Wed, 17 Dec 2014, Arnd Bergmann wrote:
> > 
> > > On Wednesday 17 December 2014 16:45:24 Lee Jones wrote:
> > > > +- compatible   : Must be one of: "st,stih407-lpc" "st,stih416-lpc"
> > > > +                                 "st,stih415-lpc" "st,stid127-lpc"
> > > > +- reg          : LPC registers base address + size
> > > > +- interrupts    : LPC interrupt line number and associated flags
> > > > +- clocks       : Clock used by LPC device (See: ../clock/clock-bindings.txt)
> > > > +- st,lpc-mode  : The LPC can run either one of two modes ST_LPC_MODE_RTC [0] or
> > > > +                 ST_LPC_MODE_WDT [1].  One (and only one) mode must be
> > > > +                 selected.
> > > > 
> > > 
> > > I'm glad you got it to work with two drivers for the same device.
> > > 
> > > With this binding, I'm still a bit unhappy about the st,lpc-mode property,
> > > in particular since you rely on a shared include file for something that
> > > can only be set in one way or another and always has to be present.
> > > 
> > > Why not just use a boolean property that enforces one mode when present
> > > and another mode when absent?
> > 
> > There is nothing stopping me from doing that, and it was a
> > consideration.  I concluded that this method would be more explicit
> > however.  Both when describing our choices in DT and at a functional
> > level within each of the drivers.
> > 
> > Let me know if you fundamentally disagree and I can fix-up.
> 
> I generally don't like  header files that define interfaces between C code
> and DT nodes. There are cases where it's the least ugly solution, but I don't
> think this is one of them.
> 
> If you want to be more explicit about the modes, how about having one
> boolean property per mode? That would also allow devices that could be
> driven in either mode, e.g. if you have only one instance of this device.

Isn't this was you suggested above?

Making a decision on the absence is a property is what I'm calling
not-explicit.  If it's accidentally left off the driver(s) won't issue a
warning, it'll just assume that the lack of this boolean property was
intentional and go follow the Watchdog path for instance.

But as I briefly mentioned to you elsewhere, there are actually 3
devices (Watchdog, RTC and Global Timer).  How would you like to
handle that with a Boolean property when we introduce this new driver?

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog