Re: [RFC PATH 2/2] gpio: starfive-jh7100: Add StarFive JH7100 GPIO driver

From: Michael Walle
Date: Mon Jul 05 2021 - 09:29:42 EST


Hi Drew,

Am 2021-07-02 23:06, schrieb Drew Fustini:
On Fri, Jul 02, 2021 at 07:03:19PM +0300, Andy Shevchenko wrote:
On Thu, Jul 1, 2021 at 3:23 AM Drew Fustini <drew@xxxxxxxxxxxxxxx> wrote:
>
> Add GPIO driver for the StarFive JH7100 SoC [1] used on the
> BeagleV Starlight JH7100 board [2].
>
> [1] https://github.com/starfive-tech/beaglev_doc/
> [2] https://github.com/beagleboard/beaglev-starlight

> Signed-off-by: Emil Renner Berthing <kernel@xxxxxxxx>
> Signed-off-by: Huan Feng <huan.feng@xxxxxxxxxxxxxxxx>
> Signed-off-by: Drew Fustini <drew@xxxxxxxxxxxxxxx>

Seems some Co-developed-by are missing.

Thank you for suggesting this. Huan Feng originally wrote the driver.
Emil and I have made some changes to reorganize and clean it up for
submission.

Do you think all three of us should list Co-developed-by: for our names
in addition to the SOB?

Brief look into the code brings the Q. Can't you utilize gpio-regmap
here? Why not?

Michael Walle asked about this yesterday and it was my first time
looking at regmap and gpio-regmap. I've been reading the code and it
does look like I should try convert this driver over to using
gpio-regmap.

The open question in my mind is how to handle the interrupt type (edge
trigged on positive or negative, level triggered on high or low).
Hopefully I can find some other examples that can help me think about
how to do that correctly.

Have a look at include/linux/regmap.h, there is "struct regmap_irq_type".
If you're lucky, you can just supply the corresponding values that fits
your hardware. If it doesn't match your hardware at all, then you can
keep your own functions, or if its slightly different, then maybe you
can add support for your quirk in regmap-irq. You don't necessarily have
to use regmap-irq together with gpio-regmap. You can also just use
regmap-irq or gpio-regmap independently.

A quick grep for "type_rising_" lists drivers/mfd/max77650.c and
drivers/mfd/rohm-bd70528.c for example.

-michael