[PATCH 5/5] pinctrl: rockchip: correctly handle arguments of pinconf options
Heiko Stübner
heiko at sntech.de
Sun Jun 16 07:02:31 EDT 2013
Am Sonntag, 16. Juni 2013, 12:35:43 schrieb Linus Walleij:
> On Fri, Jun 14, 2013 at 5:44 PM, Heiko Stübner <heiko at sntech.de> wrote:
> > Change the rockchip pinctrl driver to handle the arguments of 0 or 1 to
> > the pull pinconfig options correctly, so that the pull gets disabled when
> > either the bias_disable options is set or the pull option has the
> > argument 0.
> >
> > Signed-off-by: Heiko Stuebner <heiko at sntech.de>
>
> Patch applied so we can move ahead but:
> > case PIN_CONFIG_BIAS_PULL_UP:
> > case PIN_CONFIG_BIAS_PULL_DOWN:
> >
> > case PIN_CONFIG_BIAS_PULL_PIN_DEFAULT:
> > + if (!rockchip_pinconf_pull_valid(info->ctrl, param))
> > + return -ENOTSUPP;
> > +
> > + if (!arg)
> > + param = PIN_CONFIG_BIAS_DISABLE;
>
> This is what I think is counter-intuitive.
>
> Can't you rely on the bias-disable here instead?
>
> > - *config = 0;
> > + pull = rockchip_get_pull(bank, pin - bank->pin_base);
> > + *config = (pull == param) ? 1 : 0;
>
> And then I guess you should emit PIN_CONFIG_BIAS_DISABLE
> here as well.
rockchip_get_pull does emit PIN_CONFIG_BIAS_DISABLE when the pull is disabled,
only wrongly does add the argument here.
But I'm actually not quite sure what the expected behaviour is here at all :-)
Say the pin is in the "pin-default" pull state and the query in config_get is
for "bias-disable", what would be the expected bahviour/return value in this
case?
Thanks
Heiko
More information about the linux-arm-kernel
mailing list