[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c915172ac456b3f7b7547c065c41750b@walle.cc>
Date: Fri, 02 Jul 2021 16:59:51 +0200
From: Michael Walle <michael@...le.cc>
To: Drew Fustini <drew@...gleboard.org>
Cc: Rob Herring <robh+dt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <bgolaszewski@...libre.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Michael Zhu <michael.zhu@...rfivetech.com>,
Geert Uytterhoeven <geert@...ux-m68k.org>,
Fu Wei <tekkamanninja@...il.com>, linux-kernel@...r.kernel.org,
linux-gpio@...r.kernel.org, linux-riscv@...ts.infradead.org,
devicetree@...r.kernel.org, Emil Renner Berthing <kernel@...il.dk>,
Huan Feng <huan.feng@...rfivetech.com>
Subject: Re: [RFC PATH 2/2] gpio: starfive-jh7100: Add StarFive JH7100 GPIO
driver
Hi Drew,
Am 2021-07-01 22:33, schrieb Drew Fustini:
> On Thu, Jul 01, 2021 at 08:39:40AM +0200, Michael Walle wrote:
>> Hi Drew,
>>
>> Am 2021-07-01 02:20, schrieb Drew Fustini:
>> > 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@...il.dk>
>> > Signed-off-by: Huan Feng <huan.feng@...rfivetech.com>
>> > Signed-off-by: Drew Fustini <drew@...gleboard.org>
>>
>> Could this driver use GPIO_REGMAP and REGMAP_IRQ? See
>> drivers/gpio/gpio-sl28cpld.c for an example.
>>
>> -michael
>
> Thank 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
Powered by blists - more mailing lists