On Wed, Jun 27, 2018 at 2:48 PM, Paul Cercueil <paul@xxxxxxxxxxxxxxx> wrote:Hi Linus,
Here's a set of (rather RFC) patches, to implement
pinctrl_gpio_get_direction(). I did that, because my gpio-ingenic driver
calls pinctrl_gpio_set_direction() within its gpio_chip's .set_direction
callback, but there was no corresponding function to implement the
.get_direction callback. If that's not the right way to do it, please
advise.
If not merging the whole series, patch [3/5] is a real fix that should
go through.
Note that it doesn't make checkpatch.pl happy, I wasn't sure whether I
should try to comply to checkpatch.pl or match the coding style in the
pinctrl subsystem, I chose the latter.
I dunno what Linus would going to say about this, but I would like to
see a schematics for this piece of IP.
Even if GPIO and pin muxing has only one set of buffers to indicate
input or output (same registers in use) it's a GPIO driver business to
get direction from GPIO part of IP.
Looking into the existing code I would rather say that
pinctrl-ingenic.c should incorporate gpio-ingenic.c as they are
(partially) sharing same registers.
To ->get_direction() implementation it's pretty straight forward, just
read necessary registers in the gpio-ingenic.c directly. No need to
have pin control or pin muxing to be involved.