On Tue, Apr 14, 2020 at 9:57 PM Michael Walle <michael@xxxxxxxx> wrote: > So what about the following: > > #define GPIO_REGMAP_ADDR_ZERO (unsigned int)(-1) Yeah with regmap explicitly using int I guess we can't use S32_MAX, so that is fair. > So this way the user might assign the base addresses the normal way > except when he wants to use zero, in that case he has to use > > ->base_adr = GPIO_REGMAP_ADDR_ZERO; > > gpio-regmap.c could use then: > > if (base_addr) > something_useful(gpio_regmap_addr(base_addr)); > > unsigned int gpio_regmap_addr(unsigned int addr) > { > return (addr == GPIO_REGMAP_ADDR_ZERO) ? 0 : addr; > } That's reasonably clean. Yours, Linus Walleij