Re: [RFC PATH 2/2] gpio: starfive-jh7100: Add StarFive JH7100 GPIO driver
From: Michael Walle <hidden>
Date: 2021-07-02 15:00:01
Also in:
linux-gpio, linux-riscv, lkml
From: Michael Walle <hidden>
Date: 2021-07-02 15:00:01
Also in:
linux-gpio, linux-riscv, lkml
Hi Drew, Am 2021-07-01 22:33, schrieb Drew Fustini:
On Thu, Jul 01, 2021 at 08:39:40AM +0200, Michael Walle wrote:quoted
Hi Drew, Am 2021-07-01 02:20, schrieb Drew Fustini: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-starlight Signed-off-by: Emil Renner Berthing <kernel@esmil.dk> Signed-off-by: Huan Feng <redacted> Signed-off-by: Drew Fustini <redacted>Could this driver use GPIO_REGMAP and REGMAP_IRQ? See drivers/gpio/gpio-sl28cpld.c for an example. -michaelThank you for the suggestion. I am not familiar with GPIO_REGMAP and REGMAP_IRQ so I will read about it. Is the advantage is that is helps to reduce code duplication by using an abstraction?
Yes, I've looked briefly at your patch and it seemed that GPIO_REGMAP might fit here which will reduce code.
I did notice that the gpio-sifive.c driver used regmap_update_bits() and regmap_write(). I suppose that is better than writel_relaxed() and iowrite32() which this RFC driver does?
Its just another abstraction layer in between. For MMIO it will also end up using some variant of the above (see regmap-mmio.c). But if you use regmap, you can also use REGMAP_IRQ which might also be a fit for your GPIO controller and thus don't have to implement your own versions for the irq_chip ops. -michael