Hi Stephen, On Wed, Oct 31, 2012 at 9:50 PM, Stephen Warren <swar...@wwwdotorg.org> wrote: > On 10/31/2012 05:59 PM, Simon Glass wrote: >> Hi, >> >> On Fri, Oct 26, 2012 at 12:17 AM, Lucas Stach <d...@lynxeye.de> wrote: >>> Am Donnerstag, den 25.10.2012, 19:31 -0700 schrieb Simon Glass: >>>> From: Sean Paul <seanp...@chromium.org> >>>> >>>> Add get and set gpio functions to fdtdec that take into account the >>>> polarity field in fdtdec_gpio_state.flags. >>>> >>> In another thread Stephen Warren and I came to the conclusion that we >>> most likely should remove this polarity flag from the GPIO bindings. >>> >>> Currently it is only for the USB VBUS GPIO which should move over to >>> regulators once they land in U-Boot. Do you have any other applications >>> for this flag, so we might reconsider removing it? >>> >> >> Well, any time you have a flag which is inverted in meaning, it can be >> useful. We have several switches on the board which can be active high >> or low, and polarity is used for that. >> >> In fact, it would be nice IMO to be able to specify input/output as >> well. I know the exynos bindings do this. There is a noddy function >> called fdtdec_setup_gpio() in U-Boot which really needs to be sorted >> out. I discussed with Stephen some time ago how GPIOs should be >> SOC-specific and it should be possible to set up a GPIO with a single >> call, as Linux does. The more information there is in the binding, the >> more it can do automatically. >> >> Does the Tegra Linux GPIO binding still have a polarity? > > Yes it does, although in practice it can't be used (and hence should > really be removed), since not all GPIO bindings have such a flag, so > there is always a need for a separate property to indicate the polarity > (c.f. fixed-regulator with GPIO control bindings for example). >
I've had a bit of time to look into this. I see that the regulator framework in the kernel seems to be used for various control purposes, and provides useful polarity stuff. I was rather hoping that GPIOs could be a bit more high level in U-Boot, with information about: - input/output - drive strength - polarity - pull up/down In fact most of these are actually supported in most kernel bindings, but of course it is binding-specific. Would it be useful to ask for a polarity setting in the GPIO. When it is not available, the polarity would then always be normal. This might avoid moving polarity and input/output selecting down into each client of the gpio, which seems undesirable in general. Should we consider a second level of indirection for GPIOs to support these non-binding features? It seems a bit complicated though. However, if it is too late to do this, or not desirable for some reason, then we should just drop this patch. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot