Am 2020-07-17 11:06, schrieb Lee Jones:
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?
Mh yeah, I forgot to change it to module in the driver. I don't
know whats better though, have it tristate or just offer a boolean
option because it should be small anyway. What do you think?
My interrupt driver will force it to boolean anyway.
+ depends on I2C
+ select MFD_CORE
Why?
leftover :( I'll remove it.
+ 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.
ok.
config MFD_SM501
tristate "Silicon Motion SM501"
depends on HAS_DMA
--
-michael