Re: [PATCH v6 01/13] mfd: add simple regmap based I2C driver
From: Lee Jones <hidden>
Date: 2020-07-28 08:15:15
Also in:
linux-devicetree, linux-gpio, linux-hwmon, linux-pwm, linux-watchdog, lkml
On Tue, 28 Jul 2020, Michael Walle wrote:
Am 2020-07-28 09:19, schrieb Lee Jones:quoted
On Sun, 26 Jul 2020, Michael Walle wrote:quoted
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 <redacted> --- Changes since v5: - removed "select MFD_CORE" in Kconfig - removed help text in Kconfig, we assume that the users of thisThat's the opposite of what I asked for.What is the use to describe the symbol, if it is not user selectable? I'm not aware this is done anywhere in the kernel, am I missing something?
You mean in menuconfig? I find 'help's helpful even outside of menuconfig. Surely I'm not the only one who reads them 'raw'?
quoted
quoted
driver will have a "select MFD_SIMPLE_MFD_I2C". Instead added a small description to the driver itself. - removed "struct simple_mfd_i2c_config" and use regmap_config directly - changed builtin_i2c_driver() to module_i2c_driver(), added MODULE_ boilerplate - cleaned up the included files 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 | 5 ++++ drivers/mfd/Makefile | 1 + drivers/mfd/simple-mfd-i2c.c | 55 ++++++++++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 drivers/mfd/simple-mfd-i2c.cdiff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig index 33df0837ab41..c08539c7a166 100644 --- a/drivers/mfd/Kconfig +++ b/drivers/mfd/Kconfig@@ -1162,6 +1162,11 @@ 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 + depends on I2C + select REGMAP_I2CPlease provide a full help.See above.quoted
quoted
config MFD_SM501 tristate "Silicon Motion SM501" depends on HAS_DMAdiff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index a60e5f835283..78d24a3e7c9e 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile@@ -264,3 +264,4 @@ obj-$(CONFIG_MFD_STMFX) += stmfx.o obj-$(CONFIG_MFD_KHADAS_MCU) += khadas-mcu.o obj-$(CONFIG_SGI_MFD_IOC3) += ioc3.o +obj-$(CONFIG_MFD_SIMPLE_MFD_I2C) += simple-mfd-i2c.odiff --git a/drivers/mfd/simple-mfd-i2c.cb/drivers/mfd/simple-mfd-i2c.c new file mode 100644 index 000000000000..45090ddad104--- /dev/null +++ b/drivers/mfd/simple-mfd-i2c.c@@ -0,0 +1,55 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * A very simple I2C MFD driverSimple MFD - I2Cok.quoted
quoted
+ * The driver enumerates its children and registers a common regmap. Use + * dev_get_regmap(pdev->dev.parent, NULL) in the child nodes to fetch that + * regmap instance.This driver creates a single register map with the intention for it to be shared by all sub-devices. Children can use their parent's device structure (dev.parent) in order reference it.Should this be appended or should it replace my paragraph? If its the latter, the "enumeration of the children" is missing.
If you want to keep that part, try: This driver creates a single register map with the intention for it to be shared by all sub-devices. Children can use their parent's device structure (dev.parent) in order reference it. Once the register map has been successfully initialised, any sub-devices represented by child nodes in Device Tree will be subsequently registered.
quoted
quoted
+ * In the future this driver might be extended to support also other interfaces + * like SPI etc.Remove this please.Why would you remove information about the intention of this driver? If someone looks for a place to implement its SPI/I3C/Slimbus MFD driver this might come in handy.
By all means put something similar in the commit log, but it has no place in the driver itself. Besides, if we were to add support for SPI, it is likely to be a completely separate/unrelated driver. -- Lee Jones [李琼斯] Senior Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel