On Thu, Feb 23, 2023 at 11:07 PM Asmaa Mnebhi <asmaa@xxxxxxxxxx> wrote: > > > > +static const struct { > > > + const char *name; > > > + const char * const *group_names; > > > > Use this instead > > https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux- > > pinctrl.git/tree/include/linux/pinctrl/pinctrl.h?h=devel#n215 > > and this > > https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux- > > pinctrl.git/tree/include/linux/pinctrl/pinctrl.h?h=devel#n222 > > > > > +} mlxbf_pmx_funcs[] = { > > > > > +}; > > so copy that struct definition and macro to my driver? (I don’t see these code changes in master) Which master? First of all, you should do your development based on the "for-next" of the respective subsystem (okay, for pin control Linus Walleij called his published branch "devel"). So, the above mentioned functionality was there a while ago. Second, a couple of days ago Linus Torvalds pulled PR, so it's part of upstream now. TL;DR: just use those types and macros in your code. > > > + /* This resource is shared so use devm_ioremap */ > > > > Can you elaborate on who actually requests the region? And why is it not > > _this_ driver? > > This resource is shared with the gpio-mlxbf3.c driver. The gpio-mlxbf3.c driver does not access the same offsets as the pinctrl-mlxbf3.c driver, but it accesses several other registers offsets in between. Okay, so in such a case you need a common denominator that actually does this all for you via, for example, regmap. If the region is not requested, bad things may happen. -- With Best Regards, Andy Shevchenko