Subject: [PATCH 1/2] pinctrl: add function to parse generic pinconfig properties from a dt node

From: [email-masked] (Heiko Stübner)
Date: Fri, 14 Jun 2013 11:18:22 +0200

Am Freitag, 14. Juni 2013, 01:53:49 schrieb Laurent Pinchart:
> Hi Linus,
> 
> On Thursday 13 June 2013 17:36:00 Linus Walleij wrote:
> > On Thu, Jun 13, 2013 at 5:23 PM, Heiko St?bner <[email-masked]> wrote:
> > >> Ok, I'll see that I get this fixed :-)
> > > 
> > > Hmm ... what is the meaning of the argument of bias-disable and
> > > bias-high- impedance, as the kernel-doc in pinconf-generic.h does not
> > > tell?
> > 
> > I think those arguments are N/A, ignored, doesn't matter.
> > If these options were typed, they would be bool.
> > 
> > Please improve documentation if you can... sorry for all the
> > rough edges.
> > 
> > > bias-bus-hold ignores its argument and we already clarified that the
> > > pull-* do have != 0 or 0 argument.
> > 
> > I think in the DT binding, both these forms:
> > 
> > bias-pull-up;
> > bias-pull-up = <150000>;
> > 
> > Should be allowed.
> > 
> > So when parsing, you first check if it exists, then if there
> > is an argument, if there is no value supplied, just set it
> > to 1, as that is clearly != 0...
> 
> What's the expected way to disable pull-ups in DT ? Should it be
> 'bias-pull-up = <0>;' or 'bias-disable;' ?

According to the kernedoc I think both are valid and should be handled. Using 
bias-disable is more descriptive but would also include disabling a "high-
impedance" or "bus-hold" bias (if supported by the hardware).

Personally, for my rockchip stuff I go with using the "bias-pull-pin-default" 
<-> "bias-disable".