Re: [RFC v2 0/5] gpio: add pinctrl based generic gpio driver

From: andy . shevchenko
Date: Thu Oct 19 2023 - 17:29:08 EST


Thu, Oct 05, 2023 at 11:58:38AM +0900, AKASHI Takahiro kirjoitti:
> This is a revised version of my previous RFC[1]. Although I modified
> the commits to make them look SCMI-independent, they are still posted
> as RFC because I have never tested them on real hardware.
>
> (background)
> I'm currently working on implementing SCMI pinctrl/gpio drivers
> on U-Boot[2]. Although the pinctrl driver for the kernel[3] was submitted
> by EPAM, it doesn't contain the gpio driver and I believe that we should
> discuss a couple of points on the kernel side to finalize my design for
> U-Boot.
>
> So this RFC is intended for reviews, especially to raise some issues.
>
> 1) how to obtain a value on an input pin
> All the existing gpio drivers are set to obtain a value on an input
> pin by accessing the hardware directly. In SCMI case, however, this is
> just impossible in its nature and must be supported via a protocol
> using "Input-value" configuration type. (See the spec[4], table-23.)
>
> The current pinconf framework is missing the feature (the pinconf
> parameter and a helper function). See patch#1, #2 and #3.
>
> Please note that there is an issue around the pin configuration in
> EPAM's current pinctrl driver as I commented[5].
>
> 2) DT bindings
> I would like to propose a generic binding for pinctrl based gpio driver.
> This allows a "consumer" driver to handle gpio pins like as other
> normal gpio controllers support. (patch#5)
>
> 3) generic GPIO driver
> Based on (2), I tried to prototype a generic driver in patch#4.
> Thanks to a set of existing pinctrl_gpio helper functions, except (1),
> It seems that the driver can be implemented not relying on pin controller
> specific code, at least for SCMI pinctrl.
>
> I will appreciate any comments.

Any comment here: I'm listed as a designated reviewer of GPIO patches, why am I
not Cc'ed on this? I definitely have some comments against the code (no DT,
though). Please, use (up-to-date) MAINTAINERS in your v3.

--
With Best Regards,
Andy Shevchenko