[PATCH] ARM: dts: imx28: add gpio-ranges for internal gpio controller
Uwe Kleine-König
u.kleine-koenig at pengutronix.de
Mon May 15 00:16:08 PDT 2017
Hello Shawn,
On Mon, May 15, 2017 at 10:21:30AM +0800, Shawn Guo wrote:
> On Fri, May 12, 2017 at 10:01:50AM +0200, Uwe Kleine-König wrote:
> > On Fri, May 12, 2017 at 11:05:38AM +0800, Shawn Guo wrote:
> > > I went through the code around requesting a pin, and found that we need
> > > to call pinctrl_request_gpio() from gpio driver to get the result you
> > > want. In that case, pin_request() will be called with a valid
> > > gpio_range as below.
> > >
> > > pinctrl_request_gpio()
> > > pinmux_request_gpio()
> > > pin_request(..., gpio_range)
> > >
> > > Right now, pin_request() is being called with a NULL gpio_range from
> > > pinmux_enable_setting(). That gets us the mux_owner rather than
> > > gpio_owner for the pin.
> >
> > But then again I cannot mux a pin to a different function when the gpio
> > is requested, right?
(Actually I intended to postpone this mail, but sent it instead by
accident.)
> You will need to free the GPIO before muxing it to a different function,
> I think.
IMHO this is a bad concept. This makes GPIOs more special than for
example PWMs or LEDs. And it breaks some configurations (for example the
make-pins-highz-on-idle setup in my previous mails).
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
More information about the linux-arm-kernel
mailing list