Re: [PATCH v2 0/7] gpio-rockchip driver

From: Heiko Stübner
Date: Mon Apr 12 2021 - 09:31:04 EST


Am Montag, 12. April 2021, 14:13:37 CEST schrieb Andy Shevchenko:
> On Sun, Apr 11, 2021 at 4:35 PM Peter Geis <pgwipeout@xxxxxxxxx> wrote:
> >
> > Separate gpio driver from pinctrl driver, and support v2 controller.
> >
> > Tested on rk3566-quartz64 prototype board.
>
> Can you give a bit more context?
> Usually separation means that hardware is represented by two different
> IP blocks that are (almost) independent to each other. Was it the case
> on the original platforms? Do you have different pin controller (or
> it's absent completely) on some new / old platform?

They are separate on all Rockchip SoCs.

I.e. the pinconfig (muxing, pulls, etc) is done via some registers inside
the "General Register Files" [area for misc registers]
and control for the gpio functionality is done in separate blocks
for each bank.

Lumping that stuff together into one driver, was a design-mistake
from younger-me back in 2013 ;-)


Heiko

> >
> > Patch History:
> > V2 - Rebase to latest linux-next.
> >
> > Tested-by: Peter Geis <pgwipeout@xxxxxxxxx>
> >
> > Jianqun Xu (7):
> > pinctrl/rockchip: separate struct rockchip_pin_bank to a head file
> > pinctrl/pinctrl-rockchip.h: add pinctrl device to gpio bank struct
> > gpio: separate gpio driver from pinctrl-rockchip driver
> > gpio/rockchip: use struct rockchip_gpio_regs for gpio controller
> > gpio/rockchip: support next version gpio controller
> > gpio/rockchip: always enable clock for gpio controller
> > gpio/rockchip: drop irq_gc_lock/irq_gc_unlock for irq set type
> >
> > drivers/gpio/Kconfig | 8 +
> > drivers/gpio/Makefile | 1 +
> > drivers/gpio/gpio-rockchip.c | 758 ++++++++++++++++++++++++
> > drivers/pinctrl/pinctrl-rockchip.c | 911 +----------------------------
> > drivers/pinctrl/pinctrl-rockchip.h | 287 +++++++++
> > 5 files changed, 1073 insertions(+), 892 deletions(-)
> > create mode 100644 drivers/gpio/gpio-rockchip.c
> > create mode 100644 drivers/pinctrl/pinctrl-rockchip.h
> >
> > --
> > 2.25.1
> >
>
>
>