On Mon, 06 Jul 2020, Michael Walle wrote: > There are I2C devices which contain several different functions but > doesn't require any special access functions. For these kind of drivers > an I2C regmap should be enough. > > Create an I2C driver which creates an I2C regmap and enumerates its > children. If a device wants to use this as its MFD core driver, it has > to add an individual compatible string. It may provide its own regmap > configuration. > > Subdevices can use dev_get_regmap() on the parent to get their regmap > instance. > > Signed-off-by: Michael Walle <michael@xxxxxxxx> > --- > Changes since v4: > - new patch. Lee, please bear with me. I didn't want to delay the > new version (where a lot of remarks on the other patches were > addressed) even more, just because we haven't figured out how > to deal with the MFD part. So for now, I've included this one. > > drivers/mfd/Kconfig | 9 +++++++ > drivers/mfd/Makefile | 1 + > drivers/mfd/simple-mfd-i2c.c | 50 ++++++++++++++++++++++++++++++++++++ > 3 files changed, 60 insertions(+) > create mode 100644 drivers/mfd/simple-mfd-i2c.c > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index 33df0837ab41..f1536a710aca 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -1162,6 +1162,15 @@ config MFD_SI476X_CORE > To compile this driver as a module, choose M here: the > module will be called si476x-core. > > +config MFD_SIMPLE_MFD_I2C > + tristate "Simple regmap based I2C devices" Doesn't look like tristate to me. Haven't you made this builtin only? > + depends on I2C > + select MFD_CORE Why? > + select REGMAP_I2C > + help > + This is a consolidated driver for all MFD devices which are > + basically just a regmap bus driver. Please expand on this. I think it deserves greater explanation. > config MFD_SM501 > tristate "Silicon Motion SM501" > depends on HAS_DMA -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog