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 > > > > >