Re: [RFC PATH 2/2] gpio: starfive-jh7100: Add StarFive JH7100 GPIO driver
From: Michael Walle <hidden>
Date: 2021-07-05 13:29:42
Also in:
linux-devicetree, linux-riscv, lkml
Hi Drew, Am 2021-07-02 23:06, schrieb Drew Fustini:
On Fri, Jul 02, 2021 at 07:03:19PM +0300, Andy Shevchenko wrote:quoted
On Thu, Jul 1, 2021 at 3:23 AM Drew Fustini [off-list ref] wrote:quoted
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-starlightquoted
Signed-off-by: Emil Renner Berthing <kernel@esmil.dk> Signed-off-by: Huan Feng <redacted> Signed-off-by: Drew Fustini <redacted>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?quoted
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