Re: [PATCH] pinctrl: intel: Implements gpio free function

From: Andy Shevchenko
Date: Thu Mar 21 2019 - 05:23:37 EST


On Thu, Mar 21, 2019 at 10:44:20AM +0200, Mika Westerberg wrote:
> On Thu, Mar 21, 2019 at 10:35:24AM +0800, zhuchangchun wrote:
> > When we use the gpio to control some peripheral devices,and try to
> > export the gpio first,then unexport the gpio, we test the signal with
> > oscilloscope,and find the signal can't meet the requirements,because
> > after we unexported the gpio,the gpio's register(tx and rx)value can't
> > be recovered,and this will infruence the device work flow.
>
> After you unexport GPIO it can go back to any previous mode it was. If
> you need to use it as GPIO then why unexport it in the first place?

...and on top of that GPIO sysfs interface is deprecated.

> > We check the gpio's unexport code work flow, then find the gpio's free
> > hook function has not been implemented, After we add pinmux_ops' free
> > function to set exported gpio to recover its original value,the problem
> > is fixed.
>
> I don't think this is what ->free callback should do (assuming we decide
> to implement it since we don't implement ->release either). It is
> supposed to reverse effects of ->request which is what it currently does ;-)

Exactly!

--
With Best Regards,
Andy Shevchenko