Message ID | 20211211175951.30763-1-luca@lucaceresoli.net |
---|---|
Headers | show |
Series | Add MAX77714 PMIC minimal driver (RTC and watchdog only) | expand |
On Sat, 11 Dec 2021, Luca Ceresoli wrote: > Add a simple driver for the Maxim MAX77714 PMIC, supporting RTC and > watchdog only. > > Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> > > --- > > Changes in v5: none > > Changes in v4: none > > Changes in v3: > - Suggested by Lee Jones: > - move struct mfd_cell to top of file > - remove struct max77714 and its kmalloc, not used after probe > - reword error messages > - add "/* pF */" onto the end of the load_cap line > > Changes in v2: > - fix "watchdog" word in heading comment (Guenter Roeck) > - move struct max77714 to .c file (Krzysztof Kozlowski) > - change include guard format (Krzysztof Kozlowski) > - allow building as a module (Krzysztof Kozlowski) > - remove of_match_ptr usage (Krzysztof Kozlowski / lkp) > (Reported-by: kernel test robot <lkp@intel.com>) > --- > MAINTAINERS | 2 + > drivers/mfd/Kconfig | 14 ++++ > drivers/mfd/Makefile | 1 + > drivers/mfd/max77714.c | 152 +++++++++++++++++++++++++++++++++++ > include/linux/mfd/max77714.h | 60 ++++++++++++++ > 5 files changed, 229 insertions(+) > create mode 100644 drivers/mfd/max77714.c > create mode 100644 include/linux/mfd/max77714.h > > diff --git a/MAINTAINERS b/MAINTAINERS > index a08f5167dfe0..ef3ffba828af 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -11586,6 +11586,8 @@ MAXIM MAX77714 PMIC MFD DRIVER > M: Luca Ceresoli <luca@lucaceresoli.net> > S: Maintained > F: Documentation/devicetree/bindings/mfd/maxim,max77714.yaml > +F: drivers/mfd/max77714.c > +F: include/linux/mfd/max77714.h > > MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER > M: Javier Martinez Canillas <javier@dowhile0.org> > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index 3fb480818599..1b9d772bdae6 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -855,6 +855,20 @@ config MFD_MAX77693 > additional drivers must be enabled in order to use the functionality > of the device. > > +config MFD_MAX77714 > + tristate "Maxim Semiconductor MAX77714 PMIC Support" > + depends on I2C > + depends on OF || COMPILE_TEST > + select MFD_CORE > + select REGMAP_I2C > + help > + Say yes here to add support for Maxim Semiconductor MAX77714. > + This is a Power Management IC with 4 buck regulators, 9 > + low-dropout regulators, 8 GPIOs, RTC, watchdog etc. This driver > + provides common support for accessing the device; additional > + drivers must be enabled in order to use each functionality of the > + device. > + > config MFD_MAX77843 > bool "Maxim Semiconductor MAX77843 PMIC Support" > depends on I2C=y > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > index 0b1b629aef3e..03115cf1336b 100644 > --- a/drivers/mfd/Makefile > +++ b/drivers/mfd/Makefile > @@ -162,6 +162,7 @@ obj-$(CONFIG_MFD_MAX77620) += max77620.o > obj-$(CONFIG_MFD_MAX77650) += max77650.o > obj-$(CONFIG_MFD_MAX77686) += max77686.o > obj-$(CONFIG_MFD_MAX77693) += max77693.o > +obj-$(CONFIG_MFD_MAX77714) += max77714.o > obj-$(CONFIG_MFD_MAX77843) += max77843.o > obj-$(CONFIG_MFD_MAX8907) += max8907.o > max8925-objs := max8925-core.o max8925-i2c.o > diff --git a/drivers/mfd/max77714.c b/drivers/mfd/max77714.c > new file mode 100644 > index 000000000000..08dfb69bc6e8 > --- /dev/null > +++ b/drivers/mfd/max77714.c > @@ -0,0 +1,152 @@ > +// SPDX-License-Identifier: GPL-2.0-only > +/* > + * Maxim MAX77714 MFD Driver I'm only mentioning this because you are still missing some reviews. But I'd prefer for drivers not to describe themselves as MFD Drivers. The term Parent or Core driver is usually better. If you have to respin the set, please fix it. If not, please sent a subsequent fix-up. Once fixed: Acked-by: Lee Jones <lee.jones@linaro.org>
Hi Lee, On 21/12/21 10:29, Lee Jones wrote: > On Sat, 11 Dec 2021, Luca Ceresoli wrote: > >> Add a simple driver for the Maxim MAX77714 PMIC, supporting RTC and >> watchdog only. >> >> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> >> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> >> >> --- >> >> Changes in v5: none >> >> Changes in v4: none >> >> Changes in v3: >> - Suggested by Lee Jones: >> - move struct mfd_cell to top of file >> - remove struct max77714 and its kmalloc, not used after probe >> - reword error messages >> - add "/* pF */" onto the end of the load_cap line >> >> Changes in v2: >> - fix "watchdog" word in heading comment (Guenter Roeck) >> - move struct max77714 to .c file (Krzysztof Kozlowski) >> - change include guard format (Krzysztof Kozlowski) >> - allow building as a module (Krzysztof Kozlowski) >> - remove of_match_ptr usage (Krzysztof Kozlowski / lkp) >> (Reported-by: kernel test robot <lkp@intel.com>) >> --- >> MAINTAINERS | 2 + >> drivers/mfd/Kconfig | 14 ++++ >> drivers/mfd/Makefile | 1 + >> drivers/mfd/max77714.c | 152 +++++++++++++++++++++++++++++++++++ >> include/linux/mfd/max77714.h | 60 ++++++++++++++ >> 5 files changed, 229 insertions(+) >> create mode 100644 drivers/mfd/max77714.c >> create mode 100644 include/linux/mfd/max77714.h >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index a08f5167dfe0..ef3ffba828af 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -11586,6 +11586,8 @@ MAXIM MAX77714 PMIC MFD DRIVER >> M: Luca Ceresoli <luca@lucaceresoli.net> >> S: Maintained >> F: Documentation/devicetree/bindings/mfd/maxim,max77714.yaml >> +F: drivers/mfd/max77714.c >> +F: include/linux/mfd/max77714.h >> >> MAXIM MAX77802 PMIC REGULATOR DEVICE DRIVER >> M: Javier Martinez Canillas <javier@dowhile0.org> >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig >> index 3fb480818599..1b9d772bdae6 100644 >> --- a/drivers/mfd/Kconfig >> +++ b/drivers/mfd/Kconfig >> @@ -855,6 +855,20 @@ config MFD_MAX77693 >> additional drivers must be enabled in order to use the functionality >> of the device. >> >> +config MFD_MAX77714 >> + tristate "Maxim Semiconductor MAX77714 PMIC Support" >> + depends on I2C >> + depends on OF || COMPILE_TEST >> + select MFD_CORE >> + select REGMAP_I2C >> + help >> + Say yes here to add support for Maxim Semiconductor MAX77714. >> + This is a Power Management IC with 4 buck regulators, 9 >> + low-dropout regulators, 8 GPIOs, RTC, watchdog etc. This driver >> + provides common support for accessing the device; additional >> + drivers must be enabled in order to use each functionality of the >> + device. >> + >> config MFD_MAX77843 >> bool "Maxim Semiconductor MAX77843 PMIC Support" >> depends on I2C=y >> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile >> index 0b1b629aef3e..03115cf1336b 100644 >> --- a/drivers/mfd/Makefile >> +++ b/drivers/mfd/Makefile >> @@ -162,6 +162,7 @@ obj-$(CONFIG_MFD_MAX77620) += max77620.o >> obj-$(CONFIG_MFD_MAX77650) += max77650.o >> obj-$(CONFIG_MFD_MAX77686) += max77686.o >> obj-$(CONFIG_MFD_MAX77693) += max77693.o >> +obj-$(CONFIG_MFD_MAX77714) += max77714.o >> obj-$(CONFIG_MFD_MAX77843) += max77843.o >> obj-$(CONFIG_MFD_MAX8907) += max8907.o >> max8925-objs := max8925-core.o max8925-i2c.o >> diff --git a/drivers/mfd/max77714.c b/drivers/mfd/max77714.c >> new file mode 100644 >> index 000000000000..08dfb69bc6e8 >> --- /dev/null >> +++ b/drivers/mfd/max77714.c >> @@ -0,0 +1,152 @@ >> +// SPDX-License-Identifier: GPL-2.0-only >> +/* >> + * Maxim MAX77714 MFD Driver > > I'm only mentioning this because you are still missing some reviews. > > But I'd prefer for drivers not to describe themselves as MFD Drivers. > > The term Parent or Core driver is usually better. > > If you have to respin the set, please fix it. OK. However No plan for a new iteration, but the wdog patches still need a review so it's possible. I don't expect changes for the other patches, they are acked and unchanged since a couple iterations. > If not, please sent a subsequent fix-up. Sure. Maybe I'll find some good will and reword all drivers which currently self-describe as "MFD drivers". > Acked-by: Lee Jones <lee.jones@linaro.org> Thanks.
On 12/11/21 12:34 PM, Luca Ceresoli wrote: > The MAX77714 is a MFD chip whose watchdog has the same programming > procedures as the MAX77620 watchdog, but most register offsets and bit > masks are different, as well as some features. > > Support the MAX77714 watchdog by adding a variant description table holding > the differences. > > All the features implemented by this driver are available on the MAX77714 > except for the lack of a WDTOFFC bit. Instead of using a "HAS_*" flag we > handle this by holding in the cnfg_glbl2_cfg_bits struct field the bits > (i.e. the features) to enable in the CNFG_GLBL2 register. These bits differ > among the two models. This implementation allows to avoid any conditional > code, keeping the execution flow unchanged. > > Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
On 12/11/21 12:34 PM, Luca Ceresoli wrote: > Clarify why we need to ping the watchdog before changing the timeout by > quoting the MAX77714 datasheet. > > Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> > Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Hi All, On 11/12/21 18:59, Luca Ceresoli wrote: > Hi, > > this series adds minimal drivers for the Maxim Semiconductor MAX77714 > (https://www.maximintegrated.com/en/products/power/power-management-ics/MAX77714.html). > Only RTC and watchdog are implemented by these patches. > > All implemented functionality is tested and working: RTC read/write, > watchdog start/stop/ping/set_timeout. > > Patches 1-3 + 6 are trivial cleanups to the max77686 drivers and Kconfig > indentation and can probably be applied easily. > > Patches 4, 5, 7, 8 and 9 add: dt bindings, mfd driver, watchdog driver and > rtc driver. A gentle ping about this series. It's at v5, all patches have at least one ack/review tag and most patches are unchanged since ~v2. It applies cleanly on current master. Is there anything I should do to help making progress? Regards,
Hi Lee, all, On 11/01/22 11:10, Luca Ceresoli wrote: > Hi All, > > On 11/12/21 18:59, Luca Ceresoli wrote: >> Hi, >> >> this series adds minimal drivers for the Maxim Semiconductor MAX77714 >> (https://www.maximintegrated.com/en/products/power/power-management-ics/MAX77714.html). >> Only RTC and watchdog are implemented by these patches. >> >> All implemented functionality is tested and working: RTC read/write, >> watchdog start/stop/ping/set_timeout. >> >> Patches 1-3 + 6 are trivial cleanups to the max77686 drivers and Kconfig >> indentation and can probably be applied easily. >> >> Patches 4, 5, 7, 8 and 9 add: dt bindings, mfd driver, watchdog driver and >> rtc driver. > > A gentle ping about this series. It's at v5, all patches have at least > one ack/review tag and most patches are unchanged since ~v2. It applies > cleanly on current master. > > Is there anything I should do to help making progress? Apologies for pinging again... but as I got no further comments about these patches I guess I can really do nothing at the moment. Lee, is this series completely in charge to you or should it be applied by the respective subsystem maintainers? Thanks.
On 1/29/22 00:40, Luca Ceresoli wrote: > Hi Lee, all, > > On 11/01/22 11:10, Luca Ceresoli wrote: >> Hi All, >> >> On 11/12/21 18:59, Luca Ceresoli wrote: >>> Hi, >>> >>> this series adds minimal drivers for the Maxim Semiconductor MAX77714 >>> (https://www.maximintegrated.com/en/products/power/power-management-ics/MAX77714.html). >>> Only RTC and watchdog are implemented by these patches. >>> >>> All implemented functionality is tested and working: RTC read/write, >>> watchdog start/stop/ping/set_timeout. >>> >>> Patches 1-3 + 6 are trivial cleanups to the max77686 drivers and Kconfig >>> indentation and can probably be applied easily. >>> >>> Patches 4, 5, 7, 8 and 9 add: dt bindings, mfd driver, watchdog driver and >>> rtc driver. >> >> A gentle ping about this series. It's at v5, all patches have at least >> one ack/review tag and most patches are unchanged since ~v2. It applies >> cleanly on current master. >> >> Is there anything I should do to help making progress? > > Apologies for pinging again... but as I got no further comments about > these patches I guess I can really do nothing at the moment. > > Lee, is this series completely in charge to you or should it be applied > by the respective subsystem maintainers? > I hesitated to take the watchdog patches because an earlier patch of the series introduces MFD_MAX77714 and the watchdog Kconfig entry lists it as dependency. I now added patch 7/9 and 8/9 to my watchdog-next tree anyway. If the mfd part doesn't make it we can still decide to take it out at some point. Note that patch 6/9 has already been applied. Guenter
Hi Guenter, On 30/01/22 02:48, Guenter Roeck wrote: > On 1/29/22 00:40, Luca Ceresoli wrote: >> Hi Lee, all, >> >> On 11/01/22 11:10, Luca Ceresoli wrote: >>> Hi All, >>> >>> On 11/12/21 18:59, Luca Ceresoli wrote: >>>> Hi, >>>> >>>> this series adds minimal drivers for the Maxim Semiconductor MAX77714 >>>> (https://www.maximintegrated.com/en/products/power/power-management-ics/MAX77714.html). >>>> >>>> Only RTC and watchdog are implemented by these patches. >>>> >>>> All implemented functionality is tested and working: RTC read/write, >>>> watchdog start/stop/ping/set_timeout. >>>> >>>> Patches 1-3 + 6 are trivial cleanups to the max77686 drivers and >>>> Kconfig >>>> indentation and can probably be applied easily. >>>> >>>> Patches 4, 5, 7, 8 and 9 add: dt bindings, mfd driver, watchdog >>>> driver and >>>> rtc driver. >>> >>> A gentle ping about this series. It's at v5, all patches have at least >>> one ack/review tag and most patches are unchanged since ~v2. It applies >>> cleanly on current master. >>> >>> Is there anything I should do to help making progress? >> >> Apologies for pinging again... but as I got no further comments about >> these patches I guess I can really do nothing at the moment. >> >> Lee, is this series completely in charge to you or should it be applied >> by the respective subsystem maintainers? >> > > I hesitated to take the watchdog patches because an earlier patch of the > series > introduces MFD_MAX77714 and the watchdog Kconfig entry lists it as > dependency. > I now added patch 7/9 and 8/9 to my watchdog-next tree anyway. If the > mfd part > doesn't make it we can still decide to take it out at some point. OK, thank you! In the meanwhile the kernel test robot also reported a build failure due to missing max77714.h file, which is added by patch 5. > Note that patch 6/9 has already been applied. Indeed, it's in Linus' master already. Regards.
On 1/30/22 04:45, Luca Ceresoli wrote: > Hi Guenter, > > On 30/01/22 02:48, Guenter Roeck wrote: >> On 1/29/22 00:40, Luca Ceresoli wrote: >>> Hi Lee, all, >>> >>> On 11/01/22 11:10, Luca Ceresoli wrote: >>>> Hi All, >>>> >>>> On 11/12/21 18:59, Luca Ceresoli wrote: >>>>> Hi, >>>>> >>>>> this series adds minimal drivers for the Maxim Semiconductor MAX77714 >>>>> (https://www.maximintegrated.com/en/products/power/power-management-ics/MAX77714.html). >>>>> >>>>> Only RTC and watchdog are implemented by these patches. >>>>> >>>>> All implemented functionality is tested and working: RTC read/write, >>>>> watchdog start/stop/ping/set_timeout. >>>>> >>>>> Patches 1-3 + 6 are trivial cleanups to the max77686 drivers and >>>>> Kconfig >>>>> indentation and can probably be applied easily. >>>>> >>>>> Patches 4, 5, 7, 8 and 9 add: dt bindings, mfd driver, watchdog >>>>> driver and >>>>> rtc driver. >>>> >>>> A gentle ping about this series. It's at v5, all patches have at least >>>> one ack/review tag and most patches are unchanged since ~v2. It applies >>>> cleanly on current master. >>>> >>>> Is there anything I should do to help making progress? >>> >>> Apologies for pinging again... but as I got no further comments about >>> these patches I guess I can really do nothing at the moment. >>> >>> Lee, is this series completely in charge to you or should it be applied >>> by the respective subsystem maintainers? >>> >> >> I hesitated to take the watchdog patches because an earlier patch of the >> series >> introduces MFD_MAX77714 and the watchdog Kconfig entry lists it as >> dependency. >> I now added patch 7/9 and 8/9 to my watchdog-next tree anyway. If the >> mfd part >> doesn't make it we can still decide to take it out at some point. > > OK, thank you! In the meanwhile the kernel test robot also reported a > build failure due to missing max77714.h file, which is added by patch 5. > Yes, I noticed. Which means I'll have to drop the patch again, and we'll have to wait for the mfd patch to land, sorry. Guenter >> Note that patch 6/9 has already been applied. > > Indeed, it's in Linus' master already. > > Regards.