All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomasz Figa <tomasz.figa@gmail.com>
To: Doug Anderson <dianders@google.com>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	devicetree-discuss@lists.ozlabs.org,
	Thomas Abraham <thomas.abraham@linaro.org>,
	Tomasz Figa <t.figa@samsung.com>, Simon Glass <sjg@chromium.org>,
	Olof Johansson <olof@lixom.net>, Kukjin Kim <kgene.kim@gmail.com>
Subject: Re: Pulls and drive strengths in the pinctrl world
Date: Wed, 15 May 2013 19:26:22 +0200	[thread overview]
Message-ID: <2016052.zneaYHvtGE@flatron> (raw)
In-Reply-To: <CAD=FV=V9h3RUfvAxj8k2EbYXYPO4FfoNwh=f=dno5ZBUFYeG0w@mail.gmail.com>

Hi Doug,

There is no better way at the moment, but...

On Wednesday 15 of May 2013 09:44:22 Doug Anderson wrote:
> Linus,
> 
> I'm currently working towards adapting exynos5250-snow (the ARM
> Chromebook) to work well in the new world of pinctrl.  We've got a
> backport of exynos5250 pinctrl in our kernel-3.8 tree and are now
> fixing all of the bugs that have popped up.  Patches will be sent
> upstream (where applicable) shortly.
> 
> 
> ...but I'm running into an issue when trying to specify pullups /
> pulldowns and drive strengths on lines that are just GPIOs or just
> interrupts.  This is important not just for power usage but also for
> proper functioning (the default internal pulldown was overpowering the
> weak external pullup in one case).  In the old GPIO specifier you
> could do specify pulls, but the new simpler one doesn't allow it.
> 
> I've managed to make things work and you can see my progress at
> <https://gerrit.chromium.org/gerrit/#/c/51232/>, but it feels a bit
> awkward.  Is there a better way?  If so, then I'm all ears!  :)
> 
> 
> If not, then I guess that what I have will have to do for now.  ...but
> I really wish that:
> 
> * The GPIO specifier could specify initial drive strength and pull
> values for pins.
> * The interrupt specifier could specify pull values for pins (drive
> strength shouldn't be needed since these are inputs).
> 
> Some examples from the gerrit CL referenced above...
> 
> Here's how I need to do things when I'm using "just an interrupt":
> 
>   pinctrl@11400000 {
>     cyapa_irq: cyapa-irq {
>       samsung,pins = "gpx1-2";
>       samsung,pin-function = <0xf>;

You can omit samsung,pin-function here.

>       samsung,pin-pud = <0>;
>       samsung,pin-drv = <0>;

For inputs I guess you can omit samsung,pin-drv as well.

>     };
>   };
> 
>   trackpad {
>     reg = <0x67>;
>     compatible = "cypress,cyapa";
>     interrupts = <2 0>;
>     interrupt-parent = <&gpx1>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&cyapa_irq>;
>     wakeup-source;
>   };
> 
> 
> I really wish I could add a 3rd number to the interrupt specifier for
> pud and skip the pinctrl bit:
> 
>   trackpad {
>     reg = <0x67>;
>     compatible = "cypress,cyapa";
>     interrupts = <2 0 0>;

Hmm, looks pretty good to me.

>     interrupt-parent = <&gpx1>;
>     wakeup-source;
>   };
> 
> 
> An example with the GPIO specifier instead of the interrupt one:
> 
>   pinctrl@11400000 {
>     ptn3460_gpios: ptn3460-gpios {
>       samsung,pins = "gpy2-5", "gpx1-5";
>       samsung,pin-function = <1>;
>       samsung,pin-pud = <0>;
>       samsung,pin-drv = <0>;
>     };
>   };
> 
>   ptn3460-bridge@20 {
>     compatible = "nxp,ptn3460";
>     reg = <0x20>;
>     powerdown-gpio = <&gpy2 5 0>;
>     reset-gpio = <&gpx1 5 0>;
>     edid-emulation = <5>;
>     pinctrl-names = "default";
>     pinctrl-0 = <&ptn3460_gpios>;
>   };
> 
> 
> I don't want to specify function/direction (code can handle that), but
> do wish I could specify the pulls and strength.  Perhaps:
> 
>   ptn3460-bridge@20 {
>     compatible = "nxp,ptn3460";
>     reg = <0x20>;
>     powerdown-gpio = <&gpy2 5 0 0 0>;
>     reset-gpio = <&gpx1 5 0 0 0>;

This looks fine to me as well.

Implementation of both shouldn't be too complicated, so it might be worth 
giving a try. Keep in mind that old bindings must be supported as well 
(based on #interrupt-cells and #gpio-cells values, I guess).

Best regards,
Tomasz

  reply	other threads:[~2013-05-15 17:26 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-15 16:44 Pulls and drive strengths in the pinctrl world Doug Anderson
2013-05-15 17:26 ` Tomasz Figa [this message]
2013-05-15 18:15   ` Olof Johansson
2013-05-15 21:19   ` Doug Anderson
2013-05-15 21:36     ` Tomasz Figa
2013-05-15 21:57       ` Doug Anderson
2013-05-15 18:29 ` Linus Walleij
2013-05-15 21:31   ` Doug Anderson
2013-05-15 21:41     ` Tomasz Figa
2013-05-15 21:43       ` Tomasz Figa
2013-05-15 22:01       ` Doug Anderson
2013-05-15 22:06         ` Tomasz Figa
2013-05-15 23:55           ` Doug Anderson
2013-05-16  0:13             ` Tomasz Figa
2013-05-16  0:22               ` Stephen Warren
     [not found]                 ` <519426A8.8090908-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-17 12:26                   ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-17 21:17                     ` Tomasz Figa
2013-05-18  8:18                       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-18 14:57                         ` Tomasz Figa
2013-05-18 16:30                           ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-18 17:13                             ` Tomasz Figa
2013-05-19  9:17                               ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-19  9:46                                 ` Tomasz Figa
2013-05-19 10:39                                   ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-19 10:56                                     ` Tomasz Figa
2013-05-23 21:42                                 ` Stephen Warren
     [not found]                                   ` <519E8D41.9040508-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-05-24  9:10                                     ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-23 21:39                             ` Stephen Warren
2013-05-21 18:28                     ` Tomasz Figa
2013-05-21 19:09                       ` Jean-Christophe PLAGNIOL-VILLARD
2013-05-16  0:55               ` Doug Anderson
2013-05-16 18:00                 ` Doug Anderson
2013-05-15 23:51   ` Stephen Warren
2013-05-16  0:03     ` Doug Anderson
2013-05-16  0:19       ` Tomasz Figa
2013-05-16  0:58         ` Doug Anderson
2013-05-17  8:38       ` Linus Walleij
2013-05-17  9:09         ` Tomasz Figa
2013-05-17 11:59           ` Linus Walleij
2013-05-17 12:38             ` Tomasz Figa
2013-05-17 14:56               ` Doug Anderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2016052.zneaYHvtGE@flatron \
    --to=tomasz.figa@gmail.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=dianders@google.com \
    --cc=kgene.kim@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=olof@lixom.net \
    --cc=sjg@chromium.org \
    --cc=t.figa@samsung.com \
    --cc=thomas.abraham@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.