On Fri, Aug 2, 2019 at 9:10 AM Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> wrote: > > -#include <mach/hardware.h> > > -#include <mach/platform.h> > > +#define _GPREG(x) (x) > > What purpose does this macro serve? > > > > > #define LPC32XX_GPIO_P3_INP_STATE _GPREG(0x000) > > #define LPC32XX_GPIO_P3_OUTP_SET _GPREG(0x004) In the existing code base, this macro converts a register offset to an __iomem pointer for a gpio register. I changed the definition of the macro here to keep the number of changes down, but I it's just as easy to remove it if you prefer. > > @@ -167,14 +166,26 @@ struct lpc32xx_gpio_chip { > > struct gpio_regs *gpio_grp; > > }; > > > > +void __iomem *gpio_reg_base; > > Any reason why this can't be made part of struct lpc32xx_gpio_chip? It could be, but it's the same for each instance, and not known until probe() time, so the same pointer would need to be copied into each instance that is otherwise read-only. Let me know if you'd prefer me to rework these two things or leave them as they are. > > +static inline u32 gpreg_read(unsigned long offset) > > Here and elsewhere: could you please keep the lpc32xx_gpio prefix for > all symbols? Sure. Arnd