Re: [PATCH 6/7] gpio: pl061: switch data path to gpio-regmap

From: Andy Shevchenko

Date: Tue Oct 13 2026 - 03:15:51 EST


On Fri, Oct 09, 2026 at 06:57:59PM +0800, Long Zhao via B4 Relay wrote:

> Move get, set and direction onto gpio-regmap. ARM PL061 sets
> GPIO_REGMAP_QUIRK_SET_AFTER_DIR so the output value is written
> after the direction change.
>
> Keep a custom irqchip and irq domain. Create the domain with
> the PL061 private data and let gpio-regmap attach it.
>
> Check the chained-handler regmap_read() return and always run
> chained_irq_exit(). irq_type still ignores MMIO write returns.
>
> irq_set_parent() nests the GPIO irq_desc under the AMBA parent
> for irq_set_wake() and lockdep; checked with PROVE_LOCKING on
> CV75.

...

> -static bool pl061_is_data_reg(unsigned int reg)
> -{
> - return is_power_of_2(reg) &&
> - reg >= BIT(PL061_DATA_OFFSET) &&
> - reg <= BIT(PL061_DATA_OFFSET + PL061_GPIO_NR - 1);
> -}
> -
> -static bool pl061_volatile_reg(struct device *dev, unsigned int reg)
> -{
> - switch (reg) {
> - case GPIOMIS:
> - case GPIOIC:
> - return true;
> - default:
> - return pl061_is_data_reg(reg);
> - }
> -}
> -
> -static const struct regmap_config pl061_regmap_config = {
> - .reg_bits = 16,
> - .val_bits = 8,
> - .reg_stride = 4,
> - .max_register = GPIOIC,
> - .volatile_reg = pl061_volatile_reg,
> - .fast_io = true,
> - .use_raw_spinlock = true,
> -};

No, I have already told you do not move these. If you need to rename, just make
sure it's named accordingly in the previous patch that introduced this.

...

I have a feeling that you ignored my last review. I stop it here, you need to
carefully read *all* the comments and act accordingly.

--
With Best Regards,
Andy Shevchenko